From ae6282bdfa8bc68a8dc66fceaba130ff0a28461e Mon Sep 17 00:00:00 2001 From: dish Date: Mon, 4 Dec 2023 15:34:45 +0000 Subject: [PATCH] [bos #35160][EDF](2023-T1) Keyboard shortcuts. Shortcut Mgr is now actually responsible for managing shortcuts: it is solely responsible and capable to dynamically bind actions with hotkey combinations and (de)serialize shortcut preference changes using SUIT_ResourceMgr. Add SUIT_ShortcutContainer, which ensures that there are no conflicts between shortcuts. Added the ability to change shortcut preferences through the GUI. Add a development tool to grab all shortcuts of created at runtime QtxActions . The tool also grabs tooltips of the actions for further dynamic translation from actionID to actionName in runtime before actions with these ID are created. Both grabbed shortcuts and translations are dumped in XML files with identical to project-conventional resource files formatting. --- doc/salome/gui/input/setting_preferences.rst | 56 +- .../fr/LC_MESSAGES/setting_preferences.po | 2 +- src/CAM/CAM_Module.cxx | 27 +- src/CAM/CAM_Module.h | 8 +- src/LightApp/LightApp_Application.cxx | 60 +- src/LightApp/LightApp_Application.h | 3 +- src/LightApp/LightApp_Module.cxx | 40 +- src/LightApp/LightApp_PreferencesDlg.cxx | 2 +- src/LightApp/resources/LightApp.xml | 71 +- src/LightApp/resources/LightApp_msg_en.ts | 2 +- src/OCCViewer/OCCViewer_ViewWindow.cxx | 42 +- src/Qtx/CMakeLists.txt | 5 +- src/Qtx/Qtx.qrc | 4 +- src/Qtx/QtxAction.cxx | 169 +- src/Qtx/QtxAction.h | 17 +- src/Qtx/QtxPagePrefMgr.cxx | 199 +- src/Qtx/QtxPagePrefMgr.h | 48 +- src/Qtx/QtxPreferenceMgr.cxx | 23 +- src/Qtx/QtxPreferenceMgr.h | 2 + src/Qtx/QtxShortcutEdit.cxx | 997 ++++++--- src/Qtx/QtxShortcutEdit.h | 236 +- src/Qtx/QtxWorkspaceAction.cxx | 17 +- src/Qtx/QtxWorkspaceAction.h | 1 - src/Qtx/QtxWorkstack.cxx | 21 +- src/Qtx/QtxWorkstack.h | 3 +- src/Qtx/QtxWorkstackAction.cxx | 19 +- src/Qtx/QtxWorkstackAction.h | 1 - src/Qtx/images/shortcut_disable.svg | 10 + src/Qtx/images/shortcut_restore.svg | 7 + src/Qtx/resources/Qtx_msg_fr.ts | 49 + src/Qtx/resources/Qtx_msg_ja.ts | 49 + src/SALOME_PYQT/SalomePyQt/SalomePyQt.h | 65 +- src/SALOME_PYQT/SalomePyQt/SalomePyQt.sip | 79 +- src/STD/STD_Application.cxx | 40 +- src/STD/STD_TabDesktop.cxx | 6 - src/SUIT/CMakeLists.txt | 38 +- src/SUIT/SUIT_Application.cxx | 45 +- src/SUIT/SUIT_Application.h | 23 +- src/SUIT/SUIT_PreferenceMgr.cxx | 5 +- src/SUIT/SUIT_PreferenceMgr.h | 2 +- src/SUIT/SUIT_ShortcutMgr. ReadMe.md | 82 + src/SUIT/SUIT_ShortcutMgr.cxx | 1964 ++++++++++++++++- src/SUIT/SUIT_ShortcutMgr.h | 431 +++- src/SUIT/resources/SUIT_msg_fr.ts | 29 +- src/SUIT/resources/SUIT_msg_ja.ts | 29 +- src/SUIT/resources/action_assets.json | 699 ++++++ src/SVTK/SVTK_ViewWindow.cxx | 232 +- src/SalomeApp/SalomeApp_Application.cxx | 12 +- .../ShortcutMgr. Resource generator.xlsx | Bin 0 -> 901981 bytes 49 files changed, 4875 insertions(+), 1096 deletions(-) create mode 100644 src/Qtx/images/shortcut_disable.svg create mode 100644 src/Qtx/images/shortcut_restore.svg create mode 100644 src/SUIT/SUIT_ShortcutMgr. ReadMe.md create mode 100644 src/SUIT/resources/action_assets.json create mode 100644 tools/DevTools/ShortcutMgr/ShortcutMgr. Resource generator.xlsx diff --git a/doc/salome/gui/input/setting_preferences.rst b/doc/salome/gui/input/setting_preferences.rst index 4e892e81e..0eaa7a258 100644 --- a/doc/salome/gui/input/setting_preferences.rst +++ b/doc/salome/gui/input/setting_preferences.rst @@ -1,4 +1,4 @@ -.. _setting_preferences_page: +.. _setting_preferences_page: ******************* Setting Preferences @@ -13,7 +13,7 @@ The **Preferences** dialog box consists of two parts: - Available preferences sections are listed in the left part of the dialog box; usually this list contains "SALOME" item that specifies general application preferences and a separate section for each SALOME module available in the current session. - The tabbed widget at the right side of the dialog box provides controls that can be used to customize the preferences. -.. note:: The preferences for modules become accessible only after explicit loading of these modules. Until then the dialog box will show the corresponding warning message. +.. note:: The preferences for modules become accessible only after explicit loading of these modules. Until then the dialog box will show the corresponding warning message. More detailed information about preferences for certain modules can be found in the User's guide of the corresponding module. @@ -23,7 +23,7 @@ application look-n-feel and common functionality. If the study has just been started and other modules have not been loaded yet, it will be possible to change only the settings which refer to -the whole GUI SALOME session. +the whole GUI SALOME session. General Preferences ################### @@ -40,11 +40,11 @@ General Preferences - **Show splash screen at start-up** - allows showing or hiding the splash screen at start-up. - **Opaque resize** - force opaque resize mode for viewers area (tabbed workspace). Clear this checkbox for less perfomant workstations. - - **Drop-down buttons in toolbars for action groups** - when checked, the action groups are represented in the viewer toolbars as a single drop-down button, switchable by the user. Otherwise, all the buttons from the action groups are displayed in the toolbar. + - **Drop-down buttons in toolbars for action groups** - when checked, the action groups are represented in the viewer toolbars as a single drop-down button, switchable by the user. Otherwise, all the buttons from the action groups are displayed in the toolbar. - **Study Properties** - - **Multi file save** - if checked in, your study will be saved in several HDF files (one basic HDF file which will store the main information about the saved study and several other files for the data created by each component used during the study session). Opening of this study requires that **ALL** saved files should be stored in the **SAME** directory. If you would like to copy your saved study in another directory or machine, you should copy all stored files. Otherwise, if you try to open this study, some data will be lost and it will lead to invalid functioning of the SALOME platform. + - **Multi file save** - if checked in, your study will be saved in several HDF files (one basic HDF file which will store the main information about the saved study and several other files for the data created by each component used during the study session). Opening of this study requires that **ALL** saved files should be stored in the **SAME** directory. If you would like to copy your saved study in another directory or machine, you should copy all stored files. Otherwise, if you try to open this study, some data will be lost and it will lead to invalid functioning of the SALOME platform. - **ASCII save** - if checked in, your study will be saved in ASCII format file (or files). - **Automatic loading of light modules when opening study** - if checked in, Light Modules of the current study will be automatically loaded at the next study opening, allowing completion of object browser. - **Store positions of windows** - if checked in, positions of windows will be saved in a special file at the end of the current session and then restored for a new session. @@ -55,7 +55,7 @@ General Preferences - **Multi file python dump** - allows to generate multiple files (separately for each component) for dumping of a study to a python script. If the option is disabled, the study is dumped to a single python script. - **Save GUI state in python dump** - if this option is switched on, the Python script resulting from Dump Python operation will include commands related to the GUI state. -- **External browser** - allows to define what browser will be used to show SALOME reference manuals: internal (built-in SALOME browser) or external (IE, Netscape, Mozilla, ...). In addition, it is possible to specify +- **External browser** - allows to define what browser will be used to show SALOME reference manuals: internal (built-in SALOME browser) or external (IE, Netscape, Mozilla, ...). In addition, it is possible to specify - **Application** - this option allows you to set an external browser (IE, Netscape) which will be used for viewing SALOME reference manuals. By default, Mozilla is used. - **Parameters** - additional parameters required for launching of the external browser (if applicable). @@ -65,13 +65,13 @@ General Preferences - **Font** - allows quickly setting the parameters (style, size, face) of the :ref:`font_color_dlg` used in embedded Python console. - **Show banner** - this option allows to show/hide the Python banner on top of the console window. -- **Show MRU items** - allows to define the maximum **Number** of items in **Most Recently Used** list and the **Link type**: +- **Show MRU items** - allows to define the maximum **Number** of items in **Most Recently Used** list and the **Link type**: - - **Long** - shows the full path to the file. + - **Long** - shows the full path to the file. - **Short** - shows the file name only. - **Auto** - shows full paths to the files only if some files from different locations have the same name. -- **Full-screen** +- **Full-screen** - **Hide object browser and viewers toolbars** - switches automatic hiding of Object Browser and OCC viewer toolbar in full-screen mode. @@ -135,10 +135,10 @@ OCC 3D Viewer Preferences - **Enable V-Sync** - activates vertical synchronization. - **Enable quad-buffer support** - allows quad-buffered rendering. - .. note:: + .. note:: It is neccessary to enable quad-buffered stereoscopic rendering manually in graphic driver settings. SALOME does not do it automatically. - .. note:: + .. note:: All existing OCC 3D views should be re-created for quad-buffer support. - **Background** - specifies the default background for the viewers, separately for (for more details, refer to the :ref:`viewer_background` page"): @@ -220,7 +220,7 @@ VTK 3D Viewer Preferences - Checkerboard - Split View Port Horizontal - .. note:: + .. note:: The stereo pair type selected in this combobox is applied for all existing VTK 3D views with stereo rendering already turned on within the same SALOME GUI session. It is not possible to use different stereo modes in several VTK 3D views at the same time within the same SALOME GUI session. - **Anaglyph filter** - specifies the format of anaglyph stereo pair: @@ -231,9 +231,9 @@ VTK 3D Viewer Preferences - **Enable quad-buffer support** - allows quad-buffered rendering. - .. note:: + .. note:: It is neccessary to enable quad-buffered stereoscopic rendering manually in graphic driver settings. SALOME does not do it automatically. - .. note:: + .. note:: All existing VTK 3D views should be re-created for quad-buffer support. - **Selection** @@ -241,7 +241,7 @@ VTK 3D Viewer Preferences - **Preselection** - allows to choose among three possible preselection modes: - **Standard** - this mode works quickly, by checking only bounding boxes of objects. It does not deal with the order of actors in the view or with their data (points/ cells). - - **Dynamic** - works directly with cells of actors, which provides the exact area of preselection. This mode is much more slower. + - **Dynamic** - works directly with cells of actors, which provides the exact area of preselection. This mode is much more slower. - **Disabled** - switches off the preselection. - **Enable selection** - switches selection on/off. @@ -250,13 +250,13 @@ VTK 3D Viewer Preferences - **Decrease Speed Increment** - decreases by 1 the speed increment used for the keyboard (same as [-] key). - **Increase Speed Increment** - increase by 1 the speed increment used for the keyboard (same as [+] key). - - **Dominant / combined switch** - toggles button to switch to dominant or combined movements. + - **Dominant / combined switch** - toggles button to switch to dominant or combined movements. - **AVI Recording** - **Mode** - allows to choose from two recording regimes: - - **Recording all displayed frames** - records exactly at the FPS rate specified by the user. + - **Recording all displayed frames** - records exactly at the FPS rate specified by the user. - **Recording at a given FPS** - records only when the contents of the viewer change (some activity is performed). In the AVI file non-recorded images are substituted with the copies of the latest recorded image, which produces files with lower quality but requires less system resources. - **FPS** - allows to define the FPS (frames per second) rate for the clip. Set greater value for better quality. @@ -278,15 +278,15 @@ Plot 2D Viewer Preferences :align: center - **Background color** - this submenu allows to select the background color. Click on the colored line to access to the :ref:`select_color_and_font_page` dialog box. -- **Selection color** - this submenu allows to select the color of selected object in the viewer. +- **Selection color** - this submenu allows to select the color of selected object in the viewer. - **Viewer** - allows specifying the properties of the Plot 2D Viewer. - **Curve Type** - this allows to set the representation of graphs in your presentations. You can see only **Points**, points connected with **Lines** or points connected with smooth **Splines**. - **Marker Size** - this submenu allows you to set the size of markers in your graphs. - **Horizontal** and **Vertical axis scale** - this submenus allow you to set the scale for vertical and horizontal axes. It can be either **Linear** or **Logarithmic**. Note that the **Logarithmic** scale can be used only if the minimum value of corresponding component (abscissa or ordinate) of all points displayed in the viewer is greater than zero. If this condition is not met, the scale is switched to **Linear** automatically, even if it is set to **Logarithmic**. - - **Deviation marker color** - this submenu allows to select the color of the deviation marker. - - **Deviation marker line width** allows to define line width of the deviation marker. - - **Deviation marker tick size** allows to define size of the upper and lower horizontal lines of the deviation marker. + - **Deviation marker color** - this submenu allows to select the color of the deviation marker. + - **Deviation marker line width** allows to define line width of the deviation marker. + - **Deviation marker tick size** allows to define size of the upper and lower horizontal lines of the deviation marker. - **Legend** - allows specifying the properties of the legend. @@ -294,8 +294,8 @@ Plot 2D Viewer Preferences - **Legend Position** - this submenu allows to set the default position of the legend, it can be located to the left, to the right, on top or on bottom of the graph. - **Symbol type** you can select the type of legend item symbol from "Marker on line" or "Marker above line" - **Legend font** - this allows to set type and face for the font of Legend item. - - **Legend font color** - this allows to select the color of the font of the legend item. - - **Highlighted legend font color** - this submenu allows to select the color of the font of the selected legend item. + - **Legend font color** - this allows to select the color of the font of the legend item. + - **Highlighted legend font color** - this submenu allows to select the color of the font of the selected legend item. .. _default_python_preferences: @@ -305,7 +305,7 @@ Python Viewer Preferences .. image:: ../images/pref_salome_pythonviewer.png :align: center -.. note:: +.. note:: The following settings are default and will be applied only for newly created Python viewers. Customization of already opened viewers can be done using local :ref:`custom_python_preferences` called by clicking on the corresponding icon of :ref:`python_viewer_page`. - **Font settings** allows setting font variant, size and style. @@ -368,13 +368,13 @@ Object Browser Preferences - **Default columns** - these checkboxes allow to display or hide **Value**, **Entry**, **IOR** and **Reference entry** columns in the Object Browser. -Shortcuts Preferences +Shortcut Preferences ##################### .. image:: ../images/pref_salome_shortcuts.png :align: center -- **Shortcuts settings** widget allows to define custom shortcuts for various operations. To change keyboard sequence for a certain action - select the action and press the custom keys combination. +- **Shortcut settings** widget allows to define custom shortcuts for various operations. To change keyboard sequence for a certain action - select the action and press the custom keys combination. :ref:`select_color_and_font_page`: "Font and color preferences" @@ -383,7 +383,7 @@ are most oftenly used types of user settings. When you change settings (click **OK** or **Apply** button) each module receives the notification about what preferences are changed. You can also click **Defaults** button to restore default preferences or **Close** -button to quit the dialog box without any changes. +button to quit the dialog box without any changes. **Import** button allows loading specific user file containing preferences from any location at the computer through a standard @@ -400,7 +400,7 @@ separate preferences file for each SALOME version in use. Preferences are saved to the file in the end of the working session and restored at the application start-up. -.. note:: +.. note:: The preferences you set will be default preferences for all **new** objects, but they are not retroactive and do not automatically apply to the existing objects. diff --git a/doc/salome/gui/locale/fr/LC_MESSAGES/setting_preferences.po b/doc/salome/gui/locale/fr/LC_MESSAGES/setting_preferences.po index 81d695f41..b5adda1b9 100644 --- a/doc/salome/gui/locale/fr/LC_MESSAGES/setting_preferences.po +++ b/doc/salome/gui/locale/fr/LC_MESSAGES/setting_preferences.po @@ -1175,7 +1175,7 @@ msgstr "" # e081f044dacf408690aa128eca010f21 #: ../../../../../../SRC/GUI_SRC/doc/salome/gui/input/setting_preferences.rst:357 msgid "" -"**Shortcuts settings** widget allows to define custom shortcuts for " +"**Shortcut settings** widget allows to define custom shortcuts for " "various operations. To change keyboard sequence for a certain action - " "select the action and press the custom keys combination." msgstr "" diff --git a/src/CAM/CAM_Module.cxx b/src/CAM/CAM_Module.cxx index 79b911de5..a88c8e721 100644 --- a/src/CAM/CAM_Module.cxx +++ b/src/CAM/CAM_Module.cxx @@ -34,6 +34,7 @@ #include #include #include +#include #include @@ -640,7 +641,7 @@ int CAM_Module::createMenu( const QString& subMenu, const int menu, { if ( !menuMgr() ) return -1; - + return menuMgr()->insert( subMenu, menu, group, id, idx, menuObj ); } @@ -704,7 +705,7 @@ int CAM_Module::createMenu( QAction* a, const int menu, const int id, const int { if ( !a || !menuMgr() ) return -1; - + ActionMgrLocker lock( menuMgr(), !myMenuShown ); int regId = registerAction( id, a ); @@ -754,7 +755,7 @@ int CAM_Module::createMenu( QAction* a, const QString& menu, const int id, const if ( !myMenuShown ) setMenuShown( a, false ); - + return intId != -1 ? regId : -1; } @@ -932,6 +933,11 @@ void CAM_Module::setToolShown( const int id, const bool on ) setToolShown( action( id ), on ); } +QString CAM_Module::makeActionID(const QString& theInModuleActionID) const +{ + return SUIT_ShortcutMgr::makeActionID(name(), theInModuleActionID); +} + /*! \brief Get action by specified \a id. \param id action ID @@ -978,18 +984,19 @@ int CAM_Module::actionId( const QAction* a ) const \param icon action icon \param menu menu text \param tip status bar tip - \param key keyboard accelerator + \param key will be disabled by SUIT_ShortcutMgr! \param parent parent object \param toggle if \c true, the action will be toggled \param reciever action activation signal receiver object \param member action activation signal receiver slot + \param inModuleActionID module-unique action ID */ QAction* CAM_Module::createAction( const int id, const QString& text, const QIcon& icon, const QString& menu, const QString& tip, const int key, QObject* parent, const bool toggle, QObject* reciever, - const char* member, const QString& shortcutAction ) + const char* member, const QString& inModuleActionID ) { - return createAction( id, text, icon, menu, tip, QKeySequence(key), parent, toggle, reciever, member, shortcutAction ); + return createAction( id, text, icon, menu, tip, QKeySequence(key), parent, toggle, reciever, member, inModuleActionID ); } /*! @@ -1005,18 +1012,20 @@ QAction* CAM_Module::createAction( const int id, const QString& text, const QIco \param icon action icon \param menu menu text \param tip status bar tip - \param key keyboard accelerator + \param key will be disabled by SUIT_ShortcutMgr! \param parent parent object \param toggle if \c true, the action will be toggled \param reciever action activation signal receiver object \param member action activation signal receiver slot + \param inModuleActionID module-unique action ID */ QAction* CAM_Module::createAction( const int id, const QString& text, const QIcon& icon, const QString& menu, const QString& tip, const QKeySequence& key, QObject* parent, const bool toggle, QObject* reciever, - const char* member, const QString& shortcutAction ) + const char* member, const QString& inModuleActionID ) { - QtxAction* a = new QtxAction( text, icon, menu, key, parent, toggle, shortcutAction ); + const QString actionID = makeActionID(inModuleActionID); + QtxAction* a = new QtxAction( text, icon, menu, key, parent, toggle, actionID ); a->setStatusTip( tip ); connect( a, SIGNAL( triggered( bool ) ), this, SLOT( moduleActionActivated() ), Qt::UniqueConnection ); diff --git a/src/CAM/CAM_Module.h b/src/CAM/CAM_Module.h index 7956b982f..20df84831 100644 --- a/src/CAM/CAM_Module.h +++ b/src/CAM/CAM_Module.h @@ -98,6 +98,8 @@ public: QtxActionMenuMgr* menuMgr() const; QtxActionToolMgr* toolMgr() const; + QString makeActionID(const QString& theInModuleActionID) const; + virtual QAction* action( const int ) const; virtual int actionId( const QAction* ) const; virtual QAction* createAction( const int, const QString&, const QIcon&, const QString&, @@ -125,7 +127,7 @@ public: virtual void logAction( QAction* ); bool isActionLoggingEnabled() const; void setActionLoggingEnabled( bool ); - + static QAction* separator(); public slots: @@ -144,7 +146,7 @@ public slots: private slots: void onInfoChanged( QString ); -protected: +protected: virtual bool isSelectionCompatible(); virtual CAM_DataModel* createDataModel(); @@ -170,7 +172,7 @@ private: QMap myActionMap; //!< menu actions bool myMenuShown; //!< menu shown flag bool myToolShown; //!< tool shown flag - bool myActionLoggingEnabled; //!< action logging enabled + bool myActionLoggingEnabled; //!< action logging enabled friend class CAM_Application; }; diff --git a/src/LightApp/LightApp_Application.cxx b/src/LightApp/LightApp_Application.cxx index 4152f174b..c897f7930 100644 --- a/src/LightApp/LightApp_Application.cxx +++ b/src/LightApp/LightApp_Application.cxx @@ -642,21 +642,14 @@ LightApp_SelectionMgr* LightApp_Application::selectionMgr() const /*!Creat action "New window" for certain type of viewer:*/ void LightApp_Application::createActionForViewer( const int id, const int parentId, - const QString& suffix, - const int accel ) + const QString& suffix ) { QString vtlt = tr( QString( "NEW_WINDOW_%1" ).arg( suffix ).toLatin1().constData() ); QString tip = tr( "CREATING_NEW_WINDOW" ).arg( vtlt.remove( "&" ) ); - QAction* a = createAction( id, // menu action id - tip, // status tip - QIcon(), // icon - vtlt, // menu text - tip, // tooltip - accel, // shortcut - desktop(), // parent - false, // toggle flag - this, // receiver - SLOT( onNewWindow() ) ); // slot + QAction* a = createAction(id, desktop(), false /*toggle*/, "/PRP_CREATE_NEW_WINDOW_FOR_VIEWER_" + suffix, + tip, vtlt, tip, QIcon(), + this, SLOT(onNewWindow())); + createMenu( a, parentId, -1 ); } @@ -672,7 +665,7 @@ void LightApp_Application::createActions() // Preferences createAction( PreferencesId, tr( "TOT_DESK_PREFERENCES" ), QIcon(), tr( "MEN_DESK_PREFERENCES" ), tr( "PRP_DESK_PREFERENCES" ), - Qt::CTRL+Qt::Key_P, desk, false, this, SLOT( onPreferences() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onPreferences() ), "/PRP_DESK_PREFERENCES" ); // Help menu @@ -800,6 +793,11 @@ void LightApp_Application::createActions() createAction( CloseId, tr( "TOT_CLOSE" ), QIcon(), tr( "MEN_DESK_CLOSE" ), tr( "PRP_CLOSE" ), Qt::CTRL+Qt::Key_F4, desk, false, this, SLOT( onCloseWindow() ) ); + + createAction( CloseId, desk, false /*toggle*/, "/PRP_CLOSE", + tr( "TOT_CLOSE" ), tr( "MEN_DESK_CLOSE" ), tr( "PRP_CLOSE" ), QIcon(), + this, SLOT( onCloseWindow() ) ); + createAction( CloseAllId, tr( "TOT_CLOSE_ALL" ), QIcon(), tr( "MEN_DESK_CLOSE_ALL" ), tr( "PRP_CLOSE_ALL" ), 0, desk, false, this, SLOT( onCloseAllWindow() ) ); createAction( GroupAllId, tr( "TOT_GROUP_ALL" ), QIcon(), tr( "MEN_DESK_GROUP_ALL" ), tr( "PRP_GROUP_ALL" ), @@ -811,38 +809,40 @@ void LightApp_Application::createActions() createMenu( separator(), windowMenu, -1, 0 ); #ifndef DISABLE_GLVIEWER - createActionForViewer( NewGLViewId, newWinMenu, QString::number( 0 ), Qt::ALT+Qt::Key_G ); + createActionForViewer( NewGLViewId, newWinMenu, QString::number( 0 ) ); #endif #ifndef DISABLE_PLOT2DVIEWER - createActionForViewer( NewPlot2dId, newWinMenu, QString::number( 1 ), Qt::ALT+Qt::Key_P ); + createActionForViewer( NewPlot2dId, newWinMenu, QString::number( 1 ) ); #endif #ifndef DISABLE_OCCVIEWER - createActionForViewer( NewOCCViewId, newWinMenu, QString::number( 2 ), Qt::ALT+Qt::Key_O ); + createActionForViewer( NewOCCViewId, newWinMenu, QString::number( 2 ) ); #endif #ifndef DISABLE_VTKVIEWER - createActionForViewer( NewVTKViewId, newWinMenu, QString::number( 3 ), Qt::ALT+Qt::Key_K ); + createActionForViewer( NewVTKViewId, newWinMenu, QString::number( 3 ) ); #endif #ifndef DISABLE_QXGRAPHVIEWER - createActionForViewer( NewQxSceneViewId, newWinMenu, QString::number( 4 ), Qt::ALT+Qt::Key_S ); + createActionForViewer( NewQxSceneViewId, newWinMenu, QString::number( 4 ) ); #endif #ifndef DISABLE_GRAPHICSVIEW - createActionForViewer( NewGraphicsViewId, newWinMenu, QString::number( 5 ), Qt::ALT+Qt::Key_C ); + createActionForViewer( NewGraphicsViewId, newWinMenu, QString::number( 5 ) ); #endif #ifndef DISABLE_PVVIEWER - createActionForViewer( NewPVViewId, newWinMenu, QString::number( 6 ), Qt::ALT+Qt::Key_A ); + createActionForViewer( NewPVViewId, newWinMenu, QString::number( 6 ) ); #endif #ifndef DISABLE_PYVIEWER - createActionForViewer( NewPyViewerId, newWinMenu, QString::number( 7 ), Qt::ALT+Qt::Key_Y ); + createActionForViewer( NewPyViewerId, newWinMenu, QString::number( 7 ) ); #endif #ifndef DISABLE_PV3DVIEWER - createActionForViewer( NewPV3DViewId, newWinMenu, QString::number( 8 ), Qt::ALT+Qt::Key_3 ); + createActionForViewer( NewPV3DViewId, newWinMenu, QString::number( 8 ) ); #endif #ifndef DISABLE_QTVIEWER createActionForViewer( NewQtViewId, newWinMenu, QString::number( 9 ), Qt::ALT+Qt::Key_Q ); #endif - createAction( RenameId, tr( "TOT_RENAME" ), QIcon(), tr( "MEN_DESK_RENAME" ), tr( "PRP_RENAME" ), - Qt::ALT+Qt::SHIFT+Qt::Key_R, desk, false, this, SLOT( onRenameWindow() ) ); + createAction( RenameId, desk, false /*toggle*/, "/PRP_RENAME", + tr( "TOT_RENAME" ), tr( "MEN_DESK_RENAME" ), tr( "PRP_RENAME" ), QIcon(), + this, SLOT( onRenameWindow() ) ); + createMenu( RenameId, windowMenu, -1 ); int fileMenu = createMenu( tr( "MEN_DESK_FILE" ), -1 ); @@ -859,7 +859,7 @@ void LightApp_Application::createActions() #endif // USE_SALOME_STYLE createAction( FullScreenId, tr( "TOT_FULLSCREEN" ), QIcon(), tr( "MEN_DESK_FULLSCREEN" ), tr( "PRP_FULLSCREEN" ), - Qt::Key_F11, desk, false, this, SLOT( onFullScreen() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onFullScreen() ), "/PRP_FULLSCREEN" ); int viewMenu = createMenu( tr( "MEN_DESK_VIEW" ), -1 ); @@ -1236,7 +1236,7 @@ void LightApp_Application::onExtRemoving(const QString& title) MESSAGE("Removing of an extension was cancelled"); return; // cancelled } - + if (activeStudy() && activeStudy()->isModified() && !onSaveDoc()) { // doc is not saved, or saving cancelled @@ -2470,7 +2470,7 @@ void LightApp_Application::showPreferences( const QStringList& path ) resourceMgr()->save(); // Update shortcuts - shortcutMgr()->updateShortcuts(); + shortcutMgr()->rebindActionsToKeySequences(); } delete prefDlg; @@ -3588,11 +3588,7 @@ void LightApp_Application::createPreferences( LightApp_Preferences* pref ) // .. "Shortcuts" preferences tab <> int shortcutTab = pref->addPreference( tr( "PREF_TAB_SHORTCUTS" ), salomeCat ); - // ... "Shortcuts settings" group <> - int shortcutGroup = pref->addPreference( tr( "PREF_GROUP_SHORTCUTS" ), shortcutTab ); - pref->addPreference( tr( "" ), shortcutGroup, - LightApp_Preferences::ShortcutTree, "shortcuts" ); - // ... "Shortcuts settings" group <> + pref->addPreference( tr( "" ), shortcutTab, LightApp_Preferences::ShortcutTree, "shortcuts" ); // .. "Shortcuts" preferences tab <> // . Top-level "SALOME" preferences group <> diff --git a/src/LightApp/LightApp_Application.h b/src/LightApp/LightApp_Application.h index 1bfb1345e..3b02baca1 100644 --- a/src/LightApp/LightApp_Application.h +++ b/src/LightApp/LightApp_Application.h @@ -224,8 +224,7 @@ protected: virtual void customize(); virtual void createActionForViewer( const int id, const int parentId, - const QString& suffix, - const int accel ); + const QString& suffix ); virtual SUIT_Study* createNewStudy(); virtual QWidget* createWindow( const int ); virtual void defaultWindows( QMap& ) const; diff --git a/src/LightApp/LightApp_Module.cxx b/src/LightApp/LightApp_Module.cxx index 9b6bd7558..fe3abbf30 100644 --- a/src/LightApp/LightApp_Module.cxx +++ b/src/LightApp/LightApp_Module.cxx @@ -159,7 +159,7 @@ void LightApp_Module::contextMenuPopup( const QString& client, QMenu* menu, QStr /*!Update object browser. * For updating model or whole object browser use update() method can be used. */ -void LightApp_Module::updateObjBrowser( bool theIsUpdateDataModel, +void LightApp_Module::updateObjBrowser( bool theIsUpdateDataModel, SUIT_DataObject* theDataObject ) { if (!getApp()->objectBrowser()) @@ -242,7 +242,7 @@ bool LightApp_Module::activateModule( SUIT_Study* study ) if ( action(myErase) ) action(myErase)->setEnabled(true); - application()->shortcutMgr()->setSectionEnabled( moduleName() ); + application()->shortcutMgr()->setActionsWithPrefixInIDEnabled( moduleName() ); /* BUG 0020498 : The Entry column is always shown at module activation The registration of column is moved into LightApp_Application @@ -282,8 +282,8 @@ bool LightApp_Module::deactivateModule( SUIT_Study* study ) if ( action(myErase) ) action(myErase)->setEnabled(false); - application()->shortcutMgr()->setSectionEnabled( moduleName(), false ); - + application()->shortcutMgr()->setActionsWithPrefixInIDEnabled( moduleName(), false ); + /* BUG 0020498 : The Entry column is always shown at module activation QString EntryCol = QObject::tr( "ENTRY_COLUMN" ); LightApp_DataModel* m = dynamic_cast( dataModel() ); @@ -302,9 +302,9 @@ bool LightApp_Module::deactivateModule( SUIT_Study* study ) void LightApp_Module::studyClosed( SUIT_Study* theStudy ) { CAM_Module::studyClosed( theStudy ); - + myIsFirstActivate = true; - + LightApp_Application* app = dynamic_cast(application()); if ( app ) { SUIT_DataBrowser* ob = app->objectBrowser(); @@ -452,12 +452,12 @@ QtxPopupMgr* LightApp_Module::popupMgr() QPixmap p; SUIT_Desktop* d = application()->desktop(); - - QAction + + QAction *disp = createAction( -1, tr( "TOP_SHOW" ), p, tr( "MEN_SHOW" ), tr( "STB_SHOW" ), - 0, d, false, this, SLOT( onShowHide() ), QString("General:Show object(s)") ), + 0, d, false, this, SLOT( onShowHide() ), QString("#General/Object(s)/Show") ), *erase = createAction( -1, tr( "TOP_HIDE" ), p, tr( "MEN_HIDE" ), tr( "STB_HIDE" ), - 0, d, false, this, SLOT( onShowHide() ) , QString("General:Hide object(s)") ), + 0, d, false, this, SLOT( onShowHide() ) , QString("#General/Object(s)/Hide") ), *dispOnly = createAction( -1, tr( "TOP_DISPLAY_ONLY" ), p, tr( "MEN_DISPLAY_ONLY" ), tr( "STB_DISPLAY_ONLY" ), 0, d, false, this, SLOT( onShowHide() ) ), *eraseAll = createAction( -1, tr( "TOP_ERASE_ALL" ), p, tr( "MEN_ERASE_ALL" ), tr( "STB_ERASE_ALL" ), @@ -467,7 +467,7 @@ QtxPopupMgr* LightApp_Module::popupMgr() myDisplayOnly = actionId( dispOnly ); myEraseAll = actionId( eraseAll ); - myPopupMgr->insert( disp, -1, 0 ); + myPopupMgr->insert( disp, -1, 0 ); myPopupMgr->insert( erase, -1, 0 ); myPopupMgr->insert( dispOnly, -1, 0 ); myPopupMgr->insert( eraseAll, -1, 0 ); @@ -616,7 +616,7 @@ void LightApp_Module::startOperation( const int id ) * * Creates operation with given id. You should not call this method, it will be called * automatically from startOperation. You may redefine this method in concrete module to -* create operations. +* create operations. */ LightApp_Operation* LightApp_Module::createOperation( const int id ) const { @@ -711,7 +711,7 @@ void LightApp_Module::onViewManagerRemoved( SUIT_ViewManager* ) /*! \brief Returns instance of operation by its id; if there is no operation corresponding to this id, null pointer is returned - \param id - operation id + \param id - operation id \return operation instance */ LightApp_Operation* LightApp_Module::operation( const int id ) const @@ -725,7 +725,7 @@ LightApp_Operation* LightApp_Module::operation( const int id ) const bool LightApp_Module::reusableOperation( const int /*id*/ ) { return true; -} +} /*! virtual method @@ -816,7 +816,7 @@ void LightApp_Module::updateModuleVisibilityState() // update visibility state of objects LightApp_Application* app = dynamic_cast(SUIT_Session::session()->activeApplication()); if ( !app ) return; - + SUIT_DataBrowser* ob = app->objectBrowser(); if ( !ob || !ob->model() ) return; @@ -834,9 +834,9 @@ void LightApp_Module::updateModuleVisibilityState() SUIT_DataObject* rootObj = ob->root(); if ( !rootObj ) return; - + DataObjectList listObj = rootObj->children( true ); - + SUIT_ViewModel* vmod = 0; if ( SUIT_ViewManager* vman = app->activeViewManager() ) vmod = vman->getViewModel(); @@ -861,15 +861,15 @@ void LightApp_Module::onObjectClicked( SUIT_DataObject* theObject, int theColumn LightApp_DataObject* lo = dynamic_cast( theObject ); if ( !lo ) return; - + // detect action index (from LightApp level) int id = -1; - + if ( study->visibilityState( lo->entry() ) == Qtx::ShownState ) id = myErase; else if ( study->visibilityState( lo->entry() ) == Qtx::HiddenState ) id = myDisplay; - + if ( id != -1 ) startOperation( id ); } diff --git a/src/LightApp/LightApp_PreferencesDlg.cxx b/src/LightApp/LightApp_PreferencesDlg.cxx index c747e034c..44de2ffa4 100644 --- a/src/LightApp/LightApp_PreferencesDlg.cxx +++ b/src/LightApp/LightApp_PreferencesDlg.cxx @@ -150,7 +150,7 @@ void LightApp_PreferencesDlg::onDefault() if ( myPrefs && myPrefs->resourceMgr() ) { QtxResourceMgr::WorkingMode prev = myPrefs->resourceMgr()->setWorkingMode( QtxResourceMgr::IgnoreUserValues ); - myPrefs->retrieve(); + myPrefs->retrieveDefault(); myPrefs->resourceMgr()->setWorkingMode( prev ); } emit defaultPressed(); diff --git a/src/LightApp/resources/LightApp.xml b/src/LightApp/resources/LightApp.xml index 3fa9fb424..90062e08a 100644 --- a/src/LightApp/resources/LightApp.xml +++ b/src/LightApp/resources/LightApp.xml @@ -148,7 +148,7 @@ - + @@ -250,28 +250,55 @@ - -
- +
+
-
- - -
-
- - - - - - - -
-
- - - - + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/LightApp/resources/LightApp_msg_en.ts b/src/LightApp/resources/LightApp_msg_en.ts index f17c70c5a..90c371e24 100644 --- a/src/LightApp/resources/LightApp_msg_en.ts +++ b/src/LightApp/resources/LightApp_msg_en.ts @@ -1097,7 +1097,7 @@ File does not exist PREF_GROUP_SHORTCUTS - Shortcuts settings + Shortcut settings PREF_GROUP_FULL_SCREEN diff --git a/src/OCCViewer/OCCViewer_ViewWindow.cxx b/src/OCCViewer/OCCViewer_ViewWindow.cxx index 480c7cbe8..3a5336bee 100644 --- a/src/OCCViewer/OCCViewer_ViewWindow.cxx +++ b/src/OCCViewer/OCCViewer_ViewWindow.cxx @@ -242,7 +242,7 @@ const char* imageCrossCursor[] = { "................................", "................................"}; - + /*! \brief Constructor \param theDesktop main window of application @@ -1285,42 +1285,42 @@ void OCCViewer_ViewWindow::createActions() // Projections aAction = new QtxAction(tr("MNU_FRONT_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_FRONT" ) ), - tr( "MNU_FRONT_VIEW" ), 0, this, false, "Viewers:Front view"); + tr( "MNU_FRONT_VIEW" ), 0, this, false, "/#Viewers/View/Set X-"); aAction->setStatusTip(tr("DSC_FRONT_VIEW")); connect(aAction, SIGNAL(triggered()), this, SLOT(onFrontView())); this->addAction(aAction); toolMgr()->registerAction( aAction, FrontId ); aAction = new QtxAction(tr("MNU_BACK_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_BACK" ) ), - tr( "MNU_BACK_VIEW" ), 0, this, false, "Viewers:Back view"); + tr( "MNU_BACK_VIEW" ), 0, this, false, "/#Viewers/View/Set X+"); aAction->setStatusTip(tr("DSC_BACK_VIEW")); connect(aAction, SIGNAL(triggered()), this, SLOT(onBackView())); this->addAction(aAction); toolMgr()->registerAction( aAction, BackId ); aAction = new QtxAction(tr("MNU_TOP_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_TOP" ) ), - tr( "MNU_TOP_VIEW" ), 0, this, false, "Viewers:Top view"); + tr( "MNU_TOP_VIEW" ), 0, this, false, "/#Viewers/View/Set Z-"); aAction->setStatusTip(tr("DSC_TOP_VIEW")); connect(aAction, SIGNAL(triggered()), this, SLOT(onTopView())); this->addAction(aAction); toolMgr()->registerAction( aAction, TopId ); aAction = new QtxAction(tr("MNU_BOTTOM_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_BOTTOM" ) ), - tr( "MNU_BOTTOM_VIEW" ), 0, this, false, "Viewers:Bottom view"); + tr( "MNU_BOTTOM_VIEW" ), 0, this, false, "/#Viewers/View/Set Z+"); aAction->setStatusTip(tr("DSC_BOTTOM_VIEW")); connect(aAction, SIGNAL(triggered()), this, SLOT(onBottomView())); this->addAction(aAction); toolMgr()->registerAction( aAction, BottomId ); aAction = new QtxAction(tr("MNU_LEFT_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_LEFT" ) ), - tr( "MNU_LEFT_VIEW" ), 0, this, false, "Viewers:Left view"); + tr( "MNU_LEFT_VIEW" ), 0, this, false, "/#Viewers/View/Set Y+"); aAction->setStatusTip(tr("DSC_LEFT_VIEW")); connect(aAction, SIGNAL(triggered()), this, SLOT(onLeftView())); this->addAction(aAction); toolMgr()->registerAction( aAction, LeftId ); aAction = new QtxAction(tr("MNU_RIGHT_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_RIGHT" ) ), - tr( "MNU_RIGHT_VIEW" ), 0, this, false, "Viewers:Right view"); + tr( "MNU_RIGHT_VIEW" ), 0, this, false, "/#Viewers/View/Set Y-"); aAction->setStatusTip(tr("DSC_RIGHT_VIEW")); connect(aAction, SIGNAL(triggered()), this, SLOT(onRightView())); this->addAction(aAction); @@ -1328,7 +1328,7 @@ void OCCViewer_ViewWindow::createActions() // rotate anticlockwise aAction = new QtxAction(tr("MNU_ANTICLOCKWISE_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_ANTICLOCKWISE" ) ), - tr( "MNU_ANTICLOCKWISE_VIEW" ), 0, this, false, "Viewers:Rotate anticlockwise"); + tr( "MNU_ANTICLOCKWISE_VIEW" ), 0, this, false, "/#Viewers/View/Rotate anticlockwise"); aAction->setStatusTip(tr("DSC_ANTICLOCKWISE_VIEW")); connect(aAction, SIGNAL(triggered()), this, SLOT(onAntiClockWiseView())); this->addAction(aAction); @@ -1336,7 +1336,7 @@ void OCCViewer_ViewWindow::createActions() // rotate clockwise aAction = new QtxAction(tr("MNU_CLOCKWISE_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_CLOCKWISE" ) ), - tr( "MNU_CLOCKWISE_VIEW" ), 0, this, false, "Viewers:Rotate clockwise"); + tr( "MNU_CLOCKWISE_VIEW" ), 0, this, false, "/#Viewers/View/Rotate clockwise"); aAction->setStatusTip(tr("DSC_CLOCKWISE_VIEW")); connect(aAction, SIGNAL(triggered()), this, SLOT(onClockWiseView())); this->addAction(aAction); @@ -1371,10 +1371,10 @@ void OCCViewer_ViewWindow::createActions() aProjectionGroup->addAction( toolMgr()->action( OrthographicId ) ); aProjectionGroup->addAction( toolMgr()->action( PerspectiveId ) ); connect(aProjectionGroup, SIGNAL(triggered(QAction*)), this, SLOT(onProjectionType(QAction*))); - + // Reset aAction = new QtxAction(tr("MNU_RESET_VIEW"), aResMgr->loadPixmap( "OCCViewer", tr( "ICON_OCCVIEWER_VIEW_RESET" ) ), - tr( "MNU_RESET_VIEW" ), 0, this, false, "Viewers:Reset view"); + tr( "MNU_RESET_VIEW" ), 0, this, false, "/#Viewers/View/Reset"); aAction->setStatusTip(tr("DSC_RESET_VIEW")); connect(aAction, SIGNAL(triggered()), this, SLOT(onResetView())); this->addAction(aAction); @@ -1665,7 +1665,7 @@ void OCCViewer_ViewWindow::onFrontView() Handle(V3d_View) aView3d = myViewPort->getView(); if (myAutomaticZoom) { - if ( !aView3d.IsNull() ) + if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Xpos); onViewFitAll(); } @@ -1683,7 +1683,7 @@ void OCCViewer_ViewWindow::onBackView() Handle(V3d_View) aView3d = myViewPort->getView(); if (myAutomaticZoom) { - if ( !aView3d.IsNull() ) + if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Xneg); onViewFitAll(); } @@ -1701,7 +1701,7 @@ void OCCViewer_ViewWindow::onTopView() Handle(V3d_View) aView3d = myViewPort->getView(); if (myAutomaticZoom) { - if ( !aView3d.IsNull() ) + if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Zpos); onViewFitAll(); } @@ -1719,7 +1719,7 @@ void OCCViewer_ViewWindow::onBottomView() Handle(V3d_View) aView3d = myViewPort->getView(); if (myAutomaticZoom) { - if ( !aView3d.IsNull() ) + if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Zneg); onViewFitAll(); } @@ -1737,7 +1737,7 @@ void OCCViewer_ViewWindow::onLeftView() Handle(V3d_View) aView3d = myViewPort->getView(); if (myAutomaticZoom) { - if ( !aView3d.IsNull() ) + if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Yneg); onViewFitAll(); } @@ -1755,7 +1755,7 @@ void OCCViewer_ViewWindow::onRightView() Handle(V3d_View) aView3d = myViewPort->getView(); if (myAutomaticZoom) { - if ( !aView3d.IsNull() ) + if ( !aView3d.IsNull() ) aView3d->SetProj (V3d_Ypos); onViewFitAll(); } @@ -2420,7 +2420,7 @@ QImage OCCViewer_ViewWindow::dumpView() Image_PixMap aPix; view->ToPixMap(aPix, aWidth, aHeight, Graphic3d_BT_RGB); - + QImage anImage( aWidth, aHeight, QImage::Format_ARGB32 ); for ( int i = 0; i < aWidth; i++ ) { for ( int j = 0; j < aHeight; j++ ) { @@ -2429,7 +2429,7 @@ QImage OCCViewer_ViewWindow::dumpView() anImage.setPixelColor( i, j, color ); } } - + if ( aPix.IsTopDown() ) anImage = anImage.mirrored(); return anImage; @@ -3660,7 +3660,7 @@ void OCCViewer_ViewWindow::synchronize( SUIT_ViewWindow* theView ) aProps.getPosition( aPosition[0], aPosition[1], aPosition[2] ); aProps.getViewUp( anUpDir[0], anUpDir[1], anUpDir[2] ); aProps.getAxialScale( anAxialScale[0], anAxialScale[1], anAxialScale[2] ); - + try { aDestView->SetAt( aFocalPoint[0], aFocalPoint[1], aFocalPoint[2] ); aDestView->SetEye( aPosition[0], aPosition[1], aPosition[2] ); @@ -3670,7 +3670,7 @@ void OCCViewer_ViewWindow::synchronize( SUIT_ViewWindow* theView ) getViewPort()->setAxialScale( anAxialScale[0], anAxialScale[1], anAxialScale[2] ); aDestView->SetImmediateUpdate( Standard_True ); aDestView->Redraw(); - } + } catch (Standard_Failure&) { } diff --git a/src/Qtx/CMakeLists.txt b/src/Qtx/CMakeLists.txt index 571509786..f95706ef1 100644 --- a/src/Qtx/CMakeLists.txt +++ b/src/Qtx/CMakeLists.txt @@ -22,7 +22,10 @@ INCLUDE(UseQtExt) # --- options --- # additional include directories -INCLUDE_DIRECTORIES(${QT_INCLUDES}) +INCLUDE_DIRECTORIES( + ${QT_INCLUDES} + ${PROJECT_SOURCE_DIR}/src/SUIT +) # additional preprocessor / compiler flags ADD_DEFINITIONS(${QT_DEFINITIONS}) diff --git a/src/Qtx/Qtx.qrc b/src/Qtx/Qtx.qrc index e5017a8eb..dc31318e3 100644 --- a/src/Qtx/Qtx.qrc +++ b/src/Qtx/Qtx.qrc @@ -32,6 +32,8 @@ images/open.png images/close.png images/appicon.png + images/shortcut_disable.svg + images/shortcut_restore.svg - + diff --git a/src/Qtx/QtxAction.cxx b/src/Qtx/QtxAction.cxx index 83dd376f7..004207143 100644 --- a/src/Qtx/QtxAction.cxx +++ b/src/Qtx/QtxAction.cxx @@ -54,32 +54,30 @@ private: \class QtxAction \brief Generic action class. - The class QtxAction inherits QWidgetAction class and can be used + The class QtxAction inherits QWidgetAction class and can be used as base class when implementing any custom menu/toolbar actions. - It is necessary to subclass from QtxAction and redefine virtual + It is necessary to subclass from QtxAction and redefine virtual callback methods addedTo(), removedFrom() (which are called automatically when the action is added to the widget and removed from it) to customize - the action behavior. + the action behavior. */ /*! \brief Constructor. - Creates an action owned by \a parent. + Creates an action owned by \a parent. Parameter \a toggle can be used to make the action checkable. - Parameter \a shortcutAction can be used to assign the shortcut from - preferences. This parameter value corresponds to shortcut action identifier - in shortcut preferences. + Parameter \a ID is used to de(serialize) shortcut settings. \param parent parent object \param toggle if \c true the action will be a toggle action - \param shortcutAction shortcut action identifier + \param ID shortcut action identifier */ -QtxAction::QtxAction( QObject* parent, bool toggle, const QString& shortcutAction ) +QtxAction::QtxAction( QObject* parent, bool toggle, const QString& ID ) : QWidgetAction( parent ) { setCheckable( toggle ); - setShortcutActionName(shortcutAction); + setID(ID); QApplication::instance()->installEventFilter( this ); } @@ -88,30 +86,55 @@ QtxAction::QtxAction( QObject* parent, bool toggle, const QString& shortcutActio \brief Constructor. Creates an action owned by \a parent. Parameters \a text, - \a icon, \a menuText and \a accel specify the action's attributes. + \a menuText and \a ID specify the action's attributes. Parameter \a toggle can be used to make the action checkable. - Parameter \a shortcutAction can be used to assign the shortcut from - preferences. This parameter value corresponds to shortcut action identifier - in shortcut preferences. + Parameter \a ID is used to de(serialize) shortcut settings. + + \param parent parent object + \param toggle if \c true the action is a toggle action + \param ID shortcut action identifier + \param toolTip tooltip text + \param text menu text +*/ +QtxAction::QtxAction( QObject* parent, bool toggle, const QString& ID, + const QString& toolTip, const QString& text, const QIcon& icon ) +: QWidgetAction( parent ) +{ + setCheckable( toggle ); + setID(ID); + setToolTip( toolTip ); + setText( text ); + setIcon( icon ); + + QApplication::instance()->installEventFilter( this ); +} + +/*! + \brief Constructor. + + Creates an action owned by \a parent. Parameters \a text, + \a icon, \a menuText and \a ID specify the action's attributes. + Parameter \a toggle can be used to make the action checkable. + Parameter \a ID is used to de(serialize) shortcut settings. \param text tooltip text \param icon iconset \param menuText menu text - \param accel shortcut key sequence + \param accel will be disabled by SUIT_ShortcutMgr! \param parent parent object \param toggle if \c true the action will be a toggle action - \param shortcutAction shortcut action identifier + \param ID shortcut action identifier */ -QtxAction::QtxAction( const QString& text, const QIcon& icon, const QString& menuText, - int accel, QObject* parent, bool toggle, const QString& shortcutAction ) +QtxAction::QtxAction( const QString& text, const QIcon& icon, const QString& menuText, + int accel, QObject* parent, bool toggle, const QString& ID ) : QWidgetAction( parent ) { setIcon( icon ); setText( menuText ); setToolTip( text ); - setShortcut( accel ); setCheckable( toggle ); - setShortcutActionName(shortcutAction); + setID(ID); + setShortcut(accel); QApplication::instance()->installEventFilter( this ); } @@ -120,30 +143,28 @@ QtxAction::QtxAction( const QString& text, const QIcon& icon, const QString& men \brief Constructor. Creates an action owned by \a parent. Parameters \a text, - \a icon, \a menuText and \a accel specify the action's attributes. + \a icon, \a menuText and \a ID specify the action's attributes. Parameter \a toggle can be used to make the action checkable. - Parameter \a shortcutAction can be used to assign the shortcut from - preferences. This parameter value corresponds to shortcut action identifier - in shortcut preferences. + Parameter \a ID is used to de(serialize) shortcut settings. \param text tooltip text \param icon iconset \param menuText menu text - \param accel shortcut key sequence + \param accel will be disabled by SUIT_ShortcutMgr! \param parent parent object \param toggle if \c true the action will be a toggle action - \param shortcutAction shortcut action identifier + \param ID shortcut action identifier */ -QtxAction::QtxAction( const QString& text, const QIcon& icon, const QString& menuText, - const QKeySequence& accel, QObject* parent, bool toggle, const QString& shortcutAction ) +QtxAction::QtxAction( const QString& text, const QIcon& icon, const QString& menuText, + const QKeySequence& accel, QObject* parent, bool toggle, const QString& ID ) : QWidgetAction( parent ) { setIcon( icon ); setText( menuText ); setToolTip( text ); - setShortcut( accel ); setCheckable( toggle ); - setShortcutActionName(shortcutAction); + setID(ID); + setShortcut(accel); QApplication::instance()->installEventFilter( this ); } @@ -152,29 +173,27 @@ QtxAction::QtxAction( const QString& text, const QIcon& icon, const QString& men \brief Constructor. Creates an action owned by \a parent. Parameters \a text, - \a menuText and \a accel specify the action's attributes. + \a menuText and \a ID specify the action's attributes. Parameter \a toggle can be used to make the action checkable. - Parameter \a shortcutAction can be used to assign the shortcut from - preferences. This parameter value corresponds to shortcut action identifier - in shortcut preferences. + Parameter \a ID is used to de(serialize) shortcut settings. \param text tooltip text \param menuText menu text - \param accel shortcut key sequence + \param accel will be disabled by SUIT_ShortcutMgr! \param parent parent object \param toggle if \c true the action is a toggle action - \param shortcutAction shortcut action identifier + \param ID shortcut action identifier */ QtxAction::QtxAction( const QString& text, const QString& menuText, - int accel, QObject* parent, bool toggle, const QString& shortcutAction ) + int accel, QObject* parent, bool toggle, const QString& ID ) : QWidgetAction( parent ) { setText( menuText ); setToolTip( text ); - setShortcut( accel ); setCheckable( toggle ); - setShortcutActionName(shortcutAction); - + setID(ID); + setShortcut(accel); + QApplication::instance()->installEventFilter( this ); } @@ -182,29 +201,27 @@ QtxAction::QtxAction( const QString& text, const QString& menuText, \brief Constructor. Creates an action owned by \a parent. Parameters \a text, - \a menuText and \a accel specify the action's attributes. + \a menuText and \a ID specify the action's attributes. Parameter \a toggle can be used to make the action checkable. - Parameter \a shortcutAction can be used to assign the shortcut from - preferences. This parameter value corresponds to shortcut action identifier - in shortcut preferences. + Parameter \a ID is used to de(serialize) shortcut settings. \param text tooltip text \param menuText menu text - \param accel shortcut key sequence + \param accel will be disabled by SUIT_ShortcutMgr! \param parent parent object \param toggle if \c true the action is a toggle action - \param shortcutAction shortcut action identifier + \param ID shortcut action identifier */ QtxAction::QtxAction( const QString& text, const QString& menuText, - const QKeySequence& accel, QObject* parent, bool toggle, const QString& shortcutAction ) + const QKeySequence& accel, QObject* parent, bool toggle, const QString& ID ) : QWidgetAction( parent ) { setText( menuText ); setToolTip( text ); - setShortcut( accel ); setCheckable( toggle ); - setShortcutActionName(shortcutAction); - + setID(ID); + setShortcut(accel); + QApplication::instance()->installEventFilter( this ); } @@ -217,8 +234,8 @@ QtxAction::~QtxAction() /*! \brief Customize action events. - - Sends a notification event to the action when it is added to + + Sends a notification event to the action when it is added to the widget or removed from it in order to perform custom processing. \param o object @@ -238,11 +255,29 @@ bool QtxAction::eventFilter( QObject* o, QEvent* e ) return QWidgetAction::eventFilter( o, e ); } +QString QtxAction::shortcutActionName() const +{ + return myID; +} + +void QtxAction::setShortcutActionName( const QString& shortcutAction ) +{ + myID = shortcutAction; +} + +const QString& QtxAction::ID() const { + return myID; +} + +void QtxAction::setID( const QString& theID) { + myID = theID; +} + /*! \brief Called when the action is added to the widget. - This method can be redefined in the subclasses to customize - the action behavior. Base implementation does nothing. + This method can be redefined in the subclasses to customize + the action behavior. Base implementation does nothing. \param w widget (should be menu or toolbar) \sa removedFrom() @@ -266,7 +301,7 @@ void QtxAction::removedFrom( QWidget* /*w*/ ) /*! \brief Process notification events. - + Calls addedTo() method when the action is added to the widget and removedFrom() when it is removed from the widget in order to perform custom processing. @@ -285,27 +320,3 @@ void QtxAction::customEvent( QEvent* e ) else removedFrom( ae->widget() ); } - -/*! - \brief Return shortcut action name for the action. - - \return shortcut action name - \sa setShortcutActionName() -*/ -QString QtxAction::shortcutActionName() const -{ - return myShortcutActionName; -} - -/*! - \brief Set shortcut action name to the action. - - Shortcut action name is used for shortcuts customization. - - \param shortcutAction shortcut action name - \sa shortcutActionName() -*/ -void QtxAction::setShortcutActionName( const QString& shortcutAction ) -{ - myShortcutActionName = shortcutAction; -} diff --git a/src/Qtx/QtxAction.h b/src/Qtx/QtxAction.h index cb36f3f64..a286a6ab6 100644 --- a/src/Qtx/QtxAction.h +++ b/src/Qtx/QtxAction.h @@ -29,8 +29,7 @@ #include "Qtx.h" #include - -class QIcon; +#include #ifdef WIN32 #pragma warning ( disable:4251 ) @@ -44,17 +43,25 @@ class QTX_EXPORT QtxAction : public QWidgetAction public: QtxAction( QObject* = 0, bool = false, const QString& = QString() ); - QtxAction( const QString&, const QString&, int, QObject*, bool = false, const QString& = QString() ); + QtxAction( QObject*, bool, const QString&, const QString&, const QString& = QString(), const QIcon& = QIcon()); + QtxAction( const QString&, const QString&, int , QObject*, bool = false, const QString& = QString() ); QtxAction( const QString&, const QString&, const QKeySequence&, QObject*, bool = false, const QString& = QString() ); - QtxAction( const QString&, const QIcon&, const QString&, int, QObject*, bool = false, const QString& = QString() ); + QtxAction( const QString&, const QIcon&, const QString&, int , QObject*, bool = false, const QString& = QString() ); QtxAction( const QString&, const QIcon&, const QString&, const QKeySequence&, QObject*, bool = false, const QString& = QString() ); virtual ~QtxAction(); virtual bool eventFilter( QObject*, QEvent* ); + [[deprecated("Use ID() instead.")]] QString shortcutActionName() const; + + [[deprecated("Use setID() instead.")]] void setShortcutActionName( const QString& ); + /** Unique for the entire application ID. */ + const QString& ID() const; + void setID( const QString& theID); + protected: virtual void addedTo( QWidget* ); virtual void removedFrom( QWidget* ); @@ -62,7 +69,7 @@ protected: virtual void customEvent( QEvent* ); private: - QString myShortcutActionName; + QString myID; }; #ifdef WIN32 diff --git a/src/Qtx/QtxPagePrefMgr.cxx b/src/Qtx/QtxPagePrefMgr.cxx index d0d861ed0..b81bcfb19 100644 --- a/src/Qtx/QtxPagePrefMgr.cxx +++ b/src/Qtx/QtxPagePrefMgr.cxx @@ -34,6 +34,8 @@ #include "QtxBackgroundTool.h" #include "QtxResourceMgr.h" +#include "SUIT_ShortcutMgr.h" + #include #include #include @@ -2216,7 +2218,7 @@ void QtxPagePrefEditItem::setDecimals( const int dec ) { if ( myDecimals == dec ) return; - + myDecimals = dec; updateEditor(); } @@ -2237,10 +2239,10 @@ int QtxPagePrefEditItem::echoMode() const \sa echoMode() */ void QtxPagePrefEditItem::setEchoMode( const int echo ) -{ +{ if ( myEchoMode == echo ) return; - + myEchoMode = echo; updateEditor(); } @@ -2329,7 +2331,7 @@ void QtxPagePrefEditItem::updateEditor() default: myEditor->setEchoMode(QLineEdit::Normal); } - + QValidator* val = 0; switch ( inputType() ) { @@ -2370,14 +2372,14 @@ QtxPagePrefSliderItem::QtxPagePrefSliderItem( const QString& title, QtxPreferenc { setControl( mySlider = new QSlider( Qt::Horizontal ) ); widget()->layout()->addWidget( myLabel = new QLabel( ) ); - + setMinimum( 0 ); setMaximum( 0 ); setSingleStep( 1 ); setPageStep( 1 ); - + mySlider->setTickPosition( QSlider::TicksBothSides ); - + connect (mySlider, SIGNAL(valueChanged(int)), this, SLOT(setIcon(int))); updateSlider(); } @@ -2488,17 +2490,17 @@ void QtxPagePrefSliderItem::setMaximum( const int& max ) */ void QtxPagePrefSliderItem::setIcons( const QList& icns ) { - if ( icns.isEmpty() ) + if ( icns.isEmpty() ) return; myIcons = icns; - - QSize maxsize(0, 0); + + QSize maxsize(0, 0); for ( QList::const_iterator it = myIcons.begin(); it != myIcons.end(); ++it ) { if ( (*it).isNull() ) continue; maxsize = maxsize.expandedTo( (*it).availableSizes().first() ); } myLabel->setFixedSize( maxsize ); - + updateSlider(); } @@ -2597,13 +2599,13 @@ void QtxPagePrefSliderItem::updateSlider() control()->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ); mySlider->setFocusPolicy(Qt::StrongFocus); - + mySlider->setValue( val ); setSingleStep( stp ); setPageStep( ptp ); setMinimum( min ); setMaximum( max ); - + myLabel->setVisible( !myIcons.empty() ); widget()->layout()->setSpacing( !myIcons.empty() ? 6 : 0 ); } @@ -2781,7 +2783,7 @@ void QtxPagePrefSelectItem::setNumbers( const QList& ids ) for ( QList::const_iterator it = ids.begin(); it != ids.end(); ++it, i++ ) { if ( i >= mySelector->count() ) mySelector->addItem(QString("") ); - + mySelector->setId( i, *it ); } } @@ -2831,7 +2833,7 @@ void QtxPagePrefSelectItem::store() void QtxPagePrefSelectItem::retrieve() { QString txt = getString(); - + // try to find via the id int idx = mySelector->index( txt ); if ( idx < 0 ) @@ -3539,7 +3541,7 @@ void QtxPagePrefColorItem::retrieve() \brief GUI implementation of the resources item to store a bi-color value. The main color is specified explicitly. The secondary color is calculated - by changing "value" and "saturation" parameters of the main color in the + by changing "value" and "saturation" parameters of the main color in the HSV notation using specified delta. */ @@ -3700,10 +3702,10 @@ void QtxPagePrefFontItem::setFeatures( const int f ) } /*! - \brief Specifies whether widget works in Native or Custom mode. Native mode - is intended for working with system fonts. Custom mode is intended for - working with manually defined set of fonts. Set of custom fonts can be - specified with setFonts() method + \brief Specifies whether widget works in Native or Custom mode. Native mode + is intended for working with system fonts. Custom mode is intended for + working with manually defined set of fonts. Set of custom fonts can be + specified with setFonts() method \param mode mode from QtxFontEdit::Mode enumeration \sa mode() */ @@ -3723,7 +3725,7 @@ int QtxPagePrefFontItem::mode() const } /*! - \brief Sets list of custom fonts. + \brief Sets list of custom fonts. This method is intended for working in Custom mode only. \param fams list of families \sa fonts(), setMode() @@ -3734,7 +3736,7 @@ void QtxPagePrefFontItem::setFonts( const QStringList& fams ) } /*! - \brief Gets list of custom fonts + \brief Gets list of custom fonts \return list of families \sa setFonts(), setMode() */ @@ -3744,8 +3746,8 @@ QStringList QtxPagePrefFontItem::fonts() const } /*! - \brief Sets list of available font sizes. - This method is intended for working in Custom mode only. The list of sizes can + \brief Sets list of available font sizes. + This method is intended for working in Custom mode only. The list of sizes can be empty. In this case system generate listof size automatically from 8 till 72. \param sizes list of sizes \sa sizes(), setMode() @@ -3756,7 +3758,7 @@ void QtxPagePrefFontItem::setSizes( const QList& sizes ) } /*! - \brief Gets list of custom fonts + \brief Gets list of custom fonts \return list of families \sa setFonts(), setMode() */ @@ -4454,119 +4456,68 @@ void QtxPagePrefDateTimeItem::updateDateTime() myDateTime->setDisplayFormat( dispFmt ); } -/*! - \brief Constructor. - \param title preference item title - \param parent parent preference item - \param sect resource file section associated with the preference item - \param param resource file parameter associated with the preference item -*/ -QtxPagePrefShortcutBtnsItem::QtxPagePrefShortcutBtnsItem( const QString& title, QtxPreferenceItem* parent, const QString& sect, - const QString& param ): QtxPageNamedPrefItem( title, parent, sect, param ) -{ - setControl( myShortcut = new QtxShortcutEdit() ); -} - -/*! - \brief Destructor. -*/ -QtxPagePrefShortcutBtnsItem::~QtxPagePrefShortcutBtnsItem() -{ -} /*! - \brief Store preference item to the resource manager. - \sa retrieve() + \brief Creates preference item for editing of key bindings + \param theParent parent preference item. Must not be nullptr. */ -void QtxPagePrefShortcutBtnsItem::store() +QtxPagePrefShortcutTreeItem::QtxPagePrefShortcutTreeItem(QtxPreferenceItem* theParent) + : QtxPagePrefItem(QString(), theParent) { - setString( myShortcut->shortcut().toString() ); -} + auto container = std::shared_ptr(); + const auto itContainers = QtxPagePrefShortcutTreeItem::shortcutContainers.find(rootItem()); + if (itContainers == QtxPagePrefShortcutTreeItem::shortcutContainers.end()) { + container.reset(new SUIT_ShortcutContainer()); + QtxPagePrefShortcutTreeItem::shortcutContainers.emplace(rootItem(), container); + } + else { + container = itContainers->second.lock(); + if (!container) { + container.reset(new SUIT_ShortcutContainer()); + itContainers->second = container; + } + } -/*! - \brief Retrieve preference item from the resource manager. - \sa store() -*/ -void QtxPagePrefShortcutBtnsItem::retrieve() -{ - myShortcut->setShortcut( QKeySequence::fromString( getString() ) ); + QtxShortcutTree* tree = new QtxShortcutTree(container); + tree->myModuleIDs = SUIT_ShortcutMgr::get()->getShortcutModuleIDs(); + setWidget(tree); } /*! - \brief Constructor. - - Creates preference item for editing of key bindings - - \param title preference item title - \param parent parent preference item - \param sect resource file section associated with the preference item - \param param resource file parameter associated with the preference item + \brief Retrieves shortcut preferences from ShortcutMgr. + Updates UI of controlling widget. + \sa store() */ -QtxPagePrefShortcutTreeItem::QtxPagePrefShortcutTreeItem( const QString& title, QtxPreferenceItem* parent, const QString& sect, - const QString& /*param*/ ): QtxPageNamedPrefItem( title, parent, sect, "" ) +void QtxPagePrefShortcutTreeItem::retrieve() { - mySection = sect; - - myShortcutTree = new QtxShortcutTree(); - - // Retrieve shortcuts common sections from resources - QtxResourceMgr* resMgr = resourceMgr(); - if ( resMgr ){ - QString generalSections = resourceMgr()->stringValue( "shortcuts_settings", "general_sections", QString() ); - QStringList sectionsList = generalSections.split( ";", QString::SkipEmptyParts ); - myShortcutTree->setGeneralSections( sectionsList ); - } - - setControl( myShortcutTree ); + static_cast(widget())->setShortcutsFromManager(); } /*! - \brief Destructor. -*/ -QtxPagePrefShortcutTreeItem::~QtxPagePrefShortcutTreeItem() -{ -} - -/*! - \brief Retrieve preference item from the resource manager. + \brief Retrieves shortcut preferences from resource files, ignoring user preferences. + Updates UI of controlling widget. \sa store() */ -void QtxPagePrefShortcutTreeItem::retrieve() +void QtxPagePrefShortcutTreeItem::retrieveDefault() { - QtxResourceMgr* resMgr = resourceMgr(); - if ( resMgr ){ - QStringList secLst = resMgr->subSections( mySection, false ); - ShortcutMap aMap; QStringList paramLst; - for( int i = 0; i < secLst.size(); i++ ) { - paramLst = resMgr->parameters( QStringList() << mySection << secLst.at( i ) ); - for( int j = 0; j < paramLst.size(); j++ ) - resMgr->value( mySection + resMgr->sectionsToken() + secLst.at( i ), paramLst.at( j ),aMap[ paramLst.at( j ) ], false ); - myShortcutTree->setBindings( secLst.at( i ), aMap ); - aMap.clear(); - } - } + static_cast(widget())->setDefaultShortcuts(); } - + /*! - \brief Store preference item to the resource manager. + \brief Applies modified shortcut preferences to ShortcutMgr. + Updates UI of controlling widget. + And ShortcutMgr, in turn, serilizes shortcut preferences using the resource manager. \sa retrieve() */ void QtxPagePrefShortcutTreeItem::store() { - QStringList lst = myShortcutTree->sections(); - QString aSection; - QtxResourceMgr* resMgr = resourceMgr(); - - if ( resMgr ) { - for( int i = 0; i < lst.size(); i++ ) { - ShortcutMap* aMap( myShortcutTree->bindings( lst.at( i ) ) ); - aSection = mySection + resMgr->sectionsToken() + lst.at( i ); - for( ShortcutMap::const_iterator it = aMap->constBegin(); it != aMap->constEnd(); ++it ) - resMgr->setValue( aSection, it.key(), it.value() ); - } - } + static_cast(widget())->applyChangesToShortcutMgr(); } +/*static*/ std::map> QtxPagePrefShortcutTreeItem::shortcutContainers = +std::map>(); + + /*! \class QtxPagePrefBackgroundItem \brief GUI implementation of the resources item to store background data. @@ -4576,7 +4527,7 @@ void QtxPagePrefShortcutTreeItem::store() - texture image file - simple two-color gradient - complex custom gradient (NOT IMPLEMENTED YET) - + Allowed background modes can be specified using setModeAllowed() method. Texture modes can be enabled/disabled using setTextureModeAllowed() method. Also, showing texture controls can be enabled/disabled by means of @@ -4863,9 +4814,9 @@ void QtxPagePrefBackgroundItem::setOptionValue( const QString& name, const QVari /*! \brief Constructor. - Creates preference item of user defined widget. The item widget has to be inherited from + Creates preference item of user defined widget. The item widget has to be inherited from QtxUserDefinedContent class. An instance of this class has to be installed into the item - with help of setContent method. Methods optionValue and setOptionValue use pointer on the + with help of setContent method. Methods optionValue and setOptionValue use pointer on the content widget an qint64 value. \param parent parent preference item @@ -4874,7 +4825,7 @@ QtxUserDefinedItem::QtxUserDefinedItem( QtxPreferenceItem* parent ) : QtxPageNamedPrefItem(QString(), parent), myContent(0) { } - + /*! \brief Lets to Store preferences for content instance \sa retrieve() @@ -4912,7 +4863,7 @@ QVariant QtxUserDefinedItem::optionValue( const QString& theName ) const /*! * \brief Sets option value - * \param theName is a string "content" + * \param theName is a string "content" * \param theVal is a pointer on QtxUserDefinedContent class instance represented as qint64 value */ void QtxUserDefinedItem::setOptionValue( const QString& theName, const QVariant& theVal) @@ -4924,14 +4875,14 @@ void QtxUserDefinedItem::setOptionValue( const QString& theName, const QVariant& } else QtxPreferenceItem::setOptionValue( theName, theVal ); } - + /*! - * \brief Defines content of the property item as a Widget which has to be inherited from + * \brief Defines content of the property item as a Widget which has to be inherited from * QtxUserDefinedContent class. * \param theContent is an QtxUserDefinedContent class instance. */ -void QtxUserDefinedItem::setContent( QtxUserDefinedContent* theContent ) -{ - myContent = theContent; +void QtxUserDefinedItem::setContent( QtxUserDefinedContent* theContent ) +{ + myContent = theContent; setControl(myContent); } diff --git a/src/Qtx/QtxPagePrefMgr.h b/src/Qtx/QtxPagePrefMgr.h index 534173481..b2b854b42 100644 --- a/src/Qtx/QtxPagePrefMgr.h +++ b/src/Qtx/QtxPagePrefMgr.h @@ -33,13 +33,15 @@ #include #include +#include +#include + class QtxGridBox; class QtxFontEdit; class QtxGroupBox; class QtxComboBox; class QtxColorButton; class QtxBiColorTool; -class QtxShortcutEdit; class QtxShortcutTree; class QtxBackgroundTool; @@ -409,7 +411,7 @@ public: int decimals() const; void setDecimals( const int ); - + int echoMode() const; void setEchoMode( const int ); @@ -443,7 +445,7 @@ public: int pageStep() const; int minimum() const; int maximum() const; - QList icons() const; + QList icons() const; void setSingleStep( const int& ); void setPageStep( const int& ); @@ -741,31 +743,35 @@ private: QDateTimeEdit* myDateTime; }; -class QTX_EXPORT QtxPagePrefShortcutBtnsItem : public QtxPageNamedPrefItem -{ -public: - QtxPagePrefShortcutBtnsItem( const QString&, QtxPreferenceItem* = 0, - const QString& = QString(), const QString& = QString() ); - virtual ~QtxPagePrefShortcutBtnsItem(); - virtual void store(); - virtual void retrieve(); -private: - QtxShortcutEdit* myShortcut; -}; +class SUIT_ShortcutContainer; + -class QTX_EXPORT QtxPagePrefShortcutTreeItem : public QtxPageNamedPrefItem +class QTX_EXPORT QtxPagePrefShortcutTreeItem : public QtxPagePrefItem { public: - QtxPagePrefShortcutTreeItem( const QString&, QtxPreferenceItem* = 0, - const QString& = QString(), const QString& = QString() ); - virtual ~QtxPagePrefShortcutTreeItem(); - virtual void store(); + QtxPagePrefShortcutTreeItem(QtxPreferenceItem* theParent); + virtual ~QtxPagePrefShortcutTreeItem() = default; + virtual void retrieve(); - + virtual void retrieveDefault(); + virtual void store(); + private: QtxShortcutTree* myShortcutTree; - QString mySection; + + // { root item (preference window), shortcut container of synchronized trees (widgets within the same window) } + static std::map> shortcutContainers; + /** Why is this? + * Every QtxPagePrefMgr is eventually a preference window. Each preference window has button "Apply". + * When the button is pressed, all descendants of the QtxPagePrefMgr store changes they carry into preferences. + * The pitfall with shortcut trees is as follows: made in independent shortcut trees, changes may conflict, + * and merge of such changes is ambiguous. And the solution is to keep shortcut trees within the same window + * synchronized - all changes being made in a tree of a synchronized bundle are projected to other trees from the bundle + * without interacting with SUIT_ShortcutMgr. + * + * Every time shortcut preferences stored to the ShortcutMgr, all instances of QtxShortcutTree are updated. + */ }; class QTX_EXPORT QtxPagePrefBackgroundItem : public QObject, public QtxPageNamedPrefItem diff --git a/src/Qtx/QtxPreferenceMgr.cxx b/src/Qtx/QtxPreferenceMgr.cxx index 84fd552a6..3090568c7 100644 --- a/src/Qtx/QtxPreferenceMgr.cxx +++ b/src/Qtx/QtxPreferenceMgr.cxx @@ -122,7 +122,7 @@ void QtxPreferenceItem::Updater::customEvent( QEvent* /*e*/ ) \class QtxPreferenceItem \brief Base class for implementing of all the preference items. - To implement any specific preference item, cubclass from the + To implement any specific preference item, subclass from the QtxPreferenceItem and redefine store() and retrieve() methods. */ @@ -258,7 +258,7 @@ void QtxPreferenceItem::appendItem( QtxPreferenceItem* item ) /*! \brief Insert child preference item before specified item. - If the before item is 0 then new item is appended. + If the before item is 0, then new item is appended. Removes (if necessary) the item from the previous parent. @@ -511,6 +511,14 @@ void QtxPreferenceItem::setRestartRequired( const bool on ) \sa store() */ +/*! \brief Restore preference item (for example, from the resource file, ignoring user preferences). + If not overridden, it is equivalent to \ref retrieve(). +*/ +void QtxPreferenceItem::retrieveDefault() +{ + retrieve(); +} + /*! \brief Get the value of the associated resource file setting. \return associated resource file setting value @@ -996,6 +1004,17 @@ void QtxPreferenceMgr::retrieve() (*it)->retrieve(); } +/*! + \brief Retrieve all preference items from the resource manager, ignoring user preferences. + \sa store() +*/ +void QtxPreferenceMgr::retrieveDefault() +{ + QList items = childItems( true ); + for ( QList::iterator it = items.begin(); it != items.end(); ++it ) + (*it)->retrieveDefault(); +} + /*! \brief Dumps all values to the backup container. \sa fromBackup() diff --git a/src/Qtx/QtxPreferenceMgr.h b/src/Qtx/QtxPreferenceMgr.h index db4c6f95c..94512dc2e 100644 --- a/src/Qtx/QtxPreferenceMgr.h +++ b/src/Qtx/QtxPreferenceMgr.h @@ -83,6 +83,7 @@ public: virtual void store() = 0; virtual void retrieve() = 0; + virtual void retrieveDefault(); QString resourceValue() const; void setResourceValue( const QString& ); @@ -160,6 +161,7 @@ public: virtual void store(); virtual void retrieve(); + virtual void retrieveDefault(); virtual void update(); diff --git a/src/Qtx/QtxShortcutEdit.cxx b/src/Qtx/QtxShortcutEdit.cxx index 6cf00f287..fe845b574 100644 --- a/src/Qtx/QtxShortcutEdit.cxx +++ b/src/Qtx/QtxShortcutEdit.cxx @@ -22,383 +22,862 @@ #include #include #include +#include #include #include +#include #include +#include #include +#include +#include +#include +#include #include #include +#include + +#include + #define COLUMN_SIZE 500 -static const char* delete_icon[] = { -"16 16 3 1", -"` c #810000", -" c none", -"# c #ffffff", -" ", -" ", -" ``# ``# ", -" ````# ``# ", -" ````# ``# ", -" ```# `# ", -" `````# ", -" ```# ", -" `````# ", -" ```# ``# ", -" ```# ``# ", -" ```# `# ", -" ```# `# ", -" `# `# ", -" ", -" " -}; -/*! - \brief Constructor - \param parent parent widget -*/ -QtxShortcutEdit::QtxShortcutEdit( QWidget* parent ) -: QFrame( parent ) +QtxKeySequenceEdit::QtxKeySequenceEdit(QWidget* parent) +: QFrame(parent) { initialize(); - myShortcut->installEventFilter(this); + myKeySequenceLineEdit->installEventFilter(this); } -/*! - \brief Destructor -*/ -QtxShortcutEdit::~QtxShortcutEdit() +/*! \brief Set a key sequence to edit. */ +void QtxKeySequenceEdit::setConfirmedKeySequence(const QKeySequence& theKeySequence) { + myConfirmedKeySequenceString = theKeySequence.toString(); + myKeySequenceLineEdit->setText(myConfirmedKeySequenceString); + myPrevKeySequenceString = myConfirmedKeySequenceString; } -/*! - \brief Sets custom shortcut - \param seq a key sequence describes a combination of keys - \sa shortcut() -*/ -void QtxShortcutEdit::setShortcut( const QKeySequence& seq ) +void QtxKeySequenceEdit::setEditedKeySequence(const QKeySequence& theKeySequence) { - QString txt = seq.toString(); - myPrevShortcutText = txt; - myShortcut->setText( txt ); + const QString keySequenceString = theKeySequence.toString(); + myKeySequenceLineEdit->setText(keySequenceString); + myPrevKeySequenceString = keySequenceString; } -/*! - \brief Gets custom shortcut - \return a key sequence describes a combination of keys - \sa setShortcut() -*/ -QKeySequence QtxShortcutEdit::shortcut() +QKeySequence QtxKeySequenceEdit::editedKeySequence() const +{ + return QKeySequence::fromString(myKeySequenceLineEdit->text()); +} + +/*! \returns true, if the edited key sequence differs from confirmed one. */ +bool QtxKeySequenceEdit::isKeySequenceModified() const +{ + return QKeySequence(myConfirmedKeySequenceString) != editedKeySequence(); +} + +/*! \brief Set confirmed key sequence to line editor. */ +void QtxKeySequenceEdit::restoreKeySequence() { - return QKeySequence::fromString( myShortcut->text() ); + myKeySequenceLineEdit->setText(myConfirmedKeySequenceString); + myPrevKeySequenceString = myConfirmedKeySequenceString; } /*! - \brief Gets the key sequence from keys that were pressed + \brief Gets the key sequence from keys that were pressed \param e a key event - \return a string representation of the key sequence + \returns a string representation of the key sequence */ -QString QtxShortcutEdit::parseEvent( QKeyEvent* e ) +/*static*/ QString QtxKeySequenceEdit::parseEvent(QKeyEvent* e) { bool isShiftPressed = e->modifiers() & Qt::ShiftModifier; bool isControlPressed = e->modifiers() & Qt::ControlModifier; bool isAltPressed = e->modifiers() & Qt::AltModifier; bool isMetaPressed = e->modifiers() & Qt::MetaModifier; - bool isModifiersPressed = isShiftPressed || isControlPressed || isAltPressed || isMetaPressed; + bool isModifiersPressed = isControlPressed || isAltPressed || isMetaPressed; // Do not treat Shift alone as a modifier! int result=0; - if( isControlPressed ) + if(isControlPressed) result += Qt::CTRL; - if( isAltPressed ) + if(isAltPressed) result += Qt::ALT; - if( isShiftPressed ) + if(isShiftPressed) result += Qt::SHIFT; - if( isMetaPressed ) + if(isMetaPressed) result += Qt::META; int aKey = e->key(); - if ( ( isValidKey( aKey ) && isModifiersPressed ) || ( ( aKey >= Qt::Key_F1 ) && ( aKey <= Qt::Key_F12 ) ) ) + if ((isValidKey(aKey) && isModifiersPressed) || ((aKey >= Qt::Key_F1) && (aKey <= Qt::Key_F12))) result += aKey; - return QKeySequence( result ).toString(); + return QKeySequence(result).toString(); } /*! \brief Check if the key event contains a 'valid' key - \param aKey the code of the key - \return \c true if the key is 'valid' + \param theKey the code of the key + \returns \c true if the key is 'valid' */ - -bool QtxShortcutEdit::isValidKey( int aKey ) +/*static*/ bool QtxKeySequenceEdit::isValidKey(int theKey) { - if ( aKey == Qt::Key_Underscore || aKey == Qt::Key_Escape || - ( aKey >= Qt::Key_Backspace && aKey <= Qt::Key_Delete ) || - ( aKey >= Qt::Key_Home && aKey <= Qt::Key_PageDown ) || - ( aKey >= Qt::Key_F1 && aKey <= Qt::Key_F12 ) || - ( aKey >= Qt::Key_Space && aKey <= Qt::Key_Asterisk ) || - ( aKey >= Qt::Key_Comma && aKey <= Qt::Key_Question ) || - ( aKey >= Qt::Key_A && aKey <= Qt::Key_AsciiTilde ) ) + if ( theKey == Qt::Key_Underscore || theKey == Qt::Key_Escape || + ( theKey >= Qt::Key_Backspace && theKey <= Qt::Key_Delete ) || + ( theKey >= Qt::Key_Home && theKey <= Qt::Key_PageDown ) || + ( theKey >= Qt::Key_F1 && theKey <= Qt::Key_F12 ) || + ( theKey >= Qt::Key_Space && theKey <= Qt::Key_Asterisk ) || + ( theKey >= Qt::Key_Comma && theKey <= Qt::Key_Question ) || + ( theKey >= Qt::Key_A && theKey <= Qt::Key_AsciiTilde ) ) return true; return false; } -/*! - \brief Called when "Clear" button is clicked. -*/ -void QtxShortcutEdit::onCliked() +/*! \brief Called when "Clear" button is clicked. */ +void QtxKeySequenceEdit::onClear() { - myShortcut->setText( "" ); + myKeySequenceLineEdit->setText(""); + myPrevKeySequenceString = ""; + emit editingFinished(); } -/*! - \brief Called when myShortcut loses focus. -*/ -void QtxShortcutEdit::onEditingFinished() +/*! \brief Called when myKeySequenceLineEdit loses focus. */ +void QtxKeySequenceEdit::onEditingFinished() { - if ( myShortcut->text().endsWith("+") ) - myShortcut->setText( myPrevShortcutText ); + if (myKeySequenceLineEdit->text().endsWith("+")) + myKeySequenceLineEdit->setText(myPrevKeySequenceString); + else + myPrevKeySequenceString = myKeySequenceLineEdit->text(); + emit editingFinished(); } /*! \brief Custom event filter. \param obj event receiver object \param event event - \return \c true if further event processing should be stopped + \returns \c true if further event processing should be stopped */ -bool QtxShortcutEdit::eventFilter(QObject* obj, QEvent* event) -{ - if ( obj == myShortcut ) { - if (event->type() == QEvent::KeyPress ) { - QKeyEvent* keyEvent = static_cast(event); - QString text = parseEvent( keyEvent ); - if ( keyEvent->key() == Qt::Key_Delete || keyEvent->key() == Qt::Key_Backspace ) - onCliked(); - if ( text != "" ) - myShortcut->setText( text ); +bool QtxKeySequenceEdit::eventFilter(QObject* theObject, QEvent* theEvent) +{ + if (theObject == myKeySequenceLineEdit) { + if (theEvent->type() == QEvent::KeyPress) { + QKeyEvent* keyEvent = static_cast(theEvent); + QString text = parseEvent(keyEvent); + if (keyEvent->key() == Qt::Key_Delete || keyEvent->key() == Qt::Key_Backspace) + myKeySequenceLineEdit->setText(""); + if (!text.isEmpty()) + myKeySequenceLineEdit->setText(text); + + emit editingStarted(); return true; } - if ( event->type() == QEvent::KeyRelease ) { - if ( myShortcut->text().endsWith("+") ) - myShortcut->setText( myPrevShortcutText ); - else myPrevShortcutText = myShortcut->text(); - + if (theEvent->type() == QEvent::KeyRelease) { + onEditingFinished(); return true; } - } + } return false; } /* \brief Perform internal intialization. */ -void QtxShortcutEdit::initialize() +void QtxKeySequenceEdit::initialize() { - myPrevShortcutText = QString(); + static const int PIXMAP_SIZE = 30; QHBoxLayout* base = new QHBoxLayout( this ); - base->setMargin( 0 ); - base->setSpacing( 5 ); + base->setMargin(0); + base->setSpacing(5); + + base->addWidget(myKeySequenceLineEdit = new QLineEdit(this)); + setFocusProxy(myKeySequenceLineEdit); + + QToolButton* clearBtn = new QToolButton(); + auto clearPixmap = QPixmap(":/images/shortcut_disable.svg"); + clearPixmap.scaled(QSize(PIXMAP_SIZE, PIXMAP_SIZE), Qt::KeepAspectRatio, Qt::SmoothTransformation); + clearBtn->setIcon(clearPixmap); + clearBtn->setToolTip(tr("Disable shortcut.")); + base->addWidget(clearBtn); + + QToolButton* restoreBtn = new QToolButton(); + auto restorePixmap = QPixmap(":/images/shortcut_restore.svg"); + restorePixmap.scaled(QSize(PIXMAP_SIZE, PIXMAP_SIZE), Qt::KeepAspectRatio, Qt::SmoothTransformation); + restoreBtn->setIcon(restorePixmap); + restoreBtn->setToolTip(tr("Restore the currently applied key sequence.")); + base->addWidget(restoreBtn); + + myKeySequenceLineEdit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); + clearBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + restoreBtn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + + connect(clearBtn, SIGNAL(clicked()), this, SLOT(onClear())); + connect(restoreBtn, SIGNAL(clicked()), this, SIGNAL(restoreFromShortcutMgrClicked())); + connect(myKeySequenceLineEdit, SIGNAL(editingFinished()), this, SLOT(onEditingFinished())); +} - base->addWidget( myShortcut = new QLineEdit( this ) ); - QToolButton* deleteBtn = new QToolButton(); - deleteBtn->setIcon( QPixmap( delete_icon ) ); - base->addWidget( deleteBtn ); - - myShortcut->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Fixed ); - deleteBtn->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ); +/*! \param theParent must not be nullptr. */ +QtxEditKeySequenceDialog::QtxEditKeySequenceDialog(QtxShortcutTree* theParent) +: QDialog(theParent) +{ + setMinimumWidth(500); + setWindowTitle(tr("Change key sequence")); + QVBoxLayout* layout = new QVBoxLayout(this); + myActionName = new QLabel(this); + myActionName->setTextFormat(Qt::RichText); + myKeySequenceEdit = new QtxKeySequenceEdit(this); + myTextEdit = new QTextEdit(this); + layout->addWidget(myActionName); + layout->addWidget(myKeySequenceEdit); + layout->addWidget(myTextEdit); + myActionName->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); + myKeySequenceEdit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); + myTextEdit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); + myTextEdit->setReadOnly(true); + myTextEdit->setAcceptRichText(true); + myTextEdit->setPlaceholderText(tr("No conflicts.")); + setFocusProxy(myKeySequenceEdit); + + QHBoxLayout* buttonLayout = new QHBoxLayout(this); + layout->addLayout(buttonLayout); + QPushButton* confirmButton = new QPushButton(tr("Confirm"), this); + confirmButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + QPushButton* cancelButton = new QPushButton(tr("Cancel"), this); + cancelButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + buttonLayout->addStretch(); + buttonLayout->addWidget(confirmButton); + buttonLayout->addWidget(cancelButton); + + connect(myKeySequenceEdit, SIGNAL(editingStarted()), this, SLOT(onEditingStarted())); + connect(myKeySequenceEdit, SIGNAL(editingFinished()), this, SLOT(onEditingFinished())); + connect(myKeySequenceEdit, SIGNAL(restoreFromShortcutMgrClicked()), this, SLOT(onRestoreFromShortcutMgr())); + connect(confirmButton, SIGNAL(clicked()), this, SLOT(onConfirm())); + connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject())); +} - connect( deleteBtn, SIGNAL( clicked() ), this, SLOT( onCliked() ) ); - connect( myShortcut, SIGNAL( editingFinished() ), this, SLOT( onEditingFinished() ) ); +void QtxEditKeySequenceDialog::setModuleAndActionID(const QString& theModuleID, const QString& theInModuleActionID) +{ + myModuleID = theModuleID; + myInModuleActionID = theInModuleActionID; } -/*! - \brief Constructor - \param parent parent widget -*/ -QtxShortcutTree::QtxShortcutTree( QWidget * parent ) : QTreeWidget( parent ) +const QString& QtxEditKeySequenceDialog::moduleID() const { return myModuleID; } +const QString& QtxEditKeySequenceDialog::inModuleActionID() const { return myInModuleActionID; } + +void QtxEditKeySequenceDialog::setModuleAndActionName(const QString& theModuleName, const QString& theActionName, const QString& theActionToolTip) +{ + myActionName->setText("" + theModuleName + "  " + theActionName); + myActionName->setToolTip(theActionToolTip); +} + +void QtxEditKeySequenceDialog::setConfirmedKeySequence(const QKeySequence& theSequence) +{ + myKeySequenceEdit->setConfirmedKeySequence(theSequence); +} + +QKeySequence QtxEditKeySequenceDialog::editedKeySequence() const +{ + return myKeySequenceEdit->editedKeySequence(); +} + +int QtxEditKeySequenceDialog::exec() +{ + myKeySequenceEdit->setFocus(Qt::ActiveWindowFocusReason); + return QDialog::exec(); +} + +void QtxEditKeySequenceDialog::onEditingStarted() +{ + myTextEdit->setEnabled(false); +} + +void QtxEditKeySequenceDialog::onEditingFinished() { - setColumnCount( 2 ); - setSelectionMode( QAbstractItemView::SingleSelection ); - setColumnWidth ( 0, COLUMN_SIZE); + updateConflictsMessage(); +} + +void QtxEditKeySequenceDialog::onRestoreFromShortcutMgr() +{ + const auto shortcutMgr = SUIT_ShortcutMgr::get(); + myKeySequenceEdit->setEditedKeySequence(shortcutMgr->getKeySequence(myModuleID, myInModuleActionID)); + updateConflictsMessage(); +} + +/*! Updates message with list of actions, whose shortcuts will be disabled on Confirm. */ +void QtxEditKeySequenceDialog::updateConflictsMessage() +{ + myTextEdit->setEnabled(true); + QTextDocument* doc = myTextEdit->document(); + if (!doc) { + doc = new QTextDocument(myTextEdit); + myTextEdit->setDocument(doc); + } + + if (!myKeySequenceEdit->isKeySequenceModified()) { + doc->clear(); + return; + } + + const QKeySequence newKeySequence = editedKeySequence(); + + const auto shortcutTree = static_cast(parentWidget()); + /** {moduleID, inModuleActionID}[] */ + std::set> conflicts = shortcutTree->shortcutContainer()->getConflicts(myModuleID, myInModuleActionID, newKeySequence); + if (!conflicts.empty()) { + const auto shortcutMgr = SUIT_ShortcutMgr::get(); + + QString report = "" + tr("These shortcuts will be disabled on confirm:") + ""; + { + report += "
    "; + for (const auto& conflict : conflicts) { + const QString conflictingModuleName = shortcutMgr->getModuleName(conflict.first); + const QString conflictingActionName = shortcutMgr->getActionName(conflict.first, conflict.second); + report += "
  • " + conflictingModuleName + "  " + conflictingActionName + "
  • "; + } + report += "
"; + } + doc->setHtml(report); + } + else /* if no conflicts */ { + doc->clear(); + } +} + +void QtxEditKeySequenceDialog::onConfirm() +{ + if (myKeySequenceEdit->isKeySequenceModified()) + accept(); + else + reject(); +} + + +/*! \brief Compensates lack of std::distance(), which is introduced in C++17. +\returns -1, if theIt does not belong to the */ +template +size_t indexOf( + const Container& theContainer, + const typename Container::iterator& theIt +) { + auto it = theContainer.begin(); + size_t distance = 0; + while (it != theContainer.end()) { + if (it == theIt) + return distance; + + it++; + distance++; + } + return -1; +} + + +/*! \param theContainer Share the same container between several trees, +to edit them synchronously even without exchange of changes with SUIT_ShortcutMgr. +Pass nullptr to create non-synchronized tree. */ +QtxShortcutTree::QtxShortcutTree( + std::shared_ptr theContainer, + QWidget* theParent +) : QTreeWidget(theParent), +myShortcutContainer(theContainer ? theContainer : std::shared_ptr(new SUIT_ShortcutContainer())), +mySortKey(QtxShortcutTree::SortKey::Name), mySortOrder(QtxShortcutTree::SortOrder::Ascending) +{ + setColumnCount(2); + setSelectionMode(QAbstractItemView::SingleSelection); + setColumnWidth(0, COLUMN_SIZE); + setSortingEnabled(false); // Items are sorted in the same way, as in ShortcutContainer. + header()->setSectionResizeMode(QHeaderView::Interactive); + { + QMap labelMap; + labelMap[QtxShortcutTree::ElementIdx::Name] = tr("Action"); + labelMap[QtxShortcutTree::ElementIdx::KeySequence] = tr("Key sequence"); + setHeaderLabels(labelMap.values()); + } + setExpandsOnDoubleClick(false); // Open shortcut editor on double click instead. setSortingEnabled(false); - headerItem()->setHidden ( true ); + setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents); + setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + myEditDialog = new QtxEditKeySequenceDialog(this); this->installEventFilter(this); - connect( this, SIGNAL( currentItemChanged ( QTreeWidgetItem*, QTreeWidgetItem* ) ), this, SLOT( onCurrentItemChanged ( QTreeWidgetItem*, QTreeWidgetItem* ) ) ); + connect(this, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), this, SLOT(onItemDoubleClicked(QTreeWidgetItem*, int))); + QtxShortcutTree::instances[myShortcutContainer.get()].emplace(this); } -/*! - \brief Destructor -*/ -QtxShortcutTree::~QtxShortcutTree(){} +QtxShortcutTree::~QtxShortcutTree() +{ + QtxShortcutTree::instances[myShortcutContainer.get()].erase(this); + if (QtxShortcutTree::instances[myShortcutContainer.get()].empty()) + QtxShortcutTree::instances.erase(myShortcutContainer.get()); +} -/*! - \brief Custom event filter. - \param obj event receiver object - \param event event - \return \c true if further event processing should be stopped -*/ -bool QtxShortcutTree::eventFilter(QObject* /*obj*/, QEvent* event) -{ - if ( currentItem() && currentItem()->isSelected() ) { - - if (event->type() == QEvent::KeyPress ) { - QKeyEvent* keyEvent = static_cast(event); - QString text = QtxShortcutEdit::parseEvent( keyEvent ); - if ( keyEvent->key() == Qt::Key_Delete || keyEvent->key() == Qt::Key_Backspace ) - currentItem()->setText( 1, "" ); - if ( text != "" ) { - if ( text.endsWith( "+" ) || checkUniqueness( currentItem(), text ) ) - currentItem()->setText( 1, text ); +/*! \brief Copies shortcuts from ShortcutMgr. (Re)displays shortcuts of myModuleIDs. */ +void QtxShortcutTree::setShortcutsFromManager() +{ + const auto shortcutMgr = SUIT_ShortcutMgr::get(); + *myShortcutContainer = shortcutMgr->getShortcutContainer(); + // nb! ShortcutMgr never removes shortcuts from its container, only disables. + + updateItems(false /*theHighlightModified*/, true /*theUpdateSyncTrees*/); +} + +/*! \brief Copies shortcuts from resources, user files are not accounted. (Re)displays shortcuts of myModuleIDs. */ +void QtxShortcutTree::setDefaultShortcuts() +{ + SUIT_ShortcutContainer defaultShortcuts; + SUIT_ShortcutMgr::fillContainerFromPreferences(defaultShortcuts, true /*theDefaultOnly*/); + + myShortcutContainer->merge(defaultShortcuts, true /*theOverride*/, true /*theTreatAbsentIncomingAsDisabled*/); + // nb! SUIT_ShortcutContainer never erases shortcuts, only disables. + + updateItems(true /*theHighlightModified*/, true /*theUpdateSyncTrees*/); +} + +/*! \brief Applies pending changes to ShortcutMgr. Updates other instances of QtxShortcutTree. */ +void QtxShortcutTree::applyChangesToShortcutMgr() +{ + const auto mgr = SUIT_ShortcutMgr::get(); + mgr->mergeShortcutContainer(*myShortcutContainer); + + // Update non-synchronized with this instances. + for (const auto& containerAndSyncTrees : QtxShortcutTree::instances) { + if (containerAndSyncTrees.first == myShortcutContainer.get()) + continue; + + const std::set& syncTrees = containerAndSyncTrees.second; + const auto itFirstSyncTree = syncTrees.begin(); + if (itFirstSyncTree == syncTrees.end()) + continue; + + (*itFirstSyncTree)->setShortcutsFromManager(); + const auto editDialog = (*itFirstSyncTree)->myEditDialog; + editDialog->setConfirmedKeySequence(mgr->getShortcutContainer().getKeySequence(editDialog->moduleID(), editDialog->inModuleActionID())); + editDialog->updateConflictsMessage(); + } +} + +std::shared_ptr QtxShortcutTree::shortcutContainer() const +{ + return myShortcutContainer; +} + +/*! \brief Does not sort modules. */ +void QtxShortcutTree::sort(QtxShortcutTree::SortKey theKey, QtxShortcutTree::SortOrder theOrder) +{ + if (theKey == mySortKey && theOrder == mySortOrder) + return; + + mySortKey == theKey; + mySortOrder = theOrder; + + for (int moduleIdx = 0; moduleIdx < topLevelItemCount(); moduleIdx++) { + const auto moduleItem = static_cast(topLevelItem(moduleIdx)); + const auto sortedChildren = getSortedChildren(moduleItem); + moduleItem->takeChildren(); + + for (const auto childItem : sortedChildren) { + moduleItem->addChild(childItem); + } + } +} + +/*! \param If theUpdateSyncTrees, trees sharing the same shortcut container are updated. */ +void QtxShortcutTree::updateItems(bool theHighlightModified, bool theUpdateSyncTrees) +{ + const auto shortcutMgr = SUIT_ShortcutMgr::get(); + const QString lang = SUIT_ShortcutMgr::getLang(); + + for (const QString& moduleID : myModuleIDs) { + const auto& moduleShortcuts = myShortcutContainer->getModuleShortcutsInversed(moduleID); + if (moduleShortcuts.empty()) { + // Do not display empty module. + const auto moduleItemAndIdx = findModuleFolderItem(moduleID); + if (moduleItemAndIdx.second >= 0) + delete takeTopLevelItem(moduleItemAndIdx.second); + + continue; + } + + const auto moduleItemAndIdx = findModuleFolderItem(moduleID); + QtxShortcutTreeFolder* moduleItem = moduleItemAndIdx.first; + if (!moduleItem) { + moduleItem = new QtxShortcutTreeFolder(moduleID); + moduleItem->setAssets(shortcutMgr->getModuleAssets(moduleID), lang); + addTopLevelItem(moduleItem); + moduleItem->setFlags(Qt::ItemIsEnabled); + + auto sortedChildren = getSortedChildren(moduleItem); + for (const auto& shortcut : moduleShortcuts) { + const QString& inModuleActionID = shortcut.first; + const QKeySequence& keySequence = shortcut.second; + const QString keySequenceString = keySequence.toString(); + + auto actionItem = QtxShortcutTreeAction::create(moduleID, inModuleActionID); + if (!actionItem) { + ShCutDbg("QtxShortcutTree can't create child item for action ID = \"" + SUIT_ShortcutMgr::makeActionID(moduleID, inModuleActionID) + "\"."); + continue; + } + + actionItem->setAssets(shortcutMgr->getActionAssets(moduleID, inModuleActionID), lang); + actionItem->setKeySequence(keySequenceString); + + if (theHighlightModified) { + const QKeySequence& appliedKeySequence = SUIT_ShortcutMgr::get()->getKeySequence(moduleID, inModuleActionID); + actionItem->highlightKeySequenceAsModified(keySequence != appliedKeySequence); + } + + insertChild(moduleItem, sortedChildren, actionItem); } - return true; + + moduleItem->setExpanded(true); // Make tree expanded on first show. } - if ( event->type() == QEvent::KeyRelease ) { - if ( currentItem()->text( 1 ).endsWith( "+" ) ) - currentItem()->setText( 1, myPrevBindings[ currentItem()->parent()->text( 0 ) ][ currentItem()->text( 0 ) ] ); - else myPrevBindings[ currentItem()->parent()->text( 0 ) ][ currentItem()->text( 0 ) ] = currentItem()->text( 1 ); + else /* if the tree has the module-item */ { + for (int childIdx = 0; childIdx < moduleItem->childCount(); childIdx++) { + // Update exisiting items of a module. + QtxShortcutTreeAction* const childItem = static_cast(moduleItem->child(childIdx)); + const auto itShortcut = moduleShortcuts.find(childItem->myInModuleActionID); + if (itShortcut == moduleShortcuts.end()) { + // Shortcut of the item has been removed from myShortcutContainer - impossible. + continue; + } + const QKeySequence& newKeySequence = itShortcut->second; + const QString newKeySequenceString = newKeySequence.toString(); + if (childItem->keySequence() != newKeySequenceString) + childItem->setKeySequence(newKeySequenceString); + + if (theHighlightModified) { + const QKeySequence& appliedKeySequence = SUIT_ShortcutMgr::get()->getKeySequence(moduleID, childItem->myInModuleActionID); + childItem->highlightKeySequenceAsModified(newKeySequence != appliedKeySequence); + } + else + childItem->highlightKeySequenceAsModified(false); + } - return true; - } - } - return false; + // Add new items if myShortcutContainer acquired new shortcuts, which may happen if a developer forgot + // to add shortcuts for registered actions to resource files. + if (moduleItem->childCount() < moduleShortcuts.size()) { + auto sortedChildren = getSortedChildren(moduleItem); + for (const auto& shortcut : moduleShortcuts) { + const QString& inModuleActionID = shortcut.first; + const auto predicate = [&inModuleActionID](const QtxShortcutTreeItem* const theItem) -> bool { + return static_cast(theItem)->myInModuleActionID == inModuleActionID; + }; + + if (std::find_if(sortedChildren.begin(), sortedChildren.end(), predicate) == sortedChildren.end()) { + const auto actionItem = QtxShortcutTreeAction::create(moduleID, inModuleActionID); + if (!actionItem) { + ShCutDbg("QtxShortcutTree can't create child item for action ID = \"" + SUIT_ShortcutMgr::makeActionID(moduleID, inModuleActionID) + "\"."); + continue; + } + + const QKeySequence& keySequence = shortcut.second; + actionItem->setAssets(shortcutMgr->getActionAssets(moduleID, inModuleActionID), lang); + actionItem->setKeySequence(keySequence.toString()); + + if (theHighlightModified) { + const QKeySequence& appliedKeySequence = SUIT_ShortcutMgr::get()->getKeySequence(moduleID, inModuleActionID); + actionItem->highlightKeySequenceAsModified(keySequence != appliedKeySequence); + } + + insertChild(moduleItem, sortedChildren, actionItem); + } + } + } + } + } + + if (theUpdateSyncTrees) { + const std::set& syncTrees = QtxShortcutTree::instances[myShortcutContainer.get()]; + for (const auto syncTree: syncTrees) { + if (syncTree == this) + continue; + + syncTree->updateItems(theHighlightModified, false /*theUpdateSyncTrees*/); + const auto editDialog = syncTree->myEditDialog; + editDialog->setConfirmedKeySequence(myShortcutContainer->getKeySequence(editDialog->moduleID(), editDialog->inModuleActionID())); + editDialog->updateConflictsMessage(); + } + } } -/*! - \brief Called when the current item changes. - \param cur the current item - \param prev the previous current item -*/ -void QtxShortcutTree::onCurrentItemChanged( QTreeWidgetItem* /*cur*/, QTreeWidgetItem* prev ) +/*! \returns Pointer and index of top-level item. +If the tree does not contain an item with theModuleID, returns {nullptr, -1}. */ +std::pair QtxShortcutTree::findModuleFolderItem(const QString& theModuleID) const { - if ( prev && prev->text( 1 ).endsWith( "+" ) ) - prev->setText( 1, myPrevBindings[ prev->parent()->text( 0 ) ][ prev->text( 0 ) ] ); + for (int moduleIdx = 0; moduleIdx < topLevelItemCount(); moduleIdx++) { + QtxShortcutTreeFolder* moduleItem = static_cast(topLevelItem(moduleIdx)); + if (moduleItem->myModuleID == theModuleID) + return std::pair(moduleItem, moduleIdx); + } + return std::pair(nullptr, -1); } -/*! - \brief Set key bindings to the tree - \param title the name of top-level item - \param theShortcutMap map of key bindings -*/ -void QtxShortcutTree::setBindings( const QString& title, const ShortcutMap& theShortcutMap ) -{ - QTreeWidgetItem* item= new QTreeWidgetItem(); - QFont font = item->font(0); - font.setBold(true); - - if ( findItems( title, Qt::MatchFixedString ).isEmpty() ) { - item->setText( 0, title ); - item->setFont( 0, font ); - addTopLevelItem( item ); - item->setFlags( Qt::ItemIsEnabled ); - } else { - item = findItems( title, Qt::MatchFixedString ).first(); - item->takeChildren(); +/*! \returns Children of theParentItem being sorted according to current sort mode and order. */ +std::set> QtxShortcutTree::getSortedChildren(QtxShortcutTreeFolder* theParentItem) +{ + QList> sortSchema = QtxShortcutTree::DEFAULT_SORT_SCHEMA; + { + for (auto itSameKey = sortSchema.begin(); itSameKey != sortSchema.end(); itSameKey++) { + if (itSameKey->first == mySortKey) { + sortSchema.erase(itSameKey); + break; + } + } + sortSchema.push_front(std::pair(mySortKey, mySortOrder)); } - for( ShortcutMap::const_iterator it = theShortcutMap.constBegin(); it != theShortcutMap.constEnd(); ++it ) - item->addChild( new QTreeWidgetItem( QStringList() << it.key() << it.value() ) ); - myPrevBindings.insert( title, theShortcutMap); + + static const QCollator collator; + const std::function comparator = + [this, sortSchema, &collator](const QtxShortcutTreeItem* theItemA, const QtxShortcutTreeItem* theItemB) { + int res = 0; + for (const auto& keyAndOrder : sortSchema) { + int res = 0; + res = collator.compare(theItemA->getValue(keyAndOrder.first), theItemB->getValue(keyAndOrder.first)); + if (res != 0) + return keyAndOrder.second == QtxShortcutTree::SortOrder::Ascending ? res < 0 : res > 0; + } + return false; + }; + + std::set> sortedChildren(comparator); + for (int childIdx = 0; childIdx < theParentItem->childCount(); childIdx++) { + QtxShortcutTreeAction* const childItem = static_cast(theParentItem->child(childIdx)); + sortedChildren.emplace(childItem); + } + return sortedChildren; } -/*! - \brief Get all sections names. - \return list of section names -*/ -QStringList QtxShortcutTree::sections() const +/*! \brief Inserts theChildItem to theParentItem and theSortedChildren. +Does not check whether theSortedChildren are actually child items of theParentItem. +Does not check whether current item sort schema is same as one of theSortedChildren. */ +void QtxShortcutTree::insertChild( + QtxShortcutTreeFolder* theParentItem, + std::set>& theSortedChildren, + QtxShortcutTreeItem* theChildItem +) { + auto emplaceRes = theSortedChildren.emplace(theChildItem); + theParentItem->insertChild(indexOf(theSortedChildren, emplaceRes.first), theChildItem); +} + +void QtxShortcutTree::onItemDoubleClicked(QTreeWidgetItem* theItem, int theColIdx) +{ + { + QtxShortcutTreeItem* const item = static_cast(theItem); + // Do not react if folder-item is clicked. + if (item->type() != QtxShortcutTreeItem::Type::Action) + return; + } + + QtxShortcutTreeAction* const actionItem = static_cast(theItem); + + myEditDialog->setModuleAndActionID(actionItem->myModuleID, actionItem->myInModuleActionID); + QString actionToolTip = actionItem->toolTip(QtxShortcutTree::ElementIdx::Name); + actionToolTip.truncate(actionToolTip.lastIndexOf('\n') + 1); + myEditDialog->setModuleAndActionName( + static_cast(actionItem->parent())->name(), + actionItem->name(), + actionToolTip + ); + myEditDialog->setConfirmedKeySequence(QKeySequence::fromString(actionItem->keySequence())); + myEditDialog->updateConflictsMessage(); + const bool somethingChanged = myEditDialog->exec() == QDialog::Accepted; + + if (!somethingChanged) + return; + + const QKeySequence newKeySequence = myEditDialog->editedKeySequence(); + + /** { moduleID, inModuleActionID }[] */ + std::set> disabledActionIDs = myShortcutContainer->setShortcut(actionItem->myModuleID, actionItem->myInModuleActionID, newKeySequence, true /*override*/); + + /** { moduleID, {inModuleActionID, keySequence}[] }[] */ + std::map> changes; + changes[actionItem->myModuleID][actionItem->myInModuleActionID] = newKeySequence.toString(); + for (const auto moduleAndActionID : disabledActionIDs) { + changes[moduleAndActionID.first][moduleAndActionID.second] = QString(); + } + + // Set new key sequences to shortcut items. + for (const auto& moduleIDAndChanges : changes) { + const QString& moduleID = moduleIDAndChanges.first; + + const auto moduleItemAndIdx = findModuleFolderItem(moduleID); + const auto moduleItem = moduleItemAndIdx.first; + if (!moduleItem) + continue; + + /** {inModuleActionID, newKeySequence}[] */ + const std::map& moduleChanges = moduleIDAndChanges.second; + + // Go through module' shortcut items, and highlight those, whose key sequences differ from applied key sequences. + for (int childIdx = 0; childIdx < moduleItem->childCount(); childIdx++) { + QtxShortcutTreeAction* const childItem = static_cast(moduleItem->child(childIdx)); + const auto itChange = moduleChanges.find(childItem->myInModuleActionID); + if (itChange == moduleChanges.end()) { + // The shortcut has not been changed. + continue; + } + + childItem->setKeySequence(itChange->second); + + const QKeySequence& appliedKeySequence = SUIT_ShortcutMgr::get()->getKeySequence(moduleID, childItem->myInModuleActionID); + childItem->highlightKeySequenceAsModified(QKeySequence::fromString(itChange->second) != appliedKeySequence); + } + } +} + +/*static*/ const QList> QtxShortcutTree::DEFAULT_SORT_SCHEMA = +{ + {QtxShortcutTree::SortKey::Name, QtxShortcutTree::SortOrder::Ascending}, + {QtxShortcutTree::SortKey::ToolTip, QtxShortcutTree::SortOrder::Ascending}, + {QtxShortcutTree::SortKey::KeySequence, QtxShortcutTree::SortOrder::Ascending}, + {QtxShortcutTree::SortKey::ID, QtxShortcutTree::SortOrder::Ascending} +}; + +/*static*/ std::map> QtxShortcutTree::instances = +std::map>(); + + + +QtxShortcutTreeItem::QtxShortcutTreeItem(const QString& theModuleID) +: QTreeWidgetItem(), myModuleID(theModuleID) +{ } + +QString QtxShortcutTreeItem::name() const +{ + return text(QtxShortcutTree::ElementIdx::Name); +} + + +QtxShortcutTreeFolder::QtxShortcutTreeFolder(const QString& theModuleID) +: QtxShortcutTreeItem(theModuleID) { - QStringList lst; - for( int i = 0; i < topLevelItemCount(); i++ ) - lst << topLevelItem( i )->text( 0 ); - return lst; + QFont f = font(QtxShortcutTree::ElementIdx::Name); + f.setBold(true); + setFont(QtxShortcutTree::ElementIdx::Name, f); + setText(QtxShortcutTree::ElementIdx::Name, theModuleID); } -ShortcutMap* QtxShortcutTree::bindings( const QString& sec ) const +void QtxShortcutTreeFolder::setAssets(std::shared_ptr theAssets, const QString& theLang) { - ShortcutMap* aMap = new ShortcutMap(); - QTreeWidgetItem* item = findItems( sec, Qt::MatchFixedString ).first(); - int nbChildren = item->childCount(); + if (!theAssets) + return; + + setIcon(QtxShortcutTree::ElementIdx::Name, theAssets->myIcon); - for( int i = 0; i < nbChildren; i++ ) { - QTreeWidgetItem* child = item->child(i); - aMap->insert( child->text( 0 ), child->text( 1 ) ); + const auto& ldaMap = theAssets->myLangDependentAssets; + if (ldaMap.empty()) { + setText(QtxShortcutTree::ElementIdx::Name, myModuleID); + return; } - return aMap; + auto itLDA = ldaMap.find(theLang); + if (itLDA == ldaMap.end()) + itLDA = ldaMap.begin(); + + const SUIT_ActionAssets::LangDependentAssets& lda = itLDA->second; + const QString& name = lda.myName.isEmpty() ? myModuleID : lda.myName; + setText(QtxShortcutTree::ElementIdx::Name, name); } -void QtxShortcutTree::focusOutEvent ( QFocusEvent* event ) +QString QtxShortcutTreeFolder::getValue(QtxShortcutTree::SortKey theKey) const { - QWidget::focusOutEvent( event ); - if ( currentItem() && currentItem()->isSelected() ) - currentItem()->setText( 1, myPrevBindings[ currentItem()->parent()->text( 0 ) ][ currentItem()->text( 0 ) ] ); + switch (theKey) { + case QtxShortcutTree::SortKey::ID: + return myModuleID; + case QtxShortcutTree::SortKey::Name: + return name(); + case QtxShortcutTree::SortKey::ToolTip: + return name(); + default: + return QString(); + } } -/*! - \brief Set the list of shortcuts general sections. - - Key combinations in general sections should not intersect - with any other key combinations. - \param sectionsList list of common section names -*/ -void QtxShortcutTree::setGeneralSections( const QStringList& sectionsList ) +QtxShortcutTreeAction::QtxShortcutTreeAction(const QString& theModuleID, const QString& theInModuleActionID) +: QtxShortcutTreeItem(theModuleID), myInModuleActionID(theInModuleActionID) { - myGeneralSections = sectionsList; + setText(QtxShortcutTree::ElementIdx::Name, theInModuleActionID); + setToolTip( + QtxShortcutTree::ElementIdx::Name, + theInModuleActionID + (theInModuleActionID.at(theInModuleActionID.length()-1) == "." ? "\n" : ".\n") + QtxShortcutTree::tr("Double click to edit key sequence.") + ); + setToolTip(QtxShortcutTree::ElementIdx::KeySequence, QtxShortcutTree::tr("Double click to edit key sequence.")); } -/*! - \brief Check uniqueness of the shortcut. - \param item current item of the shortcut tree - \param shortcut shortcut appointed for the current item - \return \c true if the given shortcut is allowed -*/ -bool QtxShortcutTree::checkUniqueness( QTreeWidgetItem* item, const QString& shortcut ) -{ - // List of sections to check shortcut intersections - QStringList sectionsList; - - // Current section - QString currentSection = currentItem()->parent()->text( 0 ); - - // If the current section is general - if ( myGeneralSections.contains(currentSection) ) { - sectionsList = sections(); - int currentSectionIndex = sectionsList.indexOf(currentSection); - sectionsList.move( currentSectionIndex, 0); - } - else { - sectionsList = myGeneralSections; - sectionsList.prepend(currentSection); +/*static*/ QtxShortcutTreeAction* QtxShortcutTreeAction::create(const QString& theModuleID, const QString& theInModuleActionID) +{ + if (theInModuleActionID.isEmpty()) { + ShCutDbg("QtxShortcutTreeItem: attempt to create item with empty action ID."); + return nullptr; } - // Iterate on sections - QStringList::const_iterator it; - for( it = sectionsList.constBegin(); it != sectionsList.constEnd(); ++it ) { - QString section = *it; - - // Iterate on actual section - QTreeWidgetItem* sectionRoot = findItems( section, Qt::MatchFixedString ).first(); - int nbChildren = sectionRoot->childCount(); - - for( int i = 0; i < nbChildren; i++ ) { - QTreeWidgetItem* child = sectionRoot->child(i); - - if ( (child != item) && (shortcut == child->text( 1 )) ) { - bool res = QMessageBox::warning( parentWidget(), tr("Warning"), - tr("The \"%1\" shortcut has already used by the \"%2\" action.\n") - .arg(shortcut, section + ":" + child->text( 0 ) ) + - tr("Do you want to reassign it from that action to the current one?"), - QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes; - if (res) - child->setText( 1, "" ); - return res; - } - } + return new QtxShortcutTreeAction(theModuleID, theInModuleActionID); +} + +void QtxShortcutTreeAction::setAssets(std::shared_ptr theAssets, const QString& theLang) +{ + if (!theAssets) + return; + + setIcon(QtxShortcutTree::ElementIdx::Name, theAssets->myIcon); + + const auto& ldaMap = theAssets->myLangDependentAssets; + if (ldaMap.empty()) { + setText(QtxShortcutTree::ElementIdx::Name, myInModuleActionID); + return; } - return true; + auto itLDA = ldaMap.find(theLang); + if (itLDA == ldaMap.end()) + itLDA = ldaMap.begin(); + + const SUIT_ActionAssets::LangDependentAssets& lda = itLDA->second; + const QString& name = lda.myName.isEmpty() ? myInModuleActionID : lda.myName; + setText(QtxShortcutTree::ElementIdx::Name, name); + + const QString& actionToolTip = lda.myToolTip.isEmpty() ? name : lda.myToolTip; + setToolTip( + QtxShortcutTree::ElementIdx::Name, + actionToolTip + (actionToolTip.at(actionToolTip.length()-1) == "." ? "\n" : ".\n") + QtxShortcutTree::tr("Double click to edit key sequence.") + ); } + +QString QtxShortcutTreeAction::getValue(QtxShortcutTree::SortKey theKey) const +{ + switch (theKey) { + case QtxShortcutTree::SortKey::ID: + return myInModuleActionID; + case QtxShortcutTree::SortKey::Name: + return name(); + case QtxShortcutTree::SortKey::ToolTip: + return toolTip(QtxShortcutTree::ElementIdx::Name); + case QtxShortcutTree::SortKey::KeySequence: + return keySequence(); + default: + return QString(); + } +} + +void QtxShortcutTreeAction::setKeySequence(const QString& theKeySequence) +{ + setText(QtxShortcutTree::ElementIdx::KeySequence, theKeySequence); +} + +QString QtxShortcutTreeAction::keySequence() const +{ + return text(QtxShortcutTree::ElementIdx::KeySequence); +} + +/*! \brief Highlights text at ElementIdx::KeySequence. */ +void QtxShortcutTreeAction::highlightKeySequenceAsModified(bool theHighlight) +{ + static const QBrush bgHighlitingBrush = QBrush(Qt::darkGreen); + static const QBrush fgHighlitingBrush = QBrush(Qt::white); + static const QBrush noBrush = QBrush(); + + setBackground(QtxShortcutTree::ElementIdx::KeySequence, theHighlight ? bgHighlitingBrush : noBrush); + setForeground(QtxShortcutTree::ElementIdx::KeySequence, theHighlight ? fgHighlitingBrush : noBrush); +} \ No newline at end of file diff --git a/src/Qtx/QtxShortcutEdit.h b/src/Qtx/QtxShortcutEdit.h index 231e65a9d..862c80d86 100644 --- a/src/Qtx/QtxShortcutEdit.h +++ b/src/Qtx/QtxShortcutEdit.h @@ -17,71 +17,249 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -#ifndef QTXSHORTCUTEDIT_H -#define QTXSHORTCUTEDIT_H +#ifndef QTXSHORTCUTTREE_H +#define QTXSHORTCUTTREE_H #include "Qtx.h" - +#include #include #include +#include "SUIT_ShortcutMgr.h" +#include +#include +#include +#include + class QLineEdit; +class QLabel; class QPushButton; class QTreeWidgetItem; -typedef QMap< QString, QString > ShortcutMap; - -class QTX_EXPORT QtxShortcutEdit : public QFrame +class QTX_EXPORT QtxKeySequenceEdit : public QFrame { Q_OBJECT public: - QtxShortcutEdit( QWidget* = 0 ); - virtual ~QtxShortcutEdit(); - void setShortcut( const QKeySequence& ); - QKeySequence shortcut(); - static QString parseEvent( QKeyEvent* ); - static bool isValidKey( int ); + QtxKeySequenceEdit(QWidget* = nullptr); + virtual ~QtxKeySequenceEdit() = default; + + void setConfirmedKeySequence(const QKeySequence&); + void setEditedKeySequence(const QKeySequence&); + QKeySequence editedKeySequence() const; + bool isKeySequenceModified() const; + void restoreKeySequence(); + + static QString parseEvent(QKeyEvent*); + static bool isValidKey(int); +signals: + void editingStarted(); + void editingFinished(); + void restoreFromShortcutMgrClicked(); private slots: - void onCliked(); + void onClear(); void onEditingFinished(); protected: - virtual bool eventFilter( QObject*, QEvent* ); + virtual bool eventFilter(QObject*, QEvent*); private: void initialize(); private: - QLineEdit* myShortcut; - QString myPrevShortcutText; + QLineEdit* myKeySequenceLineEdit; + QString myConfirmedKeySequenceString; + + // Last valid key sequence string from myKeySequenceLineEdit. + QString myPrevKeySequenceString; +}; + + +class QtxShortcutTree; +class QtxShortcutTreeItem; +class QtxShortcutTreeFolder; +class QtxShortcutTreeAction; +class QTextEdit; + + +class QTX_EXPORT QtxEditKeySequenceDialog : public QDialog +{ + Q_OBJECT + +public: + QtxEditKeySequenceDialog(QtxShortcutTree* theParent); + QtxEditKeySequenceDialog(const QtxEditKeySequenceDialog&) = delete; + QtxEditKeySequenceDialog& operator=(const QtxEditKeySequenceDialog&) = delete; + virtual ~QtxEditKeySequenceDialog() = default; + + void setModuleAndActionID(const QString& theModuleID, const QString& theInModuleActionID); + const QString& moduleID() const; + const QString& inModuleActionID() const; + + void setModuleAndActionName(const QString& theModuleName, const QString& theActionName, const QString& theActionToolTip = ""); + + void setConfirmedKeySequence(const QKeySequence& theSequence); + QKeySequence editedKeySequence() const; + + void updateConflictsMessage(); + + int exec(); + +private slots: + void onEditingStarted(); + void onEditingFinished(); + void onRestoreFromShortcutMgr(); + void onConfirm(); + +private: + QString myModuleID; + QString myInModuleActionID; + QLabel* myActionName; + QtxKeySequenceEdit* myKeySequenceEdit; + QTextEdit* myTextEdit; }; + class QTX_EXPORT QtxShortcutTree : public QTreeWidget { Q_OBJECT public: - QtxShortcutTree( QWidget * parent = 0 ); + enum ElementIdx { + Name = 0, + KeySequence = 1, // Empty, if item is folder item. + }; + + enum class SortKey { + ID, + Name, + ToolTip, + KeySequence, + }; + + enum class SortOrder { + Ascending, + Descending + }; + + QtxShortcutTree( + std::shared_ptr theContainer = std::shared_ptr(), + QWidget* theParent = nullptr + ); + QtxShortcutTree(const QtxShortcutTree&) = delete; + QtxShortcutTree& operator=(const QtxShortcutTree&) = delete; virtual ~QtxShortcutTree(); - void setBindings( const QString&, const ShortcutMap& ); - ShortcutMap* bindings( const QString& ) const; - QStringList sections() const; - void setGeneralSections( const QStringList& ); -protected: - virtual bool eventFilter( QObject*, QEvent* ); - virtual void focusOutEvent( QFocusEvent* ); - virtual bool checkUniqueness( QTreeWidgetItem*, const QString& ); + void setShortcutsFromManager(); + void setDefaultShortcuts(); + void applyChangesToShortcutMgr(); + + std::shared_ptr shortcutContainer() const; + + void sort(QtxShortcutTree::SortKey theKey, QtxShortcutTree::SortOrder theOrder); + +private: + void updateItems(bool theHighlightModified, bool theUpdateSyncTrees); + std::pair findModuleFolderItem(const QString& theModuleID) const; + + std::set> getSortedChildren(QtxShortcutTreeFolder* theParentItem); + + void insertChild( + QtxShortcutTreeFolder* theParentItem, + std::set>& theSortedChildren, + QtxShortcutTreeItem* theChildItem + ); private slots: - void onCurrentItemChanged( QTreeWidgetItem*, QTreeWidgetItem* ); + void onItemDoubleClicked(QTreeWidgetItem* theWidgetItem, int theColIdx); + +public: + /** Keeps IDs of modules, which will are shown on setShortcutsFromManager(). */ + std::set myModuleIDs; + + static const QList> DEFAULT_SORT_SCHEMA; + +private: + /** Allows to modify plenty of shortcuts and then apply them to SUIT_ShortcutMgr as a batch. */ + const std::shared_ptr myShortcutContainer; + + QtxEditKeySequenceDialog* myEditDialog; + + QtxShortcutTree::SortKey mySortKey; + QtxShortcutTree::SortOrder mySortOrder; + + /** + * Ensures that, if several QtxShortcutTree instances coexist, + * all of them are updated when one of them applies pending changes to SUIT_ShortcutMgr. + * + * Sharing of SUIT_ShortcutContainer allows to keep some trees synchronized even without + * applying changes to SUIT_ShortcutMgr. Why? See QtxPagePrefShortcutTreeItem. + * + * Access is not synchronized in assumption, that all instances live in the same thread. + */ + static std::map> instances; +}; + + +class QtxShortcutTreeItem : public QTreeWidgetItem +{ +public: + enum Type { + Folder = 0, + Action = 1, + }; + +protected: + QtxShortcutTreeItem(const QString& theModuleID); + +public: + virtual ~QtxShortcutTreeItem() = default; + virtual QtxShortcutTreeItem::Type type() const = 0; + + virtual void setAssets(std::shared_ptr theAssets, const QString& theLang) = 0; + QString name() const; + + virtual QString getValue(QtxShortcutTree::SortKey theKey) const = 0; +public: + const QString myModuleID; +}; + + +class QtxShortcutTreeFolder : public QtxShortcutTreeItem +{ +public: + QtxShortcutTreeFolder(const QString& theModuleID); + virtual ~QtxShortcutTreeFolder() = default; + virtual QtxShortcutTreeItem::Type type() const { return QtxShortcutTreeItem::Type::Folder; }; + + virtual void setAssets(std::shared_ptr theAssets, const QString& theLang); + + virtual QString getValue(QtxShortcutTree::SortKey theKey) const; +}; + + +class QtxShortcutTreeAction : public QtxShortcutTreeItem +{ private: - QMap< QString, ShortcutMap > myPrevBindings; - QStringList myGeneralSections; + QtxShortcutTreeAction(const QString& theModuleID, const QString& theInModuleActionID); + +public: + static QtxShortcutTreeAction* create(const QString& theModuleID, const QString& theInModuleActionID); + virtual ~QtxShortcutTreeAction() = default; + virtual QtxShortcutTreeItem::Type type() const { return QtxShortcutTreeItem::Type::Action; }; + + virtual void setAssets(std::shared_ptr theAssets, const QString& theLang); + + virtual QString getValue(QtxShortcutTree::SortKey theKey) const; + + void setKeySequence(const QString& theKeySequence); + QString keySequence() const; + void highlightKeySequenceAsModified(bool theHighlight); + + const QString myInModuleActionID; }; -#endif // QTXSHORTCUTEDIT_H +#endif // QTXSHORTCUTTREE_H diff --git a/src/Qtx/QtxWorkspaceAction.cxx b/src/Qtx/QtxWorkspaceAction.cxx index 4b37a3c75..0decdea84 100644 --- a/src/Qtx/QtxWorkspaceAction.cxx +++ b/src/Qtx/QtxWorkspaceAction.cxx @@ -78,8 +78,8 @@ QtxWorkspace* QtxWorkspaceAction::workspace() const /*! \brief Set actions to be visible in the menu. - - Actions, which IDs are set in \a flags parameter, will be shown in the + + Actions, which IDs are set in \a flags parameter, will be shown in the menu bar. Other actions will not be shown. \param flags ORed together actions flags @@ -164,17 +164,6 @@ QString QtxWorkspaceAction::statusTip( const int id ) const return txt; } -/*! - \brief Set keyboard accelerator for the specified action. - \param id menu action ID - \param a new keyboard accelerator -*/ -void QtxWorkspaceAction::setAccel( const int id, const int a ) -{ - if ( action( id ) ) - action( id )->setShortcut( a ); -} - /*! \brief Set menu item icon for the specified action. \param id menu action ID @@ -403,7 +392,7 @@ void QtxWorkspaceAction::activateItem( const int idx ) /*! \brief Called when menu item is activated by the user. - + Perform the corresponding action. \param id menu item identifier diff --git a/src/Qtx/QtxWorkspaceAction.h b/src/Qtx/QtxWorkspaceAction.h index 42e5f2ae3..ffa676c46 100644 --- a/src/Qtx/QtxWorkspaceAction.h +++ b/src/Qtx/QtxWorkspaceAction.h @@ -63,7 +63,6 @@ public: int accel( const int ) const; QString statusTip( const int ) const; - void setAccel( const int, const int ); void setIcon( const int, const QIcon& ); void setText( const int, const QString& ); void setStatusTip( const int, const QString& ); diff --git a/src/Qtx/QtxWorkstack.cxx b/src/Qtx/QtxWorkstack.cxx index 6a5ba33f5..c8a4f9ab4 100644 --- a/src/Qtx/QtxWorkstack.cxx +++ b/src/Qtx/QtxWorkstack.cxx @@ -1728,10 +1728,10 @@ QtxWorkstack::QtxWorkstack( QWidget* parent ) myWorkWin( 0 ), myWorkArea( 0 ) { - myActionsMap.insert( SplitVertical, new QtxAction( QString(), tr( "Split vertically" ), 0, this ) ); - myActionsMap.insert( SplitHorizontal, new QtxAction( QString(), tr( "Split horizontally" ), 0, this ) ); - myActionsMap.insert( Close, new QtxAction( QString(), tr( "Close" ), 0, this ) ); - myActionsMap.insert( Rename, new QtxAction( QString(), tr( "Rename" ), 0, this ) ); + myActionsMap.insert( SplitVertical, new QtxAction( this, false /*toggle*/, "/PRP_DESK_WINDOW_VSPLIT", tr( "Split vertically" ) ) ); + myActionsMap.insert( SplitHorizontal, new QtxAction( this, false /*toggle*/, "/PRP_DESK_WINDOW_HSPLIT", tr( "Split horizontally" ) ) ); + myActionsMap.insert( Close, new QtxAction( this, false /*toggle*/, tr( "Close" ) ) ); + myActionsMap.insert( Rename, new QtxAction( this, false /*toggle*/, tr( "Rename" ) ) ); connect( myActionsMap[SplitVertical], SIGNAL( triggered( bool ) ), this, SLOT( splitVertical() ) ); connect( myActionsMap[SplitHorizontal], SIGNAL( triggered( bool ) ), this, SLOT( splitHorizontal() ) ); @@ -2181,19 +2181,6 @@ void QtxWorkstack::SetRelativePosition( QWidget* wid, const Qt::Orientation o, } } -/*! - \brief Set accelerator key-combination for the action with specified \a id. - \param id action ID - \param accel action accelerator -*/ -void QtxWorkstack::setAccel( const int id, const int accel ) -{ - if ( !myActionsMap.contains( id ) ) - return; - - myActionsMap[id]->setShortcut( accel ); -} - /*! \brief Get the action's accelerator key-combination. \param id action ID diff --git a/src/Qtx/QtxWorkstack.h b/src/Qtx/QtxWorkstack.h index f9a192e80..d696d9e6c 100644 --- a/src/Qtx/QtxWorkstack.h +++ b/src/Qtx/QtxWorkstack.h @@ -96,7 +96,6 @@ public: void setActiveWindow( QWidget* ); int accel( const int ) const; - void setAccel( const int, const int ); QIcon icon( const int ) const; void setIcon( const int, const QIcon& ); @@ -112,7 +111,7 @@ public: QByteArray saveState( int ) const; bool restoreState( const QByteArray&, int ); - + void setOpaqueResize( bool = true ); bool opaqueResize() const; diff --git a/src/Qtx/QtxWorkstackAction.cxx b/src/Qtx/QtxWorkstackAction.cxx index 74913b2b1..e441a5e59 100644 --- a/src/Qtx/QtxWorkstackAction.cxx +++ b/src/Qtx/QtxWorkstackAction.cxx @@ -125,14 +125,14 @@ QtxWorkstackAction::QtxWorkstackAction( QtxWorkstack* ws, QObject* parent ) if ( myWorkstack ) insertAction( myWorkstack->action( QtxWorkstack::SplitVertical ), SplitVertical ); else - insertAction( new QtxAction( tr( "Split the active window on two vertical parts" ), - tr( "Split vertically" ), 0, this ), SplitVertical ); + insertAction( new QtxAction(this, false /*toggle*/, "/PRP_DESK_WINDOW_VSPLIT", + tr( "Split the active window on two vertical parts" ), tr( "Split vertically" )), SplitVertical); if ( myWorkstack ) insertAction( myWorkstack->action( QtxWorkstack::SplitHorizontal ), SplitHorizontal ); else - insertAction( new QtxAction( tr( "Split the active window on two horizontal parts" ), - tr( "Split horizontally" ), 0, this ), SplitHorizontal ); + insertAction( new QtxAction(this, false /*toggle*/, "/PRP_DESK_WINDOW_HSPLIT", + tr( "Split the active window on two horizontal parts" ), tr( "Split horizontally" )), SplitHorizontal); connect( this, SIGNAL( triggered( int ) ), this, SLOT( onTriggered( int ) ) ); @@ -249,17 +249,6 @@ QString QtxWorkstackAction::statusTip( const int id ) const return txt; } -/*! - \brief Set keyboard accelerator for the specified action. - \param id menu action ID - \param a new keyboard accelerator -*/ -void QtxWorkstackAction::setAccel( const int id, const int a ) -{ - if ( action( id ) ) - action( id )->setShortcut( a ); -} - /*! \brief Set menu item icon for the specified action. \param id menu action ID diff --git a/src/Qtx/QtxWorkstackAction.h b/src/Qtx/QtxWorkstackAction.h index e7313e6f5..d524afb39 100644 --- a/src/Qtx/QtxWorkstackAction.h +++ b/src/Qtx/QtxWorkstackAction.h @@ -67,7 +67,6 @@ public: int accel( const int ) const; QString statusTip( const int ) const; - void setAccel( const int, const int ); void setIcon( const int, const QIcon& ); void setText( const int, const QString& ); void setStatusTip( const int, const QString& ); diff --git a/src/Qtx/images/shortcut_disable.svg b/src/Qtx/images/shortcut_disable.svg new file mode 100644 index 000000000..cf661ff9f --- /dev/null +++ b/src/Qtx/images/shortcut_disable.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/Qtx/images/shortcut_restore.svg b/src/Qtx/images/shortcut_restore.svg new file mode 100644 index 000000000..90dfc47d5 --- /dev/null +++ b/src/Qtx/images/shortcut_restore.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/Qtx/resources/Qtx_msg_fr.ts b/src/Qtx/resources/Qtx_msg_fr.ts index d61dfe7fb..2ea62824e 100644 --- a/src/Qtx/resources/Qtx_msg_fr.ts +++ b/src/Qtx/resources/Qtx_msg_fr.ts @@ -495,4 +495,53 @@ %1 a été développé en utilisant %2
+ + QtxKeySequenceEdit + + Disable shortcut. + Désactivez le raccourci. + + + Restore the currently applied key sequence. + Restaurez la séquence de touches actuellement appliquée. + + + + QtxEditKeySequenceDialog + + Change key sequence + Modifier la séquence de touches + + + No conflicts. + Aucun conflit. + + + Confirm + Confirmer + + + Cancel + Annuler + + + These shortcuts will be disabled on confirm: + Ces raccourcis seront désactivés lors de la confirmation : + + + + QtxShortcutTree + + Action + Action + + + Key sequence + Séquence de touches + + + Double click to edit key sequence. + Double-cliquez pour modifier la séquence de touches. + + diff --git a/src/Qtx/resources/Qtx_msg_ja.ts b/src/Qtx/resources/Qtx_msg_ja.ts index 173c81282..36900402a 100644 --- a/src/Qtx/resources/Qtx_msg_ja.ts +++ b/src/Qtx/resources/Qtx_msg_ja.ts @@ -495,4 +495,53 @@ %1 は %2 を使用して開発されています。 + + QtxKeySequenceEdit + + Disable shortcut. + ショートカットを無効にします。 + + + Restore the currently applied key sequence. + 現在適用されているキー シーケンスを復元します。 + + + + QtxEditKeySequenceDialog + + Change key sequence + キーシーケンスを変更する + + + No conflicts. + 競合はありません。 + + + Confirm + 確認する + + + Cancel + キャンセル + + + These shortcuts will be disabled on confirm: + これらのショートカットは確認時に無効になります。 + + + + QtxShortcutTree + + Action + アクション + + + Key sequence + キーシーケンス + + + Double click to edit key sequence. + ダブルクリックしてキー シーケンスを編集します。 + + diff --git a/src/SALOME_PYQT/SalomePyQt/SalomePyQt.h b/src/SALOME_PYQT/SalomePyQt/SalomePyQt.h index 8d9b2b42f..aaf59b449 100644 --- a/src/SALOME_PYQT/SalomePyQt/SalomePyQt.h +++ b/src/SALOME_PYQT/SalomePyQt/SalomePyQt.h @@ -82,7 +82,7 @@ enum MenuName { Preferences = 4, Tools = 5, Window = 6, - Help = 7 + Help = 7 }; enum { @@ -98,29 +98,28 @@ enum { #endif }; -enum { +enum { PT_Auto = LightApp_Preferences::Auto, PT_Space = LightApp_Preferences::Space, - PT_Bool = LightApp_Preferences::Bool, + PT_Bool = LightApp_Preferences::Bool, PT_Color = LightApp_Preferences::Color, - PT_String = LightApp_Preferences::String, - PT_Selector = LightApp_Preferences::Selector, - PT_DblSpin = LightApp_Preferences::DblSpin, - PT_IntSpin = LightApp_Preferences::IntSpin, - PT_Double = LightApp_Preferences::Double, - PT_Integer = LightApp_Preferences::Integer, - PT_GroupBox = LightApp_Preferences::GroupBox, - PT_Tab = LightApp_Preferences::Tab, - PT_Frame = LightApp_Preferences::Frame, - PT_Font = LightApp_Preferences::Font, - PT_DirList = LightApp_Preferences::DirList, - PT_File = LightApp_Preferences::File, - PT_Slider = LightApp_Preferences::Slider, - PT_Shortcut = LightApp_Preferences::Shortcut, - PT_ShortcutTree = LightApp_Preferences::ShortcutTree, - PT_BiColor = LightApp_Preferences::BiColor, - PT_Background = LightApp_Preferences::Background, - PT_UserDefined = LightApp_Preferences::UserDefined, + PT_String = LightApp_Preferences::String, + PT_Selector = LightApp_Preferences::Selector, + PT_DblSpin = LightApp_Preferences::DblSpin, + PT_IntSpin = LightApp_Preferences::IntSpin, + PT_Double = LightApp_Preferences::Double, + PT_Integer = LightApp_Preferences::Integer, + PT_GroupBox = LightApp_Preferences::GroupBox, + PT_Tab = LightApp_Preferences::Tab, + PT_Frame = LightApp_Preferences::Frame, + PT_Font = LightApp_Preferences::Font, + PT_DirList = LightApp_Preferences::DirList, + PT_File = LightApp_Preferences::File, + PT_Slider = LightApp_Preferences::Slider, + PT_ShortcutTree = LightApp_Preferences::ShortcutTree, + PT_BiColor = LightApp_Preferences::BiColor, + PT_Background = LightApp_Preferences::Background, + PT_UserDefined = LightApp_Preferences::UserDefined, }; class UserDefinedContent: public QWidget @@ -136,7 +135,7 @@ public: //! Orientation enum Orientation { - Horizontal = 0, //!< Horizontal orientation + Horizontal = 0, //!< Horizontal orientation Vertical = 1 //!< Vertical orientation }; @@ -161,11 +160,11 @@ enum ObjectType }; #endif -enum VisibilityState +enum VisibilityState { ShownState, //!< Object is shown in viewer HiddenState, //!< Object is hidden in viewer - UnpresentableState //!< Unpresentable object + UnpresentableState //!< Unpresentable object }; #ifndef DISABLE_PLOT2DVIEWER @@ -174,7 +173,7 @@ enum Axis { yRight = QwtPlot::yRight, xBottom = QwtPlot::xBottom, xTop = QwtPlot::xTop, -}; +}; #endif class SalomePyQt @@ -247,7 +246,7 @@ public: static void setColor( const QString&, const QColor& ); static QColor getColor( const QString& ); - static void setReference( const QString&, const QString& ); + static void setReference( const QString&, const QString& ); static QString getReference( const QString& ); static QIcon loadIcon( const QString&, const QString& ); @@ -267,23 +266,23 @@ public: static int createMenu( const QString&, const int = -1, const int = -1, const int = -1, const int = -1 ); - static int createMenu( const QString&, const QString& = QString(), + static int createMenu( const QString&, const QString& = QString(), const int = -1, const int = -1, const int = -1 ); static int createMenu( const int, const int = -1, const int = -1, const int = -1 ); - static int createMenu( const int, const QString& = QString(), + static int createMenu( const int, const QString& = QString(), const int = -1, const int = -1 ); - static int createMenu( QAction*, const int, const int = -1, + static int createMenu( QAction*, const int, const int = -1, const int = -1, const int = -1 ); - static int createMenu( QAction*, const QString&, const int = -1, + static int createMenu( QAction*, const QString&, const int = -1, const int = -1, const int = -1 ); static QAction* createSeparator(); static QAction* createAction( const int, const QString&, - const QString& = QString(), const QString& = QString(), + const QString& = QString(), const QString& = QString(), const QString& = QString(), const int = 0, const bool = false ); - + static QtxActionGroup* createActionGroup( const int, const bool = true ); static QAction* action( const int ); @@ -323,7 +322,7 @@ public: static void message( const QString&, bool = true ); static void clearMessages(); - + static QList getViews(); static int getActiveView(); static QString getViewType( const int ); diff --git a/src/SALOME_PYQT/SalomePyQt/SalomePyQt.sip b/src/SALOME_PYQT/SalomePyQt/SalomePyQt.sip index 0c01923e8..5b8bb3759 100644 --- a/src/SALOME_PYQT/SalomePyQt/SalomePyQt.sip +++ b/src/SALOME_PYQT/SalomePyQt/SalomePyQt.sip @@ -72,7 +72,7 @@ enum MenuName { Preferences = 4, Tools = 5, Window = 6, - Help = 7 + Help = 7 }; enum WindowType { @@ -86,25 +86,24 @@ enum WindowType { WT_User }; -enum PrefType { +enum PrefType { PT_Auto, PT_Space, - PT_Bool, + PT_Bool, PT_Color, - PT_String, - PT_Selector, - PT_DblSpin, - PT_IntSpin, - PT_Double, - PT_Integer, - PT_GroupBox, - PT_Tab, - PT_Frame, - PT_Font, - PT_DirList, - PT_File, + PT_String, + PT_Selector, + PT_DblSpin, + PT_IntSpin, + PT_Double, + PT_Integer, + PT_GroupBox, + PT_Tab, + PT_Frame, + PT_Font, + PT_DirList, + PT_File, PT_Slider, - PT_Shortcut, PT_ShortcutTree, PT_BiColor, PT_Background, @@ -112,14 +111,14 @@ enum PrefType { }; enum Orientation { - Horizontal = 0, - Vertical = 1 + Horizontal = 0, + Vertical = 1 }; enum Action { - MoveWidget = 0, - LeaveWidget = 1, - SplitAt = 2 + MoveWidget = 0, + LeaveWidget = 1, + SplitAt = 2 }; class QtxAction : QWidgetAction @@ -264,11 +263,11 @@ public: virtual void retrieve(); }; -enum VisibilityState +enum VisibilityState { ShownState, HiddenState, - UnpresentableState + UnpresentableState }; class SalomePyQt @@ -334,7 +333,7 @@ public: static QString getFileName ( QWidget*, const QString&, const QStringList&, const QString&, bool ) /ReleaseGIL/ ; static QStringList getOpenFileNames ( QWidget*, const QString&, const QStringList&, const QString& ) /ReleaseGIL/ ; static QString getExistingDirectory( QWidget*, const QString&, const QString& ) /ReleaseGIL/ ; - + static void createRoot() /ReleaseGIL/ ; static QString createObject( const QString& = QString("") ) /ReleaseGIL/ ; static QString createObject( const QString&, @@ -357,7 +356,7 @@ public: static void setColor( const QString&, const QColor& ) /ReleaseGIL/ ; static QColor getColor( const QString& ) /ReleaseGIL/ ; - static void setReference( const QString& ,const QString& ) /ReleaseGIL/ ; + static void setReference( const QString& ,const QString& ) /ReleaseGIL/ ; static QString getReference( const QString& ) /ReleaseGIL/ ; static void removeObject(const QString& ) /ReleaseGIL/ ; @@ -381,20 +380,20 @@ public: static int createMenu( const QString&, const int, const int = -1, const int = -1, const int = -1 ) /ReleaseGIL/ ; - static int createMenu( const QString&, const QString&, + static int createMenu( const QString&, const QString&, const int = -1, const int = -1, const int = -1 ) /ReleaseGIL/ ; static int createMenu( const int, const int, const int = -1, const int = -1 ) /ReleaseGIL/ ; - static int createMenu( const int, const QString&, + static int createMenu( const int, const QString&, const int = -1, const int = -1 ) /ReleaseGIL/ ; - static int createMenu( QAction*, const int, const int = -1, + static int createMenu( QAction*, const int, const int = -1, const int = -1, const int = -1 ) /ReleaseGIL/ ; - static int createMenu( QAction*, const QString&, const int = -1, + static int createMenu( QAction*, const QString&, const int = -1, const int = -1, const int = -1 ) /ReleaseGIL/ ; static QAction* createSeparator() /ReleaseGIL/ ; - static QAction* createAction( const int, const QString&, - const QString& = QString(), const QString& = QString(), + static QAction* createAction( const int, const QString&, + const QString& = QString(), const QString& = QString(), const QString& = QString(), const int = 0, const bool = false ) /ReleaseGIL/ ; static QtxActionGroup* createActionGroup( const int, const bool = true ) /ReleaseGIL/ ; @@ -438,20 +437,20 @@ public: const QString& = QString(), const QString& = QString() ) /ReleaseGIL/ ; static QVariant preferenceProperty( const int, const QString& ) /ReleaseGIL/ ; - static void setPreferenceProperty( const int, + static void setPreferenceProperty( const int, const QString&, const QVariant& ) /ReleaseGIL/ ; - static void setPreferencePropertyWg( const int, - const QString&, + static void setPreferencePropertyWg( const int, + const QString&, UserDefinedContent* ) /ReleaseGIL/ ; - static void addPreferenceProperty( const int, - const QString&, - const int, + static void addPreferenceProperty( const int, + const QString&, + const int, const QVariant& ) /ReleaseGIL/ ; static void message( const QString&, bool = true ) /ReleaseGIL/ ; static void clearMessages() /ReleaseGIL/ ; - + static QList getViews() /ReleaseGIL/ ; static int getActiveView() /ReleaseGIL/ ; static QString getViewType( const int ) /ReleaseGIL/ ; @@ -471,12 +470,12 @@ public: static bool isViewVisible( const int id ) /ReleaseGIL/ ; static void setViewClosable( const int id, const bool ) /ReleaseGIL/ ; static bool isViewClosable( const int id ) /ReleaseGIL/ ; - + static bool groupAllViews() /ReleaseGIL/ ; static bool splitView( const int, Orientation, Action ) /ReleaseGIL/ ; static bool moveView( const int, const int, const bool ) /ReleaseGIL/ ; static QList neighbourViews( const int ) /ReleaseGIL/ ; - + %If (ENABLE_PLOT2D) // start Plot2d-related functionality static void displayCurve(const int, Plot2d_Curve*) /ReleaseGIL/ ; diff --git a/src/STD/STD_Application.cxx b/src/STD/STD_Application.cxx index ff9cbd203..6dceb529f 100644 --- a/src/STD/STD_Application.cxx +++ b/src/STD/STD_Application.cxx @@ -157,12 +157,12 @@ void STD_Application::createActions() createAction( FileNewId, tr( "TOT_DESK_FILE_NEW" ), resMgr->loadPixmap( "STD", tr( "ICON_FILE_NEW" ) ), tr( "MEN_DESK_FILE_NEW" ), tr( "PRP_DESK_FILE_NEW" ), - Qt::CTRL+Qt::Key_N, desk, false, this, SLOT( onNewDoc() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onNewDoc() ), "/TOT_DESK_FILE_NEW" ); createAction( FileOpenId, tr( "TOT_DESK_FILE_OPEN" ), resMgr->loadPixmap( "STD", tr( "ICON_FILE_OPEN" ) ), tr( "MEN_DESK_FILE_OPEN" ), tr( "PRP_DESK_FILE_OPEN" ), - Qt::CTRL+Qt::Key_O, desk, false, this, SLOT( onOpenDoc() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onOpenDoc() ), "/TOT_DESK_FILE_OPEN" ); createAction( FileReopenId, tr( "TOT_DESK_FILE_REOPEN" ), QIcon(), tr( "MEN_DESK_FILE_REOPEN" ), tr( "PRP_DESK_FILE_REOPEN" ), @@ -171,46 +171,46 @@ void STD_Application::createActions() createAction( FileCloseId, tr( "TOT_DESK_FILE_CLOSE" ), resMgr->loadPixmap( "STD", tr( "ICON_FILE_CLOSE" ) ), tr( "MEN_DESK_FILE_CLOSE" ), tr( "PRP_DESK_FILE_CLOSE" ), - Qt::CTRL+Qt::Key_W, desk, false, this, SLOT( onCloseDoc() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onCloseDoc() ), "/TOT_DESK_FILE_CLOSE" ); //no need in this action for mono-study application as it is same as NewDoc action( FileCloseId )->setVisible( false ); createAction( FileExitId, tr( "TOT_DESK_FILE_EXIT" ), QIcon(), tr( "MEN_DESK_FILE_EXIT" ), tr( "PRP_DESK_FILE_EXIT" ), - Qt::CTRL+Qt::Key_Q, desk, false, this, SLOT( onExit() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onExit() ), "/TOT_DESK_FILE_EXIT" ); createAction( FileSaveId, tr( "TOT_DESK_FILE_SAVE" ), resMgr->loadPixmap( "STD", tr( "ICON_FILE_SAVE" ) ), tr( "MEN_DESK_FILE_SAVE" ), tr( "PRP_DESK_FILE_SAVE" ), - Qt::CTRL+Qt::Key_S, desk, false, this, SLOT( onSaveDoc() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onSaveDoc() ), "/TOT_DESK_FILE_SAVE" ); createAction( FileSaveAsId, tr( "TOT_DESK_FILE_SAVEAS" ), QIcon(), tr( "MEN_DESK_FILE_SAVEAS" ), tr( "PRP_DESK_FILE_SAVEAS" ), - Qt::CTRL+Qt::SHIFT+Qt::Key_S, desk, false, this, SLOT( onSaveAsDoc() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onSaveAsDoc() ), "/TOT_DESK_FILE_SAVEAS"); createAction( EditCopyId, tr( "TOT_DESK_EDIT_COPY" ), resMgr->loadPixmap( "STD", tr( "ICON_EDIT_COPY" ) ), tr( "MEN_DESK_EDIT_COPY" ), tr( "PRP_DESK_EDIT_COPY" ), - Qt::CTRL+Qt::Key_C, desk, false, this, SLOT( onCopy() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onCopy() ), "/#TOT_DESK_EDIT_COPY" ); createAction( EditPasteId, tr( "TOT_DESK_EDIT_PASTE" ), resMgr->loadPixmap( "STD", tr( "ICON_EDIT_PASTE" ) ), tr( "MEN_DESK_EDIT_PASTE" ), tr( "PRP_DESK_EDIT_PASTE" ), - Qt::CTRL+Qt::Key_V, desk, false, this, SLOT( onPaste() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onPaste() ), "/TOT_DESK_EDIT_PASTE" ); + + QAction* a = createAction( ViewStatusBarId, desk, true /*toggle*/, "/PRP_DESK_VIEW_STATUSBAR", + tr( "TOT_DESK_VIEW_STATUSBAR" ), tr( "MEN_DESK_VIEW_STATUSBAR" ), tr( "PRP_DESK_VIEW_STATUSBAR" )); - QAction* a = createAction( ViewStatusBarId, tr( "TOT_DESK_VIEW_STATUSBAR" ), - QIcon(), tr( "MEN_DESK_VIEW_STATUSBAR" ), - tr( "PRP_DESK_VIEW_STATUSBAR" ), Qt::ALT+Qt::SHIFT+Qt::Key_S, desk, true ); a->setChecked( desk->statusBar()->isVisibleTo( desk ) ); connect( a, SIGNAL( toggled( bool ) ), this, SLOT( onViewStatusBar( bool ) ) ); createAction( NewWindowId, tr( "TOT_DESK_NEWWINDOW" ), QIcon(), tr( "MEN_DESK_NEWWINDOW" ), tr( "PRP_DESK_NEWWINDOW" ), 0, desk ); - createAction( HelpAboutId, tr( "TOT_DESK_HELP_ABOUT" ), - resMgr->loadPixmap( "STD", tr( "ICON_DESK_ABOUT" ) ), - tr( "MEN_DESK_HELP_ABOUT" ), tr( "PRP_DESK_HELP_ABOUT" ), - Qt::ALT+Qt::SHIFT+Qt::Key_A, desk, false, this, SLOT( onHelpAbout() ) ); + createAction( HelpAboutId, desk, false /*toggle*/, "/PRP_DESK_HELP_ABOUT", + tr( "TOT_DESK_HELP_ABOUT" ), tr( "MEN_DESK_HELP_ABOUT" ), tr( "PRP_DESK_HELP_ABOUT" ), + resMgr->loadPixmap( "STD", tr( "ICON_DESK_ABOUT" ) ), + this, SLOT( onHelpAbout() ) ); QtxDockAction* dwa = new QtxDockAction( tr( "TOT_DOCKWINDOWS" ), tr( "MEN_DESK_VIEW_DOCKWINDOWS" ), desk ); @@ -233,7 +233,7 @@ void STD_Application::createActions() createMenu( FileNewId, fileMenu, 0 ); createMenu( FileOpenId, fileMenu, 0 ); - createMenu( FileReopenId, fileMenu, 0 ); + createMenu( FileReopenId, fileMenu, 0 ); createMenu( FileSaveId, fileMenu, 5 ); createMenu( FileSaveAsId, fileMenu, 5 ); createMenu( FileCloseId, fileMenu, 5 ); @@ -342,7 +342,7 @@ bool STD_Application::onOpenDoc( const QString& aName ) QApplication::setOverrideCursor( Qt::WaitCursor ); bool res = openAction( openChoice( aName ), aName ); - + QApplication::restoreOverrideCursor(); return res; @@ -375,7 +375,7 @@ bool STD_Application::onReopenDoc() // delete study delete study; study = 0; - + // post closing actions afterCloseDoc(); @@ -730,11 +730,11 @@ void STD_Application::updateCommandsStatus() /*! \brief Show notification with specified text and title. - + Notification will be automatically hidden after specified \a timeout (given in milliseconds). If \a timeout is zero, the notification is not automatically hidden; it can be only closed by the user manually. - + \param text - Notification text \param title - Notification title \param timeout - Timeout in milliseconds diff --git a/src/STD/STD_TabDesktop.cxx b/src/STD/STD_TabDesktop.cxx index ec674d5a2..8b64dca05 100644 --- a/src/STD/STD_TabDesktop.cxx +++ b/src/STD/STD_TabDesktop.cxx @@ -56,10 +56,6 @@ myWorkstackAction( 0 ) // But the workstack must occupy as much space as possible -- set Expanding for it. myWorkstack->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) ); - myWorkstack->setAccel( QtxWorkstack::SplitVertical, Qt::ALT + Qt::SHIFT + Qt::Key_V ); - myWorkstack->setAccel( QtxWorkstack::SplitHorizontal, Qt::ALT + Qt::SHIFT + Qt::Key_H ); - //myWorkstack->setAccel( QtxWorkstack::Close, Qt::CTRL + Qt::Key_F4 ); - SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); if ( resMgr ) { myWorkstack->setIcon( QtxWorkstack::SplitVertical, @@ -216,14 +212,12 @@ void STD_TabDesktop::createActions() resMgr->loadPixmap( "STD", tr( "ICON_DESK_WINDOW_HSPLIT" ) ) ); myWorkstackAction->setText( QtxWorkstackAction::SplitHorizontal, tr( "MEN_DESK_WINDOW_HSPLIT" ) ); myWorkstackAction->setStatusTip( QtxWorkstackAction::SplitHorizontal, tr( "PRP_DESK_WINDOW_HSPLIT" ) ); - myWorkstackAction->setAccel( QtxWorkstackAction::SplitHorizontal, Qt::ALT + Qt::SHIFT + Qt::Key_H ); // Split Vertical myWorkstackAction->setIcon( QtxWorkstackAction::SplitVertical, resMgr->loadPixmap( "STD", tr( "ICON_DESK_WINDOW_VSPLIT" ) ) ); myWorkstackAction->setText( QtxWorkstackAction::SplitVertical, tr( "MEN_DESK_WINDOW_VSPLIT" ) ); myWorkstackAction->setStatusTip( QtxWorkstackAction::SplitVertical, tr( "PRP_DESK_WINDOW_VSPLIT" ) ); - myWorkstackAction->setAccel( QtxWorkstackAction::SplitVertical, Qt::ALT + Qt::SHIFT + Qt::Key_V ); QAction* anArrangeViewsAction = myWorkstackAction->getArrangeViewsAction(); if( anArrangeViewsAction ) diff --git a/src/SUIT/CMakeLists.txt b/src/SUIT/CMakeLists.txt index 10c9f0079..6c7c3f6af 100644 --- a/src/SUIT/CMakeLists.txt +++ b/src/SUIT/CMakeLists.txt @@ -37,28 +37,28 @@ SET(_link_LIBRARIES ${PLATFORM_LIBS} ${QT_LIBRARIES} qtx ObjBrowser) # --- headers --- # header files / to be processed by moc -SET(_moc_HEADERS - SUIT_Accel.h - SUIT_ActionOperation.h - SUIT_Application.h - SUIT_AutoRotate.h - SUIT_DataBrowser.h - SUIT_DataObject.h - SUIT_Desktop.h - SUIT_FileDlg.h +SET(_moc_HEADERS + SUIT_Accel.h + SUIT_ActionOperation.h + SUIT_Application.h + SUIT_AutoRotate.h + SUIT_DataBrowser.h + SUIT_DataObject.h + SUIT_Desktop.h + SUIT_FileDlg.h SUIT_LicenseDlg.h SUIT_MessageBox.h - SUIT_Operation.h - SUIT_PopupClient.h - SUIT_PreferenceMgr.h - SUIT_SelectionMgr.h - SUIT_Session.h + SUIT_Operation.h + SUIT_PopupClient.h + SUIT_PreferenceMgr.h + SUIT_SelectionMgr.h + SUIT_Session.h SUIT_ShortcutMgr.h SUIT_Study.h - SUIT_TreeModel.h - SUIT_ViewManager.h - SUIT_ViewModel.h - SUIT_ViewWindow.h + SUIT_TreeModel.h + SUIT_ViewManager.h + SUIT_ViewModel.h + SUIT_ViewWindow.h ) # header files / no moc processing @@ -97,6 +97,7 @@ SET(_other_RESOURCES resources/icon_visibility_on.png resources/icon_visibility_off.png resources/view_sync.png + resources/action_assets.json ) # --- sources --- @@ -153,4 +154,3 @@ INSTALL(FILES ${suit_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS}) QT_INSTALL_TS_RESOURCES("${_ts_RESOURCES}" "${SALOME_GUI_INSTALL_RES_DATA}") INSTALL(FILES ${_other_RESOURCES} DESTINATION ${SALOME_GUI_INSTALL_RES_DATA}) - diff --git a/src/SUIT/SUIT_Application.cxx b/src/SUIT/SUIT_Application.cxx index fef1771b3..17eab9ab1 100644 --- a/src/SUIT/SUIT_Application.cxx +++ b/src/SUIT/SUIT_Application.cxx @@ -189,7 +189,7 @@ SUIT_ResourceMgr* SUIT_Application::resourceMgr() const */ SUIT_ShortcutMgr* SUIT_Application::shortcutMgr() const { - return SUIT_ShortcutMgr::getShortcutMgr(); + return SUIT_ShortcutMgr::get(); } #define DEFAULT_MESSAGE_DELAY 3000 @@ -639,13 +639,14 @@ QList SUIT_Application::actionIds() const \param toggle - if it is \c true the action will be a toggle action, otherwise it will be a command action \param reciever - object that contains slot \param member - slot to be called when action is activated + \param actionID - application-unique action ID. Required by SUIT_ShortcutMgr for shortcut customization. May be left blank. */ QAction* SUIT_Application::createAction( const int id, const QString& text, const QIcon& icon, const QString& menu, const QString& tip, const int key, - QObject* parent, const bool toggle, QObject* reciever, - const char* member, const QString& shortcutAction ) + QObject* parent, const bool toggle, QObject* reciever, + const char* member, const QString& actionID ) { - return createAction( id, text, icon, menu, tip, QKeySequence(key), parent, toggle, reciever, member, shortcutAction ); + return createAction( id, text, icon, menu, tip, QKeySequence(key), parent, toggle, reciever, member, actionID ); } /*! @@ -661,13 +662,14 @@ QAction* SUIT_Application::createAction( const int id, const QString& text, cons \param toggle - if it is TRUE the action will be a toggle action, otherwise it will be a command action \param reciever - object that contains slot \param member - slot to be called when action is activated + \param actionID - application-unique action ID. Required by SUIT_ShortcutMgr for shortcut customization. May be left blank. */ QAction* SUIT_Application::createAction( const int id, const QString& text, const QIcon& icon, const QString& menu, const QString& tip, const QKeySequence& key, - QObject* parent, const bool toggle, QObject* reciever, - const char* member, const QString& shortcutAction ) + QObject* parent, const bool toggle, QObject* reciever, + const char* member, const QString& actionID ) { - QtxAction* a = new QtxAction( text, icon, menu, key, parent, toggle, shortcutAction ); + QtxAction* a = new QtxAction( text, icon, menu, key, parent, toggle, actionID ); a->setStatusTip( tip ); if ( reciever && member ) @@ -678,6 +680,35 @@ QAction* SUIT_Application::createAction( const int id, const QString& text, cons return a; } +/*! + Creates action and registers it both in menu manager and tool manager + \return new instance of action + \param id proposed SUIT identificator + \param parent parent object + \param toggle if it is TRUE the action will be a toggle action, otherwise it will be a command action + \param actionID application-unique action ID. Required by SUIT_ShortcutMgr for shortcut customization. May be left blank. + \param toolTip + \param menuText can be later retrieved using QAction::text(); + \param statusTip + \param icon icon for toolbar + \param reciever object that contains slot + \param member slot to be called when action is activated +*/ +QAction* SUIT_Application::createAction( const int id, QObject* parent, const bool toggle, const QString& actionID, + const QString& toolTip, const QString& menuText, const QString& statusTip, const QIcon& icon, + QObject* reciever, const char* member ) +{ + QtxAction* a = new QtxAction( parent, toggle, actionID, toolTip, menuText, icon); + a->setStatusTip( statusTip ); + + if ( reciever && member ) + connect( a, SIGNAL( triggered( bool ) ), reciever, member ); + + registerAction( id, a ); + + return a; +} + /*! Registers action both in menu manager and tool manager \param id - proposed SUIT identificator (if it is -1, auto generated one is used) diff --git a/src/SUIT/SUIT_Application.h b/src/SUIT/SUIT_Application.h index 0a0aa1830..cdc07a971 100644 --- a/src/SUIT/SUIT_Application.h +++ b/src/SUIT/SUIT_Application.h @@ -27,8 +27,8 @@ #include #include +#include -class QIcon; class QLabel; class QString; class QAction; @@ -50,8 +50,8 @@ class SUIT_Study; */ /*! An Application is a class which defines application configuration and behaviour. - For example Application object defines what Viewers are used in this application, what auxilliary windows - are present, how user can dial with them. Also Application object defines an sertain type of data structure by + For example, Application object defines what Viewers are used in this application, what auxilliary windows + are present, how user can dial with them. Also Application object defines an certain type of data structure by holding of pointer on an instance of SUIT_Study class (which represents Document data structure). In other words Application defines type of sata structure, type of used Viewers, type of main GUI widget (Desktop), and other auxilliary tools. @@ -68,7 +68,7 @@ public: //! Returns main widget (Desktop) of the application (if it exists) virtual SUIT_Desktop* desktop(); - /*! Returns \c false if application can not be closed (because of non saved data for example). + /*! Returns \c false if application can not be closed (because of non saved data for example). This method called by SUIT_Session whin closing of application was requested. */ virtual bool isPossibleToClose( bool& ); @@ -93,7 +93,7 @@ public: //! Creates new empty Study if active Study = 0 virtual void createEmptyStudy(); - /*! Returns number of Studies. + /*! Returns number of Studies. * Must be redefined in Applications which support several studies for one Application instance. */ virtual int getNbStudies() const; @@ -101,11 +101,11 @@ public: SUIT_ShortcutMgr* shortcutMgr() const; - //! Puts the message to the status bar + //! Puts the message to the status bar void putInfo ( const QString&, const int = 0 ); //! Invokes application-specific "Open/Save File" dialog and returns the selected file name. - virtual QString getFileName( bool open, const QString& initial, const QString& filters, + virtual QString getFileName( bool open, const QString& initial, const QString& filters, const QString& caption, QWidget* parent ) = 0; //! Invokes application-specific "Select Directory" dialog and returns the selected directory name. @@ -156,7 +156,7 @@ protected: //! Creates a new Study instance. Must be redefined in new application according to its Study type. virtual SUIT_Study* createNewStudy(); virtual void setActiveStudy( SUIT_Study* ); - + /** @name Set menu shown functions*/ //@{ void setMenuShown( QAction*, const bool ); void setMenuShown( const int, const bool );//@} @@ -177,11 +177,14 @@ protected: QAction* createAction( const int, const QString&, const QIcon&, const QString&, const QString&, const int, QObject* = 0, const bool = false, QObject* = 0, const char* = 0, - const QString& = QString() ); + const QString& = QString() ); QAction* createAction( const int, const QString&, const QIcon&, const QString&, const QString&, const QKeySequence&, QObject* = 0, const bool = false, QObject* = 0, const char* = 0, - const QString& = QString() ); + const QString& = QString() ); + QAction* createAction( const int, QObject*, const bool, const QString&, + const QString&, const QString&, const QString&, const QIcon& = QIcon(), + QObject* = nullptr, const char* = nullptr); protected slots: virtual void onDesktopActivated(); diff --git a/src/SUIT/SUIT_PreferenceMgr.cxx b/src/SUIT/SUIT_PreferenceMgr.cxx index 0fd2e20e1..fa0618058 100644 --- a/src/SUIT/SUIT_PreferenceMgr.cxx +++ b/src/SUIT/SUIT_PreferenceMgr.cxx @@ -157,11 +157,8 @@ int SUIT_PreferenceMgr::addItem( const QString& title, const int pId, case DirList: item = new QtxPagePrefPathListItem( Qtx::PT_Directory, title, parent, sect, param ); break; - case Shortcut: - item = new QtxPagePrefShortcutBtnsItem( title, parent, sect, param ); - break; case ShortcutTree: - item = new QtxPagePrefShortcutTreeItem( title, parent, sect, param ); + item = new QtxPagePrefShortcutTreeItem( parent ); break; case BiColor: item = new QtxPagePrefBiColorItem( title, parent, sect, param ); diff --git a/src/SUIT/SUIT_PreferenceMgr.h b/src/SUIT/SUIT_PreferenceMgr.h index b47922521..515c3d18d 100644 --- a/src/SUIT/SUIT_PreferenceMgr.h +++ b/src/SUIT/SUIT_PreferenceMgr.h @@ -38,7 +38,7 @@ public: typedef enum { Auto, Space, Bool, Color, String, Selector, DblSpin, IntSpin, Double, Integer, GroupBox, Tab, Frame, Font, DirList, File, - Slider, Shortcut, ShortcutTree, BiColor, Background, Directory, + Slider, Shortcut, ShortcutTree, BiColor, Background, Directory, UserDefined = 1000 } PrefItemType; public: diff --git a/src/SUIT/SUIT_ShortcutMgr. ReadMe.md b/src/SUIT/SUIT_ShortcutMgr. ReadMe.md new file mode 100644 index 000000000..d0cc5adc8 --- /dev/null +++ b/src/SUIT/SUIT_ShortcutMgr. ReadMe.md @@ -0,0 +1,82 @@ + # ShortcutMgr ReadMe + +Hot keys must be considered as resources, being shared between all components of an application. E.g. it is unacceptable to have 'Close file' and 'Redo' actions being assigned to the same key sequence. When the SHAPER module is active, the application desktop is active too. The desktop has own hot keys, and they must not interfere with ones of SHAPER. Since the task implies granting users a right to assign shortcuts on their will, the application must track all assigned shortcuts of all modules, prevent intolerable user shortcut modifications and govern actual binding of QActions with key sequences. + +`SUIT_ShortcutMgr` handles shortcuts of SALOME desktop and all modules. It is solely responsible and capable to dynamically bind actions with key sequences and (de)serialize shortcut preferences using `SUIT_ResourceMgr`. `SUIT_ShortcutContainer` encapsulates logics of conflict detecting and resolving. `QtxShortcutTree` widget provides GUI to change shortcut preferences conveniently: it allows to remap plenty of shortcuts without applying, displays conflict-resolving dialog, highlights modifications until they are applied (saved into preference files). + +To (de)serialize shortcut preferences without dependence on language environment, shortcuts must be stored as pairs {action ID, key sequence}, where action IDs must be application-unique. + +Since desktop shortcuts may also be changed and interfere with shortcuts of modules, `QtxShortcutTree` should always display desktop shortcuts and shortcuts of all modules altogether, even if some modules are inactive. It means, that `QtxShortcutTree` must be fed not only with shortcut data {action ID, key sequence}[], but also with dictionaries {action ID, action name}[]. `QtxShortcutTree` also requires other action assets - tool tip and icon path. + +Assets of actions may be retrieved from instances of actions, but there is a pitfall: if a module has not been activated yet, its actions have not been initialized either. +Qt Linguist is no help in this case too. To retrieve an action name using `QObject::tr(actionID)`, the `tr(const char*)` method must be called with instance of the class, which is designated as a context for the actionID in *.ts files. And contexts are usually descendants of SUIT_Application and CAM_Module. Again, until a module instance is created, there is no way for `SUIT_ShortcutMgr` to get even a name of a context-class, which an action with an ID belongs to, without any additional data. Straightforward mechanism for loading of action assets in advance has been devised: for all actions, which are bound by default or may be bound by user to hotkeys, assets must be placed into asset files. People who do/refine localizations should keep this in mind and also process JSON files, which are referred in resource files in sections `
`. + +To alleviate process of composing resource and asset files, a development tool `DevTools` has been made. It grabs all shortcuts and assets (except icon path) of intercepted at runtime actions with valid IDs and dumps shortcuts into XML files with identical to project-conventional resource files structure and assets into properly-formatted JSON files. Run modules/features of interest, switch application language, and if IDs or names in the selected language of some actions of the module are not added yet to preference files, these dump files will be appended with new data – shortcuts and assets, if the last ones are provided in *.ts files. +The tool also logs assets of intercepted actions with invalid IDs. The intent is as follows: run modules/features of interest at several languages in exactly the same sequence of actions, paste content of resulting language-dedicated *.csv files to corresponding sheet of [“ShortcutMgr. Resource generator.xlsx”](../../tools/DevTools/ShortcutMgr/ShortcutMgr. Resource generator.xlsx). Then come up with proper IDs for the actions, type the action IDs and their module IDs into corresponding columns and take away ready resource and asset items. + +Shortcuts and assets for all actions of SHAPER and GEOM and those actions of desktop, which were bound (hardcoded) to non-empty key sequences, have been added to resource files. Now they are available for hot key remapping via GUI, no conflicts guaranteed. Any hardcoded shortcut is disabled, unless the same shortcut persists in resource files. + +## Possible conflicts between shortcuts of desktop and modules, except SHAPER and GEOM + +Most of remaining actions can not be made available for shortcut customization without further meticulous inspection of all other modules' code, devising and typing proper action IDs for all such occurrences. + +Since desktop shortcuts are allowed for remapping, user can end up with conflicting shortcuts of desktop actions and those actions of unprocessed modules (all, except SHAPER and GEOM), which are hardcoded to non-empty key sequences. + +Now actions with invalid IDs are disabled by `SUIT_ShortcutMgr` at runtime and not available for binding neither using UI, neither by editing of preference file. There are four approaches how to handle this: + +1. Keep as is: user can remap shortcuts of desktop, SHAPER and GEOM - no conflicts guaranteed, hardcoded (now means all) shortcuts of other modules are disabled. + +2. Go through unprocessed repositories and add valid ID in every occurrence of action creation. Or at least only for those invalid-ID actions, which are currently assigned non-empty key sequences. It should not be just dumb slapping of unique IDs: some actions comprise meta-action (see `SUIT_ShortcutMgr` class documentation) and must get the same ID, e.g. “Undo”, and some actions with similar names do absolutely unrelated things and must be given with different IDs. + +3. Comment the line in `SUIT_ShortcutMgr` code, which disables shortcuts of inavlid-ID actions. At that rate, users will get back all the shortcuts of unprocessed modules they have accustomed to, but since these actions can not be taken into account during conflict detection, +users may face with shortcut interference, if a desktop action is bound to the same key sequence as a hardcoded shortcut from unprocessed module. + +4. Forbid user to edit shortcuts of desktop and shortcuts of unprocessed modules. When another module will be processed, allow to modify its shortcuts. When all modules will be processed, make desktop shortcuts available for customization. + +## Issue with ampersand-shortcuts + +`QPushButton::QPushButton(const QString&)`, being fed with an action name with an ampersand preceding a char, automatically creates a shortcut, bound to *Alt+\* key sequence. + +E.g. `auto button = QPushButton(tr("&Help")` may create language-depdendent shortcuts. Suppose that \*_fr.ts file contains this: +``` + + &Help + A&ide + + +``` + +Then help menu has different shortcuts if the application is run in EN or FR. + +**A part of the issue** is that some ampersand-shortcuts interfere between each other. You can witness this in master-native application. Switch language to FR, run the app, click on the area, where viewers appear, and stroke *Alt+A*. You will get a Qt-generated notification *"Ambiguous shortcut detected"*, because *Alt+A* is bound to *"New ParaView window"* and to *"Affichage"* simultaneously. If you stroke the sequence again, *"Affichage"* menu expands, since the button tray, where the menu-button resides, has gained focus. + +**Another part of the issue** is that ampersand-shortcuts are not always intercepted by `SUIT_ShortcutMgr::eventFilter(_)`. Normally, if the manager catches an unregistered `QAction`, it disables the action' shortcut. But, non-intercepted ampersand-shortcut remains enabled, and, if user binds some action to the same key sequence in the shortcut editor, the editor is not able to detect conflict and prevent interfering binding. Then user faces with the *"Ambiguous shortcut detected"* notification or button-menu is opened instead of executing the action, mapped to the key sequence in shortcut editor. + +**The question is how to handle ampersand-shortcuts?** +1. Resolve conflicts between ampersand-shortcuts for all localizations. Prohibit binding actions to *Alt+\* key sequences in shortcut editor. +2. After every occurrence of `QPushButton` creation type something like this: +``` +// Occurrence +const auto helpButton = new QPushButton(tr("&Help"); +SUIT_ShortcutMgr::get()->registerButtonActions("/#AltHelp", *helpButton); + +---------------------------------------------------- +// SUIT_ShortcutMgr.cpp +void SUIT_ShortcutMgr::registerButtonActions(const QString& theActionID, const QPushButton& theButton) const { + for (QAction* const action : theButton.actions()) { + registerAction(theActionID, action); + } +} +---------------------------------------------------- +// Resource file +
+ +
+``` +Thus, ampersand-shortcuts will appear and be treated in shortcut editor as regular shortcuts. +If the second option is preferable, should different ampersand-shortcuts for every target language be placed in resource files? + +## Minor issues +1. `QtxShortcutTree` widget does not take the whole available height of preference window, it only takes as mush as its items require. +2. Selection of `QtxShortcutTree`' item shadows "modified" highlighter. Can be fixed by replacing base `QTreeWidget` of `QtxShortcutTree` with `QTreeView`, or may be by applying some style sheet. +3. `SUIT_ShortcutMgr` introduces concept of module, but the first module class is `CAM_Module` is introduced along with `CAM_Application`, which is descendant of `SUIT_Application`. diff --git a/src/SUIT/SUIT_ShortcutMgr.cxx b/src/SUIT/SUIT_ShortcutMgr.cxx index 41b6d8b2a..bfae01ec3 100644 --- a/src/SUIT/SUIT_ShortcutMgr.cxx +++ b/src/SUIT/SUIT_ShortcutMgr.cxx @@ -24,164 +24,1916 @@ #include "SUIT_Session.h" #include "SUIT_ResourceMgr.h" +#include "SUIT_MessageBox.h" +#include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include -SUIT_ShortcutMgr* SUIT_ShortcutMgr::myShortcutMgr = NULL; +#include -/*! - \brief Constructor + +#include +#include +const std::wstring SHORTCUT_MGR_LOG_PREFIX = L"SHORTCUT_MGR_DBG: "; +bool ShCutDbg(const QString& theString) +{ + if (ShCutDbg()) { + std::wcout << SHORTCUT_MGR_LOG_PREFIX << theString.toStdWString() << std::endl; + return true; + } + return false; +} +bool ShCutDbg(const char* src) +{ + if (ShCutDbg()) { + std::wcout << SHORTCUT_MGR_LOG_PREFIX << std::wstring(src, src + strlen(src)) << std::endl; + return true; + } + return false; +} + +void Warning(const QString& theString) +{ + std::wcout << theString.toStdWString() << std::endl; +} +void Warning(const char* src) +{ + std::wcout << std::wstring(src, src + strlen(src)) << std::endl; +} + + +static const QKeySequence NO_KEYSEQUENCE = QKeySequence(QString("")); +static const QString NO_ACTION = QString(""); +/** Separates tokens in action ID. */ +static const QString TOKEN_SEPARATOR = QString("/"); +static const QString ROOT_MODULE_ID = QString(""); +static const QString META_ACTION_PREFIX = QString("#"); + +/** Prefix of names of shortcut setting sections in preference files. */ +static const QString SECTION_NAME_PREFIX = QString("shortcuts"); + + +const QString DEFAULT_LANG = QString("en"); +const QStringList LANG_PRIORITY_LIST = QStringList({DEFAULT_LANG, "fr"}); +const QString LANG_SECTION = QString("language"); + +static const QString SECTION_NAME_ACTION_ASSET_FILE_PATHS = QString("action_assets"); + + + +/** + * Uncomment this, to start collecting all shortcuts and action assets (1), + * from instances of QtxActions, if a shortcut or action assets are absent in resource/asset files. + * + * (1) Set required language in the application settings and run features of interest. + * For all actions from these features, their assets will be dumped to appropriate places in dump files. + * + * Content of dump files is appended on every run. Files are located in "/shortcut_mgr_dev/". */ +// #define SHORTCUT_MGR_DEVTOOLS +#ifdef SHORTCUT_MGR_DEVTOOLS +#include +#include +#include +#include +#include "QtxMap.h" +#include +#ifndef QT_NO_DOM +#include +#include +#include +#endif // QT_NO_DOM + +/*! \brief Generates XML files with appearing at runtime shortcuts, + using key sequences of QActions passed to the shortcut manager, + and JSON files with assets of QtxActions passed to the shortcut manager. + Content of these files can be easily copied to resource/asset files. */ +class DevTools +{ +private: + DevTools() : myActionsWithInvalidIDsFile(nullptr) {}; + DevTools(const DevTools&) = delete; + void operator=(const DevTools&) = delete; + +public: + ~DevTools() + { + for (const auto& fileNameAndPtrs : myXMLFilesAndDocs) { + delete fileNameAndPtrs.second.second; + delete fileNameAndPtrs.second.first; + } + + for (const auto& fileNameAndPtrs : myJSONFilesAndDocs) { + delete fileNameAndPtrs.second.second; + delete fileNameAndPtrs.second.first; + } + } + + static DevTools* get() { + if (!DevTools::instance) + DevTools::instance = new DevTools(); + + return DevTools::instance; + } + + void collectShortcut( + const QString& theModuleID, + const QString& theInModuleActionID, + const QKeySequence& theKeySequence + ) { + if (SUIT_ShortcutMgr::isInModuleMetaActionID(theInModuleActionID)) { + auto& moduleShortcuts = myShortcutsOfMetaActions[theModuleID]; + moduleShortcuts[theInModuleActionID] = theKeySequence.toString(); + + const QString fileName = theModuleID + DevTools::SHORTCUTS_OF_META_SUFFIX; + const QString sectionName = SECTION_NAME_PREFIX + DevTools::XML_SECTION_TOKENS_SEPARATOR + ROOT_MODULE_ID; + std::map> sections; + sections[sectionName] = moduleShortcuts; + writeToXMLFile(fileName, sections); + } + else { + auto& moduleShortcuts = myShortcuts[theModuleID]; + moduleShortcuts[theInModuleActionID] = theKeySequence.toString(); + + const QString fileName = theModuleID + DevTools::SHORTCUTS_SUFFIX; + const QString sectionName = SECTION_NAME_PREFIX + DevTools::XML_SECTION_TOKENS_SEPARATOR + theModuleID; + std::map> sections; + sections[sectionName] = moduleShortcuts; + writeToXMLFile(fileName, sections); + } + } + + void collectAssets( + const QString& theModuleID, + const QString& theInModuleActionID, + const QString& theLang, + const QAction* theAction + ) { + if (SUIT_ShortcutMgr::isInModuleMetaActionID(theInModuleActionID)) { + QString actionID = SUIT_ShortcutMgr::makeActionID(ROOT_MODULE_ID, theInModuleActionID); + // { actionID, assets } [] + auto& moduleAssets = myAssetsOfMetaActions[theModuleID]; + + auto& actionAssets = moduleAssets[actionID]; + actionAssets.myLangDependentAssets[theLang].myName = theAction->text(); + actionAssets.myLangDependentAssets[theLang].myToolTip = theAction->statusTip(); + + const QString fileName = theModuleID + DevTools::ASSETS_OF_META_SUFFIX; + writeToJSONFile(fileName, actionID, actionAssets); + } + else { + QString actionID = SUIT_ShortcutMgr::makeActionID(theModuleID, theInModuleActionID); + // { actionID, assets } [] + auto& moduleAssets = myAssets[theModuleID]; + + auto& actionAssets = moduleAssets[actionID]; + actionAssets.myLangDependentAssets[theLang].myName = theAction->text(); + actionAssets.myLangDependentAssets[theLang].myToolTip = theAction->statusTip(); + + const QString fileName = theModuleID + DevTools::ASSETS_SUFFIX; + writeToJSONFile(fileName, actionID, actionAssets); + } + } + + void collectShortcutAndAssets(const QtxAction* const theAction) + { + const auto moduleIDAndActionID = SUIT_ShortcutMgr::splitIntoModuleIDAndInModuleID(theAction->ID()); + if (moduleIDAndActionID.second.isEmpty()) + return; + + if (!SUIT_ShortcutMgr::get()->getShortcutContainer().hasShortcut(moduleIDAndActionID.first, moduleIDAndActionID.second)) + collectShortcut(moduleIDAndActionID.first, moduleIDAndActionID.second, theAction->shortcut()); + + { // Collect action assets, if they are not provided in asset files. + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + if (!resMgr) { + Warning("DevTools for SUIT_ShortcutMgr can't retrieve resource manager!"); + return; + } + + const QString lang = resMgr->stringValue(LANG_SECTION, LANG_SECTION); + if (lang.isEmpty()) + return; + + const auto& assetsInResources = SUIT_ShortcutMgr::getActionAssetsFromResources(theAction->ID()); + if (assetsInResources.first && assetsInResources.second.myLangDependentAssets.find(lang) != assetsInResources.second.myLangDependentAssets.end()) + return; + + collectAssets(moduleIDAndActionID.first, moduleIDAndActionID.second, lang, theAction); + } + } + +private: + /*! Appends new entries to content of dump files. */ + bool writeToXMLFile(const QString& theFileName, const std::map>& theSections) + { +#ifdef QT_NO_DOM + Warning("DebugTools for SUIT_ShortcutMgr can't create XML - #QT_NO_DOM is defined."); + return false; +#else QT_NO_DOM + static const QString DOC_TAG = "document"; + static const QString SECTION_TAG = "section"; + static const QString PARAMETER_TAG = "parameter"; + static const QString NAME_ATTR = "name"; + static const QString VAL_ATTR = "value"; + + const auto itFileAndDoc = myXMLFilesAndDocs.find(theFileName); + if (itFileAndDoc == myXMLFilesAndDocs.end()) { + const QString fullPath = DevTools::SAVE_PATH + theFileName + ".xml"; + if (!Qtx::mkDir(QFileInfo(fullPath).absolutePath())) { + myXMLFilesAndDocs[theFileName] = std::pair(nullptr, nullptr); + return false; + } + + QFile* file = new QFile(fullPath); + if (!file->open(QFile::ReadWrite | QIODevice::Text)) { + delete file; + myXMLFilesAndDocs[theFileName] = std::pair(nullptr, nullptr); + return false; + } + + QDomDocument* dom = new QDomDocument(DOC_TAG); + QTextStream instream(file); + dom->setContent(instream.readAll()); + myXMLFilesAndDocs[theFileName] = std::pair(file, dom); + } + else if (itFileAndDoc->second.first == nullptr) { + return false; + } + + const auto fileAndDom = myXMLFilesAndDocs[theFileName]; + QFile* const file = fileAndDom.first; + QDomDocument* const dom = fileAndDom.second; + + QDomElement doc = dom->documentElement(); + if (doc.isNull()) { + *dom = QDomDocument(DOC_TAG); + doc = dom->createElement(DOC_TAG); + dom->appendChild(doc); + } + + static const std::function&, QDomDocument&, QDomElement&)> mergeParamsToSection = + [&](const std::map& parameters, QDomDocument& dom, QDomElement& sectionInDom) + { + for (const std::pair& nameAndVal : parameters) { + const QString& paramName = nameAndVal.first; + const QString& paramVal = nameAndVal.second; + bool fileHasParam = false; + for (QDomElement paramInDom = sectionInDom.firstChildElement(PARAMETER_TAG); !paramInDom.isNull(); paramInDom = paramInDom.nextSiblingElement(PARAMETER_TAG)) { + const QString paramNameInDom = paramInDom.attribute(NAME_ATTR); + if (paramName == paramNameInDom) { + const QString paramValInDom = paramInDom.attribute(VAL_ATTR); + if (paramValInDom != paramVal) { + QDomElement replaceElement = dom.createElement(PARAMETER_TAG); + replaceElement.setAttribute(NAME_ATTR, paramName); + replaceElement.setAttribute(VAL_ATTR, paramVal); + sectionInDom.replaceChild(replaceElement, paramInDom); + } + + fileHasParam = true; + break; + } + } + if (!fileHasParam) { + QDomElement newParam = dom.createElement(PARAMETER_TAG); + newParam.setAttribute(NAME_ATTR, paramName); + newParam.setAttribute(VAL_ATTR, paramVal); + sectionInDom.insertAfter(newParam, sectionInDom.lastChildElement(PARAMETER_TAG)); + } + } + return; + }; + + for (const auto& sectionNameAndParams : theSections) { + const QString& sectionName = sectionNameAndParams.first; + const std::map& parameters = sectionNameAndParams.second; + + bool fileHasSection = false; + for (QDomElement sectionInDom = doc.firstChildElement(SECTION_TAG); !sectionInDom.isNull(); sectionInDom = sectionInDom.nextSiblingElement(SECTION_TAG)) { + QString sectionNameInDom = sectionInDom.attribute(NAME_ATTR); + if (sectionNameInDom == sectionName) { + mergeParamsToSection(parameters, *dom, sectionInDom); + fileHasSection = true; + break; + } + } + + if (!fileHasSection) { + QDomElement newSection = dom->createElement(SECTION_TAG); + newSection.setAttribute(NAME_ATTR, sectionName); + doc.insertAfter(newSection, doc.lastChildElement(SECTION_TAG)); + mergeParamsToSection(parameters, *dom, newSection); + } + } + + file->resize(0); + QTextStream outstream(file); + outstream << dom->toString(); + + return true; +#endif // QT_NO_DOM + } + + /*! Appends new entries to content of dump files. */ + bool writeToJSONFile(const QString& theFileName, const QString& theActionID, const SUIT_ActionAssets& theAssets) + { + const auto itFileAndDoc = myJSONFilesAndDocs.find(theFileName); + if (itFileAndDoc == myJSONFilesAndDocs.end()) { + const QString fullPath = DevTools::SAVE_PATH + theFileName + ".json"; + if (!Qtx::mkDir(QFileInfo(fullPath).absolutePath())) { + myJSONFilesAndDocs[theFileName] = std::pair(nullptr, nullptr); + return false; + } + + const bool fileExisted = QFileInfo::exists(fullPath); + QFile* file = new QFile(fullPath); + if (!file->open(QFile::ReadWrite | QIODevice::Text)) { + delete file; + myJSONFilesAndDocs[theFileName] = std::pair(nullptr, nullptr); + return false; + } + + QJsonParseError jsonError; + QJsonDocument* document = new QJsonDocument(QJsonDocument::fromJson(file->readAll(), &jsonError)); + if (jsonError.error != QJsonParseError::NoError && fileExisted) { + Warning("SUIT_ShortcutMgr: error during parsing of action asset dump file \"" + fullPath + "\"!"); + delete file; + delete document; + myJSONFilesAndDocs[theFileName] = std::pair(nullptr, nullptr); + return false; + } + + if (!document->isObject()) { + document->setObject(QJsonObject()); + file->resize(0); + QTextStream outstream(file); + outstream << document->toJson(QJsonDocument::Indented); + } + + myJSONFilesAndDocs[theFileName] = std::pair(file, document); + } + else if (itFileAndDoc->second.first == nullptr) { + return false; + } + + const auto fileAndDoc = myJSONFilesAndDocs[theFileName]; + QFile* const file = fileAndDoc.first; + QJsonDocument* const document = fileAndDoc.second; + + QJsonObject rootJSON = document->object(); + QJsonObject actionAssetsJSON = rootJSON[theActionID].toObject(); + SUIT_ActionAssets actionAssets; + actionAssets.fromJSON(actionAssetsJSON); + actionAssets.merge(theAssets, true /*theOverride*/); + actionAssets.toJSON(actionAssetsJSON); + rootJSON[theActionID] = actionAssetsJSON; + document->setObject(rootJSON); + + file->resize(0); + QTextStream outstream(file); + outstream << document->toJson(QJsonDocument::Indented); + + return true; + } + +public: + void collectAssetsOfActionWithInvalidID(const QAction* const theAction) + { + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + if (!resMgr) { + Warning("DevTools for SUIT_ShortcutMgr can't retrieve resource manager!"); + return; + } + + const QString lang = resMgr->stringValue(LANG_SECTION, LANG_SECTION); + if (lang.isEmpty()) + return; + + if (!myActionsWithInvalidIDsFile) { + const QString fullPath = DevTools::SAVE_PATH + lang + DevTools::INVALID_ID_ACTIONS_SUFFIX + ".csv"; + if (!Qtx::mkDir(QFileInfo(fullPath).absolutePath())) + return; + + myActionsWithInvalidIDsFile = new QFile(fullPath); + if (!myActionsWithInvalidIDsFile->open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Text)) { + delete myActionsWithInvalidIDsFile; + myActionsWithInvalidIDsFile = nullptr; + return; + } + + QTextStream ostream(myActionsWithInvalidIDsFile); + ostream << "text\t" << "tool tip\t" << "status tip\t" << "key sequence\t" << "QtxAction?\t" << "ID\n"; + ostream.flush(); + } + + QTextStream ostream(myActionsWithInvalidIDsFile); + const auto aQtxAction = qobject_cast(theAction); + ostream << theAction->text() << "\t" << theAction->toolTip() << "\t" << theAction->statusTip() << "\t" + << theAction->shortcut().toString() << "\t" << (aQtxAction ? "yes\t" : "no\t") << (aQtxAction ? aQtxAction->ID() + "\n" : "\n"); + ostream.flush(); + } + + static const QString SAVE_PATH; + static const QString SHORTCUTS_SUFFIX; + static const QString SHORTCUTS_OF_META_SUFFIX; + static const QString ASSETS_SUFFIX; + static const QString ASSETS_OF_META_SUFFIX; + static const QString INVALID_ID_ACTIONS_SUFFIX; + + static DevTools* instance; + static const QString XML_SECTION_TOKENS_SEPARATOR; + + /** { moduleID, { inModuleActionID, keySequence }[] }[]. keySequence can be empty. */ + std::map> myShortcuts; + + /** { moduleID, { inModuleActionID, keySequence }[] }[]. keySequence can be empty. */ + std::map> myShortcutsOfMetaActions; + + /** { moduleID, { actionID, assets }[] }[] */ + std::map> myAssets; + + /** { moduleID, { actionID, assets }[] }[] */ + std::map> myAssetsOfMetaActions; + +#ifndef QT_NO_DOM + // { filename, {file, domDoc} }[] + std::map> myXMLFilesAndDocs; +#endif // QT_NO_DOM + // { filename, {file, jsonDoc} }[] + std::map> myJSONFilesAndDocs; + + QFile* myActionsWithInvalidIDsFile; +}; +/*static*/ DevTools* DevTools::instance = nullptr; +/*static*/ const QString DevTools::SAVE_PATH = "shortcut_mgr_dev/"; +/*static*/ const QString DevTools::INVALID_ID_ACTIONS_SUFFIX = "_actions_with_invalid_IDs"; +/*static*/ const QString DevTools::XML_SECTION_TOKENS_SEPARATOR = ":"; +/*static*/ const QString DevTools::SHORTCUTS_SUFFIX = "_shortcuts"; +/*static*/ const QString DevTools::SHORTCUTS_OF_META_SUFFIX = "_shortcuts_of_meta_actions"; +/*static*/ const QString DevTools::ASSETS_SUFFIX = "_assets"; +/*static*/ const QString DevTools::ASSETS_OF_META_SUFFIX = "_assets_of_meta_actions"; +#endif // SHORTCUT_MGR_DEVTOOLS + + + +SUIT_ShortcutContainer::SUIT_ShortcutContainer() +{ + myShortcuts.emplace(ROOT_MODULE_ID, std::map()); + myShortcutsInversed.emplace(ROOT_MODULE_ID, std::map()); +} + +std::set SUIT_ShortcutContainer::getIDsOfInterferingModules(const QString& theModuleID) const +{ + std::set IDsOfInterferingModules; + if (theModuleID == ROOT_MODULE_ID) { + for (const auto& moduleIDAndShortcuts : myShortcuts) { + IDsOfInterferingModules.emplace(moduleIDAndShortcuts.first); + } + } + else { + IDsOfInterferingModules.emplace(ROOT_MODULE_ID); + if (theModuleID != ROOT_MODULE_ID) + IDsOfInterferingModules.emplace(theModuleID); + } + return IDsOfInterferingModules; +} + +std::set SUIT_ShortcutContainer::getIDsOfAllModules() const +{ + std::set res; + for (const auto& moduleIDAndShortcuts : myShortcutsInversed) { + res.emplace(moduleIDAndShortcuts.first); + } + return res; +} + +std::set> SUIT_ShortcutContainer::setShortcut(QString theModuleID, const QString& theInModuleActionID, const QKeySequence& theKeySequence, bool theOverride) +{ + if (!SUIT_ShortcutMgr::isModuleIDValid(theModuleID)) { + ShCutDbg() && ShCutDbg("Attempt to define a shortcut using invalid module ID = \"" + theModuleID + "\"."); + return std::set>(); + } + + if (!SUIT_ShortcutMgr::isInModuleActionIDValid(theInModuleActionID)) { + ShCutDbg() && ShCutDbg("Attempt to define a shortcut using invalid in-module action ID = \"" + theInModuleActionID + "\"."); + return std::set>(); + } + + if (SUIT_ShortcutMgr::isInModuleMetaActionID(theInModuleActionID)) + theModuleID = ROOT_MODULE_ID; + + auto itModuleShortcuts = myShortcuts.find(theModuleID); + auto itModuleShortcutsInversed = myShortcutsInversed.find(theModuleID); + if (itModuleShortcuts == myShortcuts.end()) { + itModuleShortcuts = myShortcuts.emplace(theModuleID, std::map()).first; + itModuleShortcutsInversed = myShortcutsInversed.emplace(theModuleID, std::map()).first; + } + + std::map& moduleShortcuts = itModuleShortcuts->second; + std::map& moduleShortcutsInversed = itModuleShortcutsInversed->second; + + if (theKeySequence.isEmpty()) { + // Disable shortcut. + + auto itShortcutInversed = moduleShortcutsInversed.find(theInModuleActionID); + if (itShortcutInversed == moduleShortcutsInversed.end()) { + // No key sequence was mapped to the action earlier. + // Set disabled shortcut. + moduleShortcutsInversed.emplace(theInModuleActionID, NO_KEYSEQUENCE); + return std::set>(); + } + else /* if keySequence was mapped to the action earlier. */ { + QKeySequence& keySequence = itShortcutInversed->second; + + moduleShortcuts.erase(keySequence); + keySequence = NO_KEYSEQUENCE; + + return std::set>(); + } + } + + { // Check if the shortcut is already set. + const auto itShortcut = moduleShortcuts.find(theKeySequence); + if (itShortcut != moduleShortcuts.end()) { + if (itShortcut->second == theInModuleActionID) { + // The shortcut was set earlier. Nothing to change. + return std::set>(); + } + } + } + + auto conflictingActionIDs = std::set>(); + { // Look for conflicting shortcuts with the same key sequence from interfering modules. + std::set IDsOfInterferingModules = getIDsOfInterferingModules(theModuleID); + for (const QString& IDOfInterferingModule : IDsOfInterferingModules) { + std::map& shortcutsOfInterferingModule = myShortcuts.at(IDOfInterferingModule); + auto itConflictingShortcut = shortcutsOfInterferingModule.find(theKeySequence); + if (itConflictingShortcut != shortcutsOfInterferingModule.end()) { + const QString& conflictingActionID = itConflictingShortcut->second; + + conflictingActionIDs.insert(std::pair(IDOfInterferingModule, conflictingActionID)); + + if (theOverride) { + // Disable conflicting shortcuts. + std::map& shortcutsOfInterferingModuleInversed = myShortcutsInversed.at(IDOfInterferingModule); + shortcutsOfInterferingModuleInversed[conflictingActionID] = NO_KEYSEQUENCE; + shortcutsOfInterferingModule.erase(itConflictingShortcut); + } + } + } + + if (!theOverride && !conflictingActionIDs.empty()) + return conflictingActionIDs; + } + + { // Ensure, that the module has only shortcut for the action ID. + auto itShortcutInversed = moduleShortcutsInversed.find(theInModuleActionID); + if (itShortcutInversed != moduleShortcutsInversed.end()) { + // Redefine key sequence for existing action. + + QKeySequence& keySequence = itShortcutInversed->second; + + moduleShortcuts.erase(keySequence); + moduleShortcuts[theKeySequence] = theInModuleActionID; + + keySequence = theKeySequence; + } + else /* if the action has not been added earlier. */ { + moduleShortcuts[theKeySequence] = theInModuleActionID; + moduleShortcutsInversed[theInModuleActionID] = theKeySequence; + } + } + + return conflictingActionIDs; +} + +std::set> SUIT_ShortcutContainer::getConflicts( + QString theModuleID, + const QString& theInModuleActionID, + const QKeySequence& theKeySequence +) const +{ + if (theKeySequence.isEmpty()) + return std::set>(); + + if (SUIT_ShortcutMgr::isInModuleMetaActionID(theInModuleActionID)) + theModuleID = ROOT_MODULE_ID; + + { // Check if the shortcut is set. + const auto itModuleShortcuts = myShortcuts.find(theModuleID); + if (itModuleShortcuts != myShortcuts.end()) { + const std::map& moduleShortcuts = itModuleShortcuts->second; + const auto itShortcut = moduleShortcuts.find(theKeySequence); + if (itShortcut != moduleShortcuts.end()) { + if (itShortcut->second == theInModuleActionID) { + // The shortcut is set => no conflicts. + return std::set>(); + } + } + } + } + + auto conflictingActionIDs = std::set>(); + { // Look for conflicting shortcuts with the same key sequence from interfering modules. + std::set IDsOfInterferingModules = getIDsOfInterferingModules(theModuleID); + for (const QString& IDOfInterferingModule : IDsOfInterferingModules) { + const std::map& shortcutsOfInterferingModule = myShortcuts.at(IDOfInterferingModule); + const auto itConflictingShortcut = shortcutsOfInterferingModule.find(theKeySequence); + if (itConflictingShortcut != shortcutsOfInterferingModule.end()) { + const QString& conflictingActionID = itConflictingShortcut->second; + conflictingActionIDs.insert(std::pair(IDOfInterferingModule, conflictingActionID)); + } + } + } + return conflictingActionIDs; +} + +const QKeySequence& SUIT_ShortcutContainer::getKeySequence(QString theModuleID, const QString& theInModuleActionID) const +{ + if (SUIT_ShortcutMgr::isInModuleMetaActionID(theInModuleActionID)) + theModuleID = ROOT_MODULE_ID; + + const auto itModuleShortcutsInversed = myShortcutsInversed.find(theModuleID); + if (itModuleShortcutsInversed == myShortcutsInversed.end()) + return NO_KEYSEQUENCE; + + const auto& moduleShortcutsInversed = itModuleShortcutsInversed->second; + const auto itShortcutInversed = moduleShortcutsInversed.find(theInModuleActionID); + if (itShortcutInversed == moduleShortcutsInversed.end()) + return NO_KEYSEQUENCE; + + return itShortcutInversed->second; +} + +bool SUIT_ShortcutContainer::hasShortcut(QString theModuleID, const QString& theInModuleActionID) const +{ + if (SUIT_ShortcutMgr::isInModuleMetaActionID(theInModuleActionID)) + theModuleID = ROOT_MODULE_ID; + + const auto itModuleShortcutsInversed = myShortcutsInversed.find(theModuleID); + if (itModuleShortcutsInversed == myShortcutsInversed.end()) + return false; + + const auto& moduleShortcutsInversed = itModuleShortcutsInversed->second; + const auto itShortcutInversed = moduleShortcutsInversed.find(theInModuleActionID); + if (itShortcutInversed == moduleShortcutsInversed.end()) + return false; + + return true; +} + +const std::map& SUIT_ShortcutContainer::getModuleShortcutsInversed(const QString& theModuleID) const +{ + static const std::map EMPTY_RES; + const auto it = myShortcutsInversed.find(theModuleID); + if (it == myShortcutsInversed.end()) + return EMPTY_RES; + + return it->second; +} + +const std::map SUIT_ShortcutContainer::getModuleShortcutsInversed(const QString& theModuleID, const QString& theActionIDPrefix) const +{ + const auto it = myShortcutsInversed.find(theModuleID); + if (it == myShortcutsInversed.end()) + return std::map(); + + std::map shortcutsInversed; + for (const auto& existingShortcut : it->second) { + if (existingShortcut.first.startsWith(theActionIDPrefix)) + shortcutsInversed[existingShortcut.first] = existingShortcut.second; + } + return shortcutsInversed; +} + +QString SUIT_ShortcutContainer::toString() const +{ + QString text; + text += "Shortcuts inversed:\n"; + for (auto it = myShortcutsInversed.begin(); it != myShortcutsInversed.end(); it++) { + const QString& moduleID = it->first; + const auto& moduleShortcuts = it->second; + text += (it == myShortcutsInversed.begin() ? "\"" : "\n\"") + moduleID + "\""; + for (const auto& shortcut : moduleShortcuts) { + text += "\n\t\"" + shortcut.first + "\"\t\"" + shortcut.second.toString() + "\""; + } + } + text += "\nShortcuts:\n"; + for (auto it = myShortcuts.begin(); it != myShortcuts.end(); it++) { + const QString& moduleID = it->first; + const auto& moduleShortcuts = it->second; + text += (it == myShortcuts.begin() ? "\"" : "\n\"") + moduleID + "\""; + for (const auto& shortcut : moduleShortcuts) { + text += "\n\t\"" + shortcut.first.toString() + "\"\t\"" + shortcut.second + "\""; + } + } + return text; +} + +/*static*/ const QString SUIT_ActionAssets::LangDependentAssets::PROP_ID_NAME = "name"; +/*static*/ const QString SUIT_ActionAssets::LangDependentAssets::PROP_ID_TOOLTIP = "tooltip"; + +bool SUIT_ActionAssets::LangDependentAssets::fromJSON(const QJsonObject& theJsonObject) +{ + myName = theJsonObject[SUIT_ActionAssets::LangDependentAssets::PROP_ID_NAME].toString(); + myToolTip = theJsonObject[SUIT_ActionAssets::LangDependentAssets::PROP_ID_TOOLTIP].toString(); + + if (myName.isEmpty()) + myName = myToolTip; + + return !myName.isEmpty(); +} + +void SUIT_ActionAssets::LangDependentAssets::toJSON(QJsonObject& oJsonObject) const +{ + oJsonObject[SUIT_ActionAssets::LangDependentAssets::PROP_ID_NAME] = myName; + oJsonObject[SUIT_ActionAssets::LangDependentAssets::PROP_ID_TOOLTIP] = myToolTip; +} + +/*static*/ const QString SUIT_ActionAssets::STRUCT_ID = "SUIT_ActionAssets"; +/*static*/ const QString SUIT_ActionAssets::PROP_ID_LANG_DEPENDENT_ASSETS = "langDependentAssets"; +/*static*/ const QString SUIT_ActionAssets::PROP_ID_ICON_PATH = "iconPath"; + +bool SUIT_ActionAssets::fromJSON(const QJsonObject& theJsonObject) +{ + myLangDependentAssets.clear(); + + auto lda = SUIT_ActionAssets::LangDependentAssets(); + const auto& langToLdaJson = theJsonObject[SUIT_ActionAssets::PROP_ID_LANG_DEPENDENT_ASSETS].toObject(); + for (const QString& lang : langToLdaJson.keys()) { + if (!lda.fromJSON(langToLdaJson[lang].toObject())) + continue; + + myLangDependentAssets[lang] = lda; + } + + myIconPath = theJsonObject[SUIT_ActionAssets::PROP_ID_ICON_PATH].toString(); + + return !myLangDependentAssets.empty(); +} + +void SUIT_ActionAssets::toJSON(QJsonObject& oJsonObject) const +{ + auto langDependentAssetsJSON = QJsonObject(); + + auto langDependentAssetsItemJSON = QJsonObject(); + for (const auto& langAndLDA : myLangDependentAssets) { + langAndLDA.second.toJSON(langDependentAssetsItemJSON); + langDependentAssetsJSON[langAndLDA.first] = langDependentAssetsItemJSON; + } + oJsonObject[SUIT_ActionAssets::PROP_ID_LANG_DEPENDENT_ASSETS] = langDependentAssetsJSON; + + oJsonObject[SUIT_ActionAssets::PROP_ID_ICON_PATH] = myIconPath; +} + +QString SUIT_ActionAssets::toString() const +{ + QJsonObject jsonObject; + toJSON(jsonObject); + return QString::fromStdString(QJsonDocument(jsonObject).toJson(QJsonDocument::Indented).toStdString()); +} + +QStringList SUIT_ActionAssets::getLangs() const +{ + QStringList langs; + + for (const auto& langAndAssets : myLangDependentAssets) { + langs.push_back(langAndAssets.first); + } + + return langs; +} + +void SUIT_ActionAssets::clearAllLangsExcept(const QString& theLang) +{ + for (auto it = myLangDependentAssets.begin(); it != myLangDependentAssets.end();) { + if (it->first == theLang) + it++; + else + it = myLangDependentAssets.erase(it); + } +} + +void SUIT_ActionAssets::merge(const SUIT_ActionAssets& theOther, bool theOverride) +{ + for (const auto& otherLangAndLDA : theOther.myLangDependentAssets) { + const QString& lang = otherLangAndLDA.first; + const auto& otherLDA = otherLangAndLDA.second; + auto& thisLDA = myLangDependentAssets[lang]; + + if (thisLDA.myName.isEmpty() || theOverride && !otherLDA.myName.isEmpty()) + thisLDA.myName = otherLDA.myName; + + if (thisLDA.myToolTip.isEmpty() || theOverride && !otherLDA.myToolTip.isEmpty()) + thisLDA.myToolTip = otherLDA.myToolTip; + } + + if (theOverride) + myIconPath = theOther.myIconPath; +} + +std::map> SUIT_ShortcutContainer::merge( + const SUIT_ShortcutContainer& theOther, + bool theOverride, + bool theTreatAbsentIncomingAsDisabled +) { + std::map> changesOfThis; + + for (const auto& shortcutsInversedOfOtherPair : theOther.myShortcutsInversed) { + const QString& moduleIDOther = shortcutsInversedOfOtherPair.first; + const auto& shortcutsInversedOther = shortcutsInversedOfOtherPair.second; + for (const auto& shortcutInversedOther : shortcutsInversedOther) { + const QString& inModuleActionIDOther = shortcutInversedOther.first; + const QKeySequence& keySequenceOther = shortcutInversedOther.second; + if (theOverride) { + if (hasShortcut(moduleIDOther, inModuleActionIDOther) && getKeySequence(moduleIDOther, inModuleActionIDOther) == keySequenceOther) { + continue; + } + else /* if this has no shortcut for the action or if this has a shortcut for the action, but the key sequence differs. */ { + const auto disabledActionsOfThis = setShortcut(moduleIDOther, inModuleActionIDOther, keySequenceOther, true); + changesOfThis[moduleIDOther][inModuleActionIDOther] = keySequenceOther; + for (const auto& disabledActionOfThis : disabledActionsOfThis) { + changesOfThis[disabledActionOfThis.first][disabledActionOfThis.second] = NO_KEYSEQUENCE; + } + } + } + else /* if (!theOverride) */ { + if (hasShortcut(moduleIDOther, inModuleActionIDOther)) + continue; + else { + const auto conflictingActionsOfThis = setShortcut(moduleIDOther, inModuleActionIDOther, keySequenceOther, false); + if (conflictingActionsOfThis.empty()) { + changesOfThis[moduleIDOther][inModuleActionIDOther] = keySequenceOther; + } + else /* if this has no shortcut for the action, but the incoming key sequence conflicts with others shortcuts. */ { + changesOfThis[moduleIDOther][inModuleActionIDOther] = NO_KEYSEQUENCE; + } + } + } + } + } + + if (theOverride && theTreatAbsentIncomingAsDisabled) { + // Disable existing shortcuts, if they are absent in theOther. + for (auto& shortcutsInversedPair : myShortcutsInversed) { + const QString& moduleID = shortcutsInversedPair.first; + auto& moduleShortcutsInversed = shortcutsInversedPair.second; + for (auto& inversedShortcut : moduleShortcutsInversed) { + if (theOther.hasShortcut(moduleID, inversedShortcut.first)) + continue; + + if (inversedShortcut.second.isEmpty()) + continue; // Existing shortcut is already disabled. + + auto itShortcutsPair = myShortcuts.find(moduleID); + if (itShortcutsPair == myShortcuts.end()) + continue; // The check is an overhead in an error-free designed class, but let be just in case. + + auto& moduleShortcuts = itShortcutsPair->second; + moduleShortcuts.erase(inversedShortcut.second); + inversedShortcut.second = NO_KEYSEQUENCE; + changesOfThis[moduleID][inversedShortcut.first] = NO_KEYSEQUENCE; + } + } + } + + return changesOfThis; +} + + +SUIT_ShortcutMgr* SUIT_ShortcutMgr::myShortcutMgr = nullptr; + SUIT_ShortcutMgr::SUIT_ShortcutMgr() : QObject() { - qApp->installEventFilter( this ); + qApp->installEventFilter( this ); +} + +SUIT_ShortcutMgr::~SUIT_ShortcutMgr() +{ + qApp->removeEventFilter( this ); +} + +/*static*/ void SUIT_ShortcutMgr::Init() +{ + if( myShortcutMgr == nullptr) { + myShortcutMgr = new SUIT_ShortcutMgr(); + myShortcutMgr->setShortcutsFromPreferences(); + } +} + +/*static*/ SUIT_ShortcutMgr* SUIT_ShortcutMgr::get() +{ + Init(); + return myShortcutMgr; +} + +/*static*/ bool SUIT_ShortcutMgr::isKeySequenceValid(const QKeySequence& theKeySequence) +{ + // TODO Perform check whether a key sequence is platform-compatible. + return true; +} + +/*static*/ std::pair SUIT_ShortcutMgr::toKeySequenceIfValid(const QString& theKeySequenceString) +{ + auto res = std::pair(false, QKeySequence()); + + try { + res.second = QKeySequence::fromString(theKeySequenceString); + if (res.second.toString() != theKeySequenceString) + return std::pair(false, QKeySequence()); + + if (!SUIT_ShortcutMgr::isKeySequenceValid(res.second)) + return std::pair(false, QKeySequence()); + } + catch (...) { + return std::pair(false, QKeySequence()); + } + + res.first = true; + return res; +} + +/*static*/ bool SUIT_ShortcutMgr::isModuleIDValid(const QString& theModuleID) +{ + if (theModuleID.contains(TOKEN_SEPARATOR)) + return false; + + if (theModuleID.simplified() != theModuleID) + return false; + + return true; +} + +/*static*/ bool SUIT_ShortcutMgr::isInModuleActionIDValid(const QString& theInModuleActionID) +{ + QStringList tokens = theInModuleActionID.split(TOKEN_SEPARATOR); + for (QStringList::size_type i = 0; i < tokens.length(); i++) { + const QString simplifiedToken = tokens[i].simplified(); + if ( + simplifiedToken.isEmpty() || + simplifiedToken != tokens[i] || + i == 0 && simplifiedToken == META_ACTION_PREFIX || + i != 0 && simplifiedToken.startsWith(META_ACTION_PREFIX) + ) + return false; + } + return true; +} + +/*static*/ bool SUIT_ShortcutMgr::isInModuleMetaActionID(const QString& theInModuleActionID) +{ + return theInModuleActionID.startsWith(META_ACTION_PREFIX); +} + +/*static*/ std::pair SUIT_ShortcutMgr::splitIntoModuleIDAndInModuleID(const QString& theActionID) +{ + QStringList tokens = theActionID.split(TOKEN_SEPARATOR); + if (tokens.length() < 2) + return std::pair(); + + auto res = std::pair(); + + if (tokens[0].simplified() != tokens[0]) + return std::pair(); + + res.first = tokens[0]; + tokens.pop_front(); + + for (QStringList::size_type i = 0; i < tokens.length(); i++) { + const QString simplifiedToken = tokens[i].simplified(); + if ( + simplifiedToken.isEmpty() || + simplifiedToken != tokens[i] || + i == 0 && simplifiedToken == META_ACTION_PREFIX || + i != 0 && simplifiedToken.startsWith(META_ACTION_PREFIX) + ) + return std::pair(); + } + res.second = tokens.join(TOKEN_SEPARATOR); + + return res; +} + +/*static*/ bool SUIT_ShortcutMgr::isActionIDValid(const QString& theActionID) +{ + return !SUIT_ShortcutMgr::splitIntoModuleIDAndInModuleID(theActionID).second.isEmpty(); +} + +/*static*/ QString SUIT_ShortcutMgr::makeActionID(const QString& theModuleID, const QString& theInModuleActionID) +{ + if (!SUIT_ShortcutMgr::isModuleIDValid(theModuleID)) + return QString(); + + if (!isInModuleActionIDValid(theInModuleActionID)) + return QString(); + + return theModuleID + TOKEN_SEPARATOR + theInModuleActionID; } -/*! - \brief Destructor -*/ -SUIT_ShortcutMgr::~SUIT_ShortcutMgr() +/*static*/ void SUIT_ShortcutMgr::fillContainerFromPreferences(SUIT_ShortcutContainer& theContainer, bool theDefaultOnly) { - qApp->removeEventFilter( this ); + ShCutDbg() && ShCutDbg("Retrieving preferences from resources."); + + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + if (!resMgr) { + Warning("SUIT_ShortcutMgr can't retrieve resource manager!"); + return; + } + + const auto resMgrWorkingModeBefore = resMgr->workingMode(); + if (theDefaultOnly) + resMgr->setWorkingMode(QtxResourceMgr::IgnoreUserValues); + + /** List of modules with invalid IDs. */ + QStringList invalidModuleIDs; + + /** { moduleID, {inModuleActionID, keySequence}[] }[] */ + std::map>> invalidShortcuts; + + /** + * Shortcuts, which have not been set, because they are in conflict with previously parsed shortcuts. + * { moduleID, {inModuleActionID, keySequence}[] }[] */ + std::map>> conflicts; + + // Resource manager strips leading and trailing whitespaces from subsections' names. + // And then it is not able to retrieve parametes from that subsections, + // because parsed subsection names differ from the ones in resource file. + // Anyway, it does not affect operability of ShortcutMgr. + QStringList moduleIDs = resMgr->subSections(SECTION_NAME_PREFIX, true); + if (ShCutDbg()) { + if (moduleIDs.isEmpty()) + ShCutDbg("No discovered shortcut modules."); + else + ShCutDbg("Discovered shortcut modules: \"" + moduleIDs.join("\", \"") + "."); + } + moduleIDs.push_front(ROOT_MODULE_ID); // Resource manager filters out empty section suffices. + moduleIDs.removeDuplicates(); + + for (size_t i = 0; i < moduleIDs.size(); i++) { + const auto& moduleID = moduleIDs[i]; + if (!SUIT_ShortcutMgr::isModuleIDValid(moduleID)) { + invalidModuleIDs.push_back(moduleID); + continue; + } + + const QString sectionName = SECTION_NAME_PREFIX + resMgr->sectionsToken() + moduleID; + QStringList moduleActionIDs = resMgr->parameters(sectionName); + + for(const QString& inModuleActionID : moduleActionIDs) { + QString keySequenceString = QString(""); + resMgr->value(sectionName, inModuleActionID, keySequenceString); + const auto keySequence = SUIT_ShortcutMgr::toKeySequenceIfValid(keySequenceString); + + ShCutDbg() && ShCutDbg("Shortcut discovered: \"" + moduleID + "\"\t\"" + inModuleActionID + "\"\t\"" + keySequenceString + "\"."); + + if ( + !SUIT_ShortcutMgr::isInModuleActionIDValid(inModuleActionID) || + !keySequence.first || + SUIT_ShortcutMgr::isInModuleMetaActionID(inModuleActionID) && moduleID != ROOT_MODULE_ID + ) { + std::list>& moduleInvalidShortcuts = invalidShortcuts[moduleID]; + moduleInvalidShortcuts.push_back(std::pair(inModuleActionID, keySequenceString)); + continue; + } + + const auto shortcutConflicts = theContainer.setShortcut(moduleID, inModuleActionID, keySequence.second, false /*override*/); + if (!shortcutConflicts.empty()) { + auto& moduleConflicts = conflicts[moduleID]; + moduleConflicts.push_back(std::pair(inModuleActionID, keySequence.second)); + } + } + } + + if (!invalidModuleIDs.isEmpty() || !invalidShortcuts.empty() || !conflicts.empty()) + { // Prepare report and show warning. + QString report; + if (!invalidModuleIDs.isEmpty()) { + report += tr("Invalid module IDs") + ":"; + for (const QString& invalidModuleID : invalidModuleIDs) { + report += "\n\t\"" + invalidModuleID + "\"" ; + } + } + + if (!invalidShortcuts.empty()) { + if (!report.isEmpty()) + report += "\n\n"; + + report += tr("Invalid shortcuts") + ":"; + for (const auto& moduleAndShortcuts : invalidShortcuts) { + report += "\n\t\"" + moduleAndShortcuts.first + "\""; + const std::list>& moduleShortcuts = moduleAndShortcuts.second; + for (const auto& shortcut : moduleShortcuts) { + report += "\n\t\t\"" + shortcut.first + "\"\t\"" + shortcut.second + "\""; + } + } + } + + if (!conflicts.empty()) { + if (!report.isEmpty()) + report += "\n\n"; + + report += tr("These shortcuts have not been set to theContainer, because they conflict with previously parsed ones") + ":"; + for (const auto& moduleAndShortcuts : conflicts) { + report += "\n\t\"" + moduleAndShortcuts.first + "\""; + + const std::list>& moduleShortcuts = moduleAndShortcuts.second; + for (const auto& shortcut : moduleShortcuts) { + report += "\n\t\t\"" + shortcut.first + "\"\t\"" + shortcut.second.toString() + "\""; + } + } + } + + report += "\n."; + + const auto text = tr("Invalid shortcuts in preferences"); + const auto informativeText = tr("Fix the following entries in the preference files manually"); + if (!theDefaultOnly) { + // If user preferences are accounted, show warning in UI. + SUIT_Application* app = SUIT_Session::session()->activeApplication(); + if (app && app->desktop()) { + // Is not compiled without cast or with static_cast. + QMessageBox msgBox((QWidget*)app->desktop()); + msgBox.setIcon(QMessageBox::Warning); + msgBox.setTextFormat(Qt::RichText); + msgBox.setText("" + text + ""); + msgBox.setInformativeText(informativeText + ":"); + msgBox.setWindowFlags(Qt::WindowType::Popup); + msgBox.setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); + msgBox.setDetailedText(report); + msgBox.setStandardButtons(QMessageBox::Ok); + msgBox.setDefaultButton(QMessageBox::Ok); + msgBox.setMinimumWidth(600); + msgBox.exec(); + } + } + Warning(text + ". " + informativeText + ":\n" + report); + } + + if (theDefaultOnly) + resMgr->setWorkingMode(resMgrWorkingModeBefore); + + ShCutDbg() && ShCutDbg("theContainer holds following shortcuts:\n" + theContainer.toString()); } -/*! - \brief Create new instance of shortcut manager. -*/ -void SUIT_ShortcutMgr::Init() +QString substituteBashVars(const QString& theString) { - if( myShortcutMgr==NULL ) - myShortcutMgr = new SUIT_ShortcutMgr(); + QString res = theString; + const auto env = QProcessEnvironment::systemEnvironment(); + int pos = 0; + QRegExp rx("\\$\\{([^\\}]+)\\}"); // Match substrings enclosed by "${" and "}". + rx.setMinimal(true); // Set search to non-greedy. + while((pos = rx.indexIn(res, pos)) != -1) { + QString capture = rx.cap(1); + QString subst = env.value(capture); + ShCutDbg("capture = " + capture); + ShCutDbg("subst = " + subst); + res.replace("${" + capture + "}", subst); + pos += rx.matchedLength(); + } + return res; } -/*! - \brief Return shortcut manager. -*/ -SUIT_ShortcutMgr* SUIT_ShortcutMgr::getShortcutMgr() +QString substitutePowerShellVars(const QString& theString) { - Init(); - - return myShortcutMgr; + QString res = theString; + int pos = 0; + QRegExp rx("%([^%]+)%"); // Match substrings enclosed by "%". + rx.setMinimal(true); // Set search to non-greedy. + while((pos = rx.indexIn(res, pos)) != -1) { + QString capture = rx.cap(1); + QString subst = Qtx::getenv(capture.toUtf8().constData()); + ShCutDbg("capture = " + capture); + ShCutDbg("subst = " + subst); + res.replace("%" + capture + "%", subst); + pos += rx.matchedLength(); + } + return res; } -/*! - \brief Custom event filter for qapplication . - - Redefined from QObject::eventFilter(); -*/ -bool SUIT_ShortcutMgr::eventFilter( QObject* o, QEvent* e ) +QString substituteVars(const QString& theString) { - if ( e->type() == QEvent::ActionAdded ) { - QActionEvent* anActionEvent = (QActionEvent*)e; - if (anActionEvent) { - QtxAction* anAction = qobject_cast( anActionEvent->action() ); - if ( anAction ) - processAction( anAction ); + QString str = substituteBashVars(theString); + return substitutePowerShellVars(str); +} + +/*static*/ std::pair SUIT_ShortcutMgr::getActionAssetsFromResources(const QString& theActionID) +{ + auto res = std::pair(false, SUIT_ActionAssets()); + + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + if (!resMgr) { + Warning("SUIT_ShortcutMgr can't retrieve resource manager!"); + return res; + } + + QStringList actionAssetFilePaths = resMgr->parameters(SECTION_NAME_ACTION_ASSET_FILE_PATHS); + for (const QString& actionAssetFilePath : actionAssetFilePaths) { + const QString path = substituteVars(actionAssetFilePath); + QFile actionAssetFile(path); + if (!actionAssetFile.open(QIODevice::ReadOnly)) { + Warning("SUIT_ShortcutMgr can't open action asset file \"" + path + "\"!"); + continue; + } + + QJsonParseError jsonError; + QJsonDocument document = QJsonDocument::fromJson(actionAssetFile.readAll(), &jsonError); + actionAssetFile.close(); + if(jsonError.error != QJsonParseError::NoError) { + Warning("SUIT_ShortcutMgr: error during parsing of action asset file \"" + path + "\"!"); + continue; + } + + if(!document.isObject()) { + Warning("SUIT_ShortcutMgr: empty action asset file \"" + path + "\"!"); + continue; + } + + QJsonObject object = document.object(); + if (object.keys().indexOf(theActionID) == -1) + continue; + + SUIT_ActionAssets actionAssets; + if (!actionAssets.fromJSON(object[theActionID].toObject())) { + ShCutDbg("Action asset file \"" + path + "\" contains invalid action assets with ID \"" + theActionID + "\"."); + continue; } + + res.second.merge(actionAssets, true); } - return QObject::eventFilter( o, e ); + res.first = true; + return res; } -/*! - \brief Return key sequence for shortcut action name. - \param actionName name of shortcut action in preferences - \return key sequence defined in preferences or empty sequence -*/ -QKeySequence SUIT_ShortcutMgr::getShortcutByActionName( const QString& actionName ) const + +/*static*/ QString SUIT_ShortcutMgr::getLang() { SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + if (!resMgr) { + Warning("SUIT_ShortcutMgr can't retrieve resource manager!"); + return DEFAULT_LANG; + } + + return resMgr->stringValue(LANG_SECTION, LANG_SECTION, DEFAULT_LANG); +} + + +void SUIT_ShortcutMgr::registerAction(const QString& theActionID, QAction* theAction) +{ + const auto moduleIDAndActionID = splitIntoModuleIDAndInModuleID(theActionID); + const QString& moduleID = moduleIDAndActionID.first; + const QString& inModuleActionID = moduleIDAndActionID.second; + + if (inModuleActionID.isEmpty()) { + ShCutDbg() && ShCutDbg("Attempt to register an action \"" + theAction->toolTip() + "\" with invalid ID \"" + theActionID + "\"."); + if (theAction->shortcut() != NO_KEYSEQUENCE) + theAction->setShortcut(NO_KEYSEQUENCE); + + return; + } + + { // If an action with the same memory address was registered earlier, + // clear all data about it to start registering procedure from scratch. + auto itPreviousModuleAndActionID = myActionIDs.find(theAction); + if (itPreviousModuleAndActionID != myActionIDs.end()) { + // Clear the data from myActions. + const auto& previousModuleAndActionID = itPreviousModuleAndActionID->second; + auto itActions = myActions.find(previousModuleAndActionID.first); + if (itActions != myActions.end()) { + std::map>& moduleActions = itActions->second; + auto itModuleActions = moduleActions.find(previousModuleAndActionID.second); + if (itModuleActions != moduleActions.end()) { + std::set& registeredActions = itModuleActions->second; + registeredActions.erase(theAction); + } + } + + myActionIDs.erase(itPreviousModuleAndActionID); + } + } + + auto itActions = myActions.find(moduleID); + if (itActions == myActions.end()) { + itActions = myActions.emplace(moduleID, std::map>()).first; + } - QString section = actionName.section( resMgr->sectionsToken(), 0, 0 ); - section.prepend( QString("shortcuts") + resMgr->sectionsToken() ); - QString parameter = actionName.section( resMgr->sectionsToken(), 1, 1 ); + std::map>& moduleActions = itActions->second; + auto itModuleActions = moduleActions.find(inModuleActionID); + if (itModuleActions != moduleActions.end()) { + std::set& registeredActions = itModuleActions->second; + const bool actionIsNew = registeredActions.emplace(theAction).second; + if (actionIsNew) + myActionIDs[theAction] = moduleIDAndActionID; + } + else { + std::set& registeredActions = moduleActions[inModuleActionID]; + registeredActions.emplace(theAction); + myActionIDs[theAction] = moduleIDAndActionID; + } - QString shortcutValue; - bool hasValue = resMgr->value( section, parameter, shortcutValue, false ); + connect(theAction, SIGNAL(destroyed(QObject*)), this, SLOT (onActionDestroyed(QObject*))); - if ( !hasValue ) - return QKeySequence(); + if (myShortcutContainer.hasShortcut(moduleID, inModuleActionID)) { + const QKeySequence& keySequence = getKeySequence(moduleID, inModuleActionID); + theAction->setShortcut(keySequence); + } + else { + ShCutDbg( + "Action with ID \"" + + (SUIT_ShortcutMgr::isInModuleMetaActionID(inModuleActionID) ? ROOT_MODULE_ID + TOKEN_SEPARATOR + inModuleActionID : theActionID) + + "\" is not added to default resource files." + ); + auto conflicts = myShortcutContainer.setShortcut(moduleID, inModuleActionID, theAction->shortcut(), false); + if (!conflicts.empty()) + theAction->setShortcut(NO_KEYSEQUENCE); // Unbind any key sequence, if it was bound outside of the class and interferes with other shortcuts. + } +} - return QKeySequence::fromString( shortcutValue ); +void SUIT_ShortcutMgr::registerAction(QtxAction* theAction) +{ + registerAction(theAction->ID(), theAction); } -/*! - \brief Set shortcut to the given action if the shortcut is defined. - \param action action to process - */ -void SUIT_ShortcutMgr::processAction( QtxAction* action ) +std::set SUIT_ShortcutMgr::getActions(const QString& theModuleID, const QString& theInModuleActionID) const { - QString shortcutActionName = action->shortcutActionName(); - - if ( !shortcutActionName.isEmpty() ) { - // Add action to the actions map - if ( !myShortcutActions.contains( shortcutActionName, action ) ) { - myShortcutActions.insert( shortcutActionName, action ); - connect( action, SIGNAL( destroyed( QObject* ) ), - this, SLOT ( onActionDestroyed( QObject* ) ) ); + if (SUIT_ShortcutMgr::isInModuleMetaActionID(theInModuleActionID)) { + std::set actions; + for (const auto& actionAndID : myActionIDs) { + if (actionAndID.second.second == theInModuleActionID) + actions.emplace(actionAndID.first); } + return actions; + } + else { + const auto itActions = myActions.find(theModuleID); + if (itActions == myActions.end()) + return std::set(); + + const std::map>& moduleActions = itActions->second; + const auto itModuleActions = moduleActions.find(theInModuleActionID); + if (itModuleActions == moduleActions.end()) + return std::set(); - QKeySequence keySeq = getShortcutByActionName( shortcutActionName ); - action->setShortcut( keySeq ); + return itModuleActions->second; } } -/*! - \brief Enable/disable a shortcuts section. +std::pair SUIT_ShortcutMgr::getModuleIDAndInModuleID(const QAction* theAction) const { + const auto it = myActionIDs.find(const_cast(theAction)); + if (it == myActionIDs.end()) + return std::pair(); - Enables or disables actions which belong to the given shortcuts section. - Only actions which have an active desktop as a parent widget - are taken into account. + return it->second; +} - \param section shorcuts section - \param on if \c true - action will be enabled, otherwise - disabled -*/ -void SUIT_ShortcutMgr::setSectionEnabled( const QString& section, const bool on ) -{ - QMap::ConstIterator it; - for ( it = myShortcutActions.constBegin(); it != myShortcutActions.constEnd(); ++it ) { - QtxAction* action = it.value(); - QString shortcutActionName = action->shortcutActionName(); - QString actionSection = shortcutActionName.section( ":", 0, 0 ); - if ( actionSection == section ) { - // Check if the action parent widget equals to the active desktop - SUIT_Application* app = SUIT_Session::session()->activeApplication(); - if ( !app ) - return; - if ( action->parentWidget() == (QWidget*)app->desktop() ) - action->setEnabled( on ); +bool SUIT_ShortcutMgr::hasAction(const QAction* theAction) const +{ + return myActionIDs.find(const_cast(theAction)) != myActionIDs.end(); +} + +QString SUIT_ShortcutMgr::getActionID(const QAction* theAction) const +{ + const auto it = myActionIDs.find(const_cast(theAction)); + if (it == myActionIDs.end()) + return QString(); + + return SUIT_ShortcutMgr::makeActionID(it->second.first, it->second.second); +} + +void SUIT_ShortcutMgr::setActionsOfModuleEnabled(const QString& theModuleID, const bool theEnable) const +{ + const auto itModuleActions = myActions.find(theModuleID); + if (itModuleActions == myActions.end()) + return; + + SUIT_Application* app = SUIT_Session::session()->activeApplication(); + if (!app) + return; + + const std::map>& moduleActions = itModuleActions->second; + for (const auto& idAndActions : moduleActions) { + const std::set& actions = idAndActions.second; + for (QAction* const action : actions) { + if (action->parentWidget() == (QWidget*)app->desktop()) // Is not compiled without cast or with static_cast. + action->setEnabled(theEnable); } } } -/*! - \brief Update shortcuts from preferences. -*/ -void SUIT_ShortcutMgr::updateShortcuts() +void SUIT_ShortcutMgr::setActionsWithPrefixInIDEnabled(const QString& theInModuleActionIDPrefix, bool theEnable) const { - QMap::ConstIterator it; - for ( it = myShortcutActions.constBegin(); it != myShortcutActions.constEnd(); ++it ) { - QtxAction* action = it.value(); - QKeySequence keySeq = getShortcutByActionName( action->shortcutActionName() ); - action->setShortcut( keySeq ); + SUIT_Application* app = SUIT_Session::session()->activeApplication(); + if (!app) + return; + + for (const std::pair>& actionAndID : myActionIDs) { + QAction* const action = actionAndID.first; + // Is not compiled without cast or with static_cast. + if (action->parentWidget() == (QWidget*)app->desktop()) { + const QString& inModuleActionID = actionAndID.second.second; + if (inModuleActionID.startsWith(theInModuleActionIDPrefix)) + action->setEnabled(theEnable); + } } } -/*! - \brief Called when the corresponding action is destroyed. - - Removes destroyed action from the actions list. +void SUIT_ShortcutMgr::setSectionEnabled(const QString& theInModuleActionIDPrefix, bool theEnable) const +{ + setActionsWithPrefixInIDEnabled(theInModuleActionIDPrefix, theEnable); +} - \param obj action being destroyed -*/ -void SUIT_ShortcutMgr::onActionDestroyed( QObject* obj ) +void SUIT_ShortcutMgr::rebindActionsToKeySequences() const +{ + ShCutDbg() && ShCutDbg("SUIT_ShortcutMgr::rebindActionsToKeySequences()"); + for (const std::pair>& actionAndID : myActionIDs) { + actionAndID.first->setShortcut(getKeySequence(actionAndID.second.first, actionAndID.second.second)); + } +} + +void SUIT_ShortcutMgr::updateShortcuts() const +{ + rebindActionsToKeySequences(); +} + +std::set> SUIT_ShortcutMgr::setShortcut(const QString& theActionID, const QKeySequence& theKeySequence, bool theOverride) +{ + const auto moduleIDAndActionID = splitIntoModuleIDAndInModuleID(theActionID); + const QString& moduleID = moduleIDAndActionID.first; + const QString& inModuleActionID = moduleIDAndActionID.second; + + if (inModuleActionID.isEmpty()) { + ShCutDbg() && ShCutDbg("Attempt to set shortcut with invalid action ID \"" + theActionID + "\"."); + return std::set>(); + } + + return setShortcutNoIDChecks(moduleID, inModuleActionID, theKeySequence, theOverride); +} + +std::set> SUIT_ShortcutMgr::setShortcut(const QString& theModuleID, const QString& theInModuleActionID, const QKeySequence& theKeySequence, bool theOverride) +{ + if (!SUIT_ShortcutMgr::isModuleIDValid(theModuleID)) { + ShCutDbg() && ShCutDbg("Attempt to set shortcut with invalid module ID \"" + theModuleID + "\"."); + return std::set>(); + } + + if (!SUIT_ShortcutMgr::isInModuleActionIDValid(theInModuleActionID)) { + ShCutDbg() && ShCutDbg("Attempt to set shortcut with invalid in-module action ID \"" + theInModuleActionID + "\"."); + return std::set>(); + } + + return setShortcutNoIDChecks(theModuleID, theInModuleActionID, theKeySequence, theOverride); +} + +const SUIT_ShortcutContainer& SUIT_ShortcutMgr::getShortcutContainer() const +{ + return myShortcutContainer; +} + +void SUIT_ShortcutMgr::mergeShortcutContainer(const SUIT_ShortcutContainer& theContainer, bool theOverride, bool theTreatAbsentIncomingAsDisabled) +{ + ShCutDbg() && ShCutDbg("ShortcutMgr merges shortcut container..."); + const auto changes = myShortcutContainer.merge(theContainer, theOverride, theTreatAbsentIncomingAsDisabled); + ShCutDbg() && ShCutDbg("ShortcutMgr keeps following shortcuts:\n" + myShortcutContainer.toString()); + + // Turn off hotkeys for disabled shortcuts. + for (const auto& moduleIDAndChanges : changes) { + const QString& moduleID = moduleIDAndChanges.first; + const auto& moduleChanges = moduleIDAndChanges.second; + for (const std::pair& modifiedShortcut : moduleChanges) { + if (modifiedShortcut.second == NO_KEYSEQUENCE) { + const std::set actions = getActions(moduleID, modifiedShortcut.first); + for (QAction* const action : actions) { + action->setShortcut(NO_KEYSEQUENCE); + } + } + } + } + + // Turn on hotkeys for enabled shortcuts. + for (const auto& moduleIDAndChanges : changes) { + const QString& moduleID = moduleIDAndChanges.first; + const auto& moduleChanges = moduleIDAndChanges.second; + for (const std::pair& modifiedShortcut : moduleChanges) { + if (modifiedShortcut.second != NO_KEYSEQUENCE) { + const std::set actions = getActions(moduleID, modifiedShortcut.first); + for (QAction* const action : actions) { + action->setShortcut(modifiedShortcut.second); + } + } + } + } + + SUIT_ShortcutMgr::saveShortcutsToPreferences(changes); +} + +QKeySequence SUIT_ShortcutMgr::getKeySequence(const QString& theModuleID, const QString& theInModuleActionID) const +{ + return myShortcutContainer.getKeySequence(theModuleID, theInModuleActionID); +} + +const std::map& SUIT_ShortcutMgr::getModuleShortcutsInversed(const QString& theModuleID) const +{ + return myShortcutContainer.getModuleShortcutsInversed(theModuleID); +} + +std::set SUIT_ShortcutMgr::getShortcutModuleIDs() const +{ + return myShortcutContainer.getIDsOfAllModules(); +} + +std::set SUIT_ShortcutMgr::getIDsOfInterferingModules(const QString& theModuleID) const +{ + return myShortcutContainer.getIDsOfInterferingModules(theModuleID); +} + +std::shared_ptr SUIT_ShortcutMgr::getModuleAssets(const QString& theModuleID) const +{ + const auto itModuleAssets = myModuleAssets.find(theModuleID); + if (itModuleAssets == myModuleAssets.end()) { + auto assets = std::shared_ptr(new SUIT_ActionAssets()); + auto lda = SUIT_ActionAssets::LangDependentAssets(); + lda.myName = theModuleID; // At least something meaningful. + + assets->myLangDependentAssets.emplace(SUIT_ShortcutMgr::getLang(), lda); + return assets; + } + return itModuleAssets->second; +} + +QString SUIT_ShortcutMgr::getModuleName(const QString& theModuleID, const QString& theLang) const +{ + const auto assets = getModuleAssets(theModuleID); + const auto& ldaMap = assets->myLangDependentAssets; + if (ldaMap.empty()) + return theModuleID; + + auto itLang = ldaMap.find(theLang.isEmpty() ? SUIT_ShortcutMgr::getLang() : theLang); + if (itLang == ldaMap.end()) + itLang = ldaMap.begin(); // Get name in any language. + + const auto& name = itLang->second.myName; + return name.isEmpty() ? theModuleID : name; +} + +std::shared_ptr SUIT_ShortcutMgr::getActionAssets(const QString& theModuleID, const QString& theInModuleActionID) const +{ + const QString actionID = SUIT_ShortcutMgr::makeActionID(theModuleID, theInModuleActionID); + if (actionID.isEmpty()) { + ShCutDbg() && ShCutDbg("Can't get action assets: either/both module ID \"" + theModuleID + "\" or/and in-module action ID \"" + theInModuleActionID + "\" is/are invalid."); + return std::shared_ptr(nullptr); + } + return getActionAssets(actionID); +} + +std::shared_ptr SUIT_ShortcutMgr::getActionAssets(const QString& theActionID) const +{ + const auto it = myActionAssets.find(theActionID); + if (it == myActionAssets.end()) + return std::shared_ptr(nullptr); + else + return it->second; +} + +QString SUIT_ShortcutMgr::getActionName(const QString& theModuleID, const QString& theInModuleActionID, const QString& theLang) const +{ + const QString actionID = SUIT_ShortcutMgr::makeActionID(theModuleID, theInModuleActionID); + if (actionID.isEmpty()) { + ShCutDbg() && ShCutDbg("Can't get action name: either/both module ID \"" + theModuleID + "\" or/and in-module action ID \"" + theInModuleActionID + "\" is/are invalid."); + return actionID; + } + + const auto itActionAssets = myActionAssets.find(actionID); + if (itActionAssets != myActionAssets.end() && !itActionAssets->second->myLangDependentAssets.empty()) { + const auto& ldaMap = itActionAssets->second->myLangDependentAssets; + if (ldaMap.empty()) + return theInModuleActionID; + + auto itLang = ldaMap.find(theLang.isEmpty() ? SUIT_ShortcutMgr::getLang() : theLang); + if (itLang == ldaMap.end()) + itLang = ldaMap.begin(); // Get name in any language. + + const auto& name = itLang->second.myName; + return name.isEmpty() ? theInModuleActionID : name; + } + else /* if action assets have not been loaded. */ { + // Try to get action->text() and use it as a name. + + // Pitfall of the approach: at the time this code block is called, the action may not exist. + // Moreover, an action with such an ID may not even have been created at the time of calling this method. + // Thus, even buffering of assets of every action ever created at runtime does not guarantee, + // that the assets will be available at any point in the life of the application, + // unless the assets are added to dedicated section in an asset file. + + const auto actions = getActions(theModuleID, theInModuleActionID); + for (const auto& action : actions) { + if (!action->text().isEmpty()) + return action->text(); + } + return theInModuleActionID; + } +} + +void SUIT_ShortcutMgr::onActionDestroyed(QObject* theObject) +{ + QAction* action = static_cast(theObject); + + auto itID = myActionIDs.find(action); + if (itID == myActionIDs.end()) + return; + + const QString& moduleID = itID->second.first; + const QString& inModuleActionID = itID->second.second; + + auto itModuleActions = myActions.find(moduleID); + if (itModuleActions != myActions.end()) { + std::map>& moduleActions = itModuleActions->second; + auto itActions = moduleActions.find(inModuleActionID); + if (itActions != moduleActions.end()) { + std::set& actions = itActions->second; + actions.erase(action); + } + } + + myActionIDs.erase(itID); +} + +bool SUIT_ShortcutMgr::eventFilter(QObject* theObject, QEvent* theEvent) +{ + if (theEvent) { + if (theEvent->type() == QEvent::ActionAdded) { + auto anActionEvent = static_cast(theEvent); + + QtxAction* aQtxAction = qobject_cast(anActionEvent->action()); + if (aQtxAction) { +#ifdef SHORTCUT_MGR_DBG + { + const auto moduleIDAndActionID = splitIntoModuleIDAndInModuleID(aQtxAction->ID()); + if (moduleIDAndActionID.second.isEmpty()) + ShCutDbg("ActionAdded event, but ID of the action is invalid. Action name = \"" + aQtxAction->toolTip() + "\", ID = \"" + aQtxAction->ID() + "\"."); + else if (!myShortcutContainer.hasShortcut(moduleIDAndActionID.first, moduleIDAndActionID.second)) + ShCutDbg("ActionAdded event, but shortcut container has no shortcut for the action. It is ok, if preference files has not been parsed yet. Action ID = \"" + moduleIDAndActionID.second + "\"."); + } +#endif//SHORTCUT_MGR_DBG +#ifdef SHORTCUT_MGR_DEVTOOLS + { + DevTools::get()->collectShortcutAndAssets(aQtxAction); + const auto moduleIDAndActionID = splitIntoModuleIDAndInModuleID(aQtxAction->ID()); + if (moduleIDAndActionID.second.isEmpty()) + DevTools::get()->collectAssetsOfActionWithInvalidID(aQtxAction); + } +#endif//SHORTCUT_MGR_DEVTOOLS + registerAction(aQtxAction); + } + else { + QAction* aQAction = qobject_cast(anActionEvent->action()); +#ifdef SHORTCUT_MGR_DEVTOOLS + if (aQAction) + DevTools::get()->collectAssetsOfActionWithInvalidID(aQAction); +#endif//SHORTCUT_MGR_DEVTOOLS + if (aQAction && aQAction->shortcut() != NO_KEYSEQUENCE) { +#ifdef SHORTCUT_MGR_DBG + ShCutDbg("ActionAdded event, but the added action is not QtxAction and bound to non-empty key sequence. name: \"" + aQAction->toolTip() + "\"."); +#endif//SHORTCUT_MGR_DBG + // Since non-QtxAction has no ID, it is impossible to properly manage its shortcut. + // And the shortcut may interfere with managed ones. + aQAction->setShortcut(NO_KEYSEQUENCE); + } + } + } + } + + return QObject::eventFilter(theObject, theEvent); +} + +std::set> SUIT_ShortcutMgr::setShortcutNoIDChecks(const QString& theModuleID, const QString& theInModuleActionID, const QKeySequence& theKeySequence, bool theOverride) +{ + std::set> disabledShortcutsIDs = myShortcutContainer.setShortcut(theModuleID, theInModuleActionID, theKeySequence, theOverride); + + if (theOverride || disabledShortcutsIDs.empty()) { + // Bind actions to corresponding modified key sequences. Save changes to preferences. + + /** { moduleID, {inModuleActionID, keySequence}[] }[] */ + std::map> modifiedShortcuts; + + for (const auto& moduleIDAndActionID : disabledShortcutsIDs) { + // Unbind actions of disabled shortcuts. + + const QString& moduleID = moduleIDAndActionID.first; + const QString& inModuleActionID = moduleIDAndActionID.second; + + std::map& modifiedModuleShortcuts = modifiedShortcuts[moduleID]; + modifiedModuleShortcuts[inModuleActionID] = NO_KEYSEQUENCE; + + const std::set actions = getActions(moduleID, inModuleActionID); + for (QAction* const action : actions) { + action->setShortcut(NO_KEYSEQUENCE); + } + } + + { // Bind actions to theKeySequence. + std::map& modifiedModuleShortcuts = modifiedShortcuts[theModuleID]; + modifiedModuleShortcuts[theInModuleActionID] = theKeySequence; + + const std::set actions = getActions(theModuleID, theInModuleActionID); + for (QAction* const action : actions) { + action->setShortcut(theKeySequence); + } + } + + SUIT_ShortcutMgr::saveShortcutsToPreferences(modifiedShortcuts); + } + + return disabledShortcutsIDs; +} + +void SUIT_ShortcutMgr::setShortcutsFromPreferences() +{ + ShCutDbg() && ShCutDbg("ShortcutMgr is initializing..."); + + SUIT_ShortcutContainer container; + SUIT_ShortcutMgr::fillContainerFromPreferences(container, false /*theDefaultOnly*/); + mergeShortcutContainer(container, true /*theOverrde*/, false /*theTreatAbsentIncomingAsDisabled*/); + setAssetsFromResources(); + + ShCutDbg() && ShCutDbg("ShortcutMgr has been initialized."); +} + +/*static*/ void SUIT_ShortcutMgr::saveShortcutsToPreferences(const std::map>& theShortcutsInversed) { - QtxAction* anAction = (QtxAction*)obj; - - if ( anAction ) - myShortcutActions.remove( anAction->shortcutActionName(), anAction ); + ShCutDbg() && ShCutDbg("Saving preferences to resources."); + + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + if (!resMgr) { + Warning("SUIT_ShortcutMgr can't retrieve resource manager!"); + return; + } + + for (const auto& moduleIDAndShortcutsInversed : theShortcutsInversed) { + const auto& moduleID = moduleIDAndShortcutsInversed.first; + const auto& moduleShortcutsInversed = moduleIDAndShortcutsInversed.second; + for (const auto& shortcutInversed : moduleShortcutsInversed) { + if (shortcutInversed.first.isEmpty()) { + ShCutDbg("Attempt to serialize a shortcut with empty action ID."); + continue; + } + + const QString sectionName = SECTION_NAME_PREFIX + resMgr->sectionsToken() + moduleID; + resMgr->setValue(sectionName, shortcutInversed.first, shortcutInversed.second.toString()); + + ShCutDbg() && ShCutDbg("Saving shortcut: \"" + moduleID + "\"\t\"" + shortcutInversed.first + "\"\t\"" + shortcutInversed.second.toString() + "\""); + } + } } + +void SUIT_ShortcutMgr::setAssetsFromResources(QString theLanguage) +{ + ShCutDbg() && ShCutDbg("Retrieving action assets."); + + SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr(); + if (!resMgr) { + Warning("SUIT_ShortcutMgr can't retrieve resource manager!"); + return; + } + + if (theLanguage.isEmpty()) + theLanguage = resMgr->stringValue(LANG_SECTION, LANG_SECTION, DEFAULT_LANG); + + QStringList langPriorityList = LANG_PRIORITY_LIST; + langPriorityList.push_front(theLanguage); + langPriorityList.removeDuplicates(); + + QStringList actionAssetFilePaths = resMgr->parameters(SECTION_NAME_ACTION_ASSET_FILE_PATHS); +#ifdef SHORTCUT_MGR_DBG + ShCutDbg("Asset files: " + actionAssetFilePaths.join(", ") + "."); +#endif + for (const QString& actionAssetFilePath : actionAssetFilePaths) { + const QString path = substituteVars(actionAssetFilePath); + QFile actionAssetFile(path); + if (!actionAssetFile.open(QIODevice::ReadOnly)) { + Warning("SUIT_ShortcutMgr can't open action asset file \"" + path + "\"!"); + continue; + } + + QJsonParseError jsonError; + QJsonDocument document = QJsonDocument::fromJson(actionAssetFile.readAll(), &jsonError); + actionAssetFile.close(); + if(jsonError.error != QJsonParseError::NoError) { + Warning("SUIT_ShortcutMgr: error during parsing of action asset file \"" + path + "\"!"); + continue; + } + + if(document.isObject()) { + QJsonObject object = document.object(); + SUIT_ActionAssets actionAssets; + for (const QString& actionID : object.keys()) { + if (!SUIT_ShortcutMgr::isActionIDValid(actionID)) { + ShCutDbg("Action asset file \"" + path + "\" contains invalid action ID \"" + actionID + "\"."); + continue; + } + + if (!actionAssets.fromJSON(object[actionID].toObject())) { + ShCutDbg("Action asset file \"" + path + "\" contains invalid action assets with ID \"" + actionID + "\"."); + continue; + } + + const bool nameInCurLangExists = actionAssets.myLangDependentAssets.find(theLanguage) != actionAssets.myLangDependentAssets.end(); + if (nameInCurLangExists) { + actionAssets.clearAllLangsExcept(theLanguage); + } + else { + bool nameInLinguaFrancaExists = false; + QString usedLanguage = QString(); + for (int i = 1; i < langPriorityList.length(); i++) { + nameInLinguaFrancaExists = actionAssets.myLangDependentAssets.find(langPriorityList[i]) != actionAssets.myLangDependentAssets.end(); + if (nameInLinguaFrancaExists) { + usedLanguage = langPriorityList[i]; + actionAssets.clearAllLangsExcept(usedLanguage); + break; + } + } + + #ifdef SHORTCUT_MGR_DBG + if (nameInLinguaFrancaExists) + ShCutDbg("Can't find assets for action with ID \"" + actionID + "\" at current (" + theLanguage + ") language. Assets in " + usedLanguage + " is used for the action." ); + else { + ShCutDbg("Can't find assets for action with ID \"" + actionID + "\". Tried " + langPriorityList.join(", ") + " languages." ); + continue; + } + #endif + } + + auto itAssets = myActionAssets.find(actionID); + if (itAssets == myActionAssets.end()) { + auto pAssets = std::shared_ptr(new SUIT_ActionAssets(actionAssets)); + itAssets = myActionAssets.emplace(actionID, pAssets).first; + } + else + itAssets->second->merge(actionAssets, true); + + const auto& assets = itAssets->second; + if (!assets->myIconPath.isEmpty() && assets->myIcon.isNull()) + assets->myIcon = QIcon(substituteVars(assets->myIconPath)); + } + } + } + + #ifdef SHORTCUT_MGR_DBG + ShCutDbg("Parsed assets: "); + QJsonObject object; + for (const auto& actionIDAndAssets : myActionAssets) { + actionIDAndAssets.second->toJSON(object); + QJsonDocument doc(object); + QString strJson = doc.toJson(QJsonDocument::Indented); + ShCutDbg(actionIDAndAssets.first + " : " + strJson); + } + #endif + + // Fill myModuleAssets. + for (const auto& moduleID : myShortcutContainer.getIDsOfAllModules()) { + const auto assets = std::shared_ptr(new SUIT_ActionAssets()); + auto& lda = assets->myLangDependentAssets[DEFAULT_LANG]; + + if (moduleID == ROOT_MODULE_ID) { + lda.myName = tr("General"); + + { // Load icon. + QString dirPath; + if (resMgr->value("resources", "LightApp", dirPath)) { + assets->myIconPath = dirPath + (!dirPath.isEmpty() && dirPath[dirPath.length() - 1] == "/" ? "" : "/") + "icon_default.png"; + assets->myIcon = QIcon(substituteVars(assets->myIconPath)); + } + } + } + else { + QString moduleName = moduleID; + resMgr->value(moduleID, "name", moduleName); + lda.myName = moduleName; + + resMgr->value(moduleID, "description", lda.myToolTip); + + { // Load icon. + QString dirPath; + QString fileName; + if (resMgr->value("resources", moduleID, dirPath) && resMgr->value(moduleID, "icon", fileName)) { + assets->myIconPath = dirPath + (!dirPath.isEmpty() && dirPath[dirPath.length() - 1] == "/" ? "" : "/") + fileName; + assets->myIcon = QIcon(substituteVars(assets->myIconPath)); + } + } + } + + myModuleAssets.emplace(moduleID, std::move(assets)); + } +} \ No newline at end of file diff --git a/src/SUIT/SUIT_ShortcutMgr.h b/src/SUIT/SUIT_ShortcutMgr.h index c86363f69..c8debfb81 100644 --- a/src/SUIT/SUIT_ShortcutMgr.h +++ b/src/SUIT/SUIT_ShortcutMgr.h @@ -26,46 +26,447 @@ #include "SUIT.h" #include -#include +#include +#include +#include +#include +#include +#include +class QAction; class QtxAction; - class QKeySequence; +class QJsonObject; #if defined WIN32 #pragma warning( disable: 4251 ) #endif +// Define SHORTCUT_MGR_DBG to enable SUIT_ShortcutMgr debug logging. +// #define SHORTCUT_MGR_DBG +/*! \returns true, if SUIT_ShortcutMgr debug logging is enabled. */ +SUIT_EXPORT extern inline bool ShCutDbg() { +#ifdef SHORTCUT_MGR_DBG + return true; +#else + return false; +#endif +} +/*! \brief Prints theString to std::wcout, if SUIT_ShortcutMgr debug logging is enabled. */ +SUIT_EXPORT extern bool ShCutDbg(const QString& theString); +/*! \brief Prints theString to std::wcout, if SUIT_ShortcutMgr debug logging is enabled. */ +SUIT_EXPORT extern bool ShCutDbg(const char* theString); + + +/*! + \class SUIT_ShortcutContainer + \brief Provides means to keep and edit shortcuts in compliance with the application logics. + \ref See SUIT_ShortcutMgr for details. +*/ +class SUIT_EXPORT SUIT_ShortcutContainer +{ +public: + SUIT_ShortcutContainer(); + + /*! \returns IDs of modules, which interfere with the module: + if the module is root (theModuleID is empty) - returns all module IDs, otherwise returns ["", theModuleID]. */ + std::set getIDsOfInterferingModules(const QString& theModuleID) const; + + std::set getIDsOfAllModules() const; + + /*! \brief Checks for conflicts. If theOverride, modifies incoming and disables all conflicting shortcuts. + Redefining a key sequence for the action, if theKeySequence does not conflict with other shortcuts, is not considered as a conflict. + \param theModuleID The method has no effect if theModuleID is invalid. \ref See SUIT_ShortcutMgr::isModuleIDValid(const QString&) for details. + \param theInModuleActionID The method has no effect if theInModuleActionID is invalid. \ref See SUIT_ShortcutMgr::isInModuleActionIDValid(const QString&). + If theInModuleActionID is meta-action ID, the shortcut is set to root module, and theModuleID is ignored. + \param theKeySequence Empty theKeySequence does not cause conflicts, in this case + a shortcut for the action is disabled: theInModuleActionID is added/retained in the container but mapped to empty key sequence. + \param theOverride If true, conflicting shortcuts are disabled. + \returns {moduleID, inModuleActionID}[] - Set of conflicting actions if theOverride = false, + otherwise set of actions (without incoming one), whose shortcuts have been disabled. */ + std::set> setShortcut( + QString theModuleID, + const QString& theInModuleActionID, + const QKeySequence& theKeySequence, + bool theOverride + ); + + /*! \brief Checks for conflicts. Existence of a shortcut with another key sequence for the action, + if theKeySequence does not conflict with other shortcuts, is not considered as a conflict. + \param theInModuleActionID If theInModuleActionID is meta-action ID, the shortcut is looked for in root module, and theModuleID is ignored. + \param theKeySequence Empty theKeySequence does not have conflicts. + \returns {moduleID, inModuleActionID}[] - Set of conflicting actions. */ + std::set> getConflicts( + QString theModuleID, + const QString& theInModuleActionID, + const QKeySequence& theKeySequence + ) const; + + /*! \returns empty key sequence if shortcut for the action is not set. + \param theInModuleActionID If theInModuleActionID is meta-action ID, seeks in root module, and theModuleID is ignored.*/ + const QKeySequence& getKeySequence(QString theModuleID, const QString& theInModuleActionID) const; + + /*! \returns true, if shortcut for the action is set (even if the mapped key sequence is empty). + \param theInModuleActionID If theInModuleActionID is meta-action ID, seeks in root module, and theModuleID is ignored.*/ + bool hasShortcut(QString theModuleID, const QString& theInModuleActionID) const; + + /*! \returns {inModuleActionID, keySequence}[] - If the module was not added, the map is empty. */ + const std::map& getModuleShortcutsInversed(const QString& theModuleID) const; + + /*! \brief Seeks for shortcuts in the module with in-module action IDs, which start with theInModuleActionIDPrefix. + \returns {inModuleActionID, keySequence}[] - If the module was not added, the map is empty. */ + const std::map getModuleShortcutsInversed(const QString& theModuleID, const QString& theInModuleActionIDPrefix) const; + + /*! \brief Merges shortcuts of theOther into this. + \param theOverride if true, overrides conflicting shortcuts. + If false, and this has no shortcut for an incoming action, and the incoming shortcut conflicts + with an existing shortcut, disabled shortcut for the incoming action is set. + \param theTreatAbsentIncomingAsDisabled If theOverride == false, theTreatAbsentIncomingAsDisabled is ignored. + If theOverride and theTreatAbsentIncomingAsDisabled, and theOther has no shortcut for an action, which exists in this, + the existing shortcut in this is set disabled. + \returns { moduleID, { inModuleActionID, keySequence }[] }[] - Modiified shortcuts inversed. */ + std::map> merge( + const SUIT_ShortcutContainer& theOther, + bool theOverride, + bool theTreatAbsentIncomingAsDisabled = false + ); + + /*! \brief Generates human-readable text representation of content. */ + QString toString() const; + +private: + /** { moduleID, { keySequence, inModuleActionID }[] }[]. keySequence can not be empty. + * Can not contain entries like { , { keySequence, } }. */ + std::map> myShortcuts; + + /** { moduleID, { inModuleActionID, keySequence }[] }[]. keySequence can be empty. + * Can not contain entries like { , { , keySequence } }. */ + std::map> myShortcutsInversed; +}; + + +/*! \brief GUI-related assets. */ +struct SUIT_EXPORT SUIT_ActionAssets +{ + struct LangDependentAssets + { + static const QString PROP_ID_NAME; + static const QString PROP_ID_TOOLTIP; + + bool fromJSON(const QJsonObject& theJsonObject); + void toJSON(QJsonObject& oJsonObject) const; + + QString myName; + QString myToolTip; + }; + + static const QString STRUCT_ID; + static const QString PROP_ID_LANG_DEPENDENT_ASSETS; + static const QString PROP_ID_ICON_PATH; + + bool fromJSON(const QJsonObject& theJsonObject); + void toJSON(QJsonObject& oJsonObject) const; + QString toString() const; + + QStringList getLangs() const; + void clearAllLangsExcept(const QString& theLang); + + /*! \param theOverride If true, values of theOther override conflicting values of this. */ + void merge(const SUIT_ActionAssets& theOther, bool theOverride); + + std::map myLangDependentAssets; + QString myIconPath; + + /*! Is not serialized. */ + QIcon myIcon; +}; + + /*! \class SUIT_ShortcutMgr - \brief Class which manages shortcuts customization. + \brief Handles action shortcut customization. + + Register actions under action IDs. Set shortcuts, which are [action ID]<->[key sequence] mappings. + Every time an action is registered or a shorcut is set, if there are an action and a shortcut, + which are mapped to the same action ID, the action is bound to the key sequence of the shortcut. + Action IDs are also used to (de)serialize shortcut settings. + Several QActions may be registered under the same ID. + + Most of actions are intercepted on creation in SUIT_ShortcutMgr:eventFilter(QObject* theObject, QEvent* theEvent). + If an intercepted action is instance of QtxAction, it is registered automatically. + Since non-QtxActions have no member ID(), SUIT_ShortcutMgr is unable to register them automatically + in SUIT_ShortcutMgr::eventFilter(). Thus, every non-QtxAction should be + passed to SUIT_ShortcutMgr::registerAction(const QString& theActionID, QAction* theAction). + + Action ID is application-unique must be composed as /. + If an action belongs to a desktop or is available even if no module is active (e.g. 'Save As'), + use empty string as . Let's call such actions as root actions. + + There is a need to keep multiple actions, which do the same from user' perspective, + bound to the same key sequence. E.g. 'Front view'. Let's call such set of actions as meta-action. + Actions of a meta-action may belong to different modules, and/or there may be several actions + of the same meta-action in the same module. of all members of a meta-action + must be the same and start with "#". + Meta-action is root action when it comes to checking for conflicts. + Shortcuts of meta-actions are (de)serialized to the same section of preference files as root shortcuts. + + can contain several "/". Go to \ref isInModuleActionIDValid(const QString&) for details. + You can refer to multiple actions, whose starts with the prefix. + + Only one module can be active at instance. So a key sequence must be unique within a joined temporary table of + root and active module shortcuts. An action is allowed to be bound with only key sequence. + + WARNING! + Avoid assigning shortcuts to instances of QAction and all its descendants directly. + (1) Key sequence being bound directly to any registered/intercepted action with valid ID, + if the key sequence does not conflict with shortcuts kept by SUIT_ShortcutMgr, + is added to the manager and appears in user preference file. If it does conflict, + it is reassigned with a key sequence from preference files or + disabled and added to user preference files (if the files have no shortcut for the action). + (2) Key sequences being bound directly to non-QtxAction instances are disabled. */ -class SUIT_EXPORT SUIT_ShortcutMgr: public QObject +class SUIT_EXPORT SUIT_ShortcutMgr: public QObject { Q_OBJECT -public: - static void Init(); - static SUIT_ShortcutMgr* getShortcutMgr(); - void setSectionEnabled( const QString&, const bool = true ); - void updateShortcuts(); +private: + SUIT_ShortcutMgr(); + SUIT_ShortcutMgr(const SUIT_ShortcutMgr&) = delete; + SUIT_ShortcutMgr& operator=(const SUIT_ShortcutMgr&) = delete; protected: - SUIT_ShortcutMgr(); virtual ~SUIT_ShortcutMgr(); +public: + /*! \brief Create new singleton-instance of shortcut manager, if it has not been created. */ + static void Init(); + + static SUIT_ShortcutMgr* get(); + + /*! \brief Checks whether the theKeySequence is platform-compatible. */ + static bool isKeySequenceValid(const QKeySequence& theKeySequence); + + /*! \returns {false, _ } if theKeySequenceString is invalid. */ + static std::pair toKeySequenceIfValid(const QString& theKeySequenceString); + + /*! \brief Valid module ID does not contain "/" and equals to result of QString(theModuleID).simplified(). + Empty module ID is valid - it is root module ID. */ + static bool isModuleIDValid(const QString& theModuleID); + + /*! \brief Valid in-module action ID may consist of several tokens, separated by "/": + /.../. + Each must be non-empty and be equal to QString().simplified(). + Empty or "#" in-module action ID is not valid. */ + static bool isInModuleActionIDValid(const QString& theInModuleActionID); + + /*! \returns true, is theInModuleActionID starts with "#". */ + static bool isInModuleMetaActionID(const QString& theInModuleActionID); + + /*! \brief Extracts module ID and in-module action ID from application-unique action ID. + The theActionID must be composed as /. + \returns { _ , "" }, if theActionID is invalid. */ + static std::pair splitIntoModuleIDAndInModuleID(const QString& theActionID); + + /*! See \ref splitIntoModuleIDAndInModuleID(const QString&). */ + static bool isActionIDValid(const QString& theActionID); + + /*! \brief Creates application-unique action ID. Reverse to splitIntoModuleIDAndInModuleID. + \returns Emppty string, if either theModuleID or theInModuleActionID is invalid*/ + static QString makeActionID(const QString& theModuleID, const QString& theInModuleActionID); + + /*! \brief Sets all shortcuts from preferences to theContainer. Incoming shortcuts override existing ones. + If the container has shortcut for an action, which is absent in preferences, and the existing shortcut + does not conflict with incoming ones, it is untouched. + See \ref setShortcutsFromPreferences() for details. + \param theDefaultOnly If true, user preferences are ignored and only default preferences are used. */ + static void fillContainerFromPreferences(SUIT_ShortcutContainer& theContainer, bool theDefaultOnly); + + /*! \brief Checks the resource manager directly. + \returns {assetsExist, assets}. */ + static std::pair getActionAssetsFromResources(const QString& theActionID); + + /*! \returns Language being set in resource manager. */ + static QString getLang(); + + + /*! \brief Add theAction to map of managed actions. */ + void registerAction(const QString& theActionID, QAction* theAction); + + /*! \brief Add theAction to map of managed actions. QtxAction::ID() is used as action ID. */ + void registerAction(QtxAction* theAction); + + /*! \brief Get registered actions. If theInModuleActionID is meta-action ID, seeks in all modules. */ + std::set getActions(const QString& theModuleID, const QString& theInModuleActionID) const; + + /*! \brief Get module ID and in-module-ID of theAction. + \returns { _ , "" } if theAction is not registered. */ + std::pair getModuleIDAndInModuleID(const QAction* theAction) const; + + /*! Returns true if theAction is registered. */ + bool hasAction(const QAction* theAction) const; + + /*! \brief Get action ID of theActon. + \returns empty string if theAction is not registered. */ + QString getActionID(const QAction* theAction) const; + + /*! \brief Enables/disable actions of the module. + Only those actions are affected, whose parent widget is active desktop. */ + void setActionsOfModuleEnabled(const QString& theModuleID, const bool theEnable = true) const; + + /*! \brief Enables/disables all registered actions whose in-module action ID begins with theInModuleActionIDPrefix. + Only those actions are affected, whose parent widget is active desktop. */ + void setActionsWithPrefixInIDEnabled(const QString& theInModuleActionIDPrefix, bool theEnable = true) const; + + [[deprecated("Use setActionsWithPrefixInIDEnabled(const QString&, bool) instead.")]] + void setSectionEnabled(const QString& theInModuleActionIDPrefix, bool theEnable = true) const; + + /*! \brief For all registered actions binds key sequences from myShortcutContainer. */ + void rebindActionsToKeySequences() const; + + [[deprecated("Use rebindActionsToKeySequences() instead.")]] + void updateShortcuts() const; + + /*! \brief Checks for conflicts. If theOverride, modifies incoming and disables all conflicting shortcuts. + Then binds key sequences with corresponding registered actions. Saves changes to preferences. + + Redefining a key sequence for the action, if the key sequence does not conflict with other shortcuts, is not considered as a conflict. + \param theInModuleActionID The method has no effect if theInModuleActionID is empty. + \param theKeySequence Empty theKeySequence does not cause conflicts, in this case + a shortcut for the action is disabled: theInModuleActionID is added/retained in the container but mapped to empty key sequence. + \param theOverride If true, conflicting shortcuts are disabled. + \returns {moduleID, inModuleActionID}[] - Set of conflicting actions if theOverride = false, + otherwise set of actions (without incoming one), whose shortcuts have been disabled. */ + std::set> setShortcut(const QString& theActionID, const QKeySequence& theKeySequence, bool theOverride = false); + std::set> setShortcut(const QString& theModuleID, const QString& theInModuleActionID, const QKeySequence& theKeySequence, bool theOverride = false); + + const SUIT_ShortcutContainer& getShortcutContainer() const; + + /*! \brief Does not perform validity checks on theModuleID and theInModuleActionID. */ + void mergeShortcutContainer(const SUIT_ShortcutContainer& theContainer, bool theOverride = true, bool theTreatAbsentIncomingAsDisabled = false); + + /*! \brief Get a key sequence mapped to the action. */ + QKeySequence getKeySequence(const QString& theModuleID, const QString& theInModuleActionID) const; + + /*! \returns {inModuleActionID, keySequence}[] */ + const std::map& getModuleShortcutsInversed(const QString& theModuleID) const; + + /*! \returns All module IDs, which were added to myShortcutContainer. */ + std::set getShortcutModuleIDs() const; + + /*! \returns IDs of modules, which interfere with the module: + if the module is root (theModuleID is empty) - returns all module IDs, otherwise returns ["", theModuleID]. */ + std::set getIDsOfInterferingModules(const QString& theModuleID) const; + + std::shared_ptr getModuleAssets(const QString& theModuleID) const; + + /*! \brief Retrieves module name, if the asset was loaded using \ref setAssetsFromResources(). If theLang is empty, it is effectively current language. */ + QString getModuleName(const QString& theModuleID, const QString& theLang = "") const; + + std::shared_ptr getActionAssets(const QString& theModuleID, const QString& theInModuleActionID) const; + + std::shared_ptr getActionAssets(const QString& theActionID) const; + + /*! \brief Retrieves action name, if the asset was loaded using \ref setAssetsFromResources(). If theLang is empty, it is effectively current language. */ + QString getActionName(const QString& theModuleID, const QString& theInModuleActionID, const QString& theLang = "") const; + private slots: - void onActionDestroyed( QObject* ); + /*! + \brief Called when the corresponding action is destroyed. + Removes destroyed action from maps of registered actions. Preserves shortcut. + \param theObject action being destroyed. + */ + void onActionDestroyed(QObject* theObject); private: - virtual bool eventFilter( QObject* o, QEvent* e ); + /*! \brief Overrides QObject::eventFilter(). + If theEvent is QEvent::ActionAdded and the action is instance of QtxAction, registers it. */ + virtual bool eventFilter(QObject* theObject, QEvent* theEvent); + + /*! \brief Does not perform validity checks on theModuleID and theInModuleActionID. */ + std::set> setShortcutNoIDChecks(const QString& theModuleID, const QString& theInModuleActionID, const QKeySequence& theKeySequence, bool theOverride); - void processAction( QtxAction* ); - QKeySequence getShortcutByActionName( const QString& ) const; + /*! \brief Set shortcuts from preference files. The method is intended to be called before any calls to setShortcut() or mergeShortcutContainer(). + Definition of this method assumes, that shortcut settings are serialized as prerefence entries {name=, val=} + in dedicated section for each module, with names of sections being composed as "shortcuts:". + + E.g. in case of XML file it may look like this: + +
+ + + + + + +
+
+ + + + +
+ + Empty inModuleActionIDs are ignored. + + nb! For any theQtxAction you wish user be able to assign it to a shortcut, + add theQtxAction.ID() to default resource files (you can map it to no key sequence).*/ + void setShortcutsFromPreferences(); + + /*! \brief Writes shortcuts to preference files. + \param theShortcuts { moduleID, { inModuleActionID, keySequence }[] }[]. Empty inModuleActionIDs are ignored. */ + static void saveShortcutsToPreferences(const std::map>& theShortcutsInversed); + + /*! Fills myActionAssets from asset files in theLanguage. + \param theLanguage If default, fills assets in current language. + If an asset in requested language is not found, seeks for the asset EN in and then in FR. + + Asset files must be structured like this: + { + ... + actionID : { + "langDependentAssets": { + ... + lang: { + "name": name, + "tooltip": tooltip + }, + ... + }, + "iconPath": iconPath + }, + ... + } + */ + void setAssetsFromResources(QString theLanguage = QString()); private: static SUIT_ShortcutMgr* myShortcutMgr; - QMultiMap myShortcutActions; + + /** { moduleID, { inModuleActionID, action[] }[] }[]. May contain entries like { , { , actions[] } }. */ + std::map>> myActions; + + /** { action, { moduleID, inModuleActionID } }[]. May contain entries like { , { , actions[] } }. */ + std::map> myActionIDs; // To maintain uniqueness of actions and effectively retrieve IDs of registered actions. + + /** Can not contain entries like { , { , actions[] } }. */ + SUIT_ShortcutContainer myShortcutContainer; + + /* nb! + Sets of moduleIDs and inModuleActionIDs are equal for myActions and myActionIDs. + Sets of moduleIDs and inModuleActionIDs may NOT be equal for myActions and myShortcutContainer. + */ + + /* {actionID, assets}[] */ + std::map> myActionAssets; + + /* {moduleID, assets}[] */ + mutable std::map> myModuleAssets; }; #if defined WIN32 diff --git a/src/SUIT/resources/SUIT_msg_fr.ts b/src/SUIT/resources/SUIT_msg_fr.ts index 97f2cf33d..bdbbb196e 100644 --- a/src/SUIT/resources/SUIT_msg_fr.ts +++ b/src/SUIT/resources/SUIT_msg_fr.ts @@ -170,5 +170,32 @@ Voulez-vous l'écraser ? TLT_IMAGE_FILES Fichiers images (*.bmp *.png *.jpg *.jpeg)
- + + + SUIT_ShortcutMgr + + General + Général + + + Invalid module IDs + ID de module invalides + + + Invalid shortcuts + Raccourcis invalides + + + These shortcuts have not been set, because they conflict with previously parsed ones + Ces raccourcis n'ont pas été définis car ils entrent en conflit avec ceux analysés précédemment + + + Invalid shortcuts in preferences + Raccourcis invalides dans les préférence + + + Fix the following entries in the preference files manually + Corrigez manuellement les entrées suivantes dans les fichiers de préférences + + diff --git a/src/SUIT/resources/SUIT_msg_ja.ts b/src/SUIT/resources/SUIT_msg_ja.ts index 8da7266db..2fb333637 100644 --- a/src/SUIT/resources/SUIT_msg_ja.ts +++ b/src/SUIT/resources/SUIT_msg_ja.ts @@ -164,5 +164,32 @@ TLT_IMAGE_FILES イメージ (*.bmp *.png *.jpg *.jpeg) ファイル
- + + + SUIT_ShortcutMgr + + General + 一般的な + + + Invalid module IDs + 無効なモジュール ID + + + Invalid shortcuts + 無効なショートカットです + + + These shortcuts have not been set, because they conflict with previously parsed ones + これらのショートカットは、以前に解析されたショートカットと競合するため、設定されていません + + + Invalid shortcuts in preferences + 環境設定のショートカットが無効です + + + Fix the following entries in the preference files manually + 設定ファイル内の次のエントリを手動で修正します + + diff --git a/src/SUIT/resources/action_assets.json b/src/SUIT/resources/action_assets.json new file mode 100644 index 000000000..eefb7012c --- /dev/null +++ b/src/SUIT/resources/action_assets.json @@ -0,0 +1,699 @@ +{ + "/#TOT_DESK_EDIT_COPY": { + "iconPath": "${GUI_ROOT_DIR}/share/salome/resources/gui/copy.png", + "langDependentAssets": { + "en": { + "name": "Copy", + "tooltip": "Copy the selection to the Clipboard" + }, + "fr": { + "name": "Copier", + "tooltip": "Copier la sélection dans le presse-papiers" + }, + "ja": { + "name": "コピー", + "tooltip": "選択範囲をクリップボードにコピー" + } + } + }, + "/#Viewers/View/Reset": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Reset", + "tooltip": "Reset View Point" + }, + "fr": { + "name": "Restaurer", + "tooltip": "Restaurer le point de vue" + }, + "ja": { + "name": "復元", + "tooltip": "ビューのポイントを復元します。" + } + } + }, + "/#Viewers/View/Rotate anticlockwise": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Rotate counterclockwise", + "tooltip": "Rotate view counterclockwise" + }, + "fr": { + "name": "Tourner la vue à gauche", + "tooltip": "Tourner la vue à gauche" + }, + "ja": { + "name": "表示を左に", + "tooltip": "表示を左に" + } + } + }, + "/#Viewers/View/Rotate clockwise": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Rotate clockwise", + "tooltip": "Rotate View Clockwise" + }, + "fr": { + "name": "Tourner la vue à droite", + "tooltip": "Tourner la vue à droite" + }, + "ja": { + "name": "右のビューを回転させる", + "tooltip": "右のビューを回転させる" + } + } + }, + "/#Viewers/View/Set X+": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "+OX", + "tooltip": "+OX View" + }, + "fr": { + "name": "+OX", + "tooltip": "Vue +OX" + }, + "ja": { + "name": "+OX", + "tooltip": "+OX View" + } + } + }, + "/#Viewers/View/Set X-": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "-OX", + "tooltip": "-OX View" + }, + "fr": { + "name": "-OX", + "tooltip": "Vue -OX" + }, + "ja": { + "name": "-OX", + "tooltip": "-OX View" + } + } + }, + "/#Viewers/View/Set Y+": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "+OY", + "tooltip": "+OY View" + }, + "fr": { + "name": "+OY", + "tooltip": "Vue +OY" + }, + "ja": { + "name": "+OY", + "tooltip": "+OY View" + } + } + }, + "/#Viewers/View/Set Y-": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "-OY", + "tooltip": "-OY View" + }, + "fr": { + "name": "-OY", + "tooltip": "Vue -OY" + }, + "ja": { + "name": "-OY", + "tooltip": "-OY View" + } + } + }, + "/#Viewers/View/Set Z+": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "+OZ", + "tooltip": "+OZ View" + }, + "fr": { + "name": "+OZ", + "tooltip": "Vue +OZ" + }, + "ja": { + "name": "+OZ", + "tooltip": "+OZ View" + } + } + }, + "/#Viewers/View/Set Z-": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "-OZ", + "tooltip": "-OZ View" + }, + "fr": { + "name": "-OZ", + "tooltip": "Vue -OZ" + }, + "ja": { + "name": "-OZ", + "tooltip": "-OZ View" + } + } + }, + "/#General/Object(s)/Hide": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Hide", + "tooltip": "Hide" + }, + "fr": { + "name": "Cacher", + "tooltip": "Cacher" + }, + "ja": { + "name": "非表示", + "tooltip": "非表示" + } + } + }, + "/#General/Object(s)/Show": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Show", + "tooltip": "Show" + }, + "fr": { + "name": "Afficher", + "tooltip": "Afficher" + }, + "ja": { + "name": "表示", + "tooltip": "表示" + } + } + }, + "/PRP_CLOSE": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Close", + "tooltip": "Close active window" + }, + "fr": { + "name": "Fermer", + "tooltip": "Fermer la fenêtre active" + }, + "ja": { + "name": "閉じる", + "tooltip": "アクティブ ウィンドウを閉じる" + } + } + }, + "/PRP_CREATE_NEW_WINDOW_FOR_VIEWER_0": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "GL 2D view", + "tooltip": "Create new GL 2D view" + }, + "fr": { + "name": "Scène GL ", + "tooltip": "Créer une nouvelle Scène GL " + }, + "ja": { + "name": "GL 2D view", + "tooltip": "新しい GL 2D view を作成します。" + } + } + }, + "/PRP_CREATE_NEW_WINDOW_FOR_VIEWER_1": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Plot 2D view", + "tooltip": "Create new Plot 2D view" + }, + "fr": { + "name": "Scène Plot2d ", + "tooltip": "Créer une nouvelle Scène Plot2d " + }, + "ja": { + "name": "Plot 2D View", + "tooltip": "新しい Plot 2D View を作成します。" + } + } + }, + "/PRP_CREATE_NEW_WINDOW_FOR_VIEWER_2": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "OCC 3D view", + "tooltip": "Create new OCC 3D view" + }, + "fr": { + "name": "Scène OCC", + "tooltip": "Créer une nouvelle Scène OCC" + }, + "ja": { + "name": "OCC 3D View", + "tooltip": "新しい OCC 3D View を作成します。" + } + } + }, + "/PRP_CREATE_NEW_WINDOW_FOR_VIEWER_3": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "VTK 3D view", + "tooltip": "Create new VTK 3D view" + }, + "fr": { + "name": "Scène VTK", + "tooltip": "Créer une nouvelle Scène VTK" + }, + "ja": { + "name": "VTK 3D View", + "tooltip": "新しい VTK 3D View を作成します。" + } + } + }, + "/PRP_CREATE_NEW_WINDOW_FOR_VIEWER_4": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "QxScene 2D view", + "tooltip": "Create new QxScene 2D view" + }, + "fr": { + "name": "Scène QxScene", + "tooltip": "Créer une nouvelle Scène QxScene" + }, + "ja": { + "name": "シーン QxScene", + "tooltip": "新しい シーン QxScene を作成します。" + } + } + }, + "/PRP_CREATE_NEW_WINDOW_FOR_VIEWER_5": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Graphics view", + "tooltip": "Create new Graphics view" + }, + "fr": { + "name": "Scène Graphiques", + "tooltip": "Créer une nouvelle Scène Graphiques" + }, + "ja": { + "name": "グラフィックの表示", + "tooltip": "新しい グラフィックの表示 を作成します。" + } + } + }, + "/PRP_CREATE_NEW_WINDOW_FOR_VIEWER_6": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "ParaView view", + "tooltip": "Create new ParaView view" + }, + "fr": { + "name": "Scène ParaView", + "tooltip": "Créer une nouvelle Scène ParaView" + }, + "ja": { + "name": "ParaView 表示 ", + "tooltip": "新しい ParaView 表示 を作成します。" + } + } + }, + "/PRP_CREATE_NEW_WINDOW_FOR_VIEWER_7": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Python view", + "tooltip": "Create new Python view" + }, + "fr": { + "name": "Vue Python", + "tooltip": "Créer une nouvelle Vue Python" + }, + "ja": { + "name": "Python view", + "tooltip": "新しい Python view を作成します。" + } + } + }, + "/PRP_CREATE_NEW_WINDOW_FOR_VIEWER_8": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "ParaView3D view", + "tooltip": "Create new ParaView3D view" + }, + "fr": { + "name": "ParaView3D view", + "tooltip": "Créer une nouvelle ParaView3D view" + }, + "ja": { + "name": "ParaView3D view", + "tooltip": "新しい ParaView3D view を作成します。" + } + } + }, + "/PRP_DESK_CATALOG_GENERATOR": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Catalog Generator", + "tooltip": "Generates XML catalog of a component's interface" + }, + "fr": { + "name": "Genérateur de catalogue", + "tooltip": "Génére un catalogue XML de l'interface du composant" + }, + "ja": { + "name": "カタログ ジェネレーター", + "tooltip": "コンポーネントインターフェイスのXMLカタログを生成" + } + } + }, + "/PRP_DESK_CONNECT": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Connect", + "tooltip": "Connect active study" + }, + "fr": { + "name": "Connecter", + "tooltip": "Connecter l'étude en cours" + }, + "ja": { + "name": "接続", + "tooltip": "アクティブスタディの接続" + } + } + }, + "/PRP_DESK_DISCONNECT": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Disconnect", + "tooltip": "Disconnect the current study" + }, + "fr": { + "name": "Déconnecter", + "tooltip": "Déconnecter l'étude en cours" + }, + "ja": { + "name": "切断", + "tooltip": "カレントスタディの切断" + } + } + }, + "/PRP_DESK_FILE_DUMP_STUDY": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Dump Study...", + "tooltip": "Dumps study to the python script" + }, + "fr": { + "name": "Générer le script de l'étude...", + "tooltip": "Génère le script python de l'étude" + }, + "ja": { + "name": "スクリプトを保存", + "tooltip": "Pythonスクリプトにスタディをダンプする" + } + } + }, + "/PRP_DESK_FILE_LOAD_SCRIPT": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Load Script...", + "tooltip": "Loads python script from file" + }, + "fr": { + "name": "Exécuter un script...", + "tooltip": "Exécute un script Python à partir d'un fichier" + }, + "ja": { + "name": "スクリプトを読込み...", + "tooltip": "ファイルからPythonスクリプトを読込み" + } + } + }, + "/PRP_DESK_HELP_ABOUT": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "About...", + "tooltip": "Shows 'About' dialog" + }, + "fr": { + "name": "A propos de...", + "tooltip": "Montre la boîte de dialogue 'A propos'" + }, + "ja": { + "name": "バージョン情報...", + "tooltip": "ソフト情報の表示" + } + } + }, + "/PRP_DESK_PREFERENCES": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Preferences...", + "tooltip": "Allow to change the preferences" + }, + "fr": { + "name": "Préférences...", + "tooltip": "Permettre de changer les préférences" + }, + "ja": { + "name": "環境設定...", + "tooltip": "設定を変更することができます。" + } + } + }, + "/PRP_DESK_VIEW_STATUSBAR": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Status Bar", + "tooltip": "Toggles status bar view on/off" + }, + "fr": { + "name": "Barre de status", + "tooltip": "Activer ou désactiver la barre de status" + }, + "ja": { + "name": "ステータス バー", + "tooltip": "ステータスバーの有効/無効" + } + } + }, + "/PRP_DESK_WINDOW_HSPLIT": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Split Horizontally", + "tooltip": "Splits the active window on two horizontal parts" + }, + "fr": { + "name": "Séparation horizontale", + "tooltip": "Diviser la fenêtre actuelle en deux parties horizontales" + }, + "ja": { + "name": "水平分割", + "tooltip": "現在のウィンドウを 2つに水平分割" + } + } + }, + "/PRP_DESK_WINDOW_VSPLIT": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Split Vertically", + "tooltip": "Splits the active window on two vertical parts" + }, + "fr": { + "name": "Séparation verticale", + "tooltip": "Diviser la fenêtre actuelle en deux parties verticales" + }, + "ja": { + "name": "垂直分割", + "tooltip": "現在のウィンドウを2つに上下分割" + } + } + }, + "/PRP_FULLSCREEN": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Full screen", + "tooltip": "Switch to full screen mode" + }, + "fr": { + "name": "Plein écran", + "tooltip": "Basculer en mode plein écran" + }, + "ja": { + "name": "全画面表示", + "tooltip": "全画面表示モードに切り替え" + } + } + }, + "/PRP_RENAME": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Rename", + "tooltip": "Rename active window" + }, + "fr": { + "name": "Renommer", + "tooltip": "Renommer la fenêtre active" + }, + "ja": { + "name": "名前変更", + "tooltip": "アクティブなウィンドウの名前を変更" + } + } + }, + "/TOT_DESK_EDIT_PASTE": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Paste", + "tooltip": "Inserts the Clipboard content at the insertion point" + }, + "fr": { + "name": "Coller", + "tooltip": "Insérer le contenu du presse-papiers au point d'insertion" + }, + "ja": { + "name": "貼り付け", + "tooltip": "クリップボードの内容を挿入" + } + } + }, + "/TOT_DESK_FILE_CLOSE": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Close", + "tooltip": "Closes the active document" + }, + "fr": { + "name": "Fermer", + "tooltip": "Ferme le document actuel" + }, + "ja": { + "name": "閉じる", + "tooltip": "現在のドキュメントを閉じる" + } + } + }, + "/TOT_DESK_FILE_EXIT": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Exit", + "tooltip": "Exits the application" + }, + "fr": { + "name": "Quitter", + "tooltip": "Quitte l'application" + }, + "ja": { + "name": "終了", + "tooltip": "アプリケーションを終了" + } + } + }, + "/TOT_DESK_FILE_NEW": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "New", + "tooltip": "Create a new document" + }, + "fr": { + "name": "Nouveau", + "tooltip": "Créer une nouvelle étude" + }, + "ja": { + "name": "新規作成", + "tooltip": "新しいドキュメントを作成" + } + } + }, + "/TOT_DESK_FILE_OPEN": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Open...", + "tooltip": "Open an existing document" + }, + "fr": { + "name": "Ouvrir...", + "tooltip": "Ouvre une étude existant" + }, + "ja": { + "name": "開く...", + "tooltip": "既存のドキュメントを開く" + } + } + }, + "/TOT_DESK_FILE_SAVE": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Save", + "tooltip": "Save the active document" + }, + "fr": { + "name": "Enregistrer", + "tooltip": "Sauvegarder l'étude actuelle" + }, + "ja": { + "name": "保存", + "tooltip": "現在のドキュメントを保存" + } + } + }, + "/TOT_DESK_FILE_SAVEAS": { + "iconPath": "", + "langDependentAssets": { + "en": { + "name": "Save As...", + "tooltip": "Saves the active document with a new name" + }, + "fr": { + "name": "Enregistrer sous...", + "tooltip": "Sauvegarder le document actuel sous un nouveau nom" + }, + "ja": { + "name": "別名保存...", + "tooltip": "現在のドキュメントを新しい名前で保存" + } + } + } +} \ No newline at end of file diff --git a/src/SVTK/SVTK_ViewWindow.cxx b/src/SVTK/SVTK_ViewWindow.cxx index 796da66e5..74412fa3b 100644 --- a/src/SVTK/SVTK_ViewWindow.cxx +++ b/src/SVTK/SVTK_ViewWindow.cxx @@ -129,7 +129,7 @@ namespace SVTK case SUIT_Accel::RotateLeft : return SVTK::RotateLeftEvent; case SUIT_Accel::RotateRight : return SVTK::RotateRightEvent; case SUIT_Accel::RotateUp : return SVTK::RotateUpEvent; - case SUIT_Accel::RotateDown : return SVTK::RotateDownEvent; + case SUIT_Accel::RotateDown : return SVTK::RotateDownEvent; } return accelAction; } @@ -208,21 +208,21 @@ void SVTK_ViewWindow::Initialize(SVTK_ViewModelBase* theModel) ( getAction( ChangeRotationPointId ), this, "SVTK_SetRotationPointDlg" ); myViewParameterDlg = new SVTK_ViewParameterDlg ( getAction( ViewParametersId ), this, "SVTK_ViewParameterDlg" ); - + myDefaultInteractorStyle = SVTK_InteractorStyle::New(); myInteractor->PushInteractorStyle(myDefaultInteractorStyle); myDefaultInteractorStyle->Delete(); - + myRecorder = SVTK_Recorder::New(); - + myRecorder->SetNbFPS( 17.3 ); myRecorder->SetQuality( 100 ); myRecorder->SetProgressiveMode( true ); myRecorder->SetUseSkippedFrames( true ); myRecorder->SetRenderWindow( myInteractor->getRenderWindow() ); - + setCentralWidget(myInteractor); - + myAxesWidget = salomevtk::vtkPVAxesWidget::New(); myAxesWidget->SetParentRenderer(aRenderer->GetDevice()); myAxesWidget->SetViewport(0, 0, 0.25, 0.25); @@ -306,9 +306,9 @@ SVTK_ViewWindow::~SVTK_ViewWindow() /*! \return corresponding view */ -SVTK_View* SVTK_ViewWindow::getView() -{ - return myView; +SVTK_View* SVTK_ViewWindow::getView() +{ + return myView; } /*! @@ -355,8 +355,8 @@ SVTK_Renderer* SVTK_ViewWindow::GetRenderer() const \return corresponding vtk selector */ SVTK_Selector* SVTK_ViewWindow::GetSelector() const -{ - return GetInteractor()->GetSelector(); +{ + return GetInteractor()->GetSelector(); } /*! @@ -507,7 +507,7 @@ Selection_Mode SVTK_ViewWindow::SelectionMode() const /*! Unhilights all objects in viewer */ -void SVTK_ViewWindow::unHighlightAll() +void SVTK_ViewWindow::unHighlightAll() { myView->unHighlightAll(); } @@ -518,9 +518,9 @@ void SVTK_ViewWindow::unHighlightAll() \param theIsHighlight - if it is true, object will be hilighted, otherwise it will be unhilighted \param theIsUpdate - update current viewer */ -void SVTK_ViewWindow::highlight(const Handle(SALOME_InteractiveObject)& theIO, - bool theIsHighlight, - bool theIsUpdate ) +void SVTK_ViewWindow::highlight(const Handle(SALOME_InteractiveObject)& theIO, + bool theIsHighlight, + bool theIsUpdate ) { myView->highlight( theIO, theIsHighlight, theIsUpdate ); } @@ -529,7 +529,7 @@ void SVTK_ViewWindow::highlight(const Handle(SALOME_InteractiveObject)& theIO, \return true if object is in viewer or in collector \param theIO - object to be checked */ -bool SVTK_ViewWindow::isInViewer( const Handle(SALOME_InteractiveObject)& theIO ) +bool SVTK_ViewWindow::isInViewer( const Handle(SALOME_InteractiveObject)& theIO ) { return myView->isInViewer( theIO ); } @@ -538,7 +538,7 @@ bool SVTK_ViewWindow::isInViewer( const Handle(SALOME_InteractiveObject)& theIO \return true if object is displayed in viewer \param theIO - object to be checked */ -bool SVTK_ViewWindow::isVisible( const Handle(SALOME_InteractiveObject)& theIO ) +bool SVTK_ViewWindow::isVisible( const Handle(SALOME_InteractiveObject)& theIO ) { return myView->isVisible( theIO ); } @@ -547,7 +547,7 @@ bool SVTK_ViewWindow::isVisible( const Handle(SALOME_InteractiveObject)& theIO ) Display object \param theEntry - entry that corresponds to intractive objects */ -Handle(SALOME_InteractiveObject) SVTK_ViewWindow::FindIObject(const char* theEntry) +Handle(SALOME_InteractiveObject) SVTK_ViewWindow::FindIObject(const char* theEntry) { return myView->FindIObject(theEntry); } @@ -558,7 +558,7 @@ Handle(SALOME_InteractiveObject) SVTK_ViewWindow::FindIObject(const char* theEnt \param theImmediatly - update viewer */ void SVTK_ViewWindow::Display(const Handle(SALOME_InteractiveObject)& theIO, - bool theImmediatly) + bool theImmediatly) { myView->Display(theIO,theImmediatly); } @@ -569,7 +569,7 @@ void SVTK_ViewWindow::Display(const Handle(SALOME_InteractiveObject)& theIO, \param theImmediatly - update viewer */ void SVTK_ViewWindow::Erase(const Handle(SALOME_InteractiveObject)& theIO, - bool theImmediatly) + bool theImmediatly) { myView->Erase(theIO,theImmediatly); } @@ -578,7 +578,7 @@ void SVTK_ViewWindow::Erase(const Handle(SALOME_InteractiveObject)& theIO, Display only passed object \param theIO - object */ -void SVTK_ViewWindow::DisplayOnly(const Handle(SALOME_InteractiveObject)& theIO) +void SVTK_ViewWindow::DisplayOnly(const Handle(SALOME_InteractiveObject)& theIO) { myView->DisplayOnly(theIO); } @@ -586,7 +586,7 @@ void SVTK_ViewWindow::DisplayOnly(const Handle(SALOME_InteractiveObject)& theIO) /*! Display all objects in view */ -void SVTK_ViewWindow::DisplayAll() +void SVTK_ViewWindow::DisplayAll() { myView->DisplayAll(); } @@ -594,7 +594,7 @@ void SVTK_ViewWindow::DisplayAll() /*! Erase all objects in view */ -void SVTK_ViewWindow::EraseAll() +void SVTK_ViewWindow::EraseAll() { myView->EraseAll(); } @@ -793,7 +793,7 @@ void SVTK_ViewWindow::PopInteractorStyle() */ void SVTK_ViewWindow::Repaint(bool theUpdateTrihedron) { - if(theUpdateTrihedron) + if(theUpdateTrihedron) GetRenderer()->OnAdjustTrihedron(); GetInteractor()->update(); @@ -805,7 +805,7 @@ void SVTK_ViewWindow::Repaint(bool theUpdateTrihedron) if( GetRenderer() ) { aStyle->SetCurrentRenderer(GetRenderer()->GetDevice()); } - } + } #endif aStyle->OnTimer(); } @@ -814,7 +814,7 @@ void SVTK_ViewWindow::Repaint(bool theUpdateTrihedron) /*! Redirect the request to #SVTK_Renderer::GetScale */ -void SVTK_ViewWindow::GetScale( double theScale[3] ) +void SVTK_ViewWindow::GetScale( double theScale[3] ) { GetRenderer()->GetScale( theScale ); } @@ -822,7 +822,7 @@ void SVTK_ViewWindow::GetScale( double theScale[3] ) /*! Redirect the request to #SVTK_Renderer::SetScale */ -void SVTK_ViewWindow::SetScale( double theScale[3] ) +void SVTK_ViewWindow::SetScale( double theScale[3] ) { GetRenderer()->SetScale( theScale ); Repaint(); @@ -1128,7 +1128,7 @@ void SVTK_ViewWindow::SetSelectionEnabled( bool theEnable ) QtxAction* a = getAction( EnableSelectionId ); if ( a->isChecked() != theEnable) a->setChecked( theEnable ); - QtxActionGroup* aPreselectionGroup = + QtxActionGroup* aPreselectionGroup = dynamic_cast( getAction( PreselectionId ) ); if ( aPreselectionGroup ) aPreselectionGroup->setEnabled( theEnable ); @@ -1211,7 +1211,7 @@ void SVTK_ViewWindow::onEnableSelection( bool on ) { SVTK_Viewer* aViewer = dynamic_cast(myModel); if(aViewer) - aViewer->enableSelection(on); + aViewer->enableSelection(on); } /*! @@ -1231,7 +1231,7 @@ void SVTK_ViewWindow::SetIncrementalSpeed(const int theValue, const int theMode) \param theBtn2 - spacemouse button for the "increase speed increment" \param theBtn3 - spacemouse button for the "dominant combined switch" */ -void SVTK_ViewWindow::SetSpacemouseButtons(const int theBtn1, +void SVTK_ViewWindow::SetSpacemouseButtons(const int theBtn1, const int theBtn2, const int theBtn3) { @@ -1267,7 +1267,7 @@ void SVTK_ViewWindow::AdjustTrihedrons(const bool /*theIsForcedUpdate*/) Redirect the request to #SVTK_Renderer::OnAdjustTrihedron */ void SVTK_ViewWindow::onAdjustTrihedron() -{ +{ GetRenderer()->OnAdjustTrihedron(); } @@ -1275,7 +1275,7 @@ void SVTK_ViewWindow::onAdjustTrihedron() Redirect the request to #SVTK_Renderer::OnAdjustCubeAxes */ void SVTK_ViewWindow::onAdjustCubeAxes() -{ +{ GetRenderer()->OnAdjustCubeAxes(); } @@ -1339,12 +1339,12 @@ void SVTK_ViewWindow::onMouseDoubleClicked( QMouseEvent* event ) /*! Redirect the request to #SVTK_Renderer::AddActor */ -void SVTK_ViewWindow::AddActor( VTKViewer_Actor* theActor, +void SVTK_ViewWindow::AddActor( VTKViewer_Actor* theActor, bool theUpdate, bool theIsAdjustActors ) { GetRenderer()->AddActor(theActor, theIsAdjustActors); - if(theUpdate) + if(theUpdate) Repaint(); emit actorAdded(theActor); } @@ -1352,7 +1352,7 @@ void SVTK_ViewWindow::AddActor( VTKViewer_Actor* theActor, /*! Redirect the request to #SVTK_Renderer::RemoveActor */ -void SVTK_ViewWindow::RemoveActor( VTKViewer_Actor* theActor, +void SVTK_ViewWindow::RemoveActor( VTKViewer_Actor* theActor, bool theUpdate, bool theIsAdjustActors ) { @@ -1361,7 +1361,7 @@ void SVTK_ViewWindow::RemoveActor( VTKViewer_Actor* theActor, myDefaultInteractorStyle->FreeActors(); if ( myKeyFreeInteractorStyle ) myKeyFreeInteractorStyle->FreeActors(); - if(theUpdate) + if(theUpdate) Repaint(); emit actorRemoved(theActor); } @@ -1372,7 +1372,7 @@ QImage SVTK_ViewWindow::dumpViewContent() int* aSize = aWindow->GetSize(); int aWidth = aSize[0]; int aHeight = aSize[1]; - + #ifndef DISABLE_GLVIEWER OpenGLUtils_FrameBuffer aFrameBuffer; if( aFrameBuffer.init( aWidth, aHeight ) ) @@ -1383,7 +1383,7 @@ QImage SVTK_ViewWindow::dumpViewContent() // draw scene aWindow->Render(); - + //aFrameBuffer.unbind(); glPopAttrib(); @@ -1400,9 +1400,9 @@ QImage SVTK_ViewWindow::dumpViewContent() #endif // if frame buffers are unsupported, use old functionality - unsigned char *aData = + unsigned char *aData = aWindow->GetRGBACharPixelData( 0, 0, aWidth-1, aHeight-1, 0 ); - + QImage anImage( aData, aWidth, aHeight, QImage::Format_ARGB32 ); anImage = anImage.rgbSwapped(); @@ -1417,7 +1417,7 @@ QImage SVTK_ViewWindow::dumpView() { if( myDumpImage.isNull() ) return dumpViewContent(); - + RefreshDumpImage(); return myDumpImage; } @@ -1445,12 +1445,12 @@ bool SVTK_ViewWindow::dumpViewToFormat( const QImage& img, const QString& fileNa anExporter->SetSort((vtkGL2PSExporter::SortScheme)optionsDlg->getSortType()); anExporter->SetWrite3DPropsAsRasterImage((int)optionsDlg->isRasterize3D()); anExporter->SetPS3Shading((int)optionsDlg->isPs3Shading()); - + if ( format == "PS" ) { anExporter->SetFileFormatToPS(); anExporter->CompressOff(); } - + if ( format == "EPS" ) { anExporter->SetFileFormatToEPS(); anExporter->CompressOff(); @@ -1459,7 +1459,7 @@ bool SVTK_ViewWindow::dumpViewToFormat( const QImage& img, const QString& fileNa if ( format == "PDF" ) { anExporter->SetFileFormatToPDF(); } - + QString aFilePrefix(fileName); QString anExtension(SUIT_Tools::extension(fileName)); aFilePrefix.truncate(aFilePrefix.length() - 1 - anExtension.length()); @@ -1468,7 +1468,7 @@ bool SVTK_ViewWindow::dumpViewToFormat( const QImage& img, const QString& fileNa anExporter->Delete(); } delete optionsDlg; - return true; + return true; } /*! @@ -1482,10 +1482,10 @@ void SVTK_ViewWindow::RefreshDumpImage() /*! Redirect the request to #SVTK_Renderer::SetSelectionProp */ -void SVTK_ViewWindow::SetSelectionProp(const double& theRed, - const double& theGreen, - const double& theBlue, - const int& theWidth) +void SVTK_ViewWindow::SetSelectionProp(const double& theRed, + const double& theGreen, + const double& theBlue, + const int& theWidth) { myView->SetSelectionProp(theRed,theGreen,theBlue,theWidth); } @@ -1493,10 +1493,10 @@ void SVTK_ViewWindow::SetSelectionProp(const double& theRed, /*! Redirect the request to #SVTK_Renderer::SetSelectionProp */ -void SVTK_ViewWindow::SetPreselectionProp(const double& theRed, - const double& theGreen, - const double& theBlue, - const int& theWidth) +void SVTK_ViewWindow::SetPreselectionProp(const double& theRed, + const double& theGreen, + const double& theBlue, + const int& theWidth) { myView->SetPreselectionProp(theRed,theGreen,theBlue,theWidth); } @@ -1504,7 +1504,7 @@ void SVTK_ViewWindow::SetPreselectionProp(const double& theRed, /*! Redirect the request to #SVTK_Renderer::SetSelectionTolerance */ -void SVTK_ViewWindow::SetSelectionTolerance(const double& theTolNodes, +void SVTK_ViewWindow::SetSelectionTolerance(const double& theTolNodes, const double& theTolItems, const double& theTolObjects) { @@ -1551,7 +1551,7 @@ QtxAction* SVTK_ViewWindow::getAction( int id ) const } -// old visual parameters had 13 values. New format added additional +// old visual parameters had 13 values. New format added additional // 76 values for graduated axes, so both numbers are processed. const int nNormalParams = 13; // number of view windows parameters excluding graduated axes params const int nGradAxisParams = 25; // number of parameters of ONE graduated axis (X, Y, or Z) @@ -1602,7 +1602,7 @@ void getGradAxisVisualParams( QXmlStreamWriter& writer, vtkAxisActor2D* actor, Q writer.writeEndElement(); writer.writeEndElement(); - //params.sprintf( "* Graduated Axis: * Name *%u*%s*%.2f*%.2f*%.2f*%u*%u*%u*%u", isVisible, + //params.sprintf( "* Graduated Axis: * Name *%u*%s*%.2f*%.2f*%.2f*%u*%u*%u*%u", isVisible, // title.toLatin1().data(), color[0], color[1], color[2], font, bold, italic, shadow ); // Labels @@ -1639,7 +1639,7 @@ void getGradAxisVisualParams( QXmlStreamWriter& writer, vtkAxisActor2D* actor, Q writer.writeAttribute("B", QString("%1").arg(color[2])); writer.writeEndElement(); writer.writeEndElement(); - // params += QString().sprintf( "* Labels *%u*%u*%u*%.2f*%.2f*%.2f*%u*%u*%u*%u", isVisible, labels, offset, + // params += QString().sprintf( "* Labels *%u*%u*%u*%.2f*%.2f*%.2f*%u*%u*%u*%u", isVisible, labels, offset, // color[0], color[1], color[2], font, bold, italic, shadow ); // Tick marks @@ -1649,9 +1649,9 @@ void getGradAxisVisualParams( QXmlStreamWriter& writer, vtkAxisActor2D* actor, Q writer.writeAttribute("isVisible", QString("%1").arg(isVisible)); writer.writeAttribute("Length", QString("%1").arg(length)); writer.writeEndElement(); - + //params += QString().sprintf( "* Tick marks *%u*%u", isVisible, length ); - + writer.writeEndElement(); //return params; } @@ -1679,7 +1679,7 @@ void setGradAxisVisualParams(QXmlStreamReader& reader, vtkAxisActor2D* actor) do { reader.readNext(); } while (!reader.isStartElement()); - + // Read title color aAttr = reader.attributes(); @@ -1704,7 +1704,7 @@ void setGradAxisVisualParams(QXmlStreamReader& reader, vtkAxisActor2D* actor) do { reader.readNext(); - } while (!reader.isStartElement()); + } while (!reader.isStartElement()); // Read labels aAttr = reader.attributes(); isVisible = aAttr.value("isVisible").toString().toUShort(); @@ -1717,7 +1717,7 @@ void setGradAxisVisualParams(QXmlStreamReader& reader, vtkAxisActor2D* actor) do { reader.readNext(); - } while (!reader.isStartElement()); + } while (!reader.isStartElement()); // Read Color aAttr = reader.attributes(); @@ -1740,13 +1740,13 @@ void setGradAxisVisualParams(QXmlStreamReader& reader, vtkAxisActor2D* actor) // Tick Marks do { reader.readNext(); - } while (!reader.isStartElement()); + } while (!reader.isStartElement()); aAttr = reader.attributes(); // retrieve and set tick marks properties isVisible = aAttr.value("isVisible").toString().toUShort(); int length = aAttr.value("Length").toString().toInt(); - + actor->SetTickVisibility( isVisible ); actor->SetTickLength( length ); } @@ -1823,7 +1823,7 @@ void setGradAxisVisualParams( vtkAxisActor2D* actor, const QString& params ) QString SVTK_ViewWindow::getVisualParameters() { double pos[3], focalPnt[3], viewUp[3], parScale, scale[3]; - + // save position, focal point, viewUp, scale vtkCamera* camera = getRenderer()->GetActiveCamera(); camera->GetPosition( pos ); @@ -1833,7 +1833,7 @@ QString SVTK_ViewWindow::getVisualParameters() GetScale( scale ); // Parameters are given in the following format:view position (3 digits), focal point position (3 digits) - // view up values (3 digits), parallel scale (1 digit), scale (3 digits, + // view up values (3 digits), parallel scale (1 digit), scale (3 digits, // Graduated axes parameters (X, Y, Z axes parameters) QString retStr; QXmlStreamWriter aWriter(&retStr); @@ -1894,13 +1894,13 @@ QString SVTK_ViewWindow::getVisualParameters() /*! The method restores visual parameters of this view or postpones it untill the view is shown -*/ +*/ void SVTK_ViewWindow::setVisualParameters( const QString& parameters ) { //printf("#### %s\n", qPrintable(parameters)); SVTK_RenderWindowInteractor* anInteractor = GetInteractor(); if ( anInteractor->isVisible() ) { - doSetVisualParameters( parameters ); + doSetVisualParameters( parameters ); } else { myVisualParams = parameters; @@ -2188,7 +2188,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) QtxActionToolMgr* mgr = toolMgr(); // Dump view - anAction = new QtxAction(tr("MNU_DUMP_VIEW"), + anAction = new QtxAction(tr("MNU_DUMP_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_DUMP" ) ), tr( "MNU_DUMP_VIEW" ), 0, this); anAction->setStatusTip(tr("DSC_DUMP_VIEW")); @@ -2196,7 +2196,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, DumpId ); // FitAll - anAction = new QtxAction(tr("MNU_FITALL"), + anAction = new QtxAction(tr("MNU_FITALL"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_FITALL" ) ), tr( "MNU_FITALL" ), 0, this); anAction->setStatusTip(tr("DSC_FITALL")); @@ -2204,7 +2204,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, FitAllId ); // FitRect - anAction = new QtxAction(tr("MNU_FITRECT"), + anAction = new QtxAction(tr("MNU_FITRECT"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_FITAREA" ) ), tr( "MNU_FITRECT" ), 0, this); anAction->setStatusTip(tr("DSC_FITRECT")); @@ -2220,7 +2220,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, FitSelectionId ); // Zoom - anAction = new QtxAction(tr("MNU_ZOOM_VIEW"), + anAction = new QtxAction(tr("MNU_ZOOM_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_ZOOM" ) ), tr( "MNU_ZOOM_VIEW" ), 0, this); anAction->setStatusTip(tr("DSC_ZOOM_VIEW")); @@ -2228,7 +2228,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, ZoomId ); // Panning - anAction = new QtxAction(tr("MNU_PAN_VIEW"), + anAction = new QtxAction(tr("MNU_PAN_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_PAN" ) ), tr( "MNU_PAN_VIEW" ), 0, this); anAction->setStatusTip(tr("DSC_PAN_VIEW")); @@ -2236,7 +2236,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, PanId ); // Global Panning - anAction = new QtxAction(tr("MNU_GLOBALPAN_VIEW"), + anAction = new QtxAction(tr("MNU_GLOBALPAN_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_GLOBALPAN" ) ), tr( "MNU_GLOBALPAN_VIEW" ), 0, this); anAction->setStatusTip(tr("DSC_GLOBALPAN_VIEW")); @@ -2244,7 +2244,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, GlobalPanId ); // Change rotation point - anAction = new QtxAction(tr("MNU_CHANGINGROTATIONPOINT_VIEW"), + anAction = new QtxAction(tr("MNU_CHANGINGROTATIONPOINT_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_ROTATION_POINT" ) ), tr( "MNU_CHANGINGROTATIONPOINT_VIEW" ), 0, this); anAction->setStatusTip(tr("DSC_CHANGINGROTATIONPOINT_VIEW")); @@ -2253,7 +2253,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, ChangeRotationPointId ); // Rotation - anAction = new QtxAction(tr("MNU_ROTATE_VIEW"), + anAction = new QtxAction(tr("MNU_ROTATE_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_ROTATE" ) ), tr( "MNU_ROTATE_VIEW" ), 0, this); anAction->setStatusTip(tr("DSC_ROTATE_VIEW")); @@ -2261,9 +2261,9 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, RotationId ); // Projections - anAction = new QtxAction(tr("MNU_FRONT_VIEW"), + anAction = new QtxAction(tr("MNU_FRONT_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_FRONT" ) ), - tr( "MNU_FRONT_VIEW" ), 0, this, false, "Viewers:Front view"); + tr( "MNU_FRONT_VIEW" ), 0, this, false, "/#Viewers/View/Set X-"); anAction->setStatusTip(tr("DSC_FRONT_VIEW")); connect(anAction, SIGNAL(triggered()), this, SLOT(onFrontView())); this->addAction(anAction); @@ -2271,7 +2271,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) anAction = new QtxAction(tr("MNU_BACK_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_BACK" ) ), - tr( "MNU_BACK_VIEW" ), 0, this, false, "Viewers:Back view"); + tr( "MNU_BACK_VIEW" ), 0, this, false, "/#Viewers/View/Set X+"); anAction->setStatusTip(tr("DSC_BACK_VIEW")); connect(anAction, SIGNAL(triggered()), this, SLOT(onBackView())); this->addAction(anAction); @@ -2279,7 +2279,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) anAction = new QtxAction(tr("MNU_TOP_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_TOP" ) ), - tr( "MNU_TOP_VIEW" ), 0, this, false, "Viewers:Top view"); + tr( "MNU_TOP_VIEW" ), 0, this, false, "/#Viewers/View/Set Z-"); anAction->setStatusTip(tr("DSC_TOP_VIEW")); connect(anAction, SIGNAL(triggered()), this, SLOT(onTopView())); this->addAction(anAction); @@ -2287,7 +2287,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) anAction = new QtxAction(tr("MNU_BOTTOM_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_BOTTOM" ) ), - tr( "MNU_BOTTOM_VIEW" ), 0, this, false, "Viewers:Bottom view"); + tr( "MNU_BOTTOM_VIEW" ), 0, this, false, "/#Viewers/View/Set Z+"); anAction->setStatusTip(tr("DSC_BOTTOM_VIEW")); connect(anAction, SIGNAL(triggered()), this, SLOT(onBottomView())); this->addAction(anAction); @@ -2295,7 +2295,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) anAction = new QtxAction(tr("MNU_LEFT_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_LEFT" ) ), - tr( "MNU_LEFT_VIEW" ), 0, this, false, "Viewers:Left view"); + tr( "MNU_LEFT_VIEW" ), 0, this, false, "/#Viewers/View/Set Y+"); anAction->setStatusTip(tr("DSC_LEFT_VIEW")); connect(anAction, SIGNAL(triggered()), this, SLOT(onLeftView())); this->addAction(anAction); @@ -2303,7 +2303,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) anAction = new QtxAction(tr("MNU_RIGHT_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_RIGHT" ) ), - tr( "MNU_RIGHT_VIEW" ), 0, this, false, "Viewers:Right view"); + tr( "MNU_RIGHT_VIEW" ), 0, this, false, "/#Viewers/View/Set Y-"); anAction->setStatusTip(tr("DSC_RIGHT_VIEW")); connect(anAction, SIGNAL(triggered()), this, SLOT(onRightView())); this->addAction(anAction); @@ -2312,7 +2312,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) // rotate anticlockwise anAction = new QtxAction(tr("MNU_ANTICLOCKWISE_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_ANTICLOCKWISE" ) ), - tr( "MNU_ANTICLOCKWISE_VIEW" ), 0, this, false, "Viewers:Rotate anticlockwise"); + tr( "MNU_ANTICLOCKWISE_VIEW" ), 0, this, false, "/#Viewers/View/Rotate anticlockwise"); anAction->setStatusTip(tr("DSC_ANTICLOCKWISE_VIEW")); connect(anAction, SIGNAL(triggered()), this, SLOT(onAntiClockWiseView())); this->addAction(anAction); @@ -2321,34 +2321,34 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) // rotate clockwise anAction = new QtxAction(tr("MNU_CLOCKWISE_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_CLOCKWISE" ) ), - tr( "MNU_CLOCKWISE_VIEW" ), 0, this, false, "Viewers:Rotate clockwise"); + tr( "MNU_CLOCKWISE_VIEW" ), 0, this, false, "/#Viewers/View/Rotate clockwise"); anAction->setStatusTip(tr("DSC_CLOCKWISE_VIEW")); connect(anAction, SIGNAL(triggered()), this, SLOT(onClockWiseView())); this->addAction(anAction); mgr->registerAction( anAction, ClockWiseId ); // Reset - anAction = new QtxAction(tr("MNU_RESET_VIEW"), + anAction = new QtxAction(tr("MNU_RESET_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_RESET" ) ), - tr( "MNU_RESET_VIEW" ), 0, this, false, "Viewers:Reset view"); + tr( "MNU_RESET_VIEW" ), 0, this, false, "/#Viewers/View/Reset"); anAction->setStatusTip(tr("DSC_RESET_VIEW")); connect(anAction, SIGNAL(triggered()), this, SLOT(onResetView())); this->addAction(anAction); mgr->registerAction( anAction, ResetId ); // onViewTrihedron: Shows - Hides Trihedron - anAction = new QtxAction(tr("MNU_SHOW_TRIHEDRON"), + anAction = new QtxAction(tr("MNU_SHOW_TRIHEDRON"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_VTKVIEWER_VIEW_TRIHEDRON" ) ), tr( "MNU_SHOW_TRIHEDRON" ), 0, this); anAction->setCheckable( true ); anAction->setChecked( true ); - + anAction->setStatusTip(tr("DSC_SHOW_TRIHEDRON")); connect(anAction, SIGNAL(toggled(bool)), this, SLOT(onViewTrihedron(bool))); mgr->registerAction( anAction, ViewTrihedronId ); // onNonIsometric: Manage non-isometric params - anAction = new QtxAction(tr("MNU_SVTK_SCALING"), + anAction = new QtxAction(tr("MNU_SVTK_SCALING"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_SCALING" ) ), tr( "MNU_SVTK_SCALING" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_SCALING")); @@ -2357,7 +2357,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, NonIsometric ); // onGraduatedAxes: Manage graduated axes params - anAction = new QtxAction(tr("MNU_SVTK_GRADUATED_AXES"), + anAction = new QtxAction(tr("MNU_SVTK_GRADUATED_AXES"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_GRADUATED_AXES" ) ), tr( "MNU_SVTK_GRADUATED_AXES" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_GRADUATED_AXES")); @@ -2366,7 +2366,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, GraduatedAxes ); // onGraduatedAxes: Manage graduated axes params - anAction = new QtxAction(tr("MNU_SVTK_UPDATE_RATE"), + anAction = new QtxAction(tr("MNU_SVTK_UPDATE_RATE"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_UPDATE_RATE" ) ), tr( "MNU_SVTK_UPDATE_RATE" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_UPDATE_RATE")); @@ -2375,14 +2375,14 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, UpdateRate ); // Set perspective mode group - anAction = new QtxAction(tr("MNU_SVTK_PARALLEL_MODE"), + anAction = new QtxAction(tr("MNU_SVTK_PARALLEL_MODE"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_VIEW_PARALLEL" ) ), tr( "MNU_SVTK_PARALLEL_MODE" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_PARALLEL_MODE")); anAction->setCheckable(true); mgr->registerAction( anAction, ParallelModeId ); - anAction = new QtxAction(tr("MNU_SVTK_PERSPECTIVE_MODE"), + anAction = new QtxAction(tr("MNU_SVTK_PERSPECTIVE_MODE"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_VIEW_PERSPECTIVE" ) ), tr( "MNU_SVTK_PERSPECTIVE_MODE" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_PERSPECTIVE_MODE")); @@ -2403,7 +2403,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) connect(aPerspectiveGroup, SIGNAL(triggered(QAction*)), this, SLOT(onProjectionMode(QAction*))); // View Parameters - anAction = new QtxAction(tr("MNU_VIEWPARAMETERS_VIEW"), + anAction = new QtxAction(tr("MNU_VIEWPARAMETERS_VIEW"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_VIEW_PARAMETERS" ) ), tr( "MNU_VIEWPARAMETERS_VIEW" ), 0, this); anAction->setStatusTip(tr("DSC_VIEWPARAMETERS_VIEW")); @@ -2411,11 +2411,11 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) connect(anAction, SIGNAL(toggled(bool)), this, SLOT(onViewParameters(bool))); mgr->registerAction( anAction, ViewParametersId ); - // Synchronize View + // Synchronize View mgr->registerAction( synchronizeAction(), SynchronizeId ); // Switch between interaction styles - anAction = new QtxAction(tr("MNU_SVTK_STYLE_SWITCH"), + anAction = new QtxAction(tr("MNU_SVTK_STYLE_SWITCH"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_STYLE_SWITCH" ) ), tr( "MNU_SVTK_STYLE_SWITCH" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_STYLE_SWITCH")); @@ -2424,7 +2424,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, SwitchInteractionStyleId ); // Switch between zooming styles - anAction = new QtxAction(tr("MNU_SVTK_ZOOMING_STYLE_SWITCH"), + anAction = new QtxAction(tr("MNU_SVTK_ZOOMING_STYLE_SWITCH"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_ZOOMING_STYLE_SWITCH" ) ), tr( "MNU_SVTK_ZOOMING_STYLE_SWITCH" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_ZOOMING_STYLE_SWITCH")); @@ -2436,7 +2436,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) QSignalMapper* aSignalMapper = new QSignalMapper( this ); connect(aSignalMapper, SIGNAL(mapped(int)), this, SLOT(onSwitchPreSelectionMode(int))); - anAction = new QtxAction(tr("MNU_SVTK_PRESELECTION_STANDARD"), + anAction = new QtxAction(tr("MNU_SVTK_PRESELECTION_STANDARD"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_PRESELECTION_STANDARD" ) ), tr( "MNU_SVTK_PRESELECTION_STANDARD" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_PRESELECTION_STANDARD")); @@ -2444,8 +2444,8 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) connect(anAction, SIGNAL(triggered()), aSignalMapper, SLOT(map())); aSignalMapper->setMapping( anAction, Standard_Preselection ); mgr->registerAction( anAction, StandardPreselectionId ); - - anAction = new QtxAction(tr("MNU_SVTK_PRESELECTION_DYNAMIC"), + + anAction = new QtxAction(tr("MNU_SVTK_PRESELECTION_DYNAMIC"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_PRESELECTION_DYNAMIC" ) ), tr( "MNU_SVTK_PRESELECTION_DYNAMIC" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_PRESELECTION_DYNAMIC")); @@ -2454,7 +2454,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) aSignalMapper->setMapping( anAction, Dynamic_Preselection ); mgr->registerAction( anAction, DynamicPreselectionId ); - anAction = new QtxAction(tr("MNU_SVTK_PRESELECTION_DISABLED"), + anAction = new QtxAction(tr("MNU_SVTK_PRESELECTION_DISABLED"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_PRESELECTION_DISABLED" ) ), tr( "MNU_SVTK_PRESELECTION_DISABLED" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_PRESELECTION_DISABLED")); @@ -2470,7 +2470,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( aPreselectionAction, PreselectionId ); // Selection - anAction = new QtxAction(tr("MNU_SVTK_ENABLE_SELECTION"), + anAction = new QtxAction(tr("MNU_SVTK_ENABLE_SELECTION"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_SELECTION" ) ), tr( "MNU_SVTK_ENABLE_SELECTION" ), 0, this); anAction->setStatusTip(tr("DSC_SVTK_ENABLE_SELECTION")); @@ -2479,7 +2479,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( anAction, EnableSelectionId ); // Start recording - myStartAction = new QtxAction(tr("MNU_SVTK_RECORDING_START"), + myStartAction = new QtxAction(tr("MNU_SVTK_RECORDING_START"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_RECORDING_START" ) ), tr( "MNU_SVTK_RECORDING_START" ), 0, this); myStartAction->setStatusTip(tr("DSC_SVTK_RECORDING_START")); @@ -2487,7 +2487,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( myStartAction, StartRecordingId ); // Play recording - myPlayAction = new QtxAction(tr("MNU_SVTK_RECORDING_PLAY"), + myPlayAction = new QtxAction(tr("MNU_SVTK_RECORDING_PLAY"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_RECORDING_PLAY" ) ), tr( "MNU_SVTK_RECORDING_PLAY" ), 0, this); myPlayAction->setStatusTip(tr("DSC_SVTK_RECORDING_PLAY")); @@ -2496,7 +2496,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( myPlayAction, PlayRecordingId ); // Pause recording - myPauseAction = new QtxAction(tr("MNU_SVTK_RECORDING_PAUSE"), + myPauseAction = new QtxAction(tr("MNU_SVTK_RECORDING_PAUSE"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_RECORDING_PAUSE" ) ), tr( "MNU_SVTK_RECORDING_PAUSE" ), 0, this); myPauseAction->setStatusTip(tr("DSC_SVTK_RECORDING_PAUSE")); @@ -2505,7 +2505,7 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) mgr->registerAction( myPauseAction, PauseRecordingId ); // Stop recording - myStopAction = new QtxAction(tr("MNU_SVTK_RECORDING_STOP"), + myStopAction = new QtxAction(tr("MNU_SVTK_RECORDING_STOP"), theResourceMgr->loadPixmap( "VTKViewer", tr( "ICON_SVTK_RECORDING_STOP" ) ), tr( "MNU_SVTK_RECORDING_STOP" ), 0, this); myStopAction->setStatusTip(tr("DSC_SVTK_RECORDING_STOP")); @@ -2520,13 +2520,13 @@ void SVTK_ViewWindow::createActions(SUIT_ResourceMgr* theResourceMgr) void SVTK_ViewWindow::createToolBar() { QtxActionToolMgr* mgr = toolMgr(); - + mgr->append( DumpId, myToolBar ); mgr->append( SwitchInteractionStyleId, myToolBar ); mgr->append( SwitchZoomingStyleId, myToolBar ); mgr->append( mgr->separator(), myToolBar ); - + mgr->append( PreselectionId, myToolBar ); mgr->append( EnableSelectionId, myToolBar ); @@ -2733,7 +2733,7 @@ void SVTK_ViewWindow::onViewParameters(bool theIsActivate) /*! Custom show event handler */ -void SVTK_ViewWindow::showEvent( QShowEvent * theEvent ) +void SVTK_ViewWindow::showEvent( QShowEvent * theEvent ) { emit Show( theEvent ); } @@ -2741,7 +2741,7 @@ void SVTK_ViewWindow::showEvent( QShowEvent * theEvent ) /*! Custom hide event handler */ -void SVTK_ViewWindow::hideEvent( QHideEvent * theEvent ) +void SVTK_ViewWindow::hideEvent( QHideEvent * theEvent ) { emit Hide( theEvent ); } @@ -2778,7 +2778,7 @@ SUIT_CameraProperties SVTK_ViewWindow::cameraProperties() vtkCamera* aCamera = getRenderer()->GetActiveCamera(); if ( !aCamera ) return aProps; - + aProps.setDimension( SUIT_CameraProperties::Dim3D ); if ( toolMgr()->action( ParallelModeId ) ) { if ( toolMgr()->action( ParallelModeId )->isChecked() ) @@ -2796,7 +2796,7 @@ SUIT_CameraProperties SVTK_ViewWindow::cameraProperties() aCamera->GetFocalPoint( aFocalPoint ); aCamera->GetPosition( aPosition ); aCamera->GetViewUp( aViewUp ); - + aProps.setFocalPoint( aFocalPoint[0], aFocalPoint[1], aFocalPoint[2] ); aProps.setPosition( aPosition[0], aPosition[1], aPosition[2] ); aProps.setViewUp( aViewUp[0], aViewUp[1], aViewUp[2] ); @@ -2809,7 +2809,7 @@ SUIT_CameraProperties SVTK_ViewWindow::cameraProperties() GetRenderer()->GetScale( anAxialScale ); aProps.setAxialScale( anAxialScale[0], anAxialScale[1], anAxialScale[2] ); - + return aProps; } @@ -2831,7 +2831,7 @@ void SVTK_ViewWindow::synchronize( SUIT_ViewWindow* theView ) // get camera vtkCamera* aCamera = getRenderer()->GetActiveCamera(); - + double aFocalPoint[3]; double aPosition[3]; double aViewUp[3]; @@ -2842,7 +2842,7 @@ void SVTK_ViewWindow::synchronize( SUIT_ViewWindow* theView ) aProps.getPosition( aPosition[0], aPosition[1], aPosition[2] ); aProps.getFocalPoint( aFocalPoint[0], aFocalPoint[1], aFocalPoint[2] ); aProps.getAxialScale( anAxialScale[0], anAxialScale[1], anAxialScale[2] ); - + // restore properties to the camera aCamera->SetViewUp( aViewUp ); aCamera->SetPosition( aPosition ); diff --git a/src/SalomeApp/SalomeApp_Application.cxx b/src/SalomeApp/SalomeApp_Application.cxx index 640bf3833..6dc0e9eb5 100644 --- a/src/SalomeApp/SalomeApp_Application.cxx +++ b/src/SalomeApp/SalomeApp_Application.cxx @@ -342,12 +342,12 @@ void SalomeApp_Application::createActions() //! Dump study createAction( DumpStudyId, tr( "TOT_DESK_FILE_DUMP_STUDY" ), QIcon(), tr( "MEN_DESK_FILE_DUMP_STUDY" ), tr( "PRP_DESK_FILE_DUMP_STUDY" ), - Qt::CTRL+Qt::Key_D, desk, false, this, SLOT( onDumpStudy() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onDumpStudy() ), "/PRP_DESK_FILE_DUMP_STUDY" ); //! Load script createAction( LoadScriptId, tr( "TOT_DESK_FILE_LOAD_SCRIPT" ), QIcon(), tr( "MEN_DESK_FILE_LOAD_SCRIPT" ), tr( "PRP_DESK_FILE_LOAD_SCRIPT" ), - Qt::CTRL+Qt::Key_T, desk, false, this, SLOT( onLoadScript() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onLoadScript() ), "/PRP_DESK_FILE_LOAD_SCRIPT" ); //! Properties createAction( PropertiesId, tr( "TOT_DESK_PROPERTIES" ), QIcon(), @@ -357,7 +357,7 @@ void SalomeApp_Application::createActions() //! Catalog Generator createAction( CatalogGenId, tr( "TOT_DESK_CATALOG_GENERATOR" ), QIcon(), tr( "MEN_DESK_CATALOG_GENERATOR" ), tr( "PRP_DESK_CATALOG_GENERATOR" ), - Qt::ALT+Qt::SHIFT+Qt::Key_G, desk, false, this, SLOT( onCatalogGen() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onCatalogGen() ), "/PRP_DESK_CATALOG_GENERATOR" ); //! Registry Display createAction( RegDisplayId, tr( "TOT_DESK_REGISTRY_DISPLAY" ), QIcon(), @@ -366,13 +366,13 @@ void SalomeApp_Application::createActions() createAction( ConnectId, tr( "TOT_DESK_CONNECT_STUDY" ), QIcon(), tr( "MEN_DESK_CONNECT" ), tr( "PRP_DESK_CONNECT" ), - Qt::CTRL+Qt::Key_L, desk, false, this, SLOT( onLoadDoc() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onLoadDoc() ), "/PRP_DESK_CONNECT" ); //no need at this action for mono-study application because study is always exists action( ConnectId )->setVisible( false ); createAction( DisconnectId, tr( "TOT_DESK_DISCONNECT_STUDY" ), QIcon(), tr( "MEN_DESK_DISCONNECT" ), tr( "PRP_DESK_DISCONNECT" ), - Qt::CTRL+Qt::Key_U, desk, false, this, SLOT( onUnloadDoc() ) ); + QKeySequence::UnknownKey, desk, false, this, SLOT( onUnloadDoc() ), "/PRP_DESK_DISCONNECT" ); //no need at this action for mono-study application because study is always exists action( DisconnectId )->setVisible( false ); @@ -2155,7 +2155,7 @@ void SalomeApp_Application::ensureShaperIsActivated() study->dataModels( models ); for( int i = 0; i < models.count() && !shaperIsActive; i++ ) shaperIsActive = models[i]->module()->moduleName() == "Shaper"; - + if (shaper && !shaperIsActive) onDesktopMessage("register_module_in_study/Shaper"); } diff --git a/tools/DevTools/ShortcutMgr/ShortcutMgr. Resource generator.xlsx b/tools/DevTools/ShortcutMgr/ShortcutMgr. Resource generator.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bfc86f94a8274bccf4d771067fabf5554ef6eb85 GIT binary patch literal 901981 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 z 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
  • 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 z zdpS!an{S|8U_SuaX2|lDa_iAENdKrZWiuP4=Zx-uPZ7j)T2p#YoQwqhppGtxty>$geVd$wM?gvVxByOVDj4pq~?d*I&b zii3A|-K69E&JI;9a$^Ft(!eUzZZdphL-=H+bHIy2GLspd8DMb&T+!Sc5f1!2fg+O8 za++zMuNYlVGgl|O($1q^WEDc=vs!zKkCdBK$$Z9>YmsSoTFAG!n3C764}u=YJRx0n{sexK z`A6ATNw0|hAr>}4H~Pr@QOLZ6M#`12NwuR6 z$%)|m4fh|vN&g@$6Lg>aQ&t@*TC~_!FVadtViT7iJ+9T>=Tq@Bj%dynzGcfJ+GM#P z{wlKfeGz6o<>JT+W;`ZuE9^;O<-`3g?)yLLWbX?;s$)$0Q_x;+`YE6p)37JGf4Vqe zp`YbD-}q?%iu8M{ck5Sod`%?o>9EpKrrZ%|o8L9y2hCh;=tx6w$dQv;xsyU}3ik8& zQmRHKT%rn#WJbZs z3)?%=?F-Roa&OH|C&^kGA-|3aAEMZ#2Cl+zbMWJ=u$Ex&h}jxhmd|YGP=j}mXyYGn z6+k}UpXf`|6I~S6 z0)Yx)=Ow@2TJL*wsGAO6d9P~GXTtL59nZ#F>R#=(2vg5&lMDBS+sC-TcvoI1f?s2? z7essc2oEb(w!`>cMK*TWdVG!>xn8DBw25P3z9Vy6bRXdtZYN8%N!;I<{Z7!D%UEK=m(8kxj zaF=3PbeE6td1XGU?>sF#pOVtr=K|bb&3HsUH#oU>^cC*nE{|UD5zbNOOFJ0i{3ACR zWkD(uqVExW!HeJ0=98yTaz@cEcCVvI0{+ydKsGdiNV^X2-JEOA_-$6NtS*0Ah+lTZ z?^EVBrAZD}r%c}ZU{JRD?jl?I0i9b+va;wxe6X~D4!OZi-aaD_^QX)w_(sbH{IE6` zW6P{f&AsQxLRdZn;!A~J4EU}(y}dQFF`42eSB{q6VLeDtz%ENe<$RMmJCx*9KYNL> zPh>|KyU2tlh|=T)JZ?&5;--HM|s#+v_I-mnLLvIX` zZpX9s8coEr(Z$0Q>Ah{C>eW<2u8T~HO?uYt{ne5KE`@O&a<4^Q&*+CWZYPGzgbZ|m zk6AE%jN0rJK15NG396cAk9Ze;Vw0h57S(0v&w9!)*wtv+YAkxh4&<;!`+6mYH&dwC zRvQSPr)}xO-+Yv^E#>JkV6>uXW_ILjU_HDgRQUKy5wYjS04CKN-!on%=foZ$q+7<6CZsBMzk&Vx#Io&gI4dWOqj%X z$3O4HgVvA*`S0!?+}G}2pDmkch?MI6;5bv~70E30H94HuO#{{9#Ug&xQ8d6Ok?OV^ zO~NUi5Z1uCTz!HKd8N-wMVEwXE2%CJD`opg8q-`IE_jw87k*7?i2NXSS0|>Imfx8j z=H(V_he}H8XN+ahjCye?&TlF_PHkS~&1EE;ku&?(ei;X_i#zJv9mDM1mpoOx3tO$O zCo@#Xnsq&VUV}|_yFr`e=ti}eS;Iw6Bd5P!6)ux#7w~UEdaCrJblO^EW0{C%lPlf| zafSK)>yJI|4|b5HZOnG_Vxw(Oqz#9kD_J4><*Z!bI37psB zg%_Iy+1_l@OE;wPpp(39ryCsizDrtaN1ZPx@#lW+1>u&&NwS}>el4kF7E1@cROAs* z+q4gmoFU{KA1D@v568jsjKzkxr%db+J>Z+4vd0RGf4C?4M z{V3O#>%ze)W&JZ#v{o@tVL9gC^2`c$MSCWe!j4+vceUOL7YB%2Xf*hmGk+F&RuwEJV!~(1N3jMixs#O8=N*J|lf9b{ zxq8qnHq1F9qRf|%#eNV{HsiQw#46et)*9(W5wXdcbduesV{6Uh|#a+HLmNj4(F0*=fc40pJr$L@dJJC5GNu zCs32E*RrS zz5K=|F~A7p{?40_ASm8!V)yXF`fStG^p%cR?A?zWMY&83V3b0*1Qzkp0tD&4f55M` z>YE{gBk{lq+QV86aoo9EVlsn#!MKiw!k)#8kkuwGmpn5!HVH|BqjHnrD4F@te###K z&L+&g-W4jp^8J^W-LJ@U64hx5uK?eH$m@OnmpAM(3My*Cfku@tu zH>mcXM+eV~k2>Ff+zcnMN>e4)?)uP>*;EN+C*KE67J+0mEi7B>;%hH^KH6BvOu7QP z*m_l==@zDVF%vs}O3#FglL)>kE`WbATgqu+IYA@NwJ|@5^zS_yP~Ltg8|PPB7;zRv zD{yo{C536T%={5XT(zKSgQeRyf>kgJFS!2^+VrzxF>Z_rEnd5m-O7ZH=nJB$(*JUW zFORfMbI>u<`cm+`gk{LhH*%kxGx{}sts(H=w;F=gG{S<#QnVPjob}r{?{Ich8Z_7V z*T3rsOb(a(st3ZX9EXp9i}s^V^!@oI>U!~7JH(~r!F2amVAd>*~l#8H#)^5 z^UPTR7R;-C$xZx?qNCCR)(*A8D*37OT9v|8BN%Uqi>w0-jFYO_3z~=Vc*o4-ywCy( z-8G&Mcf&HuA+}x}{mgT}2G{RJXgntIbCfEkm5UtvcS=T(N17J4ZQW-Hnt4}XlC)e z){|qr{fB;R&N`+bK3$hAwt;F1vK26K67TOb!?!|cbr+lV93bx8bE=K3S605CNnDo* zrbrb{Di+vJx88N9F{hxP$`k9n)OwlYUW-?ZDh$@gdHQOp%70N3lV<0NjEBOS7i}aT z&-&7a?5F;$@;ChjXMajVQAC39bUZ|1&@N&2&VP+Fi)|a9Nw=&OxMbvt+>OORFCjm1 z7rT|Gq`H~jgc{!TvU?#zML*RJ=V`q%6yDUEZvEl5Vc`1=%Ta!>@F~@*MfQYq)QzF3 zz^)Jd)dx21Sc&&WomZX1(3QSaF^{8Xkvjy_$&DYAWwp;VHE7T(xp%HQzBp$e0nPMf zBvU`#76*G|#uM)1EmLk_T@Zr0!@P{?2$u`jly?@$k`n+uvV7urc_gZDD_wwEA~=0~cKLzQ z(8(^T05#4q=5KUWH;2T+$z$)Z&yhNE8ykf$u&erzX$*=k-uz_chv~D>a;6M&i@v6& zte6Q!6I^p8o_2#}X;oEv)+6F2#hHNe;O5>PfzHDE#0LSh-9Ayc*ZG{Xil@+DJ|rpI8p&_S<7u@nc-Y;~DB)c8 zl3YQ^;lmBb&TU4?!-}FW6h#l-72#9RBP)#FB}d;iQTW2^(-AAZ8Z+K|N-w6S$=+RW zPA(6<_z{(;*63?)r3u*G7Wv1!6nl%ADLGGa0;5v6*U3`aT@5zyHu|+}=M`AUDx!C_ z#e;$@zWrbo>SChYc;7D%mZU?zcpsygDb11i5m(Byea#VGe!kNy;wE>1(vW9GcB_yH z&ES=9B+35pG6c_+oftpq*)kpGRU(Cj()wsChRrB*G{;VZ@)=40JWaIkVlh0R^O_&^ zj&$j)5iOyml}qEe6(Z!M^c47}gGBal+v^^?M#l(f@P4zHgceQqP6{m}6^wNuD4Z-? zHUHis$&FRacE@`9pI@sWkUY(~J+Dq9FEry&bsNJL7aZEjImB}8=+}BE29(#yr4vAFTkDmIQi1rp$MzMfPE=_tFt|EINu38|Z_B#kfG-y`W8C`5ih;+il zUSgx&aCC$cfzc_cTvIoXJ+J=u9wF4}K&hU@D47v;Wl^*oAQg<Qi)QT+^Ij+_S?+s!+=IhQ%g=6hAp$hNu63wHciQYz@lj%9M>E&}DB&k1xoGzV* z#N<(=?o|2TD1W&ivcOfxx%@>`?xhi2eOq>!Kv{a__D5y&=*E;Qy&St~a_C(0=-j5< z9*pj}6*S(rjxoq2y1U@W*};z#M0m!`ofi^F!T0K?+{Xlu#k2h}Z`IFa=t!`C!Xj>s zeuj3aV)($WhgImjG>_)^z4Ise8~Rhf3=L0kRJ0sWY`(OGML5vmvYT%*_SSSa0rHK~O~FG`C2dF*)ak(7Ncs8i?C|x?`2J zqg&W{kZvADA#{;Yr0@96}bIvkxP#J zo3U}w!_Rjfe4|x-aqKQz1_p3O+l@CViEZ{gE}^YJxlmr}BpLNeP-R^34-1L7X%*8U zC-8ll&XyO)dPhsBhpE|GLC3M5>l(p-JS%|IM4Q5R=X~d-9@VCq!@1Uk$cZMeS6I#i zf?em;%XGF#V{OgGXx2DxXF4+$j~M@%eiPp4U*ri!#K-{ zT*Zes@h!f4y;OCsrwS9!#tl5~aX)=4r3oiHYPscSF`Htd8z?RLO zT1lnxQSLdzjL(P>CPsiLw=T!`^46eO+`Id;WS8ijKobY!fBIwrKG{&jDU(N`S(i(2 z8||wqh+=E5)&5c$YzSDsNsp+G^CUW|_T@yEk-%UMr%E<19N zkn3kFooCRRI4OgLe*7B?AK=$x2TMlzbr7f8tN@q}Qz;+i(Et2#@Cu-rmiYGD=A|(= z-D788=H=>DI-CZY+SpJp5bV^WZ8yi=wQAp-iDcskmGr7;wQWaE9hHldwlBLd{15qf zLq;WlD;+oFRFE~J*J1%pZDV)*{i}27^U3rh-=JH0^p51HnCO$()1;qLZdx?1RSdK( zxAz3jcgWSM9$Gn}Hxq!o!Y(`PT${E(+b%IQoA+c-Hg)yxoccI;+1tGJ-N zL!o&Es*6!l*oaqJZ=5;2AoPU}Fw`rR`d>bqPdKJd%?pvo#^@@mD{L&XA*?!H*!@*! zlY=Q2y9XH(sF)s0>~W5VWt_p@&os2d^!fQlSb^;(;c_7+q?}Z`Oq)y8y5hAei0fqO z<3*8a(0RbytV0AlvLq+HF)e3liM+cPQSWFfUf%VB~lT|+Hcj*9J&y1cK{vfp@r%vJZ%CM_0cZLWyuIb@f$`I zbK}H^=Ee?cr8;CXHn0l3W9U~0ft+o(2pZ1-TZe?C*xx5+H*Cm0%QM-8q5@W!7Y}Hee#h`{G>; z4^14A?^E5@uM;D5Rs;xQdD^ zT%uKNx8a8Hh#>-dKLmB(HXH=`sAuiX)|igEou?=a4U>j~^G!uUrY#osL7_6novXtv zM#Bbne!(#mwgrGCV@2NKW|o46w2|whbk@{xX?pKg+~tju2ff}G01NRymm_7^`j=*` zYCx=PFzSHV-ruA~Z&c#z)k!izkd4<*;4@Qnyl)Y6sMFr(9Agy!`3bYeC8`mDPC+qZ z+rr;Z<+SFb8zG#q{@b6@xKVi%O>Vj|9&+RlZh~lGHw@63EWE@%lWOkaa;gT&oI*WWYi{Ad?LBVcUASQJ zL1cpj4;ci9Oo$dwznA{?VsQGZm)|cY_CKMJt2P&RP(K7Wqrg|<#{efG+FJ7$d3A)& zPo}*~?Y@9+mVL*zb{);uh(Y@A9C*A&T(WR<@J_7yVD zNCD3przKR+Ph^DBN4yLqi37V(LaV+@C%gaIIcIjiw4x8g-l^fhc<_ey4k|UA)vSa& zgJQo_OIA@NZoZR)PVi|5jW4>78Q}UfU!4K$H*u>@v;;~}( zol$Lku@+zrEoJz-}C;xKgrOPUvGc4i(<*WF&;>34fzrjE?mhkv)|B z+VhVAlUdH!xFSSBPI86CnF1kQw_tRB@#cDWP*_|$pj%Ynr?@c2b%JGF))c@?u#>Pb z>>6%?lKB>rn5gicb)INzRz5bBT>Bj}N~@3rCm^H%C&OTMzZ2c_ZY6INC9sVLvgH(+JVli?T#LKCm(-?MWhxy6H!=Y8*gT z8LO+pP#m1)imYff2$*c~FYdyy1He+~aNMSr!}V(m+;#cdE6t!aV*jevQe>dIr75bMUu$o+L#}O4D+Q<|M57N4h?^tTZGM%z6h#=t0tP!o;2qDK5 zs+FjIa>k&Pq}!5^`r-VFF6B0g9qz53dKW%dNx6~mc#|itYcl{Ex-c8<8p_mN#n_$8 z4oqSKGTTL83IS$FgwvS^09W;xiYI`{b~5>Xop3!PQ9FXE9g(s6`zHG{3YZoC4mX6; zl5gB;n27jewn3Y-ZzN0DgoC4lc!d&!rSti2@f(H~Ii_(4iB&9e6+3vhQP`N?o=6^W zf#aRf`6bSy{x^%v!ywgS6Y8kLU%Q69oKSLSf>X`;Z<}XAxa%B9DAXA+?{Z*IQ+Ns+ zUM$K^NV4NjNE&BIgkpXVu3PBPZ;q>yn3;4&OJApWGD6+-?w<@guSKaIt`z5Y*`SuW z6vrIHdG;DmXK;rD{ikT9F(8dD*bOsB5eZZ?=l`#vvkh~0mxaJrU7|`bls}1-fUrZm ziKr16ampdVU12%-=|kBY89jTZILUMssH&8rBo`;w6?~-tv3rz%8&Z-(X|VEC3q-_f z=3!@5+DSk#$q&ez*C++2V8bGn!gq52NTCa%gtko(7LBza7i@?%e14Ke{x|=A$meVn zMc~wb1j?RT2aJm(5_km3d}!I1CV5ZxUQ1O&tGiPn;cq7};hI|P9qGWWEn&lFmjl_= z{xaub#sa2DcaUc9!QRuZ_o;8R4Dru1r(1d^yjp#^)Gpg4F(hh|pi8EJZs6L$o4kN& zbzHFf?SuDF(HCbFa<{ZW78{8stwFa3zxTM#i7qsG5b-Zbd7d7(eGyI8-CLY#Ag)&r z6FO}CEf*yX99CTneT5$aH=o|HdDPS6AEd22|T(lp3Vz&ty&3jB= zR=(bYk$AR9xK`J@B;=0=d_ei%buYgIV;HlU@kAT>Qetq?vp-~lnvigAd11Yn4}3xQ z@9nxb>eDb*f-lHhU_~)fH;yk&IspPxaEF{Q;xOQPmS6M8_Z4K#%bpb`VAOs^g7re4}is7+|5+u*{_9?dW|q^4oxbfT|)+9an?dmiNp(e^k=A;p|<~UB)2QxmZAk z}&-@ia%=|$F;3QJ_eYP})qHemumBh{mO z1ReW+hR8S8GUzyv_L#yAhUV2y{-nPVzm(wdH)VH$K_`8#T#BH6+TBVS$z_D}G#_>t z2I6-fNrW_nh2wW;aXu?W*<_SC9*u!;{3K?(gB({qq4O?JCRwo{78sqP)MUS6ym(nwf*3HK4I zPWZT3Aj5~@qB?j=bD*BUuE!GJHQ6R8b|1w&ek?iKq=1WW=xpJ+ZN=%X3w3$~xG;HMwkzLA@;tZh`Ll5MoXF@9iDCRb|F3FqV z2FJ2uviqwmNph^BJ~K+QmqC-k0o*Nb0=lp0n4z*>E^BYZOO$CHV{uNezp!V;<)^mB zjeS5fC?LhM00#O;J&gk{(P0iHv&_$C5vObahWVxnV(K$8Adug|7bjpn;(7y~qY6l{ z^u;0ww4*yp88QBWVxwPIPIo9^)3fXuGbU``*fKu>b+e8{5U2vwT_ZLUQM8!4QHUyy@xSKb0#Tz*^g2HY{)oomh$z2PH@QF*1${>dD9Ds};byYP|NJqxEZ`U8{ zyrB*l&;Fc56X6Zo7QvB3H;%~!CbIFs*NrY-1<4g#JeppIrW}iURmX_Rz0Uhom+QHC zg8JF`d5=U|pwedPIve3S>LlSznA}eVh|^wg2Hp|x(9vgU;OX5)mExOq9-vXgtC8)T zRg&BU{Cv>XO_oPb$VC-W$&A2vFhz-{ZVwADaew)XYF7 zf0+Sj4oxv(3K%jd_BQ@BmPDO=S1DBR4tkuRaR5MYjW}*4XpTD> zs!E`YqzA&7A=M(Z(F3xYJx*a>JdX1naBj9;VpT-Oxb4~~A+jd4zmp>JZnTuLdzeu& z25D73E)iBM$q{gAKvsDt}v9tp$zm^@o}l- z_Q-&o{ z8Rs68dRI%@2B~edDPz9%Z}cw^+=BIs`0t#SVZf zDv@trDaDB`;aYe**Bzp$WdxMO_f1NB2+;zT7kHxCE+*se3*dq%DR^B!chLjNv{Rw9 z_X@z;-)e(3U1LgYjpGcez6O#KFmXk){p_<8poj^&!+XYl=v1Ivq2*I25Q-z>w2?N~ zR9p04fQ%5NLU=A!O8Q6i=hQu*vO5(=8b4=60O^R@3+K1yy>~7~1NZ6C8wkaLu+m0I z;&HaJHb7@~RRT$T3?%s4>ASC63k0L~=>&xUh5`!n3y>y}FrqH6M|Wc1_>hfp7w!LO zw0trWB6Ol{{GmUKch28o{h6yeNM`+y$cJI2{dPo)h-LyNSzGo-!)pU3ORjVG}lxw%sSr(bvL(( z)jRdu$bw0-e5YO||FCm2*bGi+LxZxRitKIC(@lnURJ65qcYnU51_lsLr#rNFIC=}46=@gAhR8(g6LVzNIrv$`)5fM^$e|PP7BH8IFog?$| z?-9dZ^Rr`GJq*1*6gl#~>V;id4yfl7t1a6a)0k!(D&*^D;g!tSUW?-y@Tx9Uh{F1I; z>NHoRqjd#k7Y}FDCPuUFMM_JLdEynaX712I87;>Y#u-&KU)-n2<=0t0lhUn}&)mf( z$hh+RWYYGRmPwE;2SgD3y`_M+NIStkt!=0VmvOT&e~kBShQ5?Wf)T8tb(oeU%l$SXX-)CdJ5;&JENn;T2t8qd{2BmySrN|OHC z&UuuD4AAZi8jDtFdo#S>c_Y;1aAs&{kho{Nr^U#(p3-Dk2Pj%e`zX#j;{Dc+tO*BA z%spIv8}p_L$Fa?L(1ZitB`6G1Y@X;i!`bI0ptikJ*+WfKme_G4JNEa}>%A^~`|e78 zq48`RG4F>cU1-&jUg}7Y-jg6-24fg!gwYk3G2eR32XW{wq<@&!{7JN5*2Um3cw!fmY1JDkr%2 zy)w5O^P2ac5g>~ogFL!UQ3JUdFcDl1Z@wfFUm?zscOK%NOTHt7CGX1wFT~x^A`lj@ zrxzyX^1M5=1A*K?q8yi-{s>ft50R5Ufx=CEVCuK}f!BY5fQPxh&k)rZJR>1qnX(yx z;sps)Odr;Hi1^UgOC#JbOow@+_L+Cw#6Qe}M!AbszH2uPgE-WYr*TdDnAq{dU%)O- z;wnhEu-I#=81Wfl+X`{hL(WOUgUA~FHtPA(m_~-W5?*3xQ)bq%j=Y8oEk(#I0>l*o{uMO^cP5x)u`vDk#>e9-2rX4#xebY~BSY z6~s4ibCxCCuOn^(#7!i%u)uQPp(SO%y&qtTq%Ml6i#zgH1ne9=XE5xloc{h2_?(3P z7ZCyZ>#=V@DZ+3(A(N34{DS6^0zO$?^i@4oACQ#G&M^R4fOIBcM6agoTtg^05>q+O zO$UlFzDNzDG(%rC9AR%q0324DWBYONCc-8$s(@Ocu7!kx%R22tf9ivO6tPOY6TOB5 zg7_YHE2kI2LoSz606Z#vi)R9&Y%EZi$;gpZ&{H2%2eleJpidw@8;(*VycOGh$H%HE ztIyD{4=*~}{pW6MYSYT9c%pfIkzBFSv$DBdsYd&1Ew}YD?gizE)NB-pOGf$kaF)HM4S#7AB$>RAT^5_uAqqLiaj!P^ zxF~Fvo0`_4%6fpFUDXcHxQzfMBTBwZMI_40H&toveup@z9K&|04UASxLKrArla09#;VLavXfdZ`e1L&Ny;X%qMICb)GpQ4SQfI>;tZN`N6UAq|gY*zbUc93Y)u%W;5>?eahQX}Q%0ie?x4 zAVq-U{O+PzLPE!UN`~7q3_vvnKp1PTQKP{w!&;ywCWYU?;Mkis1wQ-*B&~~}9$bWW z2>~7PDQRu9Bm1-lNYqX=^5nHMDS;Z$b^bO2?rLha1p`7Sb$@lJ!i7|{OXz0JlR{X zSvh}Woa@Yo=RK8-L5fpY1KFda@hl{fss_b2HC%j!-`ech?q>+^KP>(D>^Z2-@PrZ` zr3>KDbstlDwPWMr6i_XpMSg5k@Hm=`F$hKyvO1M|so{ zI{?LU!Z1G}l4IhAs(K~FDtl?{&L@fqALeC7pP_&`feUMhs z(X&c6f)+wwa(~E!7aCJYXi9P5J4!*4JBbfG7WRD@vT`Oc2#=M^k#+6*J1mj=K#<&sKUap;g4tiIH;ig!6jpo0DDG!<^Of zX<(judZR}7MNLkZ5jXhj3__;V_`Aj$uVN-z%_V<2 z*{Gt-l78>^`_Ir2y7oabk$`Crld^r`s4x4mK|LY`ffREXvBl0iDj+*$S``eA|(8CP4?pRS|+5} zt0w8d@?J$r%X=wvrsb~EdkB_@>4+l~TCXVJK|ga4TlYMFXcLXw=LwOCF;2cCsD&d9 z)%Q=33r~WVNek@y8u7Ij{o_}t-i1giLL*a|mbCb0r-t{u*}o!{x2y-@ygnmZUg#e8r( zX``J`CX@nn>z+o+%OI#HZOj$v|6{qUWeXUD9mT5 ziM@cav7C6OhP5g~xTd zf30-jP@VtF{L^7`b(v&QTGXXL$rQGuK?%w^0r`r{dnXaUn)1NdH^RW!QPgDSD!(%# z*_$c9`6Mgx-!d@44|-Ns=<_1CU7S)a#=RG~VMl{6=$j~i`6LTWpF00m)do{)Lp79& z#jesn3*46(=+MvlQTL4}KFNZ)Jph&`kxy%AwSb>SQOgF(z$Y{4tONWuMJXIFs(j6T zkhel}ziZnwAUZ>VEeU#!?~Meu60SbN^VF*S6V;r^U89XC17`eeWX+qqGO~li64*eZ zDk^i^JWY?Utrb*rIH#DiA`!Pp^Z+Z$qi~Hjs_p`&7Ru)J^EJ|wFxDla7$;ZrJ0!vN zBc7}{ytN4h%?I=9=CX#eIF)#g8LA6obdx-c*Y;(4+x4@`iMhN?CEAav?>fdbFeZps z+g?wNrzc)Ld-&OLjn~gA#{o;XP=m9W;6Dy6TR-}==25aAsw)}9hQsrJJc+8)ucX>F ze^;SDE8lx&dLNvk`4hzXiS74Eu&xHt#7Oq!h3m@AzZq*JdATOGKQ;9Kxn6;v2B>f_ z8d(GOD$fh?&Ge&g$$Eafeps$ex()wwj$l;X@b5C$NY4dDDCAnIg-Zq*JIdzIM5l9x zwyNMUTCDoL$aTkzhL|*hwJ$uM@~Tr?>eW2w#pW?Ds7^P6gOz-SSDrA2^HBtpT~1@OHn+xQI5+W`;zAf#jbv)6QoVWjo|~<% zYNWqhitY>NApzcORGWu}h==LFCa@_^LF2}VL-25 zZbpSTywgX&SaW~aUW&M$?M=5G-WW=b{ecMEHffKoL8F@QbIrdL`ndqr&y^J@+74Jc z857bK4q`LG^NSBK1hOR-Y}a8N+83Ww7g(LWPdZZ{D7hAXpnFF>@H^P)d0HW7G^J?mrK@J7tj>S&0_$ChQU0E6yPR+P=%mD!^J`N!#!yxIF8)u=#}M94VyIUzbR|BgFivN#dFR6qKKJd zZsb~QCJ*EFeLEJ6Q&qM{>sQpqbz$HorU&YbcGvG;aY~H*!La|Df@bwksE?>J8u=E$ z;^vhDZ0eUcXj}6|cFCajT4w~exBUo0ZDos`$IOskt>0_Q@@w`Qjc-bJdFpYn$N<;h z8Os~WB1>UB>>pkkNS)e4;eq6@@)%y^Z$ZA54~f4Ss?kYmj%Mbc)=N6gC%&f(E7Sol zK2fj*nWse@V2inKWHj4U4PxO*hB3N=3~wqPqoD*dHiaG4!Wrlb`BQyZuEm79J+!QD zNBN6#o#{@$0^c)$#2HlKBOT8*Gh`>E8i9Re>p+H6j?rldOl~{fB*ifpwUbpgmbe1M z=Sy%3aGMqV9$bHMO7A?nFQOM`2F7C01*;W`D$Zf{{9O{kfGm{PJ_v=s#W|&&^^1Cl zd}ipkRrK07CXV#9B?QoCMiQ!aszrYx))7R{ej3dQi+aO}RNb2AM_9zwzssu7$1*ix zKM^7ROyADSS&?P4W3IrnrM0!t699-S8=$!@t;d75ZSuKrh2C`{;#cC==)`gpECu_~ z$CXX(wRi@vpFQz^=wl`9&B;fZxdDJ?Y5ll?$9fY9%zO)G+!fatQRkB%ZcnN{VbY!T3k3qQgQX|S45;X zs^~}CwvIG*I&v6$?T`-*L5G|XB9EMWcAh}gB~LYyAf#N3Li=_qA;qyjw>e`wUJ&iy z#UgDS;`k1I!#L>wFP^?KAgb^Ao9>h)lm_WWDd`rL?k;JNknV1!y9FufSjnXXX^`%2 zSxQQzp1Xd3|K|-a?zv~q^n7Lxa5WeIx=IuHpNe$N$Wd(C^X1ls;E|R7e2+a<$lY&^ zio<;db$iOkn}fW-bH*SMq54U^nQzcsnQ=9R#{OqbAt<4A<^&^{oDACQ_k<-m*t*qm z>!=o*bASGNseIQ&Xr^u2Ha3uRQn?mq7p;JoJQKiPBA@u}eQGG|!&o*jj0~Df-QgfA zMf|j|I||VnKxJo_@0 zd}Y@$a=kFj?BA{7l0*FEH`K_{$ed7244R=+Y2ea>fQJrg1bBKYq&C`7Up7<3L$FvP z?RZer=9Q(!9OXMJRNqGU{;9iohr1i=<}M0Ix=@D#KJ`Ror8SHlgzwM0fdmJtSJ*dl zT?^#j=uyt+*9`iwqA~TC)h@u)z$RORxQ{V_IipQs9hB+y%sdFyu6NTM07jZN2)EeR z;L65o7c}lv^7pT7dv9N&U!yzTmbd*6lW{J~&@VWPZgVe|cHw2B3b_2Yb9+}}1}NSZ zYG=J2hZMsM%SwGT5}`zo$yRVU5S4OzYHX&IZ(!V25BEo@Di;YtDU61V@Qc1ypy*fB zqPk5T0wt5pp982`57rj3DRc|aBk|k0Nh3H?EQvJI{iuNU{GT^lR{fEfb*9@)czNj$ zAX9;0E?O`UdBu3@(7G{7s!_HmwME8fk8h=%OD=TtZ)+<76hNMg_qDKYjDd15jj7ym zB;@*(wjs*S)9_5qKT5|X_% zhH@ODbA-LcY-oO!sH7#89p6wI-(YCFcoEQQ8LL1HljyR<@+>jHtw2gfvq?tdnyhA- zlP90r=qN^@_LD8eT41}}wZx^G=y&xZdgz7ChoZK!l_-2E#D~d25J|u2TFGk0V4)e zaxZXQ1R)lr#;_GVZXg~b44*W3{6&aWD;sYa{moRE*x$j9)vg^ z#Lxlc$X1Q>YZ4kk@?aon#cCFTCI=a39w8nbr&J3MP2~kGdgl4HaKx!=@X#_6g_#K1 z0Z-5}q)y)jwI9nG`hYdBIc;Lp^X`X!=+jiu1)pw{g~E3zf_5TeCon)_D^p!8b^1fU zU3C_GTby23t){#1W3_{s*|G6Fm=Fq29WsfsdBjw4y_#TX{11`?~cB zk+WQDYy*rvjLH3Tue*u$DG%-mZ%8EG#1KeoCnEopLa{+6T-kX} z7mb_HhipxyQBiXWK6(*M9KE5&d1dIfWU-mJA^v5Y&0x~`mmbY4&3`4;r2BvSR0}Fo zn|k@J@oE05d&CS`O(5v3<^Ou=aY(&L-jCE*5IjL#O%^PIOn}z96a$567kJtOgPXT}SsmE4+^o^zP1VlIit9MPyz6@QvmT zOI*>c(yPR`KuO)LXHRnBm+4i0>{hB~j(FZXOW%ata3-I=-R@QJe3b1(73$}@G?5}D z3Cab;yZ-n{M#qRzi>Y-GF5UWCauhL)2319brOH;8nrBmje-m)#8AlPbh45EDLwLv= z3=bOMWK8@-keF*ivvV1H3($OK;moV=+d= zu+W9%=;>}H$nrA7h2#qR$dR?j1=Ge1`JKz|#lry+)oqFZKoF19&(h30tPu^KY(J=Vr7D3f9fO6vF89~~2p52cZKLgVH770Aqv09*TRR z{9EqssxniBps%_+L*lyJ6#%-g$&c>Q-@t0EJRK?NUl6>`+r4p5ES_~qlpfr`QNN5` z=yMC!=jxn#)T$j!32GZ$LPfMdv#|iO&#{Fg6xxF`E#r&U$A8clY9u) z|GD8P5tc(SP32Qed7r`l1A*TD%)8qRm|PgnY&fcg<%s0)PJ=uo%}QBTT8a4K$Q<=( z+nt{mb5vs%Lnx=rlLLUHs6A+ zI&$Gx-@S1&8_nOvrQhyjwOkp#{kc=8KcNFA6~~JTS2+q-?J{1KYNni779!X26MnBt zzS%I%J2TFoK3mPUNZ8fQ&VOOH%y~Bns`$~`D=N$r*tqe;;|*BZglGQVvwUsaD9O)r zocLr>;W!8NL>1`0U~CsESFtM}-B2ryf1xLx`Z0b1h~aS`)$8Kr^UAKx$^SJUI4Bu^ zSNpRuWk`UHk@^}2K;iC>HtUnVs)y*+ksQQ}0k0MVG7i4!!tz(^?)E5SZ(bimUX+Ud z^j{x9_9d-Q3qBwQALZayJEw@7YONjms3L#t=mf0GLhS796VSMM_5Sz%<#&}uaH&~v z(vcScxpo&8*KxT=u5xhaflW+mUSy`c5y&5(`&!(`+pLvQ|NXGtBtX`spK?!o*_q$5OWB0X41y!N7&w58 zrs+MAu+~}2id(lQ5)n7^Q_S118c^GV&|;ul#IYC4rY83H>m0tO1UFeU)Lgd9>+XjK ziV6SBYkq0xg+RAY$2I_ZTsciS_R_jGi@ms}{(il@lfXIk9}rD3g#*z~rq73Q-FDwC z1m@gN%D#ZW=>6B?MZCQ3NNZTy)m33NjYj9`7ixcX0*?nXd%G3}{pdKzU znasLLu(*Q;?z#~br%xz;%~tH#O) zKxKBh=$*Xly-C;a$$0e<-N}yzkAk~uM|p#nDi0u%iz%vjY0eS~1b>_p=ae#^^S^1Q zYtJF>ABpmqw!(EgAulLdoesLDUwz-|^|%MekQ`NY@1xvMRyyKHuM8A38{|QXVj}#X z)SM_HBX@5WF@2;Lp8lp?JQ&~xxmnMA=zLNmkKD{9DWERtH@C$MDj+Um(mAKB5ir2% zTh|dum{Ur<6(OP%$vCAEY$ngZYG1Bq+Z|#9Cj+moZns!|Y^5E7mw$?9e=F3fk1+K_8Js4d{8jxZL@rd7D8jebP@6zCSag6Whk|l$Y~aO4FSe&(?V{ygFrGQ7d$_Mg-WatX8_cRNz90UjA*J=++q)poJVPfpmx#~)b%Y8jGc=Pe z?Y*}tCocE4J2Am2D(kj<8GE?-%18x#QF z&anLuc5tF1-5xtH<;#iVNj{;$$kKT3nf4C5f z%xNAfc*i|9R?KpFE&Ak?(4#VWjBxZ-aeB?$Z*1&4d@ir+^7%yCX^jCm=A<4trg8cp z`MboHbfs&}&t;+%FOduLV0~w2Zl8iYwG2i?KiQITQy6hY`qSS#?}NmpQPLmp6t%y> zMBTYQNfUu!D{YppkEF*5I^ckNs~O&lJvDL?@%mNyz3Xt8dF8u5KGX;&j~bVnFRP)L>^@_23pyZb1G>+4baIQJCeF)fyKzumzb7EA=svz2Xx z%J(-4-|i9}y<(hnxycd88dh!OCq%Cm-?yuNTm6S*lFtLQD|D531DSq^X48oZmx(st zi6)<9UZ)**$}R@z5aj-5v!Ld>9u$^8VL3TJ8IS>A~-S>#_& zfHqWIEeHHQinkHFRMge}MZA6NRk)H8H)HRT)IA*#^tKA9v~jLLr7h|zxP#rd3?MSr zY+;gON*HH`l3!&U%z?a$9~*nO`>?)A@8%nQ0VbWBo&_^))g1WLwkC=TQDpY3Hc=Cz zc-)7_LftK^Osgl}d*6-f*VcX>iwVEt%nCj3)cNj7z0*c!CWK57=L%q?%vGC`{t86K zRlyInSej*fSWwX+51^Ss*VEO`zP6_BLO!6{k5xKxtKn`{?Oojmt*ZFttO$g+C&%MIfrurF`LfpHm<^&^_Zn?8{r`(Ix`EEqJc>(~j*cRj{+OJg zPd_e*&O}-^OvhD+dq z35JcYogItOOg)qw#1+}n1^i)Y%Nb2Kyy01CQ;s)JA<4D<)-v$T1*tsX!Fh!^ZRL$o ztfs-Bph4T}z|Uj;TkjqWk+uUOUl)xd&gx~cda4z*BQaqLCmh0{?HXGJ4kh*Fzw3h^ zz>buhXRI8av13QI5<;5?J^68j8Bh;BDRdRv)e?_ombnme+f{U>R$IE$aY8xy>H@I) zvdmE??#C1QZkM2q5iCVhUFCTa3dc6;E0LOP5}6wwnl|M}f10ln?sUKCqffjgPE%E@ z+o|el+7b{a0R+PFCqBY&DKzZOO#mE$oUJyOE^xFUP6oVu<0Ls#HcMa@%uQOlL*b88 zHyqO*F&>~(o}>33#HeDq*7U*x_&`-JsLdHQQ+j4TgB*DwZLCy@kjl$|fK37TikxN( zDwEPlvDt^${rN5AnJYFn?V=2FO+ZFOW^xBS;{o`6v3)VLH_b!XYaA!kdUn#~n%YUft8p1o>@Ecp3tun> zCRtTw0tD>|z2h;&N|oj{xy)@N%hH!_@Imj0B6#*dd^+H*ZYjryWjA2_sJjAq0!f!NSm!Pv>g+- zW16*&>vg@m;sMUG@Szqro4|ARmv10s zY|c+PZV`7LNbs=Dw17Sgf6_!&vYsM*?qEjg7lG*o2vBz52~WC!gvv$VjVA3g*-+*v z@ehnGQS}5;$)Qlhxq#O(cnVn6k^b}mPXG#J#q`3ix+61NWemdmOEA39uL zljz;>bOT=flAG=wY8B9phN=AXjgp4u=5D}i<^ZoDQ$jxCKE|vPrsB@jXjPimP1}oY zRVoYd$i3!8?Y2{O#*bW`07A9e?Ek2lY&K;`B9@8XT$?RKutWi1Z*I9ZQE*eYJLT>! z1PH23WD)+_;Dg8yb{mU4Api@%3$jwC_!7BH=PaG}ZO*>R0 zSL#Xo13sEdtuf*)@lmlF-czRzy^%ftb)YOho2_`Jw=byh?#&*7JW+tHAk5wOW z+Xc2sMm_@f6vWLorZ~|~DWrR`3yrF89jGC=r8Lq(0J7b>hK*q50=8N6n7B)<7A#Uw z@$)_}wj@pbZ_FB?AL23$+RUFtNU^6dJKF;8%NuVq*-*K}Qo(K|LdI6HO3+4K#pi!_ zcZTvXwE)N@6&c8!p)|P`n3OB%5B%qI!S0RYgyioC!c9)-nHSe1vA&v6jkaf9#K3(N zY%w7@j0M$MJeAz9-)x^GChsn<-p$~+;9lTWltEYMl~Kzv)oqE#JX<{F841 zsIM?d64(&zPR%AW1F!`uQ1m)-q9)`?zzK#r3puKj94CLQsM0fE;iJ` z$bDhT+$JAWyfwdwYpov+xX>W=pepk4JN9M@&+tlvLsMhZwhK8)18ms=FP4vBw;%PWmw)hC%gq1umK% zZ1E9ziwf}5Xj6h>oc3dd6HIYd0Z5RaLk978`cRIG%#MyQ$p$o+hn^!?S%7COFSB9f zzimRYB87%3J;F1W7gZNr*r;at4Z1^5qn@|TK;`ti!&-G>7N{|cbZTaH%zJxi$A`ix zu^2!N3~^X;2jKA6+PSvgL$9alg%0=BF-bJg;;kYajWB2`F`7;v{~kImnym{>a`H;0 z@P#J{_x65x&AY%VJ@6zF;}*6*(gn5wb@)x=*&Z@WKjuzvfrry^l zXSA`BT8o>8YO59!9yuaGsW=%yQ@eld!Ub`Dwx3r1y~we=k}17nA9vyrY*!W=M?*O1 z1bUU7EPqr@Ae*9p>Y3p{dM>liB;F{14z;-Zs&rC6PM50SAc`-Lb1 zbuW>^1aH-9pa^oA#yHytzaPIktdmTF^{o=09ay}X_A3AiB+REna)u*Tl!=$c0QZi7 z?$`yNfiy(`OmH5q0CL6ut*D5znl8$j{!^NcGu z#3=&2uOJ6j*jn~V?(Co!^yXR<;EZ3o>)Co=(>zQF<=g-_5a9P8%MP(uTWl;US#nBP{!fTA0Ps>asgbyAM3K` zW?w^apmd8Yq(iH32tB~4>Rv47HGt5-!4|=Gz(^0Sj7!dj&~ozOPm-Pg)KsRlNa6m5 zrj*5p=m`#v;4xX`#1jnwDvB0ZU&|zDoEYJ-7vy`V>E0ZwFSlwz=8A4TjlBphxj?1gX1!%`lrrPq@=9bBGSBntcDa?M= zK;cQ1DfL7#Uom^N>*=cN>Gr1UabNri_&d<9gve@VhB0EdJEws$0GTHtZA3L-`*?!- z5h`;BZnS|Ywhm;P6)jcZ-0v|8J_b=oM$a4xj@l)M6b-zSlt4(*v@;ldWBVLe1AX zUf2UTTxT1hxS8n=z*tbzdRTjZ-6_A&__ixVqW+Z8B{X5lw+q-;;<2yG{{IglzEgqe zBDBTXO>Ey_-8nI5=y0bDWvB_C(3NBZWh6lUdi6uBlV88D-}g>K&%S>RO?1y-Cjd^A z?uL#1Mmi03Q1YTb65qwU^j8a(g5W5`a-A|wRLQTsSpe29D|sx#Xj(~|q6%mEvo0$z zAhXY9iwtOHE?;f3Ob=K8t}n9aB|o&5s(Iv8qj$Y(vEY?+?}M5G6GpoQD8a|w-tcp9 z?tqv;=Zp=w*}_8mxe5%hfr)4HX{93a=t?K>cD}4VFt@W@=dfHiE?P#kesv2R0;6av zqcN>CM@2s1^o{U3W`nhVHu^=}*gUT$jKXPv%SI;QWsU`XU;#4t9p!(T93WPL9rx$G zZ8!yD*sbKlJTTI`ioI=6kve`HdU{iD%V%UVZQs)A`TMNRDNDl&=oHaaW7#-G4Y>3j zH4vU9-QW*=Rz$r2?#evNn;Rrl?*n|~k&T@s3(3Io9lG?CAwt_7c#>3>r`Vg`l<@b0 zj350v!Ecg?PCr*Ndp;cL>PT~p#I=dZ_&Xi|e+}e*-s8ZEy4lK{wkLBlz9G$*jj9GIH)fA2|bn2xRSYqxvTQE7sF0k5-xvD-k|M(JHl(69;hNGJ26x2ux3|BSmLT zD?IGGf2KV4@FYvDS(R{ywFgdJa8?_>s@mtj>_ByCC%ai>k|)Y)XCgkGYKx2DAa?$1 zRp)(&|NR%2rK!|4hoyKPY|l8JA?h=wI3L%5Wc^d(;|uPI$z+{Ix!ifxr!PEn?4#({ zW4)o|RA6iDoTn5LtkbN4fSLQMS@xBtAJBbqyNqdeSnj#pYv6BqoSfLRIA;9rnCZpb zM&y$is;xh_1wN^Mt=7j7uPLBmch47L{W)-Zhri9-zmAaJlpWE#sTwp@5@tRhP%lIgu!PQ)PIAQLmTF*^bA!FKRN)J&8`$!5OT z6WFLxt%UILOJx-yUF&u(V6ME#NML-mUsMLiNT&@o04 z;KcRTWth;Vkw6Ib7G*Yyvy%IPm!Rt*sviGoQ_+p?swSG=AtE9cLvVLPkp1O?>NjaU z+sQ!nkT^ROTQ27V3l0ujK5T8J6zMJN&(U_EvxLVwt}MAj#WhWyv6!7B-zYX^$x8il zi|l*qxG^ch>1d{MG53m?@|phENFy1=iE~jO{Tp-|)%srtkxeJ!F&7lFU-EoHM3Ebl z_jkQAzn&cHwE+|!Yq$2%ZhYyD^XKvqi_|t0S&^0g*GvVqjcQe|0RjaMBwsW4#xf(> zdm3Ty(Hf_Rbzf~WkxpMObn=Zmi>AMepYz?}3TMC1wm^;TJgXnVT2En%Y*FEkVJI$~ zgRzuD80hzfvtuIsaNiAeFt=@>q;}0c7xK3KB>z`x&;Tr(m~_gRz~BZpPDG40bzn&* zlbTzrz#w5o>8`i5uP{eY=?XrMOP3-!P4yP1jq@@OWMu=A{`F43PeV9j+woe)SLLxFZ1BdLM3Bc>2m^Sz! za`op$(H^X6Ntk#Xw_)ziV%u19`xC>3um`zw_mKg(@zm}Vbn8XyaN4v}{CDXCI4|MX zb2pn)Y-&{KwMxHS3(_}o@Lu{GYSc?3zp`HWBm<_)C1H-0Tyk(}`il>%mtgaqQvZv- z^4)f~yd?!((uTS+q*`*YwO=k1vMcABh$T<9LMc(h+*I#zOTDF2#f4?z03;ntRqibJ zrvnGEg14Mex+p2JpemY)kwe9q<<2lB6cG0VDaX~a)c5qb?8Yd24&r>A20hxrPe+!` zu1co7H=P%jG_8)P2Lz?LuF9=mmrLgGbc$b}Y2(o(Q<48c}G&Y9@Er@)N z^U_7K`s(NdBlSCPDmt>dGOOUH80iN@t{=3sRZ!`f)_E|aOj)V~z_?2rfZ zJh@?*7UWxjlndPz1B8kJn-I5i^s8+PLI@z`Gq=n%V+P=egwQI87VH}cU%6@Kj#*kJ zt_+hJRiC`fq8a|PWHo)aNEUTmKEw(xi@Ie#pqQyCr^;H61kDUZlnh|=A7;9-a1#d> ze2v+a8?j-tu_9~uVNfnl!$e4Wy1$kwZ`ThDex}R5b&-Y3;n`;y5TQ>ke~&i zDETA-#!CY*SZtVXpwu){=-X4GKj^3V(Crm-ABUDcdMJ)kzIrmMZj z@X5NJE^jlS&APh(ugzkW#Q^Yw*l=Ofmfa#XoCd1CLxmvZt4qU=;BL7rf7M+UaOQfz|7Von!X9E+E?@q+ZJeuOod#2T-W^Fb zh**#s^;-RZ>cOH0)NieLTNKBMH)lHQCmjH{qF=N-F;6VkCIF4K9I8ZEBZUPcoIoun! zLgC&xB(HCw2DeqB*gyA2dkJ^{)=q%yJ0R8;rs3K!7yr*xzZ^z50BuO*!?iK^o6xtq zgyBDL_6HG&{B!(S`hWYyz(+B_QNMfy-URD`Yx!KJ?I*snUB$dJOWinu(u#FV{R-a0O17s5>x{*gG(?LPnLQ?R$T5o(z7UmqkT7ym(fSq&<^8OUF0};j8RV*Ci%q z{M!V>T2miVk^Jog4HqX=?`2EjEj~ttSQiPpY02L5m;p(?C{7w>cmL{{Lm~!OU|GhB zZ++pM5-7(}TPyQGU@`I;NOd_h(bf1q?ZtXJO+`j0+j}`h(PvC=pT8N26c827`4hR| z78#0GxX8bZzm1mHP#e?WOnY}|>4i9|wk)`_MK3)+#gYE@A*42>8H?BLhSWcF5`5&` zn9MWE(0-Kg+49>|ANTpga5lGsjStV+KKaREY&3MsfPY`YYSigcqBNFI>7g1rdal|vAW)`7SD7ktGYse z7XtQNr{*WY5I-{b>Mzhmu)-=4v_T|Uox!Cmz?Oy4YI)N+z<5-w^NxW`c#=A?-!_!p zfc1|^2JD--NCA_*2gjILDEU03!YLNp9hqJghY+s#+NsXo0Gu^bRs~6|2nKtK=f7t) z`;eP+95v9@5v{}W6!+92c-0m}^Q<8{2gOt#>UZiuIdA>Uh%Q$Pbk>v=&bZDHhL$tL7xthZ0X(ub;0^LK@M zBDqwe{Y-|36wPMmeUd7Q&zt6K^pEg2Tfpr3pWzis5SwJ;rJe|2ggwnW{v@`tbGVl^ z-x9-eKiYmgD=(Z~Yj;@+oiDc6d^IP0Oq^J3l)G`Xk$_l~x6)=^ZH=o6SR+7l3B#{+ zqN&L93!i)6pP*px$3~sTNT#P$J_ng`<580?eG^xasTaQH_sS9?Px_VmDXSlH1bVgE z_!H}XILA_w+rD8Do&SVATvYP&AJB!$JUmw{ecsvYJ>y3@Q=p(0#0=Ox$3pgDQ}`GT z9fK;FMK8@!tFPB&Lk;h(x<3neb6=sDn>RzpN#2N8ABYJe=3)U2$YwFqqgA)IA!$k_ z69)D%;=>NJ^fLZo5ytcu6LEQ5I2rMYfwb1Eb1vi>n`@Hv9)AGG`No45lXwm|hv)Sr>y z%5Q7E8X}W!Ilq}b+Jhv)&knQxZT{VFibmmE+-%lISER4{KAQq!cSnnOl~qH?UV1-( zWWHIG_BU~0iAF-!vB*|6H!A=7wb0V^_4jF0G%bL=ExO=;#GO*}@5`2(TFPXU6@KF{tLcZyP^XCLR3S;|cugmY}mFm+;nhdDFW=8%`JiI$V zJf2U*8p@$`K!}tB-C2KsNX&n$da-sQWA-0jR~|>XrvBzaW(CwwJbm^*#qoS9GgD^E zRlJp!tR45saejJLmN%wBB%W+ zO6%>sizl8a(Q%W!iQP6gPl{z)>n(~kA&=QA3Z?txI_^EC2YY4IHMt&@R&k>DM4*s0i3RWR-$@(BF* z;Q-vd(~LF6Dh|yeUtY92eD9Km&Qm=$qJgt@XgiI?krGhxfwoakxP*#xz!`to`Q08w zPf|yCSj>a&cyf+m%##KbsVWttTT7Q`rO+jV?NJJbxPu*rL(;_|iF1(y~wltf#5 z=Vz)wuy6Ra_ArAXxtdxAsCBWRum(uT{GBfE@_|Ke-hR5l#Fh4uYXEUmD+ad)&a!Vc zXxn>fWyjWS8QK2yjR9xol*dN&XJ9PTDzCaPBvj}^p0FYX%pg&X= zzUBP%EZ-UojiC0i6P0VExsVNF#-g4t?F8z+@$QO`cUT(NBj44RtK_F>V!fmDCIYQ4 z>yp6`47LFO4UE9)@hPwlZ}zP3M{5X`TMP{nKb!0*O%<%@(@Mrk;L!Lcxjc-nN{i<^ zUDfDqd}dhaGw&g%c|KLlTnYx4J9Ck&XzURHojpD7uRr}Qc)Ir+_?)Y2 zjs3M~E3=s^OL)wfgjlets1hk0X&j8wPV9Qc=U&QZW$VJIW1SSN8 z&r@5%;T3`OIdeRX*EMSO9PyTClpcD&Jk8fH2bfQU(Z$bILdD3acU##@O5lI({so0Hv+yPboC) zTSzu21H=$(x?(I3O3k zFAB=58gjQSVgUKZs>zx21Ba%%W{w?(>v)<*Kb98MmdkSK%=F6iENIF0qfNZxXBt>o z2^>^OEC|3rVg&eS+#@Slq~A(^rsl?+CG`q@CKshoBf=U`RYJ7k?|Vna*zcsW(>vvt zugC0AwZFzNVWelOZ{o4qkI4`=@7yjbfttY}Ma|3uXULn>y_Xp2u3^+Cg+%~Vb_Lf| zXEAS)L`;Dg|F-mhejR2|$JE^p*`;1%uK=v;CNTvgl#I2o`@N)T%Bw1pAxG$_D0D7! zNh@Mf^3A#kLj&{@F0BT|OSfnLRubv{TY1})N|OcnTHHywTpi199}%KLzWRHuf68@Y zk>rg^UX;lQ6-r8Z=-YO+k*&_kL{7F&z|fHKpqsfA9L@M{?j$Y}nau#HeQQeXW!~N_ zo#0hrJU^hVj>aNAR6k-8U)=hT7zTpjDFR|9Ip3nUPJpWg>OY{pP90_Z_Eu8xY90>? za}MwKB3ax{18gcpb4$`tpyKJp&pVTT%u^=H719hkDf}`Am+(azj)s;xAM5+X-v+MP z4I^55AwPZC3edP#B^9c#=)yqST3NPXsq@2wsf@8S5v~h5VmZ+{7z}{7Zj->*QrNiU z;Z}3No|1qwXwRdDx{=aw=3TZ{J#Y~`k%8O~WWhFZ1NSjwY)1p!>6zxZ|WqX31vqFGe;u>f1 z(Slq!brfn_1L;&zv0aaA5z^6cfd0>7eVP#iN5C|1lrk-YCKQbX;j^1;_2PFWEUWjl z=C)s8=Y%oaiJd3{ubBy&pCRr?R5C zHYF66)_=YwqYg>@L(@;FY#OVjNa3qcomI}+7@X)@apk}e$4V5C*f1rvYf#aPH5mu= zg%*<4SAat*&P;!{G%%#Nx@2H3K@{mV`oDC9F{|eU;!Ja^=gLxk?d2E-84>2FF7(NDt01+nkM*sz|iIoVVhHQV|#oO8WVOnh> zRWl{+4b8~TNIcym^Rf?^o#))))%6h(U_h|}|t=t7_+dDvkAVakv zCYoT<)e-v&lT9=FTtMnSyRo;6d}*fm1)nurlrBZ17lOy&mXSqNn1N6~tginCk#!ax zq;a;<+1_GKt~m35z^`l4=vp<@9f)evjSyiFWf2l>c;to{n<6#5_@kjBLYN4oqJO%0 zTa#*AD?KElHioHof0T3Py~3>p#6iRokl&nGXw9OMhh(CH128Qe5Hu&_fQ+pkY{3$z zu8-7@$IvLs`IgXZ{?9)3QgO``@2+kIN1GCXHP_LfuU7&zFh-$oLM*`nbuUx>YOUZL<1H=V;<}ncO_Z$Ul@U+>AMV; zj!%fj>B5#UY_q!5oSMuCncYKzyA(=S|$0h#@SYF_%lTf|pw;-`7b&=h@{F;b*Jg1p4q&g9Ml; z9ed9ljeIt_!M;s#Rdzr;f>hHm>}&GG^`HtpD_0B~*?&uMbR~;3@2RG1N)yfZfv9N0 zv+8~>Hlc-rSLVnKI6w+ps^wQhKfRGD-e#NW zV0o!&o73%<_O#nv#BPkaDC4#oN)pPZfn-v`ONyE+RB!DE!}3_|BkG=Je!gJ$lJ=e> z-Z>@24(YZ|gla|m*JOh_pV9bDzf_Gmhr7)Ze;H`)q!{<;N?gO1Y>)%fiqcw5PHFgB zRAm*kgH`=Mmt~x<;W3T8?)Ut?dk}YwV(z){38T@(Q&`nU>1f2<;0C)@yrC=p5rG=7 zeAda!&)>c(>+XBr7R_sW;f~6O`n$auXS>Ttx~6FkH;HO0kAZE>%Wrp$lz5Q8bigZn z6|7zZIa>CNDW@6MH<{BkD9oRAxcJ;m+rEU;s2ZY44HqReOvI;$Qj3qA$mdOPIDS+& z@FwDfcy2~P;1U)uDwk7Dn@uw zpw`<7vl1>z(CAqv*h*)w1|1SjJr4c9jyr}$6ic9ydMBp+`FxsW` z_)GdF`m)_eoQ3IP4t%#&y;oyMe;tlHwkHLBfE~Tp{o#OY&>zhiZ;RF$@ z4YB$MA=Owc4)wUJD)g54oB={Ehk>-vcP`$cnMI52mlBQ$(Hi&KKetsC1!WH7eik2B z<%~`_mN}3$Y0fR3w`b_Lg)>8EMo;5}#c4Aqy-gd|;~#^S(Irwn+wX4rxy}XVm^v31 z<>kR}-?$eply6@R07HY;^$Hd=eh*;P`30DN*2T{{mLja$FJWIhPUgCap30C;Jt5VQ z!H?E}U~{1#T|O(i)OhvDCW<)#leOv7GZu#ltziQ&;w!isVg^2T@`o~gde#@Z=Wo~) zXlh!fUUZ(cAuX+LlGCg%^;SKPXCV7_F{)8ocCk$EsOLsezv=a|EEs%rR&VW8VHkzo z@X8=t)b``Ev#-H-FwdLfKASPhlM9BOFW#^=-R43_UQgpEGjPksUY@Y=|o7)mc6I0oTgfY^k-CAj>mx9`bet<4Eck_Nl zPV}jS$#@CBeJP1|CP4m6dJd&*F|jPI!Ml+U7yqcf-uk4-#e+F|{85rjv2Z+hBY_HO z9{X(E$ty>R+`(G%WTnvM^*f|NPCkR|k*#Bdc`%Mj=Hr9L0*|1nX}OiJ@arr&_c7BK zTo=dgP<+sMF$?|?Sas812x~u(R#pmW$Z?g{s#+MKbaBMV^tj&og&$LF{?4<@Ml?F*Qx+poPwJS2^mfbCGA$I#DWcZ87b275kN{qb(k8$45H18k~! zv61R7ps|fVBP6&B7EGG-beYv4aTaW`w@~UOKQV^9Q|d&ySukL=I?htmcVH=`^IJUj zz9}Efkd_7fNJl+@>@y|bn+F49kxT>zY1*pnLsIt}->R%VCiDbP%Tth@w9%i&3t{Y}r`9m2AjA-IHJDgjGUB&MAoFd|$UYEY8l3>&{eNR0nGuT>kW%^XhYE960eMaxgy^zx51 zc}@qV!G|uFt3S_E{|u=1|C*R)9edqiee8Agm>4K&lMNnopzfs9|In2PQdH8c$BL*E z{`q()F!B1qsaUF;_ANDBENi9>T(cnsi|kl!<}aCywenAIj^z?myCebxVWO51jHN!v z6dF%IiYcshWFxBiD@!{R6a$S$Dnj|Ox3c9^5y6P>m;gF_mr!6m)=49dcMxItNoeiLFlO>kT@pO z-(K6Rzf%PKHk=XXWWhb_3jayo9%l3FAuntd8X-)|5pk853eXOaAAMt6apM)Qf5WJi z>qM41YVkTu7e#_{4WL}xvbpYJGMdkkFXAoB632vZk|gN%Q{$AF(&j|DPat9-eRL@W zeLOcE(%jgW)jp%-yf5cj%)~X=e7#e`Zh+NEBebvG}^?>ov^%&A9gOgK{iwea0p8T{v*$ui5Wj$bbdeVcL3MoQpW?6Dac{-VVmE7lrBFMR z>d*7^uZ92i4WZKe26Z<@Ic1axe=PoftrNrIS&_xi1}fWtTDXK@r#6roE!HT9hNFdz zpBa9_!@VYP(QN`5(MWX7a2jA4MgrPKqP#rf*r>5(X^{vHtT1kBYTCK@S=$^Icubm% z4Pw+);@Ch6S)DyTDI)>iZ9h`(W`F4FN(Qir%>N_nt)rrFzW?E+5hSEL6qM$TfOH5* zEs}zSv^3Hzoq`}OE!`#3-6bGh(kb2D^_x|{=lPuT{Go@#Fmd~J@7&pC(5pLu{U_Ow z=@4I3omOQK;+=^s7dQQbgppoMC}(^3KkaLOLCF>+L{I3pBs9G4+^|DHHekUO$@5#f zgpt5^gYiyuNKHlIX8Oz~$sweu8p&pt_^8u;{=|BDEx5goLeKm@Dng`z6XrVfpyi#^ z+%;0boNP<7HQL%Vd!X!TnQpY2a=umU?n&B1(Z;YU!Tb|wf2iLp+MB@cY2}t->qV37 z!b=U1Expw=cl~c-#;5iS(~g2Jbi?#^kF@wUoq7{Qjb$3h!4|Cg*cZ*Ykw=F}*o_}{ z45bmj#zK~6pdO}%y?s^UAcUZE9&|IF_0h2rA>#D7-1{-VL4$WjkamcK^l_}7c3cAE zi#Za_N$WbSsW)3XEyQh(q@P7F`@F7i_jbkTS-w6v$?l>7@iv<;?B?lz6N8UaEl33r zihu2hWmC!Q8MOzZ#CX>3it6s;*ZkU_y;2tC3(($rB19pUR-B4r?4n*EuC>T87l;n^ z*aUyXZnr&srMfO(h3}AAn@UB3EIp}o-Wum3JvsBT?F`c;<(=ah?Zw1kLAk=uqEK~j zztggrN87ae)@ToA0OOK9nnX*+*7>iacf{x|AEp|eGkLuG4KcJ9_3+SZ7+G3YwXyD+ z8z~<`$4@gH!*ga9a@g5TGrab<(A>(*-Dz4Z8G|M3LSe(mIFog|5?t0k>-o6T z`?PziCF@SfuTS7VeL=U7Rrn(vnR4{kpgJeB-ORAA&19vBsipGHkxwnb?uz|49!M{+ zz3cU3GHms;JF%`vS(0Re`W2;FweRjC2nH0eI2>Ae$aJG@>aI;mInT>JPvI**%$Zif zaw(e4{7p1gh^WBy(F(Cg$TGy#+9$qJ6%R60!D5UVs3HrgfcBqQ@j<4qgC9c&6-{da94X^!)1>HIijAr`U;Eg|I@6r{tdq z=@nCcaM^;U5>FkN@EZK=x<`yLMPt%mK$^7JFWVi{I`70t$R3On9|lB)VBzb`HKu@XNmHWl@^jrXafMi^BZlG^z4N%7hQiHrkkN zx@R$cV(Ff;^iCGq=yE&-7$5sN=jOvU0TFnoneSS@w}QXeBf_J#P(rNJHeXZPl4ng) ztl~(_dyp5Tagwo@-AxVoB*D7}QOzg5wMCQibwjGfy2Gw`PlR_`@^O}xPHeyz*Y1Gr z${vqAJk%H{9Gb}1cnB+d0D_`N!ztO4$>KGCpRF%!!)LSBu4&ws?}jRJb*W4?wYO_Oa4iF zU_wWbMily(04r$Hs!1-ZVCRm)cNnYZ8CvTWf72(16hi`Mizi=+YZMm_daiP-~G`IwM@`MHq#@F(kg77zZ)(M)DOqQJ>i3 z4p#b+xol%9P_0Ast4)!b}vVGR}Ye!hajmDTAD5Gr77&TeiPE;3jjp?tGJgD z%7`=C<~sE9*p}70&L__F4fo%Keg@Rva>qM{OR1jz*jBS!w6}X-e=BAc?c5Lv ziXkD7i{aO$6IA|N>;R?H33%_P&8N5tDR4;v*|r_Y$>x#WL6ji)g}jG%DdVkq8HJwb%&F>93g z)GqNzaITgpd|9MOk{GhAphRBbj???}=P#q|=r1Ut*|c*N&hvj-n>F zfA(v`;3IFI@QPm-H(0V74kpV|RE-4X;wbUOU1AJSHG4`H09SJES}~wDuZ!fulB;#Q z*;BH&E+NA5r%E;+UWTe0Wu?Y;XxRNc z2y{3^@Z(9p45E0uW&BZqMl-eUO?W58AB82PMokLV9|t`2bsc-$mGET%igr9x@pZ8)d&v z2aMBTlqUV@tC1m7B-e5b#9#I_!G&Rtb&V)c3!Md>JtbU=Lfr-tm!`=%n)}QCoU9Y( zXWVMsFSvA|TKVX~GaB@&7>5D#*gk`_HE+5T(Fo<=L^{C4&7L#j+n^?nstVy|ZRql! z)raCgkf5WlTUxc!2>+QSC;H^(@{39refb7;ch*WhTyMnGB}jaQrES$aHjxR!OpsR? z)PEMr6wZE^K~8zBigLc@5)`$}xJP^>gY%jb^7L?B3cDW8@#6>6Ylr9^d5yf|a!9{? zNS=v4u2Se;{qZgS6}xi8;ZvH}!WV6yQFfMG(ozf|0zFmqG2)^4=bn(PF!=dJ?*8_ebV3 zh-s~8@90i46pDE7R*-LgekxY}9R2PK4)^ukC-6N8Q77LbTu3a|hzEbLwghKMIQ(Fd zG%`cWOAOr;{RWn_4Mut^?;Sz+87NMv!MJ4h0qe|(3=5Pp#;|`ZILwGI`OQySu2C-^ z_OJdD(nTxva3fD+I>`volP52Z%o)Ug&zB?a(5eWEmju;WV0efNH2tPomY)C(}Uyw=LZgu5-*iXX#N)SD8=-+a!qS?q7$ZD@Sc~d0WBgU@{ zHalqOfE7!SkkJ*cRBh0xmiYMmK;?qnJFS=I>f+0>{;kzVH~b3|xe!-@k>w|NXje&) zzRS$X%SeqA9AvgjtHaor5@LRe@z)*_ztPi2WiBb=R{uk$eSG<4a1096F5;cfry;Gi zYBvf^2Sfq}*Mkv`7|&|kH)2n-k!c!dSzm`>i}EKk3>_{O7PT@Pe|V$Trx}M(8(kn4 z=VG_H(w%+n-vw&IAS#?_DDsg1mNm%S3SQUGiTe0;kC;jXlL_!EP}*~av)<~3EX#-U zB$2dd!7n-)P_!Y`F*q*M36;S6LsL;4%asf^<9oUl`u8(1mAy4(KW~6Ylx4_7_7+3A zlJ8|(Zky;S5PYt@w?OtR5Feeg-7AIP=)v4{=Bf!+?sh+H-{wXo^AF@D9DM^W7~Oi! zp*mhk9}T@AQi8gNS8p4+W&G?}YZ-qY7@b5w)MLJ7@-sH>k$fMJJd2^{E)+#bx#bb-nVt zmBTr%qg{v6r_z%zWN`0PU%B3FuN)L#``b(g7@8G9hYE*XUnRh6&0+QC{O%1}WVYB# z{EzHT*W;)*jRZosQ2M7)NftHTrsiahq5Xy3l+GycwvlVpSV4=>c!r+^C?~QyBKV}e zF^pcpiX@>gF+(I7w{p6dYt(fj8Q<(k4_oHT#m&f$P>U!d8C*=!7j!${IVgzIlVAR7 zyidy74^rnvqX%CwSWk7vX_cS7jFE(v7l*|9-Xr&!RoCx(H193sWe_B$)(kHVTOj_D@AL zF;aaXEEO}L++cD;$>M-#X;Q)ER&UC1y3h&D0o-a=?*~Q5uUBuChR5@)7sYMA*?NAy+s0CsHBQpHGno?-^m93FW`G)Ry%qX7e~wYRtFeXtm- zNyOTZ*=owjf(^Cl1>jbWa@G!y#OQBrU`UqLqEXjZ4S46+Pbz6VvMo^{9S#TSa3(}^ zYS+qbL7e#++V@#@I%|v}*-DE>oS_~a*n;wYCPjrEp7VQs`1qVxJeTSmX}s(yL(wLX++e|RPA3tm3 zZhOI;U{)pO9g&W9qx}F6g!J_u_YV0+Uxz+wA1ec}eg zZkaiwXU>8?Cc)?mk!*ig%xKj!9q)!k@hR=&gS_sa>5tDbU2^*GI5lxRi4?!g?RnlE z$*2beB_YpFO2&guI(Uf$;;~~?&3Zc2_46h5Ip*e9j3^FG3{RrTP*7LT_GI0d42{ww zSpM3ksR%OgwoP`i|F&j8P_Z9C<;|*AG7SW@mcwZkfzrJKMT_#VEZzrW|A8gcK#$y_ z$%8<2)>BetG>Ig6?4=T`FF<+`v@vBwwRjV_np;A7%VhGtBq1gk7B3ltO)#3i9QX|> zHxoHHx5-HR3@dj>fYLU>4Y?9(diH!XU(X_4OEV~8qreLp!a;gIfBv?lMW)8%AItqK zX*llFvgf7v))wfZo8Tn^Yl5Mhio!-E`hM$t>xsqf)O zicLRXUY=o2{AwvwBEdZ_1NGi+Geoa&Py7MK5bk4pCjk%d#wXmaX#r!R^Z1HxDi10r zzMmkENq&D)%tF&Z@@jD#l93DJm_PN#?Wm>7;Q0{9Z)tX>4=8Yx)d+D?XT`%*SdS<* zrlMVXSCSoZPVh!M#Ap%=IZL~`-ix!b*j~E+fwbKvg`%KQzp*i>5Z5ZDO$^U%^q<_> zAhj;piwLTC$(K_dLY%d$Ft{T`P+;2C_Cl1{hALiyNwwU&hDdb?=x zbyiNromao6^tS+2gfX$VQ@lfH-bK_p<7Lfg_4Q7_m5;B^2EtwdIL4~lTmbW`RNH(e z-ng^(6>bU%9xbG4wwDS?_og3wN6U{05A+>{Xks|U(iJB{E-;U<-+|g`=fnWSbM*Ew zNHwHzZsMtbnaKS9_<7eMv1q!s#Q^y{*8I_}SWk3MdKW0J&U#oYGkDof@4sL|ZpOmc zC3A$~*50?ueQ)ZZl&!ttk ziE2Fr2VaEOUW-~yx}s;;>HPm2H68oHA((DcEt~nKhUAu~O9>#Hd->-`8L`$WADbz0j(cQR}lsY zNhYS8{g;WEV*QFkpk=Wi)uLT^OkM20%@{TQT@}2t+($MVvQl$@lX`!??^VH#c!S7z z!qG43Ansph``v5*ITEh?{oHCvUDyb{(c=sp+8jpObvEu}21gF8i20LZg*9K*6WSkK z!JS;9NtwE7!r)=qlY#!Wj}{j6jKSj;I^w+s6=t!1np=iZSo5DUvCflGlK%7Bw2u37 zl7K8|xU+&^-EMW$KCA;HH%y`6|0yv*-i)OxCU>Yjed399X{a23d+52i;NZ1%5xTZ| zcfN3ck?M7GH{<1%+jPPa^s%qM&CMcHzGpfws_X?4gt;hgu4=6Ow{cg{412fzxYD_Q zg-{rO)u<9$O%1r`yIr!iEpPv^OPq4QHa@wTcdfiIGCHK>G_r&m{_b%nCF|6D4_Bgq z!7R%`6^Ucrd65yvmcxEy+*~+6wE*wI3`<^>Y5txR2-k1U=iR`27>|b~2&1M=h>;0v z1M9x34ZC$B#YX*I(HkGY{gxlE7fu7WawaM2+=FGc}tp4m81VBcb1#$_Dp)Gwrxffmd{AKj<4{ zOEEK>6P{gi z(~q5u)^o1@Wy!(Uw!8YK#*U#8ijIk`1f@^q6r!66(C8wo>`Ni3&4dSG*;L>oI-Ud% zAjrAKBGG71VxO8D_6ttWk|j*4*R^YwVE9LK4qiXukZrY&BLO8!jr8Lg$bxS<1>j%c zI>ccCDNkE!F2Fr47uHWMhq)lGZPBiQt!HcWf5WD_QghGzJ#QOJD->yW4%+38EeSCW zDMY7j1C=l=j_`K2!OgES+I50YN%lR0ZmBuOmlG5dKJSxP&5-%Fs3v2nt7&$@lvRi) zankCArclZ%uDSa0tOWXK?HGQWu@w3YdlseVoEtBxuF%JL1$PPRJ=^YO4Q!fEN&VjTP7Vq1j}jD$(WW2`0R}M$ zYzZ@-@S#dEB>FI*n($$$rQ;61FqcDm&uNYps+{U%^S+!^`n^qTrXHZgG83HbFCBo{D)*=qRhg^`OuNqqj2q^9+B@LL!_)w z!``vidwpxPcA}^yt+6h_2j&a+HidjwueZp(bXrQ+jP=@m5`0xvkOcWzEv$JDH%=N! z_hWB*P`xw1z#^AEO={TJ!EM_F!&_rw*GekEWV}C21C*I&v-vh1bnNqd8gUkR!$vtq?5Lb!x(BDv8^IV#bKUNon_~P~D(*c6xk0 zWePr}esR#T{@SJUTBj>D(MKfL=zDfc>S)>8TZMWpg_TQt@Yg^TZ^oUo_^?68~ohGprH;%8voOtk4<()oas-;I9 zU6+tQOcJz2V>sFV(DgIX#{#Xs6>i{{9&=czO;nXgHv{UN;UhLBD^A`4|2xLEpma_f zz&+lFG4~Z^aidW`XW0IJiiyC$Q`hOE&$`o?hw_FYTGw%+55QS}mNX&a+DD-fgo>6aKD zmcMI0a@rv3^VI15BJlh^;#s}M>aRa(K=zxkpqj)Y=WFL7#(ETmb3OSx;J>=rhUWAZ zDU=1$aD>)vU`g$_V*KT499TBk$0@c99h{hT%<*Br_Ww?@Pn(41e?GMSABB`H>K^S5DlzaPKezxl zZ(jZJ71xuBpLu2Nn=)KP7TL`;jxAbrL4L8_0M`4kCrBSb=(DH>R6K1GS^gF=>M-y6 zMEG*DgM-v0jTN!=JA9`XK8{p2WTlh`@Bv#g6Po|F7RJ@!+dM59K!QEFLu9BZ{rP(` z^xEHHT2Y?mP2t@QU!k()N^j?Ti*eaxP*yw8{57vfCA$)u0%9v!YPAo=J)FmF zqnhgZnUE zHyP1NW?of-W{?i|;4AJWsZKeSpx2!V8v4ABNvE_=A^wAZ1d*mVm`LHc&nY{HVVq!d zo2O`qIOnMIqHo1x;4y)LWyVzCvDGpI>yM|PIv5c4s5YshlXfueTN?1P7nQDk)ex=7 zX@tXU6DV64Ypt$xUv-jT*Ni)+Ej@YYX|>ng`T4@#W$J?0_4DUf*4Q5C&7v3{O+Reu ziS_ule)8qTqhK}xTuqzt0h4 z)s{ng2kpin0=5C)aNY~UKRezy>pf`K$w3&We~$uO9Z<^zLgc$uaMQW$cDGul&+u~@ zX)2PyTrRWX2BzBUrHL($a?Bk$bC435n6QN<*Xm01arRe39&xUFiNlZCS7gIGBPZVX zT6;O1dsJ>YJ`wZ3=d@1Rz&nwQdW!{`$rcXGYm#JJ;XIg3xY~aL1uADCm+3;bmF3+jG=kwS5!rZcjk^ON;qc74LD-WpZ;!&MbTn8-SdIvVt zc(@oe0&>PHA-XO?ZEqx54DOua`)Q}#ej^n;pCyyGI-;7HSr#l~5?A zZ;SIlJqL((yAmRjNJMduXg5O_;)Ef;V)a{g3*K_Sa zqXN#?tp$wlWAoS2e2ipwA^s^wb-b~go=Y5PuUS-*&Eky;NHz7oD#Jk_2Su*~f-K_- zJ0_4|JkRhAeTiH?<)1KUREL}W#sq*KhK`2MDKp5ijDOH(8Wy$eye~sG*#mgg*+Vhg z!-NxxX3a4!#}R7yl}&=t|10Xi{MG|1Im$jU#juVy3{ZdgW?6=^ak+#7pyOZY z4^=D!_BKPfM+^5!axgih9OYTmUwJ86BAVR!1x%M=(4U!Aj|i@OBBURD-Jqns4%+qf zL)+~pwFh3t)#QTeHqM;W%N8N2$GmT)MVUo=j76Tu&Kt_JE3XUU-;h2mTq6)_XrJoH8*+domqj*ui zkz|u3Zt&yOe1j{iA%2&(ws#)JcEex4TXgLGLw1+OU-*SB%QyyDpxxc-`j!}moU+`iA^ezp=r^lLkZm@|p- zgmwGAf%gS}`LXZIb&f&-79BM`F8#bb#P$pdBcc57S=)mNpjV79l(3=q{Ywv7E5#?a zo?N~-O<$g1Yf1EX)B$#KqecME^@WB76p1n#=QS5*5F` z=D=k`L9{pzx4C;ZQ>0Gi6BG$8b+}g1rlkM66QaV`8ySMxJ;WXUJOmA^tQ|KBYHCN5d6&-gb zn8`cbOrvyH^vo2h`zJgOK)I;Az~tX{^V}_4(*Iffh)3;h888;<($9FWaO$DPc^$>z zPR3*7=&5K9imVKXK16&hEyY4x!WWgLpd+};~cx- z?zgwV`dJr70QM8i2onhR0?1L)6oIq<%IH^^eY|lr9C{AU%Sz@0VCvif6G4GTeQ@7btWuchCQNJ(Ogv@!5@;WVz#lCNjEl%=CYqUPeUpC(88$i#lI}{GV70yT8Obru$ z!3Dm#0&#ZluI?so>}nigh-omn@Bg>&)sU_A+r@r!<7$InSGcv+m%5UmOSkis_7?GE zX-acST$4wSr9WG=;#c3Ej?ifZAW~f@c@ebgUg3h!1lZv?J9FFSF>`OKp#229Uz=KO z5W{|N&H4rfI5)DcUTp=~u1(V`AStu1NrxI*;upu(*OT^l=^# z2y6MbO`l5y%vJt>(+JI3(iiY|f2mN*rmU5K3UnFCt(75ltO40zuQpFKE7O>|FPI3& zC`cIG3ie}-gO!fV2LYej%Mc&Dby5dHFX_~WcO#b&j5_P=Z8_J1I%0c<68VAMY2l)6 z@ixORp{%>ak75@n2LUN@_53<}o=avp`EVAx)Vivbz|)wX(WE!pl-Xf%^@zD@3gYk_ zYt>Aewu6ga$I2RwAtb`bm`s17isW@q#%YiKa2b&Yf<~NVqR>Ja@Kc_&k~71{!y|of zKgX_>5p6@k=OqyshH$G8tX@7^{n$*vm)#QoK z7bvbu;66fbzU|QB?PBLvm=UlRSKxGex&2($zeRS2-o#4{xFV38oZz0$yG9ga-%u9 zYvB1EzA?;N??`izb>}kn*P#W-9o@cs_yuv$PzK8@qPs+aeXEh?#fe8DUy06+G1LyJ zeqR#J4I+8&DxI6LodOr$3`2R&%D|$|?cZJe>t1!EnXixQ0J9|W^k(|cis9ETEnpx@ zXfMW?3_g?f4<@7OD%SRq!@PDu`L-b*VkQc-=K$0)_EGpecQG0?{)IBL6=>*PB1pM* zQ9=pkR&aptLy>2N(>PZO?pVP0K%;ZK{v0=>_04`0HG$p>o$lQ&kr7;ue?j`{2>TF& z&|_-F4FfWorAV+?wvBa+slMpeH}J13l$DpFNuKh`}kqjYyUkwS1>}uyFYc2(B;)4(KZx+ zly5l^F0}=?&b4EphU8NFZF%*tuEc>!-M#*EY>TUZz^oYsyAui?+m1RB$mVU?rH{E< zdjCPgKYLH^0&Ff8WTsb*313Tj<2>T;492l|$!1r9y_mE2-0%a#w>N=NvO5vNK4|UB zYMcz>zIJbR9W9GhLcC+E9QzYzFh0KcmjhV9rLt>OZ8FuBz}RVXGfmiCapmzZ9fzCJ z58WXK@FI+`jHf-91Cpx-p3Z90nZNO$h*4a@>WE%;KW zbU){BMeP4xgMFVE6G1qS^+Yg!2+#;Tb{)hUq3yB0pK4YM*MR-S7XZ@(!OpX+r2WJ6 z6kIme|1iBdPf33lv9B>GyWQg)9_!ZzIA$({FC@2pzb9Vg?WRAbolG zeSN+N1XYlK>mr^L9mVxE{@S5}ug4_|uZUGM<9?t$SA|1y&WeO<#67q|Vn0#_bt`KC zqPic#5zg9ct{j9txROU-H2_RhBwFF$0FU>;|E#_C24LjReHa*!r~tV`6XuBh5ZI>> z@!z?*zyZLy$7fN#jR$l$g0EnO52V=?!mBBb+CHY3%p-7)S|{uGWBr9*9HC&fwzPl1 z@;0$*0Lk+Md%gC0D0o#@Q(n>$`b#Agkg5Xm0azTT7riH71ArX+v{r>FmvH14^ja?& z?FL}V_CoN!0%MMk5C{m4VKEMOzJnSI9H;z&coRj>WX@m!L&0lPaKH|*MFNMrWtqMa zqc7?_OA_&4Ajt)Fn*X5wB)X=$i+xBY35z=z!?7B59H2YZ`L&=~t0ctb#DlQV6^RNSAUmpV>;f?%F04bTkTi`uqvTkEhK~R7=b;0H6b@4nUTRLKGG` z!Va@Dgn?Cm(*aP$D=zzo_238y48VaS93K8VC&+?X;mjQ-8V9~ZQT@i4^e@gkcYrHV z2Ee%>EdxlZ4i0+ZzD9@=aQw3=CMTBrRN=PZ+B`_{{)gp2vH(@X?^MYEf<2D~7VaTe zo^A~49sl-_=D;dE_I7iFC+}TwJS#+}KUC$I68&oXcq;OL_(V)^c{CkPD-Q0##mlqowoFw6a37Hl-tg zc1=qJOqLZ62diD2D6W>(_15{}4=IFTD6WOz{RpiE!pS6fe5Sm=L@5L#jI=oMywl{- z#LzuJL;;w#dd$sS%12w_YOAy}D7KBbL78ZoK>ib6KVfJ7c?~&gjIjmnH%aL6=g-bL zHbIDag>!p%UtI@leH2TxFC8Q*2;`Nd!TS>4e3=_H=bU*Y{<3;yW9OV& z@X(@n`X@m~mKgMQz$Y`S=vlG@MedXZc$g9;1M2^3Q=rU`v}l^k{76=}xT1@EkW_7` zI4)(BDAG*udS^lGQH`YHd(Jy*DV{m@n``PgkIOjE`&O8Wd3&lzfcBv44T_N$j**k~ z#;VnX>GHB^&NYe>oyJ?kxVA{etR|&iv0;6u;_j=?K~y4tJ`=#Kg%M=!pDZVNXurya z>?h~8OQ}wl)j@Y!meg`9XlYdv`DT=k)-)U8w4uxy&KtFQ5BYj>D*rP}L=y?(4H}mf z&KeF;^LaXFe5kfVMZ(0vL*3=qFN|f4)1^GBVqe|2#O0)QUF{5_68|`tYOZ!}RLNkt z%GD!sJ#o*9^{1+#+$c@CEngB*3io__HS&I6N5m=9J#(lZd!Kyy^{ohad82-RKc$zN zhjw$SH6Gx0TZp!15sK&ft7*o&8cFDd>;cC-5h3{u$Xc?9%HYH8g`*cTy! z{U0PM7&UvQuW5}w+(m+W%x+6E-b{vDTTl{X#t?{9sV|`7~m^LsaKcDY} zbzYKQ#+pDKlfT1;M=Xg4D^|*dRF9YQ60ZHZ0=8Nax!kr3Rr>SlpE!~9~&+Xkp5icnY*3CDH+<^ zz6>wDQXD-w_)}uyYwVCqS{nKl6K3OdGy`PD;Bz$PhiP41=-3}GFMa7p5haMDEOV6x z(F+7kECV0O*I)B=v!CNVu8P5+Ir|B;~2nqR%FxYx92V ziO1(jdEzMF63fyTdaQ0!AE;dlSG)9CL2H)^%}25sE~)OGw^bJVNNg-C;M}wy>6qVvJ5fKdfYyf?VH>QT-$k;ziXVks?&oM;( zf=hHq%;*Q(6`lc}x0$l;Rs8!WG8wYGj{}&PVd;N%O;u{s1{W!hwvR~t^4vGm>lMI3 z+e!s$b@TlCF}%&eq>CT4>>|2j?_Jqd-r+rgh0}r8KVZ=}pxoQ01Lih4xZsGXHa+j= zcr)@cz>*lgHr{UvZwoM&w=11p#P1tj41Il0+53q%VYt0d#Fg80blsyji_; zE>*n8kfcTs~>JXCPC^Ua|Y2g0Vc z?Z{sLo|uVSVPx-FYNS)WJ`&-UvhMW9VCsN2a2sNeSE#J;CQmz0LO}6BsltPRDX*9I zz1RVl2t!5|jYVa$uykb}!xK*q1KKm6y0JLnvnln+3!N!#FNlOs4~EIFy_gKMMK!?)<}X-tk;IPMhG$4D#CNOcYi zykR+dM4Bk@xeYkoH@u>2p0pz)y%+ASF%yJO^0VaRtNv20gySuc&wl%e0Il!F9U)F8TfP`bM}`!<*`f|~l`ZLC zChiX4om^WFZgf|Z`I=>#+H#3%eC%oDvrh6xILO+S+_3vr@y+!w*xQ>!a;SRBA^SfG1O4H2*GnO<2OXbvB6ITZC0#$m7U@l?MFW&s8qaL?26cUH zh3}PjN6Vn>GS@dK1&~N#2q`@~7_%AFMYM~IW34}k+#Q2L+^HO!L)39DZXCS_cLNg6 zFQJtOy)NN3&m@S0 zeye?%$kl~6c6|A5I@c(!6h5AnF@R=QAFgmEj-#@9-8?T&XW7W3^pnrq_uZkav-! zmDOb=$4p(G+O`bo`Z(oCof62OQOT1dT^yIy3!U?g7Yg;iqL!lE4AoUNLq2s^t3N@X zQMrBoSTG!)%9}Xb+4;7tjC&Y5LcU_u#rB8cCs0g?>pPz{88pZ(A&E%{_}b-psK)!J zkQJAhxiEg5qZ>yWz@37Zo~jCXS;rc?BTvR?3MwFLE@QXPCqlV<8(04bF?!x4L{W<& z(0jK9Iz;3B(BI8M!bgo=`_7*xX;Al96l;A5y;(%~mW;P6VEd1e)EZkwAP(D%xI9*_ zxKF!Z;?iD1C}m4eE{W03Zs@W~KSef;*NwI7YXGCn_52=?I z(qWTd)guY+yHRf&^|BdEm0_|Y@VUm!b&fod@}jhJxK1}uy^7Uxl}SLI|70leE5n;v zsOZqBk-}meT&<-&s(&H{WjU?QfD;sYg24XrI_YBcS{g>@B#QKTk^y zE+IYzr6<-{ooimXt^F|W+dZKC;aihxZZ5jMXS5v!1Hy*=WW59rc@31lZI~@n=4#$y z(Q8!fj6jEkO{Q)GPp7+;|>*$s+jIo2ODOwIB(kXU;_}CH@T|dLe=*O zlg#W=B}MyrES&uVlVd2)bZqE3ZDy^cJSbdX*Xii~tKr^|kYsO&E9~Br0=7)k)U)?A zD}POJ*OMX?cKxz}<$h5l^DRw4tcX~`_EdIUd(KFTcSFx!W5tXTwN&1mCocOcO6aO`*LXJ@TH)HT>TdyQ{&9^nJoK_OVw3z0Dctrq8+} zaOz#cg!~2?z?%Aff#E4O%EWt4GS_;kXX>?={myY|8pqY zo!Q-hEu(DRHCLJE>krBmy4Vc!^V7cV%)>dYbS^G2_i8x2Q{IHyN}=j=_*ss6%FV16 zyAb%OZHD?896YE@^v)tmB-NkT7Zf!_LWc^t!FL=6$sT#0eOs|V8o(oKum6T)FD*Hb_1%j1GA zaY^elsO&n#dQ3G|7zXrt!Y9Rl&4#Okv!Ps+A3F!f*%5S2%G5QQ#FZlNiX-a>!e`Um zOzAiMfW~`BkG{z;>?{M^G-ujist*T)%*-VF&=IC94sV>+PjMJi3hbpqswnkyf(8P` zdX#UyGpVW3h~_=>m}O8<1DI$^4wReI6Lcaa3t*(s*C^UX=cOmWU7i`R$b4%!`Rb?F z4!sRC2X67FF`TVyOLw+SU0(=4OzIcg2=&E{o9wHj^-Hzzuh?~b#v#B3}AAsgXoYVSoIBy;c zW9#2cakTz`%2b~NbD2cd(&6tyoV>_$YsP|U{Dgi?jd>(jK8THz()dPVZCsRc3L~5g zc0_;CZk6B>nDP)Dy=y5sr;#*0P?Ycvj|VjGAGkbJw~~+2YSGMrZd|ta%D!q1;*fkMQ@}v@Tm0c__H=e! z^4as~h%>X&*xUr}=zQWKsO;z)wO5~%Ri1}u+Yyey1KNE8yYZOQZ_ZfLT%2K6;G(h=f-41o73$;^ zh_cHRj8*>_1!tKDTZYHAXbNw6*0Xy|ca_G9bV%xKk#{c9&un(;04M*T5HLfHAcPyr zLTPbX9u>SU6?yf^)>Wp<?5C~4yC<#RfS>oP z_`7W>S8l3^zyi<qK|BacjpY|8y%xr!n zo-s40RPXKLZkme&8Z&-m0^g0hasZZ~X+34cLc2R^z^cG)0eTA-cf_Z2skHm~stn_v zfPXr^e}(c3nhWRoST)uNbVT?{O>B^@5&7@5KT#-f`MH535`tnk6wBq4GAEBgtZ)&9^DE)tc(dK=C0o$epqDyl880t~<}v%^?+W>u8GD+7uLuJK@< z9c+f5VRgg~Wie=~L%&(6-?pgN6~c)+y>J9j<*(hD-@a!K*Qu%)R4*S8mcIsMRptSe z%8twOFn8m-_C5nk=O+A7p70w@y))X^DsHJd8OcpOs12)`d(|-=7C;5=;OxN31nejb zpUeipEQJ2Ohh_sX$hvj{HBMMJY;1)y_Iq4| zp!MalbMFj}ov!)#S0Dpd5+RTeAO(#3zy(MIZC+k=?u9Gt;*e`EJXKJE<5OVK)xgJ; zhmQ&iTsjZnHJ?^WRE^F-t3FPl!5ZW-j&CWpD+hyK<~(CJU~WE1T&4yi0Tl|jdybuO zckl~LE_Ij=nCxM{^*s*Q<*NVn$In-&_p9{(&Nk%sf|=Wqmev(dlm%ax84>Fsu3s|M zQSc zs)ZkD2^{tK51qZ&xN(;#x#Lsv_Rf~M3OX$=cNM&YaWQKL6n`frts4u>O<4fn^zs^v zsPvP;{SVmZc-AsEkDzK4Kjzt}OZQSG?_et22_&D=glWGa+YruBm$UP z&cKfWb1SPdHci?xg6o&dyn{11+_6``G5{2kna-^uF2}J+DK2wk4~P;2E@~f6WzxD8 z(E8}}VRl7Im_18%oi4$=%*XMV_dl4T;Aew2_n+ts{Q9FYrm5vS!tl^Na2!z6$9^j- zKL`)`sna?DY32TKNiiRPv|WK?`&GBu)zx-m6FW^iJ+;&>ic z55WGrjyTKLC6WdxXY{wA0>~%+5%VW1$Xss_BVpIObZl{$k(KT>3?7I3@b8PfQKiWp zPlVmu!5q){c2U^_$`WJV7xDdg?kU@vw!M1y(OJWO+w#1~Bx4lh6#G4AcjspR;AisL zXGx9g9T5Wd1;h<25V+Gk=IzEWD-s(mO;c-)L+Mi;!}t#*ue1jEd4SDY7N;=t?i#b> zsM=El@n`h83B_Z9? zpa|04ASs<99FUOaNS7epCEeZKAtjA;NjDroT0rF8<8$x*@_z7xXZi2W&d$uv&i-b$ zUS--(xTG;{4+_1!sj*DD-mY@07na5WuA#Gs(FB5Z=6z7;Tr@BH{PBI^`+-#Ge*Tu% z7x*%Qji$^i2l9i(j=yoGZWu4@Xy&O^A#go$gq=_Fm(D}~Q9XTElTq-nYso8eC%ocM zW48!llfHXrsD|nUq;pn84XtiSf2>@vwWW3!_U~ zkgyjlo4-Kk_D}bVQ0|C#fOe8$$=x*F-E0{2iUc@Z0!NZnJB{xKa?$cEOAP;c)(R^Y zOs&_G)>OzYk%{u91N(mp4BZzjIospg##Nyw+p4ww|MhzKhk_LYA!+q;T#iv*VMg-L zKD}Hf_7os1-FY(T*~rQ5keEO*Gs#Ou#u?aYg~k1pysC&QvDR?4xeM5RC0=x9Uc#g< zLJ5@W6*&a~SIq!d?@kXAqQnJchoke|uvGunk?p#I?*&KmrgN%6yGL|^BuaKU-{$k2FUK+b>9PqB-ZYqm_JB>)FE zew7f93X36SCcfq6=NJAP`&ns0SVc0tOuI$7b{g%*DU%YlE#oc?THQLGN`eM1Uk%pr z31l)4UsCTjk-`+)w<%($Z1ord2ai%p(UQOH$S{&E890p!Xr-@-AJ^E_$S$RPanqiL zDwpSd0!7n!>G#sH`~UGinX;E-_}HngywGmt64zNk-d(oi-Ais>nHq;K3;5!=qZJQ# zrXcYz4E8)W7#Ayyi{~w|n=+%P8Ak@sD@>j^kOTt`N+dx}fQp^SE1j!4acKs{4cYfA z`o<-$lRx2W|2zU&a9<(&ebT9*ogcOfX=VXn5S4RG{{CPn`!j`yW6I=|Ccj+i?XRR5JBRyhMr(D!A#w?aOV{OX- zk&YIH&y!B`$47vB8tW)@raWiK3tW$ zV38EhaKGKKpEye|Sdmq7S$ZH|%y5B!UBq?>%NXWXkZWvgsK#m%#aQY6_8W93IKJ#kId-=L7&Gddn?_UZATOgBjReKoZ)47WxjK z+-Bin4PqEjX0RQS(U2&pi(DG^Ipa4puHnDviR3Ab15Tyg&HYNIpt76h05+ip`6%a@wcg%fN2`CvPo5ML^dFbI2?5 zJb)*#Pz@$_?YuV%Uy3PVDZ50A{)^Z%zF#)*LnO`W)H>)jEa}VYpFfgqki}l>1!=a4 zV_6kW=FXe4yKRicv(#L~LJ#25Cw?-&epGTC!zs*jM4LEdM>%Bc0vyKvNr{VuN|?g)+@SW$ z-H*pvPh34?@u*XZl@U>ztpgmmb^i5_192j7 zN-X-*yyPYa3I|ibXL4X4_wK!o6J{kLk!6!7z2Vlqz&vukYleW~F80?_cY(Y92+kkC zch8iOh5gb;KQoR+Svzjp`ib{V!32H(bvs-*c=f2{qPVi?JNfXDX4j}CZ~lzRi}R!4 z`rkVrrsb*N^JF+_M?6*E)v;B1TODdAQhCY_V2s0Sskx9zmb2S)OWv!s!j8*?>|Ri0 zL~(!A6$97Rbktp6U|+Hh@|ZzB(-@s$QJe|PXK(b>`1jLM*0Zk#Iyvl}K0IEZxZ*1H zcM3Z~6SMQ;RhAo~NVL{RB^T}u_Y=m4q-7W_ok}`fDN7lA6MWVTIo|Vj9yWLhV00Ju z*k)MIo*o3?R41-pwx2tzzZDU^gcOC-@6)+Oczv+tyF*IKN_A9yGb3N3uZ0ofx$*=g)?{{1G^clOB?sr&Mp-# zd*?bkv|)-4xIMqr2LXLY)24%P779!0dHYB*8t3)FcQEI4ppUod6@;O0p0dRx z`W&=gzI?x+jB`_!PT8&Pc`gD%c5T(bZ5t7abCCZc6(txd4(0>vNT zjT{wEaY%@dWoQ}32$w?^-u|GnSnyJ5|N8=EyGc*U&rHQy_o^-tqC(^42#R@3hoMV~ zN0!da2zlrY*A&*Xd0;B|%Jt)V`5Zt3Q8t%#-r_Ax=_UT_NzN2E;+gwFl9MDI_`-$f z|Gu#1!VAnU6d|ncc0Uy@w>JIPKNyB!Rx<}lQso{4UlP^(FP?zig~m`$p*oSUX3dEz z)I(Oc#*TY!R)z*vH^vga)cnj|6wmO89eS%n zeao1cib+Il4UD-=O=>VO1DnTMWto(rZV~>2dZKV3PpDkukGGvN<+!>n*MWSg;1`9V zn!+j>ymBJJo1>ztpuX_=XUgj>Vi)0O^%S4k6@8&A)JPsWQmJ=Qpksbe=NB8-+rX%12b-UtOC8>U##;he8|4Z z>~@M*mqu&7+q>hjl6H6xMkH-cKb#*0T{A%3P7e9o6&gYcKPWzm$TX1AL{BI2a*d3w z2^SHP#an)wb23*%m=^NDy#4Ypm3!eX((vy!Jno(GO~84)**tySz$pGhS^(My`0giK z{>%?FfrVQ#Sk!U4I$Ph%Si*r=t3pTr-Uz`8M(a}`4|A5U(^V37{(ekh-37k3dCFqv z?Q^>nQSuX~JMljis~O>xmnB<`UJagnNPAbGf3sK4 zQ$dY4pA>GJ6>@BrD~cHUr`0L`HQjdXMybE2Rvr=@4qDb`H2MC!kc(+bUK7h1!*Q}C zFlf`qRx~)SCdqx?%LV^+xX)ko#A~bLMZa9d=s2wpLRyQ@W$>Y{kT~wbLP=83W+lN< z2>m603WvC|Uc{OG1-J+zmEV3(2{op}xEmL(Z+2Fn>V=)S7OwBHo-6;f4BCagOT}69+#_T zIsJNz#;oIK+&np3dP&$G{#M>7i4ge>;0$f?A-yWUJQeQm^IaNFbn+yM@hC&crwzLj z-QG-O9})EFo3{>mc!PxKc8T-6=i- z2NyTs#B#Rp=<=uTF@z8VHi@9`-Ml@T99H(&X9&)y1z~zlck4k9IJi}2XbC_2EcX#{`f2qAK@@{so93LTG zPHucs20qC1@^ilCwD0J{3lfd9a1(})!k3wXn`V`mA%MC2nJF!XGS)TAaOTc|sycn` z45!tyLhvS~(J8&qUW7c*30&Tk@0Ge^kR%pvoGE!+nnpXIE^{=4>y8UjGimL~b_VW| zXD;fAFDKc(*u$ES>sl4Rs_+~Z4fhdyU>^QG&km_hf5#7L%g~%Cke$yUZxn^?sC{Az zxN~)-sE%csP+YchOVb%PIf|+IiV8Q^dSY`K)#eeh9PRUO^;*T-kGqEOaomh|{h*k; z;9J)ZiKw#~Pt%L{!HY?rFx8PmD>t7#2VVAJS24;>w$@HjPfF8#nfF2$Oy4A{;`om* znfwyB2PQnx%BW1OUACGo(_CX!?$^HMLO@Nd7-V+EDD2j|)>#Wmtuea4*X~~H7wI4pAWH}$WLxBQ1e z%SAU-mro+d-?;mW55J#BCc-ap7`O2(n>cl$3l&ZL^SoPuvo}Lx_Mw>j4s8u*b2#oSSRtU# zqVHQ_T-EOe^e_;0!M>*E$m?mVzYGrmTb&7`FH^`1jGJ^{Lb2fWte`Dv2=@dIxbwC{ zwNZIGz=-ECpJAa+pJy0^dy8gGYt8GZg~nukugg zJuK~hL8e_eM$pFLZ#uQ^o0O4=H-&X0vhao((ifknNy}z|xGPnBeMaW>L6c<%fazvH zTRy41|1_!FX50>I01o)Co{rDLlvUC-3foLC%5?p=SBO-sb~qlGA$EvYU|T2a{qc01@JZ2#W*03x>7ZJxuPT+n+rO-968&kU9>^E`GIYy33`=Ant2hORi)G9;8~$60UyS zK&DjbOg{SnNVfm`0@EelzrfPuw!(Xl$>nRucZ~K{tv@X?vX9BM)@f*Nb5w;;q^JxL zWr}4lgvoR4?y|S|HKq`RDl44!X)H-0oyK$IGL~55yfbXM)9W{s0aG5`DdW&?a)HIv z1}%iXPYcUC1^p>AbV(1?(3RTAAo8TTePdCcbO%X6LmJ<{Pt*5jZ}xOOqX^&0o-ER_bcOea2rGpQQQc#b`7D|ls9cd3I#oQGA-i!ZaCc=!YsZV!u~yv)QQH|0zmf4 zEC{7P=7>V_Y~iyi7WC=u3e(rU%G85qm-!}qN?6|M0W>QX3i_%L8x75&QuPjnkx79- zvKk1O{h(ymTG6O=-Pdu$dB4;*N-cXfuZ-j00P9wKw`~Y%tiC8~3o_mQC^~XW_r6$= z9rWF)3GfKuI9ECOep?BIO_u*+RUd7r%;>0(NyXga*s9dZb`1$0cc(8=KPH<=vk4RoM}<1ijBuC3t0j71^@db`eCR{fEL`o*%ETN)+mCbi?a>Wx22& z97vA!@^(n*wq z0qBa&`q!YSbP=76>{{tz4jGCnyn42bU_F~&5M>?MR`8AZjqo}raoY#y?sc!sw1-KV zuE)Wc9|GAaqKy>$aEAZu57l^uDfNZQWH7cKE(PZ(j3X9*QCW`M6<)1#wMim}KNk({^QJwOOaWT+ zw#eE{S2A;H*RW>OM2^>bio`UQh?$c3lP$XWrL4V0d z6KWL4_h=XSYqF#7E26_l-IgK?xjjCnF2Q0J=?N@+v=dK+7jKpA3&Pw5q(&zDzUa!} zDYrEYq`w^%$Q1}gs(ZuVoy_5XQN$=b1sYq>G4lhD(yYcf9-Rk9S$-6aAH@=;n&i5h ztA$*he1i!Hi)*@M8EM6S#4?C*I#ng<2`@1oTt1ldk;w4VGvCiqAS+SeSd^?(LE8jg zfLGER{b9CT*Wgq-p?wwhI}nad>P@zqRkO@{L+#*l^)W4K1t#x`PVGirxXkcN=}z>H_n4sB9B_PeYxmsQ0rzYhyC91aMn8TBg8m%zqF(B6_R+> zK$j*;&ANt&zLywHyTtMKrCxYtBVxk)Ns^A+46Q8s_wJjP zj?y|Q`#5ImYb90W;XKv@X>y2^&$kM4wO6$x9_xZt0X@G{hL-|9$a%^vDCea2O+3hD zWKtTR+0kI1i)@FeNFjHUQJXyB)e8N=vg?z7{8K|&mf%wf&Y5FpMUDdnf+P7?Tx$rg zU|@wcqw_?m)wB3pPCcLZ`3YtsEcTLB)-z9AvBQVzRY3>yi~LPu=UuPW7ODHC3`ih) zOQ34@8YpjEW~NM@5RdIgSP4}3H6TK+qHaDL=#p2<7G{+QviNhW7NELX;<0~y_2ng9%`7@0`W~66tV^b(vM(V7AVQ+D@OHl>Whv@;;Dk`~-m?_wZaQ2OCE$l-V{}ngDUG1d^@4 zR${;DW?)U;$r~n+_101YIx?Br@2wv2_*sPpVdCd%bCLvB+=LyXtlFHg_AQ0NdS|>? zR@DRpaw{$3bX!C-YflO>Td;sKc+QF+!O|`xX%0$f8t7)1K9g1_z3oD1n)`k0TQm+# zCVC4hFfc}qd?>J|(dDN{h!M0H_%~LIGmBN}2w6HUETim3d3>s{^MH12C&>M=y&Ndf z6{#@v?ZXfbdaXu+#EwfC-H3>a`QaYzPgiGp=@q;VJu=Bh$plR-fg={`S_Z5u5Ng(o zuoRW9_Wq>h3y#tQIy+`nda0;{Mz4Ytm-o)0C`IL`3q0-lVlf)E3C4GW20?fXq4(+Q%eJv7nCMA5FKL)}&RD`K2<%N2^0Y)hywl^am|gFfd6!=fGlAmKD-vxZ{T|f` z1|*iXGtx;0h+3sx!A>%$Zf}$O_TTrg<)W(>phl#_*D@YahgEnJuJQATu{8!LnrFV# zvn6L`y-!OnW?5|n za5m4BV{m(TjEv$ff8|v~+KnGJAn+FASo`{Tbu);`fXdNMkb+68=g(%z9e6@w@Jb*g z*m6*C=Rr5dC`jIYDgR;CHA%Iny4WxH;NkA1^M1ASe)HtvF6zhM+jq<#W-rj=!CQiw zXOTRI2u=zcQWZwR<B{C8o$Ss14NLilmiOse4fl>`UlRF3zTDn5AK0ZDF)4!t?>;lMfnB z`AkO3j9zr%!c@x+2oX{|G627WNMr80eX&Y+YCl;e*Bn3!Q7kA|*?)JDWtz}@?OJ>X zUTeH{Zkj#{B6*er!Nd8M+W!n~YhM#e76p`wpOrCQi&-MRpDdd+>d4JIm(7|KP)3~&_LMKtF&6Qb#>8<9Gy1~?k+0M^}1-}GyNZpy7~f=!qH$1xLO3} zh?S`1S{L%qeq^>3NS&yB-MuuvpVsGo?x*FnPOmDxkN*P0wPbHfO}dc^lj067F(VH7 zwr}uA+>11I(m((M=fWNY^=kRaqc7yMCa7GKun=-Ue2xs>mioAtX(j|*3>HKYVk$gc zR>n$ya1V?U_7e_O_MiP-4DN@cu|BLTfh}IXkOoR_>7YKx)|HqO7tQtCueMK2#tWZ> zkaj;xr0j=UIQ>9iW?`riZAMO#3l2@sqdQC~@tI=hGTok?E5cyg+jH5ZhB&=jNaBLC zSTaPT4;keWBPmO_pY;ivxEFri1zMzQ+K)+2W!sHhzT#ot7phSeo-uC$K3bkpJ^14- z^5pNl7;gvsx^V8K9zrPb8a{!1rJ7b6(~57Z9#d^Nr3jK0^NLS8xZnezf)@uGwNjIQ zYMFwTb$rE@FA&b+)3$alGEle=CK5P%W^&asu_IdURkxp{F2|$= zR}#ow1xd>vyY0(#AKn&nLo@b-XydQ{*evABR?#4mPYoacJ-({xc6gKNPcZsGiT_MJ zF&72@nHX1~60F+%{v`c1F4u=Eg4gtUAUKF6q$X`5bcgB&*v0EK{wpm&;kzn2JWnbUum^DyY@j0(+wLT8w_^G`B9@h)Q4%>9F6_w+o7oMse z9t?#t9gsEe=X2bGRv}nUCm;Rpm1IQFu~3oWl?L&7DNKaY`{gIIQR$|nhsQ1AhE1D3 zi8Xu7FJ6I|VTQZ;&c@f|C7g3hG2y}KY6ZIkr1X`poF`^VU&VweopjgZoWElhb3I(Q z3;-MV^3l*X~^hQ)DbLram?be{IZ_OV)i7Y@ICqwBcfN-7M`Y zdI5}un@{)8J-!qHj3*r9uTvl5&Ajjz4iO@MtpnZL$}3&D?Km*uJzxRA4U=;**rdG9 zFa1BD1D8pmL{7m_N2t2!o%g(wvX*?Ja<@r03)Q5oSFLZ!By4@o1Fg$IW?)O)IaQ8w?PbZ?ra8 zQU{w~zK+|vg1l~VMfcSgf2ICX@fpREBO>XxKH^WCf^kj{YliTeRc9XF-{``AFWj59 zH`WpXP|MF)yP#qwKhB*G2GGP~WlOWNt)8C3l z*E;jcSKjVW{sS?#I znQt1>QBiqk9`8fbr&*Mxn*B1y+COT-l@t-f%M;YL zx?-@X$yXtLk@MVT-DF)dR=Tc|^KxKcnjh#hp=+d4@HaPmRgohA;+#kz7)%LmybdT7 z<%s;-bg$}xY2AbX>R}@WZ)!qI@q~LFbn!yCS3=T@LfXG*{ym9ycAd6k0#Q!y#%Gal zN8NFnE>nMm*yDV_rO>zr1ks3bHo{PGjPvb1vih5=|K$C2szh zM)(IUpE8g2Ay8c6fvl8*PY@Zc0+;WF52WIGm?6$hI8~lMeQYyKGXDkK}ie zarhe?nqmZPYMgdu9lsF1sUjqucLg`L@R(xH>^IoF4`hefMbUwnzI2yIl9Lzh_$ZUY6?v&@qZKPA5sdIoq0xi z+QiqpdDYWqayrSVC&sG6L=|=ly78eo$%w z^ULXJN(9ipwVsu7z~sV+=UZBo*{Meg0;`rOCE2gOWLfHYeg}H>!;-X%<$#er2_DG3 z36@>XQ^YZu%MJXLW~GH=D1!7Wl5>U|FeI9Lw6!jg(!aou6%XFQeLMJ?dY(qc`K|u(uUBpbS7PUMim( zN7rnpVJ;1#IY(VpAT#l^i1*Yziv}yW%KxM`mzXhX;NY>^3XSS&yd{nya2a1&me~2Pc;68fAp>w3gb$QZnRvd1$HNq!>;z6Sdq=7x8#u< zo6omk)N~M9ROzF;c6bQbLaLHibSb6*nk7u56DBplC2)y?^@Bdj+B2E)dkSQ_{IN_+Bl^R$-Hff3 z_kuH=aAfgb5|OfF3Bdo{LcWV8dMIimH%!d{=#Y`WHw{7lias33HpLl`6OPPBsyNWh zmavBV3cazg6mg9i@I$6-)lQE&hVMO1<{9#??Wd6~0w)0Jv0h==eAN65!RR101YGd& zHg?w0(GTxU@47Zj?f!-{S`XDexhgaYj!7zo6%B6Wo6r1E?!>CCgQvDw(83sgeimV@ z#bpN%XP#oay98bt*RN z`+G2eL(g&o7>cHwv~Wpxj)1lBBmT=+M|Kw+p3PY}G-?-)`MULD47xCYqU;K(bcf;C z6ply0voM^o*TpnM#gENEYN=+(^WIeMU%KFe@~iGHeBlFcHG~WXP<(RlO43Uk&FE}N zJoEejX`BiPBcchB?}DXuR24*~_ng;$NTX*|XR<>`qEf5}GbH{7?q%N21{C@LI}hY= zMqBu0Qajo`KABccM?E~jkAeNqu10Nt&pv*)Prpq3ifp{kL}efQ&x{>o-v^Ma38lLE z6SnEY(R&#lL4Fy_jowz+b+rE$?}a#slAljnCnPk=kDvCUM6hFn)?jY|v-K+!cb|DB z+-M>K=MsRl86LzX;C_uVt++^B0?G{(?9Xp|0a5G9jdnZJ_yJ+Cea|MY|3^&u(SA0_ zp)Dh&7e+FaKv(^$5(M{clhDIn?T(d@{D-Vr^yka?@wSqk{JRs)FLN7<0d!Nr^c#2* zfUgipEEzo!&j>?y1FqfWk*vkv^i2N4L8{Rp_(Tz+5!eWh=~T`PwCJBN%gXJc&})L= zJ!7;`J=<7)om|G-QAaBN*j-ww(WWTi5>LG8YGL|`(UmXAgGC?2xlxT zR0s{V<{A6(>rqGkzyTz6s6S*mTbBxls?FQc(i?zRJ{FS2?#ogF<@ca+Iq|Tn?;D1n z&kjoNl7vElPkjjkuWQzk@!YCidn>n<1w{OEl$rz?hTD}}Un0`s|AaItp|wfB#%g}b z0>6B^U5kn7rz|`}vDa}}e}uKS5>}slwN-ppmD(=kNcYKU1D=UBmfaStPKqO``Gibx z!TJ!~^k|klCMxYKFsWwv4^FB6; zeWbf}bM(Q^Gfrms?^C1hR`Ij87c*tAA{H{;FxoCM9qLQi&sNmivmpypJ;%0$nO3tI zr0u7R>-p#56;kQoQclW)&1dlDGe~=j5-aVx-Kh`#T+jjav^-T``SKE4!#ZCZc8Bg; z3aq%-mR~6+ngPfzrA&d*lL+!dOki8c^+C%7!$iR@CAugAI)VR%?w z;H4~&Uv;hRXy0c`WR;U(@zWc4;mQKW>Jx+eF*}NNY{CMtW8pK>-U(e}skaem@6_~w zRH5?(AIN9bf;49#G7$Lv`KDt_ns3GxL5tIpQ-=Ap{mM~m!gEj)Dq8CLq~=UjUIjmc zhthXu*mS$ootkD`6@*`9RjE}qog{#Dm#=+#zUWYLeyeJ7R{fR(Ar^EMUR-ZLBt`L-Xdnpcl5eAiuU#9Y`as;lx#}bRtiK~tQ9bM?KFPW5o};2h~a476o)VyMFv|7bYo15n4Iid93{ zLST}hDD>~#L29Cd9Y+1@x({KhAf#FC9I!Yy7Rs)2dYd*4?qo|js33pYMmv-2Q9kn*EKPF-Ows;WImA|yyITc}0;#Yxt zjV*C6X3Hq~4Qc5Yb%y^lgjWQ0sA@LZh2F##fxR0xi2PBw4mnxDs;tm`yoSPYJFyzD zL8Y>{HQ3WH5l>i1t`sFjOJdN_2*iNoQQoWtO0S!peBt$5J(KEZij#OQh3vBLL00oZ z^)McmTLRGp;QKMVY@HWg;A>mE5KyaP$F3fvD$QK6w0e1;Yb+(@F2YTE`7x;!TZj(X z+u(3`);rik=9{CxU79T=(JcXdT9Ugle*NnLtjpLs1pv(sf(^vbA$xPU?Vq!-3MC#Z z(u|t_EQt)hQvx8yEZ$)C(oz5-S(uzYlS+oxu2ER`G4C)-YcpR-DNQlC_- zGFsnT`}@HH28&Jqp0F)I_?_fiVY{??=r2$p+3Q$J2zhD!l&sG<%aK91(hN}olRlcw zH%zK#X4kjF>{u~Lo94`>RBS?djJ``H%BO{q;YIZ)fBIF5P%0fMTaS2E%Dn`wj-a%q z)7O8k9473xG~*Gxd!KAthUf{#zqww+3}C2~h+nuaJ5Jf0{*<_p!})DDzNlVuux#>% zJZGfiJXL5k-ytoMo4k`tZ9<|ViR_~Mb-CfXJuB30vM;qRI%ui%gkV!#X=N2*-L)wT~VfPVpfQ}yk>ARZgF{@GdmVd%+x1s-0e<)YggH{WFfE8_R(l5qHxRjtTpuId#UfwD-OE8mDib&<-_-%49(Klvn$9o19%_e0*1_Nz2E2;a_d* z1ENS4fM(4}q(YI{uB4WG|Tyuo?_zzXv zwq_`nv`*$NI`t4GB(q=OgicF`b+k&#*Q3a3;%y5w0ni(&D{ibPX#eAihVuiD2$L zA^;pn`)+%0Y|K^a>@7J^F+sI}C3R@R$);*j*>rc;Q#sDZ0!wA8m{Po_!qqo^>&?kZ zKw-OPRopM_(P>BAe{> zlo0BF?E&}$VXi1f8G^aMplKKJ3yGyK&xzDb81Fllw8V!Z(PHBmMlCZ z(!`>Y>?Jq^gVI_+MOv&ucOUnXyz26s_7s0nOJ&TkHgG2Q>&Rw!ojjhuShfCJLO|?= zaro-3w+FX|zYmQSdl5_lR46hA!l&D5J%#UB74`UP4Kw03fuA;i)Up7AN|9IPFKtp4 zpbv4MWExK6H`fjV>eH$26%N%_tDH)tihwQgc523>9s1iP_?*1ZiSGM;1}*h;gY&NY zN1+IAk;)D9dOMmvna*utS_ivrQ-_&vM))}+2Ts0)BOMeFsNhR)9_=V;#dWXuS>KHu zuCIfx$ylcePjD{KTBs zLvPTGCTKrHQezsL^1g`C^E;expwri+XGupmIPW>ncmcv?Bj@^!=5&DxQvq&HBZ z9%-6r`ARf?ge8LT!-A+fGjb0e@3UO(l{zw(Z(Lw$G(5yU(j-7j`?s>HmO?ydMr-!R zdk15E*f}%~CI?+$$Kqx{f+pubC+_EV#4Gv88XPEoyO`UM$S)8tVxLZ$rF?^p3G9Sd zaq8bUX*Rc|z?jt&%~juZ)D3e?4cP@^cnH$4m@_Ic@sU?rqHYK~kkt!psT zTc|9;_w2Ryn?T#_ZLkxie@OWqOIOi&G*|7Bu#&_#U^D!9*ejWrt-&oowXRY+@uRgv zIV0jrMRvc|Njh_V^~I3~UzeG3dwqv}DhlK4#eO^%JGUnh3)kFHZ;?i@8K!<8Ak?zw zmPPe&O4FwDQ5Yk>@QA0V7{PxB^n#E-O44_M*f4d=@a*-}>mhru8s`0AGR>0J9P6n9 zK|PkAph(XYcMs-_O9-C5gBV=pJw4cwlLA= zD&D6%sp+{y!eniW=i*KMKAHCtbsAF??reJQz01Z7E81lmT5ZHV7qWuUb%KoFGpgGF(Evue~ohR=4 zsQjzh7#2?%Ie$<%{Fcwu6_Aj^^!*wXY$?X4YF8X#~GlH)$2VQFUi%U@%ww@{Rev zD?NC88{3>eMgp^+HrbcTgkh;o5WZOI;X`l6V!_zV8aLz{IdDc&sT91-Z_QOO$yPP= zpC&Ry55Z!>G+#Q`EhMxG{k-;a<{IBbgf$?rS3*Y)#R5rMKIhYO>@fjE+{=8A5(N{b z_xTOa@dnB?2}N5=@j|pOoy#R^C=&q*i0wA*Hbj1!AtZam~;=UFaIdG5)m3JmHAC) zuz>p~!n4c#@Y!N~BK&UyOxc&1hYX36#2G&X%8TB{yM7HkmeB0&*Akg^wdp+?XSaGtung*YDcZ)ml{VH^NQZl^LDtPbe2e zG%>@B0^-qB4U1cBMjkxM*l{vBwjCxl1%9|rn85qqP7K)l0*Eq~ z32up_3ShppIwbj~Mke?3Ie<%zT#>s1>CV#?#Duq6nAZ5L_4P(5Us(xJLnwCy_`e=P zX(Jvfm~jRMO3kYv&1;ol+X_W}Oeb$}5sbO$ia?XnJT=Hh^Hi*0Z+Yyg7_uM`|Hd@T zv_ZK`C!eem&VfeoM^)M^08ewx&PtPD-u5*8)_&8EX7Jhq@Ku^q!W3|WVl$Y-I0 zbv5eM!`v4Byhb!^^hDj@X?E1NInCG%=kpt$ShyO-++eV5vPxVyE%B-ql7nn7cRXOy z_N2*aKRvNj!OKlL9o^WH`0muJ5Jm-Z3{IRao>=eR8dsrcV1yZse4)Sam8a1u zHA(=!&G#c*L@^d6w1lc3$j?y=kg4mzg0i&B>z)>HN2mRqTFFBHIRuqO>> z9Z&BbSEH_`M*EfEE4FgUL4+YzNFdOn-$YCb`0aKM;j{Z@`B#q=<5&}_qQ5?o-$RT; zn(@OqRNNsOXU9iGB(xKEyO9f~RS2d?bauQ1**yqCnqz1!5I(bjg$~%lG^0eQ zQvmX2OrS?n;Jk_WGoI3y#e^m%mQ}*MrMsofJfub-euOt;sR7AsD#?4x1hAvmMsA}Y zIZi@Ivp(e?7u68I>??}rzGYy$FuTTc?~1|YC%kZ#t)Z1W#m}2_xUk%n`g*00abZ~q z7ri_&wU*&Oj!}}u%8ZkBcCEIq@VWaX4SL2!qd)&AcFBDX8ijEdi;4s=ab`C9Npm7E zQB>*@jd=Q7LTWU%bOiU?NxRzwpfkw?%j7s0nk)+V_n6VSmCB66bv`u{Mr8p!AqiE` zY$W%DP=Bc?qjYk2pc#xVN>Z75(|K7mcTC)uR(5#GBb5j5fw8_pG`kX zd#anB?FmR=RW$k_AzV?FhC;ceLjs-U6iqVZraek^F|a~@dA}rJ2oY(nIeViHMcIWkyEi0ISCLS(N+NBAPV}{OSfIKlqt7db zBy{$Q%MlP;5<(|6_r1a-8_agD1k? z$^DP*ldFi&DwiDe+-xSydYZAQ0y*pJhMTv+#ylXB^x9cWmpRw$k@EuSf2NFbo@=w1 zDCOAeq*A`CoviGh-&iP%Gp)5{baa$F_yLfa?>bSCbn-;FsbPw$CLl_pZaYH$1?I*fej-QS=7RL@;4q(g zK|yB^(I?J2j00I#owgC|{9R2FT9%JQ_eCoR;;XI+ru4_KYjQupC1Y)`Kc*Z~CEDP$iQ!}h(e6;twZN8gFOvP%C~ zR(>ReN^rVo9d7wnEQPcwNqcR}s~r({sO!iD5N4&#Vu!p_hp$G{Ygwms->lmqY8W(I z3k=JkeZejz)~v1;yBEiby)A$!a>-*k1UIuZnqdA$0b2?on?Q@MbMz6BGFXH+;k1?^ zAog8`wpMt2MG@|EaU_^Kl0xFk;GQvc1`l#YN=5Q?p~UFS5L`2yi&DMfSDF(O^Z3kwSv#bb%MFVF!bZFH2XQPOQ7Kn-PC^=HJQhC{=m>FS|%_pVS zKGSRt)Q?}Vc<3*8;{th;`OiH0tO@R~1584_S88RTc(HEmIT0{<^ z>Yu+SuHsaZfjqBc^~`T20%!EQIu+6gZ77-7RZ}&m;z}WK3MXMY$ry-XEZ?T!v*%L< zqX&cvdn4XWZhhFHI1(7aJ(5%u==U%5vx`Z+H9OzIK)+)o=VijuTQ8$|{*f zva>=sgeWR|WF3-(Yz_y9R6=HEc2>yFp2y0u_uhMRaBytj>*)3Vyx)KRet%TAp4aob zuE&1dug7(r=au%(<$b{3q}f7oXu~~s?%#yUpE>!-G(KTjcC#T+*WC|pk+be&u)AHX zF#*5-{-v%I3v;x(qKompbF8MFkil1twHqFVD|Ahk{yrR5)6XD8-@aROKfk{$T?qBTvy`K~X|e zV-mDi=iDA#rfSOJJf~WMA^G;VMh=P3$wH?2CT=>l^zt5;h#fTYM5(K;LpvM8CoTuO z#Xe)X;ee}^ZSidt@8c|Wf`Op$NpO7!XT0Y~&z~+pNi*^WC;zKRbKJ-+NS9liRlV=F zzY!tvryfmlKEv|4k5$pons6UP-Ms0HTeTfV#q-A=sU>2S?0TZ6q4QH$B0?%TRPB61 zU#E?Ph@&5ls-}f{T7r_+38_2nsqdXUoe2q9Y+BcZ=)=vbuy;(Fk+U(1L4Eu*!(|F1 zKJ3O_P4NtOoW=Qb|E?9hN9=QM{3dAJa9STsgEwweU3zOyIMVVb#nSMtQm@t%7~WAP zH}Kqi2D=7L?c{L~ldBgVlwvy55L(aS)M|cqKX2~v)i!&(tp%t>ElQVSUIo46G#v`^ z3mY1?u(SKSdN#f`oI|^pJvLHcT}o-s_DQidYni?71>#7Ev}`P8z3G%eZFM(u2^Mtj4jHjvhn6V-eOjX+~h%e z6otOAi(~EjDTj@IP`u%95E{q_7Oz{(Y;mBthfTvUi+_BymsS-9afowIXl$&jCK99i zIHLx2C7<;z!36mtG+Kbe&1tYnTLqU$1TZsNh>K_7Dux~iY-3{!w$pO2n2ScG6s(j+ zYE!Jud@3ehX=un8rXggNHrwKLVso#Lm^+_rPD2%o#**Gv@G)$_ChH0_HDjV{MNiww zhN9*`IR=TxMZ4Kn^HytRFc{XkUI=6m(y9o|`&{kKBpF+wVwC5|N@0rPXI7Pt*)mXw4x91`kRz5H{A$3$Z}NK~On7_NqyhRNRP$=~cnS|WrzDp%EPH%IZjv}H(Lvbmh_&jT zO&{_X8M$pa%0?n{_xP*!4);Wqc<7^I#l$aS!08o^I*xyjBCb+Q0264yP)xx84kjx$ z7oRMizT8-GS(^OiDa&98c>RRMC*%t#0I=#vG-$JG&Qg8NsW^O28WduuPVgr#B2O;^ zC>V7fuM>`?sv)?WR*3bMF5-iF@(NCXO9<`C$Vy@TSeGn;*7o z2=jK1sjHf_o-q1jcyk{?H#5e!p>5(pGHmk*#UB$%pekRwU({!%o&~0ifdZ?p2y#(# z${QM3ylIa8*4tiiZ=+Lu`cYJ$Z0MqbMu-L# zw3^*3lOrrHrIcb)xrzRd>~=DRDATpMRa}DqkWZr2UCb0_aAx!=9loYe@DlOUKFh{s z=h9ccvQLaNv3WYBHZDt3WZLU`NZ*GJ^!f!w))7)=l-k^&F71!gdqq`OXC*L*V~1S_ zR>7fkYlbV;3M1)UB@QoNr(q!CT+SMYTyMXWQw=RD1@%SPOz(q&s>YEM7iuHkS$`9V zNhIzZeA*m1ZcT}TLZ$3 z7>g57DEL-ec=XY3;LGV_P|>_FIB(JG+yI%#IM6_nCNzRR{T(gJK`u73vq82jMZ@vkd-ZWxIP zngJqB_^R=S9;6+Dd7~fCU2ScFWh@q}JBKNDXxPWS;}j#4X98YyX=}Xj^M%oE0cq|) zq<-GKu-2P|E}PqRuhaA}qa&3qGv<@&RJ2$&c;bohms^P1<8aYh*_PB^yN^rp#m5;q zdEi3xPXZ{)x;i+Wpeu;1DxO07r^$NILiM?b44W$xBI*WS9f;ceg9PC2j4P8sCdt_6 z+Av%`F8_NS&QyOns{u1SJ!1U1lrmXu%4K*4naSs5nny*8GZz5TsK+AOK^%mLH(+b_ ztZ)s8=Z8tqcs?(7_i#kT8^k1P`^yr;T&%{b`)g1`pGWM587qvt{EeI}T{Uhj=bMNb zB0E87`5n@yX@;-*bJ0|h+xpjmTztWQ4LV~dc#%Z(Ri-6$)p7 zMSn_7JVE?PKP31E0`S%N_tLtKMaQ?Q)IEqJqz(;&fmi^%7>}AqoV|ywrII>xxv|Y| zZIgy)IyTP06%HW3x&I1BP+>1e;4wg2Apr%9k0r#Hw*Z2O^6W=#zL<72U3+{LwesT9 z_)H3qGUurW6N(|hnb6ikGJ{naL;RmM``?uDxxKfeGhuLbne;8sB z2)eNMQvqK~Ux;D=LBy>KTo%%Vxt*44^z=%KqHc=X`r(W0S&=Gy&2N@u~Y+Rd+e98=7i^WI2K^r06?{muf!Lwxr&e zYeDaWnki*W_YD!l0-vmMZS(4`*;_4RSIha>DotluwT)(_(_9l%)=!rmp0>D`<3@h- zR(iQ$Ii*TOEcfw5o;yROiS#wFii6gJnLhq+)(NgGo)W~5&u3#&K!}?xOaRRhYGKrr8SB%D*oz0{TpKSl_4d2c`OK0 zgy&$d6|IDZYKcCSxX0VbCLd8mtKhs7bJTB#Et{`v^~kv}`--u~)wLJMR1hyr!A=Yauy#Qpz}7fU`iP>CHirV;YX1QMi_OKy zpc7aebZ*PUnP@ymJ1zhd(E>Ogjho;3t3NkERS@C1)TEHF@DW%kONH=3g$)J^&n)M?x2ZZK#`LlmEn~(G2D47_mbC zoAsHYFCu{R!kmx(+@$4n>gojcg+rtAJAWvBP{(SSlf`8!&lx#}aLbPHTP>g-0gX9r zCFKwFe9i`sp{MFYM%Zui<-K~O&YqoLupk5 zFM7qr1jpBj@rrS|+I!B@eDZ-lN#&0Tgg>Dv++>1-Od2DcvCb<79`gwfcmWpXXjr*kc)m6g4zJEVwu zz3&3Nj(RN)e4o@4Bfh|+)MEED)E;tV-K9FUMQAW9fSVIQCK~%yCHR^t*uXB~20PU_ zYmCOND=?5oy|YuIhQaI9O=&02~tNl*!^MO z$*@s@-;A=+bmhg&mbH)ht&==sgEJxA#sIx6OAa@q(3(f5kN@l0cN5&%A`))?bmJS( z-{Rw)w-2F}Yk4MEPDCflE}C|hCq+>o9U7kq1Tlpl1q3loA`u0D{T&s~&diI+X5G&D zk)dCJBG&#kt|VN_Rn{K!YI8qn0xQs= zO08=GlTq{L&wy(H7!SxmbedoR=nkF};A>VrOL4m^_DXw932ZvsMuS~tPRS^^o&Ms6 z+&&~Vw5p3qMs((+YaO77ZIYboat}}A})seuSu-+f4hYI(~tT6e|?Uu zgZOQyF7VQmAc0I)<1W`XZ7&kHof-lQiMyqW`FFpFDOYCaAx zYsc;7FCaovUU0Vb)gCkJC%R9($LGa3t$WI{sCXbP&(Dn_+!+{EmHl(l=X&N zYvt|!a{@N(f3Pe--1h%f6qZx5&3c2%*AzvwQh?d7er)I0C=d?^Go~Bco9%= zq0NOI-UpqZ{ZEzweqGKNk9`tke->#BATYFZ*SqWu|Ep?p+i0*V>0-s5+yEckesCTN z@DDCOfix2~;O>b-$3QyyA?y?Q`o7;h+RNk01Xz&jvwT1_iDJP7?Ivm|cOo1#GFsL& zlP(YDE5w+_XW^GDn-5 zvNtWr%1dRMc;j2G8wKrcs>3S(xx0MqrUw;sqfy3kDs0){te0IM0pZ&t@aeuH#vQ`> zzc)fkDdFe%RVFXr&h2w7o$zd>)U1uLQF*0^20Pu0+7C%*;0uBQIQ_Ky>GXq9;zUhV z7)jEVaf0uGPrf^o2Ysl*ds&8{mCq|T`Ge+rIWfalHQP-9@w(OY6NMx%zWaIQ_4?bZ z*y{rwT@m?ZK085C-2|0JKOa~4oRAqQa2dYZw@D`s4F~%`VM~YI1P)Rf3a%&P$a?nz z&)u}t{bHKxNfP5E;&-0R6i_?ty-%KDZr;bqjPXNbB03t%EZn=bC*;{PT$_f$Qw_5^ z4Q(x0NqZ8j%Mm6$YCp~wbmqb-_-<`FBFX=5f1;h)2RAOdGw^uB8GazO$4@<1mz+>1 z2EIL97(Gh_M=rZU!Kdg`30Ph;`i33% z6wyJs5V=-;vX7Brl*z^>vqjz{L&9jKs0AAK#vPpNn|aZcM)}80(BNx=gpa~`Z57!- zT~$xi3+t(EIIYoa2|6+}!Q@+YG_Ndq`mo8wdpaxBe?%9 zf{plY>gan8iGsF*GM^d0_y?sA?;qZF^KN~kgn2>F<9%B%2%Ok>ej))oPaM5{Jol`4 z%x{T(NOycnN( zyECs#LMr*#WUZjvp%L8ss63lUjZf-~g3a1B@p^kR#ux1AEcXz*F+9O7fCXFW5uZJF)EAQGbH7p2$<_F@0~yvKm7UkcWAmK~x~HMx94FG0U_r~J;s=?d4ni*>-Z zG-gYKVWmKD-|TNwa)Jcq`GD?E!4gLQNQoNNvNi%dM z`>-uQGQ54Ls-?hFYueH}vvZh^_8j~TD$D2nUBf{gM>pgx*1+v@XX;{ux+LxcYr|Gb zlF+@mgWqF*+h1c?KkNIE2tOnxP>8VTo6wcDS|PEcA0W?HVuvgJx=C$eM0VMbb3oqW zgnr#6GcgR}x_88y9i^y|;dT2~S%$`)%!2Z*;JIXL_TCAu_TKj#?K!oNs%JORSC55G z>^}5u$XS~wu%x6tw7itK`)y5^lgcNl#JxJ!nFhknUX*ov)6j)CVjwXk*Vwalji(Zs zH&wL{Hx`#pN>pHo-IbM4DI*q2iibbxf$C|fJ)r-&CgSG3Mf$V53(0jkJg&Zlc;iS# z%_LDqN5v5*}O{OJ~0`V>@wtiIM?b?harnZ-)9*#JN@Tf zhd3Y7oPSxtsgcIL*?@)HaWzm#f(uch+oy#aY`BKUiG38r7dt93>@wj%sRU$eu+1n*siLJd>gX;n}Eqno1rO_3o?>0 z@yu`*!N~K~IU5p$Esqaz<3oORejDEoI?&V5V~?VaWz|pm&M{v`IIsiI0zhz*f2XA`hGh% zz!I$%983*3cYjzO;--gU2wo_usQX%2xb7?*P0Fv`5gY6e7mbl^=@$t~ImCytWfM{* z%Uo|ix99E;x2FWj_5S^rF@mqGO_%;U8l+GFk24@B`=LF)QPmsOZt=!mPWb4Ae2tFX zzcYWf#}k(@t6f~q z&^gA_0`FHU_CX2Can9r61%H2UY)O)-1QA%Ri0+ONxf-OM74jZx!{)Y zOnG%<09ZanR+MAkiomdOx$M-*vz|VumukOO0pEUc9x(W-& zBM9{f+k7DRntpTv`<|n@h&5m9+GtJ zoqmN*fz>|Sxb4k^dNBTq)w^O7f48=3?jF@F1kV7A2Vue8IxSH-N9pnL>J>LJTx`PP zFB_5>QR41=$C7b%2g}n<pMGa_h&$5tpN6-p4=AC_-_^kH3^HevYS}vsH=Bcl{8eKi>5OckAPy| z9@s7m5QiqQ(G6VP^#p8PEK77e->+Ph9d1(vQ4X*odENF(@E>IoM3C{*lNm%t!eziY z%R>cknenlVWA(1lqpYGL-tMRuh~-;f62q2<_L72xyfc1<9DL>*Zo@x$VnN(alOT0q zcT%?@=SnPtwa2>+rlxS)B61V^DEVxI+52om4#jwahvq}ee^9pd&RCY+5z3DuDEqui zn%eC~hhjLna?ZCqPcIKZAzdvQFs8)#WUrkR>tj*vOlqjO_l#l+X z^Lh2uP0?6uWuM^+@x$DTxFz2LvVAH%*{yGtOhhL!-X>Q(zHANYa-wvVyvQ<8qo?@! zPku;AFl@~&e*`vzW%gQ#5?lv(n)~CmXUOLkC+_Ixk4((Fb&Ap~AP!VqR>5Bpc^;TJ z#z4JA;11D2amjhp{W$l!ihJ4Jx}G0jN_y#@a6VL8o6YNr%fM8}M>)d&f{Z+#z^6f1 z4)7l_Wm{4uC)zM=uo8I>Y~;33F0Fr9i{t~Nz@b6HgD(fMT5tN|2o72Odn!8+944eF1!tBA5vF2xs1JfXJr=CEnM#zhhDeGbNowwh5TTfno z3^iN|ESPqATysXObA2-9tC_QFA=3k|T~eWv!;_j6LXVHD#5Vi1$;ssW$h@pNY1&j+ zh|C&gO%QKc{Ij)*SxQb-&vSa!Omb7>A2ES`Skv&C}~F1txhV%PO4`!W;&7ILhu2ou-`lPN6SCVeYya6MNJ zxM3mllvO3@xmro;7%^H^>-_YROq07fzhPPh9e{)0WoA!yBDJlm>su4N!6uk2#=4Gn z+3WwcX?@NEfuVxy(^2;#c}>t8Kr`Y&0zixZJ1>_T&DYR!^1$@Ngb($V1JnQL-FbJe zsh3A#e`8h&RFjgng`m^4i%yeB-LZkbWs9vF!ks=9bnXL#T>a3WS^cgt=x-8@-!D(P zgfLj^ZSOYnK*gkzLuIyw{vT1CTct5B;Gi==iIE^FNR! zO%T7~l!#8i?$PYL&?Hw;c~G8-fHixl3 z(s{o1X)mRqMm(F8OT^>?enF!;6A+}?jN1UJitNqrGs(~mYtDY3R{v(*Nv?~06}fO%Ql&@fY;YI6 z`CGpMQril_6uHAAX)1tC!U)w{ec;sydV0QWcujIJ0i)QCN&>kbbH7oypW6+@wP{_7 z0KW<>j`QM?;-BbmCXHFwcc_1Ei2(pB;>A7^CO87MN~?Mf1;dRTZ?g?1Ls~%YW`R?> zgc2>@E0J}8B3e?r`I(Tl?(NDm8)RH^!rsm9gx!sE$?@^ zN|PusJdgA6xo(c(lOSsT7TiU$7j9b*lmja_=ehFdMy+2X6we!mY#Fk<3r_r?nYF=e zu9O|}>vod&LOt*kZXAUkLL4XO=Orc=^+2l5|6zk)GOxOCT(Ye6&YO4Yl7xbR_Bo)@ zn1AY${_`WERaqp>d|4>eNGw#QbfWjEnn-Eh6D>j-1Y9bPY8lvIvsTBLA&6TWE)w!tZ8@2fot&j;H$kd-V_X^0J zu3xr)Cmr9P$LNmDNL6uoS6>kT;m#r2W9xf1R~891dhw}VMx#;@o1x%cTagN&2+%l5 z!!;GAOU^ezxgB7JLz)hfOXolhwh^vp3(nrplVv&_Lh1pW&>5e)^r9UEK^e5UmJl0f zzXb8Tq?ccGij1+HC#kIf4iTK5(V$vRF0qGEt&)&)$SJ2p8yK0Xi7!KT4^5s+@7ydj_@rh}JMTjgaG;dChK(}XWwWATnSX(e2yf_2W9kv>tH0d2=IgqFZVI0hR}+HxX1+^_5i|oK!SJAs_V=0m_-|6SZE6 z@=dMa`vshzLz%$xS*<`C$P{RE`nFxtbyXcUklbZJRgOa9I=_lAboF+|6!pt*SYtzC z3o&=2pQ{C)%(>-xHwm0FcqChLhgCnA?_cfdb>}`?atCMg89%?z+)8u}p3(UQedD`o zp?%?KAr%jdqThfeIQCYM=@FY^W-g36IY#DP^l$%5ksKwm)UJ^$Lj^BNDT6Ja)CzP| zipv_?@m$gQHB6?mEcw+W+QU!nH%1-Aq-0cg#7(1UHF2ZeO{HHq8VX(@xb-o2AKybc7FnFM%4kx>-v6HtM2Z~qe7G2k zxgV266v+XAF>I4{%E#K1R8`S9)ocCRW8-(x7BF(a+IyU0!l;=PC%-&Md)O;IDOc#$ zE-)}ooBsmYO{TUi8F)c7$-Thbe(6pB*S}WHKbrn0|Hzf72WhM30GL4DMrOLw;Yg59 zGK=`VXOHLOT zcSTf{39f12j3(jTU;kbmPVV0QICfO>UVQ8@@*V(wl;(aWpi+T}nfu}4$MD|sEPS?$K<-0kLopLY~PwULt+xrbuJsH(4%ES~ImfV$P2Sa6EN$OR;Zr_>emT&A& zz4MiyP7FO4*|XX9uBY=^@V&EtQU@FZ{gR$*kMx83u%(8t1qn6-RV`m{V1+gID{y_f zGWy#j+ruk?qzjJIB`$G(tW@0i2w7M9^}WeX8!4^fy;KDt6ZfV%J`ESp87_%sLw{!1 z^9KF*81moagKVf#T0Nr=c--jj4_Ug365ed+t?Wz~IdWEkqlRM@CCG*O74Q!!f+0gX!F|mw-D1Mf9lCDoXd>6WhKaq7T85Z zPCD(s7)FyAKlNT^n?9`yn;DhlGM6_Grpr@v=_H6;AFM4>{Mk8H_!h}EOHCaq$}R2N zq5QeW2e|LTjax7Q>c)_fELzua8*2Z{Yw*kc1L=`e5SN{}5ws;){b;rrlzMBD8~iAp+6kQ*KoN&MGR zbx3%k`@tvZRs!_c>0}h7=U8QSn?a-`6^TEZ2p=0cijRp|n)G16!o>?5h`@=VDhJ$n+4@j)q z+gUNhEp`dHEbB59-CSYIbX5G4TG*e2B`oLh5eEM9Dl7 zOVl8leQ&rlu4h3!;ln$%bBwaJ!BUb}b*S}EnQ6F^w06M_td@@92c*fi++ytq8&qyF zr;QB`h9K&_sbO=A$t^LQDQIYUWG_X4N&Omn0czy7)oB8t^Uz>PYZ30e4ow4DX;gL$*D|ly6#AM4xi;QP zCCdGOp5uDF2DP$ya=qxPL}6EMCjY@Dlk?hwb4S#s!nLKBxC3*+-hjPT1U z3b$Fg0I_}xlO>ArBAGyMv)I?sDmt_Iju#WAvM>G`c|+7Rt4VSg8K-Jt9&x5dPnn78!pHja<`boSx(XxYEZ*~llofA|S!V)NBE46IHyNpi2gBTcm7A0L~N zs*NSWW#o|Z(%&lOrNd+{T4<$T5TWrgtwPtUBd4n0E{J+vms^rcp2U#4^*+ayuA$lr z`ODgy3IdeSUiwjHOXwo%cK{KMeDW=Uvm01eJ|;^Fj{|_C1?Epo5y|O2?bgb9lJ7_l zh}4z`Lq>xu-AQdNOoMw3Paq8pBt3l}>*Ff@Al&engqm2C+LHOlFI?fF`^Q_5@0|zD zZ5>m3R?!)SC1()sb(`D30XqBQ2uC+LHI>zUFMvyj90wnk`#9upe$}{^7Xae*5e7PL z+l~>x)1Me_ro!nK7H0Xn5g?(>ES#O;-{gJ3EmsVYGvs}sVaQuTK&5MFomIPloAtPT ze-@iXl|&&K_>Mn3${#6BQk~8ZMlGzMRy&}l#?cDo)VQI!G!X{tduHNNo};g`?FU?fk5qSfHAIpUJ*khStZzdpA=7h(8LExXwYStUj{<%Na;#Z)meJ-Fd9y zkOY20m^c?BqPl72y#8nkR7CH6#oVv|85p_f{_NrhlQNTpq7{w1oxa69Ax7o?d#e%h<4GIhI#PckO{Y@Q!)@x6XFh*y{RTT@~e;mnk(fLnY8Y;afTv zDX2X*Ls`Rvr-a}gE*C8C+^-E}^UkM9E$3St`XsY;i`v8LnCaw*EpeiS#Rg;xZ>#1Mx)`RB(PJ%uox(;Mq zFOhxR!{z+OQ=Xp`gP*1W6o!%toQw`~?g`~zNO0NQQBwJ^co;x2%>A#>F$=9y8L(*q zUA_a30;bhTw+v6f^$~Fp#d3=QM{H`gZA}q-*}zHt27Hi^CEW`t?XbKC zhPz`}*FoK3PN$Wbf9Q61VIi3*^$Zn- zs&hE#LE)*Ks(J1I_G#cCe^6Db=o7F8ujblk-CY5eIUA*)6?$3Harmd!?P9a1wyiq@L*R%XWQQOmHHb zKu}J1)QidBWEPaP{amLEoU^vIVdpX!yM}#qRQoz4;hs>onlZ-tNo(~}DdtOhn^xDR zJ3oCCAr)Q*b2L`?4gQR9bK9+UBS!=kyfL*)^D1PX=)jB666Ky@8+=(LlQlk;f{vF- zG`Y2D6_7nb(9d^AOUy?{q~|Ej-lm7#Rq^zcrlC6U`yTg|-)=ZnI8o+oGNimr?_}8A zn9s=-`sxPE!G^{HdOb^}d0a0C!GWbY{U{da7Wv+|tdxJp!(@Kvmotuo2{}tBj?8B> zn>_7FZRQ`}lSU-rBr*6h97p48a~#it6F-Z?eM@vjz@0z!?BMI{+WSUeE%!ZiW&Mu&BQnD$71aGY=-XLrxauZ|z8 zd+;15RWjpLJ049IV!r0t)V8E7cohmo^%6jn2jG;yM_PPR<8w*k(APFk33 z!s8XePv*gO&7^RkoLJ((Uf9Wy9#FdcS2xazE=yp>?Jpe@)5rC831(w(eR3ydB+gU+qso;uTL=s2UE^_e z&BjebH5&I$baP|>$zkBnxExq^4R7UuSo-(#EZgCZBIYB~-&^KvVjZ^QV;i5>pij=I zA?BL$o?PX6)ZU?e5(;jE?aN@1rDt=SE0pF>$;M}mvh(78b@cc7ll~H$?tN@Othh@& z5H`7V9hEl$$w+uL;I}s}B$;EiVs53RJo6!QzWY4RO-uP@5I-5&#!38OuPnn-+c_reE)56%=7h^l9Nqg1vt^uMhpwA-^ubQ<6t9%a zTV=DvBr7!t`CpH!sdC+SJF}oVI_Nh&{+TT%xZv2un97sr=G#*1ke1$vdW%wJXoMI{ zrY27mwxJo{lmsIeN`VuWp`S~C{I4vOFM&vKXB8rpcm69H(#ov{3 zGtIZ1EKM)&Nooz!Y4@r7B6}kfN@nxSev+Z2Cm;{F)^>iqo+3u<7LoWGaDF<)?%c2J zo7gOJCSc@R{~$r^lhR zxG5!XRmc8D7CwTRZoGJ!Uy2jDGaGa854S8w459ri!DjyIg5T)8H;BaDY)WN0Qu5I@yO@$?y} zTqM42%wmSO$dPjmVrHA&V!B^`TZI9a)}O>E~w&&+W07;!}7dG2i< zd)X-`Qwr<%?Kkq}60L^5rShJSb$NQ89PDiz=b@oz#CUk;=Xkik{%|~dp}hB!Td}L1 zORM?$ORfSJty$`?$YK185ee{Aln4l^@Gj$B0sm*gWB)_9^*N9bZ|C+syj$Rj%LhJZ z8+%KK_ok+f4ty8?2=lsFeTWMm3yOV6@fFRr#}I-h_+jEJqb2rW^|y%TKtr*~i~LXg z#qkZlS1X-unO}4C^6GN5ToXMP5!@%or2A*YQ>w?b-B%di``$puNjkaiu!}*#1fB*x zO67RQb0;!|_E%5eEGGT%_3zKQw*<*3=;Bjaf4~;uF#mpTz&^Aw(|9vtUtVN=1XNJ{ohu4p6zu@U)g}FzvH^gv}R_foX(FGHd7@W zNxM{9h<)D)r^JiUUz%wg%+7TvsyAAdq9NtLtG=`C1nDjvY?umH&kv=y#26$XAJ*hu zlXz&yp8n_Sd41kJ7c7+*y!mgFAm59K6lN#&bu(kSdp?ZC-)FH-by~=)#$7oSZ}=LA z1J$J(>&9e;p8y_!;&uf93kZ7KSjRp_mf47e`9|DF^)eIRw{$-0yAbdZJc zMg)bMDYzZv`-~TOOJ|v~b(%APm{<6}_`?Nn-e?(pO1WjEaP1 z?LU*fu(E8#R50rh*jwvel$Dc}E|Wx}Sgtw_!G<(wIjqZsh$Mqxv9qj&;_dC+=8MlO zvk2ea#Fzi{jDMC^yu|qR$2Yb3H;Mm1chg_6qLj~Q-K}3vIIK;&)u6So`=1}!AGt5Z zRh%M9E7r2qPd7W3*7i0UFk=|(RCUdfh5hNIUSH{b5onwg^1J78eC7#isT5u9By_su zWAiehs;s=)6;@Jn;B`EGA3)DXTsl-8)5WEnjGDSMO%)J$Ogw4OnMw|FVQAWcpR(l{Bm=5 zloM33GMDdq;%FtW&3wfD&CtUgS@OWyL_TFa>w&BAT)Cd$XfuP|yQ#&1lacv=hvW`T z3-xi^-2sBfSIyjwTBDD5eFYh*MKP-Nw}XSl2!8W)EQ|T(b}W;~B|hzGy-hLkqvrvZ z^P5)Z$MKxoR`Wrk_r%Y)0%ow$XJ0}#1c?I#d1)5|eBQ;0JrkWHQ12X1cTUf(>%>yX z@wG4C_BD*@aiB1W?VHF z`j?{&lTfIZ=S{|HonGo8S4Kj7XrH)0NsOqDTcBWd*;|vt8Tv;*j0!OTUKS zLn`QcIXUXxF1_5)J4d4AuH^ToSA4D8--o+VKjo5@-W&{gWUp{dtmO7x&qufKCLZw1 z{tq#6|Nj%yh$H5$ulq#9HM{bMvJyfj&Cly8n0^S%LlCVL6x9z?%$QyOuhz7_eq3$} zkT2I(EfOG{x9)g<&$%%~J(gw1ER1ExfJv}%q5j%-cixali}q~am%9*wv}VLv_+4h# znUoHKXn21*t@4m|n6lxxp#d}wdOx1WJm@fkUbsWmn_h&rGz@J}eK7wQI~2yAm?-60 zQxoUzWOsZxFP|&Brg*Y9M%$Um@@A!8MPkcbyhRXFO9l63xMZeGqB zRx?o-+Z9%m{CVKrH1_QZ@$TUv?b@17O7By4Yg;ShS9QX~+9U~*<<$o}C$Q7bzCHMP zUKq+iB+N`(8LEFjYPxg1iW6^CqoMA(`r4Ya++z^~?X|U*g$kPt8@_65bKXe%g#Ce0 z1l)FcZF4Viy!uGWIq!UZbB_;gcs|b8KhXv~Sq!c@-19t$bv`>&@Z>&s#_lXR^Le^r zchH-LXEPJz(2=316Pi|QYZ=Ft9UkQxO2eL>FKGio6sPCqX_TCCl33ozxwanKHSNCR`-=gElb)&kmm>OJX7+) z({>m#xzx#_yESJbBDNlowO$KRnsF1vlYyCsRR(K033N^2+o z?7$N(YiU@lmhsdxip+NE!vk9;CM6RQDqnPxfvjy`SFocgJ6SeLvY4KZh9k|rRC;Wi z;Xqmat@O)Gf(4@hG~0`d0_HbJzQy5M}2@er|Y^MzTz6A-+$bZ1?TOUk)c~hJb>p z&)4_UJCkWzhi%;aA9(a&2}jUwF_Lj?SOp$2$6Pjt_Z>-^AL*i`4IbCJd9HuN9_Y|j zCe^xn_wwN#e$QQR^um;-N6I$bO$$KNyce$_@NxXc-OI7}j3Hoq;`8;IbVw#m>w&d+ z+Qrz1n{JQw&L5VW0$i> zzAcxy8-+|#W#n8#eVWA;|B`stk8Bc86Sl%*>dBf|y{wF%+<$dT;OjA6H09T9<3Qq9 zKTz=olHy2@m{qUX`U*Olvc(84qS!af75IwNS`V#$7sQeXY_+L|copbyi92=U>8;>I zV|u9!nvpY%Bz8B#I=jh#JgPN#EWkEhcX;(l2>&tG{e!E_vSsSJ!ZvAO=}2DL!r!AE z^P}y=&r4ML4z_7V{-@Z9;q_9?D*WT40bAQ%sw(EUJcF&Ta@Nxk#q{(?iX&5e{jhan z$QI*{7dC@@-ROh-<>T5+dMj z=Tus0g!TEKNV-b43G7@XGbYemcO;r%`!v?vNH6F*X@uvxoqrL-hSx%+5BHQLZ$0LTzsD=-1+74z#=`|ZK?1F0^`E?mUgK{SXS|8!DYIBSh)ovc+&o52#*<=-r zk?b;=oyU-t{Ba=0KN!DXv9O$P6iqb9Hwe3n_kRdSqagXrVbxQpcW%fH0!x$VD;Z(p z>fj1w)1UwS;PWt&vcWX*lWIF#opO$<}j8+vNuKPig&%oU*NBTY}FYh~oR65L^j=Y9w86UA* zm+l`d^`j#!uZ~`dob=6{Wl$cKO*|Fjahx>SI0J9-;BXF+WI&;Bam)Oo3NRcw;~Bjm za?+>?rr-W06D#WKnlPN(3pZT8~p>#t0SZjwT8fxV4U!_2HyD(oZmP>?e_(jFD zl$mBL3CP~Is9aL~-omlbzA5IuH;`~XFyKG7*|~715_>Z3 zJMz(Mchb}e9o?)_vu#q?Z2Vd}`24Bdg0?6FeLr z8nj8b7x-BmU*R+u4Tu}()zqidO&o8w4GVH>B<^k8Ylyt6Wow#e#JoIAU^7?ml?tEv zky^VkE^EES=p@b%@V);t#%wzEUHV{4&CJLH;6t;^Qph*XXqL8@A z9`_6ea!lUrK`pD$JqwiHp~)5m+k%oI zU!s-7J%VN}#cO1?&FtKb$d-`>bH-cMy6s;c!I9;h=INGq-_xBg$-<8~Q))h!Gcx&MLxi5}T`ECuVA=jw(O0=C``Xtd}^kUM-7f)|Or|9}FHR6Olja zB+P92|G0X~usFhITNHP9cXxMp4FnP-!6mo`*TECq2@ot;2*KSQ26uNDEVygnH2J=L z?mqVyPcu+&z13B#R;}*ou8&izZ&xUSf6c30c(L0C$V5~9Hx1G`vJcENQ&8EZwKWLO zNq{|dk|hhk9+{WME{ibVRc%YtkpD(;Q^&GjalnVP*fa7+n_#t@07&sQKTmrIKviIY z*PNS=y?4Fx%lTm!TaM?DF?9QP;Up+a2rH+4*4b@}0Mah5YqN)ORh(5vMlP~^V6Y>> zHMO$tfUQYerm83his6%HppjDeU`&e(%`?SE@dY&U-gV!PQq~Tm49|9wa{T?0KJ2ZF zEP4b3x&x1{4bcA>Kc|q9_$;jgrkn=>Q|;Pmzf~3QVhwqu8T=GE^o?n^MO_E^D9+mW z78@YQyN`u%{2H1zFj0?%O)8?Eno=cA;fzWdAtIp9DIO2G;adju8dwj@*RS@D0ehC3 z^X00F$w7vq(hNgV<%Y(z+6b=4d=yL}z)sKna)RtI%JEtc3<|RZe+B`+0uc6HurP2| zF<5c|*T^20b^ueAh^y-kH`>0Hs)`G7$I{XaM~XKl#=)rkBQm6YRuftJ=Dm&YHW z1Km6c*y2B<5S($gp2D(d<9^-d_kV5vzuP1MY_)3_SG{g?j|D#cj9kwg^O1yjT^dL@ z=yg?KS;=+I(f6)?g?H?`EXOlJ&%j<|H9pXW!0$@^85*Mq)yyb`+)bM%S+Aw=_`gfxX8M0h;R5Qe^W;?Eu>^CakoM>m*?~fMwNyoU-${bGprP;#bRtQr zf33(-2#7fP3?n-~S!QkRYXpU{a)1cf@7qRvPC@Lva1U&-(O_TaAkP!8_k&NLpwMsk zkBPnkU(9+*`HJi}K=$vU<>$!^nSHi_UAa(6I+Ski7qHt0>4*Ge74^h|$|;5HPb|Lq zpIt`%+awLl5iBYXHuOah5HO^8%-`oyaDM$xgPWJI7!|^;T8+%Gk_^_*?Vv2-eURXs zv)2?6K`>APjF>7LZFOW6KFh}jJJ6LOzzJp76m3*htOXsLNHctp@^Ch$orb9n;is_9 z)_H@ z=tm^Ox36S(=i(PI&-`nlhu7g85uBsVi;8Gb9fQfQ8!^J=c7=!GWEJTxBD`Kb%=`-H< zoDDc)UPbe1TmxfTON>Zk>(;-k?_AE#=~S~#jm9(q@%-l=Z_AHrws&k28+7Hr_r%|M zTk7gOr^MC8u>Khw|4GD)-6$UcW)~@NObFp-Fl$hXN5)O~I5Q9a_GN`822t%ws9Wx` zEA0Ub*%0UHC;2NKIGCnA%7(?Q+vCB_w@O7|2%i10m;#F%RXW>0K=SRIZge^l+ILxt z4Kgj*fmaR?L8BN4iya*mf|CbP}-*D+%h@*Ny7v0SzW)%%6LQLcyaFf~v zGVW5B>6tASa|HUYpoiEj=9B`@LvdIZ=}sK6s6gnQSdMf!i+h(XNx zDHdz+YrErHk*W;G>^)kQRQy|be+63?d}{Y5wOKrPU`*21V<-()F`*r4CLSAHpzm9r@C zK9B0u_obA^#le#9S6j6mE3G2AGb!PFEfRTiEf~gaBw=F3nL%f+YH^kYD$73>*7gcR z`%A62xD@{e|7Lk*mp;z#Vv~MuKR)30WzvfT^R_rs6$h&J2W&3P_ydRxK~H7mPCId)f+lig)U;b)NU$;bJp}FLka$cncxZqW`y7uA zn7ERfszCpL0GI6l%Ll~&#@Y9=y ztPzcx<|M?(O8SFktpFzxn(zSYUQRJuEK#`Ac(= zfJMimu8HKw-*YFdey&#=S=E$xq>A8mp&!rTAysYbAu*?NC0%)8)u(bd3ka{ONY|-c zJL3!7jfHba&)$c*@Od&LX1`0T?&b6zVi2Wn&!)0@rUdR9z)U-R?S#dy>X)s$DWQk^ z|E@~lY7Q5vDvrS|RAXDXGDxMW8`Fy7QVlC?ccpi3#}nM?4Pr;kxB3*GvDX6nP;Dov z-BEuxaaYehahFkTN|u;)(CwV7mtHNo9rQO%MR2Id4~FEBs!JGwJh*gg=yXm07&TOI z=oCP7zQ;qFq3;YW!lav1n6zxZ>J=g0Vk(+ z1%Cgg`1^99%RTl~GV#6rjC@x4OpPGZ4n#A?xtQ#Re=IrxA^IAYg;lg+D#vrq)oq{6 z7e=i^@1w)RKqr=4V1v9AdKU*dHZ+9;js*=2-xAO>@h?YF7KB z@+S58a#G8-NA*{5SPgY0NF!sxNY++mtLfPYwKc1eP(-l0$e4 z)na<*IEnlZ?=M?~{u=uz@mnhzlXSX)LT+zz0s4wkw;vaXH!w!hc)I@mNsk1WB7%Fz zaVr2h=K58Rk=0<{X@OsIoJN#5;J#3fE7AA^NL34r_!iX%v^ljE2@Vfn##yh*1K;m` zo)Sfcb_xGCw6q2VdHs$|_E!PKckjugPCsb`oqG9yY$>kn^WDd|$5>f4hn!God(L+e ztyi@G^X(~k_1MnBPw}K27)^Z19?0|QHMr*SrIBs3bEn`4ZdD~=EcY-(0}l2{vZ-t^ zP9Dz`bN{d6b(LmoR_VN)g$%m%jsCuF{^v=ANE^W;06v`wR=5MmD`N2dtXD2tT+h(P zNkuu54uU$+kjj#~3^&X^$FzxUqH&KQ_YZA2I#+efop63;D`7n{ zQ6pZ!C$RW|#&5FnjV{?l*b{5IMZ`U4=ac48(S z1B*v{9F^taqX8(uxWfI|1gn;5d$fbJ7v%C>F&a=)(HT%bRko_T@FMP2e1tf5%Iz8u zS8{o168(4K9^axn0P=Lh&vQe&r@IaPD9-V++Cm>O=FaZ=PlR*4+6H;dRUU4e+X(U5 zAf4Rz$H6Xrh23+}V2=pT*6MHJU|2rB>AV+L0PMO400JDjXh*QxUF`RDz(Y^SldafB z%ZKdhF9+8eCr^Jq==l{-ut*7Ri+Tnq%f_^!nWj-o8{<4Esq;k<6>|+}*n32F z4p?1RpFRu~=`a+r_hA<5So=>Y8J+&GQfjQJyU&bOjm=3r;~&tCY>?Qt*0_oA6RmT+ zEu15H9f~>-EMJI}CYx zOXQVT0+l2WR1!`J>+h;X{cex2w@*J#k(;_BMR@}*+y-BXv~Z(VC3AQ=sk7_G_(p*` zzlXLo!t>u9$Mm{aSx|`mZib+7XQNUt9qNS8wgngF?2AUcqMwYo8KU{o07Vs55-!Ze zmq(ICWN7bR63jP96jn7kExrGvH#&_3oZw9tk+hU_KD!uIjRu?$03%mRMde@Gj=T1x z<96&EsDXvQtItAmKYA=2|yL&AGpPRV{n!HJWXO1=!vJ(m4B+N2WxjpGN$SuM9h|LhV2* zu)-4UFtEZTFguc9TA#Ww95-#3Mww1!leR~$Cf}@_TC(%sXu&PT)%eDQ7y>fr@gPkD z*~bIy$ujnb_E4r$hEClZrgx(b-rjH;1hE2hywRm_VYzb}hVdn!Yqc52S0V8Uw5_erE6Ibl z2uYlxq+H_W<^}iCjMwQX{|fsVfnMAGO0x8NfGPzHhpRX_ zp3iIZPtC%73U(-lH$lvy5xq-Z>cUWXgM=bb8^6>=l4;Y`5}n}jA4+%8ju%nexw-+< zx;x7n=9CA20#8T+wEwFDEW!FJf<|0}{jxgW>FMBZ&)@JHusJl8cgYW(82z=tWfcM~ zNlExVXDK53loXfr0{6a0Ue(5(!!*yqH8 zyg`&hGjNwI(*Jt7;I+yUrCzHn3C=b8_%5A7>EX!be+!UzwU`f1|KXnz>cs!yj#o$L z+8g!F9n0&YCCf{NwCkc(%PinfVXyjV4%zY80eh#;VV9Q!<^s*V-~FZ{)bPSGooW< ze)eRiK+QJ}>omWj)8gL5W7yJ(EE5--MuMrg3cBiRorV{_)@ctQJ6BN>r~a$c4gEec ziTP`&@#EbymCaNbKb2hQ69ahaUf;|s*W=Az9r{Q00Nejm%>bRMEPg+Xu7N2)RGVNJcdWxj zT-(n6fPpSv_^R$mSSTxlbL_gi0DIdIp z#QeQtynh9H`G?QfqxAnun{(lDWwoCXAEw7X#A0Mw>K3g-7R#m)JFAY2xGbqES|7)( zPCFiV9{+R0!uD{& z5BQz$p+4GnYE;2_zeoLDQUvuTa|xoHN>#@abUjPZ8PcvrZ~wwKd;n{r!U=KWGX1qz4N#*h#y&J%Yk4hgOK^P94@dED=Wkb*krC>L!Rw1wB&i zCvt{B<2~$)R8WwTig@I^pTr{j+$lqu5=-_EP(m52s8U=r)2-uRxDZ422z7Ya0K%)h ziX>D7DoCqz*n$zFi&)F!>*r*{0t=C*v?# zTQ!>PfslyV+vS66`mL=b1ebsvzduv#99YWhbt$}=Szsx-Ab(&f`JnIW#*BpU7Xq*_ zS@JX8!;}%)P*HSTdT?D1qtIUYid&#oSmBK#IkXupeD3Jad@%!Cpcz=^jdnSt85HuX z6cp1(#cef8D9RdNXfQ}5{gyZ#tupPPvIH$Y^WYG|BNgyTii+5a&WBEkI>b6JUK-96 zqwL|M6+}E1K_iJ*Zc|y9>Rt*z>_(2ntw_MZXOG=7!%~Q+y<2_lePR9t;W320-OY9aND)JYa!K(09Cw}*p#1+3^WIisq-XKAjlPz z3HuIWLrrxlMfIEeEn-#^zPp!~sn3L0>ktYZrBcW>Lv!xuhLANL!`3cs*&<93{c0PO zoV5A@U>$EE)nnlu9{AghyX#vjI}xgQCb20p8qQ96JT#6UT>g-*ue2AzNw|o<(J(;h z;qBDqq|qIz*MyRm$QTd@5r3GpePtS1LtsS3)Q~@CfZYMIwdBMI>PM~-a50+!`zX@H6mL$BrG#e>t_KmQW7R4Jk1rxzg@@Erol9XCuw%oyx5#5HV=f1;z=~J8 zEW`LrEMg!!0>=yyd4F2fQV@J92>L^vU&l8!AjMDx@qI zQa-30JhmP@1FJqUCx`C_(rqNH3tttpv(}doOJ786&Rre+8oY(LdhCYb`2cmd1SAUS z%wqdExHhQGAws<_XvM*paUS8K0T#wamR;AEq$*yjw+r`+$en?sQsq4!0a!d9(do^V zw3TmIkOcILqiI~lSE)OYqs_S-HD6b5$Lbq%^D#y6beyuoB%5=bkG9dm8MR zF}2h7Hw@UJdMlKNzD{{fY~HIa_a-QX@uo&2nuI*>sCx*Kn5eupl@FjYWx{L4y-1{| znWzGV5|TyiQHc@APrQ`uMC98WeW97c9=8k?itx6gPzBzjT=fC*)ym~`r2SNl&?Ymr znfy5GvJ}~jBM%kI)b*V!RS=7645t?~2Sx1`YrD^0R@u)YjrIlE7Ku8aWOKN}g>161 z%PrE+{1%1^?>43-I$E<=kicGrX`l4g-Bm_dhi|QNQPLWF-zlT)L|lnpE_qT z`0WQ*&|tA#20OJo{j-?u{xc6dbt(`9R;6YwbRK?P&v$tTulqlSvEW|~tKq#GWsJgU~K@bzB+3(4TI@q#4NjtaDuX3jTzIBu9ESC=(ZC2zjyzY;r2GE zRLb9=(@0N>w!)WM3u1HDruiBiNG4b}*b1X09uIq>TA=A1Q&+J%$_CivdIdn|p2lIY zg%p~3R}l{=+y$@+%@>UyWU-MDH*y~KSZAh^>xC`b#gnZtX796^6vG98g*cFKIPk!C zwjFx75#s%GQI@ih@=ZwXJX^>uztOBOv_aK&`EPU3P9vPhz-QXRKJ@!%8IVp0>cCBf zD}KmFBV#jWhdZO zAL`tsAwVF^!~1O!_E9D;AI)PoNJ-C}CO$ZUOtAjdZ9giExlCZ=w02ISuNx;^1kk3- z5W+!=3-6KupBV|$3*6!)x1RzJ(a>}WCo(kADbC$ zR;fUI^j{!`Z_s;O+GOgXaE)9=tw+0Q)LyZqGTY4FxU&Va&vU0xGh&-!|a+ ze;`=V)J((?t+a>CvN8#?0BBE!cnpPg4Oy`~N7M}fvdeX?p8ShO%fD!>{)@)(Ycv#> zfHdIvVd9J}-*v3hNRJ{iWMW0}C77S#2UFv!i@7G=&A$kv%w>N0vElJA!V9vF4ZhG{ zf?HM%0l?kzKo!7;cWZeC+}!0dBs!G1+5k@bp~)Y}!34^9eva}^fK5gUrr=uoU?!mz zmyZzMcQ-A;tnt3Nh*Rm{ybT9Cs}?fL1=;?3U+AAfq{{%zAeh+$Fayh14_GD1ttvw* zK!~dil(rc<|A81uD35pK(3dG_ciRyQ-~RE85`&|b;TO}l6&JhASe}Jf$VFuwV$xe( zT6I(;zKLHxHiBB(aP&+|unB2g4OXv%UOj1lQ;xpx!3rR*x-QpHC+-&^FPOKAU8i$! zAES8|nh=Z8*1qrOZ+H!in))wDR>DnT!gW95hT(}h9Xk!=qxrtVEdT@n+5$kJ=JW~# zMV_xfz}E%)HmXQ`^aPs)G~+xx zHkV`P`B#&Ko}5sH&c?07;A9y;m#!j}pmr}~MqL1G9eVAX5wTRg3w;fMr~lzWWBq`` zrB2I%k}2;{_yS!9EwgV=<2^Et051j%obpLY`o??ilU(56H;A-j1)64TsT)^dH;6&Slrzhvj*-1pj)|xyu zJmLd-Dcvub{!0qJ?AylkBM?OSN;~Xh?8i@Hc5Ww)Z+Ug!748=O{PVVmC6eI%LFMVr zEc*<;I?c+pGD5Qt+~wD5l;^8Y_i`U+KEytRusHuc5g)yJ&sBz)<(RC`r}NEqZbaHV zKv^=S?DSaC{JlcDzAvYmr7MA;mehnkIY^NF#ehNN7d4LHJ~sF;ibVe~y#8 zBc@QTeu80L*b4zx!w-79=R4tmrPq<1)w)!5!9sMj^f%QK$A#M5pOWP8aYfHliiN}M zH>!ZRue5nvMaZ}j#X;}25H4X|le_`NU(UeO^Q1aITxjD?FGApZkycb(8Cr5W&KrVn zm}THy>aVadFOWZu{X^R=7XB>hu-3z>G?flzkqW{ zf9p+G4U)KD>Si70cg;}UvwJ}`rs{kQ{~79bok{m6C!^m^JUjSLFVZcfR)ptoF#{(a zH8BI-Zy&6H8$u6(>~gt%xCVYOcjVl@yxeg8aH|8Y zJoQBr7@9LpDA&|0$4?oYfj26;3I>^I+jO@eKZxjMi1=_!eYf0`|8o?@H@k7N>$>Cm z!(Bh|mI`vNAD*V+ER*nQGdu(xHESXApcFWUZcKr+_t(ceYLD0%TW(0{>^<13Wk!UqT@R(dlpfzd>LcJ;WrU0@*eBM z7K%>9Sc@eN&)3I$y5kO$lVmdJIp$0v$#3X%8>39~-Dre-)}?0*IT|&Le>284>+qK0 zJ6aLB2}_iLqu0W?_C2KjRwmPqyM~F9*Iql=(pAd{3Lf=jlHS~pq62HnJ30buvU+`% z1=bv*U2PD%*E`#JJZ-;({PoOHD_{3jm9U=5M3d8@@PC0sUF+_P(2vr(oq0!Jrl)H` z-Z#FOZYR@l`;5!XSeC;#!>Cg?_|c)VR+>6uleQ(9PIv}n9}s#LY@m3m?Q`3IWW*+K z)-a=7W2_oKO#I)-IH2xhnbzE*OVQo6;bU_ zJ&k(z2b(g@j5OMLr-`S%frLBcXw`L-pW zAek*`FUKddfg?$tN-dBupA1j zg&pth-&I5dx_t1@Iyw<>;9T6_*?zmJgDme6oioD0xh<%mXWXbkGw7WC32T?|BpS?n zRjW}RfqaU3D`#D#QEs$?Vx@jTcoHx{cDt0mqVnr{6r%OKCm(-Bf5o|Sn=8DkF3b6{ zd$N;bPLAj30M;JFZye=!24)Or&V>d(va^pQ&C!rlgfP+9JlPB!W@zR%3l8b|9^T%n!3?-UT|;6$|>ouqvaLeF45mF{gojLORi z%eVbXU2jNE-cF3YL#Z}jZ%Z5=l03D~%6Wc}{7WY;c=kO+LH3O*?oSmz4Bf`CL zOUaz)H@A4#Cz-qUe~h4pHg0L$h|_t*#9q`mC*Bb`3v_TMp~8;sE+css>@%MT$TVVN zxi{E4GH-9k-=h5+Mu5jXK*5z)sbIl+1e35!edEWGpnm)dwRDQO65uIyV!0Pf2a9C-t3e{4r1}y%v~o%g zi4J>(~i;VRp{U$SnVHhzIfaq z`G(WvoJ@w_xb2bP^8DfczUBypV4NCqDa_W$Rk=aP;2eNH{6>K4AUCbls{cJ(w$xoR z1Ca~)@R+bk-T3{XeTgzFOy+O<|Ff`oF;X*aa zDdL*=0aIhSNouWsvl(nx42}c7IZ<#tR78eP=Jy>A-cp-m!QsQ%$#q<_)2d|PW73Gl zmthPErCm#09va;vsAe<775vXqDhfxD$b73sK?C&b_8``xRm(J8hfw?e-0<(Wqa@YW zFrjDY3x-J4e!S`|2C_^D_U!LunFy#6MCr&V>al-hCfc}z)L3s}8fkjeOF3v;Xtp=| zcT>G}5GQK>3`5pcp=8?A@C;bWfN#WR$S7?@EoWvbD*i|iM6PACVD)+%377ftopWVV zP;hr^@O%OM!7f1xxxJ(JqQz&~-AQP^IE+Sb2*~a8rE^Ghx@SS%1#g)k!4xmMb7p8X z{HcI z3wlV%LREA%hTG3;WGa`rJ?u6QU){+10|p_vn8}u#bx#M&KcNjVR)WB3A2 zxDF|(qmqvnA-Y|`Pf`%4kzwI1Fv=*^KtS;n`fIe?Td*H?`*1(dFz#ZBa7V0sb&*n0 zEKCANgtlWB>w!OFr2?>OwKb0Dd{cuCN)ncM&6Du)MOY#PD}`n#i@K<|)_r&~ zlijuY++oi3T>3g{)V1uu>&xZ4%^_&yGFJQXqOurD-fFwuaG4iGV_|@1NFi&dgl#Q5 z3;XzFa1tT+j-yf5)Z3ZBly{V7uNS)wDGzmQ@*7*XO@^fbr_5n+311PRslce#5k0k_ zYX(N%v>P}J@Dg(4yv^~cs|XUVqixK{C`i_+1xM4MICofTb+~+3f!#LhP4@z=Bf%d% zLNmLa~XZCX#IM)MKl|Sm9o;NM@r}OSr_JN7p2WzD@c=vUAr`nX@ahGtAD~%P{!4>_HI5C}ohEP{(p; zt`YsZipFq}JN}}a%gMMbCA6k&;~)>CK5u~KWZW{W-4wg8gZ+i7Y4b$Y`HJ#G&%xSa z!P#5bw|M07JZn9lOF!lwIAXB(wX3yf%BsG_widiqy1>n=&eS&7T9BZL(j-^&WEN?0 zbC@STTA}@el9%7yb*JDS)&xK8JaUfW(50F7R&bM%2RSZR*{fGw2C?9Yjv>!PJ6I;E z5=cS0276G=+X(d--naCvS`mZGqrJ{^6eaA(LxtmsaQR%|o0N=K%M0Kw*?ife>E z03~ntg7EB{Kg+^aS0tUTOn~0OEj3+texmfd+BCaZy}otgaI7H}^CH>2`^MLO9*ix_ z664%zq7csK%9M1ygOlU`9~9c{@~PUB9k?fPr@G^NG4#d zXX9u_#0JR5Q3P+fYCey6LzjQ^j`fxcFx@2HYu*b+zT>D?<`t$y3~BkoK&U3=k)Xyw zhSA6otn9G$^HUQ9f0Vw$jbkx1(Y751Lkp8XhQ5IZ+m=LiH?k#!JT4PvlhmX+8yzx* z@7x5F701-cpbtHO_e~`p-&qa%4;V$L2+FL4MjT@R7xksw`p&bkr-LCGz)j2#n0V+f z^&;3zB+u!=?t|q|6?eGf5sV#wpQd|?PuB+I+m{d<+3$0838*(9A;N=6fnIk{%i|r7 zXOK+E)|cl;OvE(dTIaYo7T@-Q7~;lbsNL z`^cYjj(O5pPfE7%OU|QNj70mqFh&%v!Jc!_yeco1=umYpN<^yTBS;4@*W5rL6ZdEAdH zm{9rW`V)AuC?v;K)C~gWm1e?tj^IXj&Q2o>7geJZ9ut=p{+R7@ce44=3mz=hr`+o_ z=+W(Z5r}P{~rU%D6lWYV&-@aH&w%-)LzE1o~ z^7-`T-t+OCpERL`Oz*){eY(Rg>zO~Vm8@AT-7@rS+_q0&0W->D9n%y6dQHQlgAGAfiwGrCjpa~5{H<_gjI%Ld$&dH z2o<8Z&ZqOE7M90hI~c7CS4G=}JnLNwg(- zG}}OPk?>sISXG8*_reZxG*^ie#eBKZy3Z}iPW(D zG{1Q0gIsi-gA?%JqUC8U;pwAWs&S*M0QdSd=J^7e=gzeO_q?CrN;=f1?`&9cou>H$ zc;H*qJqs5C6@5YdCkdw=Nth%;Q*JDrLZcWhiN_r^oWjt`DllNP_nGMRYk^kAe%(9- zo_f`IhZ#kB^CEq=GG8sz7{z%)^>kQoz!bW76w0!{9ZXskfgAr4csyZJR%uQX4&tHd ziFtf1u;tPdufT>~$jVw+N(82f_{rj~x*oyYsqS3W&ifhRvhyNjwlc`Hm=RRh;)&t1 zAJZ3TZG21{L! zIEy{9HeLtGj%UQ3{TG--@1~%Flor%XjW(AZg+PnFJ$7Nq?fY2fmrIS8$EQR6mqWse zz=PW#>w#?fk_?vQU)VI8^Ma;gFp@JguN9LRslvqu*T|%gN`hPTdEuqlF6gu`GVAK0 zzW$vl5VX_w#Z!j6$w2d#sbam%yl&rsqh0Obmh41USnhax#MHql+NF2A;?-l8bpvw{ zDKaN4`l}qQt1tbhg+|@Io~Md+>b*{piJ?o{CM1)?4s&8b{36p`!rD!N$9h9Al&{D_ z@X&t{SxF0LwMtLdlKv1_;x5#Z?Zk&JO4rf4)ir-Rg&|oyaey`6hYffhYnfVaVn1t< ziJk|2hkh~e45xNpk55yX{K`gZcusRRO(n87(8YpwINg=5o!sn#*8@gx)_yB954FxDcuqf5 z0F~jJ0l{G|ff~p;VVCV&E329_W&-2f+fkToQj)WkeNZtn{j3>0UTwB*GmLF1Zb=bx z95d0Zp-o^!uSe7D8!6vOWWQlBQqIl~Tq@4)-1m&}99eS%a4S)**6wO1Mk4GngF)ln z1*9YltNUCf$n@l`;-(gc>0N1>CcE)zOW`7=x65# z*q{>{Ll!isIzA>vsMM&&5+Z1P!pO`^}=qF7vyYMU$RbM{Cw)kmomPhUw})S}8JpnpjWp%x7iZ z-(_l$#7}xfCI%k#i>$_n+^nfSXG$<^)AAHimg>zkdUW^rrAP!(Pb#`_5p=aGEGNRP zmU-`esRPA)OJz%I^1a0DE+FNYWw4WLCd46l(3 zGvpC!gSKg|NDzx|hUPh>7T?4zu^P8*;2JnXPaI&YOK~=WY!0dg2u!k?)$}-{;Vo3t zT-h)jQ}b4*(2jMitksz|PcG0-uzu)QA>BG&wmh%y-v=>6H5dfB2`2X$-7g_}-O?sY zSkL!G{^X~mGJ@FKNq}1QuR9qxm) z`&&;=e6$H9g1%dyFxkP!SGd4x>da{pDVLCX;|I1L zXLqMO?S@fka9sjzc321?E4I#Vn&7HzwTL|{a~Du}WuQA+(wy;;^1;Kd>3I3yZf-Y7 zCW>d)p;{X|L;n#+{v2p%|L1I9q(W3&S^p<$uBZFJx?6QKRRhwqPAuWV$)8xsJ+(g~ z68a;as^;w<$uIfyAT`4^6*1I%HD>2_<{7D*cC@4S^$F({F@_~To-l0G2ta4^u=oD1 z5|Ae3=aq7g8ptg z*_o8MxS91DI1LB}6$_vvzBp1z{0S zWVrY}!YL@63VZ5hr^>?_O39;_@Xco{MG7elZ;Mu&TkWWG$8oQU?P7v==VnY7C4Fut zwiQp^MOmPLfY8y>?%laz){9ky%sbr5@gP0A%k1rg?=e>c>4{xD!2Y9nQMZ?M>vI*6*;ZiJFI*AeM9J* z8=bqs?pq~_Z*exlfd|v`gX~CBVKC~w#+i$p@1kXdcx4c!aO(2nCdtbm$ra|{4 zDq*=vX*4NzaOMQA;W+5&I6qmSzdVa$nV_GJ9}FP1WdcGPhUt9BsPq6OAxz=t)w72U zZ1VBzf}`i-c{3pO(2y;KBDTnF;Bw{PB_&Tcv(4zabul)*lrlS=<=jQ(^wS zLThB485APN4>zBG0qM6b=C&OM9~y>S{tfuiWAS1U8%utPL{3$nEdRKc#pBDRIQ+x^ zFxt70O=>NrZqHR;e}LgDG!RX+FS>l0A_!y`q3Ss>v4V;MzDAHm3+9dcFI(SX)NtTG zA=#iqDdAa9mB6USF-fhy;lBR(1DI-n-J6L5gMc#nS@J)^nAl35Qw>3{u+Db75P&SA zbul_^uVVkq27Be|U3f?o@M<2}NbAl4XUIs(aS;{k&(kq#E2ubjqrDS#;}6~ma8Qe} z1sqf!vN?_p8zRuf0^xKaGnz~biro$uYeDm)5L_eY4B?yX7SGvn*^^C7lh*x}b&g7C z0JTcL{(*AlFwAHAzRa_q@sqY^{p1Aj5$4s@$$4Ye`PY}3)oWtdTOZh?=i$k(cohX9Xv8qo)d?F`o%)@!wgo5O0`H)HvIti z-1}MSJzaICXPiyz3%Fq{)r?(##FX zZt#qBi>ZkP8=;Wy)Wq^5IP`_jc^sdf2S z=%NtqzzB3MuuqYCNIPr{lx(0`9;`o#ax>9^oI%FJeD24Qy zmCftp<*GjkQ?PsPH~3AYK%V-1Ue=%qSy2l^=uh1{^IS7oU96i|gj6HdcviFiW9ub#hT#ykwBrpXA*mrfjJU zF*D?n!-Sh%(2fqnl~R$H3m^PJLXkxWg_h9Dw)?ZTvFs7WeI;}U!wy1Xky?OwZwjeU zwX2hIQ&2wh?5NL66&hAj_2aXbMU$Fu5a{RU^qPE_s^KI_xZt@YC7RH^fwDJr2~1LE z*dt^uTJ}qZ-=O-JAn#2t?EB!p6C6eoC|neA>60L1rK$#}jt#bS7m$3-&wv+GBsn8< z@0;mN6OGq(37uXtNLy;y47UI8Y9zG>p@0$ZW zcUPH31Vex1a{>4G+W|3kCSgbm3Ps*ERkb1fvhQ?+yg)0GS;FPFM8_rZ$m-{X2vxu? z8_3c!=+QsnZ!&?@yAN#9Fe3ymn!+e1tnB{?E}_Vj!T!(Bc?`*9p56k!=w0#nQGz}= zXx#85w%BMfu(+8XgdEnT9zMNAt6``TUGRiZh7bi-4wDbfzhmI_2ot7;^rY(Dm=TPX9^YFo~_5St*dy-{qo zqlodUIkV?bmoz^=kYY-uNuX}K{H!_pqf}FxKUSWh`D1N|_z!h!wHdZMjuAJ!X4)a> zEUYXp+G)wq3+i$T78hbBu5}FE8f8#=1GO{-%ak$z^E;{&IGF0Qr9Iem{)D`cz+j@7 z1>(=^Z5rnNE(`amk7mp!JM=V=4`x}RKS$Edvd%`(7EgnkAPZFQ2BQ`A2C7wQ7@)IF zZXYOdO*modX1Srg4{G@s5G7QXWBD9J|J0TN!Heoh)^v?b*wdb7Iyw)z_HlUd>wBXk>rJ88% zva^*&e!s^P3#6^WApjPl0b8)m?PmDt1MK>kxX2!h7D)PVbMje;o4saSFV85npAd&uRT$>CA#hZnxm-iyDwb;MUVbC#mu`+|(B;8)Ynm38cq90(K_zjdv~ zZeb}k$j77>p!G9iDG5)iBjL7mI9H{8C6)>)`CQrib0oIXZi$U)@h$XiLYU)#yHK{? zrBB}as(g4bkOB$T0XJf4@o+99Y-KQRw!u12d(Rf7+**(4W_XGeD2*X>C1NvmwEU8; z0k3wk&X985g1j%vUCd?bsIB+)&E%7wFg28jIML#xQgian2%Bi;EFQu4Z4Q@@p341^ zey+RVY`r18_y-P+l;?$9Uid2 zA15-ae$MrhSZM7gtf^43^9CB39oFQ5QggL^<9Um0#bLVp?pZ0>TrJnJzj7N|(f+2t zrf<+d(+WXV$oa3P6=IX9&BewUY?8iu(thjQ&8FJ?mV2KKMD6}qOZ;f6P-(koM`MfS zP3~E^TxZz22K~nAH09z9Q=J(7-c|IadEs??%p2Fm3eh4YQ4cW1!7V610i@+6c!zcw zmg#L;U0&5Lu{Ni_x}e^0k&0NssV@dQp$nT|+03@vgZ6}EPi6p$70>(azn zI2dtPcqS=W)RB~jv7j{I!#V-r>{dfmk+`KeYf58#Y>%p=L4AX#9HGQhu}S zuU4mfr`6r5t4PQ|UHvk^`hYi=;W=88w3M~NBz^03pbj&G{4-kp@`Tz@gzV9v3U@C8 zSBB)N@%a3%WS@#Mi}_X!VF8T{#ZzZ%x@f5oO79wq(OAU}77mCdS9Z4?FRNy=KBid` z_B4Q-G6ZThp)mDIiA*d7GI^WiBp}re?}ggvkP6rSgEedW?(6GU2n8_g&!j=QN%m)y zSk011F3Z``1_cirkS+nNT!2{Cu#fEFllkn}?fuodXLIzQVQzwh`N%ErAYv$|9g*kz z{9FK)PFcWNh2-``b;%J~2{O-$%o=wqwQ6OXh3^4`$Q!^w9zS5=%FauxIk`YT5UeK; z(ccm;GD;JL6S1%YY{)u}svN@Ui8cM2KrtKoY_Fz(bzFzZLZ0Yb0syaIv!PD?mM{s` zI^Vd$$&`{Ric~8)E9w(&r`b(l;Icpsu`+P;N6cdn(#X>l6dcg>Dv~^`Cq3;8PZgFF zej3>q&J_3937qVA{?)B}We|ld{f?y+$YuaYeCQrWacWz0`b?Y>0kbr5TeCyek6TWq zdhG0-y#oKi597D~LVwZISMl_&p9!OkF`k@W1yip}WitTCW)MFA`qsKdX7?(A6=qFw zFPg?)p#|@QHzeuLuvMma=KKiV0?afKNmb5(2=27l&h>a*j(}@Tue=ZuQW_+2Vaa}kuu}fxVgA#}1IDVy z@8^@RM*L0xNgMR!u~3$_=zkyjXVIjL7)?5T)v)EeTQo}yl6&R_OAO$y1FNP|&x+66 zXwQa2RKl_K;c7^!gRbALzz&cW> zVt==)H7VpoQ}_!P2Bp~T6)b_u@58Emj!n6Uq~;y|)8MWrv2$4=I2ML&41x*VERP!@Pc|!I{toS?is_RnN1m?d_iY4D_Mkb z$<3v1<{fq=Uh({>H}IM24-lja5E#xRN-IR*Y5Gi-WAa^C0uZ806PnHkq1lQQ$3}ZV zhPDm>N^h0O`!lVn*S7x^qOZ=n8y{o`{+Cf3?Rk1%K zrtKmQq-O1F&`N8q*JEy-sAi-{al~eg0Tc-6vf+x0B#BuVW6T;#oLOWw=ErJ*)vmqgY^5%=$jm%+FxiJip zMN_|t@a|-8T7%|BF*x*~Dk-Mc*Fg5^@(jrDdbzDfwai}AQV=mys8SB{PhYmlmmeYk zdOYI4MOx-ZEXwq*9}QacSsx;|r3Q{yTHl1>d4MyrNt+i%_p*=v5&+028C7#;!Yq1G<~gI`DEeU>DzX?{Iac+PYei4N1ada z?c6U|Xr&)zkh8>EGeWU1Vh2;F0&B_1>%z1f;#to(@`SFHOrc!n5pt)h>{~()r1=~D zJth9l7kIR?Wh@!*E?52wNkg9kNUEw!D=N;5+M)WqB!M@+SEWWanV>pW*n!=Nu1_CI?lZIUV=V7|mdC<@Dt9um z8ta2g5z}#zf$!fEO?;wWNgi@)!84bKFOe!UL=WAU&S(;%TjPw;k=c4{i@!-6LssSa zdHyxrmxf0YAW;0xI|K@_1os*TZQ$kRZ`D;ewe!ESD}yV)*JVI`+tGA0=^pf(@fUoN zJIPg#q`{-DBZVPO-nfrhk*3P-)VDCPk0~kel-NApU(Eg(WWxg|*CvRf$10PahB}fS zgCUCfL>2vtMn4SW#2wmK3FMqc&9RChE5jCx(sJMS?PS(xNV$Ww_f8^h-s%cJ2e7fY z|Ni?k*yKI;GD4(6@;p|uT;qsO)w!TS!ejkR$Qa!-BkoT2_Zas{l^{+D4>;3c>vUp9 z+(=#0{vVX7X4pmA^48araq%+MG&s7R+lkKbivYM-YVT`@CF7;LN8MSE(_~VEv>^Sq z>3>99Qu7Ts&Lt5$^qkvK@L^R67$9#q0(W0WYHJa3da zCRpo(*hPGi$Lal*W0*~xr&2*G=US$<+%@g-;SqDfN+M4qxhJ;Vi3tmE9RgnXqO~Vu zs`2$iSync6-`2J_d-RBEx6uh?tM@n-ldYc4e^|MXT6HqZisoG2`!r9^5rEhXkRfk# z%=#+ueh<#1Dv4t!s%C{h_hVCs87fT#DV6)-WYrV925c8+_;L?AbQ$~-$1J^3#txY+ zesh0$1_D^@kDso_rGc{TG`?-V;F)H(fJTM+gP0gx=wXiQ%H?R zQYW;*qK$Y5hPmjt+d9%rpx)1mb?tPY&unRIR^jp?pKG)9ZOAr0>qgCSwqte(7$&<7J zT=0%!yB!~M+2duWt`(VXACx(oDHu&Nz3-8@a_F5Z`wxVD8fsd52Vt{?zme8^ z>32H)P%3DSe{X3}>fC-hm2Lc21oTBDjrd`u956B1?UXI@uNVWbRfi5Rm=8BfEReqY$ej>MTO~J8p1TOOHue71MKtsm$trJF zJN`wof5k}(n|iuvt8{A3HO#c(objz+9iK^97J*haXWctRk))powL0lNe)Rz|p{Rxd zY|tg)qTjRsTLObS^1oo#2S~C2%CbH$*o9aFJ@C#OalyS(JzvruuL^PXJn-};B9us! zC41;)`to1|skcHY4Z_^{h*d_%MV6?>q4bzfnF2RONZbs zgsB@qWTHY4)Sb?dBkz$n*C3A{S~Ew_eKa}&^7tb>;iS7+m5{dE}8&2m`y#jN& zS}iYSRqETVvahUm?q47aZ+lCO0=Mrhkv#{r0FJ@Rx^HHMKZz3)@8bCyz-5__(^wjK z^u`YL$r0R>C<8?IdMmX=HHt)YYXahF(tAz5C0LC&S(E-pn)Uw+@9O##IDw_(q(rtC zNXI0*%j0r8GP1(TEHwwGRy5=U)Mdmw3A+@9JF-O`BD^?gz5XtmlVHz5&OHcEaprZf z5RWQ|Dn0ek46kEhSilc7b?Hh-LXPb*c=S}be&E~30~8DPeF>|RL7W&}7tglI*91~D zRT6u@>0@+(6+(Q{w}+@)+`F(ze~3|yw#IM^2(0aCk5ljdx%bH zsR7f1ATTX(Bb>gzvEh3xoCzde`Y{{YGww-LHIRL$9|5KXvt?_(g)isZ>H%xrdo)`% zS!fDP`cs}vTtfdhZMNB*RXHF;BxIU(WIQ#_{Gx7U1V-8dfd!wx8YvM-V!RyjD~`|gJE9IQCF6*lGK+U( zH0xIxzOgPh+na%!zG61-TqAaxa00J{R*ADsg;ad5s;Bo-igX%<>m4Koss#PKuU^j& zf^63V0z)2D&K$Z1UdGiFBf~X^-JLi3Ya8+T9pU==YX)*0MUL+gkYAG)=0voj^=Wcd zGDy|`fL&CRM*icLnGoH-V0Tl9!9<7M;~gih|4S<@w|7iWHft7yxa&EZy^#jJ{ihqY z7EyE7La|{gaduGu&i?_s%!W_s;{S!=PTq=^wT9H0{}EkXfV{bEkAd1`@6r$xy&QD( z1~H#v^c(VB47&Tuo8!4qV7#K3L>tE3Y#^lhr#>|vHy5I@{siK=Tgy!oE{qKv1uQ;g z&+i-sQC`O5zjj5Gw;P1rg;h15XjbnA>P9*b)T48AiNczc&X4g^XgXTKaYT5z9HKhC zNaax|RW#`FDKtGoRHN*}t%c?*6}Ue#)Hc{>ZJ+JC7wy*qccpEM*bvdZol5pb#yJ(3 z{{+CeukjxMOAJIctB7^*zaUqv34q*>dU^G0TOGFR>l`?Eu3o$BNh=iq=`U z55i^K(-7l7L1H`y0R);9qgKc-pipyJ%5~HOkQ?RZ-h-O^mm!?e`52M^BfA2I5ZzX2 zzEy!spQ+Y0(k&+!q*-jfrNboXMInK zfOv$#^q!#%%OFbH@~kFQ8!p47O`Xaf(^hD|RiOf!^8m8w6pniVag=f@JB1~d2ns7n zOgdtb)08q~G(q8J==bk9ywz*X$S3!c=_RA|`6MqmQc^f5kWB6CMCjCv%S8;S@W)eR z*yuez*UtY)>CJ8wJ_l9+5z|<-lJB4S&z1*2t0-xzYF4W(Cs)mQUoE26aWz4_5WFMP zHI$?!UloiY$|N6Z0BDxu)ZK#`A|yFVS~q|EOe#nOJ^)YP0|;4iT?q!jJ3Pq5=eCw! zl{sAGn#VTr=!(kq9H%+;Bv7L#>V5wel|sGo%k@dz;HOW!wu#CA@CpB#E2tbHN!k18 z?sZrtWA~-8pfZd_(QCE2<=mEDA0YFHTNPFP>u_EE9N`(AQQ#( zxl%|HUe}Lhm>Pz-lsas=#*{&t8KSEsQI3nGs{|>J1+k+V7pkiStB!?Y6Uqu;BCD$E zlYvb5jPO0+D{y##7VFd3kQpALg;eTACY0pSdfkO)bnzqKNuq%YhvGOAXMWaiEd%G< zYzT;#vk@R-%q5uFZ;~;mukEr9p#Z3FWE=WCo9BqH^W>=CHycv}l`NHf`3vwo+%*=x zbcHWyX2cxo2qJoDV$3q*5a90v4U8DrQrQ&>ZLlWflsN#5EIXa zVjiSf3dv}S0`{t6^F`#YA&t7(qna|FpjykQi+2`zF)XloAQ*FSJ_6ncr>COU=9G8d zhid1)-iL;hBMdE?26a>z9Er4J551^yh$|4b1jk#O3Ryb%@%HdE;*V502ix^OmgnH> zlL7JIi$l|!L-X5Z49GtBXv~l9PhwY>Hv^A@eQ#66gKyUd#6<#c4tG|Ad{4W(cT_K5 zotkX)1>q4daMr5~3tcTJymQ*<-%-o?< zqwNR&K#8<&WDoD1Ut$p@RWW;WqQ;UYfyrTtSS=Oxk6*m(P^dNaRs|J@#Asq$dAVgG zgI{qm`#?8ahH};xj$c<1-f3?peJ1!rV!Ll8(3p4Sb=~(KYC|OQAYLUQ z`k{jo_+&B8T0{<2hZP&g*uPO@#}g4{e6nzb3V+`J?!ZL4cO-?9%^uB^X0Z*TRZEY}RodLz^bCNe51O@*MY?fP>;MBA@$ML8C_n@;h9w zUd3(#^?;Y#k5~Q8tTEd8(YS7-@H($qBq_6I{7^^I-Rj$>sdDw9Mi{>|KXxL!E?VKt zNsBoWk$DcTkO&Z$U0MS-#9IQ~dsm3jrXZi3TCb-U+mZm?Xf{H4gB$fP72xR52Tu9oLa7{%g@@b#12T1eFbt?@#{=p_9VfnzdMf^TF|1W|kN)oi7MO^Pm{3v^MCo-S+bE;O~J4v326or4*RYGF7wtF4m`XKGETIwCu zCR+p~=Knh~2RZLMZ^Uk{W%1vfH^9$X0D)MaaQ%v<2#-#wm^h@X0 z6?l|b=gMu%#)xW2w1ba4uNCmXT6M5Y<(1HcxckHwjmlv`d+CG`?-j^=tcyp^hz|F zhZFTX^iT@QhonItA9$LNdv+fo6Fzpb56Pb4IHeSfcsn0ILI3ZFfn8a;oHkwwTjlYA ziQ2gw!9&J7+km8Sb)io2tJwIvF{c`IKKUt^K?`z6IGIdxMP{N1Hto11dpwXyD3JZi zR{nvSu*b1a+H-B;y^Ix}eDX9BU7RUSlt9C0 zzu|E>O>;7)9$-p|tQaXpR^WETz3>fcb!UEhj9U|cHh^}Wkwi&7nKXdgR=J$^{I73d z;(;=&_nMb=9~Cd_Uq}u_Wm)Pf{`Y%vOsWz<0&0H}+Jp`H#c^>J!3wdcfe$8K+f;B! zScnVkjx0{oNN2QfoiP!$@_y3)j;+EC4~5m}5m}>uaGCwb7xOB?nol-kgvv{B>NPfb#JI4e!-02M~#4=$dO=G#d9%N9^Q&-ECkKCh6dj1hx-}8}RzbmJ0)&H)jA_0d( z5dF60RzbBZAdgb6kwLF$zlgnMQ=ypwQd0UqlF&4OsLVQ|!?aQ!0o5a69r>$?3quBv z;#bP2q;l!cI1$=^KpGM)K<<~Me>CiM0D6!&gHwhiM~~Vvc17ix5sf0#DXqw zGVxq?es>|sU0BlNuIa}j^IX!Y6?wRQc_wxwB^jSO$-jAz? zODeM<0iWzzJQncDa?6LMK_Nq7&wYG@eskWO{r)cg>6YwUvd4JYmW1x$NdoJWCXUmG ztmt(bCR*q<(s~SK$hxdMGt_15e8Q8%-#+l=GbNRK`}I0t#FXnuCm$_D3rYzx#&&-hqGq(qWjW;S#!lp+WoBV4KkyeqVctY*9H4O@nXr4UV z+v%~gzxTC=!2>bTJOoiA1-kdAmuHz{IX5TZ;Emk@ya(d9H?7~FvvGzNOVjgP!=Key zLI$MK>h&o26Zs>P(ORS_!1tGMsYk4bde#xs2}~NYS#kpJt+d%4fS#^EUs9nG_)dbJ z71)B@jpc(|zZP(e2eV;A9zEyq%ov1zCgIVxN750*JnCKx5>LmDO}<1EHbBBb?z zXl?#kURKXm_Jq4@Yd{HV&{xy`beN$*IK&cAC0^8ZU#hgr!;HJf&P9FoMx!HEs;wet zRm705O9OAp<1pY>SRqI~QFFFt|Bm(7zDyF8WykJ4S))f-$^=yFqxdMGS}!w@S^|H^ zmPOI@Cu7Y^$oH3_KV9dD#4c%517W`YMuZ!RVlbm$<+12#qzj9S?nwXP8DCWRJ)iE5 z10%(ri07;6Mt1@nQE_K$3rc3Jc$3#I-bSXumnV2v4aZ^VEZ=8J`q+3q0zLTshGfNR zjC4@@TH`$msLLO{<>+esrT1*Vau4GvyfjuZr6tR5&wH}OkWhgWBojIxde>Uipcb=| zzzS=Y1bIDNn<*7;G8KHs&SmR&sZh<%_ok7}6!0Jh{<()FjzxgTJh~$?zENRXXF`yw zpDew=L9*~A!p4U=>kAMr^sRixe~Bs9wpOSd)bh9Tp=NUWSf6DoFdw3PAO-djqr$K_ zj|of|srpLk|ETpJ8iko?xw2Av0gpLZiRcYrrv5JQ9>w%?z_|bMz^M1PIfj+m^|0_4 zMP_Rk278Z_WsGMBfPXR&|Hp#*+ZxC@-JYR4(l_bl#tmqHRKIHvDvY$obR9TuCRQV4 zf|;rR0P>evh5l-~R(b9fm_yCt{Z6IM`J=m`G9QL`oA|@_`D>*t^M<-kOQ*J)%dtXz zw2KG$j44xev$7qMv^)1I_xSxPQ{H6h4bPd-;_Y}2`*>^N?MMxySD+_W;sE)Xdv}pr zlbgF0aj9IGCBMRt{y68xr^S9R3lgMk zI~3nZe4xUr4AV=?I`AgfqW75p4Z^bTc zYNQg0TX8d}&C;ihcgp|gmv_p4)E^c8^QXJ>RhW!9fe$GPvQ;yFfjn>y{}~^uW4|$L zu%>(~Yz&q3SYD?fUHDXADu~Ss==>?Yd!b`=%Z4S`Vgr$N1xMLq*d#k3GfLha7W-o~ z)}q(!bjzKx4p%L}$9K751{3zrvn97k>r+XA@{zh#xx(+u_}gC=JaAh!rmBd6Zy&Jf z{WR0qW41VW$X~4dn}8E4)sOXg_M#0tYZIv1Elgt{aGzwiKh;q75GjJpNXObL{K-@R z&TT+gKu4F>G>vMImZaY{S|PVY-E$oPZWjC%I1UCELEGS+o23n#V$Jv)1dMglIGcxt zK!lBioO$SL8Z?>|b47^z>aH!oR}w%UojWcgamct*W^gF){)H_~?2U5avhCgmTR7^V zwZGn-NjnOe%Z|$T{bt8q3P9+-fw=hlvSYyOUrKIDXjWfEP^VogGde?i9TRnZ6S0U- z$Y+6_MGj>|>Q50|FkL3^r6%iL8UPR7i1dA~7;~&c3YN*Z*0E%9s4`2*(P`5LIVi-$ zLH%2Zi3JKV6RG1`McY2JQ3kfEhZt!fHx*%ZJR>rDQJnU57#`u*37IBxy0--o^b^F8m)$%WJQHEG?`nsLCgto{^x0uymc3rr;*;J?qL{DuBNS z+`tB&g$6qRsh^aKwcR+j;^ca2jO3+X=Sr|ugRooeX=xA3N9|`AP#hE%)Q9^#O9U5r z3+&UiLy17SKP}g}_5j7=z%u7wDnZXY@!-F17CV2b5b`b+o(UNu;732EkZ>waTVyCf z%GUT>J?VkK&PX)=_O2Y0QPntGlmp{gI&qXlq59MhLQTjAIu^d|F4sr)T(om>2v92N zVRU&vwH;==Ct%)kfa+E_ml};NN9w-xiwEkxTQ9`vLtZU(6x!=fDje%5=|}!n+jsm| zfY@ENeQ`11kac{2y&-NVj_SO>d`s-ie9Pkbw zQ#DNQCj@Ma&Z^cRkWk(kX?%+beieW6a6*~khd-gGKjA=7=SgbZT?wNGuV$$-!-aKU zju@z6i)P1dEpVSNjP1@)`?8>XM=-bpUO2fh;DASyUV(WLQKp;&C^j2Y{uog(;3G;U zG+F56*NNFzX_YB=^e^<%>$7=P@i<}mzaEx?tC_;T9u{DoPI>qd6fr6yGGbU^h4*6I zz90UN@b6ORh_1Nf!^oA2#O^;5Ugva7-O&Rx83Rl$Oe_JSpjgu6GZu89ZtZ7u z@&9&YbK1Z5ETJ#Bv)dHv01C9L0jx!@6FBR6QD4>kLoi(IzP$R`&wt*&66+We$394bF7cCh{{kJMFJ@;epyh@YJ1qq{tv7UFX4qZLqy1Bl6m!(+AAP+Zg zgg^I?pj`<#`py?^+KY#ZTZ$Cg{cV(?6;?hdqr;5kF)z9yjB$VMH6iEwR1L~?ZBEilvEX&4-~p_FzrAd`)Ocmp!zRQB#(VV&+DBY^fT{4X4c219m8vUigMp zg(Ix@YH^F%F{;&-W+6`;F6}Bb`sTnY$fX%c{`Gwr`*k!&gP49!rmJ4>S6oFKdzz9$ zzv&bk6vh<3Y%_B9n6pSd0>y5E4n#G7N8%6o#O`+wC6v{!xmMmRPL!~wdEnrhF@@2T5cyAQ*r70XY{)QKiFW*yDauzxNn7c+!bCe( z`U(as^iA76*KoOkVRNnF_&G1Goi$a*hn`pSk|YB{ZprQ|Uup*5P0)ME#4VD?|zTgN~C4=6l8|zPDzWyq$g;Tnm{%2 ztL1%dimG(-ih)?-qkZhPQG<^}+Jp5%P3Zywd9w%dhPC)w&lfkym!D-W)Y30YW!9jq zan_|XMuDcN*F;ToEpEAt(S!SSsA;ol=HB?0;nJphwd^B(4fEcoCY4C_qS$x;z(;r? zrM#Rd=uXd~zQcs8F5VmQ*#E+OvEC#m@goZnk& zjJ#37DGtrURQp&KQNN4!EKw_pD;0+sjj2o;tq=*)P~`JWLRMm`((` zLqXeGj#Q~>8}Wii{|Ol@I?>^O(ZNdjynIC=6u4|)w zHn1ISyK0IOU^}vLL0WRvRV?c8JvMoQE1g6C@U{>;WV9K@7~^e`q*KuPGCPU~cF7z& zN}%<_Hb4Jxv{LLj@Tt!F{b(fBi4u~SI_hNs@fwE0Ml)1uTGgTy5+~?RpowaSDHvg^ zadcZ)20ND_&Q;mUDSUN3^xMVMn*SHn&f-STG~O`n)94A*Fz*liW2|b?pX?9k0h5ca zD2zGRNBmNvIX{o;@|Cv|4a60>#r|z+OosS4U05-i)W6JN#b>j2f;2Gum&+XX&+PiP z?>5gUf;x9fzI*rF|DAmmXd~<@62ISOTk*q%IBc}m*P{nkjy#=BT}c)zhNSlQCV+lm zoB=DXpOWAH;I=TT?U3k74%ZfcNpGMSIB^(r1GtDW`;LKHRCSIMOQFN zOB_$4_ts7h77`pbPV}H!q%>o2e{fCFjK=08gPNGlDj?49}-YqNk5ty}c`|fvafj-?MYn+n>vo{1g zQ6cBfrkNJ}R1v*$t2nointyRSxbLLd_Chb$XtDd(jC&Fv^`(;6TJ3BIJqs(T@O}N@ zAW5&a31*WVHEKId?;s0wCa@t%cla7_A!iqandM_#az^J8tAo`;mupWGyLijSg-9^| z#I)8DANotcU5k(HQmJCCwjq?Br6l{rmy$n^#^DiaoFG1kKR)lHKc(^UzodzyI?mET z^^nI~%V2__%fm)AEi#)KLKGwTI|J5A*OTV$=tW_A8FB$a*=bGzMTkTFp$7aU5zK`* z<>--v4dAH|IVh-D&H5w}+~zH~ZjLiZfnjb-dx1kYrhZp3^UcE!U`{dOD>nap{qyOR zhVoa%9Fgm5$=RTN$GsJS;SEvEsEcxr6^ub2oJQZbzaHb%`^sis7QH7KBREjjTonlK zWOr@vepMKR>801_RQ4O??cAJn%4K-V=p)5O=ZGOvn&OfWrZ3Bo311 zdl`0-vL~e$!Rap|3w&o*V~dF~xm)(VwXWEqEVVW#OQBim89Kn>nxXm+E1*29Diz#@K6v2A^z=C0fRv|5&0NAaq_BA31k;F7wT}j~VpE z`<@G8h>d3SG$J))$1xrY#$S9|cjne*y11RxK1NH^o(J;@xrsdgC3t>2809>_ zhx_rx4^-0<1Ph`mN4I9ybo|ii}rd-2kG3Xw17kS336?tw!Byp?4w0o7T z2LmC0@|By4%pxxE{5Aw`vJP*PnODZa>ysA4}Bpx z^rY5LjDCs{Spi`++%KuF4VjRW1kQl4okT#mH?n zfX$!qMyDtQ@#m8h(v7EbO7wuD(B#iR!eS3h?z7+u0rS8M0*$Zl;a(VH0V=am|`5@^(fn^W+b*;lD zB^v!xrz~Ijb;62+H744oQYksBGv4TYEn0d)$$3{eIl}H80-MoFUYK5$qcKs?9+MV( z$&!PT?{qrwsaGF>-9?@zA13`K6m0*(ZX;Q=e9QI?F9sfA_7JX@SoxOnEro9@AuK!Z ztqmjf=1rw1GfM&3e$7vOTKwRph^s-=_m2bZS_fxHu^R83WQ!Y!o&X5W?o!y&M(4kM zF7eAth$db9&&64B&h3Fo$m37iTc+Vvz7Th*u^;ZD3$KKhF0bSWzw6TF#Ieb%&PqqP z9{_NK*lP3~cpxwS+?{bMvEI?HHbL-OiDGfUpRs3Pv0i|zwxPJh*H3zR_z(%2@5%Q` zTZ>!cF<%~y%vT$mObq%Ld~BU&?*Oaebb$5h(~IgSN+ZkK*vfU|^rbT}JI;9^!|PDu z7stwbQoyIcZeBqjz%*X?^|0g6Oz>$KW)Q2|6g2Yh54g*GO?kt_Oo-wow?c=kt*E&bqjd(l~l_v!OR=O6A&cl`t7ZyVkwKH+Ud?+;8e`Pvxi zAa?pYQf3xU&f9e2fDoO55Off2ODS^XX(S!2hV%42OQ@edDN?b)B6ugnKjfp-S;h9B zhw8E~W9ZIlBqohWUSAoB2pi39z>?iwiOrjx28qD0ky?D+wFJ?7=~lmkiHTvJ>PRAr z(yu=mt0Qq26F2O`@}P1l#Crk|%fpbtd`LGU)aVs*n%w&#Hm0!Sw`h8b?}^7C=Q?(x zPfcjIblx(#h0rFC?k6i<+& zN3q%)(VSIjd|mVz+K16PB9=3X`DX|H4tu666DWGgUFhY4M-LuF!sdJbJeS75KHQ_r z)!i>p!RKa=s?&kO>#g_7QACFR0tcxl#wI-5uVwjX44zc@o??!$6`yTkc069nRI|NJzwQpdJ^mFAPG23nIyaT3cKcHLD&ZX^i$BVm9_0rc+uV0$EQ{pJ4#YDD z_dH)vCVP3mBcSy1>v1BYnRw?wS-*i`2>BoN&nwUvyM1AFJ4I-zS4HCZjr^&QLSj? z>U|XD)yEEAA9ibTpki2VD1FkC){|IfVD&{89iPR#NR3fh9+$#w{ECTgLSr653|8BwOQA()W4HCC zko~SquUHJL{Rg*YvmjAGaTx1R_q1X{M(sK$HL8cN>6L7)ZQny>5eh{!IZ~PtxIY*+ z?r}C({7P}<2jmVzFPQK9C4VnSbNQ4p9`~G&qCgyW?vQZInb36lhgQqSYQ{%(A1I$i z2)Bn|C3kOQoOyzcwYQ|W7KL(?Z{VVYl8p*ocGNw$tvm!jdsVg`aTDAHuUtBlT_C2~ zd8|26N!u{)3M^E!*CwUq0I-)dJS|;3s&n`Uu+s~D5OgGwb@R8KY{gbILs1+#^Jlyg z^ODAaJ&B8*g`|bKlsTFmkaSg4B57f7>i|v@=2_+l$YJXM1+FdA%Fzek)~O9=6vk1$ z>~*TonF3KlgeScO9nJS$Q_9av*d8J6`9(`J<{E!%a$$s+q&2%RnwiM8xG;8@T!Khz z`k_^Z5nZg-*Jpa;i+vQJNY~_J9e5;T8PdlQJ(id-Q#}#IQn2J6!Cunjd;rzH25#x| zAE5Kt33DaTaqL78`>~Tj?7&Xd)pB>^OZSnrUdc-Fqi0z!x`;Erf3~_^^SiJ2MR04h z=&EH@@L2FCbf;p;!IwXs{~2k#XzLWkT85lRg9o>fTw4np1`{;S3$-GwqpUSlo9;Wj zGFFl4`_YHC)~Qn$6vkA(Y@9D<-^=x>T0XDTpmZpmO`&}?(yvi9R>$x>$3jwXri)%N zc^Gdf*KYH0jSahA7v+xL7y-9gm@u2iXFgP4S>m-U9T+`JM6pi^=wM=6KX>3G2CQ+N zofSIBM>SZA7FfgD60KiK&VS^5x;gFk3BI`sHx2giQA6^gyPeEy-mj_B0O%@Cv1WyeFGG8WH>p8PzS=@WZZT;wY|!jCqV5f`M2 z@l^}#CE)6mwsmgyB}aZZHP?3cv9F#9W(Xq9$@-XMwCdH0w*Nc*r?E%X)J4>OYn|uh z+{u9Fis+2rg~3itZblA?Y9(3x8B8M!P+1UdG10y$MF#D0wqRVAM?uCUzXIK4zH3_` z5;89dB5b{D3w*yWxwT6d>+tpDsHCrTjs_638NO_FYLRS#D9cn|krY6qMY0*U!2%?A z6U9?I($r1zTVnf5dkk>CaZ;I--Mi!@0uh7jo{2U{-=M6B68l~ltN~TWXxTozJZE`& zjXG#!s|an3z{z7Nq~xwk_sG5{b^c7@ydUi|2s_z$*{UrATAp4=rN1bl_iA8E7&Q;^ zu*cii?NcB1ToauMxiCPF%`GtcCSfJI{d2T6U$x-fik~f}OfxmvYVlEC6zrr01B2`J ze^?JbxLnc_QzBF~s?@Ci2kY@wtypXSm-TFEn#YIEvYBMxXYD6w5|JmYI{Cgux+xFc zf}^-82S9Mo`Jy>%f(Gd^jTGMbJLMe6L3MG8Kg&?cLu&XFXu>xm1{wk$EgjW6fx9;` z-nsu5>%dFf6OW$}n(#lP8wz*4=kNaVU*6L#=2dVlb6{licYWURp4p&1xj39ZvyPFE zB_Hm8JQMKxPGJMCM^Eb>l;H6sXv)-4BGOQ1E2r`CUwJeQ`{D910&HSFOAs z+FxsOf)(->TwY?yj1FRGv-|e|I0VLkv^PmZ=6|63z}O-`h5}BfMiut4GQd$R6656*c%KaTxhKIvF{Iht;fw*hT-Xk zsqD`|n-H_#^}#8Zo`%83FymQ=%Kd9WUo&ABz~GzED>eaxkFE7R6_l9G`f<3h?(Fsx zb0;vxH@F7n$&R7Mp{A~u->bg3F?TDlVRtNPuf?5#shrOkbrkRfKe;15OU1F%rc>>{ zJs*is8&GdPf~AIc$9piY7tg*tdUR6(4pyG3@pd z7@`Pm>w@cR{NeuIe28Xw)}4r_6dr@#?=~fTprelS_@y{y-peL+O7FUe?wCbx#cIOe zN|6t~&Im|smM7eDyMDAAW<-Ev1Lrvv5f8rpFXmHU9-MZu{1*`N!LQ2D_o`^>K2bb- zLT@XQp76|6zeL_J~NOBn*5(<6_%2tGIi#L{1U>euSJw-HoE z9~xY?AQGM+#Htwf{mBnTSKWx(2O$XK6mpCx3<%oWzhgJM@;ft#KHmiyM}#qMfOu zl~6_1h=1m4k7Fp1HDgImtICvy#tORgY7kptdY=g;?(M0s5TQ}n;&`0NQN{OcII$mX zBN*EK8E(SsQR2gHYpgc+67+Hln!Dlpx#$idGOzn=J5wj)6q%b0w1W@Se3RPo4;YF5F%0NhkMFo8@Mn#PZCIw zH1rt=+H93vdGE!JjOm%AO_JknnO+;!O*U&2nO^IOn8?!YRo5|x@Au~`cfc7}Oxd5Q zd`T%VT>XaSI=+7SQe^2Dlj-piF;?+m+n0>^Sk(i9>JWW~h ztc&Tq*$%!1w%obZo3qiK0eeGx?|y#yeIgWx|2{QXB-7m`#f>5mZm16ifo6Vlgwp4hm=w53$Uys!Ch zT81)~k5zSc%N8v$-;&1JMuX*jm7z+3Ak}{yWBS=~{M~<$&s-GbGbGp{;l`bh# zv{wS2@8qEX-Q06nEobP2zFejZc&~H9tb$u4my?PmV_G3XuAV?vfKY_=kuT?6N~XZS zH}Q7mO?hz!MK*Y}Wl+#4a+lgpo|pVS`gB9l(A}HF!5`Nyfxw+l@jCW#szCQG_G;i+ zE=BIL&N}jk_?bue_o0qjXZ8A1?I}Gl{vg(37X;J^FZUrr1dW&f(9{HTo{Fm<0_AxS z(>8?b9=u(+4TF};#oK`hX+6vk#1#aFTd65wwXs~W3_gq_N{bB$gm_->Y4-9&r!f>t zo5Ll+u^pn*6HJoIqDhQo(|i%eT`M17Ui6s;UvXLGa2sQ$GL0y7WWHrByZ>qZ(Pyp3 z$1tWhk!NV_Vej|O(YmD67~83}MFnOE4EUaqJ3#~-TsAiP5{=RPe=vq=!SwZb)Qga!$moDjHrHq=# z;1}Y&Y|XvOSiuAk**m}PDe1H>?*7Aw2$HQ)=}N)|9RL@Svagwys8=%>nKetss3v-mHf~k7&FM%mHKrGIvkov!p37;$Vt{;k9 zKYVmwZ^W=_%yDEkXEw?`pmR>w?qK`3lF7$2VuRW<(m8+oHwE>U$xo`-yi9Zt+ho*6 zw4<0!g=qK93&C;jL3HImv*{GM^=#qa9f}npQ>CBLMWlnnbW$$m6r4WmltIdN9|_u& z5x^RcEw@7;hWb!fgBq+po+)eH(xFO&R3JI(U7OJ&vMnvVR*YlC62SY0$2kHQgt_a% z^g)vjx7W2LYK^e}Qlpl5`>aQ120FVH;K(AMXI`^Vgmtn92d)d#mrAV`<9biZXP6h! zw$Fw29y^j$v1mk~ek<{Msv|QhR;7!WpHZ1ZT6uxmQ|aA;dlO$FEYa2!^#3sS-tknv z@&EX-Duj?3vJPb>LiWhW-s6xxbL{L9sYH}bHkrqEIQ9w|5n0EUk-Z6J^}CMV@6Y&t zexL8-`_JVZ)zy7p*LC0b^?W_YU8sLGs#j#@5OT0ETR7_rsV^Qjh5IVDa|SLMm^#c@Ra+ z$aIbh1lcn!tkVY7M7eknwHjS}2y373`!N;&rKTvsnFVBe?i0Zx`Qx1xGD1O{VD@mp zst)vmTaXeTJ9}n@KU#O1{@?rV`KKq$3fzSR~%e3)yzxoD@5g85kl7C?kPwvZ1 zQ0CPV(KV`#%M0E%plOLqSH$#%y?RR*;$K*g{$szPgSGj(7__TM0v^~c1>9~z9}F7$ zXV?!)b(W1$ePGyy5`98Xvec|+2ib@{I1aczg`B9oHQsV3iZVt+#$*>@f+k{AWM$g~ z!C|eI#?o-6-Stwl`0fVG81*!8#(U{=?|?B9UYz(wbOZ{;St-f)t{Y=Gp1my5*ikTN zH&!<(us#j5tal0cDkEh?xn8`ga>fEuU0*!GlCa0~ zF1m9w^K&*}c~mX@+#nZrNyJ2#vD6nD3oOUH3QEBbx zd6fx{?ZtS}QBtFQ@0rKRbJu{xBjpnjiKHXHoXH(ccnhfx`NRT##;22sSeA@o>a@`3 zUgr3_cLSz2;^V;8$}#t>S;S3Ww8+g+{1D9wFR>>3-u;T^xymTNv_-s( z{N`I3qchHtDl1^SbT%Tgqo?^*J?kLq5GQWEFso#@l3u)fED>bfN@?D4wm5n5YyCtdVJwh+-( ziJR@qb_hoCdhK=`)&wHgaICe2&#WQJyM!;Z!3DH)4H}?j1ayurP1i$m??|0Far+lw zlkMti%79FFwciC7Cuq4oQP<$afFgRwNMqPs9 z%3Zsrh5R-|*jc^|Abnof)nG{w#dI8d|EPT^aR{kn1wI?xIY#_)A0>y3{m0meWKV;S zTXowpe26aw`y9E5-JdvmY(15o;K%}GYe*uPBy?@YMIqxM6yZ>bn-aqh+qBQ$fYj*G zx9VT3De14-v`tF4Ve&`b)FsN*{R6-?yI^df5&R3ra5ohxSea31?3$% zxd1qjF_-W+1%UwacvXct)7tNGeVTp1kJt`J%k92LgwJish^4lU0dA{?6{}+icL%FOEzD6RhGFimYL0lnnD~8lL5A*@m4KmiutWDBfbVr&XW0ls z+P+cl&sK-Lz1(btq(N_iNj7x;w(-sS9k^CXYFe_<3T_dE!x!}u6sYF|^%Aj$gj*N& z%{NiW8*a`xd5h@<@BM~EoNz}CP=EQJbo%dCI=U)wXRo}Dtjw7nRnz};%dA<<0W1_q zpqyU-_#c)&3vN0J_=DeA8hsPmwoe@UK8t-qfpe^d??iZ()-Wl4e@uvhaRst<;zThj zY}UD0LmYad4bcq%J0OBg4D4wZiw1Me`Um|2DiMWyA(nGB?oB}NyseCz=ISE*kgElMQB=o!!QWhudu5F) z`XZt%cP7xzO!%ePDA1_P~Y9ArU$;@GBkc2V)W- z$lA!ShUk{MK&NJNniNs4q!!F2*Jm~=Q4E_ILo>r^4 zx7T7_c~n~OC`06jr6x)}t094hkGXEKS-RqUIAq~XH_3M7iwOy;sO{~gRiajRtm(Pj zR1^4qXNJ-os^K(7= z*KIUF6&GDG?}`*GUc_KDOfS+4@O+0T0c(^njm-pdm?&56fE}8$o9udT(oKH8rW(6! zw}fu>aaqy{LfR~qQw$7>?0dWrZt#dPNpM8pQZ%Mfn1AmMUdsJ%e)=YM1)w) z6L!ZVkpQ-`VeFxp!w4}U)BJ4=IJ=u>Tj-vS8lsUFVBrQ*tBCjF!WN1V#LAG~wpD|e zZToyq4AWtCYsp~TSPqF7$VxaH^?-t`I^|bYTMdw!{b1mkGniJkCe*#Plp5)VQ&Atk zp0pOf2T6)FESu&i{M~&>@bS5XRujOt2hr;k%H_Ww#-3S~C$friaVGDJ1NP4m z>_V|=jx8;#m=(^*zM*pmO95%8(%IH;5R+c4&Mm~Ks0@MqqJd95gk>cEt1wFk3N!Sj z!fbko5zJ1)GG=xFq`BT3o7)3!s}zu>;wbR%C0lEpS}QdgpL1P*2dy;T>Mt7zVL|c# z9&{YL1T^{C(-@r@|NqdL{of$XUIy1tyqO7Fj#q^6>F}N4aAk}NOJ$^O`GMYk?j4}Q zdZ*9kosO9EK?mF7E_tWz{b;FS+Cb!mtgMoQwhKe^RL!jR`&BOFm|kP>d-@n}my2`G zS-<#_?CBl)m+V<=!_ig13bDqkyKd|3dX!B%m$LgHR3 zyAJQQJU_qt&4`-G&lvge8@H2DjH`>$FD9C+ReZ!|BNhLL>Wtq*e&D~W&c2J~UM$VL zhVFiiy$SZcS|&0#(cP0p0ThQyyER45GT2S8)c{CpM*_VFV_mt*yZ9hmSdJlxPQ9CN zTbP=Ta-)@26wp@-J;73m9|qewv%*xaPe2K05m?u9x|b37Tgg**#KYz3G@yG_uE#Ac zDpa>g9g5&sfBa}*>ta+;U}Br8?4UFByKjxKQWIz%ai+toHEZ53;G}+D9J>e=QQPV< z|Ha^lozJy*VS(Rp3WhF({tQs8yooyLmE_3K*dWi#>|x&}Tg??&`&U3}LYT@7KyR5lfzI98?h;T}Z= z%N#WZp(k}p+~`5JeqH;Dzc38+cL~F^1)A{J0BkCS?4xfXn$S}5(@(A7UM2T+2tSRA z*_SIhNhujNBz<8WBaDA?&(Q5%W-8)|8%A&!vw;!Z#q|CoxEuLLaM$095!|g@3hquZ zg1h-}^V;iBRfdz|s5}fd)O*#SY4o zfG3qBaZ6!@P`w055fWG4&x0|jrZy76h2>z4-vmGxx$Qlj)FwMu!QdE6rv9iyI&D|a zpJAZ2!SAe~|1kMSTOaGoJC4jc4cjyhNWBYa&FZ5-+ge`^T1F#1tcjCR4;TKxBboDw zaNrjQ*-{tRVI)F_wh9^7K$~FZGGJBlC%+V@(Z~ZJks)8eK$(vK2FhoC6nyqE9|NC# z=f}T@5PR56niM?s8_Waz&idIA;Lq1|s^}e=K?@6xc0#UowOlOz!%dtFP6=KjE~#H@ z+c{e@uV!Dzd(BA9#2bIQUq{iaM<+Q>;aMV~_f2WLL#bYbCrQ^YOK(fg2t^wAgrEq> zcVcJXdi)GC8!`g3i2+{V5HEoju<)lo>ZPS_c&!D9r_r{8Q2|~j!mLXwNQWP$MSr+I?wm}{)bdHvOLs$Wyg(nUr+S!Q~dfe!Yho2pa; z3`p%tOMuj_SLs{;>!_{GV+{9)buKztZO+t`RMN|j@tlDslJ00N(lqeo_rUheGeAwB z`Td}XoQvG_d0%Ghw`+S_vg_%>xzdkk{y_AVAs6p@*44{W=zpiM(NXvJ{hgq?g~Nr#pU3oSi|xiB+&lVQsBW z@PV8A{~7prrMr5nb++juat-fct(pMqg_Fucbm^^jYyBIkgkqBvRqKA=XuAmXp7|tt zcswEV0p0$fXBd2Pv24@r<=1N2S(&x5HRJ0^SC9COUEVi4L%bHkcdH)kmH)tQVy899 zNIjsiI1(;1x;8AtT@^iLM7kUQdUtt^0(*4w(1Q@m5mr#itRSWtGzQ$h3#6)zdO@7& zDi&psu~?Q}gapp63fAoV$Jmmw_TXR%?3{J5*6Yr)i>?kEUZ75}SEtVgn;G>}TJ%iK zQs6DcWs9+PEgPJ9=ewcH+VB<%^!RNwbnyB$5sr0KNQ-4Kt1uyAuW25(f?6 zSJyw~>jjiF&mD}6U9^*I5lWz@;fEMtcJw^}2^4-G4@%2E^tZDltCt+;i8Wa4ia3jl zVvBqpSX-b9;!E=qWyJ@y)VX9h2A*Myq53v%VpU8odAx-fl? z+4WU4ahd)VfB5S$PMkK>C(ho7onfsF%@)`sk#?P^R-?TLSLa=HCCeh>YWokHD?6T# zV_ZdfQGaYTuVCmX*MN;DW!I_4YQ8yI{{ZJs@1KLrjyVmC5t%x6NYlR>w~?~(1rSqe z?sJC}!!NvLwM#wb-rC0b(buNa-_0QFQFqJ3ael*kw+3hNG>{Ub$isaFXBxkY-HalA zBG&=BByANZQP}*W_}0N{tPH;vtyS&~Qq(#KOib@{h5`w}Btfb7KH{75Cya!E2k$Ai z>5aUwu?KtNia}4@SZ-f3Q!$W~{Enlqw2E_D%s`%2YyS``IQf`_F@bG}!8U#SgTpP7 zAIL4W-fAN`rYWv;6-BGGsB+t@neQc}AD4HW7D2m@n-fOB0eWDlc_Q`=|2ylAGaLTx z7a2Kc%;<#66}i80wioDsJUq5@F@L+|V(JgjPk%pO$p}0L35pk8I~Qv!p#Hc0=JubH znZVOwl0Qd*&o4H92Py`ziBq05jr~;CT$wV}J}xz<+<9- zE%+=t*@02?C73xUC*3^Wu{>NK^ZQS5Hxv5n@ubsEQ2iGBm}kKKuF2pfnI8i0DH+LQ z6RSKN_+q^jRAfwStK3gQ!KM^*sNChu($Fop7gir9_NJC+!r_@(RO zHZ8->_5}Wj6*uEpDc&_}?!S7ztl<+Bq_p_Z4~>^YID)vULZggzp&5?6F(AZPN=vqROQIU?SoC~!$&|Kgn7Fxmm@!f|*)@6que zE_(;Ulj?Ix#dF8{4gKrW;H^+-&ZE<#KaI1O5HEuawb7uflR;)HRyRvjxbuFd?s%%L z5>8Nf^8R&Q(TykCQMgwE3duhSDVn9`+cma8lQ%?eFy%7o{ukB z8sgtQ!07s7Zi{*S-3lXiERDjs19ztdzL!UQrBCQHozV>R$Uh&wro{E1Nq&E+ZIeu=S?Pp5Ty91|j?rIfP;S&9%t&4ArHppHamG`HOIQNw^b zT5}dPAwA@eIj>#>bHy^@EL!>>U=O*~@onK3Ez>2~`@ADO3|<_b3S@Y)8WkZy_Z|NW zzhz6klT=Ad@*_ij8&wI)%Ng=q4D2i)iRJy=K13*_>=LnqvYKIVtDPcoHqYJ_?wb+6 zW4@Q_1l`}MF{^qm9I+At=R=OI^837_j7ZSoO`j_5`A`KQDTTYb?zbjAX_f*uz|2s; zBmi4DYVEZBZ9tY))MoX@EUaseLEaspdde8MwCPo+QmaedB+CY%I zlGWoU>wABhLIXZRcXjS>P1RB?cPf5RUIQo>fhRKAL8HhW1s#w0N8*RZpE61Q`6}%m z4Sx*BNB^E%ar}xltb20BOi^6hZOELzs1FPz(~S0O_cDqh%s`fLgMs8lni|m!0Bxb8 zhf|@2Jmr<17<+ljARCRpFNsU2%!_{0iN-F=#Jr zDS|zJ+swUKU(AC%8#rtDC~%Y=3}d$bz;s%}{1^<8x#I+Pl86-^SBQ>ONf zLAJKX&Ou1rmwP{KhR!AR_4hq$n*@JYr4c|=ixFu(R87XB{jB1!3`3{k=#!+zr6YVl zwp)OAI&hT#>n7SpdMR$q8X|u3-|6UF$g+acYmAOak_z zMU^kHhk(7cShC(uN~9r)a=wj9tkc!`F46D3|7Skxkd^Fpkh5p#hr0Y@3b1=ds1u5O{Z?u>nvo*;m&i7^?Vbr3D!xDgoj8a1KU^&;!x+U)El50M(aLnq;bV=EUyb}<7pAus#fu=yg`I4 z)?K;Bh1~0q(K>9{)f_T$>)(&K)g9+CUtixN)s*d0Vq>yhtv->WGxr*#DwR`7vGJ9tnsw&~kn9PE%~s-_jk! zDk%{$ix1`Q?W!{jEiti;Qo2sHab1hBeRSixTG$UI5mB|IAHJC}8`8?9q;aWkJ+BK^ z;*?6WRe!`O@hJ1E*&+c^P)LY10yJ4lsfiS!Ih069|eI2~ZdDY*^s_arQ>y zE{+qcY=S}84RXsSu;ZyR$R`Nm83FAFo}ZvC=eY^XC+OyR0MlH$e*7AN+>O1 zg$L~;uUu27V7hR#S~9D1vG>q-@n5fR<_1iY!~DQ{Y3AXGM}T^QyT=ngeb21Y&5y>gzg#%R*#p+BJ*3aaz3NJ9+y*4mnkX|FJ>KaA z!&tD=JRq}enWMmlW&O^Ap4c{Tm`5kyxJnJkC@X)xld?Kb&6U_%C12q>e41eP%#*FC z$-WF=Lnl4#$)UY@^@(EKR>CoK32vWt?nN?S=;rI;*!xH=xGJ&#@(Rz$fN@m@Ak;1* zY@dl;6M<8%Jgj>Y0p;xq_v_}mdt5lG3pp2)sM9Yg4VJXZCNR6_#CJ*00T>w680D3Q zg1EqPpM<|m>1ia4_o3oG02-IC)(jt?7icE|>fuq^7cu4XEQwf)GDBk=D?nj(hjmms z{Hhn;sW*;}GnVEh^)3cJEL@X-;{W952;;q|{wF{8L`>Vyt2n~n@bl*b6+OSvb(zdc z{Yw+pmhKeStF?bMisq|_#6&t&rDd>dcD*ub6v7Kh*o_)^-h%`#xX`^PSj_9}_jQ9n zDLM>+U4@&{!GC$0QhwP48tnT6L$0(``(?vaQsf6+C&ANgfRX!82NsXcsd3d25O1wS zu$xxmZP+#~NU_y)RN$5d=Q_7br4z=2!{V5$)Wq}8E9&xQ>L=r`(FjPxKt8Wibe^2BY{d%Ed6sV5FOEv9&Pe^MoPS} z2RbkmZq{UsFX(NVXp)XrJ^r^w@v>uCpMsW6fG50USz9x&E_ooQPs_Vx)c@|6ks^!- z%PSXqrw|Xgxq2KgJy^iawKwvzsR4;gt^RK0Bs$N-%nkGi@+3A`0Q9S)J);-3ZuMq5 z)}v_x>!tFZ!j5jr*u;(I zf<1tlGeP}NW=_9^2RnIrzM#qe;QwUi^zHG=CJBJNG5NdIn}RpVN}qrs0<>a#C-z;7 zY9!wmqo=ZJ85k3PLQ0=vyF}rRgFDTlxXayWHgA$A0y#C+dkny$lp{{3u2OA`aA>ff z0M#mXrm3hyslkSMz@6Xm6#^c~xYQoZ3cebc2PirArP~+YMSzskO-cM-`pWh|AE|eS_HDf=jgSmK25#$ z79)J){QjVNN;K0cd{0%D0Uo|*9NO49h;3!DA5;Ba)n>nRu*}9>Tt@22UsMJg~ptMxm6or@t)bTb=^pA@3h%z87dnk`-U9 z)tI|wq0N;htLO=1*-8#VtBQIfQ3R{hJ;uk%_}^rLgRWFj0(F7pJE+B;RLSM18&fFw~d_di;6bcq*bnc&K@L zetKvaq=9a`UBRGP&oh^_T6Jg$(MO+r@W5J=ttlxZEblc8|H}jRBi@USiIf7QD7D%4 z2mr-;Lgx*B%nx95OErz%2WyJJ#;K%jTepaCuFS4%r>)6;(PGBEdUO|DuCz135_={n z*K?;!oXDPXxJhx^?KhgvKc>&Xs3+Ud{7BAP&fed1Fx2-5u|74~x2Zi!#qOdiO-B7w zSCXg*`#b9kR|d9L5=ApRlCbxNF|BsQ03l!5jat1V0zX{yi)eT6;xh7KTz;C*J(cxw zu4jQ?Jyaxpvu7Ck8Evx=26gJ^mbO7ae@7l{kd4`8Z3|M~`|YZ%dOKy|Ig!W))t`rd z#>>x@uN={evzKYIe2ZD{`rTE%b(;?tgTLNv6%bE7rPm8y?{nINboPWy#M)Aa5n1B5 zei-Lfek-~Ln39TS!M(@>BY*D!EQR`bZm02igV;^bNdkRT4m2o^tx&Y{418UtPk8q1 z4fH@?biK@T(lkD^1KEkg#U5bYWW&|tB$xn60Il*{n!Cz#_w*vU8()NRw?0ygn4*Wd zUA0z?p%HGBr;o{Dic;~+pTPP;BV4s*mWmOtc}{9>RSi!fFqSG&rgimk9Z^TeWpcq$ z;4o+3Ouoq*V)SuRA<*xs1$9^~a>T!l_|$_J4JD@z%d{ZEvK%iLH6ObaKL!IM)N--s z2yCmWl0zEb^4--~S1mm>JUzlHkXqS{kL|Rb3%rg6%1fh)BQDnH@!evk8V|U^FjOG& zQULj8tl-l1rQ+!WdxXFEtvV&*8E~d)ON$l;dm7@!1Bqb~qwG200PW!X7#SqjCpJsf z!lJHk@7%L1(2V+#9as~}A_JY}=0dmNk9-dwpOL`v8Oi@x_PoZBfx(w#pyvqoRuvw{ zzY<6U-sEJTffk_^eu%Z|TN;{e?)8FV=mNQ*rtDF0zedQp$Q`&OA4}Lh3!)cRf6vxU zp6vBa3`lxil}+$8pF#^?iTd}Y?aRGr6m1g{P0OmxOAXih+TB4n0e@s;RnWAHpTb3( zzbT6ki|Oyqvi2Hc1BNsUzv88~2)bmi{O!6+NJy_MB3k0E1T1M@1{j`F-WJYpsrc?a zlse(%V3<>2KIa@CQZLjgkm??Ii69jG<)j%yDbqqMbWtrn;>Xn{m9F5inyb$ z1Sfheo_>^5v_xM?BN#*dF~}C`R}1oo>XaD-zc7ehu;Q+fdeLFXECC}wwm|&0;uaF| zIPdOB4y6XF)-UHO#*ciEY)));qHVRdPI+QC8j=7WeDk*LtAYQ8`@4ddgXv-c^|O;I zyvUBPb?nT)Q}P(vMC4Aum9>NI!KOZ7uJInKMzK7>U$!>EO=UZMOZiqz`7KuoF1bL3Fd?T; z^vxcn+cDggNs7MF})ee}}}ejF7cK3Fi;lh{4b z5#7(ihu>7IxqBYgs-8tf;26?e<+a~q6pWVRBYt9?>g83;XIquuZ&#M4iLayw7o)9? zeSow%`0TK1nx0yT%VU$fTW7E6gCA|c0v`wuGJ@d-HuwwOSXFf&lEL`9!0EBFCphZ%SocUyNI?t9~72Iys5e8R3;QL~sG@iwGW@}{$^^O`#_)HXR?K8nuPo52FGYSmEAZ@)$&83l7w@QK;p%4 zvdT_=G3Ses&q_c)$z8--nS8BebT%`-mK%M`Qoz-ysOb|Y=@aRl=rKaJ+AlbJRJBxw zF7zOq!i8HR1y`27?C8f@`xtms#9uxtyirze;51ig0|a}Z8`IT?4^ge}=ibvvYZJoL zGV1yrOOgEpiYtQpVO-r+2Uuixd-=6 z68g6Divg}Y!CsSL6c7vPDrtS7yNISoz)N1Nf2)5KPf$_o@n+o+UM^C#ZSXZ`952>l z35!n~byHMF2PgyeWJU&b);p>N4^(p1`p6ve{+WnkFcC%bA)Mt(@3FK6NX;?hKhf1; zXj#m*46hI{fchl`qn%3mMm?l;$6o6hL+`88X(re^;E7k3aqVg)qOAzFPc1Q$}dt$Wyh)A>C8KYtrre9zNmUrM+!0u!gY_-!iV*@kkNj4(7M=mSmP0N1ZX?N36v~5VrHsCp5HvC;2t$qk%h`Q{AAxQG5MWRH4#0IV5fO53x zL$5=A$|mP}(5?5S7;89tW;Ma^l}74>9*xARHBF#x*wTFYm3fC$z4yRr(PoO3V6}za zuiQLa=@WGO@*=pVPWsHW zU^e(yY*gQ3I)d<*VDUcM7{Qe_!LbyIw(%j#vu?ON0Bu{Js$;vwFdL-s8J-j?B3 zK?YHOGGz}ncea4j zlt^laC1(o@r?Wll&Pkt#quwiz0JVBS&KR$N`FcSnG7K8`@lsrx$xZNr7KD_3ewh^x zh}!NP_7$TH8kHExhp?u~cx!Opucd6Ks*k!7$DD7QoL{VNycxSaI~&>3L?pZPmZ6Li zyUsl8{WOXK%M@nkBbO<{HKN&6&78?iSW?_gI&gCisvDGOh?S7Zn$9UDE556P<>Y8H z_ZMmkTn3?tg?P(I`BqmN;d1{Pn9+YxpJ$YT%Jl3%~tb0e`zz_4s z?p4tMZK}Nbi#D|;JQ3DL_)6)o93G)@}EF)Sx#4~XfVg!-Zv zdMn!7`E-dpp(RU|;98dnaxhrQpHUay9?WX_3E*Z_cfD(gLW|F@-Oq3C?L?Xc9PXz$ zZ+~Yvpa1G*O5YUt>*QkfRH$s{_UshZVS9tkai~FKJ5JW;c9s;x$=Q<8$Zew5Lv@O} z&+xsqhB`9(?+>_ABhg3XR$aP zGwQ03KGQj#rdA0g=ubAgIBxmX6_i-UerTLwvDx1Zwb4##q$C;t$y_GxWAkjhPq%B1 zJQL?kn>&6-1^_S(ILmUqU z$Z`j9!m&!1EOCbnYrwZw9yoVtZxd1I`zdh?5#q?zniptSZiXhJ#z^=;`ilMLq8;`# zfd|S*1NV)zzz8FPg`@&}x z!#L=8``dAUG2vg|Vj9#`CZqmp4iv)>1~Ph&oU1N`sSIrB#jl!>r z`ShUE#SV1jB38l_tJ_KGd1S_+a;ihO90xuqukd;4ujgFZoVts;1 z=Jt6fm0oRCl2!ZS6?`hdEE!<4Fk;L=T#vM)MiImJAo9-blK?(i-jXM$b{dj2?;c%T z5Q=&X(i99?8ehnU`_YB9;k=*pM1}mgLRM;h6~j6mN>roynn0Jc=E6cCPazQH*KtO{ zFlb;O2zD9?CZ;I%0Rz36d0WY*Rz(SzG*pfL#OMTc=?J~RmV7>CJ$4m)6=Lt9|y zkC=pEI@H(0bhvlHo7{?T#KD|ez5!wtt?^ZWmh{tk+!XfNTC#y)Yk^P@>N#%byudme z%hPMrhdgCyjkbqXTWpKdp0D;kATsx*&IW%O6lH>^*5LR8e?(}#v%*#nd4y5Q+LUHO z?F1~?KMp*#d`ARI2OrHmFXsL<-%S~yKsjTR4FweAFA)JoSno=Xb;|pMzA}ccWuo3p zfY@M}mLN6+1;FI|p%*1dc`8?wxKC${0V6=;^PQPTj=9j^5hGA3>wu?if?JKZ`XYA8!(q=Q|hK2qM>mv{rDfCGQ!J14xlTQH9GCwXT|Yq z_)1)B#6|QV=LC7MqUhuFl;5()(*T9rj%1tQri~>CLh4;}8hlK7opmCQW2iJGDovCJ~1EH~+KP{H<@o7Q;BNdnA#s7e_fNb@5?94g@}-KaB>9(nor@C(}J zO7vFFBuEOw;7fX^F(`Oo;f zM!wR)g|vgoI>A**$1Y^qw9KinU}J!-|K6>4kb>d6L_|R>s`y2n0X!|!i zskRvbUF-3+n^09)w_N~L6M;GxBtxTMTv%M>%9bFHB!L2AZS3fcB&NE~ipUD1npW*jzP_EmX_9dXFg@wt3jnuVyCw!; zE`RVz+J|6i`XxP*!(;xgU-bx`Q8Ll|aew+3GWsnI$T0L!oqc}v+t`1&7A;VWMLA4c zqezsQgl?TyiBL7cp-Mn@ei3o;RF_q2eov+N&We89eW0)ZzJO@ga%HnP7!oMBf2JL5-#c4XPW4q*=2w_q>jZIPUyhtpx5!;Mp~O(I74JdxQwEj_{= z2#hdrbji@0@D-}QrqzwR@v2oxB#denH%!JzQofPUs^qf=aD_Z`U>~VSv+L3e-gnek z9Go(XaX>pfzjgg0Z|l?&zmX`1v7v2o&2uPUk#skM3hS2}^w*^g&Kc5?c`G4`daHx9=Hbp`>BhTke&<@!|WXum)9OXp-@ z*8gBOkY^MRQpE%L@TeqIk{adi+UumZk&x+WH_?1%$^D{WdLfPhx=UwReeWVT;k}&A znp#1w=wL!AE;M|42xv!h5}e@tm5;g8pw!_4VW%qzw-s#?slyPJi3;&piLw(ge=X0w z6Hy+Jf-e$QZ~0Ez_TzTKd+G=>AF2nQ5n!7wvosS1w%K=RmiCD?2kvO9sCycvBx%O9 z%1JTrY}OJy2|U@KNg0b6>X_rE#Ln+n!XWjIB@9yUSi>N7hnax9qI-?cf46en_r<_< zeqZ*H)ik?oaPqoNKW`isYh~AgpQJ%(e)9JwD_rxO|8zrMy2-!W@b2fpA zSN{NZatTzx9(?SDVeCE%Ctvm#UKikh+jd?Nw2*V3DQUPFE>`-;k33Tf_>Q(&jssEc z^$!cu}9wSHOa~$19-KvxUJ9L;zZByr5;i>{IJtNb#vClGY_<7f5j=zAx-a#E_n$fB`(E$8nC zIjrd@;X;+jxHS&8c0jQP62UldvohxqMx ztfOt}ub73Uq(Qp{f}oNO+$(=f2eS$Zjk5=jxJ!84r}Tatjg?#0vUGhjFm^caLpc>A z(F2Mbo$D4GRHYu40(Rp4quOj8UvOUOa(56@P!tI;e1KSq7h5F`#m)do9nT7ZGk2)L z_m6fmULVi;CdWbYU?9bFwX6y^RJB;&5WAQS$;pl7P2L57e|6ZT7L=~5&n`_X+oSNE z9)95lPPhV{x_ocCIEk@El>s&#yL=J-xc~PhQeaT;09^O=~ zeV&JOFrqpC*ca1M=X)lM!@pbN{O0kf zH^nWjnZZsQ{HA6a(!kgHLNivVCE#Fv$xpC{T-f$rB*??DrZ{7wLSv7U!)mnfGJ84T zaI7C;jYcr=3O3y#Ovq}VXfEH5PA@>6F3*zQ6xgP0_X8B>pq*rk-|4ApB3^ew!6HiP zb2RzwG6bhrtxed(=UAH8SoohDoUqp3NQz=`pZZ%4P+FQnVD3|OH$^w14$X$rJTSF@ z`pSN?>wU>we{Sy6ibg&kSXJ2s^5Xg%H{xIOTA=k_t=*zr?>6QHiJw_Z6hP0Q;gwbK zPX)k^^&;YK>%LU6ZhsZFn9fbZ&kL2n5Q^ojp3YNNBS^l>Aj|wr4gHn|p?Qe)J=0z&;|RWjB^yIcT8c1h&7Ha#~Y1p<52>0vkmvg+T)@hmmXR zpKL##=$!-)WI1=SpA&W0I(MzK?OlGgJz|NnRauGu>k8EXuFwi;;7F8OE0b~xSjJKc z#2dnt23Vg5u596?WQ2Vc?FE@Qvdf?(P!ZM(N&;r&@iiK_{DSvE#URLqdEcE>$Rnvs zG@D^Z1ydi;*7pVhucPj7CegNe$=e#h96IUgcdqD`W+&zs@SOYqrARI6s zLiAyT_RE^XB$|8>j1%E1T3%#&v0j;y9oYDX?AWIH*zdjv%@d>IIIP7Xyai^<-0Rfp zKTJ4ZJ`z6ZO4-OBAW>Ke)YlzbOUzym+Lt}$rU(4A_5R{sA-T23YpsD110Mi_qL zcf?Z$Dkz}|ruD46luf{ojOY+_h83mJN1p!peKV4d`14__JDYeA{6lL26MnfcYrQiQ z#yJXbAjIR*$5UAa;2h;8y>yOx%3Dt*B{)L=I!8%v#yf&Fdxv9+>rIKg8muK^< z;UwS18~qOUw|=%?2g#vEg*d;+=Fy{{1bPOY86^Do=6g@G^-Y`3mcd$42=qRf(O1~n zySMqi`QC;{FD@c1ta9HoGxwY6#YVe(QdD=XYufRjh1IQIWOvKi?-W0ypEV@6XX%@o z16xoo;duLDg+_kBi2B%SCjTEJDhnczB8E$nfL`83u#3RNDUEd9x&F|uXZAKc*OZNQgmcj-%wNN(hJ z+*bm=)S7vwbwGVPgRP39oJlIk;!%WjxTMg@3n~VQAS>QOdA-`tU4T}Zko=)vtS(js z)1Wa^6s|V`xp`!C{qzf+jlxgA*UTfs8PCr)9v}G zH^;-ISYEJfqi?n(-~Hd17Jl~FO(Y5Y&ENde@7*8b-V>Kd4=4KPf~BO+FUp@EQ+_L> zu1&Bl{bM0Eq{O@Z_o7N_n-6pKl_1y4*rx=2>(jj5X~>$ zdD75K7PmY0Yx5)NVLqhr1Qh!31{F3xbVXGzCN+D6f+EIG$hfXST_DaUvP`eX?(NAx zAw}lc*P?J&Z-F`nE7tU7EvJKPN*Lv^GKq}O{DJ7iNoVV^X zss_4}FHGb5WLB(*WmyX?oEaQ4Nv4)x$l($Q7@)aVml6ev7xK&n29H{)8O*$T3~nh= zhgA|x0y4c)B)@4gE)R+Ws1&P{@zg#-Lsnpd;MeMHQi9oeX13pTd+*xAs}5tx#S zCBMR6LH#o^>f+yRy4+M;M>0vH!au88#87X4$`A2{i zu21BUs3-19)~U&4h(zMtpHf0u`sRvBEoY-S-+-q3_D?-0hvG6jVvJ~I#S=z`92{-95V;k&?QZ1{4t`T=dVd0Rk0!SIf)@tYE_->7>}*zjzboCtd@LI3OSzVi z1DImwL(v2?E_6=w{d^uAWon*)G&6BnY zr~x&228M6mdI|Vu`wR@*Z?;tXhi~q{zC^LumnilM2E|rLWB5*2X$*jUCM~)i z>^TVpCRXtcjDT+*!Mo&}3IFoVx1O#4<(r}Q-TVBAFj~Wn>l$G!7HL@a3!!L{m)al0 zg8NzW{qn-VQ;WT*2`&5P?Lut)=arpBQjgTh*!-PEu)WN`++NO)#H_s&_Q-|1BOBa$ zjQnS-1?ujtO=wO>XWQxL7Bywm&2A|}(5J#{GtIaLTjy%IcmUg|GI8eliFU3ACvfKKVZ8JgaPT`dk#*sWd4ucP(aHZTS**Ejw2h!O73 zX`)(*A}@!to^?IVOFUA!2R4;YMt#@7rc$>w@y6k^`1Rb9uVVTL6CklJ68H^s!wg;~ z;D`}cWswvg6hTU#1w2!!8d8C#E;QdD9z|teDYCNF_%``f$0p-wL}CjSz#%QHT^ArT zQmM2xjJC0fpJWGuW;kC1m`z;0F@hJm%-O}QefCIQI}E?9^%ixdC@jtpql=Cq!05+g zCbgj`0Q$h2DFhfC@a2KUHEjd~MMds{WFdIW_Yd0ORT2P%ax_t@{ej^>sSJVEZv+*C zR9h&e9+r13k^CAaT1cj>&9yHAolaZQBxne|BTOkz2phOBU}%()WNBZ;_32?Xj<(S9 zh;Gon%>M;`A_=n(r7bY9E?iuOAttr%zd4(+VdW|dzV{BaH}&l zLB**Lu>slfeRVk#XH1FfkiCxQpy2TX*}v`^3 z(Y0LA`=Uzqgm`t{fmp2U|QCW+yjd7N8$%x z3{6=7L7EMjd^<7#Y3gXtEL8S^1QgYun34rZnPzSEWIk{(U+7G&2cFh**yeJ2jn&ex zhUoa0^DayD?N9Y@sNgbe5E!0Vcslpi8DJ6xl1vUX3oFCtI`y6 zul0hUcfwW(ZfHsZG4u3fU+f1CKyMaBB*$S^p46!fg^DHfA1?8Lc+%soygiwJGgiqD zF5i%6*OCcD$WL1c3(t9~jyR=zY~NkgCx|_)G&ztW7VfDM^%VoAg=iGb0SWkxy{tLx?QK$axGFcT5h?)&oz=>+Fidmflav2CRF-$Ws_S>lz z-lAS-p5woVEk>RMaAOA>k8{?wAXS}NARbEn(D<5J>LIC5J+QF)G!m}w@l9p9 z(%p?TNJvOGytDoN&pGdVoe%Gqwb^j_I5W@8tb5(-o;3#-(V&l}?dP%tkxZrJWk+fQ z-Us5aZ1Yl3C&)IpV*7z?vo8%I3&RG!`IDn>sLjur{>mz|>urpixAd<9)x!k&nL$HM zCZdftL0e4)Ld?JCUC9!#lHOEaq@AdMdnNi>)Fi=%F#A(`BwThSk)v$V<4fhqo;Rql zdb`!-#URBu`4#U2lHMm0jsLA_K1>7BjQ^8p25a{JN;Lob9Y{1cBmZ_uKT zwv_)A&VZEpUsZ>=3O!S#@O}zVvwW)`T&-J>sP@aZ3E!w&5+Jj=9jb*09BV9YGqE+B zkPNzLd&|q~jm=c{%P&)Lxg;!X0%sZXU-_Z>HQ+5l`JoVObpe6&UDP*Z?5=bu6OA3J<4GgkZpWQcl;nVxn8Z$wSS(hrgy?*9e8Zft2!=%)aW58V#r?~G5 zlGFD=#s@j;#Nx4PDf&5h^R<8Ti=-ND!ODAX4hl23bIi-t>%s1tcwNm*mbO!O?f~zo zX$Af7t_iAXXo6NR2ycl3b)EY_@dl?gh{x|nSr4EU=WCV)P zM1c1%Zw#AFJFm`yzySYo!b67@AL@tQG$DM_lbSGe4m@VQ_`wZO7Up+>1eFubw3Ez7 zKueotfN1Nh6>79|u++K@iN=#z9K$Dfk)-$wV%a(Il&r~}PmjLB3sUm$Nn@o5{K!M*A zpUX;3HBf28qVSYL^TfDmQ($7$z`FmX`D~lM`QCrF~~%!6X#KctNNOB1ZJc zu%tYyB}mGbe}g6E#nMiEso{(p-uAbWKx9166Q|(9&TCQ1NwwYYSjF&O5O+#A@y_^f z?v2;(ds7aeiTX1MkXf;}xY`d3Fm3}~veDOzh{R_d6ohh+uRsSop`8hIu!GJ5cnWZX zw#LcDI;m+unL za5_Dg`kP1@`80dU{kflp8g?F<=z=V=!@gNIh?dvQz&NJ-q#%?$Fw+wB9{-U9#<6E^ zcF7NZCMyHxnOXnTl1_;Yli__dP5S_2g^8H+v8t5tq0z|ycLuqV^H!>B zf|!&{|3+HwR8`{qJ4P)h)n40~VSHX)(!UR?xddUK?en01m^F}?o?YwPN3)m(vi=hjp_&6x`R1Vq%wzTdB;>$}!MhLdzxG|?#(~J}fT764 z3=1TaVWHV(NJ`u7Vv0Vg$Nk@%PVLKsy~$kEPdWv5DIeg|pMSJvpItU99H`D6SkSUf zpOrPYU}A};-_`onpW&Q-Px0I3Z=mqC)#&87 z_0?JWwUvZ@0j+;cH$r%n1My;Ye(_xCC}%E+_H9tua~Hn`tt2ZI>1-U|aBqM79P=NR zqd#ypGG!W#1~~&4#iE*!u(;Z0>7ravpoC+~9#j^pR0Hgb$=&ig=C7D9Rpz6%*xOwo zw*ys-pK9aEm;xD{XA`g=fHtuZ{iRaPlop97^PiG3q(qt#ONbDh?u_QYQk^BnMU~;T zJwVyd|ESp^ROK07y(GWY_^{sn%sK+`C{#Kz^&yD$}(N!i+yBX=Y-4FgXp1^n^t-|Nq; z)t#F?$v=ps#l^xOF_?<}(0MVZMTanhoisbpmoXx{cQzO$k|wcd|C&V|{duaKX<{3H zxLqDxMBx*`8PtlWR9jr6?}hn9t+-VciOJ-=PrBgi5H`T$aNsvC_QuG`bjqH3bv7ek zp@-P(rzMiOJ72EBSo}W(k9?fJ8yF`_#qaE2(M?39y+&_9SD&yB^8^(^hR8^(J@jsk zAunOf`wQ~y2O~eiuF~PV_tAu1ykDafu#}Fa8-n7fy&1-ROOWQ!6ab-Z@)0ho;ca|- zoLIrRGX|NYxWO2>uS$HCZ85V}WQH8HRq5SR@;_g*$!&qAUP2<1YHr#_VJ~B(<9UT) z53?tT$AmSJu#2XzeKSVLw|>xR4bs3m0&0Qef?o(Vz5M}G>ybHZ=C{GX6WRtFS7`47 zYdqk|$I?vPV72N|dq5-e3g25mL8&qsb{B)PiVOqtBgF5Tg{#V?qr}jKtj?cifsm9Q)#}snbw=x( zy}241rGysklpqBV8EJp3u#mZR$j)dHX}bUW`~0k2z#gy$3&PaYai15Hf3;zmNkOH; zvxj%5mq&Gu{OSMPr=EQ_cB;L6KKtXC5LOlo)A^mmYS62%R0U>*-3WR#7@w5VU8qPS zsoJd)8#*3WcI2rPr)6~SAjqvUPc{VQyET#%kZ}5@(#-Cn<+YX5GVNeF@}N3Ar%M z;y2wE?NPkJNvmIrW)_d|!PdQ%R0?p8`76`-7kI+BpyJBv>in! zS|C6sLRoeMAxd%5Fmqc}OiZH3i2PE^}0{YyfNDwHnCy z<*0&RxuYPKlTO-}@vgA27EA_iU z*)CRpxt@=>m{49rn%mj`sO(c1mEBLxWkstrC${*R9VQnXdX=WEZJ!MRr&sVBnP9c- zEki)Q!X&p2R@HGP*ZVyxO=`JS5WXaN5F?jTk2scQbi4G~OK`mywvdSo3dOh>jCxkh z3joZ5#m$F5Sz;2<Pr_imSKDe>M+_my}u=(kUJqLl=B|AnegS9m^h>W72^M$u{*#U?W;5lpu9i-c?Bmx zc`%FQwW=Ng&SLfKJ0U40y#sHIpb&Q=D?2%gi?p4WAXn8g67(JD`}(o0C1-Mzqb4qZ zl+$OZj}X*}mq6$RhsDJBDgL92&Hm3}F^!R7@P1^sW9idWVTZ+F?+3<`pC_AB&O3Eu zB}Un`O#-o;;twRo9Q}xKpl&ODdG8wPCloFI7QWx)OI&S;r;wTT?3(lfe6I;cT&-#w zDM#IbC^!!IGD(l`yX)46KXF*GWH6e%%|F-G6vz*yiqt{zJ7b05nA%_KPqF^Dq>rJ` zgeI1%|9=jRQ4^&x77CArdL^UxTq|wBt|N|ZN>V*A1JqgH5*oM)%m_1mzaH@9lwS)I z8wdoL9jfBFM2!y=6=$-PJCF#$c`ga3*>Elyr5Ulo&-^MP*!BBmq*iuoCPJJ?6+?`} zbk&?&Fx4T`a8`Dc|7JWQNd7=k+M_j+RiiN4{;^Bt{aO!0;O*YaKhzNm;eo@A-$rM+OUyKhHMOt{j3cjVkSPkcxz)*aXF>+Zm~R~& zu0*ZWPQ<~T8&PGZS%1|kecFz_SgVDSNVAv$#4s1)0i|kBPWor^{bbSI&H6_Qs01eC z0S$X)v;j(Rx;Gtz19?75JicRPTh3tUq3XD{s4UfH-NV3LtMd z7xHkE*&q2w+$r}; zokCgUXgKsD_OkV7loIptvMT%6@g0$wzVyfj@R>Ls&-=S7vD~Pk?BPO=^c(W)(ia*r z$wTtgF(JY``DC&CUQtdwuI0-K=OrHN^!n4=x<`k?Hswo8qw`@Ekqf%QYR7?79!u{e z>}DBqul)UHNTXB^UeT8o%@Rdrlf2S07gtyhI?|PDbrSmRCWB9%ex05Rp^ZwQeSso8ZonzBfw|23G#<_0WJo0Fo5OF}-sI`JWrY zkFiP`Nv3aKbfJ;Zbw&MCX|R>gYVbQ z2_zSUbAd)tPj?-cQS|;G{nAW{rb=QfXtDTVL#uo~Ux~|3P*u68`lR-Kj=)b%%bH2s)O@n{N-F|z5!i99y#?U?QDHT^tb7FIvDLK6CW#?|!jZPHe-Gl9b0 zjk8zztFd~$v|HBnEm@b+oYR5Kp{pHEIvU~zKVDmgp06_a4t6nabVs(C9!*MoCDIgr zD#Gnw2g9G0M?{3sZaCV115cMYBMA?oT|prKBylx-#DWowLlLC+`Y0k-`oh^M_76Nx zXoO6RW%f61>1Xvu^ohQPMJ}c(xsX4Sw7iRFr9@eokCC0zJ%_8g2;yO_lallJF_M|ncpd3E_bRu2>d2YCmbx6S@_XA@qN-PO--7Uwju`j~fGC zdUgNcE+wQoXmA%y%9MuG5uDiJ65>{2;j&!sGEEse2WW0GWm)-YOGs?lZfSwqa<>OD za}D@f_am?VM9YOGwR8T6y1Z+xF0vESP0Wna*~}ggQ!~t9*D#+q%3#Ne9p%D#OHlgT~Yv zNao8_Fu8$E`bKD=R(5=I)ezrWRBJ`&>+{V1&#a0dk~8F93-z;xoPz6t$A?^`E7(^z z4Xa@&S3dk&BU9HGZMJkUWSq!<^yq!N^>?$F2eaXw5BxC3VZ{wr=lTG?F@LccK zZd2%DzneLce&U|H;l|q9!+5{;c?t*aEqso)WG9$hRyYVZRQj)vW?9Ne*D3OTVf3XP zY_=VrA8U&rPau*JvvsG?OZrj_-crd%*Ud`>g3SZiZ3cST86=|k|0@5|@%!_hXA(kgX5o{Oe~_4{fa@ce)I1uKtB}6m zNg|sFX%dWrEuk?vh5n<#Ah}<$-DrcqF1N14T5AiM7Ts5DP|~iij|K~0B>bS}m%LoV zXF}mLJ!?%}aBMWRvrb{fnp=>ps3q|!r3^K5j1e&0Z;1D3z@V^YQlSk+C^H>c_27fP z_|Ep4=+T3Zx_pGM8*}FOlFwT_=#Z?dz9K~PDHbDc-_HpyqWvomzFHT|!Eph+`XKr5 zFUBa0*||Q3x>Cl_$t;ovnON5Cx=}{csVYYd4P;9B7Z1h`=yV)Kd6&vhU-tbZBmCB&7|uoTjzwa7Lj+fgB9);LKaP-Lp-5ixX^9ei{^qEaB` zkF(p8jn=`dA!7F16MyMVvDlM9)d1oWOb#mFN_NH@3VixdA3p;#eE-TSCVpd^Mc=4T zAv?Q*yayb`|1-u~s@lPoCKgrD$M1TaZMpAyLhwL^JNk zk)Gg=m;MS?9QLXvI?OkaUSv9yPS%qN2AM@x^0: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

    l+0NEd42wqP98^{>GojQooQ|x++1Scl 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

    #)z8h1Z5OWW|-)iF*m&g%4fQ~ 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

    v)3fGi$Tp9`RFm) zv$vGt-~U*ALRgJ|>5If^ur zKE`0anWz}rk8c+yA#mdQt!9mn$=_mxn=V>QvB=OwjGF0W@Apx;E(`+;a;Z84B87R6 zdW>*C%ZAUmvifaOLc9+BY82vi^+8oe62)w+RR#>Ekbh*Z-7K{F?Xh_@$aw~*Z-w3A^7_387X{Nu`T- zUw)J3<2>?@{5>*2LMkAJLWPES&F7K7kYqG8(#&{i7G7mOz|l@iP>TLCX^upkS$ihc zF^pN9qOBAQ3f*KIh+y*Ig6_P%z(Yoa4yQR%n4J&+e!6Bd?0LDEN!au*MTt6#PCQ1~ z@dG!1l%MEIh6Qim5PZq=6oFKt>ilR7r*w1#Um))^l^qgo4tBbZQ7xi04mK*Yrbz9& zTtLj=m+MFxC+lEi@mDPcq7HvG!4lGhzHVi4xVBz=D0CHLcRrt!p}khYF*B7TlET0K zljGo0%t!uG$QMFDDlmGN`6-ZBPFmMu`Hz{xUW>5^B6&{JpNz(b5#W7E<0nnAu%Wy2e4gE^t*mmW%>Be1 zrw^quK=rA@VT;|{oOP4oPcCMzBl%ZtU@S~{k~+YVB5=r1Qnj!}MYAF!i7}v?w?mU3 z=Xd{IPKSX@c2TxNX;oFT(p2H!hfJvm@TY4Ff5OQPxT)3|J|DUlR*FjN;?k;}^-_TN#z zuYkPT6w5kZ+sZI@(fefFE6zNx&F2y#?D9Ns)$c9%X%4#n(jI+HcM&}vAs>s2ijJ%# z4P`2G$YKpg>&e&TaD$W4{f6X8$q>AA%wo>`T;8!u7X;>7pOk_%IJLzVATOv=NNruS z47gKr_q$TP8`}yQ6cB1I=H!!0~& zVsepCDzi#fq*PhMZFO+493|=Pz_yBvik8W?dV|9R9CT@NMFF(Z`9t`bZ*Gu|0RzvtTFu?Wd?yIpcM%;#LN<# zXkpwUOt%nJj;$c@%WXX*6r!_8H_O6)4ffXx`DL#uq{ECR z`40KUGMo%qp>;I;femx*bx<-14CsAi(s~CoSUmc%&sPSAbyXAR zG|OBE>&}fX-@5ocbLx$~-H{01`OXHwvf>tFk7FcYW++BGM zqEC=v?VsuO$EWCOw0FP{adcEwiMGoB{mGVi(+fzm6ZDPo0QEwFlM7~V{EG$wbN{?~ zlf`3x8nkrVZBkCNr+F!h_v(sYy)S#`o5~v~<1gw7E9Yi&m-60c27R9?)Sv8IxlaJ) z+dWhxfv59>j!kHG>#X*?CgRN*VdEPNkFO8H+x_$1!PMj(0|&_w_cS6J8s`!mEXyU+l%0x-oWoq0SBM{TJK#2$l@PJU3@~D9WMTd zBoc<7-s>0|v@Ka70yla03-#m9nA7LJ=OYNMXaM>jO}Yt;%cM!NpGxoQWtUwrTATl0 zqeeSc))qG@IQc9;MnEN1=gLQi+E&azup$;f1{D73kN?CGcex|adBKbA*8uNJzh2f) zv7soJr4;G``!FOV1#<1ULD8X%fm?9GrY2tYDwsiZWbzCM29Q z@!oQ01g*9hD9j^=T^?xHO0=7j@cG0#jj!W}$6C3gy@75tP^;39+lC8t0xYw@>nTIOls*qW4d#~9#WIo zFe%nLC_S`PV2?v1B0-Irq6fP#!12HdTiLKD({?RUBYpjRuCMEUbVY7&?C$NVzIkD$ zi1}$|L6_|N=UaW(t%*U#Ry(y8Jl~y^a!JPi~72UFM#rbl`I|36I90vvo=!~`E{Hp8WMCH=Yih0g) zKIi$OW9i1LjOE5pot#)n$RV<;2JCBE36rP0 zRPxf}wZFRWJv+E`N9HX*LVAIXymjJ9+0)-RPVc{Qxbe!R*4bnzm3O91 zW#aOj+p&h=*vGbbz+?gX*zRDvp!Pay-(sD=a{6XRklnSlLw(rYl&Nes{H~rn2vE!A zfA4q-y!z7fl*hXFXwldPDt=b!T2~K1Ds>pwCs5Zvn^8WG&P&9}b*{HFI~h_w&_t3j zP?WfRIE(RL*NijBkTfmB`!2S`nfDccv=ysV$#D!e@ibxli(ztakKs4|UL#dF|85HB z7OgbyyJRLy#nzTO(7Cmop?UfSX^p(q%D9ri*q>d!!;Ld5TH3}Rjj1+FSxh1R3lzsO ze8k-zM=5z)Jm4wtJA_5zrI{8OaK6CBJ`z3deqvQ`&xpr6I=#d{G3HLUNsNa(s<@wT zK2dKGNMrh<56oIhsIrLO_a!Affk52SQlVZiKBR=`hXy`B;_d5bpAw6wm(DjmMdymi z{k9`~`8uasrbk!f-G>t+;lLGJIYwKFmpPn-_}FjBQ5lyh4|Y2t{(n$=vWa`vQS@A5 z{I2u_fUH=Ux48xMf)Q5wvxo(G2tB)MRcE9juA42iW~2G^f^$$EBY94za{_gw#If4M zD>I&ch~}gmj(Q|e<{L+y+XZf7A+ z?^04s0Z!m{{*U2@)@Hroy63n689h&>t7*o>QiBzUng6Ou)wZx%FmsTLBMJnyw zHjpq$TcD#iEg?p*tC?@jzs6^NH!ELR4fYSb>~98SgXlQbxb3qB6F&)4*K6;H=VW=! znE4WwT6Ddol7y{i2e#_>mqSYYjOE^-ub5MTE6wXCGKQUZd399=vMMu9(LTe)We~RN ztcsd2x`WQJBNwx`yUj3739dP2D35puUqyXMu%T70S8{torKMxAAsJvy?sGcI0*K5n zAJ1}-J}Y#;!>LufL>55c?k}tmdU`t>w#@z|viYk&pFuxbXvXQ)dw3`h?Kv!K|1h?F zI1iZ3VrKc6Vx!!~=#?4~S%LNFI@J*s`&eohv>P`I`3ZIxq3lmltiO2H*+Aa=&a#^$ zV6Qxhex#1?csBVLhB61GV#F|GfGyQ_m-<{JN{$0x?m;A~F$jaOqGr_X^HJf;pFT}3 zb48Bzcb-PW;!NMpJO2KI#4_3nNf{~3luDHu^fq;O;P=KJGO2vlI$=U7<78s!pF3oq zY$_%uSiZ(taa;561xv!cP1HATy3m|f*z(xeud`O9rARK#j`+$<)LM9XpnsMUkoyPY zeh%Cw!+e1GN?0J>+)k0jm$hQKLV6i_666wJR&@V4@lDvU|F=de7-|{&ZgACo{G~s8 zoV9cij6|JgrEdyfV07sBwy!*>@q6Je<(dk_ikubF!MnC9&^I z1#XDkCIqDNRUbWgk$x5sgQp4Tx5Q-p3}Ihz!=!{EQ1lP#d`MZ?oMFwZ5f68qQRJ`6 zi3ChKFr{*HHc)OaK&;@}&Hjz}1V!aMo>w3C*0;YFR@6q5#u!umH7h}1^AZ90(>sj1 zH3hYo*XM5P8IRCJ1~mP;OIHTgV5JN0$MmO7TZr5v#_?~o?_wd8~GjL>aW?cHcmMLS= zo};eQlA}BDh`CK61~v>Ej|1TzB8vRoShEzYLN0eeWvAsajv;NBoKtd|2KeTby6U>X zS!Xg`%?io%+)j^|!wY*=F^^8RC*h>{lc;N~cBMoCnCt>F(G(zQV^G5T35V-zq-Kgw zO>%gRT?PyS>x@gH_wv^av}YS>7uVM^nG#N`SYj$f%)v2s93isga-iH9`BSE!YiAI4 z`l)c6BAhtyeAoixPkvi!^M3dK;@UHDa&%|KJ8#o2mL$|)m!k@a@_`k6MxA2bjH(eG zl8W49C=~`-#IHn5oJ9Xj_d?H7^BCAHZHZB_Qd4seif*gqWFZyHPLisMme^P7VuV!D^PCvZg)7Yojd42wk?bPoL-pJY)$p?YsVDhJ7|2Mq4%ecSUo1FwwG+6=@ zYv(%YQ=-RGLuQSIHHD&S8K!N<_L`mAz3TaRyp^&b0l}>ISsyn>n!j8k@??+#*|e!R z>YtCJ61Cn}Z81qQZF~>du}Ecym7*L~4#NJ4n6(nFkP{-9R1adbw}SSFUmLbW`EFDR zM&38aXESH(sMyHllw+Tm{_RQlc}pA>Ki#}c2srO=y#(f7_Ofk#oKNQocKAMywFdf0 z7(#X+;X>fg^gsg8hoWKCVBz&o>~UrlBEPho?M6ma2o{_&5+Y#`7Im}T^26-k4nG81 zk(YV7O7O&9Nb}+Su3{n}5jQgYDN7Q0-=lPs?@K{6P5lvPB2#D!zDU8Zp&st34;x1m zQ?9fv(Amz!oFfwFrQZ2|XwaxbZ@Wa~Wt5L#F|}kl9AD)TD<&;^+3TB9g3;UETwZ`t z1QXdjgi0irFuBt~shsJk!xI%!C93-Fjzx=72~kc+J8M_t;guH|#4FLLv`Addat&&` zWKo$=xTltc3<_6Q9H5&rbg_&V*a*S+@H9FRPYb)e3Hy~(wUx|>6j!C z6>>mf!*<5voSuXTeCnJnf7QA)y-Ce^X+Zh62X$<4G+8$F1*br~5 z|I6_kA>Zi1ezz6qR{o8CsaZQR!p8pzU*GO|g&(a^n!kcmcUA8;!KWaT{Jq)`)u^4! z)7BT%9XKnu=-2c|E9bK7WA{3%mm^OaUH-zCocx3d(`Qd*rS$UO)1A=qVC5g;9Ka%h z5UC08k?PIxJYvdt_0iu##(|<lFio?BFsv4hH!OgV3l3*DdMf#R+NCef%+E z{kRU6%nWrSR&#vIRxF7bdvf?h$JB>OghU7WlX{0nUk}h$VSiW{#^?p#0U<*+JFdTG zQy!oRB3z<%w(&JPDWMpP+mI9252JYNK>r4_J_Feg@~zKfiH@pXr_(Vsu}INN5-!Rc z^ARxxAdI5_ywU2spTFQ0E~dRl6o+`3cv-ITFuWnz`0y!Ca$ zC)`F<+xXOk4|3-nWWXASR`K|aZi&c{INRHL3duP~j)bp=I74p!kvuBdiYOnhufpJ~ZFc%ScJgCSedbFMVplwD?FS>VjyFFN^%BXYAqTFP%HJVS@-iI&5$q7o20p2Tqy)OC%=C1_Qdq?`L zkUPOA#6pB?U#RyWJOmXtt`_o?`26_ZB4};_%#$3g{75t^y8R1DoSz>o43eVhx?(m& zyZ)i9y&*>XL-}m3-?Z8K9`$MM^(v4n=;gpCe4qCq$3)S>UoG1|e(&6saT+2_x}<2O zdgho~UXHcF0IbP}*rZG(9*C6KuDNe=2s@PSH6kgmTGn2VkpCkJBe*_Q1PuS~T(A_( zqjo5?H&DzbE_;}3+I70o@!xRM$w@`c+w*(Oo`@j5tz;XkKCQZjV5jO7 zkh+FaWE||ZvAlgL#$G1UNVrHcmk-02`MQHJXB_Nco9&_ONvQCi7}`Xhu;LK6p{Qe? z`X_g9@HSgcp7b_mlDwp_CfrL=9uf*jb1~GGW=Rb{A6Zl3|Iu6gh5ZyIngc5LbgmnpqFa*;jASS?HDAkwuq{Qfr zG=&v0)hc(7|0a8ajr6uLasSXP70=q%br@?UG~6q;|Ci;u5Lg>SYqQATxFtZtkdjl7 z^w^gK@fU1^F=MHM(Wm~r7BG%{>j>MP4a%-@$HB^Z%{mDGz=RaFMrO14fOoI2j7P4S zc;5K=0NcxeB{r(2IZjMD+N5%AmMomdNq63-jv>iJU8YAki+R$1p8VS;pBy< zZthZt${`#0tZVz|%N{I0Qk=4yKfl~PF1Bby#M{0dwuaMa+opNr;y`MvhJ;N3)PTlgAlf47qqc?r8^y~ippSQQ5tRaEsq6v@ba5m6g zFS$Vgx%UG$z7t2DRgzYV(Oe^=^Bq`P^aM|a`E7ITVn~m zm{d5hM6mU!>UBh-izQ@3hWQ;ySgEOrHYs`52~PeP-j2Gq@DuEq77dMm=_Ex*=ef8H z*BAfWcE-6zI7$;;i^U+QU{FPne3I!H305|<-sQE(8m!KB9{5dABN@3akQ)5<}i*!!Tr631I!?tP!TY;wrs2@ z0Te0Es_eMdBE!RUlS-LMiiF{?`_I+V2o(e?NkOCCt=0AGv@x;4%cQW?V%SZh$JiOL zx{#b57q%J_cz!$2R^ahs$pEFOva(!scyE;bPuxjqE10f?u_W^~1Q@4>MSY8jL+BL} zI{x#xE_WM_jbs^jcWIhs>u%>|!i)~~b@kB$poc}p&z2pUWb$C7}$#)_~!eA(fi3y?tF%@S26C*C{@u$fFX&R3u z@{j%gFPt`_$HtO?CKm1qGl<@#?Qp*KUlekS)0R+T^h&)>iH6@^a`{_2~i^%OfkMG#L-i-_C0E<)}93y@5X&Ky@v)q zSivfdxbd;EkM8Ai% zQzT1K^n_`?Mt2L&T+B{Hz&$xpj=PlI$LXkx7)XjicO$fR%yr3Jg zmB{6g-z|eJG@#mdQfE=4`bMG&a&FbGhY;D%nM}+GlP^9P^BwF~>LpF>`2HwZ_DCdH z_7W-Za4j+?wW#AylseECAu}>{jcYUsu6A-)h&a?MxFSEV(j2LME%*N0;Afm$)^M5R zS$a=%=|)RK)Cc+XL(CwQKQG<57DnkhUMLyV}ih{e`Cf&=k;T2{-{8V525Zi=V zCsce)-@(vyPQ9#FM}EN8k3p#Hb*}xC!LCPg3crM9II+;sC0#`CfGd_Y#|bVmx_M%A z6OY&VvxbYa$Mjm_-n$n2B$o%!L&EztJxr-4&DoIBX!TX}gb%*lrKa}5u$dHkI?J3< zZQgjR!V(LF4#&_$j)}4*mScKfGz)elBZXI>AoI99KpppC@`jMimM=O3&l57d$4`stlV)K3+5V7t2dHAnAoxYMf+D!FD>)zhE?CnT?_WbsxbKRR^J|i&(JVyUvb$vH$KeoNT zd?wgqx49=+W06S{ZLmY*F(grs*5OM2TaQL_Q6uv)cL{RH|6M8yY-E9QzU%93@T!e* zSToHRNuB?Ly0jlr@=&#Z?RQYnqyY>m ztupVk0*B`b!;}9ZDI(iwaTh^ED!~J!)wb47$@ja5ZdUw>R)7hgTVRNt1od1N`;Hxo+%lciO%&dYc!r+^lZVG@kKBVSj^pJd;wr#I$GrtYSV z=Un$TxVLbBXHGkE+EhyA=97vu1g`*R=MaV3eZ9mk%F|zPOvMWaRGQ-3*acIW(8u+P z!FfU^zFWB=-@?}D2`p>dm?51cK17p{ibVjW5#sX4&VL{kOLx)IvA>q!4{HiWGN4ax z#h^hoGI|r7W8OI0Q#45{p2tlyJv~MA-jF?G|HkQ|>-B9aEs>s#SB9G73o*Gk@Ik`^iDIeyUDE8O-Zu*a1qSQHU0{5T$*J#-f_5y zTbt^Yt8vBvRMxM@$>fFOwqGYOdpWZ0lR@p+-iLO%|G4Docz8uezjO$f78ll^0{emi zXRV3>Pk#On-;%BcEf1;@Dfj5JV{6;Y2}A>puSVO-Dw&;FH(M-1f2BAt%`zYF6a-wG zK$~6c@7jlwW)$@mzz?)>4tzqdzuvTj6ZTTi7|CdJuI@hH@_sm?*w;lt|AYSG9PPIVL`1m0s*Gbg&KY~6NR0M9x4Tr?9?7qnFhF$0Tbe#E)5x3N)oBzEZ zk9?Xxi*QM=(>|?x^;3W5RJ==Fc>vwk_tu&Z+)o7+-aqW`%^bdfm!D0HUeBYDeh^52H8D+xww zJGdd8Ofp3A*zO!Ad)z$^6MyQQ32O0pP2_-_GE>t~`zV`SVzCHpU9x<(mi7``Utg9X12zyTLBt;nsx zO$uEyV?M#_ zZ*}t~DLHe#_Vj#?zUt2HlroMVsYARuOj?~Mfa~ockA`~}$RhuVJ~%Ulo#*Aq=_Ko{ zM=%b`BJc8J#sMLFm=`RWa&g|g5q@FO4SfG-lM!d%eFd5~b}zs_5?t;~4V8LZ><`pD z3O&8 zP3V5;2`Z~xy?OWwY>EBvqAq5Z*Ce#sj~`>cjN8qSPi?a!dYCzf4^@x&4Zr()Vy9Qt z2v#2NCzd`v~<))}@vi!qcz6a#m!x-QS#0H!bLn&puba-UVqq z+SRJN0A)Vpm|*X43Ulfcc~~SkOoo@ue(^(j&vS_J_!h{PV6G@A@D6u@;`;fnYe`S-CF%mZ6nl z*=pokx1 zbW6;1Zo-L%-YmULYq1h0+r5@juhdS^JvjD0Kly!>x-*g$)&}Gp{R0D6s! z{av;0Gl!P5=N034{rQlTPmm5j_xGhQTZ`sK8olp$wZ^O7k_EN6+)h{T8I5}AfTzgT zDh&ipf-bQaRiX`Hm4#eO^&6A8jc$Mc(s&>LTk$gfDKwxb`Clg2k|UC}-SEKqm&D45 zwb!^`Exr;I*JxSR=7{imA=LKbA%Fk)i(R85yUfn*$EH|2QU8P#CCmtJ>^xZ%pwX7F z|AaMdk+mwU33+I&y@$z9!}H`fbghX|WfL)N?*RrD4tjSI**2j}72yVh8onxZg-AOt z{(f%e=Z3rZGVpkkD|F=LQd`pR@p6EZW{1xwA?_etq&NCDP_BkkX;wpZh`x4SZd`80 zXjoU~rzgvtnt0BYhwqMJoEsoKUoFSZI0gjZPA5~3$L*Afd;2{ySTQsGER4QphRcxm z$*nzI7MC#kaD_Y5$aM}9OYd|JEZuC`YkM8VBMQ7rMBK>OYk`*zCYx%Gd>4EqY$sm? zcn$o#Mdw$ThsTloqL#-i*M~T{S8P{E1kg)rdApqR_QAjA($`Hby( zICcL$aQIqjbKquK>`67wuk~c*W`JqG-adzN1yx5jkeN-+k{qvEaI07cpiC@eLY|6v zhcD+D3eN8-t3;1xDu=WPO46X*X^2Uc6}{Q{q4=s9=3u%6OI0qVP;4Q1H&$KwHSbdN zV9}B46xTV}Tsj4+WQ{kCb56mQnm;dk`FnP8;Ww4EZV{e4=#;Qtf)#FZ?>T-)WjJIe z$d;FGU|kUtznuybjV$*?qxIw}Zq*X}rfE0Y+Ygwcd_a2!s3zlkB9qn3_xJg)rzU+z zxp0X4$8oH(l$EoNH~6b5q>sw^7@R@3kl)3Z*;OUOS7xXdQbCD_X(g3{O*uDe5c2=U zDHy~t-MXUR1L@T>C))ZSaO(I!;Pk1*_LzgmhRKky_QU#W)SjP+pL=5+h%<&C2AM6k zh5CE-E`^ZuAPM1G%v}=mg*~9`ADn*WmKtDcEL`x!{=RHAiED%D!w5KCBU7_G4h$@= zfmDSF9eQtAdsp~z6klLSC6lioZ3`FaWCSiQPETsSGi#Ok#+nR=3K*La{PmhN#y3G7 z4u=W_P&c9@5Wtl^Lqwb7Cymr6pc0}iU z$W`-m@saF|3Nzi&-lP!YF-rRuRaiZdIUN8t`tY=|hOH-tQ@^5%EStK17p@ z%Yf;-w3)|3v4L$2su1ChgelOVt#uaA-eG2~YD$TSP2RCk3{O{JMJga-FipLvXBT$(ZxX z+S#5;|JE20gv9lG9E=j-X`o0)?*}!f6|Kc-D(w%NDEp+FeTU~76A@!3=eg;1ar}0< z^>RElV-#4)@FU@yRMyksN~8s#vZ{LD6TuvC#&qx!{4e0`bxF${+8!8fWQd8u^9F>VX~ z>}MD9D|1zo*ehc@QR9au=bR2*Aa)nK{kFKpr2o-eIyT%@Q(7NR^v9i(Hft)*PQmH{ z)H+&y zm1~LI{<}$3hue^JYeGx@`=++;)&xMml0xMOL&GmnN5(<#KzxW@RYqlis-jGQ>)-ID zfqqg1@aN^2;srQ94MeG-aYl({=_?ak427-c>oPy00h@@S!pmUE<_t+{Zd z=K}2Jl^oj(^Z+jln2Sn2US-Q`?QIfs0o>WTpK0Qvuy0~s1R3)9iEFy#*c!e#c!B61JHMRun z_kAN{l#LOx=y8yx{qYW&d|gnC)l?dn$@-bgcAQOwrM!qZ&}iOQXY{07$!@?72W!rb zJHuUjpyB%hzTyHAUM^*=JY;vbIZzpIN=#Pe20?0yp2{|SR$o@4o%eHU8BdQ<#;4UM z=aRlJ`KqJlv{=n{>+2w64Znj{g~a(QTo#O?#dG-i(+rZ9&1wm!iGzEZtr zN*8`t)7_qi^seXECYFg2nNT}eD4|;NBoHUFg@%i1!|~=p`|8xxcKb%g-iPfvvwK8up^HB`c& zC>9#h8$xM804IfVulz7N-C5S{_ zJmhm*smy{rJ5G>B+#Cwbb}kh%r41}}UB%q`7_2dZgcdiZ0ZRc*sK;oqzClNtIy+}+ zkvwGr_?R3rK4vila5B$vdzrNokI98ffxs* z(9>H zW?kG^<3TqUYM*3hTem#lSw!C&be+LSM-JE2vdLObcKzr5jgaa&MIDUUH}e+yXp&b- zD!OR=oIJ4gDIU!Ejf0j6vdcZ1*t)2Phr{4km)`MYZEocBm~L1`3td+dhCI{w}<35iw^J>`rRfDL`<*7J*#S2i?rAX%>e=Af^_a z*y$F(^>Ouy$h_##<`kB!-ZesJg2Vjs@O)Q-!R<2|TCp6OMWf7j3|e)A?~f%t>>GRjb}c zYf0-=XC61#H;vPcH`g*1PEXMF^u9jNw`eGu$dg-Oao8ioKw4j->|1d42^RL+ociVDVqtAbD1;g7oUZXU!f36aoM{Lpt6{TQQtXhtrgg26&tWkf;02Y zJ%6WcXr!ErTCaqr??APR{SKvpWi1EpFYJed2k9XZ|8zM2H4WkPOEU4w2`rYJF~b;Js%!CYcCkP9Ok z#y9o+cxVL+r!{cPmp0i=(lWt~H)!!p7;@-vhI)v6Y41N1*O$j4uz;j8YG0++RK(6m zt=G#%d;C%tLdObJ;B(<^N&ei{-~@`#`-X1tm7jCQ20h>@wp7%ICz)K%Ixoupy!3lL zW9{gcOsTe&1$ax-sv90CdoP8KqX9{gUECKL%U$dhahq{9Eb(H2r}ayr4-%mA9rHGx z9?r+Co#pAR9KtaOvz>DNGedg;Eh=s#P;bDl13TExhxG4tW1jb@)^s5E!=rJx`>>?N z8Zv`td8-BD4KygBwK73|E=v~nVRaFt*Pvj;NHn96G}rB5Z}h~Q?;-RfWYU#F$>`)Y zQ_iL&;jj{`L!hles54i9hjZoQScTWt_vDHgm_;7zX(`MInMIfSCO7lv3g2&xr$<^2`nN{&6-x04~nU ze(q=c^`c25moOt$*}~@gO_%2|ig+(e0E@%pY4HgWwR&uZ>3nmP*e{M}6!2J|Q_6XN z|1~-~;hzWI`Ltl-T)s0?Z?P|P-s*IX2{8wbUgF1=n_)OqG0S3+)U%n{!hjK1#Im4G zz{rk4dGfhT-;T|v7Rqr}iu#lJ+wH)tir3HYw9W4+TY>N0TVt1EqciFqN^%B}{S#LR zogwx=QLP!K_(nx)s)6GhpDX=5h1XLXZ1*~$-Qvz0OhMacvia-Xq@UFYZD2WyY_CSh z@fO9DQl=HeLn!}LumD9YeKXx4oApM+F%19^$=XF~Q?1KuVv^nv2zCcR} zLkCpER4bSTdDufEBoUoEA+a1UG!`-#TO&m1zd6|g3V8qR{ZWU!&_tIPib%;pB<2;8 zj?}2Q5|fn#EVY@DxT1XK-%Y=}*9UJ$wmZn-j&qyF<2`?6x1Jd@_3$)nWg~S@jTne!Ikz(*N@~UEI{Vo z?oH1*f=-v>?#>#e?3*WubXeg~@HuD5`&}pSj$1fVsXtFd^nA#-$3F<)I`bwpu)HY? zlEQgzzV_v41BUqnGuIpX~U-lDe2IBgF0jGj!ZE3v+61?>aJ8CObb;zVfPi$Vys0uhq~@lI?L0v zo73d&CHSj0TSOLkfSlT+%%8@kApT)?AHKI={?}ii8>i?Q%)kH1(a9v;voa=S6qTI$ z8(xx{ILB6(6CQg84(H@n`gvirPJ{ZJ4<$19B zi58Ig+ey%(;`*z3SghaW%!R?er+CA1r*DkznKxvqrUAc*NqLt!N;nDwXdh^-T{nLL z8aKv4({C9s#zP9H${5VYsi|o%_OjvMWZ+EXrHZs=R=I_%06NDqd;yb{p}>Qhj;HuAK+#xzEClrHqLhwmb{4vao&O1b}d2aZj|pwA9rqy~-4 zS$gw)X-cU)&>)$;cpFE`7ZqP5l*pe78{;x>5J6!Ro)v88$-RPdC9$?j!Nl-0m5%xBpWCbYJ@X_ke|WE_a|A3|&(qd?a}iDA*Q7LN{kWa7bYR(%YB==P zl8Q|LXoozMso&|7!LHUnskIPm^4m9Feg~7Yr`y);yIB7$6$m_CH2$SvjnWU&Pxb+X z({M%X5zU}2Ste`9x1+P(L?;rZ7ax+WzpzQ>@YuJoUCax;NSDqCtY8A4PDNeoK-jbD zhBinujJf$(baC4{6(YqvUM&lP?k6mU|Hsr%08ld!Kthkj;kV?Afv3%$(Ud zrf9LiMI>_k3)v8cfs4fLFwIRxj({gNt0st%Af7#iYytI-J(_v7q^1hS5lXX3^B6QW zk*5z9bmc7Y`gpQ(`1FiPN;|33$6ID`IBZZz+YiG}XWeh2C+2oKkKP%KJwLJHZSOva zxS{T+&K|o)DJGi+o7sh1ldfXp>=JLtNSpqx1v3_paL>B`+bQJRjde0!!RfwS%h@sN zLGXbNqHC3ueXZu6(njpnp4QOv3sq)J&#Y0?VksWWng;Hx^NotriAquAnpshYMgfp8 zxJIN&pheIx8w|Iy&FQ}EDEgAlC~Fn_OHwh@Gzf)w^utwwT7GkG^;R8wvew|U_4ZEY z{_4qj<&(T$k>`M};J?W#=eF1GRpPSg_QCq!Z63zg7(JbJZ-AG|>-^w(S62sZgF}}v zmbo@(?@kYw{t|hFYbV=U5#+hm7VSUd?dBmVFzjniJfqQAfrqVMPJw=Cf8-G^ot|V) zYJW*i6?WZ6m2uK(d27s>`4J017CN1nbOg}y}txiz{*+t2;O zn^aTww8MVf#OXBHl{#JhsV2oSPy%seymXZn+m+!*Xl&)Itxn;x=xdlRIjzLixn=3a_w2a*bcX&4((=Y5Ntc@`*)z?kSmLsS(M(?v=EZfJC@YtDe@Qth zrq%6IG$vGQJdn>Sr_cXzCAnGrq2+E*+e^IK&uo0W^?R(Wl}yFaHn2W%Y46X?U+70e z+Z>=~6E$tgm6tm`^6xe$C$v0NQW>PKk|yWY5tNiUHW= zxLX(XN0wl(v(kX#-23dp5d4c}5RmQ(4T3jk+x2a1&U!+cvk>E{H{)#`K5M&h!FH3*r`>}Iz5px*?>h~e2-b_w>m&&@gygh_c5y6cuvRLQ# zkL65CMPr@v{&5zmuo>?{;rW- zKiqmak+sg~o5`$TWbxr2TXPW$8CBWJQUWO-H72KTeKVnjmIFE!&<0ftw<@q4l8yEo z30Tso&8EVQ|Ny4`vHP*bVIm{T7PmW!&++(!ij^{tkV4f_y8Xye->|0P}(WHz?S`aQ;gvia>1Adomkv-U?6 zs2_!+{9X3CWme$Ayuj`9*>kuS$qGa8v7H&;)WIo-Of0CGrx}bjUi>HAd@q(m*O`~< zUNaiz>u|LWiwJ~P@*5cR%D}p`*#u zu-oBBM1Aebaf4L8JP1Kxf!f?n#|cMRt73eN*e~4t#N02o|ay@M@gQ7Jga7IgSq_ z^Jp0*Bl++Dz>O$~ygnsHXt$$zSfCY0)0Nkm#rFg zjuhB$b1+b8Hh^pca7v-fF2akbDjVY;TH_P+b9xVEK%P<%i&c&>z-|3wq-P>KRlW?> zFnh#!aSiRVm8e)sCD%54Qnc~n6X9$G`+?9KY9b4e_Yuk^bQ29c=9?w|dc4?BW z61LcCiL6cQ#w|ihM8kxK!`PPD-#Z@7jiYPvxSr+Z)M+QB8FVgMqx{R zbpvw}xcuUp(eJb5jg1J+Dmi(6}$)!ecFjM(M! zSW_q=!VZvax77mzL$1hZi!2oeTqCij3$qS8K=RZnZ!GYzHGYkw$Qc}rdp`P!&u&Ww zt(fr0zk_vIkbY~M-{MCxS8mPO8_utm>}7wr{g)!q37Jh>3XtcC9L2_V8L`{qwx*Cp zgq5iEDNG6f?C-bbW}SlO`Nn04L=Y0rWVX~_-`?37!>GIciW(geV=y@#W<^Ien*DiXS(zsH<80wGE!8q*x)L6(_PAw^R>EbQI>;S~eV2PG zl{1UR*YWa8;l~4tdtx)F<;QVA@1yw&2^h=6p1U@epGx1{E^;7x?7gWII06@`>iUd9 zzOgQ_sR&`6ydFj(>RyIR#KH5cfOJnl`*UQxw)haDFK8lt$HE(5QweKOrSWq>DlH|% zdB(~1QN((R2U;E1Jh0)SrF>9W$@-#-f=2p_tJ=$=1O?~r8@*!dS2DuEqu1++i%G$uzy@GRvuzwtTzuMMZ)RIh-IRJiR zyYt|>)TUv8sWiAX{P~@eB%o-kF_bG=o9ByNx3A%eIfN+(RKz1(X568LXp{Tpw-y&a zvhD5DC&yi4!UatdqJ>3;HBsh#=X8}u_DqiS8dg7@sNv3KB~q=6iznf4%}zM5D=Z&tWk44b{it7i&0(k$H#1 zkJz}cFi&crc_n^Qq5E^EA=s?*VWVe)qFcU|Pir;MR*NWzf*bL$AJRwW|qD=H153P6$jLLJGhqk}vICiUbL_FG>SLsH)s+^a4 zzWgvIch#|IUm@Ld;5Qx@oE8%SlkZL->9*OkBs}qI`BnzAPQJi17@oLxH4^M`9%Ep9 z6QcbgzC0I-+DXb!ZRN8CnXBuBue?FaR-Plf$VWZj*2aEwLh_}wLSUiAE(aZkX0oceP9=|Hb=w?J?a8k?1#ffPo_Gu1oD>vR^?A#=fWzkyr<^UiHzKx_<9 zb;sLUqAYAh);pG0Sbg{LhO6+zI}(C2W#7*#bGP$mHwBqy)pu;fIkLFReC}jfjo0TBBQ95*f!(8OlD2BvP zY(d^zTuK}VOt%p+;O^J#LW>18;E!@|qBezUeF3AO(N`_oBk_KmYwo zUAT^LQ^y;_sl{_Di*OW`MJv~c$}zXV!FFv=fBtdeU&XY{G#hYe`{3Uww>+WFJ8eaW zG70ZYMwWe(yzIW8TFT_i00~b*Y7>HmS9g6sH?s8!Ud$#_Wtx>drXfQ;fqQRurH@ zZ-JqOUIB<#J4g=@t9)>uny!xqBysx1Uh0a6sa+CFk3bXzk@8z`G zU!NL2y4BQjo*(H-PQKE;{*`C?n+lRR!S*c_%x6kS)&+_;fOq-*F`Td8W=kAPRL}&0 ztFJcCPMlKTd_bkGJ=--YftN(er`&_)A_n3lACh-bo#4b-Hukr=mx8`D()3EA!i`1) zhxz)qzTpL;efgdJYw2WBe{j*ydA^AybAC<1gyG%S`Fp2Sq5-th_J~;|I>^9N&-h+< z;zNMizunnmGTTEWuDSlOpzja3z)qbDEdt(8D`Z0;YJhx^V7{NaJ{Ay-iWlAoP5Q6{VL1!Hwwfgl3?p~zT7EQfH$o)9dLVV zWV7*O)L5aVA0Dm# zyo6fDo(Q1eX*A8YBAv` zxX^`Q$U}Z=lyNFrYAd({cKf;OJC`Ce?Jjr@aC(;3ch&wskV7KE5(?Mb@rdZOTfNz0`B&9)I@m6GKE6$qez!0drJzZ`TxVc5!;c|my~X%w zy>QGN|9mbJ*j2FjYfPP0`1vaxJwMcqqqA-#BC2_zU>pv_I#C>Yi%4_y&kGzbQyu+0FiRd?&7*1b`r8Nzy6+NYXgb1&V*!y-xU*}n zoLw&qNa6U!w+irriSyQ<{C1ltxL#o_E*$K~m{R^OEk5L32VA5tmiZzz! zg$iZ$eGMDg{W#<`IaW5p@_6#Q8o*FNJiEd2LOGzCp7VL3kTXgO5PmASaqq=|>AV=Q z2=E6qRDV@N-y}4Dhl4&=7w9%C~^e81W?o+-E{aHk$t$9wzoN zZc-1i8i7z6j%uFm)b%$$q+K3xp5MXwg>=Gac9^Fqw**p_x8?kY;RLUi)t4Aj~_-0@b?N8uk1(?(WSxxBY; zyEAw<*fR~t*w_oW2CaXf^_Qe! zeu)Mg_~fUAr?^=F^OHRi1(=^ggfH5Hi=e)SO|SKN-o*dt$nrwR6S3?UIoulqYu+cI)m^biWOBZZyRUb8hvSoDZ4-@B^DslWA+S&tihd& zR|@d;-2`jV{jUHSw;<-hwqbr{_jZmW52c;>wFoN7Z_3|YKA!#PPIC->WryB#RXP6h zn*4Jz*4$4!yU@_?Dh2-%L#mlgk7stulB3^Q6Sg4bfrogm6Ll6BQeVfPrEvb)3=;$B z_`sc;ZX=)oCV}0gt=92?Lb@2?VI$zXW~B1uJD<`;Jd`HT{e@O7G&F0oEf`XsFg7iD6v5*B#jF&pSvl&=MDgktfwh4ci<8Q=g(#GHVxp-rpz2Qr5 zk6{FAPsG5P;EFWkqbB`>-xMUaVg`BsMozaB?^FAxU#(Ul96F)0^Y-+&et^{hk~G}D zV`cCm#KDb)@G@wCmuj}Q#bjo}{uY*0Omx@vX%!_Flbj1P(g9N0zd_^NNdp3T{a}) z?5qP}ehw~qc+n@7J!*`(t6ky1lwL)An{mxT;=@-x^piNPH}F$YMjgbK-@x&vOOXCP z|5GiHWq`et@}QXz$OIF8wp2G{X9`==2_jTRm48_4!fR!FFa_WF?RD(HJ;a0!hqbI5 z)U>HTzDa_8a8Dm`!yeX>GJSi^!@wL(X9ChQ?Jx-!ZGh%VJ zIiHSQb7#taJ~tmDnN=#5{^ql=Ml5zfzNLbMxQz)RdrhvlBkXd)1)5oST!MaUnKHLkNedo3mcdT0(Zc%&A`IwX0>mvWYne5ck{{vFfK`rofoWCAMR;mC zhnWdz$0=-)>>k7exY9@9-+(LK2f?rHgtxiTDf-X(n>GwrOpwk+$|7+%EXf0)=b}0u zNCr>csSX0z6G3MGnf{3$9cV(t(Mz;Vv1(A==jw;v<2s3;TYf6A0PX~0tojuGxF>-X z@Rr&n>D!gdvxgYkbe1{85uF5Sc%aJ0*{3789+A(u0-)p?w@(-$;cce7K{NYOi{LEh zj;_Sp)=mU3V`7d2Nwi{Zp+>rL6QXq^s`%P4G6)rPrxDYjM=uU~G4=zuX-M^`s$UOC zFql{Vl*jwC{TT|#*canUc_9U&nw>8ai||>1zpEP2qdcb*di~475B0~<*&Gtl+eNr4 z9FD$PQ3J~qz60!j20N-I3kp?4SfRR@@{5^^w*1e`Spa5EC2gw462oB?UjF7AFhKS( zGcdsS<*srZj=)AyEg(8^KyUmHw5>IFnjPl1N?$VDE9XL9)af1{h%Unxc=iC49%rl5aVhNUP! zvzz@)27;TU$%38--V~z6*A#9qnoRG z7uTi!l5R8Xw`$vd`$+d?S2r)#)=yyoC+3HsNqCEVS(K+dp6PaC6~G?)-dK5|$>j8W z;>ZgDDDuQXBU$OETjYphVKYsGls+%ps{z4u?;$q)NaMbx9n?c72B3Kk#0fxi8Gwz8Tk-`{zx))s zaAF7rO+>+c)9-A9P=V0@RVf8$35bis;=veY3|M}vcANuS;q&SekRRt``X3~N$WM#p z8`}$+1-GPg7C_{eApMd?w(b?SqCKFWhy+N5%SD5^A8?CLeKgb)W7n9W`CI&%fAn-a zJM^Xk?v#4 z2%O~II?`?cJ-mZR2|I9N zkN`J*F&lu;&fz~V0h*Nz0HOZ8CX8C7NMr?f91S4<3nbF-OPf9b$Tc9m2PS48felRT z5X1mXYzb_%cMD|Y^42iQF@DvXd3W_pya|vmbDzd`NWZ;(w(VbrD$%5yZizTdRdhQg za1vVgpA_*AvRLzq?;NI5T|r~qqKfRImkwq6>xO|mT`Np+nYO?6I2NO~kzf4YvLKm% z`>x=#ZCrJqQj9R5NVoE3J8cG0XHOE(klvFwT`}rkqUA622qRiyk> z2i{AN&l64pJ78Qumrg(-mzt3d5yJNjeGR=7FRBzPTxN^gU{)mtsFFIu7h%oNv&T%s z#dwyU3!iv-q2Alf+VoPxCbG>kWELwu=}=YRSk{=k*?8z3n!=#uF3v^*m+Eg@87Kg!0y&-49&hmXGSSn zMAtN&2`jbray4VWK1h4@1X2TM=>f#=6hc>1rBe86vZzSKg+NZMae#ck=)E|3%^+D{ z9MK*HL(y;63FyZ>BrZyzF7lng;mH}aMGihrtI+4$+Y9ym@f<#<{JMk2RHM%uD59^6#_uf!*;n3%mRxeya5@tGkP zmB;(I89)p`d92M0KD&J($^w@nnxiOW^J)2NT&q%j)KLhncsWw)q))$vh~<#E-<30W zp7)jNiGM0&tZD@nXN@GF#CFi!=f|*;47-YS(fce-B3wYChr5z>B%CV~m#=L8 z%A}&2cZJ{tXV#DKw9v?&n{y@oXn^(5-)C@h@kDwn3HQ7$-~54c-+ZwL?nxHSVf{>I zH%5rrxsX*&3jLW2{5XDj>c<b)B_Hbduk(IJ7ZOUn`|eXyOenSf-AC+(Z9m%A1Vcwj zzs5)G`sJj?2c?LxC5;c*OuEeWzTRv?6j-Nx*MM8~fxl-aHu4>ll5c2NFBIZ-qhL`^ z;9$79D#N|uy2k7pYr7>2<9OD}UF^%~#m#ZF+>~$}c`bj$p5(z!DNPX!;t!RUK?l~I zpUqrvHxWqhe*EhaZSH6Y=Yj!SfvF3ZG|AT2`5tU6bC*6%KCb{fGcTm;*i;m_ z>uDQ<4@K5TWOt57SKW&D=jaY+_0whVO^4kKn3=%02Clc-lU-k>(D~Cr9!y~8jL#_X zGE5$G&7DP^8v(46)t|gIN`t*ggLPBj^FASd%_UUy>q6(X6jn;qDhwXG2`>8eQ?C}U zsFOT6C_x1WP3b80Q*q~dNLq#h4w~+ed$KLoX1BZ+%Pvv?m!oa%C!~!zpvD8~ z3V+=+=pA)9P#`2Rm`Lw^ec6Mmilaf0x-$3R*qUr(A&1e5YJ?cTJu{byLcEu_aP(B| z*0wm`;(j;)Q$Ms_dA=@v{tG^s*QGjU7^&`hyROqWa{PbR5id`hCVl?(%z2!qxEXFG z=D7m}uhdvR(UP=uu|O>q%dboWT9v`f-_bzX5X&CP%ppgD94ZY0*1ytqRM_^s;o7Ty zLZVnNI7)L1Ie4@{DND0~cCV=3N+ANSZ&lUBAK?(hm6Ns&+cUQ&-Xl?OQ&*!9)6Mr! zv(Ob9+<4@nC`Jd&|NhYrRPW4_MK?Qga9x$~Wo`|a)TLq$=_e#&9+b$T<>U0!^U%lo zx;(PLlul_arciLd<$TU2$LSW>g$~4qq@2w}} z(*GG5!49D1XQYw&7VVG7an#wL>2@s`h8RLJQLEt?k+1f2>kNVNUrWC#rqa{i(nFj9 z!CHwnX@ug1s{gJN?`M|iQH%yI`G`FE8Me$k;O#Y^hlM=^lyRwY=|E$O4ds8&A3sT` zMhayr`UuCo|5|B+lyI{*Gve&TGB^J-;|SSceh#!WhYv0tCd{Yq+1*slmLmQR(U6P{ z=`yvGYSGL)+H0A@l8M@wH?0_cJZ+C~a zrO{W?LC+;E#rCJR7v(IA%|ZWcZw0w`xlC@JQ<7I6&n|Z|@;Nd{+%;}*x@4q!{ zKaW=RM}q^ZrU-CR>Vc{$|JUz~*u2f;{Arwp3H%3(8HErKNM}D7?yaqFs%4`9Thyq} zBxDJNos8le?zL}>+?E61__XS&pk&zBegSYY{e_bxr%M1QKlj*=l$#lzZ46XWtj#_YiU5S!$K zapJai7Cy5!k3djEvw?De&=4=MaQ}|wWTjjYL10JG=YYwEvna=DWTp%aAx#C6#UsV| z=mJFK2fuDzca^kB@(mYS?hk%Ny3GzI9{{5BJgw48OnnVxR{ObQ<~ZYVQ$lS^dA_G% zJ={K5@hm_k^nmt=B=SPgvwot5jRaabt8f~hhRMIFx{$uqbr&)AIneoTC04{_4=bay?q&UkvR-5>r(X9T~<2qS6zye=8*X6`ERduzO)t@&a^HXng8CFLf5 zhc2g=z64E5Wc6pVgATK+Jf1^40kBcz4}?pXu4+lB$(F_#p~G6G%P5?~8uQ)W`m9&L z7B9UP0w`3rQ9&L76dYj{=deb8x961M@a@kdalyGAO5 z9F@li&uHHd9PDxxXRxY*eI0G^5dsswYf62%e8s#H28|W>29X`J*;iuMh}bx1@_T#- z4zc{Mw}028?ni?00s?kpjuo*3M0a!44Q-r%^WVEi{S|osOiX)gN7E57#t=@XVjLd5 z29(t&`Cz)`cMR!P*$xqBd0JNB#U^zL-J~NJp+(G#MnJi6Z->^IA4bfSiSMX&cTSny zC(=r|Y&nOBK{*jt8J;(JIbTWR75sX)bG+10SyhHmPnv(-w2-pmvWSX$4WXt^0Z$1LdCvs41?=f(1R-pkR05poUDdxx!-;4M*aYU^ zy{dmU9`<*2^JILjJoqd1xm{}CXwr9(AmoxWT!JyE@h9PU&V)0k>dPU`zvruotR|_I zrqU}n3nhp4I{3-g<2TNbU8bf0HsTWVv<@&;M0G*hd}|}`LZ2LxhzI%~+U20}HvXw4 zrgI1}xN-Sz#BXoCwvZ1SCVcyEg6e;exw!*3*2{sX*^!dAowU;a0?*J^`OC zjh9x5@x_unJ$vH3&zrYPH5yG~BNBwrytj2ASDHAQOFajBk6Yw-+#p66iNcbMX__9m z@NHe1RrsvB&N|#aye!&xIAb^UASeWjR^*Hd*>ca7vzwL4a^vc$uY1VWvn?V`28)*D z;DrAhl%^y;d-#t3cia=Sb6yL_mngg3InIq!`I}RCP9C%MzcfC-K*REQylP zK3U`+g)U7sPj(S+5(h}9JMx_ne+g6l9zvN8dK!GA0zlRn-Cofl@Y3Xi3`7#Z88 zel-zE=hoxZiDn{^V*%AcN#wqO%8rR=I1OnP9bf&h;+sc9RBuKaem#Hl%E7*{zg4s# zXC5!!JvbkzOiJe*XY;-8*3B}N$1A1^&j;N2BRe({cD4rr$?6lY{oB`n(E3^f@+=Vy zR&&PF;09ZJvtQnCj*hR75RHsr34vm_rZ@h zH8`GA1xqgJcDpVyyh0|ls~aQP4AHVOUiwqUOWcmk>PEW#TQ<9e?zZ*3|YCLfm5`s!H{sW%{}aFB7C7D@kp-*xDReH^4N{n7Dp29$_z zqA83uOmtD{yWd?`s3tHL{B$vad-CfDvIn9(>R%Kj?Egd;@7TqaHD;fSW1l*)Y?7W; zSTUj2nXla(zECmvZ1obcgW1Qj3(Pf^QFn%yN$!14NqxgC=A)wwKI7|>+X>(y`(84U z=1sA7)zw2Xcp7AtceEgeS9>CK*x#nrk{n#iV`xViFNnFQs4Ov1L~>ym?>cn8FYq}t z;YS%QkLxf|Sb~N-bQBkeNt-Wv?r6W3_9BVo4U-9P9Lcnms5|Ag)^bIO_ckpbZMMbx z^i+}aYkZSy@e;TaK`c_jFQ9lcon7|BOTb|@J_ZS;NE%KdswQI8Nqeq|9jL=6H9F*K{%yF;7LqV=eaekp8@)$WT@!=9q5UgGYzS zz|w;bFH}CI_&QUvD=IO51 zj@{yq)Z&mU)&|*MHY@dkhnp}8>+C>eW1;JM9d!XOGD1XdtE@{Lj>rvc34|ar;;ue| z|0;u_RiBUxes0wKJp$ZlSBKeqgsxGT6(JgY)-deNx{hMwsTM79=#P}EJI?3L$IY9= zB>1igqqUU~&6UIK$zW-*KUY}oAPymkWmS=*jx7)b!-0V0!2?`&X*oSEK-hq6NQj-b zzWXJIHNio0a6OMuNsp00Nx9kJvwZpX+K;f0l?kbT)LW?7T2sDjK4A)5 zt4kX^I8>rZ!DFv-`^?UmM<&gYoh%3$!gn4^qcm{}&6Rfks%LIUNg{Myyh$4(n+s!0 zCV+1W$mnJ53cLx%>qqHYDb-3Q=xH53e3PVm+H}f*kW9u(?>WpzuY=I?`LaTLAV9XnKfX5zYi_?$IBxwyi}x*ORwC4PadgtpD`q)od~2;|Z+`!3v*n5C zst~hrABFPDx6xDt{|=D4T&CNW1E>>Qbcm39?s`X-1;Tu>wenwo*I=!?%5J&p&TsVu zj^$FZh9u|p3lDdpG1Nui@>R_+b zZRaB7{F-c+r#4NQ=*p}oDapTN;#)b+-`DkZn=T~>qa>6Y7VhiTETJ$)g5W0@*EI7H zC@!Q!hd6}{$~w8gm@Ie>aiGwl2WaZ0j)4_nVtOvDtlvPs=mv;-gnNk(vh`8BcH%;s z8D$#=5AX}cb^B6pM0aT|Vw{#Uj&;4zRK_i+>f*TVJuHHG8F}>T2}x!S+DudjG3>1M zhFS>ptZ;g2iFK`j9h^g%omS%&2J!7u;Adi&PtvtoAuToR zX*hiTUOPlr*YI?QY}-SZ|ExBb<%R2fuYdz@7$-E)67=!LNUT8#U&ZBx6H46qOYZ72 zad2THxcJ-9jGLn)#MCl^1sYtn)llPdwY}t@zlx0LQZ9wfQ!ve|ovj@CzW(IzKu^sj z$l{<^oC}qs^r@;K&sypBb!DZR`V@-HOEHyQhD3yQ(E6pIf;o!=mCv2_3xkD!9t`mg zS8Xm-xLob6-!K!~eh4l{&ahDja>}@2we2^&R-u8&>V|YrAbqxa*LI({k@5U+XY5&y zUin8O1kplZq9o%tZ>~DI>G9_r-dviS!lc4M#JL-Dvza<2(O0HhOIC!~uP6DzO_fd; zapMU_P0t_s9ixj!CQMfyqQ7;^uqYh~n8klfhcMO*wyB;g_A zqoS_VobKpEWAKZXbX?^YGMX885X5TQd1?_eAv0U)EOep&KKu!#7d56S>yLc3`|5jC z!C|qSEZxHS8a6f*wgee2HWbzb89p`?j&h!fF{W1H1-~qtw2QGhM-vydO8)zw%=0ET z_c4F>3zp%Ax7wadKqM2IivLE_m`x8G_))pXoy#f?8DqP6fOqnPfyMb4(I?qo|(nc4>S;$A~lg}@}r zDjlg^^mwg`)pCm++bX?B3>w>!!1_#*aRH~{pVFh%87I+OR@Bwc5#k4OT0Q37zOW(a z$TLXqjp{Y7(Y!kOpt3IC-uKVyQ%X`ygU5@udfuu~Qyr;jj_~(F^Nz8uL>O2iRgy&b zSpHSRbb;@?W_QLvVD*#@A3clyJN>3*?s@(!0nTW(d3IXm{TJ4}G43*$gZdH0E%3Crl$7zb5JU}NQu!j_U^oPS+uzynAjU* zorv<4Kct~-`O=eFO8~aH2}g?^yzy*$nt1Iue#m}wsr9p7Tbgt2f1Bg@!KLiDLojhr*t*-@xNPE z9A-bQSDmW7biflP9QY-imXWCb`zqj{9QZ}nPLmc)QeW$9jeRQb9l-2Fp%W>)8&aTe zbar@m8OW`aLQ!1#P<`g1~cl4e~mAq8}N>F~@p zn^`S+#N3rM#msLfVEwp>B?i-(Q60U>REqOY5(6(OG4T_?KkvkzUs`cg-2z!yb9C42Uf^3?ER%0bj*S^}U-7DM!93|DCg(v& zCZe=dWi%$DvX7zlizjBEW#DIto(492iQS3pE@6>5#Y_w%fjJ?KJZJjhfOC*~%Ph)? z%6CQ!o9ulMg+z!Dz13$dT@hg{HR_odK1|xzz^e+ia(Ft#g*vC$)GiRHFy14yu)RYm zO_@D_n-*ter$?zwx!AbeJT~Pyc~^}NK@0;a#p~g!c+L&S|DS>Zm%}lTG z#^r%y2ewFVt)iP69atCADDi#=1^~JQlQk!*l=uV#J<+jpXqY{jDf5II(~6Zy@m*pQ zk*@=y?o!KMl6CGT0_CyM7IjzMbcaurQ?+KQM}CvIZ*xY=r%i<9cNMU`zVcTe4Y|lX zS9>1adACkJg?3?{ImxT6w?DR6557m(Im!207gNIx$H*|}QVV4x4(&>jH|N5)W_0!M z>PT!ND8)mApB{!X6NeU4e*J(JI8(>0wu(01h_w0ZyNTwM5*L%&$)ati*Lb6;4p%f3 z0$0L-Q{F*FdFU8eHd1ho)Nl1MsMVs?aq<^aH{h0a!Ef#*rSM_eH<;x@=53a_N%-*P zwYy{xQ2hsn%T_|_xgH+=&O=!I6^Hm7ryt(Iu`)Vw&6NFpRRy=+;PK|PR|avEcM#Dt zaS6^hn}Jmi*x;M;%5s_j2o53)2xBoPH$uBXERKnyk|KJXcR+_>=+x;?VSj)hSzKnL3XL|lvLx4iSe#{3d(?cHg8*q&yb;tne_k9azGua+V1yg`LRJCs1nel(%-D8R- z{!GpZrY8}?f3T{VuwWWUQ&r_aqp2G-4mud?m~+gD+wtl!uU;?#vCYj~4cWr@z6G}U zkYCFnRx07|k}nhi;*RcI>yrYXFU#zh#(zfv>%W8RSp|hd)d+n0fOdxx6 z&=32V$Bpv9)5iylnboR90YjhJK6t@gboyQ$RQTWIG>K>2Qx|#K|aHIw_cy+cgXHd5*@OSIuWRx4KDle*bsJUcwfWCD6CQ%kMNQuidYpYB!3rn`T91ZK3%NOf6E zJewX$wYp@=c5Zg#G!De{T!C3p%gy_Z=>u9mjF;RJP|DIkD6mBXZvKl>LYXW%QHPW# zpoSr@op{wO=k$h0xI^j+~T>`7g^8 z^-hrcz2}vXz1L^Y*2Cp6|5aCmavy&oEXr$DZThgPCXF19?~#YikW1j-<}9-=D~M8 z0FD$p{z?jbK8@+-6qCKR=tmh;xSKL*J2U*hqf10Ty5u~z9J8jF`m9mm|LE$py^N#i ziJuJz4dpZ#@RFteWGDjMeL*gS^*-OkzNclen8 zJ+UTMo>bV$@=sXg2n2tCvzpdg_8JX++f%`%aasOKqiIfz7IlA51LyZ7tl_|w4VKRn zQ$8BLZ5R}>)G}Gi0%icE7HlGP-OseQoIKt?s%P}YkR6^;UiR^-La=iUQKDKr-b6le zeZNjK^gWV3UKf*3cwKQa%T;AvjP_~*F`Nw*>9?uPD?RiE%N{)axlqXc^ueQ$ghc@Jmz8dw&OJn4+m5=dq>RtuC=$)x8BmIo|{##dW&xiYF zx0n?PYnxA!l?K8mb;VdN7V%C-rZngbQ3;=y9@Y)b2)l=TbdcymKmEl^)=6#*G1ccDd3 z7iEhwN7rh;^&boPR^;ldPejot%rvW;k#5CI{KleNK!{+de-1<^iX1en`Cf6BORkQG z@zofd9Anjv2AR{tznn}muZGF$2;9!TfjAxZz%UuvHI!eRb0)Q{^_CpFq|JACH(JG` z%P5AFKIcfpdWXzCGn*Ld02c2cs)sawG72pPrm5F6x4>4Bh&Yw>_x^o?cgg=&GBe4dXimVI9XhSng@T)+MykTg>!?ih7uWT5O5=&T35;dS z95$@UMjYIWTN`y@iO@mz3CKTD}c5=;Ns1hIaT{9Myb;KCl#^TGI%{d$uc z?fnrx)|`!)juL*xU&=TC4deCSFjznT8-_3aa6c9EC$GeuNJu*796V9!Ge-EqTC~R$ zyM5*Gso7Cx?Wpq~?mZ*I`5MPh<#P{b8%OFPliJGuV-zm5>z-1lc3(eXfY66iAwRc%|nYVYAIS|QUqi9OQ`9#;)$l=@9=3pcE z3CzM1p(5oJ8^QT>1_Bop&<&g-2GP)kW@%+cq%ak`?1_^ogVQvBcoKEu{(^=Wj3RB~tBb#wIqz{){PvQcxzS|vgx|-?D zEu65Ejj4v|E|Z9DRwnm-ky#a!ae zeke#E(o)YzDM;H`2xRET=5>oHB+7`zepvnFr<5X}9zSPRBjp=M)#E(ao^Z8K9{Zjn z*7*iLB3{yW>zbLSE=kzFq|;U!F!{x&E-l<-a|DzUUR6< zK90kmiXCVRn8#==R~>f@+#RlOG8vnwl*no)I*GhA4D$u`-18v^dcWSY$KKpL5Roq3 z`|_fFFA%tphT41`aje&9rN)g}9g2Q9pfyE98L%-Sh$P2?0hwI_!552l+u`KN52;9z z-YR9~XS(AO7`Xu=3GGm` z---Vk=2Un!IvL}4z9ser^2T7$IRB>Z^6^8P=h?m-|8q&)Tm5cXZr(hD$n?Q5YKas^ zgFz3jykWpLB#<)<*oH_IcL3Ya8Iut^I=x5k@b5DMquNaaKX^Kiz_i8m>N5i8k#x0n zmg^A!+402Te!&H|tfyamm&qe}};@bj;h;fs{c*pU?lAxeKIB}Tv>wLTvoH2KB@ zl}ymR5+8j;v#7f@?Ew}`{+m_Ui%w;j)8JY3+rZT<1egsY=E=BiD}p{Dqtqu<8*#(cJt<{xdXDcRKs2)TZRCXCBrEV?w37 zf|i3suhJx`G{IFlJMkv#{XQ`TBN;J;yHneipTNUqu;VB~$`E%O~9#iQL({V=0qLqs)eP_IS ze0A;9x0*?L_OogSBula?*M>i9ADR{xo6z@%2wZC%EAQn`kDC6yI(&$8K54msyeIW? zd%7;UdD_l3M-0xm&}q1oo@rlsKJqkbE4kkO0XKh&GwfC2f20~(){7wY^7wxw;X>mKgSZl)}JHF&=DvS^WgZ3R!X#2McEuto8!Oc0NLpKN!jQ0H^K#p}Cs%o^{-p8hvECpy}WFi=~P^O<=H1X{BQv_{E# zUS4%k447j(E%0usKG2B7e21vpL3aBc`PYl?4&RYee&Hi%`=Yv|{gOd|Mpp}x;G@vzTS*qxf;J+H-o=SYv>kF|h;|0-tY&g(pNQh5x_3^lUyVIpA#9!LU ziHSuD82;W22La!9UNFBUVRBGjf`*rI?eq7RDH&QU^4V#u9B{Y3(<0lXDM(_;vcT_k zZg&bnh6Ky^rGxxj;9;kR^D)2tn)eY=hI)=8(URQ1oINXEpvBieo@`%a^nb&3~MYZ;jOMqS$N+SobrIU#+jspJc6 zR<6TgSKlT>5A8l*vt{Uz4mqm=eCt8&KMLsoSRE#S{@;EE)Hi?>I11?h5({KRXo8F6 zZ~t|iRk@y7g5a%G^w{yeU&bCCDF<=}KMxMSgI_UXCo5|GC3%$)tppfQ#6$pxk`Y22 zV4$ZZN>)lkGNv?Z`!lNO#9q;Z!M%!1>=@fYR>O7KaC?xOJMVE>Bfk7~zrO=~WuDaR zX;B%F8A2@fI6Z#ka#=H;Nm4YZ6oi3P0=ZmqUg3Q{@*`9RsaYX~RgpT~Pw-Er^yp^L z%dSq7ix&`GjMBELr#IJd!g~C4pO2tbSt)V9WUGB3JRPJdnUjQ~q+jenz5Ov?#JHbr0=(p72Ui>wO*`uw~y{L?i?gupQ z3Uh3z?+W#C6hWRq<7d|l@vr`MId#%3L`tI?)e#+6jm|{@^4t>_jzpFvZAKgB z*b0umYV>0j_pjJp))Ej$tjF9r+zCFrsfif+NPfZZg%;}!`!tM2e(JXbkr!PFI_2T| zZdo^oMRmH28RigQJ$fW}z=bh>h_7T-)2dCh4<|C_o)&|_jo7>^W=0U|R77IY&wj{G zNvw+OKpH;M27}xSc;}`$HwTrk2(b`LO}rW%UeQf|%t^cKhvwXUmYq~Win%#Ah;AMd z*CRo8CEc8V?mwVArJ*Q- z>}j2$kk`_De^Rz@+IHC1oL_a1QssvL>(%31d1w3lSH|>0g^nz1-skNtOWwF|!A$(D zVsK9ssUN)#|68b#+5?$0RH5>A{a#k*eL~pCt*G4mym4gm)5~)|mohy0#Q_f5( zUgwd+Vc1Tg~1{9=~WzCp0#4M{M@1lL-=}BCQnuJ+Wz!w=zSD@6Cbfml-T`b zmwcPW_77dwGJ#x@#(srgjVOIJ77T1H3;tp;^k4B)>%V;%0M7PrcKt9;=XY*ko8as5 zAu_};p@Yo1uiHGK5PO}@?c(wj>HUw)|_Up1TO8? z3SI<-dczNnO0N$C8iCm%Mjwpg^4mt=e~fzQbtw+-9MGRR`vmZe>ABDi3gKf;531CV z?IkKM9a+h}(v$fNnTT*4*<0exF5F4PCiyw{Iz z%?ChER6o{EQyITb0}YbQIjNH%lG?f&%SbBBOWi6OVYP7U0rNxLbus1W zUb*v-@p072@paU=3z=WcC$~GUjH7+H~q#L%;2&dZW8MD;kbpXBL zrX-X5pmKqjFUvvm$z$%@%Hdpv^gFF_Ta*gZ`VZx%KlG|s94+lR1g}Do?px!?s&ihM zu?nsazET%4(a0pL{hj?c^nLdXOY(FLDphcq1qfP;SSgBbeDecEzl5kXVLQ(x|3q%( zdD%oDnj=V6%KxFwi~oK8hP55TB;qWaR_7t%*MLJpCH%tA1Iw(_hlHhEv@)jJ2ot8M zo!f}1G@41EX=mrdqNn`{zf0=een%H>@PRiNOn+cbhe#^&dv&HZz380|h8`g&&i929DltoKf8xT9{wOR> zJSKc?;JLE+1qYWl~i_fJI&^jIWGoq9akL<}9l{Ft2jEzj!QbVL%Al>=4 z5dXKEV~BEJ@BtJIx`&3Z7m+_wMG6QVO=iOD{M+ugIP(aRqu+kA_AYKtQom-=F)qG~ z^~s2n)Y5k@m0!m+C^yBf2Qftb;r7_XnrF_(Zg;!XJ0uG{!Kmc=n9rYP$9Y$8wKe(M z(MMAsJ9Yo#pN`USbS-W>6vmAD4_`BW=zUCEV?qKHqDtQ=rZF48xwU-k0^dqW4Sb?n zrA~|=ik5Q+$PP^|mUDC=#a)7ybN0d6O?Xl0nwWZ4OV8W70=Kt#VR1Jnk6Eie1edA)1@h&=Ug-~E51VJeRsKXVZj|+z`|e*O!}iVc z*f*ts+xz)}!+E65P6d-IJ8p;P(KSYqtGC?`J`RTdoS%6Pavrc=7fZ3 zDpE$3%zeQ8xv!;?i`QkqysirLbWSX^rnW(6L1MX=T|w12Ze)5^v7-BHrrrIDdWMO1 z^L^`*OeP6$n?MtPOd8^JIM21lexVF8P3~b;Cr7I7y^J9q|I9M9?a`z`QaPjCz^^$< z3c=HKZD4=nvZiO>B#gz?bYXtuNEsIO+WRvl!oVXE%?%NGgQ}hj21f%?O6n4Te(EQ) zk76Yx5Id0}5~ryi@5iqhHTSq0EsfC|B?qOUiu7KMP_j72h|ye5*jMjTYjHA@Ym7#H z3Pm%3&h!O^qKRA);ZNK6|IrDsGyK(e69u53n9t51@2tFy!P@lt1u=SmR;uNOdg0Z> zf3kAfX0Bo_?vZl-)U>>|CSE06wk>02N1IGbST3QX2lCp9Gs+dd$<0kNq15L2=dQ$9 zbD1`P9q*Rzb-9;V%ko)wf&ovnGKuDst2X3)e54O-u%6}%$Y_r%@s(my^M{s1Db}`p zk0VKj<>&3g-3sp}5_h4kEaw`~Cvm*~bq-L_Dl%8|+s!{BA9bdbl_qX7#$VgH9Ohu- z^sWQlr>-9VlV=V61H!OT!NkKs+A2#4{Nt~q;a!Wgu9w^Sr@6*IrxT8s`BN^u`aP2I zF%h|is@}(h;F_?;(6`2b%V1>bb(Pa(dxO*j|JS689_8lYQiB#_sr8e#Gt&P9`(Qjpkrb%ON6=sX%c+aA{(n{TrsI4eKe*j_ zQ-@EVjwJ3FGFshD{&6ril^P ?fjQIQZ*t{8R;=#|1Llu2lG9L7gOvfS<|I6QSxV zBD(B9Khq45`5m$93fMbPC6}ck1yY#_N(kYWlcQV`zVDroc^)Izli)ij3iQ{z%r0!J ziv|^2%k+}#@$%Jv7KWF+L!#LyB9{a@85^7jNF)l)K47Jg07-J7qe)Kid)b0`Qa>I; zLiWiDsUNd_YA{YXoZm_ownmvLWCP+YXlmkSkoYR!Sq5H?73Ef6@tB3TQM&!c`Qp z8BA(7GgD2us`##qHxgNdN6H)NP5Ki!K&mUq4FFQoKC&J_O4|2o0h_MRCc_Cb2t!L6 zVD5Uzj0C@{KvtB5oxE#C4z6njjlju-fXOnBCyY)+tGA<7XO-zVt$5Ri6&}wcg1-10 zVS~yIo5HmO<@Sk1UUanBS8WwG_1BaU>HVHEW06|P$;R7^=^4MvT6*R&8)rHCxioYs z5uIjxyj*ql+x~HqGpux1yRhW-(4ooA(A=0-{wX==zHbJ0_XmiCWwK&nW!|c~$tSI! z(`Rz&d{1l6c`SvW8w%W#mS{7%?XIwtCTYu;(34EB~RCD9Re~;VijBjBZ{~jOkEkRir zS1{a~zQa$Vpsc8rQ4fu7w${IBB#2eT>CMNFQI%KSHIdc-OYQ1;?am- z@DH0G3LgE&A>=mAVBR6*F`Z^!Gsk#7yp7pkAJ4r=ZEWLAd^5Ax7XIX3(?)hZIVjs! z)FD@rp{E9�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 H_SXLZ3@Q