From ba3729a4a1bd53cd5c090dbad04643297d577845 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 30 Sep 2026 22:28:57 -0600 Subject: [PATCH] First library, its tested and working --- ExtensionSDK/README | 149 ++ ExtensionSDK/include/CmpErrors.h | 16 + ExtensionSDK/include/CmpItf.h | 711 ++++++++ ExtensionSDK/include/CmpStd.h | 641 +++++++ ExtensionSDK/m4/Exports.m4 | 1514 ++++++++++++++++ ExtensionSDK/m4/Implementation.m4 | 897 ++++++++++ ExtensionSDK/m4/Util.m4 | 113 ++ ExtensionSDK/makefile | 183 ++ ExtensionSDK/makefile_template | 48 + ExtensionSDK/src/CmpFrame.c | 78 + README.md | 81 + SHA256SUMS.txt | 48 + .../CmpAtomModbus_library.precompilecache | Bin 0 -> 172716 bytes artifacts/arm64/libCmpAtomModbus.so | Bin 0 -> 99648 bytes component-source/Makefile | 16 + component-source/component/CmpAtomModbus.c | 33 + .../component/CmpAtomModbusItf.m4 | 70 + component-source/component/CmpFrame.c | 81 + component-source/component/makefile | 13 + component-source/generated/CmpAtomModbus.c | 10 + .../generated/CmpAtomModbusItf.m4 | 70 + component-source/src/atom_bridge.c | 96 + component-source/src/atom_bridge.h | 18 + component-source/src/atom_mb.c | 147 ++ component-source/src/atom_mb.h | 40 + component-source/src/atom_rtu.c | 101 ++ component-source/src/atom_rtu.h | 16 + component-source/src/atom_server.c | 131 ++ component-source/src/atom_server.h | 7 + component-source/tests/bridge_driver.c | 29 + component-source/tests/driver.c | 24 + component-source/tests/test_bridge.c | 19 + component-source/tests/test_native.py | 114 ++ component-source/tests/test_tcp.py | 59 + docs/API-REFERENCE.md | 1590 +++++++++++++++++ docs/BUILD-AND-USAGE.md | 203 +++ docs/DOCUMENTATION-VALIDATION.md | 11 + docs/USER-GUIDE.md | 216 +++ docs/VALIDATION.md | 14 + docs/document_export.py | 194 ++ library/CmpAtomModbus.library | Bin 0 -> 746144 bytes 41 files changed, 7801 insertions(+) create mode 100644 ExtensionSDK/README create mode 100644 ExtensionSDK/include/CmpErrors.h create mode 100644 ExtensionSDK/include/CmpItf.h create mode 100644 ExtensionSDK/include/CmpStd.h create mode 100644 ExtensionSDK/m4/Exports.m4 create mode 100644 ExtensionSDK/m4/Implementation.m4 create mode 100644 ExtensionSDK/m4/Util.m4 create mode 100644 ExtensionSDK/makefile create mode 100644 ExtensionSDK/makefile_template create mode 100644 ExtensionSDK/src/CmpFrame.c create mode 100644 README.md create mode 100644 SHA256SUMS.txt create mode 100644 artifacts/arm64/CmpAtomModbus_library.precompilecache create mode 100644 artifacts/arm64/libCmpAtomModbus.so create mode 100644 component-source/Makefile create mode 100644 component-source/component/CmpAtomModbus.c create mode 100644 component-source/component/CmpAtomModbusItf.m4 create mode 100644 component-source/component/CmpFrame.c create mode 100644 component-source/component/makefile create mode 100644 component-source/generated/CmpAtomModbus.c create mode 100644 component-source/generated/CmpAtomModbusItf.m4 create mode 100644 component-source/src/atom_bridge.c create mode 100644 component-source/src/atom_bridge.h create mode 100644 component-source/src/atom_mb.c create mode 100644 component-source/src/atom_mb.h create mode 100644 component-source/src/atom_rtu.c create mode 100644 component-source/src/atom_rtu.h create mode 100644 component-source/src/atom_server.c create mode 100644 component-source/src/atom_server.h create mode 100644 component-source/tests/bridge_driver.c create mode 100644 component-source/tests/driver.c create mode 100644 component-source/tests/test_bridge.c create mode 100644 component-source/tests/test_native.py create mode 100644 component-source/tests/test_tcp.py create mode 100644 docs/API-REFERENCE.md create mode 100644 docs/BUILD-AND-USAGE.md create mode 100644 docs/DOCUMENTATION-VALIDATION.md create mode 100644 docs/USER-GUIDE.md create mode 100644 docs/VALIDATION.md create mode 100644 docs/document_export.py create mode 100644 library/CmpAtomModbus.library diff --git a/ExtensionSDK/README b/ExtensionSDK/README new file mode 100644 index 0000000..d0789cb --- /dev/null +++ b/ExtensionSDK/README @@ -0,0 +1,149 @@ +############################################################################## +# Copyright: Copyright CODESYS Development GmbH +# Program: Extension API for the Linux SL products +############################################################################## + +########################## +This is the SDK of the Linux SL products to create an own additional CODESYS runtime component +whose functions that can be called from a CODESYS IEC library. +########################## + +########################## +Prerequisites: +- A CODESYS Installation to create an IEC library on a windows machine +- Some buildtools to create a shared object (linux dynamic library), that can be run with the CODESYS Control SL runtimes + - some kind of GCC (for X64 / ARM / AARCH64, depending on your target system) + - make + - m4 + - sed + - dos2unix +########################## + +########################## +If you want to start a new project, follow these steps: + +On the linux system (where you want to build the component) +1) Install the required tools (see prerequisites), e.g. with + sudo apt-get install build-essential m4 sed dos2unix make + +2) Copy the SDK to a place of your choice, e.g. in your home directory. + Later we call this directory the "", so please remember this location! + Hint: As we are using the tool "make": dont use paths with whitespaces. Make does not like that at all! + +3) Create a folder next to the sdk where you want to start your project, e.g. "CmpFirstTest" + mkdir ~/CmpFirstTest + Later we call this directory the "", so please remember this location! + +4) Now create a new project with the following command, and use the makefile from the : + make -f /makefile newproject + e.g.: + make -f ../sdk/makefile newproject + This creates a makefile within your folder, you might want to take a look at it later ;-) + Your workspace now might look like this: + | + |- SKD + | |- include (dir) + | |- m4 (dir) + | |- src (dir) + | |- makefile + | |- makefile_template + | |- README + | + |- CmpFirstTest + |- makefile + + +5) Now take a look at the generated makefile. + If you are compiling for X64, you dont need to change anything + If you are compiling for another architecture, you need to set a proper cross compiler via the variable CC (and probably more CFLAGS, INCLUDES and LDLIBS) + + +On the Windows system (where CODESYS is installed) +1) Open your CODESYS IDE and create a new library unsing the "Empty library" template (do not use the "External CODESYS library" template). + Set the title in the project information to e.g.: "CmpFirstTest" + and store it under the same filename, e.g. "CmpFirstTest.library". + These two must match, otherwise it wont be possible to generate the shared object! + +2) Add "externally linked" functions to your library as you wish. You can make a Function "externally linked" by right clicking + on the new function ->Properties->Build and select "External implementation". + This function must include "_cext" in its name, otherwise it wont be loaded by the runtime! + E.g.: TestFunction_cext + +3) Now create the runtime system files by selecting Build->"Generate runtime system files". + Choose a suitable path as output directory. + Enable the checkboxes for "M4 interface file" and "C stub file" as you need to generate both: C and M4 files. + Also check that the component name is equal to the name of your library, e.g. "CmpFirstTest" + +4) Save or transfer these generated files (*.c and *Itf.m4 file) to the on your linux system + + +On the linux system (at ) +1) Go to your and try to build your component with + make all + +2) Now a shared object, with the same name as your IEC library should have been generated in the "out" folder + +3) Now you can transfer, copy or symbolically link that to a location on your target system where libraries are normally found (e.g. /usr/lib ) + e.g. if you are on the target system: + sudo cp out/libCmpFirstTest.so /usr/lib + +4) Stop the runtime on your target e.g. with + sudo /etc/init.d/codesyscontrol stop + +5) Open the configuration file CODESYSControl_User.cfg of the runtime, e.g. with nano + and add an entry at the section [ComponentManager], where the components are listed: + [ComponentManager] + Component.1=CmpFirstTest + Component.2=CmpSomeOtherComponent + Component.3=CmpSomeMoreComponent + ... + + hints: + - the number or index in this setting needs to be incrementing, it might not collide with already existing settings/component indices + - if the line starts with ; it is a comment and the setting is not active + +6) Then restart your runtime again, e.g. with + sudo /etc/init.d/codesyscontrol start + +7) and check that your component is properly loaded, e.g. check the logfile (via CODESYS IDE), or under codesyscontrol.log + cat /var/opt/codesys/codesyscontrol.log + you should see a message like this: + ... Dynamic: CmpFirstTest, 0xffff2000 1.0.0.0 + +-> Congratulations! you made your first component and it runs from the CODESYS Control runtime +-> if not: check the FAQs section at the end of this file + + +On the Windows system (where CODESYS is installed) +1) go to the CODESYS project where you want to use your newly created IEC library, and use your library + +2) make a download and check if your code is called (e.g. make a printf there) + +########################## + + + +########################## +FAQs: + 1) My component does not build, what is going wrong? + - this might have very different reasons. Check what compiler (CC), flags (CFLAGS/LDFLAGS), include paths (INCLUDES) and libraries (LDLIBS) you are setting in your makefile + - check if the code you are writing does compile without this SDK stuff + - check if the functions in the component are named with "_cext" + + 2) My component is not loaded from the runtime? + - if you see a message in the log, like: + **** ERROR: libCmpFirstTest.so: cannot open shared object file: No such file or directory + or + **** ERROR: *** Error: Component CmpFirstTest NOT loaded + -> then your shared object is not found. Please double check that you put it somewhere on your linuxsystem, where it can be found (e.g. /usr/lib/) + + 3) Can I output some messages from my code? Where is this output? + - just use the normal printf() function in your code. This will be output at the "debug logger". To enable the debug logger, just change the file /etc/defaults/codesyscontrol: + set these variables: + DEBUGOUTPUT=1 + and + DEBUGLOGFILE=/tmp/codesyscontrol_debug.log + then restart the runtime. Then you can see the output at this logfile + + +########################## \ No newline at end of file diff --git a/ExtensionSDK/include/CmpErrors.h b/ExtensionSDK/include/CmpErrors.h new file mode 100644 index 0000000..93f6a72 --- /dev/null +++ b/ExtensionSDK/include/CmpErrors.h @@ -0,0 +1,16 @@ +/* + * this is a special header for the SL extension API!!! + * + * Copyright (c) 2017-2020 CODESYS Development GmbH, Copyright (c) 1994-2016 3S-Smart Software Solutions GmbH. All rights reserved. + * + */ + + +#ifndef __CMPERRORS_H__ +#define __CMPERRORS_H__ + + +#define ERR_OK 0 +#define ERR_NOTINITIALIZED 0x0003 + +#endif \ No newline at end of file diff --git a/ExtensionSDK/include/CmpItf.h b/ExtensionSDK/include/CmpItf.h new file mode 100644 index 0000000..e54a9c2 --- /dev/null +++ b/ExtensionSDK/include/CmpItf.h @@ -0,0 +1,711 @@ +/* + * this is a special header for the SL extension API!!! + * + * Copyright (c) 2017-2020 CODESYS Development GmbH, Copyright (c) 1994-2016 3S-Smart Software Solutions GmbH. All rights reserved. + * + */ + +#ifndef __CMPITF_H__ +#define __CMPITF_H__ + +#include + +#if defined(WIN32) || defined(_WIN32_WCE) + #ifdef _USRDLL + #define DLL_DECL _declspec(dllexport) + #endif +#endif +#if defined(LINUX) || defined(QNX) + #ifdef _USRDLL + #define DLL_DECL __attribute__ ((visibility ("default"))) + #endif +#endif + +#if !defined(DLL_DECL) + #define DLL_DECL +#endif + +#ifndef CDECL + #define CDECL +#endif + +#ifndef CDECL_EXT + #define CDECL_EXT +#endif + +#ifndef STDCALL + #define STDCALL __stdcall +#endif + +#if defined(__cplusplus) + extern "C" { +#endif + + +typedef RTS_UI32 CMPID; /* Component ID to specify a component. Has the vendor ID as a prefix! */ +typedef RTS_UI32 CLASSID; /* Class ID to specify a specific class (C or C++) */ +typedef RTS_UI32 OBJID; /* Object ID, typically the instance index starting with 0 */ +typedef RTS_UI32 ITFID; /* Interface ID to specify a specific interface (C or C++) */ + +#define RTS_VENDORID_3S 0x0000 +#define RTS_ADDVENDORID(VendorID, ID) (((RTS_UI32)(VendorID) << 16 & UINT32_C(0xFFFF0000)) + (ID)) +#define ADDVENDORID RTS_ADDVENDORID +#define RTS_GETVENDORID(ID) ((RTS_UI32)(ID) >> 16 & UINT32_C(0x0000FFFF)) +#ifdef TRG_64BIT + #define RTSITF_GET_SIGNATURE(sign32bit, sign64bit) sign64bit +#else + #define RTSITF_GET_SIGNATURE(sign32bit, sign64bit) sign32bit +#endif + + +/* Function that can be used for all CAL_ macros to return ERR_NOTIMPLEMENTED */ +RTS_RESULT CDECL FUNCTION_NOTIMPLEMENTED(unsigned long dummy,...); +RTS_RESULT CDECL FUNCTION_NOTIMPLEMENTED2(void *dummy,...); + +/* Structure to handle a mapping of an ID and a name */ +typedef struct RTS_ID_TO_NAME_ +{ + RTS_UI32 id; + char *pszName; +} RTS_ID_TO_NAME; + + +struct tagIBase; + +typedef struct +{ + /*pointer to virtual function table*/ + void* __VFTABLEPOINTER; +} instance_struct; + +typedef struct +{ + instance_struct *pInstance; + RTS_IEC_DWORD dwCount; +} addref_struct; + +typedef struct +{ + instance_struct *pInstance; + RTS_IEC_DWORD dwCount; +} release_struct; + +typedef struct +{ + instance_struct *pInstance; + RTS_IEC_DWORD iid; + RTS_IEC_RESULT *pResult; + instance_struct **ppInterface; +} queryinterface_struct; + +typedef unsigned long (CDECL *PF_ADDREF)(struct tagIBase *pIBase); +typedef unsigned long (CDECL *PF_RELEASE)(struct tagIBase *pIBase); +typedef void *(CDECL *PF_QUERYINTERFACE)(struct tagIBase *pIBase, ITFID iid, RTS_RESULT *pResult); + +typedef void (CDECL *PF_IEC_ADDREF)(void); +typedef void (CDECL *PF_IEC_RELEASE)(void); +typedef void (CDECL *PF_IEC_QUERYINTERFACE)(void); + +/* */ +typedef struct tagIBase +{ + int bIEC; + int iRefCount; + RTS_HANDLE hInstance; + PF_ADDREF AddRef; + PF_RELEASE Release; + PF_QUERYINTERFACE QueryInterface; + CLASSID ClassId; +} IBase_C; + +typedef struct tagIBase_IEC +{ + int bIEC; + int iRefCount; + RTS_HANDLE hInstance; + PF_IEC_ADDREF *AddRef; + PF_IEC_RELEASE *Release; + PF_IEC_QUERYINTERFACE *QueryInterface; +} IBase_IEC; + + +#ifndef STATICITF + #define STATICITF static +#endif + +#ifndef STATICITF_DEF + #define STATICITF_DEF +#endif + +#if defined(CPLUSPLUS) && defined(__cplusplus) + class IBase + { + public: + virtual unsigned long AddRef(IBase *pIBase = NULL) =0; + virtual unsigned long Release(IBase *pIBase = NULL) =0; + virtual void *QueryInterface(IBase *pIBase = NULL, ITFID iid = 0, RTS_RESULT *pResult = NULL) =0; + virtual ~IBase() { }; + }; + + #define DECLARE_ADDREF()\ + virtual unsigned long AddRef(IBase *pIBase = NULL); + + #define IMPLEMENT_ADDREF()\ + virtual unsigned long AddRef(IBase *pIBase = NULL)\ + {\ + iRefCount++;\ + return iRefCount;\ + } + + #define DECLARE_RELEASE()\ + virtual unsigned long Release(IBase *pIBase = NULL); + + #define IMPLEMENT_RELEASE()\ + virtual unsigned long Release(IBase *pIBase = NULL)\ + {\ + iRefCount--;\ + if (iRefCount == 0)\ + {\ + delete this;\ + return 0;\ + }\ + return iRefCount;\ + } + + #define IMPLEMENT_RELEASE_NODELETE()\ + virtual unsigned long Release(IBase *pIBase = NULL)\ + {\ + iRefCount--;\ + if (iRefCount == 0)\ + {\ + return 0;\ + }\ + return iRefCount;\ + } +#else + #define DECLARE_ADDREF\ + static unsigned long CDECL AddRef(struct tagIBase *pIBase); + + #define IMPLEMENT_ADDREF\ + static unsigned long CDECL AddRef(struct tagIBase *pIBase)\ + {\ + return (pIBase ? ++pIBase->iRefCount : 0);\ + } + + #define DECLARE_RELEASE\ + static unsigned long CDECL Release(struct tagIBase *pIBase); + + #define IMPLEMENT_RELEASE\ + static unsigned long CDECL Release(struct tagIBase *pIBase)\ + {\ + return (pIBase ? --pIBase->iRefCount : 0);\ + } + + #define DECLARE_QUERYINTERFACE\ + static void *CDECL QueryInterface(IBase *pBase, ITFID iid, RTS_RESULT *pResult); + + typedef IBase_C IBase; +#endif + +/* Global function pointer declarations */ +typedef int (CDECL *PF_EXPORT_FUNCTIONS)(void); +typedef int (CDECL *PF_IMPORT_FUNCTIONS)(void); +typedef RTS_UI32 (CDECL *PF_GET_VERSION)(void); +typedef RTS_RESULT (CDECL *PF_HOOK_FUNCTION)(RTS_UI32 ulHook, RTS_UINTPTR ulParam1, RTS_UINTPTR ulParam2); +/* typedef RTS_RESULT (CDECL *PF_REGISTER_API)(const char *pszAPIName, RTS_VOID_FCTPTR pfAPIFunction, int bExternalLibrary, RTS_UI32 ulSignatureID); */ +typedef RTS_RESULT (CDECL *PF_REGISTER_API)(const CMP_EXT_FUNCTION_REF *pExpTable, RTS_UINTPTR dummy, int bExternalLibrary, RTS_UI32 cmpId); +typedef RTS_RESULT (CDECL *PF_GET_API)(char *pszAPIName, RTS_VOID_FCTPTR *ppfAPIFunction, RTS_UI32 ulSignatureID); +typedef RTS_RESULT (CDECL *PF_REGISTER_API2)(const char *pszAPIName, RTS_VOID_FCTPTR pfAPIFunction, int bExternalLibrary, RTS_UI32 ulSignatureID, RTS_UI32 ulVersion); +typedef RTS_RESULT (CDECL *PF_GET_API2)(char *pszAPIName, RTS_VOID_FCTPTR *ppfAPIFunction, int bExternalLibrary, RTS_UI32 ulSignatureID, RTS_UI32 ulVersion); +typedef RTS_RESULT (CDECL *PF_CALL_HOOK)(RTS_UI32 ulHook, RTS_UINTPTR ulParam1, RTS_UINTPTR ulParam2, int bReverse); +typedef IBase* (CDECL *PF_CREATEINSTANCE)(CLASSID cid, RTS_RESULT *pResult); +typedef RTS_RESULT (CDECL *PF_DELETEINSTANCE)(IBase *pIBase); +typedef RTS_HANDLE (CDECL *PF_REGISTER_CLASS)(CMPID CmpId, CLASSID ClassId); +typedef RTS_RESULT (CDECL *PF_DELETEINSTANCE2)(CLASSID ClassId, IBase *pIBase); + +typedef struct tagINIT_STRUCT +{ + /* Exported by Component */ + CMPID CmpId; +#ifdef TRG_64BIT + RTS_UI32 aligndummy; +#endif + PF_EXPORT_FUNCTIONS pfExportFunctions; + PF_IMPORT_FUNCTIONS pfImportFunctions; + PF_GET_VERSION pfGetVersion; + PF_CREATEINSTANCE pfCreateInstance; + PF_DELETEINSTANCE pfDeleteInstance; + PF_HOOK_FUNCTION pfHookFunction; + + /* Import from CM */ + PF_REGISTER_API pfCMRegisterAPI; + PF_GET_API pfCMGetAPI; + PF_CALL_HOOK pfCMCallHook; + PF_REGISTER_CLASS pfCMRegisterClass; + PF_CREATEINSTANCE pfCMCreateInstance; + PF_REGISTER_API2 pfCMRegisterAPI2; + PF_GET_API2 pfCMGetAPI2; + PF_DELETEINSTANCE2 pfCMDeleteInstance2; +} INIT_STRUCT; + +#define COMPONENT_ENTRY_NAME "ComponentEntry" + +#if defined(CPLUSPLUS) && defined(__cplusplus) +extern "C" { +#endif + +#if !defined(STATIC_LINK) && !defined(MIXED_LINK) && !defined(DYNAMIC_LINK) && !defined(CPLUSPLUS_STATIC_LINK) + DLL_DECL int CDECL ComponentEntry(INIT_STRUCT *pInitStruct); +#endif +typedef int (CDECL *PF_COMPONENT_ENTRY)(INIT_STRUCT *pInitStruct); + +#if defined(CPLUSPLUS) && defined(__cplusplus) +} +#endif + + +/* Functions exported from main */ +RTS_RESULT CDECL MainLoadComponent(char *pszName, char *pszPath, RTS_HANDLE *phModule, PF_COMPONENT_ENTRY* ppfComponentEntry); +RTS_RESULT CDECL MainUnloadComponent(char *pszName, RTS_HANDLE hModule); + + +/* The following functions are always offered by the component manager */ +int CDECL MainExitLoop(RTS_UINTPTR ulPar); +typedef int (CDECL *PFMAINEXITLOOP)(RTS_UINTPTR ulPar); +#ifdef STATIC_LINK + #define USE_CMExitLoop extern int CDECL MainExitLoop(RTS_UINTPTR ulPar); + #define EXT_CMExitLoop extern int CDECL MainExitLoop(RTS_UINTPTR ulPar); + #define GET_CMExitLoop ERR_OK + #define CAL_CMExitLoop MainExitLoop + #define CHK_CMExitLoop TRUE + #define EXP_CMExitLoop TRUE +#else /* DYNAMIC_LINK */ + #define USE_CMExitLoop PFMAINEXITLOOP pfMainExitLoop; + #define EXT_CMExitLoop extern PFMAINEXITLOOP pfMainExitLoop; + #define GET_CMExitLoop s_pfGetAPI("CMExitLoop", (void **)&pfMainExitLoop, 0) + #define CAL_CMExitLoop pfMainExitLoop + #define CHK_CMExitLoop (pfMainExitLoop != NULL) + #define EXP_CMExitLoop s_pfRegisterAPI("CMExitLoop", MainExitLoop, 1, 0) +#endif + +/** + * Hook definitions to inform all components with a broadcast via HookFunction() ([0..10000] reserved for core components): + *
    + *
  • CH_INIT_XXX Hooks: Used for initialization of all components. + * Future range, not yet defined! = [1..1000]
  • + *
  • CH_EXIT_XXX Hooks: Used for deinitialization of all components. + * Future range, not yet defined! = [2000..3000]
  • + *
  • CH_XXX Hooks: Used for broadcast commands (e.g. cyclic operations). + * Future range, not yet defined! = [4000..5000]
  • + *
+ * IMPLEMENTATION NOTE: + * Future hooks should be defined in the appropriate range above! + *
+ */ + +/* + CH_INIT_XXX Hooks: Used for initialization of all components. + */ +#define CH_INIT_SYSTEM 1 +/* First call at system startup to initialize all system components. + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_INIT_SYSTEM2 8 +/* Second call at system startup to initialize all system components. + (used to resolve dependencies between core components) + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_INIT 2 +/* First call at system startup. Compontents should initialize all local variables. + ulParam1: Pointer to int. Parameter name=pbDontCallInitHooksFromCMInit. Content can be set as followed: + 0 [Default]: CMInitEnd() is called at the end of CMInit(). + 1: CMInitEnd (calling hooks from CH_INIT2 to CH_INIT_COMM) can be called asynchronously by your own + component and is not called in the context of CMInit()! + ulParam2: Not used +*/ + +#define CH_POST_INIT 200 +/* Called right after CH_INIT. Use this hook to run initialization between + highly related components (e.g. Register backends or providers to the corresponding components.). + + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_PRE_INIT2 250 +/* Called right before CH_INIT2. Use this hook to finish initialization of a component that is highly + related to an other components. E.g. finish initialization after the providers have registered. + + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_INIT2 3 +/* Called after CH_INIT. All components are initialized. Other components can be used. + + NOTE: + Events must be created of the provider in this init step! + + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_INIT_DONE CH_INIT2 +/* Backward compatibility */ + +#define CH_PRE_INIT3 7 +/* Called after CH_INIT2 and before CH_INIT3. All components are initialized. Other components can be used. + ulParam1: Not used + ulParam2: Not used +*/ +#define CH_INIT201 CH_PRE_INIT3 +/* Backward compatibility */ + +#define CH_INIT3 4 +/* Called after CH_INIT201. All components are initialized. Other components can be used. + + NOTE: + Event callbacks must be registered by the consumer in this init step! Events are created in CH_INIT2. + + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_INIT_SYSTEM_TASKS 500 +/* Called after CH_INIT3. Tasks can be started that are relevant for the IEC applications. + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_INIT_TASKS 5 +/* Called after CH_INIT_SYSTEM_TASKS. All components should start their tasks. + + NOTE: + The IEC bootprojects are loaded here! + + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_INIT_COMM 6 +/* Called after CH_INIT_TASKS. Communication can be started at this point, because all + components are ready and running. + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_INIT_FINISHED 1000 +/* Called at the end of the complete initialization sequence. This is called after CH_INIT_COMM and right before the runtime system + fall into the cyclic CH_COMM_CYCLE state. + + NOTE: + The IEC bootprojects are started here! + + ulParam1: Not used + ulParam2: Not used +*/ + +/* + CH_EXIT_XXX Hooks: Used for deinitialization of all components. +*/ + +#define CH_EXIT_COMM 10 +/* Called at the beginning of the shutdown sequence to disable all communication channels! + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_EXIT_TASKS 11 +/* Called before CH_EXIT_SYSTEM_TASKS to stop and remove all tasks that are not needed by the IEC application. + + NOTE: + IEC applications are unloaded here. + + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_EXIT_SYSTEM_TASKS 2200 +/* Called before CH_EXIT3 to stop and remove all running tasks, because at CH_EXIT3 all objects are released and + so no task must run after this point. + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_EXIT3 12 +/* Called before CH_EXIT2 to store data (e.g. retain data). + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_EXIT2 13 +/* Called before CH_EXIT to store data (e.g. retain data). + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_PRE_EXIT CH_EXIT2 +/* Backward compatibility */ + +#define CH_EXIT 14 +/* Here all memory of the components should be released. + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_EXIT_SYSTEM2 17 +/* Counter part to CH_INIT_SYSTEM2. + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_EXIT_SYSTEM 15 +/* Called at the end of the shutdown process for the system components to release memory. + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_EXIT_GARBAGEMEMORY 16 +/* This is the final call for the garbage collector to check, if heap memory was not released. + ulParam1: Not used + ulParam2: Not used +*/ + +/* + CH_XXX Hooks: Used for broadcast commands (e.g. cyclic operations). + */ +#define CH_COMM_CYCLE 20 +/* Called every main cycle period. Can be used for background executions. + ulParam1: Not used + ulParam2: Not used +*/ + +#define CH_ON_IMPORT 23 +/* Called for components to import new functions from a new loaded component + ulParam1: char *: Pointer to component name + ulParam2: Not used +*/ + +#define CH_ON_IMPORT_RELEASE 24 +/* Called for components to release imported functions from a component that will be unloaded + ulParam1: char *: Pointer to component name + ulParam2: Not used +*/ + +#define CH_ON_LOAD_COMPONENT 25 +/* Called after loading a new component + ulParam1: char *: Pointer to component name + ulParam2: Not used +*/ + +#define CH_ON_UNLOAD_COMPONENT 26 +/* Called before unloading a component + ulParam1: char *: Pointer to component name + ulParam2: Not used +*/ + +#define CH_ON_REGISTER_INSTANCE 27 +/* Called after register a new instance + ulParam1: CLASSID: ClassId of instance + ulParam2: IBase *: Pointer to IBase +*/ + +#define CH_ON_UNREGISTER_INSTANCE 28 +/* Called before unregister a new instance + ulParam1: CLASSID: ClassId of instance + ulParam2: IBase *: Pointer to IBase +*/ + +#define CH_ON_LICENSE_FCTS_REGISTERED 29 +/* + Called after the functionpointers from the license-library + have been registered to the runtime. +*/ + +#define CH_ON_LICENSE_FCTS_REGISTERED2 290 +/* + Called after CH_ON_LICENSE_FCTS_REGISTERED. +*/ + +#define CH_ON_LICENSE_FCTS_LEGACY_REGISTERED 30 +/* + Called after the functionpointers from the license-library + have been registered to the runtime. +*/ + +#define CH_SAFEMODE 4000 +/* + Called when a component fails to resolve its required import functions during startup of the runtime system. In this case, the system is not stable any more. + Every component should check safety. + After entering the safemode, at least the communication should work and so for example a service engineer can investigate the reason for this error. + The logger should work too. + + IMPORTANT NOTE: + It is important, that the IEC-application(s) are not loaded or at least are not started after entering the safemode! This is still implemented in the CmpApp component. + + ulParam1: Not used + ulParam2: Not used +*/ + +/** +* Hook table +* +* This is the table of all hooks with its corresponding name (see CM_HOOK_TABLE). +* +* NOTE: +* The init and exit hooks are defined here in the order they are executed during startup and shutdown! +* +* +*/ +#define CM_INIT_HOOK_TABLE { CH_INIT_SYSTEM, "CH_INIT_SYSTEM" },\ + { CH_INIT_SYSTEM2, "CH_INIT_SYSTEM2" },\ + { CH_INIT, "CH_INIT" },\ + { CH_POST_INIT, "CH_POST_INIT" },\ + { CH_PRE_INIT2, "CH_PRE_INIT2" },\ + { CH_INIT2, "CH_INIT2" },\ + { CH_PRE_INIT3, "CH_PRE_INIT3" },\ + { CH_INIT3, "CH_INIT3" },\ + { CH_INIT_SYSTEM_TASKS, "CH_INIT_SYSTEM_TASKS" },\ + { CH_INIT_TASKS, "CH_INIT_TASKS" },\ + { CH_INIT_COMM, "CH_INIT_COMM" },\ + { CH_INIT_FINISHED, "CH_INIT_FINISHED" } + +#define CM_COMM_CYCLE_HOOK { CH_COMM_CYCLE, "CH_COMM_CYCLE" } + +#define CM_EXIT_HOOK_TABLE { CH_EXIT_COMM, "CH_EXIT_COMM" },\ + { CH_EXIT_TASKS, "CH_EXIT_TASKS" },\ + { CH_EXIT_SYSTEM_TASKS, "CH_EXIT_SYSTEM_TASKS" },\ + { CH_EXIT3, "CH_EXIT3" },\ + { CH_EXIT2, "CH_EXIT2" },\ + { CH_EXIT, "CH_EXIT" },\ + { CH_EXIT_SYSTEM2, "CH_EXIT_SYSTEM2" },\ + { CH_EXIT_SYSTEM, "CH_EXIT_SYSTEM" },\ + { CH_EXIT_GARBAGEMEMORY, "CH_EXIT_GARBAGEMEMORY" } + +#define CM_EXTENDED_HOOK_TABLE { CH_ON_IMPORT, "CH_ON_IMPORT" }, \ + { CH_ON_IMPORT_RELEASE, "CH_ON_IMPORT_RELEASE" }, \ + { CH_ON_LOAD_COMPONENT, "CH_ON_LOAD_COMPONENT" }, \ + { CH_ON_UNLOAD_COMPONENT, "CH_ON_UNLOAD_COMPONENT" }, \ + { CH_ON_REGISTER_INSTANCE, "CH_ON_REGISTER_INSTANCE" }, \ + { CH_ON_UNREGISTER_INSTANCE, "CH_ON_UNREGISTER_INSTANCE" }, \ + { CH_ON_LICENSE_FCTS_REGISTERED, "CH_ON_LICENSE_FCTS_REGISTERED" }, \ + { CH_ON_LICENSE_FCTS_REGISTERED2, "CH_ON_LICENSE_FCTS_REGISTERED2" }, \ + { CH_ON_LICENSE_FCTS_LEGACY_REGISTERED, "CH_ON_LICENSE_FCTS_LEGACY_REGISTERED" }, \ + { CH_SAFEMODE, "CH_SAFEMODE" } \ + +#define CM_HOOK_TABLE {\ + CM_INIT_HOOK_TABLE,\ + CM_COMM_CYCLE_HOOK,\ + CM_EXIT_HOOK_TABLE,\ + CM_EXTENDED_HOOK_TABLE\ + } + +/** + * Single import of interface functions + * + * These macros are used by the System-Components to import single interface functions without modifying + * the global SysXXXDep.m4 files. + * + * ATTENTION: + * With usage of these macros, the RtsConfiguration cannot resolve this dependency anymore!!! + * So use these macros only in Sys-Components and not in standard or customer components! + * + * Usage: + * #include "Itf.h" + * USE_SINGLE_ITF() or USE_SINGLE_ITF(, ) + * USE_SINGLE_FUNCTION() + * + * static int CDECL ImportFunctions(void) + * { + * IMPORT_SINGLE_ITF(); + * IMPORT_SINGLE_FUNCTION(); + * return ERR_OK; + * } + * + */ +#ifdef CPLUSPLUS + #define USE_SINGLE_ITF(Interface_) ITF_##Interface_ + + #define IMPORT_SINGLE_ITF(Interface_) \ + {\ + IBase *pIBase_;\ + RTS_RESULT Result_;\ + if (pI##Interface_ == NULL && s_pfCMCreateInstance != NULL) \ + { \ + pIBase_ = (IBase *)s_pfCMCreateInstance(CLASSID_C##Interface_, &Result_); \ + if (pIBase_ != NULL) \ + {\ + pI##Interface_ = (I##Interface_ *)pIBase_->QueryInterface(pIBase_, ITFID_I##Interface_, &Result_); \ + pIBase_->Release(pIBase_); \ + }\ + } \ + } + + #define EXIT_SINGLE_ITF(Interface_) \ + {\ + IBase *pIBase_;\ + RTS_RESULT exitResult_;\ + if (pI##Interface_ != NULL) \ + { \ + pIBase_ = (IBase *)pI##Interface_->QueryInterface(pI##Interface_, ITFID_IBase, &exitResult_); \ + if (pIBase_ != NULL && exitResult_ == ERR_OK) \ + { \ + pIBase_->Release(pIBase_); \ + if (pIBase_->Release(pIBase_) == 0) /* The object will be deleted here! */ \ + pI##Interface_ = NULL; \ + } \ + } \ + } + + #define IMPORT_SINGLE_ITF2(Class_, Interface_) \ + {\ + IBase *pIBase_;\ + RTS_RESULT Result_;\ + if (pI##Interface_ == NULL && s_pfCMCreateInstance != NULL) \ + { \ + pIBase_ = (IBase *)s_pfCMCreateInstance(CLASSID_C##Class_, &Result_); \ + if (pIBase_ != NULL) \ + {\ + pI##Interface_ = (I##Interface_ *)pIBase_->QueryInterface(pIBase_, ITFID_I##Interface_, &Result_); \ + pIBase_->Release(pIBase_); \ + }\ + } \ + } + + #define EXIT_SINGLE_ITF2(Class_, Interface_) \ + {\ + IBase *pIBase_;\ + RTS_RESULT exitResult_;\ + if (pI##Interface_ != NULL) \ + { \ + pIBase_ = (IBase *)pI##Interface_->QueryInterface(pI##Interface_, ITFID_IBase, &exitResult_); \ + if (pIBase_ != NULL && exitResult_ == ERR_OK) \ + { \ + pIBase_->Release(pIBase_); \ + if (pIBase_->Release(pIBase_) == 0) /* The object will be deleted here! */ \ + pI##Interface_ = NULL; \ + } \ + } \ + } +#else + #define USE_SINGLE_ITF(Interface_) + #define IMPORT_SINGLE_ITF(Interface_) + #define EXIT_SINGLE_ITF(Interface_) + #define IMPORT_SINGLE_ITF2(Class_, Interface_) + #define EXIT_SINGLE_ITF2(Class_, Interface_) +#endif + +#define USE_SINGLE_FUNCTION(Function) USE_##Function +#define IMPORT_SINGLE_FUNCTION(Function) GET_##Function(0) +#define EXIT_SINGLE_FUNCTION(Function) + + +#if defined(__cplusplus) +} +#endif + +#endif /*__CMPITF_H__*/ diff --git a/ExtensionSDK/include/CmpStd.h b/ExtensionSDK/include/CmpStd.h new file mode 100644 index 0000000..fb56572 --- /dev/null +++ b/ExtensionSDK/include/CmpStd.h @@ -0,0 +1,641 @@ +/* + * this is a special header for the SL extension API!!! + * + * Copyright (c) 2017-2020 CODESYS Development GmbH, Copyright (c) 1994-2016 3S-Smart Software Solutions GmbH. All rights reserved. + * + */ + +#ifndef __RTSSTD_H__ +#define __RTSSTD_H__ + + +#if defined(__amd64__) + #define TRG_X64 + #define TRG_64BIT +#elif defined(__arm__) + #define TRG_ARM +#elif defined(__aarch64__) + #define TRG_ARM + #define TRG_64BIT +#elif defined(i386) + #error "32 bit X86 is not supported!" +#else + #error "Unknown architecture!" +#endif + +#define LINUX + +#define CDECL +#define __cdecl CDECL /*necessary for sqlite in CmpCAAStorage*/ +#define STDCALL +#define HUGEPTR + +/****** OS *****/ +#define SYSTARGET_OS_LINUX + +/*** types ***/ +#ifndef STDINT_H_UINTPTR_T_DEFINED + #define STDINT_H_UINTPTR_T_DEFINED +#endif +typedef unsigned short RTS_WCHAR; +#define RTS_WCHAR_DEFINED + +#define INTEL_BYTE_ORDER + + +#include +#include +#include +#include +#include +#include +#include + + + +/** + * set default register width + */ +#ifndef RTS_REGISTER_WIDTH + #if defined(TRG_C16X) || defined(TRG_DSP) + #define RTS_REGISTER_WIDTH 16 + #elif defined(TRG_64BIT) || defined(TRG_IA64) + #define RTS_REGISTER_WIDTH 64 + #else + #define RTS_REGISTER_WIDTH 32 + #endif +#endif + +#if RTS_REGISTER_WIDTH == 64 && !defined (SIZEOF_LONG) + #if defined (SYSTARGET_OS_WINDOWS) || defined (SYSTARGET_OS_WINDOWS_RTE) || defined (SYSTARGET_OS_WINDOWS_CE) + #define SIZEOF_LONG 4 + #else + #define SIZEOF_LONG 8 + #endif +#endif + +#include + +/** + * Redefine UINT32_C(), INT16_C, ..., + * as many compilers are defining this in a bad way. They + * are using type-casts to get the correct data-width. This + * makes it impossible to use for some pedantic C-Compilers. + */ +#ifdef INT64_C + #undef INT64_C +#endif +#ifdef UINT64_C + #undef UINT64_C +#endif +#ifdef INT32_C + #undef INT32_C +#endif +#ifdef UINT32_C + #undef UINT32_C +#endif +#ifdef INT16_C + #undef INT16_C +#endif +#ifdef UINT16_C + #undef UINT16_C +#endif +#ifdef INT8_C + #undef INT8_C +#endif +#ifdef UINT8_C + #undef UINT8_C +#endif + +#define INT64_C(x) (RTS_I64_CONST(x)) +#define UINT64_C(x) (RTS_UI64_CONST(x)) +#define INT32_C(x) (x ## L) +#define UINT32_C(x) (x ## UL) +#define INT16_C(x) (x) +#define UINT16_C(x) (x ## U) +#define INT8_C(x) (x) +#define UINT8_C(x) (x ## U) + +#define RTS_IEC_BOOL_C(x) (x) +#define RTS_IEC_BYTE_C(x) (UINT8_C(x)) +#define RTS_IEC_SINT_C(x) (INT8_C(x)) +#define RTS_IEC_USINT_C(x) (UINT8_C(x)) +#define RTS_IEC_INT_C(x) (INT16_C(x)) +#define RTS_IEC_UINT_C(x) (UINT16_C(x)) +#define RTS_IEC_DINT_C(x) (INT32_C(x)) +#define RTS_IEC_UDINT_C(x) (UINT32_C(x)) +#define RTS_IEC_LINT_C(x) (INT64_C(x)) +#define RTS_IEC_ULINT_C(x) (UINT64_C(x)) +#define RTS_IEC_WORD_C(x) (UINT16_C(x)) +#define RTS_IEC_DWORD_C(x) (UINT32_C(x)) +#define RTS_IEC_LWORD_C(x) (UINT64_C(x)) +#define RTS_IEC_REAL_C(x) (x) +#define RTS_IEC_LREAL_C(x) (x) +#ifdef TRG_64BIT +#define RTS_IEC_XINT_C(x) (INT64_C(x)) +#define RTS_IEC_UXINT_C(x) (UINT64_C(x)) +#define RTS_IEC_XWORD_C(x) (UINT64_C(x)) +#else +#define RTS_IEC_XINT_C(x) (INT32_C(x)) +#define RTS_IEC_UXINT_C(x) (UINT32_C(x)) +#define RTS_IEC_XWORD_C(x) (UINT32_C(x)) +#endif + +/** + * Define some more exotic types, which are missing + * in many versions of stdint.h. + */ +#if !defined(STDINT_H_UINTPTR_T_DEFINED) +/* Note: If your compiler complains about a "redefinition" + * or s.th. similar here, you may set the defines + * _UINTPTR_T, _PTRDIFF_T, ... in your sysdefines.h. + */ + #ifndef _UINTPTR_T + typedef uint32_t uintptr_t; + #define _UINTPTR_T + #endif + #ifndef _PTRDIFF_T + typedef int32_t ptrdiff_t; + #define _PTRDIFF_T + #endif + #ifndef _INTPTR_T + typedef ptrdiff_t intptr_t; + #define _INTPTR_T + #endif + #define STDINT_H_UINTPTR_T_DEFINED +#endif /*!defined(STDINT_H_UINTPTR_T_DEFINED)*/ + +/* Format modifiers for integral types */ +#ifndef ULONG_MAX +# include +# ifndef ULONG_MAX +# error ULONG_MAX does not exist in limits.h! +# endif +#endif + +/* + * Some basic definitions + */ + +#ifndef NULL +# define NULL 0L +#endif + +#ifndef TRUE +# define TRUE 1 +#endif + +#ifndef FALSE +# define FALSE 0 +#endif + +/*lint -e666 -e506 */ +#ifndef MIN +# define MIN(x,y) ((x)<(y)?(x):(y)) +#endif + +#ifndef MAX +# define MAX(x,y) ((x)>(y)?(x):(y)) +#endif + +#ifndef RTS_SETRESULT +# define RTS_SETRESULT(p,r) do { if(p) *(p)=r; } while(0) +#endif + +#ifndef RTS_GETRESULT +# define RTS_GETRESULT(Return,Result) (Result == ERR_OK ? (Return) : ((Return) ? Result : Result)) +#endif + +#ifndef LOWWORD +# define LOWWORD(p) ((uint16_t)((uint32_t)(p) & 0x0000FFFF)) +#endif + +#ifndef HIGHWORD +# define HIGHWORD(p) ((uint16_t)(((uint32_t)(p)>>16) & 0x0000FFFF)) +#endif + + +/* Operations on flags */ +#ifndef RTS_SETFLAGS + #define RTS_SETFLAGS(value, flags) (value |= (flags)) +#endif +#ifndef RTS_SETFLAG + #define RTS_SETFLAG(value, flag) RTS_SETFLAGS(value, flag) +#endif + +#ifndef RTS_RESETFLAGS + #define RTS_RESETFLAGS(value, flags) (value &= ~(flags)) +#endif +#ifndef RTS_RESETFLAG + #define RTS_RESETFLAG(value, flag) RTS_RESETFLAGS(value, flag) +#endif + +#ifndef RTS_HASFLAGS + #define RTS_HASFLAGS(value, flags) ((value & (flags)) == (flags)) +#endif +#ifndef RTS_HASFLAG + #define RTS_HASFLAG(value, flag) (value & (flag)) +#endif + + + +#ifndef ALIGN_MEMORY +# define ALIGN_MEMORY(pMemory) ((void *)(((((uintptr_t)(pMemory) + sizeof(void*) - 1) / sizeof(void*)) * sizeof(void*)))) +#endif + +#ifndef ALIGN_MEMORY_SIZE +# define ALIGN_MEMORY_SIZE(pMemory, iSize) ((iSize) - (((((uintptr_t)(pMemory) + sizeof(void*) - 1) / sizeof(void*)) * sizeof(void*)) - (uintptr_t)(pMemory))) +#endif + +#ifndef ALIGN_MEMORY2 +# define ALIGN_MEMORY2(pMemory, Modulo) ((void *)((((uintptr_t)(pMemory) + (Modulo) - 1) / (uintptr_t)(Modulo)) * (uintptr_t)(Modulo))) +#endif + +#ifndef ALIGN_MEMORY2_BACK +# define ALIGN_MEMORY2_BACK(pMemory, Modulo) ((void *)(((uintptr_t)(pMemory) / (uintptr_t)(Modulo)) * (uintptr_t)(Modulo))) +#endif + +#ifndef ALIGN_MEMORY_SIZE2 +# define ALIGN_MEMORY_SIZE2(pMemory, iSize, Modulo) ((iSize) - (((((uintptr_t)(pMemory) + (Modulo) - 1) / sizeof(void*)) * (Modulo)) - (uintptr_t)(pMemory))) +#endif + +#ifndef ALIGN_SIZE +/* NOTE: it seems like this operation can be made without a comparison: */ +/* #define ALIGN_SIZE(Size, Modulo) (( (Size) + ((Modulo) - 1) ) / (Modulo)) * (Modulo) */ +# define ALIGN_SIZE(Size, Modulo) /*lint -e{506} */(((Size) % (Modulo)) ? ((Size) + ((Modulo) - ((Size) % (Modulo)))) : (Size)) +#endif + +#ifndef RTS_VSNPRINTF + #if defined(RTS_VSNPRINTF_NOT_AVAILABLE) + #define RTS_VSNPRINTF(s,len,format,arglist) vsprintf(s,format,arglist) + #else + #define RTS_VSNPRINTF(s,len,format,arglist) vsnprintf(s,len,format,arglist) + #endif +#endif + +#ifndef va_copy + #define va_copy(destination, source) ((destination) = (source)) +#endif + + +#define CONCAT(x,y) x##y + +/* Some preprocessors do not allow to place such a macro within other macros */ +/* and/or pragmas. */ +#define ____QUOTE____(x) #x +#define QUOTE(x) ____QUOTE____(x) + +#ifdef INTEL_BYTE_ORDER +# define SWAP16u(x) (x) +# define SWAP16s(x) (x) +# define SWAP32u(x) (x) +# define SWAP32s(x) (x) +#elif defined(MOTOROLA_BYTE_ORDER) +# define SWAP16u(x) ( (uint16_t)((((x) & 0xFF)<<8) | (((x) & 0xFF00) >> 8)) ) +# define SWAP16s(x) ( (int16_t)((((x) & 0xFF)<<8) | (((x) & 0xFF00) >> 8)) ) +# define SWAP32u(x) ( (uint32_t)((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)) ) +# define SWAP32s(x) ((int32_t)((((uint32_t)(x)) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)) +#else + #error "No byte order defined for the current target" +#endif + + + +#include "CmpErrors.h" + +#define CAL_CMGETAPI(name) ERR_OK +#define CAL_CMEXPAPI(name) ERR_OK + +typedef void HUGEPTR(CDECL *RTS_VOID_FCTPTR)(void); + + +/* + * Runtime system basic typedefinitions. + * Defines some types with special meaning. Systems not using standard type sizes + * must redefine this types in sysdefines.h and set BASETYPES_DEFINED + */ + +#ifndef RTS_I64_CONST + #define RTS_I64_CONST(a) (a##LL) +#endif +#ifndef RTS_UI64_CONST + #define RTS_UI64_CONST(a) (a##ULL) +#endif + +#ifndef BASETYPES_DEFINED +# define BASETYPES_DEFINED + + typedef int8_t RTS_I8; /* Signed 8 bit value */ + typedef int16_t RTS_I16; /* Signed 16 bit value */ +#ifndef RTS_I32_DEFINED + #define RTS_I32_DEFINED + typedef int32_t RTS_I32; /* Signed 32 bit value */ +#endif + + typedef uint8_t RTS_UI8; /* Unsigned 8 bit value */ +# define RTS_UI8_MAX (RTS_UI8)(~((RTS_UI8)0)) + + typedef uint16_t RTS_UI16; /* Unsigned 16 bit value */ +# define RTS_UI16_MAX (RTS_UI16)(~((RTS_UI16)0)) + +#ifndef RTS_UI32_DEFINED + #define RTS_UI32_DEFINED + typedef uint32_t RTS_UI32; /* Unsigned 32 bit value */ +#endif +# define RTS_UI32_MAX (RTS_UI32)(~((RTS_UI32)0)) + +#ifndef IEEE754TYPES_DEFINED +# define IEEE754TYPES_DEFINED + typedef float RTS_REAL32; /* 32 bit floating point value */ + typedef double RTS_REAL64; /* 64 bit floating point value */ + #define RTS_REAL32_MAX 3.4028234e+38 + #define RTS_REAL64_MAX 1.7976931348623157e+308 +#endif + + typedef void* RTS_HANDLE; /* Handle for files, semaphores, ... Usually the native integer type of the platform*/ + #define RTS_INVALID_HANDLE ((RTS_HANDLE)(~((uintptr_t)0))) + + typedef RTS_UI32 RTS_RESULT; /* Result type for most functions. At least 16 bit. Should be the natural integer of a platform. */ + + typedef uintptr_t RTS_UINTPTR; /* Unsigned integral type that can hold a pointer */ + #define RTS_UINTPTR_MAX (RTS_UINTPTR)(~((RTS_UINTPTR)0)) + + typedef intptr_t RTS_INTPTR; /* Signed integral type that can hold a pointer */ + #define RTS_INTPTR_MAX (RTS_INTPTR)(~((RTS_INTPTR)0)) + + typedef ptrdiff_t RTS_PTRDIFF; /* Signed integral type that can hold an array index */ + #define RTS_PTRDIFF_MAX (RTS_PTRDIFF)(~((RTS_PTRDIFF)0)) + +#ifndef RTS_SIZE_DEFINED + #define RTS_SIZE_DEFINED + typedef size_t RTS_SIZE; /* Unsigned integral type that can hold a buffer offset */ +#endif + #define RTS_SIZE_MAX (RTS_SIZE)(~((RTS_SIZE)0)) + +/* Type definition of RTS_SSIZE should be changed to standard datatype ssize_t, if available on any target! */ +#ifndef RTS_SSIZE_DEFINED + #define RTS_SSIZE_DEFINED + typedef intptr_t RTS_SSIZE; /* integral type that can hold a buffer offset */ +#endif + #define RTS_SSIZE_MAX (RTS_SSIZE)(~((RTS_SSIZE)0)) + + typedef RTS_UINTPTR RTS_TIME; /* Coordinated Universal Time (UTC) */ + + typedef int RTS_INT; /* Data type has no constant size, so be careful in sharing shuch datatypes with IEC! */ + typedef int RTS_BOOL; /* Boolean value (TRUE or FALSE). For best performance use platform specific int. + Data type has no constant size, so be carful in sharing shuch datatypes with IEC! */ +#if defined(RTS_DISABLE_64BIT_SUPPORT) && !defined(SYSINTERNAL_DISABLE_64BIT) + #define SYSINTERNAL_DISABLE_64BIT +#endif + +#if !defined(BASE64BITTYPES_DEFINED) && !defined(SYSINTERNAL_DISABLE_64BIT) +# define BASE64BITTYPES_DEFINED + typedef uint64_t RTS_UI64; + typedef int64_t RTS_I64; + #define RTS_UI64_MAX (RTS_UI64)(~((RTS_UI64)0)) + #define RTS_I64_MAX (RTS_I64)(~((RTS_I64)0)) +#endif + + typedef char RTS_CSTRING; + typedef char RTS_UTF8STRING; + +# ifndef RTS_WCHAR_DEFINED +# define RTS_WCHAR_DEFINED + typedef wchar_t RTS_WCHAR; /* wide character value. We expect 2 bytes unicode here! */ +# endif /*RTS_WCHAR_DEFINED*/ + +# ifndef RTS_CWCHAR_DEFINED +# define RTS_CWCHAR_DEFINED +# ifdef RTS_UNICODE + typedef RTS_WCHAR RTS_CWCHAR; +# else + typedef RTS_CSTRING RTS_CWCHAR; +# endif +# endif /*RTS_CWCHAR_DEFINED*/ + +#ifdef RTS_DEFINE_MODE_T + typedef unsigned short mode_t; +#endif +#ifdef RTS_DEFINE_GID_T + typedef short gid_t; +#endif +#ifdef RTS_DEFINE_UID_T + typedef short uid_t; +#endif +#ifdef RTS_DEFINE_ID_T + typedef intptr_t id_t; +#endif +#ifdef RTS_DEFINE_PID_T + typedef uintptr_t pid_t; +#endif +#ifdef RTS_DEFINE_OFF_T + typedef uintptr_t off_t; +#endif +#ifdef RTS_DEFINE_NLINK_T + typedef short nlink_t; +#endif + + + +#endif /*BASETYPES_DEFINED*/ + +typedef enum +{ + RTSTYPE_I8, + RTSTYPE_I16, + RTSTYPE_I32, + RTSTYPE_UI8, + RTSTYPE_UI16, + RTSTYPE_UI32, + RTSTYPE_REAL32, + RTSTYPE_REAL64, + RTSTYPE_HANDLE, + RTSTYPE_RESULT, + RTSTYPE_UINTPTR, + RTSTYPE_INTPTR, + RTSTYPE_SIZE, + RTSTYPE_PTRDIFF, + RTSTYPE_INT, + RTSTYPE_BOOL, + RTSTYPE_UI64, + RTSTYPE_I64, + RTSTYPE_CSTRING, + RTSTYPE_WCHAR, + RTSTYPE_CWCHAR +}RTS_TYPECLASS; + +typedef union +{ + RTS_I8 i8Value; + RTS_I16 i16Value; + RTS_I32 i32Value; + RTS_UI8 ui8Value; + RTS_UI16 ui16Value; + RTS_UI32 ui32Value; + RTS_REAL32 real32Value; + RTS_REAL64 real64Value; + RTS_HANDLE handleValue; + RTS_RESULT resultValue; + RTS_UINTPTR uintptrValue; + RTS_INTPTR intptrValue; + RTS_SIZE sizeValue; + RTS_PTRDIFF ptrdiffValue; + RTS_INT intValue; + RTS_BOOL boolValue; + RTS_UI64 ui64Value; + RTS_I64 i64Value; + RTS_CSTRING *cstringValue; + RTS_WCHAR *wstringValue; + RTS_CWCHAR *cwstringValue; +}RTS_VALUE; + +typedef struct +{ + RTS_TYPECLASS typeClass; + RTS_VALUE value; +}RTS_TYPEDVALUE; + + +/* + * IEC basic typedefinitions. + * Defines all datatypes used in IEC programs. Datatypes must match to CoDeSys compiler. + * Systems that overloads standard types must redefine this types in sysdefines.h and set IECBASETYPES_DEFINED + */ + +typedef void HUGEPTR(CDECL *RTS_VOID_FCTPTR)(void); + +#ifndef IECBASETYPES_DEFINED +#define IECBASETYPES_DEFINED + +# define RTS_IEC_VOID_FCTPTR RTS_VOID_FCTPTR + typedef void* RTS_IEC_VOIDPTR; + + typedef RTS_I8 RTS_IEC_BOOL; + typedef RTS_I8 RTS_IEC_SINT; + typedef RTS_UI8 RTS_IEC_USINT; + typedef RTS_UI8 RTS_IEC_BYTE; + typedef RTS_I16 RTS_IEC_INT; + typedef RTS_UI16 RTS_IEC_UINT; + typedef RTS_UI16 RTS_IEC_WORD; + typedef RTS_I32 RTS_IEC_DINT; + typedef RTS_UI32 RTS_IEC_UDINT; + typedef RTS_UI32 RTS_IEC_DWORD; + + typedef RTS_UI32 RTS_IEC_TIME; + typedef RTS_UI32 RTS_IEC_TIME_OF_DAY; + typedef RTS_UI32 RTS_IEC_TOD; + typedef RTS_UI32 RTS_IEC_DATE_AND_TIME; + typedef RTS_UI32 RTS_IEC_DT; + typedef RTS_UI32 RTS_IEC_DATE; + + typedef RTS_I64 RTS_IEC_LINT; + typedef RTS_UI64 RTS_IEC_ULINT; + typedef RTS_UI64 RTS_IEC_LWORD; + typedef RTS_UI64 RTS_IEC_LTIME; + + typedef RTS_SIZE RTS_IEC_XWORD; + typedef RTS_UINTPTR RTS_IEC_UXINT; + typedef RTS_PTRDIFF RTS_IEC_XINT; + + typedef RTS_REAL32 RTS_IEC_REAL; + typedef RTS_REAL64 RTS_IEC_LREAL; + + typedef RTS_CSTRING RTS_IEC_STRING; +# ifdef RTS_UNICODE + typedef RTS_WCHAR RTS_IEC_WSTRING; +# else + typedef RTS_UI16 RTS_IEC_WSTRING; +# endif + typedef RTS_CWCHAR RTS_IEC_CWCHAR; + + typedef RTS_SIZE RTS_IEC_SIZE; + typedef RTS_HANDLE RTS_IEC_HANDLE; + typedef RTS_IEC_UDINT RTS_IEC_RESULT; +#endif /*IECBASETYPES_DEFINED*/ + + +#ifndef RTS_MEM_REGION_DEFINED +#define RTS_MEM_REGION_DEFINED + +/** + * + * Abstract Memory Region. + * + */ +typedef struct tagRTS_MEM_REGION +{ + /* base address of the region */ + RTS_UINTPTR base; + + /* region size */ + RTS_SIZE size; + +} RTS_MEM_REGION; +#endif + +#ifndef EXT_FUNCT_REF_DEFINED +#define EXT_FUNCT_REF_DEFINED +/** + * Exported function descriptor + */ +typedef struct tagCMP_EXT_FUNCTION_REF +{ + /* pointer to an exported function */ + RTS_VOID_FCTPTR pfExtCall; + + /* name of an exported function */ + const char* pszExtCallName; + + /* signature */ + RTS_UI32 signature; + + /* version */ + RTS_UI32 version; + +} CMP_EXT_FUNCTION_REF; +#endif + +/* The CMGetAPI2/CMGetAPI3 importOptions parameter flag which specifies an import */ +/* as a required function (error if it is unresolved) */ +#define CM_IMPORT_REQUIRED_FUNCTION 0 + +/* The CMGetAPI2/CMGetAPI3 importOptions parameter flag which specifies an import */ +/* as an external libray function */ +#define CM_IMPORT_EXTERNAL_LIB_FUNCTION 1 + +/* The CMGetAPI2/CMGetAPI3 importOptions parameter flag which specifies an import */ +/* as an optional function */ +#define CM_IMPORT_OPTIONAL_FUNCTION 2 + +/* Imported function belongs to an external libray */ +#define ImportIsExternalLibFunction(par) (0 != ((par) & CM_IMPORT_EXTERNAL_LIB_FUNCTION)) + +/* Imported function is optional */ +#define ImportIsOptionalFunction(par) (0 != ((par) & CM_IMPORT_OPTIONAL_FUNCTION)) + +#define RTS_SIZEOF sizeof +#define RTS_GET_WORD_OFFSET(typesize) (typesize) +#define RTS_GET_WORD_SIZE RTS_GET_WORD_OFFSET +#define RTS_GET_BYTE_OFFSET(offset) (offset) +#define RTS_GET_BYTE_SIZE(size) (size) +#define RTS_MEMSET memset +#define RTS_ALIGN_4BYTES 4 +#define RTS_BITS_IN_BYTE 8 + +#define RTS_EMPTY_STRING "" +#define RTS_IS_EMPTY_STRING(s) ((char *)s == NULL || strcmp((char *)s, RTS_EMPTY_STRING) == 0) + +#define RTS_TIMEOUT_INFINITE (~(RTS_UI32)0) +#define RTS_TIMEOUT_DEFAULT (RTS_UI32)(-2) +#define RTS_TIMEOUT_NO_WAIT (0) + +#define RTS_INVALID_FILETRANSFER (RTS_UI32)(-1) + +#include "CmpItf.h" + + +#ifndef COMPONENT_NAME_POSTFIX + #define COMPONENT_NAME_POSTFIX +#endif + +#endif /*__RTSSTD_H__*/ diff --git a/ExtensionSDK/m4/Exports.m4 b/ExtensionSDK/m4/Exports.m4 new file mode 100644 index 0000000..7427e5b --- /dev/null +++ b/ExtensionSDK/m4/Exports.m4 @@ -0,0 +1,1514 @@ +include(`Util.m4') dnl +divert(-1) +% ----------------------------------- +% Copyright: Copyright CODESYS Development GmbH +% ----------------------------------- +changecom(`%') +% ----------------------------- +% Define some diverts that gather information about some special features +% and initialize those diversions +% ----------------------------- +define(DIVERT_INTERFACEDEF_C,3) +define(DIVERT_ENDINTERFACEDEF_C,4) +define(DIVERT_INTERFACEDEF,5) +define(DIVERT_ENDINTERFACEDEF,6) +define(DIVERT_ENTRYFUN,7) +define(DIVERT_ENDFILE,100) + + +% ----------------------------- +% The SET_PLACEHOLDER_NAME macro is to be ignored. It +% is used by the delivery manager only. +% ----------------------------- +define(`SET_PLACEHOLDER_NAME',`dnl') +') + +define(`GEN_INCLUDE', dnl +`ifelse(`-1',regexp(`$1',`\.m4$'), dnl + `error(`m4:'__file__`('__line__`):The first parameter "'$1`" is not a .m4 file + ')',dnl +`#include "patsubst(`$1',`\.m4$',`\.h')"')') + +define(`REF_ITF', `GEN_INCLUDE($1)') + +% Mark safety relevant component, from which the IBase is used +% in a safety critical manner. +define(`INTERFACEDEF', +`divert(DIVERT_INTERFACEDEF) +#ifdef CPLUSPLUS +class `I'$1 : public IBase +{ + public: +divert +divert(DIVERT_INTERFACEDEF_C) + +ifelse($1,`CmpIoDrv',`/* */')dnl +ifelse($1,`CmpIoDrvC',`/* */')dnl +ifelse($1,`CmpIoDrvIec',`/* */') +typedef struct +{ + IBase_C *pBase; +divert') + +define(`ENDINTERFACEDEF', +`divert(DIVERT_ENDINTERFACEDEF)dnl +}; + #ifndef `ITF_'$1 + #define `ITF_'$1 static `I'$1 *`pI'$1 = NULL; + #endif + #define `EXTITF_'$1 +#else /*CPLUSPLUS*/ + typedef `I'$1_C `I'$1; + #ifndef `ITF_'$1 + #define `ITF_'$1 + #endif + #define `EXTITF_'$1 +#endif +divert +divert(DIVERT_ENDINTERFACEDEF_C)dnl +} `I'$1_C; +divert') + +define(`SET_INTERFACE_NAME', + `define(CMP_NAME, $1)' + `define(ITFNOTDEFINED,_UPPERCASE(_TRIM($1))_NOTIMPLEMENTED)' + `define(ITFEXTERNAL,_UPPERCASE(_TRIM($1))_EXTERNAL) +`#ifndef _'_UPPERCASE(_TRIM($1))`ITF_H_' +`#define _'_UPPERCASE(_TRIM($1))`ITF_H_' +` +#include "CmpStd.h"' +define(`_INTERFACE_NAME',`I$1') +INTERFACEDEF($1) +ENDINTERFACEDEF($1) +divert(DIVERT_ENDFILE) +`#ifdef CPLUSPLUS_ONLY' +` #undef CPLUSPLUS_ONLY' +`#endif' + +`#endif /*_'_UPPERCASE(_TRIM($1))`ITF_H_*/' +divert +') + + +% +% Call the DEF_API Makro with the following parameters: +% DEF_API(, , , ) +% +% Example: +% DEF_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`REGISTER_API2', `s_pfCMRegisterAPI2( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), ifelse($6,1,_CHKSUM($1, $2, $4),$6), ifelse(eval($# < 7),1,0,$7))' )'dnl +`define(`GET_API', `s_pfCMGetAPI( "$3", (RTS_VOID_FCTPTR *)&pf$3, _CHKSUM($1, $2, $4))' )'dnl +`define(`GET_API2', `s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, ifelse(EXTERNAL,1,1,0), ifelse($6,0,_CHKSUM($1, $2, $4),$6), ifelse(eval($# < 7),1,0,$7))' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6),`1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($5, `1',`typedef $1 ($2 CDECL_EXT* _FUN_PTR_IEC($3)) $4;',`typedef $1 ($2 * _FUN_PTR($3)) $4;'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) ifelse(_TRIM($1),`void',`',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,ifelse(eval($# < 7),`1',REGISTER_API,REGISTER_API2),CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(eval($# < 7),`1',REGISTER_API,REGISTER_API2)' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3 $3' + `#define CHK_`'CMP_NAME`'$3 TRUE' + `#define EXP_`'CMP_NAME`'$3 ifelse(EXTERNAL,1,ifelse(eval($# < 7),`1',REGISTER_API,REGISTER_API2),ERR_OK)' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,ifelse(eval($# < 7),`1',REGISTER_API,REGISTER_API2),CAL_EXPAPI)' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6),`1',`_FUN_PTR($3)',`_FUN_PTR_IEC($3)') pf$3;' + `#define EXT_'$3 `extern ifelse(eval($# < 6),`1',`_FUN_PTR($3)',`_FUN_PTR_IEC($3)') pf$3'; + `#define GET_$3(fl) ifelse(eval($# < 7),1, `s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), ifelse(eval($# < 6),1,0,`ifelse($6,0,_CHKSUM($1, $2, $4),$6)'), ifelse(eval($# < 7),1,0,$7))',`s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl) | CM_IMPORT_EXTERNAL_LIB_FUNCTION, ifelse($6,0,_CHKSUM($1, $2, $4),$6), ifelse(eval($# < 7),1,0,$7))')' + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 ifelse(eval($# < 7),`1',REGISTER_API, REGISTER_API2)' +`#endif' +) + +% +% Call the DEF_STATIC_API Makro with the following parameters: +% DEF_STATIC_API(, , , ) +% +% Example: +% DEF_STATIC_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_STATIC_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6),`1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3 $3' + `#define CHK_`'CMP_NAME`'$3 TRUE' + `#define EXP_`'CMP_NAME`'$3 ifelse(EXTERNAL,1,REGISTER_API,ERR_OK)' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `_FUN_PTR($3) pf$3;' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4),0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +) + +% +% Call the DEF_CREATEITF_API Makro with the following parameters: +% DEF_CREATEITF_API(, , , ) +% +% Example: +% DEF_CREATEITF_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_CREATEITF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`''$3 ``((I'CMP_NAME`*)s_pfCMCreateInstance(CLASSID_C'CMP_NAME'`, NULL))->I'$3 + `#define CHK_`'CMP_NAME`'$3 (s_pfCMCreateInstance != NULL && pI`'CMP_NAME != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_'$3 ``((I'CMP_NAME`*)s_pfCMCreateInstance(CLASSID_C'CMP_NAME'`, NULL))->I'$3 + `#define CHK_$3 (s_pfCMCreateInstance != NULL && pI`'CMP_NAME != NULL)' + `#define EXP_$3 CAL_EXPAPI' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6), `1',`_FUN_PTR($3) pf$3;', ifelse($6, `1', `_FUN_PTR($3) pf$3;'))' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4), 0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_CREATEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_DELETEITF_API Makro with the following parameters: +% DEF_DELETEITF_API(, , , ) +% +% Example: +% DEF_DELETEITF_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_DELETEITF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) ifelse(_TRIM($1),`void',`',``(((RTS_HANDLE)p0 == NULL || (RTS_HANDLE)p0 == RTS_INVALID_HANDLE) ? ERR_PARAMETER : ((I'CMP_NAME`*)p0)'->I'$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4'))))' + `#define CHK_`'CMP_NAME`'$3 TRUE' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) ifelse(_TRIM($1),`void',`',``(((RTS_HANDLE)p0 == NULL || (RTS_HANDLE)p0 == RTS_INVALID_HANDLE) ? ERR_PARAMETER : ((I'CMP_NAME`*)p0)'->I'$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4'))))' + `#define CHK_$3 TRUE' + `#define EXP_$3 CAL_EXPAPI' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6), `1',`_FUN_PTR($3) pf$3;', ifelse($6, `1', `_FUN_PTR($3) pf$3;'))' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4), 0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_HANDLEITF_API Makro with the following parameters: +% DEF_HANDLEITF_API(, , , ) +% +% Example: +% DEF_HANDLEITF_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_HANDLEITF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? pI`'CMP_NAME->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')) : ((I`'CMP_NAME*)p0)->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_`'CMP_NAME`'$3 (pI`'CMP_NAME != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? pI`'CMP_NAME->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')) : ((I`'CMP_NAME*)p0)->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 (pI`'CMP_NAME != NULL)' + `#define EXP_$3 CAL_EXPAPI' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6), `1',`_FUN_PTR($3) pf$3;', ifelse($6, `1', `_FUN_PTR($3) pf$3;'))' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4), 0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_HANDLEITF_API2 Makro with the following parameters: +% DEF_HANDLEITF_API2(, , , ) +% +% Example: +% DEF_HANDLEITF_API2(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_HANDLEITF_API2', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? pI`'CMP_NAME->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')) : ((I`'CMP_NAME*)(((IBase*)p0)->QueryInterface((IBase *)p0, ITFID_I`'CMP_NAME, (RTS_RESULT *)1)))->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_`'CMP_NAME`'$3 (pI`'CMP_NAME != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? pI`'CMP_NAME->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')) : ((I`'CMP_NAME*)(((IBase*)p0)->QueryInterface((IBase *)p0, ITFID_I`'CMP_NAME, (RTS_RESULT *)1)))->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 (pI`'CMP_NAME != NULL)' + `#define EXP_$3 CAL_EXPAPI' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6), `1',`_FUN_PTR($3) pf$3;', ifelse($6, `1', `_FUN_PTR($3) pf$3;'))' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4), 0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_HANDLEITF_API_OWNCPP Makro with the following parameters: +% DEF_HANDLEITF_API_OWNCPP(, , , ) +% +% NOTE: +% Identical to DEF_HANDLEITF_API except, that in the C++ wrapper you can use your own implementation. +% +% Example: +% DEF_HANDLEITF_API_OWNCPP(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_HANDLEITF_API_OWNCPP', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? pI`'CMP_NAME->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')) : ((I`'CMP_NAME*)p0)->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_`'CMP_NAME`'$3 (pI`'CMP_NAME != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? pI`'CMP_NAME->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')) : ((I`'CMP_NAME*)p0)->I'`$3(_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 (pI`'CMP_NAME != NULL)' + `#define EXP_$3 CAL_EXPAPI' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6), `1',`_FUN_PTR($3) pf$3;', ifelse($6, `1', `_FUN_PTR($3) pf$3;'))' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4), 0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + + +% +% Call the DEF_CREATECLASSITF_API Makro with the following parameters: +% DEF_CREATECLASSITF_API(, , , ) +% +% Example: +% DEF_CREATECLASSITF_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_CREATECLASSITF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`STATICITF_DEF $1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `p0 = (IBase *)s_pfCMCreateInstance(p1, NULL);\ + ((IBase *)p0)->hInstance = ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, NULL)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `p0 = (IBase *)s_pfCMCreateInstance(p1, NULL);\ + ((IBase *)p0)->hInstance = ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, NULL)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) `p0 = (IBase *)s_pfCMCreateInstance(p1, NULL);\ + ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, (RTS_RESULT *)1)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))' + `#define CHK_`'CMP_NAME`'$3 (s_pfCMCreateInstance != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `p0 = (IBase *)s_pfCMCreateInstance(p1, NULL);\ + ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, (RTS_RESULT *)1)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))' + `#define CHK_$3 (s_pfCMCreateInstance != NULL)' + `#define EXP_$3 ERR_OK' +`#else /* DYNAMIC_LINK */' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `p0 = (IBase *)s_pfCMCreateInstance(p1, NULL);\ + ((IBase *)p0)->hInstance = ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, NULL)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_CREATEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_CREATECLASSITF2_API Makro with the following parameters: +% DEF_CREATECLASSITF2_API(, , , ) +% +% Example: +% DEF_CREATECLASSITF2_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_CREATECLASSITF2_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`STATICITF_DEF $1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + (((IBase *)p0)->ClassId = p1) == CLASSID_INVALID ? RTS_INVALID_HANDLE :\ + (\ + (((IBase *)p0)->hInstance = ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, NULL)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))) == RTS_INVALID_HANDLE ? (s_pfCMDeleteInstance2(p1, (IBase *)p0) ? RTS_INVALID_HANDLE : RTS_INVALID_HANDLE) : \ + (\ + ((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_`'_INTERFACE_NAME`, NULL)'\ + )\ + )\ + )\ + )' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + (((IBase *)p0)->ClassId = p1) == CLASSID_INVALID ? RTS_INVALID_HANDLE :\ + (\ + (((IBase *)p0)->hInstance = ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, NULL)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))) == RTS_INVALID_HANDLE ? (s_pfCMDeleteInstance2(p1, (IBase *)p0) ? RTS_INVALID_HANDLE : RTS_INVALID_HANDLE) : \ + (\ + ((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_`'_INTERFACE_NAME`, NULL)'\ + )\ + )\ + )\ + )' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, (RTS_RESULT *)1)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))\ + )\ + )' + `#define CHK_`'CMP_NAME`'$3 (s_pfCMCreateInstance != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4'))`\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, (RTS_RESULT *)1)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))\ + )\ + )' + `#define CHK_$3 (s_pfCMCreateInstance != NULL)' + `#define EXP_$3 ERR_OK' +`#else /* DYNAMIC_LINK */' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + (((IBase *)p0)->ClassId = p1) == CLASSID_INVALID ? RTS_INVALID_HANDLE :\ + (\ + (((IBase *)p0)->hInstance = ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, NULL)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))) == RTS_INVALID_HANDLE ? (s_pfCMDeleteInstance2(p1, (IBase *)p0) ? RTS_INVALID_HANDLE : RTS_INVALID_HANDLE) : \ + (\ + ((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_`'_INTERFACE_NAME`, NULL)'\ + )\ + )\ + )\ + )' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_CREATEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +define(`NUMPARAMS_xxx',`$#') +define(`NUMPARAMS',`NUMPARAMS_xxx(_EXTRACTPARAMS($1))') +define(`MINPARAMS',`eval(NUMPARAMS(`$1') >= $2)') + +% +% Call the DEF_PRODUCECLASSITF_API Makro with the following parameters: +% DEF_PRODUCECLASSITF_API(, , , ) +% +% Example: +% DEF_PRODUCECLASSITF_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_PRODUCECLASSITF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`STATICITF_DEF $1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + (((IBase *)p0)->ClassId = p1) == 0 ? RTS_INVALID_HANDLE :\ + (\ + (((IBase *)p0)->hInstance = ((I'CMP_NAME`*)p2)'->I$3(p2, p1, ((I`'CMP_NAME*)p2)->pBase->hInstance, _MAKE_HANDLE_DUMMYPARAMLIST2(`$4', 3))) == RTS_INVALID_HANDLE ? (s_pfCMDeleteInstance2(p1, (IBase *)p0) ? RTS_INVALID_HANDLE : RTS_INVALID_HANDLE) : \ + (\ + ((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_`'_INTERFACE_NAME`, NULL)'\ + )\ + )\ + )\ + )' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + (((IBase *)p0)->ClassId = p1) == 0 ? RTS_INVALID_HANDLE :\ + (\ + (((IBase *)p0)->hInstance = ((I'CMP_NAME`*)p2)'->I$3(p2, p1, ((I`'CMP_NAME*)p2)->pBase->hInstance, _MAKE_HANDLE_DUMMYPARAMLIST2(`$4', 3))) == RTS_INVALID_HANDLE ? (s_pfCMDeleteInstance2(p1, (IBase *)p0) ? RTS_INVALID_HANDLE : RTS_INVALID_HANDLE) : \ + (\ + ((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_`'_INTERFACE_NAME`, NULL)'\ + )\ + )\ + )\ + )' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, (RTS_RESULT *)1)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))\ + )\ + )' + `#define CHK_`'CMP_NAME`'$3 (s_pfCMCreateInstance != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, (RTS_RESULT *)1)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))\ + )\ + )' + `#define CHK_$3 (s_pfCMCreateInstance != NULL)' + `#define EXP_$3 ERR_OK' +`#else /* DYNAMIC_LINK */' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + (((IBase *)p0)->ClassId = p1) == 0 ? RTS_INVALID_HANDLE :\ + (\ + (((IBase *)p0)->hInstance = ((I'CMP_NAME`*)p2)'->I$3(p2, p1, ((I`'CMP_NAME*)p2)->pBase->hInstance, _MAKE_HANDLE_DUMMYPARAMLIST2(`$4', 3))) == RTS_INVALID_HANDLE ? (s_pfCMDeleteInstance2(p1, (IBase *)p0) ? RTS_INVALID_HANDLE : RTS_INVALID_HANDLE) : \ + (\ + ((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_`'_INTERFACE_NAME`, NULL)'\ + )\ + )\ + )\ + )' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_CREATEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_PRODUCECLASSITF_API_OWNCPP Makro with the following parameters: +% DEF_PRODUCECLASSITF_API_OWNCPP(, , , ) +% +% Example: +% DEF_PRODUCECLASSITF_API_OWNCPP(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_PRODUCECLASSITF_API_OWNCPP', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`STATICITF_DEF $1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + (((IBase *)p0)->ClassId = p1) == 0 ? RTS_INVALID_HANDLE :\ + (\ + (((IBase *)p0)->hInstance = ((I'CMP_NAME`*)p2)'->I$3(p2, p1, ((I`'CMP_NAME*)p2)->pBase->hInstance, _MAKE_HANDLE_DUMMYPARAMLIST2(`$4', 3))) == RTS_INVALID_HANDLE ? (s_pfCMDeleteInstance2(p1, (IBase *)p0) ? RTS_INVALID_HANDLE : RTS_INVALID_HANDLE) : \ + (\ + ((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_`'_INTERFACE_NAME`, NULL)'\ + )\ + )\ + )\ + )' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + (((IBase *)p0)->ClassId = p1) == 0 ? RTS_INVALID_HANDLE :\ + (\ + (((IBase *)p0)->hInstance = ((I'CMP_NAME`*)p2)'->I$3(p2, p1, ((I`'CMP_NAME*)p2)->pBase->hInstance, _MAKE_HANDLE_DUMMYPARAMLIST2(`$4', 3))) == RTS_INVALID_HANDLE ? (s_pfCMDeleteInstance2(p1, (IBase *)p0) ? RTS_INVALID_HANDLE : RTS_INVALID_HANDLE) : \ + (\ + ((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_`'_INTERFACE_NAME`, NULL)'\ + )\ + )\ + )\ + )' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, (RTS_RESULT *)1)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))\ + )\ + )' + `#define CHK_`'CMP_NAME`'$3 (s_pfCMCreateInstance != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + ((I'CMP_NAME`*)((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_'_INTERFACE_NAME`, (RTS_RESULT *)1)')->I$3(_MAKE_DUMMYPARAMLIST(`$4'))\ + )\ + )' + `#define CHK_$3 (s_pfCMCreateInstance != NULL)' + `#define EXP_$3 ERR_OK' +`#else /* DYNAMIC_LINK */' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) `\ + (\ + (p0 = (IBase *)s_pfCMCreateInstance(p1, NULL)) == NULL ? RTS_INVALID_HANDLE : \ + (\ + (((IBase *)p0)->ClassId = p1) == 0 ? RTS_INVALID_HANDLE :\ + (\ + (((IBase *)p0)->hInstance = ((I'CMP_NAME`*)p2)'->I$3(p2, p1, ((I`'CMP_NAME*)p2)->pBase->hInstance, _MAKE_HANDLE_DUMMYPARAMLIST2(`$4', 3))) == RTS_INVALID_HANDLE ? (s_pfCMDeleteInstance2(p1, (IBase *)p0) ? RTS_INVALID_HANDLE : RTS_INVALID_HANDLE) : \ + (\ + ((IBase *)p0)->QueryInterface((IBase *)p0, ITFID_`'_INTERFACE_NAME`, NULL)'\ + )\ + )\ + )\ + )' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_CREATEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_DELETECLASSITF_API Makro with the following parameters: +% DEF_DELETECLASSITF_API(, , , ) +% +% Example: +% DEF_DELETECLASSITF_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_DELETECLASSITF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`STATICITF_DEF $1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_`'CMP_NAME`'$3 TRUE' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#else /* DYNAMIC_LINK */' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_DELETECLASSITF2_API Makro with the following parameters: +% DEF_DELETECLASSITF2_API(, , , ) +% +% Example: +% DEF_DELETECLASSITF2_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_DELETECLASSITF2_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`STATICITF_DEF $1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')) != ERR_OK ? \ + ERR_FAILED :\ + s_pfCMDeleteInstance2(((I`'CMP_NAME*)p0)->pBase->ClassId, ((I`'CMP_NAME*)p0)->pBase))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')) != ERR_OK ? \ + ERR_FAILED :\ + s_pfCMDeleteInstance2(((I`'CMP_NAME*)p0)->pBase->ClassId, ((I`'CMP_NAME*)p0)->pBase))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_`'CMP_NAME`'$3 TRUE' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#else /* DYNAMIC_LINK */' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')) != ERR_OK ? \ + ERR_FAILED :\ + s_pfCMDeleteInstance2(((I`'CMP_NAME*)p0)->pBase->ClassId, ((I`'CMP_NAME*)p0)->pBase))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_CLASSITF_API Makro with the following parameters: +% DEF_CLASSITF_API(, , , ) +% +% Example: +% DEF_CLASSITF_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_CLASSITF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`STATICITF_DEF $1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_`'CMP_NAME`'$3 TRUE' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#else /* DYNAMIC_LINK */' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_RETURNHANDLECLASSITF_API Makro with the following parameters: +% DEF_RETURNHANDLECLASSITF_API(, , , ) +% +% Example: +% DEF_RETURNHANDLECLASSITF_API(`RTS_HANDLE',`CDECL', `MyApiFunction', `(RTS_HANDLE hObject, int nX, void *pData)') +% ==> ((IMyInterface*)p0)->IMyInterfaceFunction(((IMyInterface*)p0)->pBase->hInstance,p1,p2,p3)) +% +define(`DEF_RETURNHANDLECLASSITF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`STATICITF_DEF $1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : ((('I`'CMP_NAME*)p0)->pBase->hInstance = ((I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4'))))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : ((('I`'CMP_NAME*)p0)->pBase->hInstance = ((I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4'))))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`'$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_`'CMP_NAME`'$3 TRUE' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : (('I`'CMP_NAME*)p0)->I$3(`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4')))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#else /* DYNAMIC_LINK */' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_OK' + `#define CAL_$3(_MAKE_DUMMYPARAMLIST(`$4')) (p0 == RTS_INVALID_HANDLE || p0 == NULL ? `'ifelse(_TRIM($1),`RTS_RESULT',`($1)ERR_PARAMETER',ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`0'))` : ((('I`'CMP_NAME*)p0)->pBase->hInstance = ((I`'CMP_NAME*)p0)->I$3(((I`'CMP_NAME*)p0)->pBase->hInstance`'ifelse(MINPARAMS(`$4',2),`1',`,',`')`'_MAKE_HANDLE_DUMMYPARAMLIST(`$4'))))' + `#define CHK_$3 TRUE' + `#define EXP_$3 ERR_OK' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_STATICITF_API Makro with the following parameters: +% DEF_STATICITF_API(, , , ) +% +% Example: +% DEF_STATICITF_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_STATICITF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`''$3 ``C'CMP_NAME::I'$3 + `#define CHK_`'CMP_NAME`'$3 TRUE' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_'$3 ``C'CMP_NAME::I'$3 + `#define CHK_$3 TRUE' + `#define EXP_$3 CAL_EXPAPI' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6), `1',`_FUN_PTR($3) pf$3;', ifelse($6, `1', `_FUN_PTR($3) pf$3;'))' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4), 0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +`divert(DIVERT_INTERFACEDEF) static $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_ITF_API Makro with the following parameters: +% DEF_ITF_API(, , , ) +% +% Example: +% DEF_ITF_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_ITF_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',ifelse(_TRIM($1),`void *',`($1)(RTS_SIZE)ERR_NOTIMPLEMENTED',`($1)ERR_NOTIMPLEMENTED')))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`''$3 ``pI'CMP_NAME->I'$3 + `#define CHK_`'CMP_NAME`''$3 ``(pI'CMP_NAME != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_'$3 ``pI'CMP_NAME->I'$3 + `#define CHK_'$3 ``(pI'CMP_NAME != NULL)' + `#define EXP_$3 CAL_EXPAPI' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6), `1',`_FUN_PTR($3) pf$3;', ifelse($6, `1', `_FUN_PTR($3) pf$3;'))' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4), 0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_ITF_API Makro with the following parameters: +% DEF_ITF_API(, , , ) +% +% Example: +% DEF_ITF_API_OWNCPP(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_ITF_API_OWNCPP', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',ifelse(_TRIM($1),`void *',`($1)(RTS_SIZE)ERR_NOTIMPLEMENTED',`($1)ERR_NOTIMPLEMENTED')))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`''$3 ``pI'CMP_NAME->I'$3 + `#define CHK_`'CMP_NAME`''$3 ``(pI'CMP_NAME != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_'$3 ``pI'CMP_NAME->I'$3 + `#define CHK_'$3 ``(pI'CMP_NAME != NULL)' + `#define EXP_$3 CAL_EXPAPI' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6), `1',`_FUN_PTR($3) pf$3;', ifelse($6, `1', `_FUN_PTR($3) pf$3;'))' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4), 0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_ITF_API Makro with the following parameters: +% DEF_ITF_API(, , , ) +% +% Example: +% DEF_ITF_API2(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_ITF_API2', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`$1 $2 CDECL_EXT $3$4;',`$1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',ifelse(_TRIM($1),`void *',`($1)(RTS_SIZE)ERR_NOTIMPLEMENTED',`($1)ERR_NOTIMPLEMENTED')))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`''$3 ``pI'CMP_NAME->I'$3 + `#define CHK_`'CMP_NAME`''$3 ``(pI'CMP_NAME != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_'$3 ``pI'CMP_NAME->I'$3 + `#define CHK_'$3 ``(pI'CMP_NAME != NULL)' + `#define EXP_$3 CAL_EXPAPI' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6), `1',`_FUN_PTR($3) pf$3;', ifelse($6, `1', `_FUN_PTR($3) pf$3;'))' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4), 0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) + +% +% Call the DEF_ITF_GLOBAL_API Makro with the following parameters: +% DEF_ITF_GLOBAL_API(, , , ) +% +% Example: +% DEF_ITF_GLOBAL_API(`int',`CDECL', `MyApiFunction', `(int nX, void *pData)') +% +define(`DEF_ITF_GLOBAL_API', +`ifelse(eval($# < 5),`0',`define(`EXTERNAL',_TRIM(`$5'))',`define(`EXTERNAL',0)')'dnl +`define(`REGISTER_API', `s_pfCMRegisterAPI( (const CMP_EXT_FUNCTION_REF*)"$3", (RTS_UINTPTR)$3, ifelse(EXTERNAL,1,1,0), _CHKSUM($1, $2, $4))' )'dnl +`define(`FCT_NOTIMPLEMENTED', `ifelse(_EXTRACTFIRSTPARAMTYPE(`$4'), `RTS_HANDLE', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPEPOINTER(`$4'), `*', `FUNCTION_NOTIMPLEMENTED2',`ifelse(_EXTRACTFIRSTPARAMTYPERTS(`$4'), `RTS_', `FUNCTION_NOTIMPLEMENTED',`FUNCTION_NOTIMPLEMENTED2')')')' )'dnl +`define(`CAL_GETAPI', `CAL_CMGETAPI( "$3" )' )'dnl +`define(`CAL_EXPAPI', `CAL_CMEXPAPI( "$3" )' )'dnl +`ifelse(_TRIM(`$5'),1,`DLL_DECL $1 $2 CDECL_EXT $3$4;',`DLL_DECL $1 $2 $3$4;')' +`ifelse(eval($# < 6), `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;', ifelse($6, `1',`typedef $1 ($2 * _FUN_PTR($3)) $4;',`'))' +`#if ifdef(`ITFNOTDEFINED',`defined(ITFNOTDEFINED) || ')defined(_UPPERCASE(_TRIM(`$3'))_NOTIMPLEMENTED)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) ERR_NOTIMPLEMENTED' + `#define CAL_$3`'ifelse(_TRIMVARPARAMLIST($4),1,`',`(_MAKE_DUMMYPARAMLIST(`$4'))') ifelse(_TRIM($1),`void',`', ifelse(_TRIM($4), `void',`($1)ERR_NOTIMPLEMENTED',ifelse(_TRIMVARPARAMLIST($4),1,FCT_NOTIMPLEMENTED,ifelse(_TRIM($1),`RTS_HANDLE',`($1)RTS_INVALID_HANDLE',`($1)ERR_NOTIMPLEMENTED'))))' + `#define CHK_$3 FALSE' + `#define EXP_$3 ERR_OK' +`#elif defined(STATIC_LINK)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 ifelse(EXTERNAL,1,REGISTER_API,CAL_EXPAPI)' +`#elif defined(MIXED_LINK) && !defined(ITFEXTERNAL)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_$3 $3' + `#define CHK_$3 TRUE' + `#define EXP_$3 REGISTER_API' +`#elif defined(CPLUSPLUS_ONLY)' + `#define USE_`'CMP_NAME`'$3' + `#define EXT_`'CMP_NAME`'$3' + `#define GET_`'CMP_NAME`'$3 ERR_OK' + `#define CAL_`'CMP_NAME`''$3 ``pI'CMP_NAME->I'$3 + `#define CHK_`'CMP_NAME`''$3 ``(pI'CMP_NAME != NULL)' + `#define EXP_`'CMP_NAME`'$3 ERR_OK' +`#elif defined(CPLUSPLUS)' + `#define USE_$3' + `#define EXT_$3' + `#define GET_$3(fl) CAL_GETAPI' + `#define CAL_'$3 ``pI'CMP_NAME->I'$3 + `#define CHK_'$3 ``(pI'CMP_NAME != NULL)' + `#define EXP_$3 CAL_EXPAPI' +`#else /* DYNAMIC_LINK */' + `#define USE_'$3 `ifelse(eval($# < 6), `1',`_FUN_PTR($3) pf$3;', ifelse($6, `1', `_FUN_PTR($3) pf$3;'))' + `#define EXT_'$3 `extern _FUN_PTR($3) pf$3'; + `#define GET_'$3(fl) s_pfCMGetAPI2( "$3", (RTS_VOID_FCTPTR *)&pf$3, (fl), _CHKSUM($1, $2, $4), 0) + `#define CAL_'$3 pf$3 + `#define CHK_'$3 (pf$3 != NULL) + `#define EXP_$3 REGISTER_API' +`#endif' +`divert(DIVERT_INTERFACEDEF) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))) =0; +divert' +`divert(DIVERT_INTERFACEDEF_C) _FUN_PTR($3) `I'$3; + divert' +) +divert \ No newline at end of file diff --git a/ExtensionSDK/m4/Implementation.m4 b/ExtensionSDK/m4/Implementation.m4 new file mode 100644 index 0000000..82c9013 --- /dev/null +++ b/ExtensionSDK/m4/Implementation.m4 @@ -0,0 +1,897 @@ +divert(-1) +% ----------------------------------- +% Copyright: Copyright CODESYS Development GmbH +% ----------------------------------- +# The following lines ("DO NOT MODIFY...") generate a message in the destination file. +# This comment is not aimed at this file. +divert`'dnl +/*********************************************************************** + * DO NOT MODIFY! + * This is a generated file. Do not modify it's contents directly + ***********************************************************************/ +include(`Util.m4') +divert(-1) + +changecom(`%') +% ----------------------------- +% Define some diverts that gather information about some special features +% and initialize those diversions +% ----------------------------- +define(DIVERT_USE,3) +define(DIVERT_USEIMPORT,4) +define(DIVERT_USEEXTERN,5) +define(DIVERT_INIT,6) +define(DIVERT_RENAME_ENTRYFUN,9) +define(DIVERT_BEGINCLASSDEF,10) +define(DIVERT_CLASSDEF,11) +define(DIVERT_CLASSMEMBERS,12) +define(DIVERT_ENDCLASSDEF,13) +define(DIVERT_ENDMETHODDEF,15) +define(DIVERT_URTS_DEFS, 20) +define(DIVERT_ENDFILE,100) + +define(`REF_ITF', `GEN_INCLUDE($1)') + +define(`COMPONENT_VERSION',`#define CMP_VERSION UINT32_C(`$1') +#define CMP_VERSION_STRING "_VERSION_MAJOR(`$1')._VERSION_SUB0(`$1')._VERSION_SUB1(`$1')._VERSION_SUB2(`$1')" +#define CMP_VERSION_RC _VERSION_MAJOR(`$1'),_VERSION_SUB0(`$1'),_VERSION_SUB1(`$1'),_VERSION_SUB2(`$1')') +define(`COMPONENT_VENDORID',`#define CMP_VENDORID $1 + +#ifndef WIN32_RESOURCES') + +divert(DIVERT_USE)dnl +#define USE_STMT \ + /*lint -save --e{528} --e{551} */ \ + static volatile PF_REGISTER_API s_pfCMRegisterAPI; \ + static volatile PF_REGISTER_API2 s_pfCMRegisterAPI2; \ + static volatile PF_GET_API s_pfCMGetAPI; \ + static volatile PF_GET_API2 s_pfCMGetAPI2; \ + static volatile PF_REGISTER_CLASS s_pfCMRegisterClass; \ + static volatile PF_CREATEINSTANCE s_pfCMCreateInstance; \ + static volatile PF_CALL_HOOK s_pfCMCallHook; \ + static const CMP_EXT_FUNCTION_REF s_ExternalsTable[] =\ + {\ + EXPORT_EXTREF_STMT\ + EXPORT_EXTREF2_STMT\ + { ((RTS_VOID_FCTPTR)(void *)0), "", 0, 0 }\ + };\ + static const CMP_EXT_FUNCTION_REF s_ItfTable[] = EXPORT_CMPITF_STMT; \ + /*lint -restore */ \ + static int CDECL ExportFunctions(void); \ + static int CDECL ImportFunctions(void); \ + static IBase* CDECL CreateInstance(CLASSID cid, RTS_RESULT *pResult); \ + static RTS_RESULT CDECL DeleteInstance(IBase *pIBase); \ + static RTS_UI32 CDECL CmpGetVersion(void); \ + static RTS_RESULT CDECL HookFunction(RTS_UI32 ulHook, RTS_UINTPTR ulParam1, RTS_UINTPTR ulParam2); \ + dnl +divert(-1) + + +divert(DIVERT_USEIMPORT) +#define USEIMPORT_STMT \ + /*lint -save --e{551} */ \ + static volatile PF_REGISTER_API s_pfCMRegisterAPI; \ + static volatile PF_REGISTER_API2 s_pfCMRegisterAPI2; \ + static volatile PF_GET_API s_pfCMGetAPI; \ + static volatile PF_GET_API2 s_pfCMGetAPI2; \ + static volatile PF_REGISTER_CLASS s_pfCMRegisterClass; \ + static volatile PF_CREATEINSTANCE s_pfCMCreateInstance; \ + static volatile PF_CALL_HOOK s_pfCMCallHook; \ + /*lint -restore */ \ + dnl +divert(-1) + + + +divert(DIVERT_USEEXTERN) +#define USEEXTERN_STMT \ + dnl +divert(-1) + +divert(DIVERT_RENAME_ENTRYFUN) +#ifndef COMPONENT_NAME + #error COMPONENT_NAME is not defined. This prevents the component from being linked statically. Use `SET_COMPONENT_NAME'() to set the name of the component in your .m4 component description. +#endif +divert(-1) + +divert(DIVERT_BEGINCLASSDEF) +#ifdef CPLUSPLUS +divert(-1) + +divert(DIVERT_ENDMETHODDEF) +#endif /*CPLUSPLUS*/ +divert(-1) + +divert(DIVERT_ENDFILE) +`#endif /*WIN32_RESOURCES*/' +`#endif /*_DEP_H_*/' +divert(-1)') + + +% --------------------------- +% The SET_COMPONENT_NAME directive should reside at the top of each "Itf" file. +% --------------------------- + +define(`SET_COMPONENT_NAME', +`define(_COMPONENT_NAME,`$1')dnl +`#ifndef _'_UPPERCASE(_COMPONENT_NAME)`DEP_H_' +`#define _'_UPPERCASE(_COMPONENT_NAME)`DEP_H_' + +#define COMPONENT_NAME "$1" COMPONENT_NAME_POSTFIX +#define COMPONENT_ID ADDVENDORID(CMP_VENDORID, CMPID_$1) +#define COMPONENT_NAME_UNQUOTED $1 + +divert(DIVERT_RENAME_ENTRYFUN) + +divert(DIVERT_RENAME_ENTRYFUN) + +#if defined(STATIC_LINK) || defined(MIXED_LINK) || defined(DYNAMIC_LINK) || defined(CPLUSPLUS_STATIC_LINK) + #define ComponentEntry $1`'__Entry +#endif + +divert + +divert(DIVERT_URTS_DEFS)dnl + +divert +') + +% ----------------------------- +% The COMPONENT_SOURCES and COMPONENT_SYSSOURCES macros are to be ignored. They +% are used by the configuration tool only. +% ----------------------------- +define(`COMPONENT_SOURCES',`dnl') +define(`EXTERNAL_SOURCES',`dnl') +define(`EXTERNAL_INCLUDES',`dnl') +define(`COMPONENT_INCLUDES',`dnl') +define(`COMPONENT_SYSSOURCES',`dnl') +define(`CONTRIB_SOURCES',`dnl') +define(`CONTRIB_INCLUDES',`dnl') +') + +% ----------------------------- +% The CATEGORY macro is to be ignored. It +% is used by the configuration tool only. +% ----------------------------- +define(`CATEGORY',`dnl') +') + +% ----------------------------- +% After all input is read, some macros have to be created +% ----------------------------- +define(`ADD_IMPORTS',`ifdef(`__IMPORTS',`__IMPORTS popdef(`__IMPORTS') ADD_IMPORTS')') +define(`CREATE_IMPORT_STMT', dnl +`ifdef(`__IMPORTS',`#if defined(STATIC_LINK) + #define IMPORT_STMT +#else + #define IMPORT_STMT \ + {\ + RTS_RESULT importResult = ERR_OK;\ + RTS_RESULT TempResult = ERR_OK;\ + INIT_STMT \ + TempResult = GET_LogAdd(CM_IMPORT_OPTIONAL_FUNCTION); \ + TempResult = GET_CMUtlMemCpy(CM_IMPORT_OPTIONAL_FUNCTION); \ + ADD_IMPORTS \ + /* To make LINT happy */\ + TempResult = TempResult;\ + if (ERR_OK != importResult) return importResult;\ + } +#endif +',`#define IMPORT_STMT INIT_STMT') +') + +% ----------------------------- +% This function emits all export statements inside the macro EXPORT_STMT (one after another) +% ----------------------------- +define(`ADD_EXPORTS',`ifdef(`__EXPORTS',`__EXPORTS popdef(`__EXPORTS') ADD_EXPORTS')') +define(`ADD_EXTREF_EXPORTS',`ifdef(`__EXPORTS_EXTREF',`__EXPORTS_EXTREF popdef(`__EXPORTS_EXTREF') ADD_EXTREF_EXPORTS')') +define(`ADD_EXTREF_EXPORTS2',`ifdef(`__EXPORTS_EXTREF2',`__EXPORTS_EXTREF2 popdef(`__EXPORTS_EXTREF2') ADD_EXTREF_EXPORTS2')') +define(`ADD_EXPORTS_CPLUSPLUS_ONLY',`ifdef(`__EXPORTS_CPLUSPLUS_ONLY',`__EXPORTS_CPLUSPLUS_ONLY popdef(`__EXPORTS_CPLUSPLUS_ONLY') ADD_EXPORTS_CPLUSPLUS_ONLY')') + +% ----------------------------- +% Define the EXPORT_STMT macro. the content is filled out by ADD_EXPORTS. +% ----------------------------- +define(`CREATE_EXPORT_STMT',dnl +`ifdef(`__EXPORTS_EXTREF',dnl +`#ifndef _UPPERCASE(_COMPONENT_NAME)_DISABLE_EXTREF +#define EXPORT_EXTREF_STMT \ + ADD_EXTREF_EXPORTS +#else +#define EXPORT_EXTREF_STMT +#endif',`#define EXPORT_EXTREF_STMT') +'dnl +`ifdef(`__EXPORTS_EXTREF2',dnl +`#ifndef _UPPERCASE(_COMPONENT_NAME)_DISABLE_EXTREF2 +#define EXPORT_EXTREF2_STMT \ + ADD_EXTREF_EXPORTS2 +#else +#define EXPORT_EXTREF2_STMT +#endif',`#define EXPORT_EXTREF2_STMT') +'dnl +`ifdef(`__EXPORTS',dnl +`#if !defined(_UPPERCASE(_COMPONENT_NAME)_DISABLE_CMPITF) && !defined(STATIC_LINK) && !defined(CPLUSPLUS) && !defined(CPLUSPLUS_ONLY) +#define EXPORT_CMPITF_STMT \ + {\ + ADD_EXPORTS\ + { ((RTS_VOID_FCTPTR)(void *)0), "", 0, 0 }\ + } +#else +#define EXPORT_CMPITF_STMT \ + {\ + { ((RTS_VOID_FCTPTR)(void *)0), "", 0, 0 }\ + } +#endif',`#define EXPORT_CMPITF_STMT {{ ((RTS_VOID_FCTPTR)(void *)0), "", 0, 0 }}') +'dnl +`ifdef(`__EXPORTS_CPLUSPLUS_ONLY', ` +#define EXPORT_CPP_STMT \ + {\ + ADD_EXPORTS_CPLUSPLUS_ONLY \ + } +',`#define EXPORT_CPP_STMT') +'dnl +) + +% ----------------------------- +% This function emits all init statements inside the macro INIT_STMT (one after another) +% ----------------------------- +define(`ADD_INITS',`ifdef(`__INITS',`__INITS popdef(`__INITS') ADD_INITS')') +define(`ADD_INIT_LOCALS',`ifdef(`__INIT_LOCALS',`__INIT_LOCALS popdef(`__INIT_LOCALS') ADD_INIT_LOCALS')') +define(`ADD_EXITS',`ifdef(`__EXITS',`__EXITS popdef(`__EXITS') ADD_EXITS')') + +% ----------------------------- +% Define the INIT_STMT macro. +% ----------------------------- +define(`CREATE_INIT_STMT', dnl +`ifdef(`__INITS',`` +#ifdef CPLUSPLUS + #define INIT_STMT' \ + {\ + IBase *pIBase;\ + RTS_RESULT initResult;\ + if (pICmpLog == NULL && s_pfCMCreateInstance != NULL) \ + { \ + pIBase = (IBase *)s_pfCMCreateInstance(CLASSID_CCmpLog, &initResult); \ + if (pIBase != NULL) \ + { \ + pICmpLog = (ICmpLog *)pIBase->QueryInterface(pIBase, ITFID_ICmpLog, &initResult); \ + pIBase->Release(pIBase); \ + } \ + } \ + if (pICMUtils == NULL && s_pfCMCreateInstance != NULL) \ + { \ + pIBase = (IBase *)s_pfCMCreateInstance(CLASSID_CCMUtils, &initResult); \ + if (pIBase != NULL) \ + { \ + pICMUtils = (ICMUtils *)pIBase->QueryInterface(pIBase, ITFID_ICMUtils, &initResult); \ + pIBase->Release(pIBase); \ + } \ + } \ + ADD_INITS \ + } + #define INIT_LOCALS_STMT \ + {\ + pICmpLog = NULL; \ + pICMUtils = NULL; \ + ADD_INIT_LOCALS \ + } + #define EXIT_STMT \ + {\ + IBase *pIBase;\ + RTS_RESULT exitResult;\ + if (pICmpLog != NULL) \ + { \ + pIBase = (IBase *)pICmpLog->QueryInterface(pICmpLog, ITFID_IBase, &exitResult); \ + if (pIBase != NULL) \ + { \ + pIBase->Release(pIBase); \ + if (pIBase->Release(pIBase) == 0) /* The object will be deleted here! */ \ + pICmpLog = NULL; \ + } \ + } \ + if (pICMUtils != NULL) \ + { \ + pIBase = (IBase *)pICMUtils->QueryInterface(pICMUtils, ITFID_IBase, &exitResult); \ + if (pIBase != NULL) \ + { \ + pIBase->Release(pIBase); \ + if (pIBase->Release(pIBase) == 0) /* The object will be deleted here! */ \ + pICMUtils = NULL; \ + } \ + } \ + ADD_EXITS \ + } +#else + #define INIT_STMT + #define INIT_LOCALS_STMT + #define EXIT_STMT +#endif +',`#ifdef CPLUSPLUS + #define INIT_STMT \ + {\ + IBase *pIBase;\ + RTS_RESULT initResult;\ + if (pICmpLog == NULL && s_pfCMCreateInstance != NULL) \ + { \ + pIBase = (IBase *)s_pfCMCreateInstance(CLASSID_CCmpLog, &initResult); \ + if (pIBase != NULL) \ + { \ + pICmpLog = (ICmpLog *)pIBase->QueryInterface(pIBase, ITFID_ICmpLog, &initResult); \ + pIBase->Release(pIBase); \ + } \ + } \ + if (pICMUtils == NULL && s_pfCMCreateInstance != NULL) \ + { \ + pIBase = (IBase *)s_pfCMCreateInstance(CLASSID_CCMUtils, &initResult); \ + if (pIBase != NULL) \ + { \ + pICMUtils = (ICMUtils *)pIBase->QueryInterface(pIBase, ITFID_ICMUtils, &initResult); \ + pIBase->Release(pIBase); \ + } \ + } \ + } + #define INIT_LOCALS_STMT \ + {\ + pICmpLog = NULL; \ + pICMUtils = NULL; \ + ADD_INIT_LOCALS \ + } + #define EXIT_STMT \ + {\ + IBase *pIBase;\ + RTS_RESULT exitResult;\ + if (pICmpLog != NULL) \ + { \ + pIBase = (IBase *)pICmpLog->QueryInterface(pICmpLog, ITFID_IBase, &exitResult); \ + if (pIBase != NULL) \ + { \ + pIBase->Release(pIBase); \ + if (pIBase->Release(pIBase) == 0) /* The object will be deleted here! */ \ + pICmpLog = NULL; \ + } \ + } \ + if (pICMUtils != NULL) \ + { \ + pIBase = (IBase *)pICMUtils->QueryInterface(pICMUtils, ITFID_IBase, &exitResult); \ + if (pIBase != NULL) \ + { \ + pIBase->Release(pIBase); \ + if (pIBase->Release(pIBase) == 0) /* The object will be deleted here! */ \ + pICMUtils = NULL; \ + } \ + } \ + } +#else + #define INIT_STMT + #define INIT_LOCALS_STMT + #define EXIT_STMT +#endif') +') + + +% ----------------------------- +% The next lines causes the CREATE_IMPORT_STMT, CREATE_EXPORT_STMT +% and CREATE_INIT_STMT function to be called after all input has been read +% ----------------------------- +m4wrap(` +CREATE_EXPORT_STMT + +#if defined(STATIC_LINK) + #define EXPORT_STMT\ + {\ + RTS_RESULT ExpResult;\ + if (NULL == s_pfCMRegisterAPI)\ + return ERR_NOTINITIALIZED;\ + ExpResult = s_pfCMRegisterAPI(s_ExternalsTable, 0, 1, COMPONENT_ID);\ + if (ERR_OK != ExpResult)\ + return ExpResult;\ + } +#else + #define EXPORT_STMT\ + {\ + RTS_RESULT ExpResult;\ + if (NULL == s_pfCMRegisterAPI)\ + return ERR_NOTINITIALIZED;\ + ExpResult = s_pfCMRegisterAPI(s_ExternalsTable, 0, 1, COMPONENT_ID);\ + if (ERR_OK != ExpResult)\ + return ExpResult;\ + ExpResult = s_pfCMRegisterAPI(s_ItfTable, 0, 0, COMPONENT_ID);\ + if (ERR_OK != ExpResult)\ + return ExpResult;\ + } +#endif + +') +m4wrap(` +CREATE_IMPORT_STMT +') +m4wrap(` +CREATE_INIT_STMT +') + + +% ----------------------------- +% Generate an "#include " directive, +% replacing the extension ".m4" with ".h" +% ----------------------------- +define(`GET_INCLUDE_FILE', `ifelse(`-1',regexp(`$1',`\.m4$'),`error(`m4:'__file__`('__line__`):The first parameter "'$1`" is not a .m4 file')',dnl +`/** + * \file 'patsubst(`$1',`\.m4$',`\.h')` + */')') + +define(`GEN_INCLUDE', dnl +`ifelse(`-1',regexp(`$1',`\.m4$'), dnl + `error(`m4:'__file__`('__line__`):The first parameter "'$1`" is not a .m4 file + ')',dnl +$1,`CmpLogItf.m4', `/*Obsolete include: CmpLogItf.m4*/',dnl +$1,`CMUtilsItf.m4', `/*Obsolete include: CMUtilsItf.m4*/',dnl +`#include "patsubst(`$1',`\.m4$',`\.h')"')') + +define(`GEN_INIT_STMT', `pushdef(`__INITS',ifelse($1,`CMUtils',`/*Obsolete include CMUtils*/ \ + ', + $1,`CmpLog',`/*Obsolete include CmpLog*/ \ + ', +`if (pI$1 == NULL && s_pfCMCreateInstance != NULL) \ + { \ + pIBase = (IBase *)s_pfCMCreateInstance(CLASSID_C$1, &initResult); \ + if (pIBase != NULL) \ + { \ + pI$1 = (I$1 *)pIBase->QueryInterface(pIBase, ITFID_I$1, &initResult); \ + pIBase->Release(pIBase); \ + } \ + } \ + '))') + +define(`GEN_INIT_LOCALS_STMT', `pushdef(`__INIT_LOCALS',`ifelse($1,`CMUtils',`/*Obsolete include CMUtils*/ \ + ', +$1,`CmpLog',`/*Obsolete include CmpLog*/ \ + ', +`pI$1 = NULL; \ + ')')') + +define(`GEN_EXIT_STMT', `pushdef(`__EXITS',`ifelse($1,`CMUtils',`/*Obsolete include CMUtils*/ \ + ', +$1,`CmpLog',`/*Obsolete include CmpLog*/ \ + ', +`if (pI$1 != NULL) \ + { \ + pIBase = (IBase *)pI$1->QueryInterface(pI$1, ITFID_IBase, &exitResult); \ + if (pIBase != NULL) \ + { \ + pIBase->Release(pIBase); \ + if (pIBase->Release(pIBase) == 0) /* The object will be deleted here! */ \ + pI$1 = NULL; \ + } \ + } \ + ')')') + +define(`GEN_USED_INTERFACES', dnl +`ifelse(`-1',regexp(`$1',`\.m4$'), dnl + `error(`m4:'__file__`('__line__`):The first parameter "'$1`" is not a .m4 file + ')',dnl +`GEN_INCLUDE($1)'dnl +`GEN_INIT_STMT(`'patsubst(`$1',`\Itf.m4$',`'))'dnl +`GEN_INIT_LOCALS_STMT(`'patsubst(`$1',`\Itf.m4$',`'))'dnl +`GEN_EXIT_STMT(`'patsubst(`$1',`\Itf.m4$',`'))')dnl +') + +% ----------------------------- +% All variations of DEF_*_API +% Depending on the Variable DEF_CPP, +% we are adding them to __EXPORTS or __EXPORTS_CPP. +% ----------------------------- +define(`PUSH_ITF', dnl +`ifdef(`DEF_CPP', dnl +`pushdef(`__EXPORTS_CPLUSPLUS_ONLY',` \ + if (ERR_OK != EXP_`'_COMPONENT_NAME`'$3) \ + {\ + if (CHK_LogAdd)\ + (void)CAL_LogAdd(STD_LOGGER, COMPONENT_ID, LOG_ERROR, ERR_FAILED, 0, "Export of ApiFunction [$3] failed\n"); \ + return ERR_FAILED;\ + }')' +, dnl +`pushdef(`__EXPORTS_EXTREF',`ifelse(`$5',1,`ifelse(`$8',1,`', `{ (RTS_VOID_FCTPTR)$3, "$3", ifelse(eval($#>5),1,$6,0), ifelse(eval($#>6),1,$7,0) },\ + ')',`')')' dnl +`pushdef(`__EXPORTS_EXTREF2',`ifelse(`$8',1,`{ (RTS_VOID_FCTPTR)$3, "$3", $6, $7 }, \ + ',`')')' dnl +`pushdef(`__EXPORTS',`ifelse(`$5',1,`',`{ (RTS_VOID_FCTPTR)$3, "$3", 0, 0 },\ + ')')' dnl +)' dnl +) + +define(`PUSH_CLASS_ITF', dnl +`ifdef(`DEF_CPP', dnl +`pushdef(`__EXPORTS_CPLUSPLUS_ONLY',` \ + if (ERR_OK != EXP_`'_COMPONENT_NAME`'$3) \ + {\ + if (CHK_LogAdd)\ + (void)CAL_LogAdd(STD_LOGGER, COMPONENT_ID, LOG_ERROR, ERR_FAILED, 0, "Export of ApiFunction [$3] failed\n"); \ + return ERR_FAILED;\ + }')' +, dnl +`pushdef(`__EXPORTS_EXTREF',`ifelse(`$5',1,`ifelse(`$8',1,`',`{ (RTS_VOID_FCTPTR)$3, "$3",ifelse(eval($#>5),1,$6,0),ifelse(eval($#>6),1,$7,0)},\ + ')',`')')' dnl +`pushdef(`__EXPORTS_EXTREF2',`ifelse(`$8',1,`{ (RTS_VOID_FCTPTR)$3, "$3", $6, $7 }, \ + ',`')')' dnl +`pushdef(`__EXPORTS',`')' dnl +)' dnl +) + + + +define(`DEF_API', dnl +`PUSH_ITF($@)' dnl +) + +define(`DEF_STATIC_API', +`PUSH_ITF($@)' dnl +) + +define(`DEF_CREATEITF_API', +`PUSH_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_DELETEITF_API', +`PUSH_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_HANDLEITF_API', +`PUSH_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_HANDLEITF_API2', +`PUSH_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_HANDLEITF_API_OWNCPP', +`PUSH_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_CREATECLASSITF_API', +`PUSH_CLASS_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_CREATECLASSITF2_API', +`PUSH_CLASS_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_PRODUCECLASSITF_API', +`PUSH_CLASS_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_PRODUCECLASSITF_API_OWNCPP', +`PUSH_CLASS_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_DELETECLASSITF_API', +`PUSH_CLASS_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_DELETECLASSITF2_API', +`PUSH_CLASS_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_CLASSITF_API', +`PUSH_CLASS_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_RETURNHANDLECLASSITF_API', +`PUSH_CLASS_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_HANDLEITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_STATICITF_API', +`PUSH_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) static $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_ITF_API', +`PUSH_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_ITF_API_OWNCPP', +`PUSH_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_ITF_API2', +`PUSH_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + +define(`DEF_ITF_GLOBAL_API', +`PUSH_ITF($@)' dnl +`divert(DIVERT_CLASSMEMBERS) virtual $1 $2 `I'$3(_CONCAT(`_MAKE_ITF_PARAMLIST',_TRIM(`$4'))); +divert(-1)' +) + + + +define(`SET_INTERFACE_NAME',` + ifdef(`_IN_IMPLEMENT',` + pushdef(`_INTERFACE_LIST', `$1') + pushdef(`_INTERFACECAST_LIST',` + else if (iid == ITFID_`I'$1) + pItf = dynamic_cast<`I'$1 *>(this);')', + `ifelse($1,`CMUtils',`divert(DIVERT_USE)\ + /*obsolete entry ITF_$1*/ dnl divert(-1)', + $1,`CmpLog',`divert(DIVERT_USE)\ + /*obsolete entry ITF_$1*/ dnl divert(-1)', + `divert(DIVERT_USE)\ + `ITF_'`$1'dnl') + ifelse($1,`CMUtils',`divert(DIVERT_USEIMPORT)\ + /*obsolete entry ITF_$1*/ dnl divert(-1)', + $1,`CmpLog',`divert(DIVERT_USEIMPORT)\ + /*obsolete entry ITF_$1*/ dnl divert(-1)', + `divert(DIVERT_USEIMPORT)\ + `ITF_'`$1'dnl') + ifelse($1,`CMUtils',`divert(DIVERT_USEEXTERN)\ + /*obsolete entry EXTITF_$1*/ dnl divert(-1)', + $1,`CmpLog',`divert(DIVERT_USEEXTERN)\ + /*obsolete entry EXTITF_$1*/ dnl divert(-1)', + `divert(DIVERT_USEEXTERN)\ + `EXTITF_'`$1'dnl') + divert(-1)') +') + +define(`WRITE_INTERFACE_LIST2',`ifdef(`_INTERFACE_LIST',`, public `I'_INTERFACE_LIST popdef(`_INTERFACE_LIST')WRITE_INTERFACE_LIST2')') +define(`WRITE_INTERFACE_LIST',`ifdef(`_INTERFACE_LIST',`define(`_FIRST_INTERFACE_NAME',_INTERFACE_LIST)public `I'_INTERFACE_LIST popdef(`_INTERFACE_LIST')WRITE_INTERFACE_LIST2')') + +define(`WRITE_INTERFACE_CASTS',`ifdef(`_INTERFACECAST_LIST',`_INTERFACECAST_LIST popdef(`_INTERFACECAST_LIST')WRITE_INTERFACE_CASTS')') + + +define(`TASK',`#ifndef RTS_TASKNAME_`'_UPPERCASE($1) + #define RTS_TASKNAME_`'_UPPERCASE($1) "$1" +#endif +#ifndef RTS_TASKPRIO_`'_UPPERCASE($1) + #define RTS_TASKPRIO_`'_UPPERCASE($1) $2 +#endif +ifelse($3,`',`', `#ifndef RTS_TASKGROUP_`'_UPPERCASE($1) + #define RTS_TASKGROUP_`'_UPPERCASE($1) $3 +#endif') +') + +define(`TASKPREFIX',`#ifndef RTS_TASKPREFIX_`'_UPPERCASE($1) + #define RTS_TASKPREFIX_`'_UPPERCASE($1) "$1" +#endif +#ifndef RTS_TASKPRIO_`'_UPPERCASE($1) + #define RTS_TASKPRIO_`'_UPPERCASE($1) $2 +#endif +ifelse($3,`',`', `#ifndef RTS_TASKGROUP_`'_UPPERCASE($1) + #define RTS_TASKGROUP_`'_UPPERCASE($1) $3 +#endif') +') + +define(`TASKPLACEHOLDER',`#ifndef RTS_TASKPLACEHOLDER_`'_UPPERCASE($1) + #define RTS_TASKPLACEHOLDER_`'_UPPERCASE($1) "" +#endif +#ifndef RTS_TASKPRIO_`'_UPPERCASE($1) + #define RTS_TASKPRIO_`'_UPPERCASE($1) $2 +#endif +ifelse($3,`',`', `#ifndef RTS_TASKGROUP_`'_UPPERCASE($1) + #define RTS_TASKGROUP_`'_UPPERCASE($1) $3 +#endif') +') + + +% ----------------------------- +% Get all interfaces, which are implemented by this component. +% Differentiate between C++ and C Interfaces. +% ----------------------------- +define(`DO_IMPLEMENT_ITF',` +GET_INCLUDE_FILE($1) +GEN_INCLUDE($1) +ifelse(`$#',1,`',`DO_IMPLEMENT_ITF(shift($@))') +divert(-1) +include($1) +divert +') + + +define(`IMPLEMENT_QUERY_INTERFACE',`define(`QUERY_INTERFACE', `$1')') + +define(`IMPLEMENT_ITF',dnl +`undefine(`DEF_CPP')'dnl +`IMPLEMENT_ITF_AS(``C'_COMPONENT_NAME', $@)' +) +define(`IMPLEMENT_CPP_ITF', +`define(`DEF_CPP')' +`undefine(`_INTERFACE_LIST')undefine(`_INTERFACECAST_LIST')undefine(`_FIRST_INTERFACE_NAME')define(`_IN_IMPLEMENT')define(`_INTERFACE_LIST_INIT')' +`DO_IMPLEMENT_ITF($@)' +) +define(`IMPLEMENT_ITF_AS', +`ifdef(`_INTERFACE_LIST_INIT', `', +`undefine(`_INTERFACE_LIST')undefine(`_INTERFACECAST_LIST')undefine(`_FIRST_INTERFACE_NAME')' +)' +`define(`_IN_IMPLEMENT')define(`_INTERFACE_LIST_INIT')' +` +DO_IMPLEMENT_ITF(shift($@)) +divert(DIVERT_CLASSDEF) +class $1 : WRITE_INTERFACE_LIST +{ + public: + $1`() : h'_COMPONENT_NAME`'(RTS_INVALID_HANDLE), iRefCount(0) + { + } + virtual ~$1`()' + { + } + virtual unsigned long AddRef(IBase *pIBase = NULL) + { + iRefCount++; + return iRefCount; + } + virtual unsigned long Release(IBase *pIBase = NULL) + { + iRefCount--; + if (iRefCount == 0) + { + delete this; + return 0; + } + return iRefCount; + } + + ifdef(`QUERY_INTERFACE', `QUERY_INTERFACE', ` + virtual void* QueryInterface(IBase *pIBase, ITFID iid, RTS_RESULT *pResult) + { + void *pItf; + if (iid == ITFID_IBase) + pItf = dynamic_cast((`I'_FIRST_INTERFACE_NAME *)this);dnl + WRITE_INTERFACE_CASTS + else + { + if (pResult != NULL) + *pResult = ERR_NOTIMPLEMENTED; + return NULL; + } + if (pResult != (RTS_RESULT *)1) + (reinterpret_cast(pItf))->AddRef(); + if (pResult != NULL && pResult != (RTS_RESULT *)1) + *pResult = ERR_OK; + return pItf; + }') +divert(DIVERT_ENDCLASSDEF) + public: + RTS_HANDLE h`'_COMPONENT_NAME; + int iRefCount; +}; +divert(-1) +define(`DIVERT_CLASSDEF',eval(DIVERT_CLASSDEF+3)) +define(`DIVERT_CLASSMEMBERS',eval(DIVERT_CLASSMEMBERS+3)) +define(`DIVERT_ENDCLASSDEF',eval(DIVERT_ENDCLASSDEF+3)) +undefine(`_IN_IMPLEMENT') +divert +') + +%define(`IMPLEMENT_ITF', ` +%divert(-1) +%include($1) +%divert') + +define(`GENERATE_ITF_MACRO', `divert(DIVERT_USE)\ + `ITF_'`$1' dnl +divert(-1)') + +define(`USE_ITF', `GEN_USED_INTERFACES($1) +divert(-1) +pushdef(`DEF_API',`') +pushdef(`DEF_STATIC_API',`') +pushdef(`DEF_CREATEITF_API',`') +pushdef(`DEF_DELETEITF_API',`') +pushdef(`DEF_HANDLEITF_API',`') +pushdef(`DEF_HANDLEITF_API2',`') +pushdef(`DEF_HANDLEITF_API_OWNCPP',`') +pushdef(`DEF_CREATECLASSITF_API',`') +pushdef(`DEF_CREATECLASSITF2_API',`') +pushdef(`DEF_PRODUCECLASSITF_API',`') +pushdef(`DEF_PRODUCECLASSITF_API_OWNCPP',`') +pushdef(`DEF_DELETECLASSITF_API',`') +pushdef(`DEF_DELETECLASSITF2_API',`') +pushdef(`DEF_CLASSITF_API',`') +pushdef(`DEF_RETURNHANDLECLASSITF_API',`') +pushdef(`DEF_STATICITF_API',`') +pushdef(`DEF_ITF_API',`') +pushdef(`DEF_ITF_API_OWNCPP',`') +pushdef(`DEF_ITF_API2',`') +pushdef(`DEF_ITF_GLOBAL_API',`') +include($1) +popdef(`DEF_API') +popdef(`DEF_STATIC_API') +popdef(`DEF_CREATEITF_API') +popdef(`DEF_DELETEITF_API') +popdef(`DEF_HANDLEITF_API') +popdef(`DEF_HANDLEITF_API_OWNCPP') +popdef(`DEF_HANDLEITF_API2') +popdef(`DEF_CREATECLASSITF_API') +popdef(`DEF_CREATECLASSITF2_API') +popdef(`DEF_PRODUCECLASSITF_API') +popdef(`DEF_PRODUCECLASSITF_API_OWNCPP') +popdef(`DEF_DELETECLASSITF_API') +popdef(`DEF_DELETECLASSITF2_API') +popdef(`DEF_RETURNHANDLECLASSITF_API') +popdef(`DEF_CLASSITF_API') +popdef(`DEF_STATICITF_API') +popdef(`DEF_ITF_API2') +popdef(`DEF_ITF_API') +popdef(`DEF_ITF_API_OWNCPP') +popdef(`DEF_ITF_GLOBAL_API') +divert +') + +define(`DOUSE', `divert(DIVERT_USE) \ + ifelse($1,`CMUtlMemCpy',`/*obsolete USE_$1*/', + $1,`LogAdd',`/*obsolete USE_$1*/', + USE_$1) dnl + divert(DIVERT_USEIMPORT) \ + ifelse($1,`CMUtlMemCpy',`/*obsolete USE_$1*/', + $1,`LogAdd',`/*obsolete USE_$1*/', + USE_$1) dnl + divert(DIVERT_USEEXTERN) \ + ifelse($1,`CMUtlMemCpy',`/*obsolete USE_$1*/', + $1,`LogAdd',`/*obsolete EXT_$1*/', + EXT_$1) dnl +divert') + + +define(`DOIMPORT_REQ', `pushdef(`__IMPORTS',`ifelse($1,`LogAdd', `/*Obsolete required include LogAdd*/ \ + ',dnl +$1,`CMUtlMemCpy', `/*Obsolete required include CMUtlMemCpy*/ \ + ', +`if (ERR_OK == importResult ) importResult = GET_$1(0);\ + ')')') + + +define(`DOIMPORT_OPT', `pushdef(`__IMPORTS',`ifelse($1,`LogAdd', `/*Obsolete optional include LogAdd*/ \ + ',dnl +$1,`CMUtlMemCpy', `/*Obsolete optional include CMUtlMemCpy*/ \ + ', +`if (ERR_OK == importResult ) TempResult = GET_$1(CM_IMPORT_OPTIONAL_FUNCTION);\ + ')')') + + + +define(`REQUIRED_IMPORTS', dnl + `ifelse($1,`', `', dnl + `_FOREACH(`DOIMPORT_REQ', $@)dnl + _FOREACH(`DOUSE', $@)dnl + ') +') + +define(`OPTIONAL_IMPORTS', dnl + `ifelse($1,`', `', dnl + `_FOREACH(`DOIMPORT_OPT', $@) dnl + _FOREACH(`DOUSE', $@) dnl + ') +') +changecom(`/*', `*/') +divert \ No newline at end of file diff --git a/ExtensionSDK/m4/Util.m4 b/ExtensionSDK/m4/Util.m4 new file mode 100644 index 0000000..e1d3d28 --- /dev/null +++ b/ExtensionSDK/m4/Util.m4 @@ -0,0 +1,113 @@ +divert(-1) +changecom(`%') +% +% Copyright: Copyright CODESYS Development GmbH +% + +define(`_CONCAT',`ifelse($#,0,`',$#,1,`$1',$#,2,`$1$2',`_CONCAT(`$1$2',`_CONCAT(shift(shift($@)))')')') +define(`_UPPERCASE', `translit($1, `a-z', `A-Z')') +define(`_TRIM',`regexp(`$1',`^[ ]*\(.*[^ ]\)[ ]*$',`\1')') +define(`_TRIMCMPPREFIX',`regexp(`$1',`...\(.*\)$',`\1')') +define(`_TRIMPOINTERPARAM', `ifelse(regexp(`$1',`[^,]\*',`RTS_HANDLE'),-1,0,1)') +define(`_TRIMVARPARAMLIST', `ifelse(regexp(`$1',`\.\.\.'),-1,0,1)') + +define(`_FUN_PTR', _FUN_PTR1(`_UPPERCASE(`$1')')) +define(`_FUN_PTR_IEC', _FUN_PTR1(`_UPPERCASE(`$1')'_IEC)) +define(`_FUN_PTR1', `PF'$1) + +define( _CHKSUM, 0) + +define(`_EXTRACTFIRSTPARAMTYPE',`_EXTRACTTYPE(_EXTRACTPARAMS(`$1'))') +define(`_EXTRACTTYPE',`regexp(`$1',`\([\w_]*[^ ]*\)',`\1')') +define(`_EXTRACTFIRSTPARAMTYPEPOINTER',`_EXTRACTTYPEPOINTER(_EXTRACTPARAMS(`$1'))') +define(`_EXTRACTTYPEPOINTER',`regexp(`$1',`\([\*]\)',`\1')') +define(`_EXTRACTFIRSTPARAMTYPERTS',`_EXTRACTTYPERTS(_EXTRACTPARAMS(`$1'))') +define(`_EXTRACTTYPERTS',`regexp(`$1',`\(RTS_\)',`\1')') + +define(`_EXTRACTPARAMS',`regexp(`$1',`^[ ]*(\(.*\))[ ]*$',`\1')') +define(`_EXTRACTPARAMNAME',`regexp(`$1',`\([a-zA-Z0-9_]+\)$',`\1')') +define(`_HAS_VARIABLEPARAMETER',`regexp(`$1',`\.\.\.')') +define(`_EXTRACT_VARIABLEPARAMETER_FORMAT',`regexp(`$1',` \*?\([a-zA-Z0-9_]+\), \.\.\.',`\1')') + +% +% Extract the parameter out of a parameter list. +% +% _EXTRACT_PARAM_LIST(`(int nCount, char *pBuf)') => `nCount,pBuf' +% _EXTRACT_PARAM_LIST(`(void)') => `' +% +define(_EXTRACT_PARAM_LIST_RECURSIVE,`ifelse($#,1,`_EXTRACTPARAMNAME(`$1')',`_EXTRACTPARAMNAME(`$1')`',_EXTRACT_PARAM_LIST_RECURSIVE(shift($@))')') +define(_EXTRACT_PARAM_LIST_,`ifelse(_TRIM(`$1'),`',`',_TRIM(`$1'),`void',`',`_EXTRACT_PARAM_LIST_RECURSIVE($@)')') +define(_EXTRACT_PARAM_LIST,`_EXTRACT_PARAM_LIST_(_EXTRACTPARAMS(`$1'))') + +define(_EXTRACT_PARAM_LIST_HANDLE_RECURSIVE,`ifelse($#,1,`,_EXTRACTPARAMNAME(`$1')',`,_EXTRACTPARAMNAME(`$1')`'_EXTRACT_PARAM_LIST_HANDLE_RECURSIVE(shift($@))')') +define(_EXTRACT_PARAM_LIST_HANDLE_,`ifelse(_TRIM(`$1'),`',`',_TRIM(`$1'),`void',`',`_EXTRACT_PARAM_LIST_HANDLE_RECURSIVE($@)')') +define(_EXTRACT_PARAM_LIST_HANDLE,`_EXTRACT_PARAM_LIST_HANDLE_(shift(_EXTRACTPARAMS(`$1')))') + +% +% Creates a parameter list for a macro call "(p1, p2, p3)", with one parameter for each parameter +% in the c parameterlist provided as parameter. If the provided parameterlist contains only `void' +% then it is treated as if it was empty. +% +% _MAKE_DUMMYPARAMLIST(`(int nCount, char *pBuf)') => `p0,p1' +% _MAKE_DUMMYPARAMLIST(`(void)') => `' +% +define(_MAKE_DUMMYPARAMLIST1,`ifelse($#,1,`',$#,2,`p$1',`p$1,_MAKE_DUMMYPARAMLIST1(incr($1),shift(shift($@)))')') +define(_MAKE_DUMMYPARAMLIST_,`ifelse(_TRIM(`$1'),`',`',_TRIM(`$1'),`void',`',`_MAKE_DUMMYPARAMLIST1(0,$@)')') +define(_MAKE_DUMMYPARAMLIST_WITHVOID_,`ifelse(_TRIM(`$1'),`',`',`_MAKE_DUMMYPARAMLIST1(0,$@)')') +define(_MAKE_DUMMYPARAMLIST,`_MAKE_DUMMYPARAMLIST_(_EXTRACTPARAMS(`$1'))') + +% +% Creates a parameter list for a macro call "(p1, p2, p3)", with one parameter for each parameter +% in the c parameterlist provided as parameter. If the provided parameterlist contains only `void' +% then it is treated as if it had exactly one parameter. +% +% _MAKE_DUMMYPARAMLIST(`(int nCount, char *pBuf)') => `p0,p1' +% _MAKE_DUMMYPARAMLIST(`(void)') => `p0' +% +define(_MAKE_DUMMYPARAMLIST_WITHVOID,`_MAKE_DUMMYPARAMLIST_WITHVOID_(_EXTRACTPARAMS(`$1'))') + +% +% Same as _MAKE_DUMMYPARAMLIST, but drops the first parameter +% +% _MAKE_HANDLE_DUMMYPARAMLIST(`(RTS_HANDLE, hHandle, int nCount, char *pBuf)') => `p1,p2' +% +define(_MAKE_HANDLE_DUMMYPARAMLIST,`shift(_MAKE_DUMMYPARAMLIST(`$1'))') + +% +% Same as _MAKE_DUMMYPARAMLIST, but drops the first n parameter +% +% _MAKE_HANDLE_DUMMYPARAMLIST2(`(RTS_HANDLE hHandle, int nCount, char *pBuf, int nValue)', 2) => `p2,p3' +% +define(nshift, `ifelse($2, 0, `$1', `nshift(`shift($1)', decr($2))')') +define(_MAKE_HANDLE_DUMMYPARAMLIST2,`nshift(`_MAKE_DUMMYPARAMLIST(`$1')', $2)') + + +define(_MAKE_PARAMLIST2,`ifelse(_TRIM($@),`',`',`, $1`'_MAKE_PARAMLIST2(shift($@))')') +define(_MAKE_PARAMLIST1,`ifelse(_TRIM($@),`',`',`$1`'_MAKE_PARAMLIST2(shift($@))')') +define(_MAKE_HANDLEITF_PARAMLIST,`ifelse(_TRIM(shift($@)),`',`void',_TRIM(shift($@)),`void',`void',`_MAKE_PARAMLIST1(shift($@))')') +define(_MAKE_ITF_PARAMLIST, `ifelse(_TRIM($@),`',`void',_TRIM($@),`void',`void',`_MAKE_PARAMLIST1($@)')') +define(_MAKE_CREATEITF_PARAMLIST,`ifelse(_TRIM($@),`',`void',_TRIM($@),`void',`void',`_MAKE_PARAMLIST1($@)')') + +% +% Ieration over some string elements +% +define(`_FOREACH', `ifelse(1,$#,` ',`$1($2) +ifelse(2,$#, ,`_FOREACH(`$1',shift(shift($@)))')')') + +% +% Split component version number +% +% Example: +% $1 = "0x03020104" +% _VERSION_MAJOR => 3 +% _VERSION_SUB0 => 2 +% _VERSION_SUB1 => 1 +% _VERSION_SUB2 => 4 +% +define(`_TRIMLEFT_ZERO', `regexp(`$1', `^0*\(.+\)', `\1')') +define(`_VERSION_MAJOR',`_TRIMLEFT_ZERO(regexp(`$1',`^0x\([0-9a-fA-F][0-9a-fA-F]\)', `eval(0x\1)'))') +define(`_VERSION_SUB0',`_TRIMLEFT_ZERO(regexp(`$1',`^0x[0-9a-fA-F][0-9a-fA-F]\([0-9a-fA-F][0-9a-fA-F]\)', `eval(0x\1)'))') +define(`_VERSION_SUB1',`_TRIMLEFT_ZERO(regexp(`$1',`^0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]\([0-9a-fA-F][0-9a-fA-F]\)', `eval(0x\1)'))') +define(`_VERSION_SUB2',`_TRIMLEFT_ZERO(regexp(`$1',`^0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]\([0-9a-fA-F][0-9a-fA-F]\)', `eval(0x\1)'))') + +divert`'dnl diff --git a/ExtensionSDK/makefile b/ExtensionSDK/makefile new file mode 100644 index 0000000..9edd426 --- /dev/null +++ b/ExtensionSDK/makefile @@ -0,0 +1,183 @@ +############################################################################## +# Copyright: Copyright CODESYS Development GmbH +# Program: Extension API for the Linux SL products +############################################################################## + +ifeq ($(dir $(lastword $(MAKEFILE_LIST))), ./) +# +# MAKEFILE is used wrong! Never call it from this folder directly +# +.PHONY:help +help: + @echo "**********************" + @echo "Dont work inside this folder! Please go to your library folder and call this makefile e.g.:" + @echo "make -f ../sdk/makefile newproject" + @echo + @echo "**********************" + +.PHONY:all +all: help + +.PHONY:newproject +newproject: help + +.PHONY:makefile +makefile: help + +else +# +# NORMAL RULES +# + +# get some info from generated files +ITFM4 = $(wildcard *Itf.m4) +CSRC = $(wildcard *.c) +CMPBASENAME=$(CSRC:.c=) + +# set some variables +OUTDIR=./out +ITF = $(basename ${ITFM4}) +TEMPLATEDEP = $(SDKDIR)/m4/TemplateDep.m4 +DEP = ${CMPBASENAME}Dep + + +# set name of shared object +SONAME= lib${CMPBASENAME}.so + +# set sources of component +SRC += ${CSRC} CmpFrame.c + +# objects: all sources +OBJS = $(addprefix ${OUTDIR}/,$(SRC:.c=.o)) + +# set default includes +INCLUDES += -I${SDKDIR}/include/ -I${OUTDIR}/ -I. +CFLAGS += -fPIC -g -O0 -Wall -Wextra -Wno-unused +CFLAGS += -DDEP_H=\"${DEP}.h\" + +# set a vendorID +CMPVENDORID=0xFFFF + +vpath %.m4 ${SDKDIR}/cmpstub/ +vpath %.c ${SDKDIR}/src/ + +.PHONY:help +help: + @echo "**********************" + @echo "help / usage / available make targets:" + @echo "-all : just do everything needed" + @echo "-clean : cleanup all generated files" + @echo "-newproject : create a new project" + @echo "-showenv : show intern variables (for debugging)" + @echo "**********************" + + +.PHONY:newproject +newproject: makefile + +.PHONY:all +all: ${OUTDIR}/$(SONAME) + +SDK_BASE=$(dir $(lastword $(MAKEFILE_LIST))) + +.PHONY:showenv +showenv: + @echo "**********************" + @echo "ITFM4: ${ITFM4}" + @echo "CSRC: ${CSRC}" + @echo "SONAME: ${SONAME}" + @echo "ITF: ${ITF}" + @echo "DEP: ${DEP}" + @echo "OBJS: ${OBJS}" + @echo "CC: $(CC)" + @echo "CFLAGS: ${CFLAGS}" + @echo "SDKDIR: ${SDKDIR}" + @echo "CMPBASENAME: ${CMPBASENAME}" + @echo "MAKEFILE_LIST: $(MAKEFILE_LIST)" + @echo "**********************" + @echo "" + +# check if there are whitespaces in the SDK BASE DIR +# this causes horrible things in make, so we detect/avoid it directly at creating a new project +ifeq (1,$(words $(MAKEFILE_LIST))) +makefile: + @echo "**********************" + @echo "creating makefile for your project " + cp ${SDK_BASE}/makefile_template $@ + @echo "# include of the SDK makefiles" >> $@ + @echo "SDKDIR="$(abspath ${SDK_BASE}) >> $@ + @echo 'include $${SDKDIR}/makefile' >> $@ + @echo "" >> $@ + @echo "now check your makefile here" + @echo "**********************" + @echo "" + +else +makefile: + @echo "**********************" + @echo "creating makefile for your project FAILED:" + @echo "there are whitespaces in the SDK path" + @echo "this does not work with 'make'!" + @echo "Please put your SDK to a path without whitespaces" + @echo "**********************" + @echo "" + +endif + +${OUTDIR}/%.o: %.c + @echo "**********************" + @echo "compile: $@ from $<" + @mkdir -p ${OUTDIR} + $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $< + @echo "**********************" + @echo "" + +${OUTDIR}/${SONAME}: ${OUTDIR}/$(DEP).h ${OUTDIR}/$(ITF).h $(OBJS) + @echo "**********************" + @echo "link: $@" + @mkdir -p ${OUTDIR} + $(CC) $(LDFLAGS) -shared $(OBJS) -Wl,-soname,$(SONAME) -o $@ $(LDLIBS) + @echo "**********************" + @echo "" + +${OUTDIR}/$(DEP).m4: + @echo "**********************" + @echo "create $@ from template" + @mkdir -p ${OUTDIR} + echo 'SET_COMPONENT_NAME(`'${CMPBASENAME}"')" > $@ + echo 'COMPONENT_VERSION(`'${CMPVERSION}"')" >> $@ + echo 'COMPONENT_VENDORID(`'${CMPVENDORID}"')" >> $@ + echo "#define CMPID_${CMPBASENAME} ${CMPID}" >> $@ + echo "IMPLEMENT_ITF("'`'"${CMPBASENAME}Itf.m4')" >> $@ + @echo "**********************" + @echo "" + +${OUTDIR}/$(DEP).h: ${OUTDIR}/$(DEP).m4 $(ITF).m4 + @echo "**********************" + @echo "build dependency header: $@ from $<" + @mkdir -p ${OUTDIR} + $(DOS2UNIX) $< + $(M4) -I$(SDKDIR)/m4 -I. Implementation.m4 - < $< > $@ + @echo "**********************" + @echo "" + +${OUTDIR}/$(ITF).h: $(ITF).m4 + @echo "**********************" + @echo "build interface header: $@ from $<" + @sed -n '/DEF_API/ !d; /_cext/ ! { s/^/ERROR: This functionname does not contain _cext (this is mandatory, see help for details):\n/p;q 1}' $< + @mkdir -p ${OUTDIR} + $(DOS2UNIX) $< + $(M4) -I$(SDKDIR)/m4 Exports.m4 - < $< > $@ + @echo "**********************" + @echo "" + +.PHONY:clean +clean: + @echo "" + @echo "**********************" + @echo "clean up" + rm -rf ${OUTDIR}; + @echo "**********************" + @echo "" + +endif diff --git a/ExtensionSDK/makefile_template b/ExtensionSDK/makefile_template new file mode 100644 index 0000000..14e4984 --- /dev/null +++ b/ExtensionSDK/makefile_template @@ -0,0 +1,48 @@ +############################################################################## +# Copyright: Copyright CODESYS Development GmbH +# Program: Extension API for the Linux SL products +############################################################################## + +# +# with this makefile you can influence the build of your component +# +# +# Hints: +# - the name of the *Itf.m4 file in this folder will be used as name of the shared object (and component name) +# - all C files in this folder will be compiled by default +# + +# set versions of your shared object +# must be single digit, decimal +MAJORVER=0 +MINORVER=1 + +# set a component version (must match your IEC library version) +# must be 4 bytes, hexadecimal +CMPVERSION=0x01000000 + +# set a component ID +# must be 2 bytes >= 0x2000 and hexadecimal and can be used to differentiate different components +CMPID=0x2000 + +# set your tools +DOS2UNIX = dos2unix +M4 = m4 + +# set a compiler +CC ?= gcc + +# add some compiler flags (with += ) +#CFLAGS += -g + +# add some include paths (with +=) +#INCLUDES += -I. + +# add some linker flags (with += ) +#LDFLAGS += + +# add some libraries that you might need (with += ) +#LDLIBS += -lc + + + diff --git a/ExtensionSDK/src/CmpFrame.c b/ExtensionSDK/src/CmpFrame.c new file mode 100644 index 0000000..6cfba62 --- /dev/null +++ b/ExtensionSDK/src/CmpFrame.c @@ -0,0 +1,78 @@ +/***************************************************************************** +* Copyright: Copyright CODESYS Development GmbH +* Program: Extension API for the Linux SL products +******************************************************************************/ + +#include "CmpStd.h" + +#include DEP_H + +USE_STMT + +DLL_DECL int CDECL ComponentEntry(INIT_STRUCT *pInitStruct) +/* Used to exchange function pointers between component manager and components. + Called at startup for each component. + pInitStruct: IN Pointer to structure with: + pfExportFunctions OUT Pointer to function that exports component functions + pfImportFunctions OUT Pointer to function that imports functions from other components + pfGetVersion OUT Pointer to function to get component version + pfRegisterAPI IN Pointer to component manager function to register a API function + pfGetAPI IN Pointer to component manager function to get a API function + pfCallHook IN Pointer to component manager function to call a hook function + Return ERR_OK if library could be initialized, else error code +*/ +{ + pInitStruct->CmpId = COMPONENT_ID; + pInitStruct->pfExportFunctions = ExportFunctions; + pInitStruct->pfImportFunctions = ImportFunctions; + pInitStruct->pfGetVersion = CmpGetVersion; + pInitStruct->pfHookFunction = HookFunction; + pInitStruct->pfCreateInstance = NULL; + pInitStruct->pfDeleteInstance = NULL; + + s_pfCMRegisterAPI = pInitStruct->pfCMRegisterAPI; + s_pfCMRegisterAPI2 = pInitStruct->pfCMRegisterAPI2; + s_pfCMGetAPI = pInitStruct->pfCMGetAPI; + s_pfCMGetAPI2 = pInitStruct->pfCMGetAPI2; + s_pfCMCallHook = pInitStruct->pfCMCallHook; + s_pfCMRegisterClass = pInitStruct->pfCMRegisterClass; + s_pfCMCreateInstance = pInitStruct->pfCMCreateInstance; + return ERR_OK; +} + +/** + * Publish exported functions to the component manager, to make them available for other components. + * Use generated macro EXPORT_STMT. + * ERR_OK or error code in case of error + */ +static int CDECL ExportFunctions(void) +{ + /* Macro to export functions */ + EXPORT_STMT; + return ERR_OK; +} + +/** + * Import function pointers from other components. Use generated macro IMPORT_STMT. + * ERR_OK or error code if function name could not be resolved + */ +static int CDECL ImportFunctions(void) +{ + /* Macro to import functions */ + IMPORT_STMT; + return ERR_OK; +} + +/** + * Return the version of our component. + * Version as defined in dep file + */ +static RTS_UI32 CDECL CmpGetVersion(void) +{ + return CMP_VERSION; +} + +static RTS_RESULT CDECL HookFunction(RTS_UI32 ulHook, RTS_UINTPTR ulParam1, RTS_UINTPTR ulParam2) +{ + return ERR_OK; +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..1d2fce1 --- /dev/null +++ b/README.md @@ -0,0 +1,81 @@ +# atMb — documented working library + +Start with `library/atMb-Documented.export`: comments-only documentation of your +working CmpAtomModbus export, retaining its embedded C library object. It uses +`ClientTCP`, matching the uploaded working interface. + +Read `docs/USER-GUIDE.md` for setup and examples and `docs/API-REFERENCE.md` for +all 95 code objects, parameters, outputs, methods and properties. +`docs/DOCUMENTATION-VALIDATION.md` records code/payload preservation checks. +`reference/Working-CmpAtomModbus.export` is the exact uploaded original. + +The earlier development export and generator are retained for source history. +`library/build_native_export.py` generates the earlier migration export; it does +not generate or supersede the newly documented working export. Do not overwrite +working IDE changes by regenerating that migration export. The documentation +adds no C changes; the source-to-uploaded-binary match remains unverified. + +The rest of the source/build kit remains below. + +# atMb — native Modbus for CODESYS + +Git-ready source snapshot, revision 0.9.1. Public namespace `atMb`. +C implementation supports TCP client, RTU client and TCP slave; IEC code has +no ModbusFB dependency. Online-change support remains future work. + +## Files + +- `component-source/`: C engine, CODESYS component frame/interface and host tests. +- `ExtensionSDK/`: supplied SDK used by the component build. +- `library/atMb-Native.export`: corrected IEC import; includes public status declarations. +- `library/atMb-Native-Review.st`: readable generated IEC source. +- `library/build_native_export.py`: reproducible export generator. +- `reference/CmpAtomModbus-AllInOne.export`: required generator baseline, not the final import. +- `artifacts/arm64/`: your uploaded shared object and precompile cache, preserved unchanged. +- `docs/BUILD-AND-USAGE.md`: import, deployment, API, diagnostics and limitations. +- `SHA256SUMS.txt`: snapshot file checksums. + +## Build and test on the Pi + +```sh +sudo apt install build-essential m4 dos2unix python3 +make -C component-source/component SDKDIR="$(realpath ExtensionSDK)" clean +make -C component-source/component SDKDIR="$(realpath ExtensionSDK)" all +make -C component-source test +``` + +Build natively for each Linux target architecture; the uploaded ARM64 `.so` +cannot run on ARM32 or x86-64. Runtime/SDK compatibility must also be checked +for each CODESYS target. The host tests exercise protocol code independently +of the CODESYS runtime. + +## IEC export + +```sh +python3 library/build_native_export.py +``` + +Import `library/atMb-Native.export` into a fresh CODESYS library project, +namespace `atMb`, and embed the newly built `.so` in a C Implemented Library +object. See the full instructions in `docs/BUILD-AND-USAGE.md`. +The export is source, not a compiled `.library`. The supplied precompile cache +is an opaque reference artifact and is not a substitute for the library project. + +Your uploaded `.so` is ARM64 and contains RTU/server symbols. Its exact match +to this source snapshot and its operation in the runtime have not been verified; +rebuild from source before making a release. The older development instructions +say no prebuilt binary is included: that applies to the earlier kit; this repo +snapshot adds your uploaded binary under `artifacts/arm64/`. + +## Start a repository + +```sh +cd atMb-repo +git init +git add . +git commit -m "Initial atMb native Modbus source" +``` + +No Git history or remote is included. The SDK and baseline came from supplied +files; review their redistribution terms before publishing a public repository. +No new license is assigned by this snapshot. diff --git a/SHA256SUMS.txt b/SHA256SUMS.txt new file mode 100644 index 0000000..977275c --- /dev/null +++ b/SHA256SUMS.txt @@ -0,0 +1,48 @@ +d1192772047955638e8bb171080ed9b37e10683de935e4e0503c93b6d26f03fc .gitattributes +675d431f63e2c212360b692b18de50a344aed5664d17b3683f0b687b96479f24 .gitignore +0ac6e4fe82a82d1bd27ff20dec2f18820c0e0a5057cd0cb1a8020f6dc506603f ExtensionSDK/README +1cc355e875e572de3829d28bff9c100a4eecbfd741d938654be97881023c84d5 ExtensionSDK/include/CmpErrors.h +2010310fbeb8b4734e638610d2f6dc01b600fe42b8b104155806ef0784e95f2d ExtensionSDK/include/CmpItf.h +a8de018bfde8d10d3f281bb45de03c4b4f3cd28466eb0fa0981086bc4033a69c ExtensionSDK/include/CmpStd.h +212fcd438a0ad38712d575521c34ed875ac86353e543c737aec3770386503b14 ExtensionSDK/m4/Exports.m4 +06b55c74620a6247bf4ddcf69f7373255f4677b2c2b7ef1ed0ac02ba0407f94e ExtensionSDK/m4/Implementation.m4 +8fb9f4e77e2f2c4df494b6199bfd16ab2ed4257d76c735e46460f837d6e22163 ExtensionSDK/m4/Util.m4 +814d06ca83d775f3bcb93f80859602b6c1debe9511b3d42ef337948bd2e2b5d0 ExtensionSDK/makefile +4fc8013238169e924ee2eb5dd6c2b39c9d274f4c7c2219dc0b9a530687097519 ExtensionSDK/makefile_template +aa7ccad11508ccbf4f9b24aa8db8f22392f9d723ae3af5cbfa67e38271cfbac3 ExtensionSDK/src/CmpFrame.c +67076180ec906d9f27f5b63406d8a2701faa58771f76e0f4487ae750660ce7e4 README.md +f0279c023b82eeda388cdc1b9c9f358b7794869360a06684df670cd34d5cab56 artifacts/arm64/CmpAtomModbus_library.precompilecache +07527262a8efcf9add5554cfcaed22cf927af63b985e431ab5341078a6864667 artifacts/arm64/libCmpAtomModbus.so +14db5bb96e65494eed63da0139b37734dfc08e312a3cb0924ad10b7d9476d442 component-source/Makefile +d91cffa9751bca79f13ae80552d654519333536c894bb13b41a1182c179c53b7 component-source/component/CmpAtomModbus.c +30a8d7d5dfd372d171d4acdafd0b77cedca684e0b6e661ae1ab67e2627d35708 component-source/component/CmpAtomModbusItf.m4 +513586eed183bcc53cdf008c483da03feff6b5cb0f3ed3eff17de1462def12c3 component-source/component/CmpFrame.c +0972948a5cc88892421433fb01875f4f51609cda3b0df57ff58f05c61390e1c2 component-source/component/makefile +c362c04636cb2cfc00eec8800f0aa9631709cd9eba76b66332f61a988823a055 component-source/generated/CmpAtomModbus.c +fa9b00a24ff9f24b63c9a08b8eba4d585a23f4fd6e19f990ec36dcc70f745427 component-source/generated/CmpAtomModbusItf.m4 +78240595fa115d3706cbc7316bdcd4e0101a3269e5faacce98826bc32143e9d9 component-source/src/atom_bridge.c +4a3eaca066d0c06ac7fa95d802ff78b270a1ccdc3fc67c6a072b7e09efba08c0 component-source/src/atom_bridge.h +4f772a0dab94053bfa2f073f6877ec63a8c6b7999d8e3415160705db441f6068 component-source/src/atom_mb.c +f8140b5076d5cfb0feda5c9b20d0bc494d7b77edf528f10d96ed071fc4dd0461 component-source/src/atom_mb.h +e5f8e76efdbc2c4875ceee375f1ea3bd93e1cb4e2075373bb8a0eb4b31ea5e4a component-source/src/atom_rtu.c +565a5122de679b2e60990b1252f356e69316b51979485c3cf0101c6e32ac5a4a component-source/src/atom_rtu.h +771f9671ea8f0644596633970dae1d8651275251d6cdb0a44373a00d064ad35c component-source/src/atom_server.c +51f3b4a5779347e58b9993b3c2d8f180a73e0a70cb2a8b81bf9350aca8b42bad component-source/src/atom_server.h +d770393632f9d3d1acddf229f562148648792398a39d90851aa529d2923f8382 component-source/tests/bridge_driver.c +50bb7854c3a966c46a583fba951c1d3a605bf9d1739ac83685322d9a7b740c4d component-source/tests/driver.c +3af1a5f71d69bae2abda3de9dba31740ad254d7157d702847fb921fc2b64df3d component-source/tests/test_bridge.c +2a4b582bed0404f865f4fa2c905dd251c3dccfc4961f20467723c7349793a7f2 component-source/tests/test_native.py +0cf8f8fefda6376cacf0c56729d24aaa76241e807b0dee0b36001b3ad3cea509 component-source/tests/test_tcp.py +c1f09f7498453182f7ed88c1cb343b637ca6c6507e728ac71591a826588c0d3a docs/API-REFERENCE.md +a3cd41084413b1f7c2045e6a7a647b793c8df1c9fa338e146439031b269a1dcb docs/BUILD-AND-USAGE.md +17d84b44d288b46012d9e52d7c8a247592ad28f3d5c3032fffbab701a8478418 docs/DOCUMENTATION-VALIDATION.md +3a2d04af7a1fc7f2e39fea1401d12653fda16864cf4cb7d8edfe2d9988091453 docs/USER-GUIDE.md +fe7df15839ff4bcf3272cbec71cd67a026e514c79df4bd0be829c8a373391f4d docs/VALIDATION.md +8aa5a11a22263ea04902ce883b14fd31c3de270c711deca13f57889a05b689a0 docs/document_export.py +87e2f904f08d7ee8c37ba8362989d2453b2860e91336f21623d0ab91eb8a178b library/atMb-Documented-Review.st +19a979f94b437fc6c523fdfbd24fd8f6038860cb107b45dea2466020e2a319fe library/atMb-Documented.export +0efb6d1760ea5104331cd0fb13b7324fd468c5ab2ec415f0dd9e38db74961e70 library/atMb-Native-Review.st +e2223cf6cef8cecb71cd41093c67f095559764eaa52e22f0f31347e3faec7238 library/atMb-Native.export +1d66a3b8cefa95e39815b12d1e802192b83d416ad281aaca5b8efa8c90ed4f77 library/build_native_export.py +c3be3f6ee2e065633f8e8e04482c95fe5c30f61e34cf6223d6454500a756dbb2 reference/CmpAtomModbus-AllInOne.export +5a07da11853e955633a977bdd59a7d1f8f292c594c2116bc220bd63c8edc9329 reference/Working-CmpAtomModbus.export diff --git a/artifacts/arm64/CmpAtomModbus_library.precompilecache b/artifacts/arm64/CmpAtomModbus_library.precompilecache new file mode 100644 index 0000000000000000000000000000000000000000..06722cd897f012cd4b9fc7ccd7ec7cdcb525b6e9 GIT binary patch literal 172716 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

a;->}AW`xnP7=}BM0ukMZQ;EEpeVlBDGK>r2% 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⁡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 literal 0 HcmV?d00001 diff --git a/artifacts/arm64/libCmpAtomModbus.so b/artifacts/arm64/libCmpAtomModbus.so new file mode 100644 index 0000000000000000000000000000000000000000..cba5e2c7de98e72f10560333553a3221392ffcfe GIT binary patch literal 99648 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 literal 0 HcmV?d00001 diff --git a/component-source/Makefile b/component-source/Makefile new file mode 100644 index 0000000..70d8b2c --- /dev/null +++ b/component-source/Makefile @@ -0,0 +1,16 @@ +CC ?= cc +CFLAGS = -std=c11 -Wall -Wextra -Werror -O2 +.PHONY: test clean +test: tests/driver tests/test_bridge tests/bridge_driver + ./tests/test_bridge + python3 tests/test_tcp.py + python3 tests/test_tcp.py bridge_driver + python3 tests/test_native.py +tests/bridge_driver: tests/bridge_driver.c src/atom_bridge.c src/atom_bridge.h src/atom_mb.c src/atom_mb.h src/atom_rtu.c src/atom_rtu.h src/atom_server.c src/atom_server.h + $(CC) $(CFLAGS) -Isrc tests/bridge_driver.c src/atom_bridge.c src/atom_mb.c src/atom_rtu.c src/atom_server.c -o $@ +tests/test_bridge: tests/test_bridge.c src/atom_bridge.c src/atom_bridge.h src/atom_mb.c src/atom_mb.h src/atom_rtu.c src/atom_rtu.h src/atom_server.c src/atom_server.h + $(CC) $(CFLAGS) -Isrc tests/test_bridge.c src/atom_bridge.c src/atom_mb.c src/atom_rtu.c src/atom_server.c -o $@ +tests/driver: tests/driver.c src/atom_mb.c src/atom_mb.h src/atom_rtu.c src/atom_rtu.h src/atom_server.c src/atom_server.h + $(CC) $(CFLAGS) -Isrc tests/driver.c src/atom_mb.c src/atom_rtu.c src/atom_server.c -o $@ +clean: + rm -f tests/driver tests/test_bridge tests/bridge_driver diff --git a/component-source/component/CmpAtomModbus.c b/component-source/component/CmpAtomModbus.c new file mode 100644 index 0000000..ff44353 --- /dev/null +++ b/component-source/component/CmpAtomModbus.c @@ -0,0 +1,33 @@ +#define _DEFAULT_SOURCE +#include "../src/atom_bridge.h" +#include "CmpStd.h" +#include "CmpErrors.h" +#include "CmpItf.h" +#include "CmpAtomModbusDep.h" + +void CDECL CDECL_EXT atmbcall_cext(atmbcall_cext_struct *p) +{ + p->atMbCall_cext = ab_call( + p->command, + p->handle, + p->ipAddress, + p->port, + p->unitId, + p->functionCode, + p->startAddress, + p->quantity, + p->pData, + p->dataCapacity, + p->pStatus, + p->statusCapacity, + p->nowMs, + p->connectTimeoutMs, + p->responseTimeoutMs, + p->retryDelayMs); +} + + +#include "../src/atom_mb.c" +#include "../src/atom_rtu.c" +#include "../src/atom_server.c" +#include "../src/atom_bridge.c" diff --git a/component-source/component/CmpAtomModbusItf.m4 b/component-source/component/CmpAtomModbusItf.m4 new file mode 100644 index 0000000..0f01230 --- /dev/null +++ b/component-source/component/CmpAtomModbusItf.m4 @@ -0,0 +1,70 @@ +/** + * CmpAtomModbus + * + * + * + */ + +SET_INTERFACE_NAME(`CmpAtomModbus') + +/** EXTERN LIB SECTION BEGIN **/ +/* Comments are ignored for m4 compiler so restructured text can be used. changecom(`/*', `*/') */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * + * Create FUNCTION atMbCall_cext returning UDINT, paste this declaration. + * Properties > Build > External implementation must be selected. + * Library filename and Project Information title: CmpAtomModbus. + * This declaration is the SINGLE external entry point for the C engine. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * +*/ +typedef struct tagatmbcall_cext_struct +{ + RTS_IEC_UDINT command; + RTS_IEC_UDINT handle; + RTS_IEC_DWORD ipAddress; + RTS_IEC_UINT port; + RTS_IEC_BYTE unitId; + RTS_IEC_BYTE functionCode; + RTS_IEC_UINT startAddress; + RTS_IEC_UINT quantity; + RTS_IEC_WORD *pData; + RTS_IEC_UDINT dataCapacity; + RTS_IEC_UDINT *pStatus; + RTS_IEC_UDINT statusCapacity; + RTS_IEC_ULINT nowMs; + RTS_IEC_UDINT connectTimeoutMs; + RTS_IEC_UDINT responseTimeoutMs; + RTS_IEC_UDINT retryDelayMs; + RTS_IEC_UDINT atMbCall_cext; +} atmbcall_cext_struct; + +DEF_API(`void',`CDECL',`atmbcall_cext',`(atmbcall_cext_struct *p)',1,0x709EE65B,0x00020000) + +#ifdef __cplusplus +} +#endif + +/** EXTERN LIB SECTION END **/ + diff --git a/component-source/component/CmpFrame.c b/component-source/component/CmpFrame.c new file mode 100644 index 0000000..7c1f10f --- /dev/null +++ b/component-source/component/CmpFrame.c @@ -0,0 +1,81 @@ +#include "../src/atom_bridge.h" +/***************************************************************************** +* Copyright: Copyright CODESYS Development GmbH +* Program: Extension API for the Linux SL products +******************************************************************************/ + +#include "CmpStd.h" + +#include DEP_H + +USE_STMT + +DLL_DECL int CDECL ComponentEntry(INIT_STRUCT *pInitStruct) +/* Used to exchange function pointers between component manager and components. + Called at startup for each component. + pInitStruct: IN Pointer to structure with: + pfExportFunctions OUT Pointer to function that exports component functions + pfImportFunctions OUT Pointer to function that imports functions from other components + pfGetVersion OUT Pointer to function to get component version + pfRegisterAPI IN Pointer to component manager function to register a API function + pfGetAPI IN Pointer to component manager function to get a API function + pfCallHook IN Pointer to component manager function to call a hook function + Return ERR_OK if library could be initialized, else error code +*/ +{ + pInitStruct->CmpId = COMPONENT_ID; + pInitStruct->pfExportFunctions = ExportFunctions; + pInitStruct->pfImportFunctions = ImportFunctions; + pInitStruct->pfGetVersion = CmpGetVersion; + pInitStruct->pfHookFunction = HookFunction; + pInitStruct->pfCreateInstance = NULL; + pInitStruct->pfDeleteInstance = NULL; + + s_pfCMRegisterAPI = pInitStruct->pfCMRegisterAPI; + s_pfCMRegisterAPI2 = pInitStruct->pfCMRegisterAPI2; + s_pfCMGetAPI = pInitStruct->pfCMGetAPI; + s_pfCMGetAPI2 = pInitStruct->pfCMGetAPI2; + s_pfCMCallHook = pInitStruct->pfCMCallHook; + s_pfCMRegisterClass = pInitStruct->pfCMRegisterClass; + s_pfCMCreateInstance = pInitStruct->pfCMCreateInstance; + return ERR_OK; +} + +/** + * Publish exported functions to the component manager, to make them available for other components. + * Use generated macro EXPORT_STMT. + * ERR_OK or error code in case of error + */ +static int CDECL ExportFunctions(void) +{ + /* Macro to export functions */ + EXPORT_STMT; + return ERR_OK; +} + +/** + * Import function pointers from other components. Use generated macro IMPORT_STMT. + * ERR_OK or error code if function name could not be resolved + */ +static int CDECL ImportFunctions(void) +{ + /* Macro to import functions */ + IMPORT_STMT; + return ERR_OK; +} + +/** + * Return the version of our component. + * Version as defined in dep file + */ +static RTS_UI32 CDECL CmpGetVersion(void) +{ + return CMP_VERSION; +} + +static RTS_RESULT CDECL HookFunction(RTS_UI32 ulHook, RTS_UINTPTR ulParam1, RTS_UINTPTR ulParam2) +{ + if (ulHook == CH_EXIT) ab_shutdown(); + + return ERR_OK; +} diff --git a/component-source/component/makefile b/component-source/component/makefile new file mode 100644 index 0000000..65a1337 --- /dev/null +++ b/component-source/component/makefile @@ -0,0 +1,13 @@ +# Generated from supplied ExtensionSDK; native build on ARM64 Pi. +SDKDIR ?= ../../ExtensionSDK +MAJORVER=0 +MINORVER=3 +CMPVERSION=0x00030000 +# Local development ID; check no other component uses this ID. +CMPID=0x2001 +DOS2UNIX=dos2unix +M4=m4 +CC ?= gcc +# The SDK otherwise includes CmpFrame in its component identity wildcard. +override CSRC := CmpAtomModbus.c +include $(SDKDIR)/makefile diff --git a/component-source/generated/CmpAtomModbus.c b/component-source/generated/CmpAtomModbus.c new file mode 100644 index 0000000..be3373b --- /dev/null +++ b/component-source/generated/CmpAtomModbus.c @@ -0,0 +1,10 @@ +#include "CmpStd.h" +#include "CmpErrors.h" +#include "CmpItf.h" +#include "CmpAtomModbusDep.h" + +void CDECL CDECL_EXT atmbcall_cext(atmbcall_cext_struct *p) +{ + +} + diff --git a/component-source/generated/CmpAtomModbusItf.m4 b/component-source/generated/CmpAtomModbusItf.m4 new file mode 100644 index 0000000..0f01230 --- /dev/null +++ b/component-source/generated/CmpAtomModbusItf.m4 @@ -0,0 +1,70 @@ +/** + * CmpAtomModbus + * + * + * + */ + +SET_INTERFACE_NAME(`CmpAtomModbus') + +/** EXTERN LIB SECTION BEGIN **/ +/* Comments are ignored for m4 compiler so restructured text can be used. changecom(`/*', `*/') */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * + * Create FUNCTION atMbCall_cext returning UDINT, paste this declaration. + * Properties > Build > External implementation must be selected. + * Library filename and Project Information title: CmpAtomModbus. + * This declaration is the SINGLE external entry point for the C engine. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * +*/ +typedef struct tagatmbcall_cext_struct +{ + RTS_IEC_UDINT command; + RTS_IEC_UDINT handle; + RTS_IEC_DWORD ipAddress; + RTS_IEC_UINT port; + RTS_IEC_BYTE unitId; + RTS_IEC_BYTE functionCode; + RTS_IEC_UINT startAddress; + RTS_IEC_UINT quantity; + RTS_IEC_WORD *pData; + RTS_IEC_UDINT dataCapacity; + RTS_IEC_UDINT *pStatus; + RTS_IEC_UDINT statusCapacity; + RTS_IEC_ULINT nowMs; + RTS_IEC_UDINT connectTimeoutMs; + RTS_IEC_UDINT responseTimeoutMs; + RTS_IEC_UDINT retryDelayMs; + RTS_IEC_UDINT atMbCall_cext; +} atmbcall_cext_struct; + +DEF_API(`void',`CDECL',`atmbcall_cext',`(atmbcall_cext_struct *p)',1,0x709EE65B,0x00020000) + +#ifdef __cplusplus +} +#endif + +/** EXTERN LIB SECTION END **/ + diff --git a/component-source/src/atom_bridge.c b/component-source/src/atom_bridge.c new file mode 100644 index 0000000..2f64364 --- /dev/null +++ b/component-source/src/atom_bridge.c @@ -0,0 +1,96 @@ +#include "atom_bridge.h" +#include "atom_mb.h" +#include "atom_rtu.h" +#include "atom_server.h" +#include +#include +typedef struct { am_client c; ar_transport rtu; int serial; uint32_t generation; int used, retired; } slot; +static slot slots[AM_POOL_SIZE]; +static uint32_t token(unsigned i) { return (slots[i].generation<<8)|(i+1u); } +static slot *lookup(uint32_t h) { + unsigned n=h&255u; + if(!n || n>AM_POOL_SIZE) return NULL; + slot *s=&slots[n-1]; + return s->used && s->generation==(h>>8)?s:NULL; +} +static void snapshot(const am_client *c,uint32_t h,uint32_t *s) { + s[0]=h; s[1]=(uint32_t)c->state; s[2]=(uint32_t)c->busy; + s[3]=(uint32_t)c->done; s[4]=(uint32_t)c->error; s[5]=(uint32_t)c->result; + s[6]=(uint32_t)c->last_error; s[7]=(uint32_t)c->socket_error; + s[8]=c->exception; s[9]=(uint32_t)c->write_uncertain; + s[10]=c->connect_attempts; s[11]=c->reconnects; s[12]=c->completed; s[13]=c->failed; + s[14]=(uint32_t)c->has_success; s[15]=(uint32_t)c->last_success_ms; + s[16]=(uint32_t)(c->last_success_ms>>32); s[17]=c->quantity; + s[18]=c->function; s[19]=c->unit; s[20]=(uint32_t)c->enabled; + s[21]=c->connect_timeout_ms; s[22]=c->response_timeout_ms; s[23]=c->retry_delay_ms; +} +uint32_t ab_call(uint32_t cmd,uint32_t h,uint32_t ip,uint16_t port, + uint8_t unit,uint8_t f,uint16_t addr,uint16_t q,uint16_t *data,uint32_t cap, + uint32_t *status,uint32_t sc,uint64_t now,uint32_t ct,uint32_t rt,uint32_t retry) { + slot *s; unsigned i; uint32_t result=0; + if(!status || sc=AS_OPEN && cmd<=AS_PULL)return as_call(cmd,h,ip,port,f,addr,q,data,cap,status,now,retry); + /* Caller must provide distinct data/status buffers with declared capacities. */ + if(cmd==AB_OPEN || cmd==AB_OPEN_RTU) { + char text[128]; + memset(status,0,AM_STATUS_WORDS*sizeof(*status)); + if(cmd==AB_OPEN && !port) return AM_ARGUMENT; + for(i=0;i>24),(unsigned)((ip>>16)&255u), + (unsigned)((ip>>8)&255u),(unsigned)(ip&255u)); + s->serial=(cmd==AB_OPEN_RTU); + if(s->serial) { + if(!data || !q || q>=sizeof(text) || cap127)return AM_ARGUMENT;text[j]=(char)data[j]; } + text[q]=0; + if(!ar_init(&s->c,&s->rtu,text,ip,unit,f,(uint8_t)addr,ct))return AM_ARGUMENT; + } else if(!am_init(&s->c,text,port)) return AM_ARGUMENT; + s->generation++; s->used=1; h=token(i); + snapshot(&s->c,h,status); return 0; + } + s=lookup(h); + if(!s) { memset(status,0,AM_STATUS_WORDS*sizeof(*status)); return AB_BAD_HANDLE; } + switch(cmd) { + case AB_CLOSE: + if(s->serial)ar_close(&s->c);else am_close(&s->c); s->used=0; + /* Never recycle a generation after wrap: stale handles stay invalid. */ + if(s->generation==0xffffffu) s->retired=1; + snapshot(&s->c,0,status); return 0; + case AB_ENABLE: am_enable(&s->c,1,now); break; + case AB_DISABLE: if(s->serial)ar_close(&s->c);else am_enable(&s->c,0,now); break; + case AB_TICK: if(s->serial)ar_tick(&s->c,&s->rtu,now);else am_tick(&s->c,now); break; + case AB_RECONNECT: if(s->serial)ar_reconnect(&s->c,&s->rtu,now);else am_reconnect(&s->c,now); break; + case AB_CONFIGURE: + if(s->c.enabled) result=AM_BUSY; + else if(!ct || !rt || !retry) result=AM_ARGUMENT; + else { s->c.connect_timeout_ms=ct; s->c.response_timeout_ms=rt; s->c.retry_delay_ms=retry; } + break; + case AB_SUBMIT: + if((f==5 || f==6 || f==15 || f==16) && (!data || capserial?ar_request(&s->c,&s->rtu,unit,f,addr,q,data,now):am_request(&s->c,unit,f,addr,q,data,now)); + break; + case AB_COPY_READ: + if(!s->c.done || s->c.function>4 || s->c.function<1) result=AM_ARGUMENT; + else if(!data || capc.quantity) result=AB_BAD_CAPACITY; + else memcpy(data,s->c.data,s->c.quantity*sizeof(*data)); + break; + case AB_ACK: s->c.done=0; s->c.error=0; break; + case AB_REQUEST_TIMEOUT: + if(s->c.busy) result=AM_BUSY; + else if(!rt) result=AM_ARGUMENT; + else s->c.response_timeout_ms=rt; + break; + default: result=AB_BAD_COMMAND; break; + } + snapshot(&s->c,h,status); return result; +} +void ab_shutdown(void) { + as_shutdown(); + unsigned i; + for(i=0;i +/* Fixed pool, one IEC task owns ALL calls. Do not share across tasks. + * Only synchronous pointer access; generation-checked handles, no heap. */ +#define AM_STATUS_WORDS 24 +#define AM_POOL_SIZE 16 +enum { AB_OPEN=1, AB_CLOSE, AB_ENABLE, AB_DISABLE, AB_TICK, AB_SUBMIT, + AB_COPY_READ, AB_RECONNECT, AB_CONFIGURE, AB_ACK, AB_REQUEST_TIMEOUT }; +enum { AB_OPEN_RTU=20 }; +enum { AB_BAD_HANDLE=256, AB_POOL_FULL, AB_BAD_CAPACITY, AB_BAD_COMMAND }; +uint32_t ab_call(uint32_t command,uint32_t handle,uint32_t ip,uint16_t port, + uint8_t unit,uint8_t function,uint16_t address,uint16_t quantity, + uint16_t *data,uint32_t capacity,uint32_t *status,uint32_t status_capacity, + uint64_t now,uint32_t connect_ms,uint32_t response_ms,uint32_t retry_ms); +/* Call on component unload; invalidate handles and close all sockets. */ +void ab_shutdown(void); +#endif diff --git a/component-source/src/atom_mb.c b/component-source/src/atom_mb.c new file mode 100644 index 0000000..453136c --- /dev/null +++ b/component-source/src/atom_mb.c @@ -0,0 +1,147 @@ +#include "atom_mb.h" +#include +#include +#include +#include +#include +#include +#include +#include +#ifndef MSG_NOSIGNAL +#define MSG_NOSIGNAL 0 +#endif +static uint16_t get16(const uint8_t *p) { return (uint16_t)((p[0]<<8)|p[1]); } +static void put16(uint8_t *p,uint16_t v) { p[0]=(uint8_t)(v>>8); p[1]=(uint8_t)v; } +static int writing(uint8_t f) { return f==5 || f==6 || f==15 || f==16; } +static void drop(am_client *c) { if(c->fd>=0) { if(c->serial_port)ioctl(c->fd,TIOCNXCL);close(c->fd); } c->fd=-1; } +static void finish(am_client *c,am_error e) { + c->busy=0; c->done=e==AM_OK; c->error=e!=AM_OK; c->result=e; + if(e==AM_OK) c->completed++; else { c->failed++; c->last_error=e; } +} +static void fault(am_client *c,am_error e,uint64_t now) { + if(c->busy) { c->write_uncertain=writing(c->function) && c->tx_pos>0; finish(c,e); } + c->last_error=e; drop(c); c->state=c->enabled?AM_RETRY:AM_DISABLED; + c->deadline_ms=now+c->retry_delay_ms; +} +int am_init(am_client *c,const char *ip,uint16_t port) { + struct in_addr a; + if(!c || !ip || strlen(ip)>=16 || !port || inet_pton(AF_INET,ip,&a)!=1) return 0; + memset(c,0,sizeof(*c)); c->fd=-1; strcpy(c->ip,ip); c->port=port; + c->connect_timeout_ms=2000; c->response_timeout_ms=1000; c->retry_delay_ms=1000; + return 1; +} +void am_close(am_client *c) { c->enabled=0; fault(c,AM_CANCELLED,0); } +void am_enable(am_client *c,int enabled,uint64_t now) { + if(!enabled) { if(c->enabled) am_close(c); return; } + if(!c->enabled) { c->enabled=1; c->state=AM_RETRY; c->deadline_ms=now; } +} +void am_reconnect(am_client *c,uint64_t now) { fault(c,AM_CANCELLED,now); c->deadline_ms=now; } +am_error am_request(am_client *c,uint8_t unit,uint8_t f,uint16_t addr,uint16_t q, + const uint16_t *v,uint64_t now) { + size_t n=12, bytes=0; unsigned i; + if(c->busy) return AM_BUSY; + if(c->state!=AM_READY) return AM_OFFLINE; + if(!q || (uint32_t)addr+q>65536u) return AM_ARGUMENT; + switch(f) { + case 1: case 2: if(q>2000) return AM_ARGUMENT; break; + case 3: case 4: if(q>125) return AM_ARGUMENT; break; + case 5: case 6: if(q!=1 || !v || (f==5 && v[0]>1)) return AM_ARGUMENT; break; + case 15: if(q>1968 || !v) return AM_ARGUMENT; + for(i=0;i1) return AM_ARGUMENT; + bytes=(q+7u)/8u; n=13+bytes; break; + case 16: if(q>123 || !v) return AM_ARGUMENT; bytes=2u*q; n=13+bytes; break; + default: return AM_ARGUMENT; + } + memset(c->tx,0,sizeof(c->tx)); c->transaction++; + put16(c->tx,c->transaction); put16(c->tx+4,(uint16_t)(n-6)); + c->tx[6]=unit; c->tx[7]=f; put16(c->tx+8,addr); put16(c->tx+10,q); + if(f==5 || f==6) put16(c->tx+10,f==5?(v[0]?0xff00:0):v[0]); + if(f==15 || f==16) { + c->tx[12]=(uint8_t)bytes; + for(i=0;itx+13+2*i,v[i]); + else if(v[i]) c->tx[13+i/8]|=(uint8_t)(1u<<(i%8)); + } + } + c->unit=unit; c->function=f; c->address=addr; c->quantity=q; + c->tx_len=n; c->tx_pos=0; c->rx_len=0; c->rx_need=7; + c->busy=1; c->done=0; c->error=0; c->exception=0; c->write_uncertain=0; + c->result=AM_OK; c->state=AM_SENDING; c->deadline_ms=now+c->response_timeout_ms; + return AM_OK; +} +void am_accept_response(am_client *c,uint64_t now) { + unsigned i; size_t bytes; + if(c->rx[7]==(uint8_t)(c->function|0x80)) { + if(c->rx_need!=9 || !c->rx[8]) { fault(c,AM_PROTOCOL,now); return; } + c->exception=c->rx[8]; finish(c,AM_EXCEPTION); c->state=AM_READY; return; + } + if(c->rx[7]!=c->function) { fault(c,AM_PROTOCOL,now); return; } + if(writing(c->function)) { + if(c->rx_need!=12 || memcmp(c->rx+8,c->tx+8,4)) { fault(c,AM_PROTOCOL,now); return; } + } else { + bytes=c->function<=2?(c->quantity+7u)/8u:2u*c->quantity; + if(c->rx_need!=9+bytes || c->rx[8]!=bytes) { fault(c,AM_PROTOCOL,now); return; } + for(i=0;iquantity;i++) c->data[i]=c->function<=2? + (uint16_t)((c->rx[9+i/8]>>(i%8))&1):get16(c->rx+9+2*i); + } + c->last_success_ms=now; c->has_success=1; finish(c,AM_OK); c->state=AM_READY; +} +void am_tick(am_client *c,uint64_t now) { + struct sockaddr_in a; struct pollfd p; int e,r; socklen_t len; ssize_t n; + if(!c->enabled) return; + if(c->state==AM_RETRY) { + if(nowdeadline_ms) return; + c->connect_attempts++; if(c->connect_attempts>1) c->reconnects++; + c->socket_error=0; c->fd=socket(AF_INET,SOCK_STREAM,0); + if(c->fd<0) { c->socket_error=errno; fault(c,AM_SOCKET,now); return; } + r=fcntl(c->fd,F_GETFL,0); + if(r<0 || fcntl(c->fd,F_SETFL,r|O_NONBLOCK)<0) { c->socket_error=errno; fault(c,AM_SOCKET,now); return; } + memset(&a,0,sizeof(a)); a.sin_family=AF_INET; a.sin_port=htons(c->port); + if(inet_pton(AF_INET,c->ip,&a.sin_addr)!=1) { fault(c,AM_ARGUMENT,now); return; } + r=connect(c->fd,(struct sockaddr*)&a,sizeof(a)); + if(r==0) c->state=AM_READY; + else if(errno==EINPROGRESS) { c->state=AM_CONNECTING; c->deadline_ms=now+c->connect_timeout_ms; } + else { c->socket_error=errno; fault(c,AM_SOCKET,now); } + return; + } + if(c->state==AM_CONNECTING) { + if(now>=c->deadline_ms) { fault(c,AM_CONNECT_TIMEOUT,now); return; } + p.fd=c->fd; p.events=POLLOUT; p.revents=0; r=poll(&p,1,0); + if(r<0) { if(errno!=EINTR) { c->socket_error=errno; fault(c,AM_SOCKET,now); } return; } + if(!r) return; + len=sizeof(e); e=0; + if(getsockopt(c->fd,SOL_SOCKET,SO_ERROR,&e,&len)<0) e=errno; + if(e) { c->socket_error=e; fault(c,AM_SOCKET,now); } else c->state=AM_READY; + return; + } + if(c->state==AM_READY) { + /* Detect idle peer closure; unsolicited bytes cannot belong to a request. */ + uint8_t b; n=recv(c->fd,&b,1,MSG_PEEK); + if(n==0) fault(c,AM_PEER_CLOSED,now); + else if(n>0) fault(c,AM_PROTOCOL,now); + else if(errno!=EAGAIN && errno!=EWOULDBLOCK && errno!=EINTR) { c->socket_error=errno; fault(c,AM_SOCKET,now); } + return; + } + if(now>=c->deadline_ms) { fault(c,AM_RESPONSE_TIMEOUT,now); return; } + if(c->state==AM_SENDING) { + n=send(c->fd,c->tx+c->tx_pos,c->tx_len-c->tx_pos,MSG_NOSIGNAL); + if(n>0) { c->tx_pos+=(size_t)n; if(c->tx_pos==c->tx_len) c->state=AM_RECEIVING; } + else if(n==0) fault(c,AM_PEER_CLOSED,now); + else if(errno!=EAGAIN && errno!=EWOULDBLOCK && errno!=EINTR) { c->socket_error=errno; fault(c,AM_SOCKET,now); } + return; + } + if(c->state!=AM_RECEIVING) return; + n=recv(c->fd,c->rx+c->rx_len,c->rx_need-c->rx_len,0); + if(n==0) { fault(c,AM_PEER_CLOSED,now); return; } + if(n<0) { if(errno!=EAGAIN && errno!=EWOULDBLOCK && errno!=EINTR) { c->socket_error=errno; fault(c,AM_SOCKET,now); } return; } + c->rx_len+=(size_t)n; + if(c->rx_len!=c->rx_need) return; + if(c->rx_need==7) { + uint16_t l=get16(c->rx+4); + if(get16(c->rx)!=c->transaction || get16(c->rx+2)!=0 || c->rx[6]!=c->unit || l<3 || l>254) { + fault(c,AM_PROTOCOL,now); return; + } + c->rx_need=6u+l; return; + } + am_accept_response(c,now); +} diff --git a/component-source/src/atom_mb.h b/component-source/src/atom_mb.h new file mode 100644 index 0000000..dab8cc2 --- /dev/null +++ b/component-source/src/atom_mb.h @@ -0,0 +1,40 @@ +#ifndef ATOM_MB_H +#define ATOM_MB_H +#include +#include +/* Single owner/task per context. Init once, close before disposal. No heap allocation. + * tick() time must be monotonic milliseconds. POSIX IPv4 transport, numeric IP only. */ +typedef enum { AM_DISABLED, AM_RETRY, AM_CONNECTING, AM_READY, AM_SENDING, AM_RECEIVING } am_state; +typedef enum { AM_OK, AM_ARGUMENT, AM_BUSY, AM_OFFLINE, AM_SOCKET, AM_CONNECT_TIMEOUT, + AM_RESPONSE_TIMEOUT, AM_PEER_CLOSED, AM_PROTOCOL, AM_EXCEPTION, AM_CANCELLED } am_error; +typedef struct { + int fd, enabled, serial_port; + am_state state; + am_error last_error, result; + int socket_error; + uint8_t exception, unit, function; + uint16_t transaction, address, quantity; + uint32_t connect_timeout_ms, response_timeout_ms, retry_delay_ms; + uint64_t deadline_ms, last_success_ms; + uint32_t connect_attempts, reconnects, completed, failed; + int busy, done, error, write_uncertain, has_success; + char ip[16]; uint16_t port; + uint8_t tx[260], rx[260]; + size_t tx_len, tx_pos, rx_len, rx_need; + /* Reads: coils/discretes unpacked as 0/1; registers as host-order uint16_t. + * Result is copied only after the entire response validates. */ + uint16_t data[2000]; +} am_client; +int am_init(am_client *c, const char *ip, uint16_t port); +void am_enable(am_client *c, int enabled, uint64_t now_ms); +void am_reconnect(am_client *c, uint64_t now_ms); +void am_close(am_client *c); +void am_tick(am_client *c, uint64_t now_ms); +/* Supported functions: 1,2,3,4,5,6,15,16. Zero-based protocol addresses. + * Writes copy input immediately. No automatic replay of a failed request. + * Completion flags persist until next accepted request; result is per-request. */ +am_error am_request(am_client *c, uint8_t unit, uint8_t function, + uint16_t address, uint16_t quantity, const uint16_t *values, uint64_t now_ms); +/* Shared validated transport response parser. */ +void am_accept_response(am_client *, uint64_t); +#endif diff --git a/component-source/src/atom_rtu.c b/component-source/src/atom_rtu.c new file mode 100644 index 0000000..0cfbfab --- /dev/null +++ b/component-source/src/atom_rtu.c @@ -0,0 +1,101 @@ +#ifndef _DEFAULT_SOURCE +#define _DEFAULT_SOURCE +#endif +#include "atom_rtu.h" +#include +#include +#include +#include +#include +#include +#ifdef __linux__ +#include +#endif +uint16_t ar_crc(const uint8_t *p,size_t n) { + uint16_t crc=0xffff; + while(n--) { crc^=*p++; for(unsigned i=0;i<8;i++) crc=(uint16_t)((crc>>1)^((crc&1)?0xa001:0)); } + return crc; +} +static speed_t ar_speed(uint32_t baud) { + switch(baud) { case 1200:return B1200;case 2400:return B2400;case 4800:return B4800; + case 9600:return B9600;case 19200:return B19200;case 38400:return B38400; + case 57600:return B57600;case 115200:return B115200;default:return 0; } +} +int ar_init(am_client *c,ar_transport *r,const char *path,uint32_t baud,uint8_t parity,uint8_t bits,uint8_t stops,uint32_t rs485) { + if(!path || !*path || strlen(path)>=sizeof(r->device) || !ar_speed(baud) || parity>2 || bits!=8 || (stops!=1 && stops!=2) || rs485>1) return 0; + am_init(c,"127.0.0.1",1);c->serial_port=1;memset(r,0,sizeof(*r));strcpy(r->device,path); + r->baud=baud;r->parity=parity;r->bits=bits;r->stops=stops;r->rs485=rs485; + r->gap_ms=baud>19200?2:(uint32_t)((3500u*(1u+bits+(parity!=0)+stops)+baud-1u)/baud); + return 1; +} +static void ar_fault(am_client *c,ar_transport *r,am_error error,uint64_t now) { + if(c->busy) { c->write_uncertain=(c->function>=5 && r->tx_pos>0);c->busy=0;c->done=0;c->error=1;c->result=error;c->failed++; } + c->last_error=error;if(c->fd>=0){ioctl(c->fd,TIOCNXCL);close(c->fd);}c->fd=-1;c->state=c->enabled?AM_RETRY:AM_DISABLED; + c->deadline_ms=now+c->retry_delay_ms;r->quiet_until=c->deadline_ms;r->rx_len=0; +} +am_error ar_request(am_client *c,ar_transport *r,uint8_t unit,uint8_t f,uint16_t addr,uint16_t q,const uint16_t *v,uint64_t now) { + /* Broadcast writes have no response; reject explicitly rather than fabricate success. */ + if(unit<1 || unit>247)return AM_ARGUMENT; + am_error error=am_request(c,unit,f,addr,q,v,now);if(error!=AM_OK)return error; + r->tx_len=c->tx_len-6;memcpy(r->tx,c->tx+6,r->tx_len); + uint16_t crc=ar_crc(r->tx,r->tx_len);r->tx[r->tx_len++]=(uint8_t)crc;r->tx[r->tx_len++]=(uint8_t)(crc>>8); + r->tx_pos=0;r->rx_len=0;r->rx_need=0;return AM_OK; +} +void ar_tick(am_client *c,ar_transport *r,uint64_t now) { + struct termios options;ssize_t n; + if(!c->enabled)return; + if(c->state==AM_RETRY) { + if(nowdeadline_ms)return; + c->connect_attempts++;if(c->connect_attempts>1)c->reconnects++; + c->socket_error=0;c->fd=open(r->device,O_RDWR|O_NOCTTY|O_NONBLOCK|O_CLOEXEC); + if(c->fd<0) { c->socket_error=errno;ar_fault(c,r,AM_SOCKET,now);return; } + if(ioctl(c->fd,TIOCEXCL)<0 || tcgetattr(c->fd,&options)<0) goto serial_error; + cfmakeraw(&options);options.c_cflag&=~(CSIZE|PARENB|PARODD|CSTOPB|CRTSCTS); + options.c_cflag|=CLOCAL|CREAD|(r->bits==7?CS7:CS8); + if(r->parity)options.c_cflag|=PARENB|(r->parity==1?PARODD:0); + if(r->stops==2)options.c_cflag|=CSTOPB; + options.c_cc[VMIN]=0;options.c_cc[VTIME]=0; + if(cfsetispeed(&options,ar_speed(r->baud))<0 || cfsetospeed(&options,ar_speed(r->baud))<0 || tcsetattr(c->fd,TCSANOW,&options)<0 || tcflush(c->fd,TCIOFLUSH)<0) goto serial_error; +#ifdef __linux__ + if(r->rs485) { struct serial_rs485 mode;memset(&mode,0,sizeof(mode));mode.flags=SER_RS485_ENABLED|SER_RS485_RTS_ON_SEND; + if(ioctl(c->fd,TIOCSRS485,&mode)<0)goto serial_error; } +#endif + c->state=AM_READY;r->quiet_until=now+r->gap_ms;return; + } + if(c->state==AM_READY)return; + if(now>=c->deadline_ms) { ar_fault(c,r,AM_RESPONSE_TIMEOUT,now);return; } + if(c->state==AM_SENDING) { + if(nowquiet_until)return; + if(r->tx_pos==0 && tcflush(c->fd,TCIFLUSH)<0)goto serial_error; + n=write(c->fd,r->tx+r->tx_pos,r->tx_len-r->tx_pos); + if(n>0) { r->tx_pos+=(size_t)n;c->tx_pos=r->tx_pos;if(r->tx_pos==r->tx_len)c->state=AM_RECEIVING; } + else if(n<0 && errno!=EAGAIN && errno!=EWOULDBLOCK && errno!=EINTR)goto serial_error; + return; + } + if(c->state==AM_RECEIVING) { + n=read(c->fd,r->rx+r->rx_len,sizeof(r->rx)-r->rx_len); + if(n<0) { if(errno!=EAGAIN && errno!=EWOULDBLOCK && errno!=EINTR)goto serial_error;return; } + if(n==0)return; + r->rx_len+=(size_t)n;r->quiet_until=now+r->gap_ms; + if(r->rx_len>=2 && (r->rx[0]!=c->unit || (r->rx[1]!=c->function && r->rx[1]!=(uint8_t)(c->function|0x80)))) { ar_fault(c,r,AM_PROTOCOL,now);return; } + if(r->rx_len>=2) { + if(r->rx[1]&0x80)r->rx_need=5; + else if(c->function>=5)r->rx_need=8; + else if(r->rx_len>=3)r->rx_need=5u+r->rx[2]; + } + if(r->rx_need>sizeof(r->rx) || (r->rx_need && r->rx_len>r->rx_need)) { ar_fault(c,r,AM_PROTOCOL,now);return; } + if(!r->rx_need || r->rx_lenrx_need)return; + if(ar_crc(r->rx,r->rx_need)!=0) { ar_fault(c,r,AM_PROTOCOL,now);return; } + /* Convert validated RTU ADU to the shared response validator's MBAP representation. */ + size_t payload=r->rx_need-2;memcpy(c->rx+6,r->rx,payload);c->rx_need=6+payload; + am_accept_response(c,now); + if(c->state==AM_RETRY)r->quiet_until=c->deadline_ms; + return; + } + return; +serial_error: + c->socket_error=errno;ar_fault(c,r,AM_SOCKET,now); +} + +void ar_close(am_client *c){if(c->fd>=0)ioctl(c->fd,TIOCNXCL);am_close(c);} +void ar_reconnect(am_client *c,ar_transport *r,uint64_t now){ar_fault(c,r,AM_CANCELLED,now);c->deadline_ms=now;} diff --git a/component-source/src/atom_rtu.h b/component-source/src/atom_rtu.h new file mode 100644 index 0000000..54154e3 --- /dev/null +++ b/component-source/src/atom_rtu.h @@ -0,0 +1,16 @@ +#ifndef ATOM_RTU_H +#define ATOM_RTU_H +#include "atom_mb.h" +typedef struct { + char device[128]; uint32_t baud, rs485; + uint8_t parity, bits, stops; + uint8_t tx[256], rx[256]; size_t tx_len, tx_pos, rx_len, rx_need; + uint64_t quiet_until; uint32_t gap_ms; +} ar_transport; +int ar_init(am_client *, ar_transport *,const char *,uint32_t,uint8_t,uint8_t,uint8_t,uint32_t); +am_error ar_request(am_client *,ar_transport *,uint8_t,uint8_t,uint16_t,uint16_t,const uint16_t *,uint64_t); +void ar_tick(am_client *,ar_transport *,uint64_t); +uint16_t ar_crc(const uint8_t *,size_t); +void ar_close(am_client *); +void ar_reconnect(am_client *, ar_transport *, uint64_t); +#endif diff --git a/component-source/src/atom_server.c b/component-source/src/atom_server.c new file mode 100644 index 0000000..34a8b71 --- /dev/null +++ b/component-source/src/atom_server.c @@ -0,0 +1,131 @@ +#include "atom_server.h" +#include "atom_mb.h" +#include +#include +#include +#include +#include +#include +#define AS_POOL 4 +#define AS_PEERS 8 +#define AS_ITEMS 2000 +#ifndef MSG_NOSIGNAL +#define MSG_NOSIGNAL 0 +#endif +typedef struct { int fd;uint8_t rx[260],tx[260];size_t received,needed,sent,length;uint64_t deadline; } as_peer; +typedef struct { + int used,enabled,listener,running,error,os_error;uint32_t generation,received,replied,exceptions,retry; + uint32_t ip;uint16_t port,base[4],count[4],values[4][AS_ITEMS];uint64_t retry_at; + as_peer peers[AS_PEERS]; +} as_server; +static as_server as_slots[AS_POOL]; +static uint16_t as_get16(const uint8_t *p){return (uint16_t)((p[0]<<8)|p[1]);} +static void as_put16(uint8_t *p,uint16_t v){p[0]=(uint8_t)(v>>8);p[1]=(uint8_t)v;} +static void as_peer_close(as_peer *p){if(p->fd>=0)close(p->fd);p->fd=-1;p->received=0;p->needed=7;p->sent=0;p->length=0;} +static void as_stop(as_server *s){if(s->listener>=0)close(s->listener);s->listener=-1;s->running=0;for(unsigned i=0;ipeers[i]);} +static void as_snapshot(as_server *s,uint32_t h,uint32_t *o){ + memset(o,0,24*sizeof(*o));o[0]=h;o[1]=(uint32_t)s->running;o[2]=(uint32_t)s->error;o[3]=s->error?AM_SOCKET:AM_OK;o[4]=(uint32_t)s->os_error; + for(unsigned i=0;ipeers[i].fd>=0)o[5]++; + o[6]=s->received;o[7]=s->replied;o[8]=s->exceptions; +} +static int as_nonblock(int fd){int flags=fcntl(fd,F_GETFL,0);return flags>=0 && fcntl(fd,F_SETFL,flags|O_NONBLOCK)==0;} +static int as_range(as_server *s,unsigned table,uint16_t addr,uint16_t count){return count && addr>=s->base[table] && (uint32_t)addr+count<=(uint32_t)s->base[table]+s->count[table];} +static void as_reply(as_server *s,as_peer *p){ + uint8_t f=p->rx[7],exception=0;uint16_t address=0,q=0;unsigned table=0,index=0;size_t n=9; + if(p->needed<12){exception=(f==1 || f==2 || f==3 || f==4 || f==5 || f==6 || f==15 || f==16)?3:1;goto finish;} + address=as_get16(p->rx+8);q=as_get16(p->rx+10); + switch(f){ + case 1:case 2:case 3:case 4: + table=f==1?0:f==2?1:f==3?2:3; + if(p->needed!=12 || !q || q>(f<=2?2000:125)){exception=3;break;} + if(!as_range(s,table,address,q)){exception=2;break;} + index=address-s->base[table];p->tx[8]=(uint8_t)(f<=2?(q+7u)/8u:2u*q);n=9+p->tx[8];memset(p->tx+9,0,n-9); + for(unsigned i=0;ivalues[table][index+i])p->tx[9+i/8]|=(uint8_t)(1u<<(i%8));}else as_put16(p->tx+9+2*i,s->values[table][index+i]);} + break; + case 5:case 6: + table=f==5?0:2; + if(p->needed!=12 || (f==5 && q!=0 && q!=0xff00)){exception=3;break;} + if(!as_range(s,table,address,1)){exception=2;break;} + s->values[table][address-s->base[table]]=f==5?(q!=0):q;memcpy(p->tx+8,p->rx+8,4);n=12;break; + case 15:case 16: + table=f==15?0:2; + if(!q || q>(f==15?1968:123) || p->needed<13 || p->rx[12]!=(f==15?(q+7u)/8u:2u*q) || p->needed!=(size_t)(13+p->rx[12])){exception=3;break;} + if(!as_range(s,table,address,q)){exception=2;break;} + index=address-s->base[table]; + for(unsigned i=0;ivalues[table][index+i]=f==15?(uint16_t)((p->rx[13+i/8]>>(i%8))&1):as_get16(p->rx+13+2*i); + memcpy(p->tx+8,p->rx+8,4);n=12;break; + default:exception=1;break; + } +finish: + s->received++;memcpy(p->tx,p->rx,4);p->tx[6]=p->rx[6];p->tx[7]=f; + if(exception){p->tx[7]=(uint8_t)(f|0x80);p->tx[8]=exception;n=9;s->exceptions++;} + as_put16(p->tx+4,(uint16_t)(n-6));p->length=n;p->sent=0; +} +static void as_tick(as_server *s,uint64_t now){ + if(!s->enabled)return; + if(s->listener<0){ + if(nowretry_at)return; + struct sockaddr_in a;int reuse=1;s->listener=socket(AF_INET,SOCK_STREAM,0); + if(s->listener<0)goto listener_error; + setsockopt(s->listener,SOL_SOCKET,SO_REUSEADDR,&reuse,sizeof(reuse)); + if(!as_nonblock(s->listener))goto listener_error; + memset(&a,0,sizeof(a));a.sin_family=AF_INET;a.sin_port=htons(s->port);a.sin_addr.s_addr=htonl(s->ip); + if(bind(s->listener,(struct sockaddr *)&a,sizeof(a))<0 || listen(s->listener,AS_PEERS)<0)goto listener_error; + s->running=1;s->error=0;s->os_error=0; + } + /* One accept and one I/O action per peer per scan; fixed work/storage bounds. */ + int fd=accept(s->listener,NULL,NULL); + if(fd>=0){unsigned i;for(i=0;ipeers[i].fd<0)break; + if(i==AS_PEERS || !as_nonblock(fd))close(fd);else{s->peers[i].fd=fd;s->peers[i].deadline=now+60000;}} + else if(errno!=EAGAIN && errno!=EWOULDBLOCK && errno!=EINTR)goto listener_error; + for(unsigned i=0;ipeers[i];if(p->fd<0)continue; + if(now>=p->deadline){as_peer_close(p);continue;} + if(p->length){ + ssize_t n=send(p->fd,p->tx+p->sent,p->length-p->sent,MSG_NOSIGNAL); + if(n>0){p->sent+=(size_t)n;if(p->sent==p->length){s->replied++;p->length=0;p->sent=0;p->received=0;p->needed=7;p->deadline=now+60000;}} + else if(n==0 || (errno!=EAGAIN && errno!=EWOULDBLOCK && errno!=EINTR))as_peer_close(p); + }else{ + ssize_t n=recv(p->fd,p->rx+p->received,p->needed-p->received,0); + if(n>0){if(p->received==0)p->deadline=now+5000;p->received+=(size_t)n; + if(p->received==7){uint16_t length=as_get16(p->rx+4);if(as_get16(p->rx+2)!=0 || length<2 || length>254){as_peer_close(p);continue;}p->needed=6u+length;} + if(p->received==p->needed){as_reply(s,p);p->deadline=now+5000;} + }else if(n==0 || (errno!=EAGAIN && errno!=EWOULDBLOCK && errno!=EINTR))as_peer_close(p); + } + } + return; +listener_error: + s->os_error=errno;s->error=1;as_stop(s);s->retry_at=now+s->retry; +} +uint32_t as_call(uint32_t cmd,uint32_t h,uint32_t ip,uint16_t port,uint8_t table,uint16_t addr,uint16_t q,uint16_t *data,uint32_t cap,uint32_t *out,uint64_t now,uint32_t retry){ + as_server *s;unsigned i;uint32_t result=0; + if(cmd==AS_OPEN){ + memset(out,0,24*sizeof(*out));if(!port || !retry)return AM_ARGUMENT; + for(i=0;igeneration+1;memset(s,0,sizeof(*s));s->generation=generation;s->used=1;s->listener=-1;s->ip=ip;s->port=port;s->retry=retry; + for(unsigned j=0;jpeers[j].fd=-1;as_peer_close(&s->peers[j]);} + h=(generation<<8)|(i+65u);as_snapshot(s,h,out);return 0; + } + i=(h&255u);if(i<65 || i>=65+AS_POOL){memset(out,0,24*sizeof(*out));return 256;}i-=64; + if( !as_slots[i-1].used || as_slots[i-1].generation!=(h>>8)){memset(out,0,24*sizeof(*out));return 256;} + s=&as_slots[i-1]; + switch(cmd){ + case AS_CLOSE:as_stop(s);s->used=0;as_snapshot(s,0,out);return 0; + case AS_ENABLE:s->enabled=1;break; + case AS_DISABLE:s->enabled=0;as_stop(s);break; + case AS_TICK:as_tick(s,now);break; + case AS_PUSH:case AS_PULL: + if(table>3 || !q || q>AS_ITEMS || (uint32_t)addr+q>65536u)result=AM_ARGUMENT; + else if(!data || cap1){result=AM_ARGUMENT;break;}} + if(!result){s->base[table]=addr;s->count[table]=q;memcpy(s->values[table],data,q*sizeof(*data));} + }else if(s->base[table]!=addr || s->count[table]!=q)result=AM_ARGUMENT; + else memcpy(data,s->values[table],q*sizeof(*data)); + break; + default:result=259;break; + } + as_snapshot(s,h,out);return result; +} +void as_shutdown(void){for(unsigned i=0;i +enum { AS_OPEN=30,AS_CLOSE,AS_ENABLE,AS_DISABLE,AS_TICK,AS_PUSH,AS_PULL }; +uint32_t as_call(uint32_t,uint32_t,uint32_t,uint16_t,uint8_t,uint16_t,uint16_t,uint16_t *,uint32_t,uint32_t *,uint64_t,uint32_t); +void as_shutdown(void); +#endif diff --git a/component-source/tests/bridge_driver.c b/component-source/tests/bridge_driver.c new file mode 100644 index 0000000..da2349f --- /dev/null +++ b/component-source/tests/bridge_driver.c @@ -0,0 +1,29 @@ +#define _POSIX_C_SOURCE 200809L +#include "atom_bridge.h" +#include +#include +#include +static uint64_t now(void) { struct timespec t; clock_gettime(CLOCK_MONOTONIC,&t); return (uint64_t)t.tv_sec*1000+(uint64_t)t.tv_nsec/1000000; } +int main(int argc,char **argv) { + uint32_t s[24],h=0; uint16_t data[2]={42,43}; unsigned ok=0,err=0; + int uncertain=0,last=0; uint64_t start=now(); struct timespec pause={0,1000000}; + if(argc!=4) return 2; + uint16_t port=(uint16_t)atoi(argv[1]); uint8_t f=(uint8_t)atoi(argv[2]); +#define CALL(cmd) ab_call(cmd,h,0x7f000001u,port,1,f,0,2,data,2,s,24,now(),100,80,20) + if(CALL(AB_OPEN)) return 2; + h=s[0]; if(CALL(AB_CONFIGURE) || CALL(AB_ENABLE)) return 2; + while(now()-start<1500 && ok<(unsigned)atoi(argv[3])) { + if(CALL(AB_TICK)) return 2; + if(s[3]) { + if(f<=4 && CALL(AB_COPY_READ)) return 2; + ok++; if(CALL(AB_ACK)) return 2; + } + if(s[4]) { err++; last=(int)s[5]; uncertain|=(int)s[9]; if(CALL(AB_ACK)) return 2; } + if(s[1]==3 && ok<(unsigned)atoi(argv[3])) { + if(CALL(AB_REQUEST_TIMEOUT) || CALL(AB_SUBMIT)) return 2; + } + nanosleep(&pause,0); + } + printf("%u %u %u %d %d %u %u\n",ok,err,s[11],uncertain,last,data[0],data[1]); + CALL(AB_CLOSE); return ok==(unsigned)atoi(argv[3])?0:1; +} diff --git a/component-source/tests/driver.c b/component-source/tests/driver.c new file mode 100644 index 0000000..92f55d7 --- /dev/null +++ b/component-source/tests/driver.c @@ -0,0 +1,24 @@ +#define _POSIX_C_SOURCE 200809L +#include "atom_mb.h" +#include +#include +#include +static uint64_t now(void) { struct timespec t; clock_gettime(CLOCK_MONOTONIC,&t); return (uint64_t)t.tv_sec*1000+(uint64_t)t.tv_nsec/1000000; } +int main(int argc,char **argv) { + am_client c; uint64_t start=now(); unsigned successes=0,errors=0; int uncertain=0,last=0; + struct timespec pause={0,1000000}; uint16_t values[2]={42,43}; + if(argc!=4 || !am_init(&c,"127.0.0.1",(uint16_t)atoi(argv[1]))) return 2; + c.retry_delay_ms=20; c.response_timeout_ms=80; c.connect_timeout_ms=100; + am_enable(&c,1,start); + while(now()-start<1500 && successes<(unsigned)atoi(argv[3])) { + uint64_t t=now(); am_tick(&c,t); + if(c.done) { successes++; c.done=0; } + if(c.error) { errors++; last=c.result; uncertain|=c.write_uncertain; c.error=0; } + if(c.state==AM_READY && successes<(unsigned)atoi(argv[3])) { + int f=atoi(argv[2]); am_request(&c,1,(uint8_t)f,0,2,values,t); + } + nanosleep(&pause,0); + } + printf("%u %u %u %d %d %u %u\n",successes,errors,c.reconnects,uncertain,last,c.data[0],c.data[1]); + am_close(&c); return successes==(unsigned)atoi(argv[3])?0:1; +} diff --git a/component-source/tests/test_bridge.c b/component-source/tests/test_bridge.c new file mode 100644 index 0000000..45cc4aa --- /dev/null +++ b/component-source/tests/test_bridge.c @@ -0,0 +1,19 @@ +#include "atom_bridge.h" +#include +#include +#define CALL(cmd,h) ab_call(cmd,h,0x7f000001u,502,1,3,0,2,NULL,0,status,24,100,2000,1000,1000) +int main(void) { + uint32_t status[24],handles[16],old,newh; unsigned i; + assert(ab_call(AB_OPEN,0,0,502,0,0,0,0,NULL,0,status,23,0,0,0,0)==AB_BAD_CAPACITY); + for(i=0;i<16;i++) { assert(CALL(AB_OPEN,0)==0); handles[i]=status[0]; assert(handles[i]); } + assert(CALL(AB_OPEN,0)==AB_POOL_FULL); + old=handles[0]; assert(CALL(AB_CLOSE,old)==0); assert(CALL(AB_TICK,old)==AB_BAD_HANDLE); + assert(CALL(AB_OPEN,0)==0); newh=status[0]; assert(newh!=old); + assert(CALL(AB_CONFIGURE,newh)==0); assert(CALL(AB_ENABLE,newh)==0); + assert(CALL(AB_REQUEST_TIMEOUT,newh)==0); assert(status[22]==1000); + assert(CALL(AB_CONFIGURE,newh)==2); assert(CALL(AB_SUBMIT,newh)==3); + assert(CALL(AB_DISABLE,newh)==0); assert(CALL(AB_COPY_READ,newh)==1); + ab_shutdown(); assert(CALL(AB_TICK,newh)==AB_BAD_HANDLE); + puts("PASS bridge: capacity, pool limit, stale handles, configure, offline submission, shutdown"); + return 0; +} diff --git a/component-source/tests/test_native.py b/component-source/tests/test_native.py new file mode 100644 index 0000000..bc388c0 --- /dev/null +++ b/component-source/tests/test_native.py @@ -0,0 +1,114 @@ +#!/usr/bin/env python3 +"""Real PTY/socket integration tests for the native RTU and TCP server bridge.""" +import ctypes as C,os,pty,select,socket,struct,subprocess,time,tempfile +from pathlib import Path +root=Path(__file__).resolve().parents[1] +with tempfile.TemporaryDirectory() as tmp: + so=Path(tmp)/'test-native.so' + subprocess.run(['cc','-shared','-fPIC','-std=c11','-Wall','-Wextra','-Werror','-O2','-I'+str(root/'src'),*[str(root/'src'/f) for f in ['atom_mb.c','atom_rtu.c','atom_server.c','atom_bridge.c']],'-o',str(so)],check=True) + lib=C.CDLL(str(so));fn=lib.ab_call + U=C.c_uint32;W=C.c_uint16;B=C.c_uint8 + fn.argtypes=[U,U,U,W,B,B,W,W,C.POINTER(W),U,C.POINTER(U),U,C.c_uint64,U,U,U];fn.restype=U + data=(W*2000)();status=(U*24)() + def now():return int(time.monotonic()*1000) + def call(cmd,h=0,ip=0,port=0,unit=1,f=3,addr=0,q=1,ct=100,rt=100,retry=10,when=None): + return fn(cmd,h,ip,port,unit,f,addr,q,data,2000,status,24,now() if when is None else when,ct,rt,retry) + def crc(frame): + v=0xffff + for byte in frame: + v^=byte + for _ in range(8):v=(v>>1)^(0xa001 if v&1 else 0) + return v + def adu(payload):return payload+struct.pack('=7 and f>=15 else 8 + if len(received)>=need and not sent: + assert crc(received)==0;sent=True + payload=(bytes([1,f])+received[2:6]) if f>=15 else bytes([1,f,4,0,42,0,43]) + if mode=='exception':payload=bytes([1,f|0x80,2]) + if mode=='echo' and attempt==0:payload=payload[:3]+bytes([payload[3]^1])+payload[4:] + response=adu(payload) + if mode=='crc' and attempt==0:response=response[:-1]+bytes([response[-1]^1]) + if mode!='timeout' or attempt>0: + fragments=[response[:2],response[2:4],response[4:]] if mode=='fragment' else [response] + if fragments:os.write(master,fragments.pop(0)) + if status[3] or status[4]:break + time.sleep(.002) + assert sent and (status[3] or status[4]),list(status) + if mode in ['crc','echo'] and attempt==0:assert status[5]==8 + elif mode=='timeout' and attempt==0:assert status[5]==6 + elif mode=='exception':assert status[5]==9 and status[8]==2 and status[1]==3 + else: + assert status[3]==1,list(status) + if f<=4:assert call(7,h)==0 and list(data[:2])==[42,43] + assert call(10,h)==0 + if attempt==0 and mode in ['crc','timeout','echo']:ready(h) + assert call(6,h,unit=0,f=3,addr=0,q=1)==1 # Broadcast unsupported, no fake completion. + assert call(2,h)==0;assert call(5,h)==256;os.close(master) + for mode in ['normal','fragment','crc','timeout','exception']:rtu_scenario(mode);print('PASS RTU',mode) + rtu_scenario('normal',16);print('PASS RTU register write') + rtu_scenario('echo',16);print('PASS RTU invalid echo and reopen recovery') + rtu_scenario('normal',15);print('PASS RTU coil write') + # Native TCP server, four independent tables mapped at nonzero Modbus address. + probe=socket.socket();probe.bind(('127.0.0.1',0));port=probe.getsockname()[1];probe.close() + assert call(30,ip=0x7f000001,port=port)==0;h=status[0] + for table in range(4): + for i in range(16):data[i]=i%2 if table<2 else 100+i + assert call(35,h,f=table,addr=10,q=16)==0 + assert call(32,h)==0;assert call(34,h)==0 and status[1]==1 + peer=socket.create_connection(('127.0.0.1',port));peer.setblocking(False) + tid=0 + def exchange(pdu): + global tid + tid+=1;packet=struct.pack('>HHHB',tid,0,len(pdu)+1,1)+pdu + peer.send(packet[:3]);assert call(34,h)==0;peer.send(packet[3:]) + reply=b'';end=time.monotonic()+1 + while time.monotonic()=7 and len(reply)==6+struct.unpack('>H',reply[4:6])[0]:return reply[7:] + time.sleep(.001) + raise AssertionError(('server timeout',pdu,reply)) + for f in [1,2,3,4]: + rep=exchange(struct.pack('>BHH',f,10,2));assert rep==(bytes([f,1,2]) if f<=2 else bytes([f,4,0,100,0,101]));print('PASS slave read FC',f) + for f in [5,6]: + value=0xff00 if f==5 else 456;pdu=struct.pack('>BHH',f,10,value);assert exchange(pdu)==pdu + assert call(36,h,f=0 if f==5 else 2,addr=10,q=16)==0 and data[0]==(1 if f==5 else 456);print('PASS slave write FC',f) + for f in [15,16]: + payload=b'\x01' if f==15 else struct.pack('>HH',321,654) + pdu=struct.pack('>BHHB',f,10,2,len(payload))+payload + assert exchange(pdu)==struct.pack('>BHH',f,10,2) + assert call(36,h,f=0 if f==15 else 2,addr=10,q=16)==0 and list(data[:2])==([1,0] if f==15 else [321,654]);print('PASS slave write FC',f) + assert exchange(struct.pack('>BHH',3,0,1))==bytes([0x83,2]) + assert exchange(struct.pack('>BHH',16,10,0))==bytes([0x90,3]) + assert exchange(struct.pack('>BHH',99,10,1))==bytes([0xe3,1]) + print('PASS slave exceptions and nonzero table bases') + assert call(31,h)==0;assert call(34,h)==256;peer.close() + # Listener bind error recovers after the conflicting listener disappears. + blocker=socket.socket();blocker.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1);blocker.bind(('127.0.0.1',port));blocker.listen() + assert call(30,ip=0x7f000001,port=port)==0;h=status[0];call(32,h);call(34,h);assert status[2]==1 + blocker.close();call(34,h,when=now()+100);assert status[1]==1 and status[2]==0 + call(31,h);print('PASS slave listener recovery and stale handles') + lib.ab_shutdown() diff --git a/component-source/tests/test_tcp.py b/component-source/tests/test_tcp.py new file mode 100644 index 0000000..bcdcd36 --- /dev/null +++ b/component-source/tests/test_tcp.py @@ -0,0 +1,59 @@ +import socket, struct, subprocess, threading, time, sys +from pathlib import Path +ROOT=Path(__file__).resolve().parents[1] +DRIVER=ROOT/'tests'/(sys.argv[1] if len(sys.argv)>1 else 'driver') +def exact(s,n): + b=b'' + while len(b)H',h[4:6])[0]-1) + except (EOFError,ConnectionError,socket.timeout): break + if first and mode in ('close','timeout','bad_tid','bad_length','write_drop'): + first=False + if mode=='timeout': time.sleep(.12) + elif mode=='bad_tid': s.sendall(b'\xff\xff'+h[2:4]+b'\x00\x07'+h[6:7]+b'\x03\x04\x00\x2a\x00\x2b') + elif mode=='bad_length': s.sendall(h[:4]+b'\xff\xff'+h[6:7]) + break + if first and mode=='exception': reply=bytes([p[0]|128,2]); first=False + elif function==16: reply=p[:5] + elif function==1: reply=b'\x01\x01\x03' + else: reply=b'\x03\x04\x00\x2a\x00\x2b' + packet=h[:4]+struct.pack('>H',len(reply)+1)+h[6:7]+reply + if mode=='fragment': + for b in packet: s.sendall(bytes([b])); time.sleep(.001) + else: s.sendall(packet) + except Exception as e: issues.append(e) + worker=threading.Thread(target=server); worker.start() + try: + p=subprocess.run([str(DRIVER),str(listener.getsockname()[1]),str(function),'2'],capture_output=True,text=True,timeout=4) + assert p.returncode==0,(mode,p.stdout,p.stderr) + ok,err,reconnect,uncertain,last,a,b=map(int,p.stdout.split()) + assert ok==2 + if function==3: assert (a,b)==(42,43) + if function==1: assert (a,b)==(1,1) + if mode in ('close','timeout','bad_tid','bad_length','write_drop'): assert err>=1 and reconnect>=1 + if mode=='exception': assert err==1 and reconnect==0 and last==9 + if mode=='write_drop': assert uncertain==1 + print('PASS',mode,p.stdout.strip()) + finally: + listener.close(); worker.join(3) + assert not issues,issues +for mode in ('normal','fragment','close','timeout','bad_tid','bad_length','exception'): run(mode) +run('write_drop',16) +run('coils',1) diff --git a/docs/API-REFERENCE.md b/docs/API-REFERENCE.md new file mode 100644 index 0000000..34ee4c8 --- /dev/null +++ b/docs/API-REFERENCE.md @@ -0,0 +1,1590 @@ +# atMb API reference + +Generated from your working `CmpAtomModbus(1).export`. Documents every code object, including internal methods and property accessors. Runtime implementations, identifiers, declarations and embedded native payloads are preserved in the documented export; additions are comments only. + +## atMbCall_cext + +External C ABI entry point used by the wrappers. Application code should normally call the function blocks. Do not change parameter order/types or external implementation settings. Pointers are accessed synchronously by C; provide distinct valid data/status buffers and truthful capacities. Client status requires 24 UDINT elements. All calls must be owned by one IEC task. + +```iecst +(* Create FUNCTION atMbCall_cext returning UDINT, paste this declaration. + Properties > Build > External implementation must be selected. + Library filename and Project Information title: CmpAtomModbus. + This declaration is the SINGLE external entry point for the C engine. *) +FUNCTION atMbCall_cext : UDINT +VAR_INPUT + command : UDINT; + handle : UDINT; + ipAddress : DWORD; + port : UINT; + unitId : BYTE; + functionCode : BYTE; + startAddress : UINT; + quantity : UINT; + pData : POINTER TO WORD; + dataCapacity : UDINT; + pStatus : POINTER TO UDINT; + statusCapacity : UDINT; + nowMs : ULINT; + connectTimeoutMs : UDINT; + responseTimeoutMs : UDINT; + retryDelayMs : UDINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `command` | VAR_INPUT | `UDINT` | Native command selector. Use wrappers in application code. | +| `handle` | VAR_INPUT | `UDINT` | Generation-checked native context handle; 0 for open. | +| `ipAddress` | VAR_INPUT | `DWORD` | Packed IPv4 for TCP commands; command 20 overloads this field with RTU baud rate. | +| `port` | VAR_INPUT | `UINT` | Slave listening port, default 502, must be nonzero. | +| `unitId` | VAR_INPUT | `BYTE` | Transaction unit ID; command 20 overloads it with serial parity. | +| `functionCode` | VAR_INPUT | `BYTE` | Modbus FC; command 20 uses data bits, server push/pull use table ID. | +| `startAddress` | VAR_INPUT | `UINT` | Protocol start; command 20 uses stop bits. | +| `quantity` | VAR_INPUT | `UINT` | Item count; command 20 uses serial path byte count. | +| `pData` | VAR_INPUT | `POINTER TO WORD` | WORD buffer; client reads/writes, serial ASCII path, or server table staging. | +| `dataCapacity` | VAR_INPUT | `UDINT` | Available WORD elements, not bytes. | +| `pStatus` | VAR_INPUT | `POINTER TO UDINT` | UDINT status buffer; requires at least 24 elements. | +| `statusCapacity` | VAR_INPUT | `UDINT` | Available UDINT elements, not bytes. | +| `nowMs` | VAR_INPUT | `ULINT` | Monotonic time in milliseconds; wrappers use SysTimeGetUs / 1000. | +| `connectTimeoutMs` | VAR_INPUT | `UDINT` | TCP connection timeout; command 20 uses kernel RS485 flag. | +| `responseTimeoutMs` | VAR_INPUT | `UDINT` | Reply deadline in milliseconds. | +| `retryDelayMs` | VAR_INPUT | `UDINT` | Native recovery wait in milliseconds. | + +## ModbusMaster.ClientStatus + +Aggregate request status used by the RTU monitoring property: noneOk=0, someOk=1, allOk=2. This describes request online flags, not the physical connection. The current toString getter compares onlineCnt with all registered requests and reports allOk for an empty registry. + +```iecst +{attribute 'qualified_only'} +{attribute 'strict'} +TYPE ClientStatus : +( + noneOk := 0, + someOk := 1, + allOk := 2 +); +END_TYPE +``` + +## ModbusMaster.Error + +IEC error classification. TCP-named socket/timeout members are also used for RTU failures. For the precise native reason inspect out_nativeError/out_lastNativeError; for an OS failure inspect out_socketError. + +```iecst +{attribute 'qualified_only'} +TYPE Error : ( + OK := 0, RequestParameterError := 1, TcpSocketError := 4, + TcpConnectTimeout := 5, ReplyTimeout := 6, InvalidReply := 8, + RequestException := 9, RequestCancelled := 10, InternalError := 255 +); +END_TYPE +``` + +## ModbusMaster.ExceptionCodes + +Modbus exception response values plus local TIMEOUT=-1. A valid Modbus exception proves communication, but the requested operation failed. In current statistics, non-exception errors can also be classified as TIMEOUT; use native diagnostics to distinguish their actual cause. + +```iecst +{attribute 'qualified_only'} +TYPE ExceptionCodes : +( + // Local / transport-level (non-Modbus) result + TIMEOUT := -1, // Communication timeout / no response + + // Modbus exception codes (returned in exception response PDU) + RESPONSE_SUCCESS := 16#00, // Everything OK (no exception) + + ILLEGAL_FUNCTION := 16#01, // Function code not supported by slave + ILLEGAL_DATA_ADDRESS := 16#02, // Data address not valid for slave (out of range / not mapped) + ILLEGAL_DATA_VALUE := 16#03, // Data value not valid (bad length/value/etc.) + SLAVE_DEVICE_FAILURE := 16#04, // Unrecoverable error while performing the requested action + + ACKNOWLEDGE := 16#05, // Request accepted; processing started (use to avoid master timeout) + SLAVE_DEVICE_BUSY := 16#06, // Slave busy (e.g. long operation in progress); retry later + + MEMORY_PARITY_ERROR := 16#08, // Memory parity error (special case; historically for FC 20/21) + + GATEWAY_PATH_UNAVAILABLE := 16#0A, // Gateway problem: path unavailable / misconfigured / overloaded + GATEWAY_TARGET_DEVICE_FAILED_TO_RESPOND := 16#0B // Gateway problem: target device did not respond +); +END_TYPE +``` + +## ModbusMaster.ClientBase + +Abstract shared client scheduler and native transport owner. Use ClientTCP or ClientRTU. Holds up to 100 registered requests and runs one transaction at a time. Call the concrete client once per scan, from the same task as its requests. + +```iecst +{attribute 'monitoring_display' := 'toString'} +{attribute 'no_assign'} +FUNCTION_BLOCK ABSTRACT ClientBase +VAR_INPUT + {attribute 'symbol' := 'none'} + in_timeout: TIME := T#0MS; // If this is set, this will be used on requests, otherwise it will be calculated from in_dataRate. + {attribute 'symbol' := 'none'} + in_resetStats: BOOL; // Set this bool to true to reset statistics. +END_VAR +VAR_OUTPUT + {attribute 'symbol' := 'none'} + msgLastSecondCnt: UDINT; //Messages in the last second + {attribute 'symbol' := 'none'} + msgLastSecondTime: UDINT; //Total amount of time for all messages sent last second in ms + {attribute 'symbol' := 'none'} + numMsgSent: UDINT; + {attribute 'symbol' := 'none'} + numMsgReply: UDINT; + {attribute 'symbol' := 'none'} + allRequestsOnline: BOOL; //All requests are working + reqStats: ARRAY[0..99] OF POINTER TO RequestStats; // For debugging modbus requests +END_VAR +VAR + dataRate : DINT; + requests : ARRAY[0..99] OF POINTER TO RequestBase; + requestCnt : UINT; + allRequestsOffline : BOOL; +END_VAR +VAR +nativeMode : BOOL; +nativeHandle : UDINT; +nativeIP : DWORD; +nativePort : UINT; +nativeNowMicroseconds : SYSTIME; +nativeNowMilliseconds : ULINT; +nativeStatus : ARRAY[0..23] OF UDINT; +nativeActiveIndex : DINT := -1; +nativeSelected : POINTER TO RequestBase; +nativeResultReady : BOOL; +nativeFinishedIndex : DINT := -1; +nativeWindowStartMilliseconds : ULINT; +nativeWasConnected : BOOL; +nativeEnable : BOOL := TRUE; +nativeConnectTimeoutMilliseconds : UDINT := 2000; +nativeRetryDelayMilliseconds : UDINT := 100; +nativeHoldUncertainWrites : BOOL := FALSE; +END_VAR +VAR_INPUT +{attribute 'symbol' := 'none'} +nativeIO : ARRAY[0..1999] OF WORD; +{attribute 'symbol' := 'none'} +nativeActiveRequest : POINTER TO RequestBase; +{attribute 'symbol' := 'none'} +nativeArgUnit : BYTE; +{attribute 'symbol' := 'none'} +nativeArgFunction : BYTE; +{attribute 'symbol' := 'none'} +nativeArgAddress : UINT; +{attribute 'symbol' := 'none'} +nativeArgQuantity : UINT; +{attribute 'symbol' := 'none'} +nativeArgTimeout : UDINT := 1000; +{attribute 'symbol' := 'none'} +nativeSent : UDINT; +{attribute 'symbol' := 'none'} +nativeReplied : UDINT; +{attribute 'symbol' := 'none'} +nativeWindowCount : UDINT; +{attribute 'symbol' := 'none'} +nativeWindowTime : UDINT; +END_VAR + +VAR_OUTPUT +out_connected : BOOL; +out_connectionState : UDINT; +out_lastNativeError : UDINT; +out_socketError : UDINT; +out_reconnectCount : UDINT; +out_registrationFull : BOOL; +END_VAR + +VAR CONSTANT + NATIVE_CMD_OPEN : UDINT := 1; + NATIVE_CMD_CLOSE : UDINT := 2; + NATIVE_CMD_ENABLE : UDINT := 3; + NATIVE_CMD_TICK : UDINT := 5; + NATIVE_CMD_SUBMIT : UDINT := 6; + NATIVE_CMD_COPY_READ : UDINT := 7; + NATIVE_CMD_CONFIGURE : UDINT := 9; + NATIVE_CMD_ACKNOWLEDGE : UDINT := 10; + NATIVE_CMD_REQUEST_TIMEOUT : UDINT := 11; + NATIVE_STATE_DISABLED : UDINT := 0; + NATIVE_STATE_READY : UDINT := 3; + NATIVE_STATE_RECEIVING : UDINT := 5; + NATIVE_ERROR_INVALID_HANDLE : UDINT := 256; + NATIVE_ERROR_CANCELLED : UDINT := 10; + NATIVE_STATUS_HANDLE : UDINT := 0; + NATIVE_STATUS_STATE : UDINT := 1; + NATIVE_STATUS_DONE : UDINT := 3; + NATIVE_STATUS_ERROR : UDINT := 4; + NATIVE_STATUS_RESULT : UDINT := 5; + NATIVE_STATUS_LAST_ERROR : UDINT := 6; + NATIVE_STATUS_SOCKET_ERROR : UDINT := 7; + NATIVE_STATUS_EXCEPTION : UDINT := 8; + NATIVE_STATUS_WRITE_UNCERTAIN : UDINT := 9; + NATIVE_STATUS_RECONNECTS : UDINT := 11; + NATIVE_STATUS_FUNCTION : UDINT := 18; +END_VAR + + + +VAR + nativeOpenCommand : UDINT := 1; + nativeDevice : STRING(127); + nativeSerialBaud : UDINT; + nativeSerialParity : BYTE; + nativeSerialBits : BYTE; + nativeSerialStops : BYTE; + nativeSerialRs485 : UDINT; +END_VAR + +VAR_INPUT + in_enable : BOOL := TRUE; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `in_timeout` | VAR_INPUT | `TIME := T#0MS` | Reply timeout override. ClientBase: TIME; RequestBase: SYSTIME numeric milliseconds (not microseconds). Zero selects inherited/calculated timeout. | +| `in_resetStats` | VAR_INPUT | `BOOL` | Reset request consumed and cleared by nativeCycle. Supplying TRUE on every call resets statistics every scan; pulse once. | +| `msgLastSecondCnt` | VAR_OUTPUT | `UDINT` | Submitted request count in the last completed window of at least 1000 ms, not necessarily an exact sliding second. | +| `msgLastSecondTime` | VAR_OUTPUT | `UDINT` | Sum of successful transaction durations in that completed window (ms); excludes failed durations. | +| `numMsgSent` | VAR_OUTPUT | `UDINT` | IEC accepted submission count since resetStats; not a count of physical packets. | +| `numMsgReply` | VAR_OUTPUT | `UDINT` | IEC successful or Modbus-exception reply count since resetStats. | +| `allRequestsOnline` | VAR_OUTPUT | `BOOL` | TRUE when at least one active request exists and onlineCnt equals activeReqCnt. Online can include exception replies. | +| `reqStats` | VAR_OUTPUT | `ARRAY[0..99] OF POINTER TO RequestStats` | Pointers to registered request statistics by registry index, populated on client scans. Null entries are unused; validate before dereference. | +| `nativeIO` | VAR_INPUT | `ARRAY[0..1999] OF WORD` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `nativeActiveRequest` | VAR_INPUT | `POINTER TO RequestBase` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `nativeArgUnit` | VAR_INPUT | `BYTE` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `nativeArgFunction` | VAR_INPUT | `BYTE` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `nativeArgAddress` | VAR_INPUT | `UINT` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `nativeArgQuantity` | VAR_INPUT | `UINT` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `nativeArgTimeout` | VAR_INPUT | `UDINT := 1000` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `nativeSent` | VAR_INPUT | `UDINT` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `nativeReplied` | VAR_INPUT | `UDINT` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `nativeWindowCount` | VAR_INPUT | `UDINT` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `nativeWindowTime` | VAR_INPUT | `UDINT` | Internal wrapper state exposed for compatibility; normally leave under library control. | +| `out_connected` | VAR_OUTPUT | `BOOL` | Transport is in ready/sending/receiving state. Does not prove a request succeeded or data is fresh. | +| `out_connectionState` | VAR_OUTPUT | `UDINT` | 0 disabled, 1 retry wait, 2 TCP connecting, 3 ready, 4 sending, 5 receiving. | +| `out_lastNativeError` | VAR_OUTPUT | `UDINT` | Native last transport error; may persist after recovery. Check current connection and request diagnostics too. | +| `out_socketError` | VAR_OUTPUT | `UDINT` | Native Linux errno snapshot as UDINT; may be historical. Used for both serial and sockets. | +| `out_reconnectCount` | VAR_OUTPUT | `UDINT` | Native successful reconnections after the first connection. Context recreation resets its native lifetime counters. | +| `out_registrationFull` | VAR_OUTPUT | `BOOL` | Sticky request registry overflow indicator; max 100 requests/client. Client reinitialization clears it. | +| `in_enable` | VAR_INPUT | `BOOL := TRUE` | Enable processing; TRUE by default. FALSE releases transport. Continue scanning to refresh state. | + +## ModbusMaster.ClientRTU + +Modbus RTU client using a Linux serial device. Call every scan. Supports 8 data bits, parity 0 none/1 odd/2 even, and 1 or 2 stop bits. Uses unit IDs 1..247; broadcast 0 is unsupported. Serial-setting changes recreate the context. Automatic recovery proceeds while enabled and scanned. + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK ClientRTU EXTENDS ClientBase +VAR_INPUT + in_device : STRING(127) := '/dev/ttyUSB0'; + in_baudRate : UDINT := 9600; + in_parity : BYTE := 0; // 0 none, 1 odd, 2 even + in_dataBits : BYTE := 8; + in_stopBits : BYTE := 1; // 1 or 2 + in_rs485 : BOOL; // Request Linux kernel RS485 direction control. + + in_reconnectDelay : TIME := T#100MS; + in_holdUncertainWrites : BOOL := FALSE; +END_VAR +VAR + lastDevice : STRING(127); + lastBaud : UDINT; + lastParity : BYTE; + lastBits : BYTE; + lastStops : BYTE; + lastRs485 : BOOL; + lastRetry : TIME; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `in_device` | VAR_INPUT | `STRING(127) := '/dev/ttyUSB0'` | Linux serial device path, default /dev/ttyUSB0, at most 127 ASCII characters. Runtime account needs access. | +| `in_baudRate` | VAR_INPUT | `UDINT := 9600` | Serial baud rate, default 9600. Supplied C source accepts 1200,2400,4800,9600,19200,38400,57600,115200. | +| `in_parity` | VAR_INPUT | `BYTE := 0` | 0 none, 1 odd, 2 even. Must match the slave. | +| `in_dataBits` | VAR_INPUT | `BYTE := 8` | Only 8 supported by supplied native implementation. | +| `in_stopBits` | VAR_INPUT | `BYTE := 1` | 1 or 2; must match the slave. | +| `in_rs485` | VAR_INPUT | `BOOL` | Request Linux kernel RS485 direction control. Leave FALSE for USB adapters handling direction automatically. Requires driver support. | +| `in_reconnectDelay` | VAR_INPUT | `TIME := T#100MS` | Delay before native recovery attempt, default 100 ms; clamped to at least 1 ms. Effective timing also depends on scan interval and failure detection. | +| `in_holdUncertainWrites` | VAR_INPUT | `BOOL := FALSE` | FALSE allows normal retries after uncertain writes. TRUE holds affected write requests until writeNow(); read requests can continue. | + +## ModbusMaster.ClientTCP + +Modbus TCP client with automatic retry after connection or transaction failure. Call every scan. Endpoint or timeout/retry configuration changes close the current context and reopen it on subsequent scans. Requests share this connection and execute sequentially. + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK ClientTCP EXTENDS ClientBase +VAR_INPUT + {attribute 'symbol' := 'none'} + in_ipAddress: ARRAY[0..3] OF BYTE; // TCP IP Address + {attribute 'symbol' := 'none'} + in_port: UINT := 502; // TCP port + {attribute 'symbol' := 'none'} + in_baudrate: UINT := 0; // Set this if using RS485 to TCP Converter, used to calculate timeout. +END_VAR +VAR_INPUT + +in_connectTimeout : TIME := T#2S; +in_reconnectDelay : TIME := T#100MS; // Delay after a failed TCP connection/transaction. +in_holdUncertainWrites : BOOL := FALSE; +END_VAR + +VAR +nativeEndpointIP : DWORD; +nativeEndpointPort : UINT; +nativeConfigConnect : UDINT; +nativeConfigRetry : UDINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `in_ipAddress` | VAR_INPUT | `ARRAY[0..3] OF BYTE` | ClientTCP: four IPv4 bytes. Slave: packed numeric DWORD, 0 binds all interfaces; e.g. DWORD#16#C0A8321F for 192.168.50.31. | +| `in_port` | VAR_INPUT | `UINT := 502` | Remote TCP port, default 502. | +| `in_baudrate` | VAR_INPUT | `UINT := 0` | TCP gateway serial baud-rate hint for calculated reply timeout; 0 uses internal dataRate 105200. Does not configure a serial port. | +| `in_connectTimeout` | VAR_INPUT | `TIME := T#2S` | TCP connection-attempt deadline, default 2 s; clamped to at least 1 ms. | +| `in_reconnectDelay` | VAR_INPUT | `TIME := T#100MS` | Delay before native recovery attempt, default 100 ms; clamped to at least 1 ms. Effective timing also depends on scan interval and failure detection. | +| `in_holdUncertainWrites` | VAR_INPUT | `BOOL := FALSE` | FALSE allows normal retries after uncertain writes. TRUE holds affected write requests until writeNow(); read requests can continue. | + +## ModbusMaster.ReqReadCoil + +Modbus FC 1: read BOOL coils. Call every scan with a client reference and data array. Protocol start address is zero-based; in_dataOffset is the actual array index. Maximum transaction length is 2000. Usable length is clamped to array capacity. Only a successful validated reply updates the destination slice. Old values remain after failures; check out_validData and out_stale. + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK ReqReadCoil EXTENDS RequestBase +VAR_IN_OUT + // ARRAY[] OF BOOL to hold received data + {attribute 'symbol' := 'none'} + data: ARRAY[*] OF BOOL; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `data` | VAR_IN_OUT | `ARRAY[*] OF BOOL` | Open array: BOOL for coils/discretes; UINT for registers. Stable VAR_IN_OUT storage. Writes snapshot values at submission; reads replace only their successful slice. | + +## ModbusMaster.ReqReadDiscrete + +Modbus FC 2: read BOOL discrete inputs. Call every scan with a client reference and data array. Protocol start address is zero-based; in_dataOffset is the actual array index. Maximum transaction length is 2000. Usable length is clamped to array capacity. Only a successful validated reply updates the destination slice. Old values remain after failures; check out_validData and out_stale. + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK ReqReadDiscrete EXTENDS RequestBase +VAR_IN_OUT + // ARRAY[] OF BOOL to hold received data + {attribute 'symbol' := 'none'} + data: ARRAY[*] OF BOOL; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `data` | VAR_IN_OUT | `ARRAY[*] OF BOOL` | Open array: BOOL for coils/discretes; UINT for registers. Stable VAR_IN_OUT storage. Writes snapshot values at submission; reads replace only their successful slice. | + +## ModbusMaster.ReqReadHolding + +Modbus FC 3: read UINT holding registers. Call every scan with a client reference and data array. Protocol start address is zero-based; in_dataOffset is the actual array index. Maximum transaction length is 125. Usable length is clamped to array capacity. Only a successful validated reply updates the destination slice. Old values remain after failures; check out_validData and out_stale. + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK ReqReadHolding EXTENDS RequestBase +VAR_IN_OUT + // ARRAY[] OF UINT to hold received data + {attribute 'symbol' := 'none'} + data: ARRAY[*] OF UINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `data` | VAR_IN_OUT | `ARRAY[*] OF UINT` | Open array: BOOL for coils/discretes; UINT for registers. Stable VAR_IN_OUT storage. Writes snapshot values at submission; reads replace only their successful slice. | + +## ModbusMaster.ReqReadInput + +Modbus FC 4: read UINT input registers. Call every scan with a client reference and data array. Protocol start address is zero-based; in_dataOffset is the actual array index. Maximum transaction length is 125. Usable length is clamped to array capacity. Only a successful validated reply updates the destination slice. Old values remain after failures; check out_validData and out_stale. + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK ReqReadInput EXTENDS RequestBase +VAR_IN_OUT + // ARRAY[] OF UINT to hold received data + {attribute 'symbol' := 'none'} + data: ARRAY[*] OF UINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `data` | VAR_IN_OUT | `ARRAY[*] OF UINT` | Open array: BOOL for coils/discretes; UINT for registers. Stable VAR_IN_OUT storage. Writes snapshot values at submission; reads replace only their successful slice. | + +## ModbusMaster.RequestBase + +Abstract request binding, scheduling and diagnostics. Derived requests register automatically when called with a valid initialized client. Call each instance every scan with stable array storage. Quantity zero disables this request. Actual length is MIN(in_quantity, remaining array capacity). + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK ABSTRACT RequestBase +VAR_INPUT + {attribute 'symbol' := 'none'} + client: REFERENCE TO ClientBase; // Instance of atMBClient + {attribute 'symbol' := 'none'} + in_startAddr: UINT; + {attribute 'symbol' := 'none'} + in_quantity: UINT; + {attribute 'symbol' := 'none'} + in_dataOffset: UINT; // Offset position for data into array. + {attribute 'symbol' := 'none'} + in_unitId: BYTE := 0; + {attribute 'symbol' := 'none'} + in_timeout: SYSTIME := 0; // Reply timeout in ms; zero uses client/default calculation. + {attribute 'symbol' := 'none'} + in_minDelay: TIME := T#10MS; // This is the minimum delay between queries, only relevent if high priority. + {attribute 'symbol' := 'none'} + in_prioritySetpoint: INT := 50; // this requests priority compared to other requests. Lower value is higher priority. + {attribute 'symbol' := 'none'} + in_priorityCurrent: INT; //Current priority. This is decrimented and the request is executed when at zero. + {attribute 'symbol' := 'none'} + stats: RequestStats; //Request stats + +END_VAR +VAR + {attribute 'symbol' := 'none'} + dataCapacity: UINT; +END_VAR + +VAR +nativeFunction : BYTE; +nativeTransactionQuantity : UINT; +nativeTransactionDataIndex : UINT; +nativeInFlight : BOOL; +nativeReadComplete : BOOL; +nativeCopyAllowed : BOOL; +nativeWriteHold : BOOL; +nativeRequestStartMilliseconds : ULINT; +nativeDataIndex : DINT; +nativeCallResult : UDINT; +END_VAR + +VAR_OUTPUT +out_nativeError : UDINT; +out_socketError : UDINT; +out_writeUncertain : BOOL; +out_validData : BOOL; +out_dataAgeMs : ULINT; +out_stale : BOOL := TRUE; +out_parameterError : BOOL; +END_VAR + +VAR_INPUT +in_staleAfter : TIME := T#2S; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `client` | VAR_INPUT | `REFERENCE TO ClientBase` | Reference to the owning ClientBase concrete instance. Initialize/call client before first registration; retain a stable instance. | +| `in_startAddr` | VAR_INPUT | `UINT` | Zero-based Modbus protocol address, not a 40001/30001 display reference. Must fit the transaction into address space. | +| `in_quantity` | VAR_INPUT | `UINT` | Requested item count; actual stats.reqLength is MIN(this, available destination/source capacity). Zero makes the request inactive. | +| `in_dataOffset` | VAR_INPUT | `UINT` | Actual first index in the application array. For ARRAY[1..10], use 1 to start at the first element; not a relative offset. | +| `in_unitId` | VAR_INPUT | `BYTE := 0` | Modbus unit/slave ID, default 0. RTU requires explicit 1..247; TCP/gateway values depend on the target. | +| `in_timeout` | VAR_INPUT | `SYSTIME := 0` | Reply timeout override. ClientBase: TIME; RequestBase: SYSTIME numeric milliseconds (not microseconds). Zero selects inherited/calculated timeout. | +| `in_minDelay` | VAR_INPUT | `TIME := T#10MS` | Minimum start-to-start time before scheduler eligibility, default 10 ms. Not a fixed polling period. | +| `in_prioritySetpoint` | VAR_INPUT | `INT := 50` | Priority restored on success, default 50. Lower values win. Error backoff can replace current priority. | +| `in_priorityCurrent` | VAR_INPUT | `INT` | Mutable scheduler priority. Lower values win, equal values use age. WriteNow sets 0. Application need not maintain it each scan. | +| `stats` | VAR_INPUT | `RequestStats` | Per-request RequestStats instance maintained by request processing; inspect rather than overwrite. | +| `out_nativeError` | VAR_OUTPUT | `UDINT` | Result of the last completed/failed request; 0 success. Precise native code, distinct from IEC Error enum. | +| `out_socketError` | VAR_OUTPUT | `UDINT` | Native Linux errno snapshot as UDINT; may be historical. Used for both serial and sockets. | +| `out_writeUncertain` | VAR_OUTPUT | `BOOL` | Write may have reached target without a confirmed response. It is not proof of failure or success. Relevant for write requests. | +| `out_validData` | VAR_OUTPUT | `BOOL` | TRUE after a successful read; subsequent read failures do not necessarily clear it. Client release or invalidateNativeData clears it. | +| `out_dataAgeMs` | VAR_OUTPUT | `ULINT` | Age since last successful read in milliseconds. Updated by normal processing; completion early returns can defer refresh by one scan. | +| `out_stale` | VAR_OUTPUT | `BOOL := TRUE` | TRUE before valid read data or when age exceeds in_staleAfter. Array contents are retained. | +| `out_parameterError` | VAR_OUTPUT | `BOOL` | Array-offset validation for requests; full transaction validation can instead appear in out_nativeError/stats.lastErrorId. Slave: invalid port/interfaceName/table bounds or capacity. | +| `in_staleAfter` | VAR_INPUT | `TIME := T#2S` | Read data age threshold, default 2 s. out_stale becomes TRUE when age is strictly greater; does not stop polling. | + +## ModbusMaster.RequestStats + +Request counters, completion properties, online/offline tracking and 100 ms indicator lights. Normally maintained by RequestBase. Online means a valid response was received, including a Modbus exception; it does not guarantee successful data. Several fields are declared VAR_INPUT for compatibility but are maintained internally. + +```iecst +{attribute 'monitoring_display' := 'toString'} +{attribute 'no_assign'} +FUNCTION_BLOCK RequestStats +VAR_INPUT + lastErrorId: Error; //Last error id + lastExceptionCode: ExceptionCodes; //Last modbus exception code. These are the standard modbus exceptions. + lastValidDuration: UDINT; // How long last transaction took (ms) + longestValidDuration: UDINT; //Longest valid duration (ms) + interval: UDINT; // Start-to-start interval (ms) + offlineCnt: UINT; //Count of how many times this request has gone offline + doneCnt: UDINT; // Count of successful request + errorCnt: UDINT; // Count of failed requests + doneCntRst: UDINT; // Count of succesful requests, resets on error result + errorCntRst: UDINT; // Count of failed requests, resets on succesful request + sinceLastExec: UDINT; // Time since the last start (ms) + timeoutCnt: UDINT; + reqLength: UINT; //Number of registers requested in request, used to calc active. +END_VAR +VAR_OUTPUT + executeLight: BOOL; //Execute that stays on momentarily + reqDoneLight: BOOL; //Request done that stays on momentarily + reqErrorLight: BOOL; //Request error that stays on momentarily + reqBusyLight: BOOL; //Request busy that stays on momentarily + online: BOOL; //Online means the requests are being replied to normally or with modbus exceptions. Communications are ok. + offline: BOOL; //Opposite of online, but starts out as false on program start. + active: BOOL; // This is true if its actually being used, and not having a count of 0 on the request. + executeMbFb: BOOL; +END_VAR +VAR + {attribute 'symbol' := 'none'} + doneIndicatorDelay: TOF; + {attribute 'symbol' := 'none'} + errorIndicatorDelay: TOF; + {attribute 'symbol' := 'none'} + busyIndicatorDelay: TOF; + {attribute 'symbol' := 'none'} + executeIndicatorDelay: TOF; + toString: STRING(20); + {attribute 'symbol' := 'none'} + executeTrig: R_TRIG; //Execute trigger + {attribute 'symbol' := 'none'} + offlineTrig: R_TRIG; //Offline trigger + {attribute 'symbol' := 'none'} + lastRequestStartMicroseconds: SYSTIME; //time of start of last request + {attribute 'symbol' := 'none'} + currentTimeMicroseconds: SYSTIME; + _execute: BOOL; //Execute trigger and status. Turn on to trigger request. Will turn off when request is complete + _reqDone: BOOL; //Request done + _reqBusy: BOOL; //Request busy + _reqError: BOOL; //Request error +END_VAR + +VAR CONSTANT + {attribute 'symbol' := 'none'} + INDICATOR_HOLD_TIME: TIME:= T#100MS; //Light on time for debug indicators +END_VAR +VAR_INPUT +nativeResponseSeen : BOOL; +nativeLastSuccessMs : ULINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `lastErrorId` | VAR_INPUT | `Error` | Last mapped IEC error; successful completion resets to OK. | +| `lastExceptionCode` | VAR_INPUT | `ExceptionCodes` | Last Modbus exception, success=0; stats may substitute TIMEOUT=-1 for non-exception failures. | +| `lastValidDuration` | VAR_INPUT | `UDINT` | Last successful request duration (ms). | +| `longestValidDuration` | VAR_INPUT | `UDINT` | Maximum successful duration recorded; resetStats does not clear it. | +| `interval` | VAR_INPUT | `UDINT` | Start-to-start execution interval (ms). | +| `offlineCnt` | VAR_INPUT | `UINT` | Count of NOT online rising edges; can include initial not-online state, not only a physical disconnect. | +| `doneCnt` | VAR_INPUT | `UDINT` | Total successful completions; resetStats clears. | +| `errorCnt` | VAR_INPUT | `UDINT` | Total failed completions; resetStats clears. | +| `doneCntRst` | VAR_INPUT | `UDINT` | Consecutive successes; reset on error/offline/resetStats. | +| `errorCntRst` | VAR_INPUT | `UDINT` | Consecutive errors; reset on successful completion/resetStats. | +| `sinceLastExec` | VAR_INPUT | `UDINT` | Age since last execution start (ms), capped around 60000 by the statistics clock logic. | +| `timeoutCnt` | VAR_INPUT | `UDINT` | Statistics non-exception error count; can include other native failures. Not exclusively reply timeouts; resetStats does not clear it. | +| `reqLength` | VAR_INPUT | `UINT` | Effective transaction length; zero means inactive. | +| `executeLight` | VAR_OUTPUT | `BOOL` | Execution indicator with 100 ms off-delay. | +| `reqDoneLight` | VAR_OUTPUT | `BOOL` | Completion indicator with 100 ms off-delay. | +| `reqErrorLight` | VAR_OUTPUT | `BOOL` | Error indicator with 100 ms off-delay. | +| `reqBusyLight` | VAR_OUTPUT | `BOOL` | Busy indicator with 100 ms off-delay. | +| `online` | VAR_OUTPUT | `BOOL` | Communication status; valid normal/exception response sets evidence. Distinct from valid data. | +| `offline` | VAR_OUTPUT | `BOOL` | Offline status; initialized FALSE, explicitly set on client-offline or repeated failures. | +| `active` | VAR_OUTPUT | `BOOL` | TRUE when reqLength is nonzero. | +| `executeMbFb` | VAR_OUTPUT | `BOOL` | Legacy retained output; no assignment in current native implementation. Do not use as a trigger. | +| `nativeResponseSeen` | VAR_INPUT | `BOOL` | Internal communication-response evidence, maintained by nativeFinish and offline handling. | +| `nativeLastSuccessMs` | VAR_INPUT | `ULINT` | Internal successful-read timestamp in monotonic milliseconds. | + +## ModbusMaster.ReqWriteCoil + +Modbus FC 15: write BOOL coils. Call every scan with a client reference and data array. Protocol start address is zero-based; in_dataOffset is the actual array index. Maximum transaction length is 1968. Usable length is clamped to array capacity. Values are copied into native storage at submission. This FB uses the multiple-write FC even for one element. Use writeNow() to release a held uncertain write. + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK ReqWriteCoil EXTENDS RequestBase +VAR_IN_OUT + // ARRAY[] OF BOOL to hold received data + {attribute 'symbol' := 'none'} + data: ARRAY[*] OF BOOL; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `data` | VAR_IN_OUT | `ARRAY[*] OF BOOL` | Open array: BOOL for coils/discretes; UINT for registers. Stable VAR_IN_OUT storage. Writes snapshot values at submission; reads replace only their successful slice. | + +## ModbusMaster.ReqWriteHolding + +Modbus FC 16: write UINT holding registers. Call every scan with a client reference and data array. Protocol start address is zero-based; in_dataOffset is the actual array index. Maximum transaction length is 123. Usable length is clamped to array capacity. Values are copied into native storage at submission. This FB uses the multiple-write FC even for one element. Use writeNow() to release a held uncertain write. + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK ReqWriteHolding EXTENDS RequestBase +VAR_IN_OUT + // ARRAY[] OF UINT to hold received data + {attribute 'symbol' := 'none'} + data: ARRAY[*] OF UINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `data` | VAR_IN_OUT | `ARRAY[*] OF UINT` | Open array: BOOL for coils/discretes; UINT for registers. Stable VAR_IN_OUT storage. Writes snapshot values at submission; reads replace only their successful slice. | + +## ModbusMaster.To_IPAddress + +Returns the four supplied bytes as ARRAY[0..3] OF BYTE. Example: atMb.To_IPAddress(192,168,50,10). This is the ClientTCP address format; the slave bind address instead uses a packed DWORD. + +```iecst +FUNCTION To_IPAddress : ARRAY[0..3] OF BYTE +VAR_INPUT + byte1: BYTE; + byte2: BYTE; + byte3: BYTE; + byte4: BYTE; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `byte1` | VAR_INPUT | `BYTE` | First IPv4 octet. | +| `byte2` | VAR_INPUT | `BYTE` | Second IPv4 octet. | +| `byte3` | VAR_INPUT | `BYTE` | Third IPv4 octet. | +| `byte4` | VAR_INPUT | `BYTE` | Fourth IPv4 octet. | + +## ModbusSlave.ModbusSlave + +Native Modbus TCP server. Same implementation and interface as SlaveTCP. Call once per scan with all four memory arrays. Array bounds are protocol addresses; each table is limited to 2000 elements and addresses 0..65535. Pushes application memory, performs bounded network processing, then copies native memory back. This is TCP only, not an RTU slave. + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK ModbusSlave +VAR_IN_OUT + aDiscreteInputsMemory : ARRAY[*] OF BOOL; + aCoilsMemory : ARRAY[*] OF BOOL; + aInputRegistersMemory : ARRAY[*] OF UINT; + aHoldingRegistersMemory : ARRAY[*] OF UINT; +END_VAR +VAR_INPUT + in_enable : BOOL := TRUE; + in_reset : BOOL; + in_reconnectDelay : TIME := T#100MS; + interfaceName : WSTRING; // Legacy field; nonempty rejected. Use in_ipAddress. + in_ipAddress : DWORD; // Numeric bind IP, 0 = all interfaces. + port : UINT := 502; +END_VAR +VAR_OUTPUT + out_running : BOOL; + out_error : BOOL; + out_errorId : Error; + out_parameterError : BOOL; + out_socketError : UDINT; + out_connectedClients : UINT; + out_requestsReceived : UDINT; + out_repliesSent : UDINT; + out_exceptionReplies : UDINT; +END_VAR +VAR + serverHandle : UDINT; + serverStatus : ARRAY[0..23] OF UDINT; + serverIO : ARRAY[0..1999] OF WORD; + nowUs : SYSTIME; + nowMs : ULINT; + lastIP : DWORD; + lastPort : UINT; + lastRetry : TIME; + callResult : UDINT; + tableIndex : BYTE; + itemIndex : DINT; + tableStart : UINT; + tableCount : UINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `aDiscreteInputsMemory` | VAR_IN_OUT | `ARRAY[*] OF BOOL` | Read-only from network BOOL input table; FC2 reads. Application updates it. | +| `aCoilsMemory` | VAR_IN_OUT | `ARRAY[*] OF BOOL` | Read/write BOOL coil table. Array bounds are protocol addresses; FC1 reads, FC5/15 write. | +| `aInputRegistersMemory` | VAR_IN_OUT | `ARRAY[*] OF UINT` | Read-only from network UINT input table; FC4 reads. Application updates it. | +| `aHoldingRegistersMemory` | VAR_IN_OUT | `ARRAY[*] OF UINT` | Read/write UINT holding table; FC3 reads, FC6/16 write. | +| `in_enable` | VAR_INPUT | `BOOL := TRUE` | Enable processing; TRUE by default. FALSE releases transport. Continue scanning to refresh state. | +| `in_reset` | VAR_INPUT | `BOOL` | Slave one-shot recreation input. FB clears it internally; supplying TRUE every scan recreates every scan. | +| `in_reconnectDelay` | VAR_INPUT | `TIME := T#100MS` | Delay before native recovery attempt, default 100 ms; clamped to at least 1 ms. Effective timing also depends on scan interval and failure detection. | +| `interfaceName` | VAR_INPUT | `WSTRING` | Legacy slave field. Must be empty; nonempty is rejected. Use packed in_ipAddress instead. | +| `in_ipAddress` | VAR_INPUT | `DWORD` | ClientTCP: four IPv4 bytes. Slave: packed numeric DWORD, 0 binds all interfaces; e.g. DWORD#16#C0A8321F for 192.168.50.31. | +| `port` | VAR_INPUT | `UINT := 502` | Slave listening port, default 502, must be nonzero. | +| `out_running` | VAR_OUTPUT | `BOOL` | Native listener is bound and enabled. Does not mean a peer is connected. | +| `out_error` | VAR_OUTPUT | `BOOL` | Current server error flag when outputs are refreshed; some early returns leave other diagnostics unchanged. | +| `out_errorId` | VAR_OUTPUT | `Error` | IEC server error classification: parameter/internal/native socket class. Consult errno for OS detail. | +| `out_parameterError` | VAR_OUTPUT | `BOOL` | Array-offset validation for requests; full transaction validation can instead appear in out_nativeError/stats.lastErrorId. Slave: invalid port/interfaceName/table bounds or capacity. | +| `out_socketError` | VAR_OUTPUT | `UDINT` | Native Linux errno snapshot as UDINT; may be historical. Used for both serial and sockets. | +| `out_connectedClients` | VAR_OUTPUT | `UINT` | Number of native TCP peers connected (max 8 per server in supplied C source). | +| `out_requestsReceived` | VAR_OUTPUT | `UDINT` | Native request count for current server context. | +| `out_repliesSent` | VAR_OUTPUT | `UDINT` | Native fully transmitted reply count for current context, including exception replies. | +| `out_exceptionReplies` | VAR_OUTPUT | `UDINT` | Number of Modbus exception replies for current server context. | + +## ModbusSlave.SlaveTCP + +Native Modbus TCP server with four separate memory tables. Same implementation and interface as ModbusSlave. FC 1/2/3/4 read the tables; FC 5/6/15/16 write coils/holding registers. Array lower bounds define Modbus addresses. Call every scan and retain array storage. This is TCP only. + +```iecst +{attribute 'no_assign'} +FUNCTION_BLOCK SlaveTCP +VAR_IN_OUT + aDiscreteInputsMemory : ARRAY[*] OF BOOL; + aCoilsMemory : ARRAY[*] OF BOOL; + aInputRegistersMemory : ARRAY[*] OF UINT; + aHoldingRegistersMemory : ARRAY[*] OF UINT; +END_VAR +VAR_INPUT + in_enable : BOOL := TRUE; + in_reset : BOOL; + in_reconnectDelay : TIME := T#100MS; + interfaceName : WSTRING; // Legacy field; nonempty rejected. Use in_ipAddress. + in_ipAddress : DWORD; // Numeric bind IP, 0 = all interfaces. + port : UINT := 502; +END_VAR +VAR_OUTPUT + out_running : BOOL; + out_error : BOOL; + out_errorId : Error; + out_parameterError : BOOL; + out_socketError : UDINT; + out_connectedClients : UINT; + out_requestsReceived : UDINT; + out_repliesSent : UDINT; + out_exceptionReplies : UDINT; +END_VAR +VAR + serverHandle : UDINT; + serverStatus : ARRAY[0..23] OF UDINT; + serverIO : ARRAY[0..1999] OF WORD; + nowUs : SYSTIME; + nowMs : ULINT; + lastIP : DWORD; + lastPort : UINT; + lastRetry : TIME; + callResult : UDINT; + tableIndex : BYTE; + itemIndex : DINT; + tableStart : UINT; + tableCount : UINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `aDiscreteInputsMemory` | VAR_IN_OUT | `ARRAY[*] OF BOOL` | Read-only from network BOOL input table; FC2 reads. Application updates it. | +| `aCoilsMemory` | VAR_IN_OUT | `ARRAY[*] OF BOOL` | Read/write BOOL coil table. Array bounds are protocol addresses; FC1 reads, FC5/15 write. | +| `aInputRegistersMemory` | VAR_IN_OUT | `ARRAY[*] OF UINT` | Read-only from network UINT input table; FC4 reads. Application updates it. | +| `aHoldingRegistersMemory` | VAR_IN_OUT | `ARRAY[*] OF UINT` | Read/write UINT holding table; FC3 reads, FC6/16 write. | +| `in_enable` | VAR_INPUT | `BOOL := TRUE` | Enable processing; TRUE by default. FALSE releases transport. Continue scanning to refresh state. | +| `in_reset` | VAR_INPUT | `BOOL` | Slave one-shot recreation input. FB clears it internally; supplying TRUE every scan recreates every scan. | +| `in_reconnectDelay` | VAR_INPUT | `TIME := T#100MS` | Delay before native recovery attempt, default 100 ms; clamped to at least 1 ms. Effective timing also depends on scan interval and failure detection. | +| `interfaceName` | VAR_INPUT | `WSTRING` | Legacy slave field. Must be empty; nonempty is rejected. Use packed in_ipAddress instead. | +| `in_ipAddress` | VAR_INPUT | `DWORD` | ClientTCP: four IPv4 bytes. Slave: packed numeric DWORD, 0 binds all interfaces; e.g. DWORD#16#C0A8321F for 192.168.50.31. | +| `port` | VAR_INPUT | `UINT := 502` | Slave listening port, default 502, must be nonzero. | +| `out_running` | VAR_OUTPUT | `BOOL` | Native listener is bound and enabled. Does not mean a peer is connected. | +| `out_error` | VAR_OUTPUT | `BOOL` | Current server error flag when outputs are refreshed; some early returns leave other diagnostics unchanged. | +| `out_errorId` | VAR_OUTPUT | `Error` | IEC server error classification: parameter/internal/native socket class. Consult errno for OS detail. | +| `out_parameterError` | VAR_OUTPUT | `BOOL` | Array-offset validation for requests; full transaction validation can instead appear in out_nativeError/stats.lastErrorId. Slave: invalid port/interfaceName/table bounds or capacity. | +| `out_socketError` | VAR_OUTPUT | `UDINT` | Native Linux errno snapshot as UDINT; may be historical. Used for both serial and sockets. | +| `out_connectedClients` | VAR_OUTPUT | `UINT` | Number of native TCP peers connected (max 8 per server in supplied C source). | +| `out_requestsReceived` | VAR_OUTPUT | `UDINT` | Native request count for current server context. | +| `out_repliesSent` | VAR_OUTPUT | `UDINT` | Native fully transmitted reply count for current context, including exception replies. | +| `out_exceptionReplies` | VAR_OUTPUT | `UDINT` | Number of Modbus exception replies for current server context. | + +## ClientBase.addRequest + +Register a non-null RequestBase pointer once. Duplicate pointers are ignored. Capacity is 100 requests per client; overflow sets out_registrationFull. No removal API is provided. Normally called automatically by the request FB. + +```iecst +//Adds the specified request to the global list +METHOD PUBLIC addRequest +VAR_INPUT + request: POINTER TO RequestBase; +END_VAR +VAR + requestIndex : DINT := 0; + +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `request` | VAR_INPUT | `POINTER TO RequestBase` | Internal wrapper state exposed for compatibility; normally leave under library control. | + +## ClientBase.FB_exit + +CODESYS lifecycle hook releasing owned native resources. Applications should use release/recreateClient rather than call lifecycle hooks manually. Server hooks close the server context; the client hook calls nativeRelease. + +```iecst +METHOD FB_exit : BOOL +VAR_INPUT + bInCopyCode : BOOL; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `bInCopyCode` | VAR_INPUT | `BOOL` | Runtime lifecycle copy-code indicator; current implementation does not branch on it. | + +## ClientBase.FB_reinit + +CODESYS lifecycle hook clearing native handles and in-flight state. ClientBase also clears the request registry for re-registration; RequestBase clears execution/completion flags; servers clear their handle. These hooks alone do not establish qualified online-change support. + +```iecst +METHOD FB_reinit : BOOL +VAR + requestIndex : DINT; +END_VAR +``` + +## ClientBase.nativeCall + +Internal adapter to atMbCall_cext. Command 20 packs the ASCII serial path into WORD storage and passes serial settings in ABI fields; other commands use normal client arguments and status buffers. Return is the native command result, 0 for success. + +```iecst +METHOD nativeCall : UDINT +VAR_INPUT + command : UDINT; +END_VAR + +VAR + deviceBytes : POINTER TO BYTE; + deviceLength : UINT; + deviceIndex : DINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `command` | VAR_INPUT | `UDINT` | Native command selector. Use wrappers in application code. | + +## ClientBase.nativeCycle + +Internal per-scan engine: acquire context, tick nonblocking I/O, update diagnostics, copy completed read data, process registered requests, acknowledge completion, select the next request, and publish statistics. Invalid native handles are discarded and reopened on a later scan. + +```iecst +METHOD nativeCycle +VAR + callResult : UDINT; +END_VAR +``` + +## ClientBase.nativeEnsureContext + +Acquire/configure/enable a native context if absent. Returns TRUE when a handle exists or initialization succeeds. A handle does not mean connected; check out_connected. Failure records a native error and closes partially initialized contexts. + +```iecst +METHOD PROTECTED nativeEnsureContext : BOOL +VAR + callResult : UDINT; +END_VAR +``` + +## ClientBase.nativeRelease + +Close the native context, complete any active request as cancelled, clear selection, set registered requests offline and invalidate cached read data. Returns TRUE. It does not set in_enable FALSE; an enabled scanned client can reopen. + +```iecst +METHOD nativeRelease : BOOL +VAR + requestIndex : DINT; +END_VAR +``` + +## ClientBase.nativeSelectNextRequest + +Select an active, unheld request that meets in_minDelay and was not just completed this scan. Lowest in_priorityCurrent wins; oldest sinceLastExec breaks ties. Positive priorities are decremented when the best selected priority is positive. The selected request is submitted immediately; zero priority is not a prerequisite for execution. + +```iecst +METHOD PROTECTED nativeSelectNextRequest +VAR + requestIndex : DINT; + selectedRequestIndex : DINT; + selectedPriority : INT; + oldestRequestAgeMilliseconds : UDINT; +END_VAR +``` + +## ClientBase.nativeUpdateDiagnostics + +Publish native connection state, last error, errno and reconnect count. States 3..5 count as connected. A connected-to-disconnected transition marks registered requests offline. + +```iecst +METHOD PROTECTED nativeUpdateDiagnostics +``` + +## ClientBase.nativeUpdateStatistics + +Publish IEC send/reply counters, registered statistics pointers and active-request aggregate online flags. Every elapsed window of at least 1000 ms publishes submitted-request count and successful transaction-duration sum, then restarts the window. + +```iecst +METHOD PROTECTED nativeUpdateStatistics +VAR + requestIndex : DINT; +END_VAR +``` + +## ClientBase.processAllRequests + +Internal loop over registered non-null requests, dispatching processRequest. Returns immediately for an empty or invalid registry. Usually invoked by nativeCycle rather than application code. + +```iecst +METHOD processAllRequests +VAR_INPUT +END_VAR +VAR + requestIndex: DINT; // Request registry index. +END_VAR +``` + +## ClientBase.recreateClient + +Close/release the current context so the next enabled scan creates a fresh one with current settings. Cancels an active transaction and invalidates cached read data. Abstract on ClientBase; implemented by both concrete clients. + +```iecst +METHOD ABSTRACT recreateClient +VAR_INPUT +END_VAR +``` + +## ClientBase.release + +Stop this client by setting in_enable FALSE, then release its native context. Returns the release result. To resume, set in_enable TRUE and keep calling the client. A call that supplies in_enable := TRUE every scan will re-enable it. + +```iecst +METHOD release : BOOL +``` + +## ClientBase.resetStats + +Reset IEC send/reply/window counters and call each registered stats.resetStats. Does not clear native errno/reconnect counters or all per-request history. No transport recreation. + +```iecst +METHOD resetStats +VAR + requestIndex : DINT; +END_VAR +``` + +## ClientBase.setAllRequestsOffline + +Internal helper marking every registered request offline via its statistics FB. Returns TRUE after processing a nonempty valid registry; early return does not explicitly assign the return value. + +```iecst +METHOD PROTECTED setAllRequestsOffline : BOOL +VAR_INPUT +END_VAR +VAR + requestIndex: DINT; +END_VAR +``` + +## ClientBase.setupClient + +Returns whether nativeHandle is nonzero. It does not create a context or guarantee transport connectivity. Normal FB scanning performs initialization. + +```iecst +METHOD setupClient : BOOL +VAR_INPUT +END_VAR +``` + +## ClientBase.activeIndex + +Get the current active request registry index, or -1 when idle. Setting a valid index sets that request stats.execute TRUE; it does not bypass native scheduler selection or directly submit a transaction. + +```iecst +PROPERTY activeIndex : DINT +``` + +## ClientBase.activeReqCnt + +Private count of registered requests whose stats.active is TRUE. Zero quantity/usable length requests are inactive. + +```iecst +PROPERTY PRIVATE activeReqCnt : UINT +``` + +## ClientBase.allRequestsComplete + +Private legacy completion check. TRUE only if none of the registered requests has execute, reqDone, reqBusy or reqError set. Empty registry returns FALSE. This is not a network completion pulse. + +```iecst +{attribute 'symbol' := 'none'} +PROPERTY PRIVATE allRequestsComplete : BOOL +``` + +## ClientBase.onlineCnt + +Count registered requests with stats.online TRUE. Includes any registered request with that flag; used for aggregate reporting. + +```iecst +{attribute 'symbol' := 'none'} +PROPERTY onlineCnt : DINT//Count of requests that are online +``` + +## ClientBase.requestExecuting + +Private property returning activeIndex <> -1. Represents selected/active request state maintained by the scheduler. + +```iecst +{attribute 'symbol' := 'none'} +PROPERTY PRIVATE requestExecuting : BOOL //There is at least one request executing +``` + +## ClientRTU.recreateClient + +Close/release the current context so the next enabled scan creates a fresh one with current settings. Cancels an active transaction and invalidates cached read data. Abstract on ClientBase; implemented by both concrete clients. + +```iecst +METHOD recreateClient +``` + +## ClientRTU.toString + +ClientRTU monitoring property returning ClientStatus based on onlineCnt versus requestCnt. Reports allOk for an empty registry. RequestStats also has an internal STRING field of this name; these are different values. + +```iecst +{attribute 'symbol' := 'none'} +PROPERTY toString : ClientStatus //Client request status noneOk = no requests working, someOk = some requests are working some are failing, allOk = all requests are working +``` + +## ClientTCP.recreateClient + +Close/release the current context so the next enabled scan creates a fresh one with current settings. Cancels an active transaction and invalidates cached read data. Abstract on ClientBase; implemented by both concrete clients. + +```iecst +METHOD recreateClient +``` + +## ReqReadCoil.processRequest + +Derived request dispatch: performs ReqReadCoil transaction using shared nativeProcess, validates copy bounds and transfers the configured slice. Called by client scheduler; application calls the request FB body to register/bind its data. + +```iecst +METHOD processRequest +``` + +## ReqReadCoil.recreateRequest + +Clear this request nativeInFlight. If it is the client active request, recreate the whole client connection first. Returns TRUE. May affect other requests sharing the same connection; this is not an independent transport. + +```iecst +METHOD recreateRequest : BOOL +``` + +## ReqReadDiscrete.processRequest + +Derived request dispatch: performs ReqReadDiscrete transaction using shared nativeProcess, validates copy bounds and transfers the configured slice. Called by client scheduler; application calls the request FB body to register/bind its data. + +```iecst +METHOD processRequest +``` + +## ReqReadDiscrete.recreateRequest + +Clear this request nativeInFlight. If it is the client active request, recreate the whole client connection first. Returns TRUE. May affect other requests sharing the same connection; this is not an independent transport. + +```iecst +METHOD recreateRequest : BOOL +``` + +## ReqReadHolding.processRequest + +Derived request dispatch: performs ReqReadHolding transaction using shared nativeProcess, validates copy bounds and transfers the configured slice. Called by client scheduler; application calls the request FB body to register/bind its data. + +```iecst +METHOD processRequest +``` + +## ReqReadHolding.recreateRequest + +Clear this request nativeInFlight. If it is the client active request, recreate the whole client connection first. Returns TRUE. May affect other requests sharing the same connection; this is not an independent transport. + +```iecst +METHOD recreateRequest : BOOL +``` + +## ReqReadInput.processRequest + +Derived request dispatch: performs ReqReadInput transaction using shared nativeProcess, validates copy bounds and transfers the configured slice. Called by client scheduler; application calls the request FB body to register/bind its data. + +```iecst +METHOD processRequest +``` + +## ReqReadInput.recreateRequest + +Clear this request nativeInFlight. If it is the client active request, recreate the whole client connection first. Returns TRUE. May affect other requests sharing the same connection; this is not an independent transport. + +```iecst +METHOD recreateRequest : BOOL +``` + +## RequestBase.busy + +Assign stats.reqBusy from input in. Internal request helper. Although declared BOOL, its implementation does not assign a return value; use the side effect rather than the return. + +```iecst +METHOD busy : BOOL +VAR_INPUT + in: BOOL; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `in` | VAR_INPUT | `BOOL` | New state to assign. Normally used internally by completion helpers. | + +## RequestBase.done + +Set stats.reqDone. When in is TRUE, restore in_priorityCurrent to in_prioritySetpoint for the next scheduler cycle. Successful completion counters are maintained by the stats property setter. + +```iecst +METHOD done +VAR_INPUT + // Done state + in: BOOL; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `in` | VAR_INPUT | `BOOL` | New state to assign. Normally used internally by completion helpers. | + +## RequestBase.err + +Set stats.reqError and, on TRUE, record errorId/exceptionCode. Set next priority to 10 * MIN(consecutive errors,3)^2. Lower numeric priority wins, so this backs off repeated failures relative to lower-priority-number requests. + +```iecst +METHOD err +VAR_INPUT + // Error state + in: BOOL; + errorId: Error; + exceptionCode: ExceptionCodes; +END_VAR +VAR + priorityMultiplier: INT; //Raise priority when not response +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `in` | VAR_INPUT | `BOOL` | New state to assign. Normally used internally by completion helpers. | +| `errorId` | VAR_INPUT | `Error` | Mapped IEC error supplied to the error helper. | +| `exceptionCode` | VAR_INPUT | `ExceptionCodes` | Modbus exception classification supplied to the error helper. | + +## RequestBase.FB_reinit + +CODESYS lifecycle hook clearing native handles and in-flight state. ClientBase also clears the request registry for re-registration; RequestBase clears execution/completion flags; servers clear their handle. These hooks alone do not establish qualified online-change support. + +```iecst +METHOD FB_reinit : BOOL +``` + +## RequestBase.invalidateNativeData + +Mark cached data invalid and stale. Does not erase the application array. Called during client release; applications should gate use of cached values with validity and age flags. + +```iecst +METHOD PUBLIC invalidateNativeData +``` + +## RequestBase.nativeFinish + +Complete a request from native result. Map errors, copy errno/write uncertainty, clear busy, update response/counters and successful-read freshness. Modbus exceptions count as replies and communication-online evidence. If enabled, uncertain writes are held pending writeNow(). + +```iecst +METHOD nativeFinish +VAR_INPUT + result : UDINT; +END_VAR +VAR + mapped : Error; + ex : ExceptionCodes; + duration : UDINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `result` | VAR_INPUT | `UDINT` | Native completion result; 0 success. | + +## RequestBase.nativeProcess + +Shared request processing called by derived processRequest. Completes native results or submits a selected request, sets its timeout and records busy/send counters. Updates data age and stale flags during ordinary processing. Completion branches can return before age refresh, so allow a subsequent scan for freshness diagnostics. + +```iecst +METHOD nativeProcess +VAR_INPUT + functionCode : BYTE; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `functionCode` | VAR_INPUT | `BYTE` | Modbus FC; command 20 uses data bits, server push/pull use table ID. | + +## RequestBase.processRequest + +Abstract internal request dispatch implemented by each concrete read/write block. + +```iecst +METHOD ABSTRACT processRequest +VAR_INPUT +END_VAR +``` + +## RequestBase.recreateRequest + +Clear this request nativeInFlight. If it is the client active request, recreate the whole client connection first. Returns TRUE. May affect other requests sharing the same connection; this is not an independent transport. + +```iecst +METHOD ABSTRACT recreateRequest : BOOL +``` + +## RequestBase.replyTimeout + +Protected timeout property expressed internally in microseconds. Request in_timeout is milliseconds and takes precedence, then client TIME in_timeout, then a dataRate formula, then 1 second fallback. Submission rounds up to milliseconds and clamps to at least 1 ms. + +```iecst +//Calculates the reply timout setting +PROPERTY PROTECTED replyTimeout : UDINT +``` + +## RequestStats.resetStats + +Reset only doneCnt, doneCntRst, errorCnt and errorCntRst. Retains durations, offlineCnt, timeoutCnt and timestamps. + +```iecst +METHOD resetStats +VAR_INPUT +END_VAR +``` + +## RequestStats.setClientOffline + +Clear nativeResponseSeen and consecutive-success count, force online FALSE/offline TRUE. Does not clear data arrays. Declared BOOL but does not assign a return value. + +```iecst +METHOD setClientOffline : BOOL +VAR_INPUT +END_VAR +``` + +## RequestStats.setToString + +Private statistics helper formatting OK:/Er: into STRING(20). Declared BOOL but does not assign a return value. + +```iecst +METHOD PRIVATE setToString : BOOL +VAR_INPUT +END_VAR +``` + +## RequestStats.execute + +Statistics execution property. Setting TRUE starts the execution state only when reqDone and reqError are FALSE; otherwise the setter clears execution. Usually controlled by the scheduler. + +```iecst +PROPERTY execute : BOOL +``` + +## RequestStats.reqBusy + +Get/set the underlying request-busy flag. Normally managed by the native wrapper. The scan-held reqBusyLight provides a more visible monitoring indicator. + +```iecst +PROPERTY reqBusy : BOOL +``` + +## RequestStats.reqDone + +Get/set completion flag. When TRUE during execution, record duration, increment total/consecutive successes, clear consecutive errors and last error, clear execution and update the monitor string. Do not repeatedly drive this manually. + +```iecst +PROPERTY reqDone : BOOL +``` + +## RequestStats.reqError + +Get/set error flag. When TRUE during execution, increment total/consecutive errors, clear consecutive successes and execution. If lastExceptionCode is success, increment timeoutCnt and set TIMEOUT even for some non-timeout native errors. + +```iecst +PROPERTY reqError : BOOL +``` + +## ReqWriteCoil.processRequest + +Derived request dispatch: performs ReqWriteCoil transaction using shared nativeProcess, validates copy bounds and transfers the configured slice. Called by client scheduler; application calls the request FB body to register/bind its data. + +```iecst +METHOD processRequest +``` + +## ReqWriteCoil.recreateRequest + +Clear this request nativeInFlight. If it is the client active request, recreate the whole client connection first. Returns TRUE. May affect other requests sharing the same connection; this is not an independent transport. + +```iecst +METHOD recreateRequest : BOOL +``` + +## ReqWriteCoil.writeNow + +Clear uncertain-write hold and out_writeUncertain, then set in_priorityCurrent to 0. Returns TRUE. Requests a prompt opportunity at the next scheduler selection; does not guarantee transmission in this call and does not bypass connection/minimum-delay requirements. + +```iecst +METHOD writeNow : BOOL +VAR_INPUT +END_VAR +``` + +## ReqWriteHolding.processRequest + +Derived request dispatch: performs ReqWriteHolding transaction using shared nativeProcess, validates copy bounds and transfers the configured slice. Called by client scheduler; application calls the request FB body to register/bind its data. + +```iecst +METHOD processRequest +``` + +## ReqWriteHolding.recreateRequest + +Clear this request nativeInFlight. If it is the client active request, recreate the whole client connection first. Returns TRUE. May affect other requests sharing the same connection; this is not an independent transport. + +```iecst +METHOD recreateRequest : BOOL +``` + +## ReqWriteHolding.writeNow + +Clear uncertain-write hold and out_writeUncertain, then set in_priorityCurrent to 0. Returns TRUE. Requests a prompt opportunity at the next scheduler selection; does not guarantee transmission in this call and does not bypass connection/minimum-delay requirements. + +```iecst +METHOD writeNow : BOOL +VAR_INPUT +END_VAR +``` + +## ModbusSlave.FB_exit + +CODESYS lifecycle hook releasing owned native resources. Applications should use release/recreateClient rather than call lifecycle hooks manually. Server hooks close the server context; the client hook calls nativeRelease. + +```iecst +METHOD FB_exit : BOOL +VAR_INPUT + bInCopyCode : BOOL; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `bInCopyCode` | VAR_INPUT | `BOOL` | Runtime lifecycle copy-code indicator; current implementation does not branch on it. | + +## ModbusSlave.FB_reinit + +CODESYS lifecycle hook clearing native handles and in-flight state. ClientBase also clears the request registry for re-registration; RequestBase clears execution/completion flags; servers clear their handle. These hooks alone do not establish qualified online-change support. + +```iecst +METHOD FB_reinit : BOOL +``` + +## ModbusSlave.serverCall + +Private adapter for native server commands. Uses separate server status and WORD staging buffers. Returns the command result; 0 means command accepted, not necessarily that the listener has bound. + +```iecst +METHOD PRIVATE serverCall : UDINT +VAR_INPUT + command : UDINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `command` | VAR_INPUT | `UDINT` | Native command selector. Use wrappers in application code. | + +## SlaveTCP.FB_exit + +CODESYS lifecycle hook releasing owned native resources. Applications should use release/recreateClient rather than call lifecycle hooks manually. Server hooks close the server context; the client hook calls nativeRelease. + +```iecst +METHOD FB_exit : BOOL +VAR_INPUT + bInCopyCode : BOOL; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `bInCopyCode` | VAR_INPUT | `BOOL` | Runtime lifecycle copy-code indicator; current implementation does not branch on it. | + +## SlaveTCP.FB_reinit + +CODESYS lifecycle hook clearing native handles and in-flight state. ClientBase also clears the request registry for re-registration; RequestBase clears execution/completion flags; servers clear their handle. These hooks alone do not establish qualified online-change support. + +```iecst +METHOD FB_reinit : BOOL +``` + +## SlaveTCP.serverCall + +Private adapter for native server commands. Uses separate server status and WORD staging buffers. Returns the command result; 0 means command accepted, not necessarily that the listener has bound. + +```iecst +METHOD PRIVATE serverCall : UDINT +VAR_INPUT + command : UDINT; +END_VAR +``` + +| Member | Direction | Declaration | Meaning | +|---|---|---|---| +| `command` | VAR_INPUT | `UDINT` | Native command selector. Use wrappers in application code. | + +## activeIndex.Get + +Get accessor for activeIndex; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst +VAR + requestIndex: DINT; //Loop variable +END_VAR +``` + +## activeIndex.Set + +Set accessor for activeIndex; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## activeReqCnt.Get + +Get accessor for activeReqCnt; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst +VAR + requestIndex : DINT; //Loop variable + cnt: UINT; +END_VAR +``` + +## allRequestsComplete.Get + +Get accessor for allRequestsComplete; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst +VAR + requestIndex : DINT; +END_VAR +``` + +## onlineCnt.Get + +Get accessor for onlineCnt; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst +VAR + requestIndex : DINT; //Loop variable + cnt: UINT; +END_VAR +``` + +## requestExecuting.Get + +Get accessor for requestExecuting; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## toString.Get + +Get accessor for toString; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## replyTimeout.Get + +Get accessor for replyTimeout; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## execute.Get + +Get accessor for execute; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## execute.Set + +Set accessor for execute; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## reqBusy.Get + +Get accessor for reqBusy; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## reqBusy.Set + +Set accessor for reqBusy; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## reqDone.Get + +Get accessor for reqDone; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## reqDone.Set + +Set accessor for reqDone; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## reqError.Get + +Get accessor for reqError; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + +## reqError.Set + +Set accessor for reqError; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor. + +```iecst + +``` + diff --git a/docs/BUILD-AND-USAGE.md b/docs/BUILD-AND-USAGE.md new file mode 100644 index 0000000..43929eb --- /dev/null +++ b/docs/BUILD-AND-USAGE.md @@ -0,0 +1,203 @@ +# atMb native TCP + RTU + TCP slave — development revision 0.9 + +The IEC export and C implementation have no ModbusFB dependency. All socket/ +serial/frame processing runs in the native component. Public namespace: atMb. +Standard and SysTime are still required for IEC timers and time measurement. + +This is a tested host development build, not a compiled CODESYS library or a +hardware-qualified Pi release. Full CODESYS compilation and physical RTU testing +remain required. Online-change ownership/pointer relocation is future work. + +## Rebuild on the Pi (required) + +Extract this bundle on the Pi, preserving component-source and ExtensionSDK +as siblings. Install build-essential, m4, dos2unix, make and python3 if absent. + +```sh +cd component-source +make -C component SDKDIR="$(realpath ../ExtensionSDK)" clean +make -C component SDKDIR="$(realpath ../ExtensionSDK)" all +file component/out/libCmpAtomModbus.so +make test +``` + +The component registration version is now 0.3.0.0. The external atMbCall_cext +function ABI, signature 0x709EE65B and generated API version 0.2.0.0 are unchanged. +No regeneration of runtime interface files is required for these extra commands. +Keep the supplied generated interface; do not regenerate blindly from a changed +library title/version. No prebuilt Pi binary is included. A strict host compile +of the component function used the supplied SDK headers and original real +parameter struct; the full SDK/M4/component frame build must run on your Pi. + +## Build the IEC library without legacy objects + +1. Create a fresh library project saved as CmpAtomModbus.library (or a backup copy + with the old Modbus master/slave folders removed). Import atMb-Native.export. + A fresh project is preferred because import does not delete omitted old methods. +2. Keep Project Information title CmpAtomModbus and default namespace atMb, as + supplied in the export. This is one combined library, not a wrapper referencing + a second CmpAtomModbus/atMb library. Remove those self/wrapper references. +3. Add only Standard and SysTime references needed by this IEC code. Remove the + ModbusFB reference. Resolve their ordinary dependencies if the IDE requests it. +4. Add a C Implemented Library object and embed your NEWLY BUILT ARM64 + component/out/libCmpAtomModbus.so for the exact Raspberry Pi 64 SL target. + Use CmpAtomModbus for the component name. The old TCP-only embedded object was + deliberately omitted from this export; do not reuse its binary. +5. Compile, save/install and update references in the Atom library/application. +6. Perform a full download. Verify runtime loads the new component version. + +For automatic deployment, stop using the old manually preloaded component +before testing the embedded one: remove only its ComponentManager entry, then +restart the runtime during maintenance. Alternatively, for a manual bench test, +stop the runtime and replace /usr/lib/libCmpAtomModbus.so with the new binary. +Inspect /var/log/codesyscontrol.log. No production install is performed by this kit. + +## TCP client + +Existing atMb.Client and ReqReadHolding/ReqReadInput/ReqReadCoil/ReqReadDiscrete/ +ReqWriteHolding/ReqWriteCoil calls remain. Supported C function codes are +1,2,3,4,5,6,15,16. Automatic retry continues while enabled; normal Modbus +exception replies do not force reconnects. The default retry delay is 100 ms. + +## Native RTU + +```iecst +VAR + bus : atMb.ClientRTU; + read : atMb.ReqReadHolding; + registers : ARRAY[0..9] OF UINT; +END_VAR +``` + +```iecst +bus( + in_device := '/dev/ttyUSB0', + in_baudRate := 9600, + in_parity := 0, + in_dataBits := 8, + in_stopBits := 1, + in_timeout := T#500MS, + in_reconnectDelay := T#100MS +); +read(client := bus, in_unitId := 1, in_startAddr := 0, + in_quantity := 10, in_dataOffset := 0, in_minDelay := T#100MS, + data := registers); +``` + +Call client/requests every scan in ONE task. One RTU client owns each serial bus; +register different unit IDs on that same client, rather than opening multiple +clients on the same tty. The native open uses exclusive serial access. + +Use /dev/serial/by-id/... when it fits the 127-byte path limit, or a stable +short udev symlink. The runtime OS user must have access to the device; check the +actual service user and device group on your Pi. Stop other serial consumers. +The old numeric in_port selection was removed; a numeric index is not a portable +Linux device mapping. in_baudRate is now UDINT so 115200 fits. + +Supported baud rates: 1200,2400,4800,9600,19200,38400,57600,115200. +RTU uses 8 data bits; parity 0 none/1 odd/2 even; stop bits 1 or 2. +Unit IDs 1..247 are accepted. Broadcast unit 0 is explicitly rejected because +broadcast completion cannot be reported as an acknowledged write. + +For automatic-direction USB RS485 adapters leave in_rs485 FALSE. TRUE requests +Linux TIOCSRS485 with RTS during transmit; unsupported drivers report an OS error. +No software GPIO direction control or adapter-specific configuration is included. + +CRC, unit/function, length and write echo are validated before accepting replies. +Faults close/reopen the tty after the configured retry delay. No raw write packet +is replayed by the engine. The existing scheduler can issue fresh cyclic writes; +use in_holdUncertainWrites TRUE for commands requiring an application decision. +Delayed serial replies have no transaction ID: use suitable timeout/retry settings +for slow devices. Serial silence is conservatively scheduled in milliseconds; +physical adapter/baud/parity/line-turnaround tests are still necessary. PTY tests +cannot certify electrical timing, parity generation or RS485 direction behavior. + +out_connected on RTU means the tty is open/ready, not proof that a remote unit +responds. Use per-request online/stale/error status. out_socketError carries the +OS errno for tty failures too. All existing client status counters are shared. + +## Native TCP slave + +atMb.ModbusSlave and atMb.SlaveTCP both run the C server (no ModbusFB server). +Map four BOOL/UINT arrays using aDiscreteInputsMemory/aCoilsMemory/ +aInputRegistersMemory/aHoldingRegistersMemory. Their actual LOWER_BOUND is their +zero-based protocol starting address; each table is limited to 2000 items and +must fit within addresses 0..65535. A full 65536-item table is not supported. + +Use in_ipAddress DWORD = 0 to bind all addresses, or numeric IPv4 in human octet +order (16#7F000001 for 127.0.0.1). port defaults to 502. The legacy interfaceName +field is retained but must be empty; numeric bind IP replaces interface-name +binding. Nonempty names are reported as parameter errors rather than ignored. + +Example: `slave : atMb.ModbusSlave;` with all four arrays passed every scan: + +```iecst +slave(in_enable := TRUE, in_ipAddress := DWORD#0, port := 502, + aDiscreteInputsMemory := discreteInputs, + aCoilsMemory := coils, + aInputRegistersMemory := inputRegisters, + aHoldingRegistersMemory := holdingRegisters); +``` + +FC1/2/3/4/5/6/15/16 are implemented, with exception replies for unsupported +functions, invalid quantities or unmapped addresses. Four server contexts, +eight simultaneous peers per server. Requests are bounded and processed in +order per connection. A server tick accepts at most one peer and performs at +most one nonblocking I/O action per peer per IEC call. Incomplete frames/send +stall timeout after 5 seconds; idle peers close after 60 seconds. + +The wrapper pushes PLC table snapshots, ticks the engine, then pulls completed +remote writes in the same scan. C retains no PLC pointers between calls. Application +writes between calls become the next snapshot. Arrange application order accordingly. +The fixed server limits and scan-bounded throughput differ from the old ModbusFB +server; load test your actual client count/polling rates. No RTU slave is provided. + +in_enable controls listening, in_reset recreates the context, endpoint changes +recreate it, and listener failures retry automatically after in_reconnectDelay. +Outputs: out_running/out_error/out_errorId/out_parameterError/out_socketError, +out_connectedClients/out_requestsReceived/out_repliesSent/out_exceptionReplies. + +## Native lifecycle and API + +All bridge/server contexts are fixed-pool, generation-checked and single-task. +No RETAIN/PERSISTENT handles. release() disables client enable and closes its +context. STOP alone does not guarantee FB_exit: disable and scan before STOP. +New full download required; online-change safety is not claimed in this revision. + +Own Error and ExceptionCodes DUTs replace the ModbusFB enums. Error retains the +named compatibility labels used by request statistics. Legacy dynamically +allocated request methods are removed or become native recreateRequest BOOL. +Old allocation-alarm outputs/legacy request reset fields were removed because +these contexts use fixed native pools. A pool-full result is native error 257. + +Command 20: open RTU. data contains one device-path ASCII byte per WORD, quantity +is path length; ipAddress=baud; unitId=parity; functionCode=bits; +startAddress=stop bits; connectTimeoutMs=kernel RS485 flag (0/1). +The existing commands 2..11 configure/tick/submit/close this client normally. +Commands 30..36: server open/close/enable/disable/tick/push/pull. Push/pull use +functionCode as table 0 coils/1 discrete/2 holding/3 input, startAddress as base +and quantity as length. Server handles use distinct low-byte tags from clients. +Server status indices: 0 handle,1 running,2 error,3 result,4 OS errno,5 peers, +6 requests,7 replies,8 exception replies. Client status layout is unchanged. + +## Tests and remaining checks + +Run make test on Linux. Includes existing nine TCP scenarios directly and through +the bridge, pool/handle tests, PTY RTU read/fragment/CRC/timeout/recovery/exception/ +register-write/coil-write/invalid-write-echo recovery tests and native slave FC1/2/3/4/5/6/15/16, nonzero mapping, +exception/listener-recovery/stale-handle tests. All passed on the development host. +The CODESYS XML has no ModbusFB identifiers and passes structural checks. It has +not been compiled in the IDE; hardware Pi/serial and embedded deployment tests +remain. Do not interpret host tests as target or online-change qualification. + + +v0.9.1 export correction +------------------------ +Restores ClientBase public diagnostics: msgLastSecondCnt, msgLastSecondTime, +numMsgSent, numMsgReply, allRequestsOnline and reqStats. The generator now +checks these declarations and balanced VAR sections. Replace matching objects +when importing the corrected export. C sources are unchanged from v0.9; this +correction alone does not require rebuilding an already installed v0.9 component. +The full native migration still requires the C build and embedding described above. +Validated XML and declaration checks locally; CODESYS compilation must be checked +in the IDE. diff --git a/docs/DOCUMENTATION-VALIDATION.md b/docs/DOCUMENTATION-VALIDATION.md new file mode 100644 index 0000000..8a636a7 --- /dev/null +++ b/docs/DOCUMENTATION-VALIDATION.md @@ -0,0 +1,11 @@ +# Documentation validation + +Documented 95 code objects. + +- All interface executable tokens unchanged after removing comments/whitespace. +- All XML content outside Interface text identical after parse/serialization. +- Implementations, GUIDs, native payloads, project information and references unchanged. +- Documented XML parses successfully. +- No CODESYS IDE compile performed; this is a comments-only change. + +Input SHA256: `5a07da11853e955633a977bdd59a7d1f8f292c594c2116bc220bd63c8edc9329` diff --git a/docs/USER-GUIDE.md b/docs/USER-GUIDE.md new file mode 100644 index 0000000..806fdb0 --- /dev/null +++ b/docs/USER-GUIDE.md @@ -0,0 +1,216 @@ +# atMb usage and behavior + +This guide describes the supplied working export, including its renamed `ClientTCP`. The documented export changes comments only and retains the embedded C Implemented Library object. Import with replacement of matching objects into your existing library project. No C rebuild is needed for these documentation changes. + +## Choosing the block + +| Application | Block | Data | +|---|---|---| +| TCP master/client | `atMb.ClientTCP` | IPv4 byte array and TCP port | +| RTU master/client | `atMb.ClientRTU` | Linux serial device and serial settings | +| Read coils, FC1 | `atMb.ReqReadCoil` | BOOL array | +| Read discrete inputs, FC2 | `atMb.ReqReadDiscrete` | BOOL array | +| Read holding registers, FC3 | `atMb.ReqReadHolding` | UINT array | +| Read input registers, FC4 | `atMb.ReqReadInput` | UINT array | +| Write coils, FC15 | `atMb.ReqWriteCoil` | BOOL array | +| Write holding registers, FC16 | `atMb.ReqWriteHolding` | UINT array | +| TCP slave/server | `atMb.SlaveTCP` or `atMb.ModbusSlave` | Four memory arrays | + +The two slave blocks have identical code/interfaces. They do not provide RTU slave operation. `ClientBase` and `RequestBase` are abstract and are not instantiated directly. + +## TCP read example + +Declarations: + +```iecst +VAR + mbClient : atMb.ClientTCP; + readRegisters : atMb.ReqReadHolding; + registers : ARRAY[0..9] OF UINT; + dataUsable : BOOL; +END_VAR +``` + +Cyclic body: + +```iecst +mbClient( + in_ipAddress := atMb.To_IPAddress(192,168,50,10), + in_port := 502, + in_enable := TRUE, + in_connectTimeout := T#2S, + in_reconnectDelay := T#100MS, + in_timeout := T#500MS); + +readRegisters( + client := mbClient, + in_unitId := 1, + in_startAddr := 0, + in_quantity := 10, + in_dataOffset := 0, + in_minDelay := T#100MS, + in_staleAfter := T#2S, + data := registers); + +dataUsable := readRegisters.out_validData AND NOT readRegisters.out_stale; +``` + +Call the client and each request every scan from one IEC task. On the first scan the client initializes its native mode, and the request registers afterwards; polling can begin on a subsequent scan. The request body binds the current array and usable count; the client dispatches the request method. No separate execute trigger is required for cyclic polling. + +Keep instances and arrays stable. Avoid temporarily allocated request objects or sharing native contexts across tasks. Multiple requests can share a client; they are serialized. The supplied C implementation has 16 client contexts shared between TCP/RTU, 100 registrations per IEC client, and one in-flight transaction per client. + +## Addresses and lengths + +Protocol addresses are zero-based: a manual describing its first holding register as 40001 often maps to `in_startAddr := 0`. Confirm the device's mapping; do not pass 40001 automatically. + +`in_dataOffset` is the actual array index. With `ARRAY[1..10]`, use 1 to access the first element. `in_quantity` is clamped to the remaining array capacity rather than always rejected. Check `stats.reqLength` for the effective count. + +Limits per transaction: FC1/2 2000 bits, FC3/4 125 registers, FC15 1968 coils, FC16 123 registers. A one-element write still uses FC15/16 in the public write blocks. Register values are unsigned 16-bit words; converting floats, signed values or multi-register values and selecting word order are application responsibilities. + +## RTU example + +Use the same requests with this client: + +```iecst +VAR + serialClient : atMb.ClientRTU; + readRegisters : atMb.ReqReadHolding; + registers : ARRAY[0..9] OF UINT; +END_VAR +``` + +```iecst +serialClient( + in_device := '/dev/ttyUSB0', + in_baudRate := 9600, + in_parity := 0, + in_dataBits := 8, + in_stopBits := 1, + in_rs485 := FALSE, + in_enable := TRUE, + in_timeout := T#500MS, + in_reconnectDelay := T#100MS); + +readRegisters(client := serialClient, in_unitId := 1, + in_startAddr := 0, in_quantity := 10, in_dataOffset := 0, + data := registers); +``` + +Set RTU unit ID explicitly to 1..247; the inherited request default is 0 and broadcast is unsupported. The Linux runtime account needs serial device permissions. Use a stable device path where available. `in_rs485` requests kernel-managed direction control and requires driver support; USB adapters that control direction automatically generally use FALSE. Serial-port configuration must match the device. + +The supplied native source supports 1200/2400/4800/9600/19200/38400/57600/115200 baud, 8 bits, parity none/odd/even and one/two stop bits. Timing uses nonblocking I/O and scan-driven millisecond deadlines; physical adapter timing must be verified on the target hardware. + +## Polling and priority + +Requests become active when their effective length is nonzero. They register automatically and poll while the client is enabled. `in_quantity := 0` makes a registered request inactive; it does not remove it from the registry. + +`in_minDelay` controls eligibility by age since the previous start. It is not a guaranteed polling period. Lowest `in_priorityCurrent` wins, and age breaks equal-priority ties. On success, current priority is restored to `in_prioritySetpoint`. On error it becomes `10 * MIN(consecutive errors,3)^2`: 10, 40, then 90. The current scheduler does not require priority to reach zero before submitting. Avoid overwriting current priority every scan unless that is intended. + +## Writes and uncertainty + +Write arrays are copied at submission, so changes made afterwards affect a later transaction. An active write request is cyclic, just like a read; `writeNow()` is a priority/hold-release operation, not a single-shot write API. + +When a connection fails after a write may have been transmitted, `out_writeUncertain` means the target could already have applied it. With `in_holdUncertainWrites := FALSE`, normal scheduling can retry. With TRUE, that write request is held until its `writeNow()` is called. Other eligible requests can continue. + +```iecst +// On an application-controlled event, after preparing the source array: +writeRegisters.writeNow(); +``` + +This clears the hold/uncertain output and sets priority 0. The client must still be enabled/connected, the request active and its minimum-delay condition satisfied. Confirm target behavior before retrying commands whose effects should occur only once. + +## Timeouts and reconnects + +Reply timeout precedence: + +1. Request `in_timeout`: SYSTIME numeric milliseconds, when nonzero. +2. Client `in_timeout`: TIME, when nonzero. +3. Calculated timeout using client dataRate. +4. A one-second fallback if dataRate is zero. + +The internal property calculates microseconds; submission rounds up to milliseconds with a minimum of 1 ms. TCP defaults its dataRate hint to 105200; the calculated timeout is approximately 38 ms. RTU uses its baud rate; at 9600 the formula gives approximately 411 ms. Explicit client/request timeouts make behavior easier to control. + +`in_connectTimeout` is the TCP connection deadline, separate from reply timeout. `in_reconnectDelay` defaults to 100 ms. It is the recovery wait after detecting failure, not a guarantee of recovery within 100 ms: scan time, connection timeout, reply timeout, OS behavior and target readiness also matter. + +Endpoint/configuration changes release and recreate the native context. `recreateClient()` forces this process; it does not permanently disable the client. `release()` also sets `in_enable := FALSE`. To restart, set TRUE and continue scanning. Supplying TRUE as a call parameter every scan will override that disabled input on the next call. + +## Data quality and statistics + +| Diagnostic | Meaning | +|---|---| +| Client `out_connected` | Native transport is ready/sending/receiving | +| Request `stats.online` | Valid response evidence, including Modbus exceptions | +| Request `out_validData` | A successful read has populated data since invalidation | +| Request `out_stale` | No valid data, or last successful read is older than threshold | +| Request `out_dataAgeMs` | Age of successful read data | +| Request `out_nativeError` | Last native request result | +| Request `stats.lastErrorId` | Mapped IEC error classification | +| Request `stats.lastExceptionCode` | Modbus exception or local statistics classification | +| `out_socketError` | OS errno snapshot for socket/serial failure | + +These represent different conditions. Exception replies can make communication online while the read fails. Read failures retain old values and may retain `out_validData`; use freshness as well. Releasing the client marks cached data invalid but does not erase arrays. Some completion paths return before updating age, so freshness outputs can refresh on the following scan. + +`reqDone`/`reqError` are internal completion flags; the light outputs use a 100 ms off-delay for monitoring. `timeoutCnt` currently counts non-exception errors that statistics classify as TIMEOUT, not only native reply deadlines. Prefer native result 6 for a precise reply timeout. + +Client `resetStats()` resets IEC send/reply/window counters and each request's four success/error counters. Request `stats.resetStats()` resets only `doneCnt`, `doneCntRst`, `errorCnt`, `errorCntRst`. Durations, timestamps, offline count, timeout count and native reconnect/errno history are retained. `in_resetStats` is consumed and cleared by the client; providing TRUE every scan keeps resetting it. + +## TCP slave example + +```iecst +VAR + server : atMb.SlaveTCP; + coils : ARRAY[0..15] OF BOOL; + discreteInputs : ARRAY[0..15] OF BOOL; + holding : ARRAY[0..31] OF UINT; + inputs : ARRAY[0..31] OF UINT; +END_VAR +``` + +```iecst +// Publish application inputs before the server call. +inputs[0] := 123; +server(in_enable := TRUE, in_ipAddress := DWORD#0, port := 1502, + aCoilsMemory := coils, + aDiscreteInputsMemory := discreteInputs, + aHoldingRegistersMemory := holding, + aInputRegistersMemory := inputs); +// Consume network-written coils/holding values after this call. +``` + +Port 1502 is an example; select the application's port. Keep `interfaceName` empty. `in_ipAddress := 0` binds all interfaces. A specific bind IPv4 is packed into DWORD, e.g. `DWORD#16#C0A8321F` for 192.168.50.31. + +Each table has independent addresses. `ARRAY[100..109] OF UINT` maps addresses 100..109, not 0..9. All tables must use nonnegative bounds within 0..65535 and at most 2000 elements. The current API requires four arrays; a small placeholder can represent an otherwise unused table. + +The wrapper snapshots all four application tables into native memory, processes bounded network work, then copies the tables back. Network writes affect coils and holding registers. Avoid overwriting externally controlled values unconditionally in application code each scan unless that override is intentional. The supplied C engine supports four server contexts and eight peers per server. Server contexts are separate from the 16-client pool. + +`out_running` means the listener is bound; `out_connectedClients` indicates peers. `in_reset` is consumed and cleared; a constant TRUE recreates the server every scan. Listener bind failures retry while enabled. Counters reset with server context recreation. Some early-return paths leave prior outputs unchanged; interpret diagnostic outputs together. + +## Native result codes and client states + +| Result | Meaning | +|---|---| +| 0 | Success | +| 1 | Invalid argument | +| 2 | Native client busy | +| 3 | Client offline/not ready | +| 4 | Socket/serial OS error | +| 5 | TCP connection deadline | +| 6 | Reply deadline | +| 7 | Peer closed | +| 8 | Invalid protocol/frame/reply | +| 9 | Modbus exception response | +| 10 | Cancelled | +| 256 | Invalid/stale native handle | +| 257 | Native pool full | +| 258 | Insufficient/invalid buffer capacity | +| 259 | Unknown command | + +These are distinct from the sparse IEC `Error` enum. IEC mapping combines 4/7 into `TcpSocketError`, 1/258 into `RequestParameterError`; other unmapped results become `InternalError`. TCP names also classify RTU failures. + +States: 0 disabled, 1 retry wait, 2 connecting, 3 ready, 4 sending, 5 receiving. + +## Maintenance and scope + +The documented export preserves the working implementations, metadata and embedded payloads. Internal native fields are sometimes exposed as VAR_INPUT for compatibility; leave them under library control. Several legacy BOOL methods do not assign a return value; the API reference identifies them so callers rely on their side effects. + +Lifecycle hooks exist, but reliable online-change ownership and pointer relocation remain future work. Documentation adds no behavior changes or online-change guarantee. Use the API reference for every method/property, including internal accessors. diff --git a/docs/VALIDATION.md b/docs/VALIDATION.md new file mode 100644 index 0000000..322a86b --- /dev/null +++ b/docs/VALIDATION.md @@ -0,0 +1,14 @@ +# Snapshot validation + +- Export generator completed: 99 objects, no ModbusFB references. +- Public diagnostics and balanced VAR declaration checks passed. +- Strict host C compilation passed. +- Bridge pool/stale handle/configuration/shutdown tests passed. +- Nine TCP scenarios passed directly and through the native bridge. +- RTU pseudo-terminal tests passed, including CRC/timeout recovery, partial frames, + writes, exceptions and invalid write echo recovery. +- TCP slave FC 1/2/3/4/5/6/15/16, exception, nonzero base, listener recovery + and stale handle tests passed. + +No CODESYS IDE compile, full ARM64 SDK build, physical serial hardware test, +or online-change qualification was performed for this repository package. diff --git a/docs/document_export.py b/docs/document_export.py new file mode 100644 index 0000000..92b6be8 --- /dev/null +++ b/docs/document_export.py @@ -0,0 +1,194 @@ +from pathlib import Path +import xml.etree.ElementTree as E +import re,hashlib,json,zipfile +B=Path(__file__).resolve().parent +src=B.parent/'reference/Working-CmpAtomModbus.export' +r=E.parse(src).getroot();entries=list(r.find('.//List2[@Name="EntryList"]')) +def meta(e,n):return e.find('./Single[@Name="MetaObject"]/Single[@Name="'+n+'"]') +names={meta(e,'Guid').text:meta(e,'Name').text for e in entries} +def path(e): + n=meta(e,'Name').text;p=e.find('./Single[@Name="ParentSVNodeGuid"]').text + return names.get(p,''),n +def blob(e,p):return e.find('./Single[@Name="Object"]/Single[@Name="'+p+'"]//Single[@Name="TextBlobForSerialisation"]') +summary={ +'ClientBase':'Abstract shared client scheduler and native transport owner. Use ClientTCP or ClientRTU. Holds up to 100 registered requests and runs one transaction at a time. Call the concrete client once per scan, from the same task as its requests.', +'ClientTCP':'Modbus TCP client with automatic retry after connection or transaction failure. Call every scan. Endpoint or timeout/retry configuration changes close the current context and reopen it on subsequent scans. Requests share this connection and execute sequentially.', +'ClientRTU':'Modbus RTU client using a Linux serial device. Call every scan. Supports 8 data bits, parity 0 none/1 odd/2 even, and 1 or 2 stop bits. Uses unit IDs 1..247; broadcast 0 is unsupported. Serial-setting changes recreate the context. Automatic recovery proceeds while enabled and scanned.', +'RequestBase':'Abstract request binding, scheduling and diagnostics. Derived requests register automatically when called with a valid initialized client. Call each instance every scan with stable array storage. Quantity zero disables this request. Actual length is MIN(in_quantity, remaining array capacity).', +'RequestStats':'Request counters, completion properties, online/offline tracking and 100 ms indicator lights. Normally maintained by RequestBase. Online means a valid response was received, including a Modbus exception; it does not guarantee successful data. Several fields are declared VAR_INPUT for compatibility but are maintained internally.', +'To_IPAddress':'Returns the four supplied bytes as ARRAY[0..3] OF BYTE. Example: atMb.To_IPAddress(192,168,50,10). This is the ClientTCP address format; the slave bind address instead uses a packed DWORD.', +'ModbusSlave':'Native Modbus TCP server. Same implementation and interface as SlaveTCP. Call once per scan with all four memory arrays. Array bounds are protocol addresses; each table is limited to 2000 elements and addresses 0..65535. Pushes application memory, performs bounded network processing, then copies native memory back. This is TCP only, not an RTU slave.', +'SlaveTCP':'Native Modbus TCP server with four separate memory tables. Same implementation and interface as ModbusSlave. FC 1/2/3/4 read the tables; FC 5/6/15/16 write coils/holding registers. Array lower bounds define Modbus addresses. Call every scan and retain array storage. This is TCP only.', +'ClientStatus':'Aggregate request status used by the RTU monitoring property: noneOk=0, someOk=1, allOk=2. This describes request online flags, not the physical connection. The current toString getter compares onlineCnt with all registered requests and reports allOk for an empty registry.', +'Error':'IEC error classification. TCP-named socket/timeout members are also used for RTU failures. For the precise native reason inspect out_nativeError/out_lastNativeError; for an OS failure inspect out_socketError.', +'ExceptionCodes':'Modbus exception response values plus local TIMEOUT=-1. A valid Modbus exception proves communication, but the requested operation failed. In current statistics, non-exception errors can also be classified as TIMEOUT; use native diagnostics to distinguish their actual cause.', +'atMbCall_cext':'External C ABI entry point used by the wrappers. Application code should normally call the function blocks. Do not change parameter order/types or external implementation settings. Pointers are accessed synchronously by C; provide distinct valid data/status buffers and truthful capacities. Client status requires 24 UDINT elements. All calls must be owned by one IEC task.', +'addRequest':'Register a non-null RequestBase pointer once. Duplicate pointers are ignored. Capacity is 100 requests per client; overflow sets out_registrationFull. No removal API is provided. Normally called automatically by the request FB.', +'nativeCall':'Internal adapter to atMbCall_cext. Command 20 packs the ASCII serial path into WORD storage and passes serial settings in ABI fields; other commands use normal client arguments and status buffers. Return is the native command result, 0 for success.', +'nativeCycle':'Internal per-scan engine: acquire context, tick nonblocking I/O, update diagnostics, copy completed read data, process registered requests, acknowledge completion, select the next request, and publish statistics. Invalid native handles are discarded and reopened on a later scan.', +'nativeEnsureContext':'Acquire/configure/enable a native context if absent. Returns TRUE when a handle exists or initialization succeeds. A handle does not mean connected; check out_connected. Failure records a native error and closes partially initialized contexts.', +'nativeRelease':'Close the native context, complete any active request as cancelled, clear selection, set registered requests offline and invalidate cached read data. Returns TRUE. It does not set in_enable FALSE; an enabled scanned client can reopen.', +'nativeSelectNextRequest':'Select an active, unheld request that meets in_minDelay and was not just completed this scan. Lowest in_priorityCurrent wins; oldest sinceLastExec breaks ties. Positive priorities are decremented when the best selected priority is positive. The selected request is submitted immediately; zero priority is not a prerequisite for execution.', +'nativeUpdateDiagnostics':'Publish native connection state, last error, errno and reconnect count. States 3..5 count as connected. A connected-to-disconnected transition marks registered requests offline.', +'nativeUpdateStatistics':'Publish IEC send/reply counters, registered statistics pointers and active-request aggregate online flags. Every elapsed window of at least 1000 ms publishes submitted-request count and successful transaction-duration sum, then restarts the window.', +'processAllRequests':'Internal loop over registered non-null requests, dispatching processRequest. Returns immediately for an empty or invalid registry. Usually invoked by nativeCycle rather than application code.', +'recreateClient':'Close/release the current context so the next enabled scan creates a fresh one with current settings. Cancels an active transaction and invalidates cached read data. Abstract on ClientBase; implemented by both concrete clients.', +'release':'Stop this client by setting in_enable FALSE, then release its native context. Returns the release result. To resume, set in_enable TRUE and keep calling the client. A call that supplies in_enable := TRUE every scan will re-enable it.', +'setAllRequestsOffline':'Internal helper marking every registered request offline via its statistics FB. Returns TRUE after processing a nonempty valid registry; early return does not explicitly assign the return value.', +'setupClient':'Returns whether nativeHandle is nonzero. It does not create a context or guarantee transport connectivity. Normal FB scanning performs initialization.', +'activeIndex':'Get the current active request registry index, or -1 when idle. Setting a valid index sets that request stats.execute TRUE; it does not bypass native scheduler selection or directly submit a transaction.', +'activeReqCnt':'Private count of registered requests whose stats.active is TRUE. Zero quantity/usable length requests are inactive.', +'allRequestsComplete':'Private legacy completion check. TRUE only if none of the registered requests has execute, reqDone, reqBusy or reqError set. Empty registry returns FALSE. This is not a network completion pulse.', +'onlineCnt':'Count registered requests with stats.online TRUE. Includes any registered request with that flag; used for aggregate reporting.', +'requestExecuting':'Private property returning activeIndex <> -1. Represents selected/active request state maintained by the scheduler.', +'toString':'ClientRTU monitoring property returning ClientStatus based on onlineCnt versus requestCnt. Reports allOk for an empty registry. RequestStats also has an internal STRING field of this name; these are different values.', +'busy':'Assign stats.reqBusy from input in. Internal request helper. Although declared BOOL, its implementation does not assign a return value; use the side effect rather than the return.', +'done':'Set stats.reqDone. When in is TRUE, restore in_priorityCurrent to in_prioritySetpoint for the next scheduler cycle. Successful completion counters are maintained by the stats property setter.', +'err':'Set stats.reqError and, on TRUE, record errorId/exceptionCode. Set next priority to 10 * MIN(consecutive errors,3)^2. Lower numeric priority wins, so this backs off repeated failures relative to lower-priority-number requests.', +'invalidateNativeData':'Mark cached data invalid and stale. Does not erase the application array. Called during client release; applications should gate use of cached values with validity and age flags.', +'nativeFinish':'Complete a request from native result. Map errors, copy errno/write uncertainty, clear busy, update response/counters and successful-read freshness. Modbus exceptions count as replies and communication-online evidence. If enabled, uncertain writes are held pending writeNow().', +'nativeProcess':'Shared request processing called by derived processRequest. Completes native results or submits a selected request, sets its timeout and records busy/send counters. Updates data age and stale flags during ordinary processing. Completion branches can return before age refresh, so allow a subsequent scan for freshness diagnostics.', +'replyTimeout':'Protected timeout property expressed internally in microseconds. Request in_timeout is milliseconds and takes precedence, then client TIME in_timeout, then a dataRate formula, then 1 second fallback. Submission rounds up to milliseconds and clamps to at least 1 ms.', +'setClientOffline':'Clear nativeResponseSeen and consecutive-success count, force online FALSE/offline TRUE. Does not clear data arrays. Declared BOOL but does not assign a return value.', +'setToString':'Private statistics helper formatting OK:/Er: into STRING(20). Declared BOOL but does not assign a return value.', +'execute':'Statistics execution property. Setting TRUE starts the execution state only when reqDone and reqError are FALSE; otherwise the setter clears execution. Usually controlled by the scheduler.', +'reqBusy':'Get/set the underlying request-busy flag. Normally managed by the native wrapper. The scan-held reqBusyLight provides a more visible monitoring indicator.', +'reqDone':'Get/set completion flag. When TRUE during execution, record duration, increment total/consecutive successes, clear consecutive errors and last error, clear execution and update the monitor string. Do not repeatedly drive this manually.', +'reqError':'Get/set error flag. When TRUE during execution, increment total/consecutive errors, clear consecutive successes and execution. If lastExceptionCode is success, increment timeoutCnt and set TIMEOUT even for some non-timeout native errors.', +'recreateRequest':'Clear this request nativeInFlight. If it is the client active request, recreate the whole client connection first. Returns TRUE. May affect other requests sharing the same connection; this is not an independent transport.', +'writeNow':'Clear uncertain-write hold and out_writeUncertain, then set in_priorityCurrent to 0. Returns TRUE. Requests a prompt opportunity at the next scheduler selection; does not guarantee transmission in this call and does not bypass connection/minimum-delay requirements.', +'serverCall':'Private adapter for native server commands. Uses separate server status and WORD staging buffers. Returns the command result; 0 means command accepted, not necessarily that the listener has bound.', +'FB_exit':'CODESYS lifecycle hook releasing owned native resources. Applications should use release/recreateClient rather than call lifecycle hooks manually. Server hooks close the server context; the client hook calls nativeRelease.', +'FB_reinit':'CODESYS lifecycle hook clearing native handles and in-flight state. ClientBase also clears the request registry for re-registration; RequestBase clears execution/completion flags; servers clear their handle. These hooks alone do not establish qualified online-change support.'} +for name,fc,kind,limit in [('ReqReadCoil',1,'BOOL coils',2000),('ReqReadDiscrete',2,'BOOL discrete inputs',2000),('ReqReadHolding',3,'UINT holding registers',125),('ReqReadInput',4,'UINT input registers',125),('ReqWriteCoil',15,'BOOL coils',1968),('ReqWriteHolding',16,'UINT holding registers',123)]: + summary[name]=f'Modbus FC {fc}: '+('write ' if fc>=15 else 'read ')+f'{kind}. Call every scan with a client reference and data array. Protocol start address is zero-based; in_dataOffset is the actual array index. Maximum transaction length is {limit}. Usable length is clamped to array capacity. '+('Values are copied into native storage at submission. This FB uses the multiple-write FC even for one element. Use writeNow() to release a held uncertain write.' if fc>=15 else 'Only a successful validated reply updates the destination slice. Old values remain after failures; check out_validData and out_stale.') +fields={ +'in_enable':'Enable processing; TRUE by default. FALSE releases transport. Continue scanning to refresh state.', +'in_timeout':'Reply timeout override. ClientBase: TIME; RequestBase: SYSTIME numeric milliseconds (not microseconds). Zero selects inherited/calculated timeout.', +'in_resetStats':'Reset request consumed and cleared by nativeCycle. Supplying TRUE on every call resets statistics every scan; pulse once.', +'in_ipAddress':'ClientTCP: four IPv4 bytes. Slave: packed numeric DWORD, 0 binds all interfaces; e.g. DWORD#16#C0A8321F for 192.168.50.31.', +'in_port':'Remote TCP port, default 502.', 'in_baudrate':'TCP gateway serial baud-rate hint for calculated reply timeout; 0 uses internal dataRate 105200. Does not configure a serial port.', +'in_connectTimeout':'TCP connection-attempt deadline, default 2 s; clamped to at least 1 ms.', +'in_reconnectDelay':'Delay before native recovery attempt, default 100 ms; clamped to at least 1 ms. Effective timing also depends on scan interval and failure detection.', +'in_holdUncertainWrites':'FALSE allows normal retries after uncertain writes. TRUE holds affected write requests until writeNow(); read requests can continue.', +'in_device':'Linux serial device path, default /dev/ttyUSB0, at most 127 ASCII characters. Runtime account needs access.', +'in_baudRate':'Serial baud rate, default 9600. Supplied C source accepts 1200,2400,4800,9600,19200,38400,57600,115200.', +'in_parity':'0 none, 1 odd, 2 even. Must match the slave.', 'in_dataBits':'Only 8 supported by supplied native implementation.', 'in_stopBits':'1 or 2; must match the slave.', +'in_rs485':'Request Linux kernel RS485 direction control. Leave FALSE for USB adapters handling direction automatically. Requires driver support.', +'client':'Reference to the owning ClientBase concrete instance. Initialize/call client before first registration; retain a stable instance.', +'in_startAddr':'Zero-based Modbus protocol address, not a 40001/30001 display reference. Must fit the transaction into address space.', +'in_quantity':'Requested item count; actual stats.reqLength is MIN(this, available destination/source capacity). Zero makes the request inactive.', +'in_dataOffset':'Actual first index in the application array. For ARRAY[1..10], use 1 to start at the first element; not a relative offset.', +'in_unitId':'Modbus unit/slave ID, default 0. RTU requires explicit 1..247; TCP/gateway values depend on the target.', +'in_minDelay':'Minimum start-to-start time before scheduler eligibility, default 10 ms. Not a fixed polling period.', +'in_prioritySetpoint':'Priority restored on success, default 50. Lower values win. Error backoff can replace current priority.', +'in_priorityCurrent':'Mutable scheduler priority. Lower values win, equal values use age. WriteNow sets 0. Application need not maintain it each scan.', +'in_staleAfter':'Read data age threshold, default 2 s. out_stale becomes TRUE when age is strictly greater; does not stop polling.', +'data':'Open array: BOOL for coils/discretes; UINT for registers. Stable VAR_IN_OUT storage. Writes snapshot values at submission; reads replace only their successful slice.', +'stats':'Per-request RequestStats instance maintained by request processing; inspect rather than overwrite.', +'out_connected':'Transport is in ready/sending/receiving state. Does not prove a request succeeded or data is fresh.', +'out_connectionState':'0 disabled, 1 retry wait, 2 TCP connecting, 3 ready, 4 sending, 5 receiving.', +'out_lastNativeError':'Native last transport error; may persist after recovery. Check current connection and request diagnostics too.', +'out_nativeError':'Result of the last completed/failed request; 0 success. Precise native code, distinct from IEC Error enum.', +'out_socketError':'Native Linux errno snapshot as UDINT; may be historical. Used for both serial and sockets.', +'out_reconnectCount':'Native successful reconnections after the first connection. Context recreation resets its native lifetime counters.', +'out_registrationFull':'Sticky request registry overflow indicator; max 100 requests/client. Client reinitialization clears it.', +'out_writeUncertain':'Write may have reached target without a confirmed response. It is not proof of failure or success. Relevant for write requests.', +'out_validData':'TRUE after a successful read; subsequent read failures do not necessarily clear it. Client release or invalidateNativeData clears it.', +'out_dataAgeMs':'Age since last successful read in milliseconds. Updated by normal processing; completion early returns can defer refresh by one scan.', +'out_stale':'TRUE before valid read data or when age exceeds in_staleAfter. Array contents are retained.', +'out_parameterError':'Array-offset validation for requests; full transaction validation can instead appear in out_nativeError/stats.lastErrorId. Slave: invalid port/interfaceName/table bounds or capacity.', +'msgLastSecondCnt':'Submitted request count in the last completed window of at least 1000 ms, not necessarily an exact sliding second.', +'msgLastSecondTime':'Sum of successful transaction durations in that completed window (ms); excludes failed durations.', +'numMsgSent':'IEC accepted submission count since resetStats; not a count of physical packets.', +'numMsgReply':'IEC successful or Modbus-exception reply count since resetStats.', +'allRequestsOnline':'TRUE when at least one active request exists and onlineCnt equals activeReqCnt. Online can include exception replies.', +'reqStats':'Pointers to registered request statistics by registry index, populated on client scans. Null entries are unused; validate before dereference.', +'in_reset':'Slave one-shot recreation input. FB clears it internally; supplying TRUE every scan recreates every scan.', +'interfaceName':'Legacy slave field. Must be empty; nonempty is rejected. Use packed in_ipAddress instead.', +'port':'Slave listening port, default 502, must be nonzero.', +'aCoilsMemory':'Read/write BOOL coil table. Array bounds are protocol addresses; FC1 reads, FC5/15 write.', +'aDiscreteInputsMemory':'Read-only from network BOOL input table; FC2 reads. Application updates it.', +'aHoldingRegistersMemory':'Read/write UINT holding table; FC3 reads, FC6/16 write.', +'aInputRegistersMemory':'Read-only from network UINT input table; FC4 reads. Application updates it.', +'out_running':'Native listener is bound and enabled. Does not mean a peer is connected.', +'out_error':'Current server error flag when outputs are refreshed; some early returns leave other diagnostics unchanged.', +'out_errorId':'IEC server error classification: parameter/internal/native socket class. Consult errno for OS detail.', +'out_connectedClients':'Number of native TCP peers connected (max 8 per server in supplied C source).', +'out_requestsReceived':'Native request count for current server context.', +'out_repliesSent':'Native fully transmitted reply count for current context, including exception replies.', +'out_exceptionReplies':'Number of Modbus exception replies for current server context.', +'lastErrorId':'Last mapped IEC error; successful completion resets to OK.', 'lastExceptionCode':'Last Modbus exception, success=0; stats may substitute TIMEOUT=-1 for non-exception failures.', +'lastValidDuration':'Last successful request duration (ms).','longestValidDuration':'Maximum successful duration recorded; resetStats does not clear it.', +'interval':'Start-to-start execution interval (ms).','offlineCnt':'Count of NOT online rising edges; can include initial not-online state, not only a physical disconnect.', +'doneCnt':'Total successful completions; resetStats clears.','errorCnt':'Total failed completions; resetStats clears.', +'doneCntRst':'Consecutive successes; reset on error/offline/resetStats.','errorCntRst':'Consecutive errors; reset on successful completion/resetStats.', +'sinceLastExec':'Age since last execution start (ms), capped around 60000 by the statistics clock logic.', + 'timeoutCnt':'Statistics non-exception error count; can include other native failures. Not exclusively reply timeouts; resetStats does not clear it.', +'reqLength':'Effective transaction length; zero means inactive.', 'online':'Communication status; valid normal/exception response sets evidence. Distinct from valid data.', +'offline':'Offline status; initialized FALSE, explicitly set on client-offline or repeated failures.', 'active':'TRUE when reqLength is nonzero.', +'executeLight':'Execution indicator with 100 ms off-delay.','reqDoneLight':'Completion indicator with 100 ms off-delay.','reqErrorLight':'Error indicator with 100 ms off-delay.','reqBusyLight':'Busy indicator with 100 ms off-delay.', +'executeMbFb':'Legacy retained output; no assignment in current native implementation. Do not use as a trigger.', +'nativeResponseSeen':'Internal communication-response evidence, maintained by nativeFinish and offline handling.', 'nativeLastSuccessMs':'Internal successful-read timestamp in monotonic milliseconds.', +'command':'Native command selector. Use wrappers in application code.', 'handle':'Generation-checked native context handle; 0 for open.', +'ipAddress':'Packed IPv4 for TCP commands; command 20 overloads this field with RTU baud rate.', +'unitId':'Transaction unit ID; command 20 overloads it with serial parity.', 'functionCode':'Modbus FC; command 20 uses data bits, server push/pull use table ID.', +'startAddress':'Protocol start; command 20 uses stop bits.', 'quantity':'Item count; command 20 uses serial path byte count.', +'pData':'WORD buffer; client reads/writes, serial ASCII path, or server table staging.', 'dataCapacity':'Available WORD elements, not bytes.', +'pStatus':'UDINT status buffer; requires at least 24 elements.', 'statusCapacity':'Available UDINT elements, not bytes.', +'nowMs':'Monotonic time in milliseconds; wrappers use SysTimeGetUs / 1000.', 'connectTimeoutMs':'TCP connection timeout; command 20 uses kernel RS485 flag.', +'responseTimeoutMs':'Reply deadline in milliseconds.', 'retryDelayMs':'Native recovery wait in milliseconds.', +'byte1':'First IPv4 octet.','byte2':'Second IPv4 octet.','byte3':'Third IPv4 octet.','byte4':'Fourth IPv4 octet.', +'bInCopyCode':'Runtime lifecycle copy-code indicator; current implementation does not branch on it.', +'in':'New state to assign. Normally used internally by completion helpers.', 'errorId':'Mapped IEC error supplied to the error helper.', 'exceptionCode':'Modbus exception classification supplied to the error helper.', 'result':'Native completion result; 0 success.'} +original={} +sections=[];count=0 +for e in entries: + parent,name=path(e);t=blob(e,'Interface');impl=blob(e,'Implementation') + if t is None:continue + old=t.text or '';original[meta(e,'Guid').text]=old + if name=='resetStats': + desc=('Reset IEC send/reply/window counters and call each registered stats.resetStats. Does not clear native errno/reconnect counters or all per-request history. No transport recreation.' if parent=='ClientBase' else 'Reset only doneCnt, doneCntRst, errorCnt and errorCntRst. Retains durations, offlineCnt, timeoutCnt and timestamps.') + elif name=='processRequest':desc=('Derived request dispatch: performs '+parent+' transaction using shared nativeProcess, validates copy bounds and transfers the configured slice. Called by client scheduler; application calls the request FB body to register/bind its data.' if parent!='RequestBase' else 'Abstract internal request dispatch implemented by each concrete read/write block.') + elif name in ['Get','Set']:desc=f'{name} accessor for {parent}; see the owning property reference for side effects. Runtime/property syntax normally invokes this accessor.' + else:desc=summary.get(name) + assert desc,(parent,name) + header=f'(* atMb API reference: {parent+"." if parent else ""}{name}\n{desc}\n*)\n' + # Add comments only to declaration lines, never change code or types. + lines=[];scope='' + for line in old.splitlines(keepends=True): + sm=re.match(r'\s*(VAR(?:_INPUT|_OUTPUT|_IN_OUT|_TEMP)?)(?:\s+CONSTANT)?\s*$',line) + if sm:scope=sm.group(1) + if re.match(r'\s*END_VAR',line):scope='' + m=re.match(r'\s*(\w+)\s*:',line) + if m and m.group(1) in fields: + lines.append(' // '+fields[m.group(1)]+'\n') + lines.append(line) + t.text=header+''.join(lines);count+=1 + sections.append('## '+(parent+'.' if parent else '')+name+'\n\n'+desc+'\n\n```iecst\n'+old.strip()+'\n```\n\n') + # Parameter table scoped to input/output/open-array sections. + rows=[];scope='' + for line in old.splitlines(): + sm=re.match(r'\s*(VAR(?:_INPUT|_OUTPUT|_IN_OUT)?)(?:\s+CONSTANT)?\s*$',line) + if sm:scope=sm.group(1) + if re.match(r'\s*END_VAR',line):scope='' + m=re.match(r'\s*(\w+)\s*:\s*(.*?);',line) + if m and scope in ['VAR_INPUT','VAR_OUTPUT','VAR_IN_OUT']: + fn=m.group(1); explanation=fields.get(fn,'Internal wrapper state exposed for compatibility; normally leave under library control.') + rows.append('| `'+fn+'` | '+scope+' | `'+m.group(2).replace('|','\\|')+'` | '+explanation+' |') + if rows:sections.append('| Member | Direction | Declaration | Meaning |\n|---|---|---|---|\n'+'\n'.join(rows)+'\n\n') +# Verify executable tokens and all non-Interface XML content unchanged. +def without_comments(s):return re.sub(r'\s+','',re.sub(r'//[^\n]*','',re.sub(r'\(\*.*?\*\)','',s,flags=re.S))) +for e in entries: + guid=meta(e,'Guid').text + if guid in original:assert without_comments(original[guid])==without_comments(blob(e,'Interface').text),path(e) +output=B/'atMb-Documented.export';E.ElementTree(r).write(output,encoding='utf-8',xml_declaration=True) +check=E.parse(output).getroot();orig=E.parse(src).getroot() +for root in [check,orig]: + for e in root.find('.//List2[@Name="EntryList"]'): + t=blob(e,'Interface') + if t is not None:t.text='DOCUMENTATION_ONLY' +assert E.tostring(check)==E.tostring(orig),'Non-documentation content changed' +(B/'API-REFERENCE.md').write_text('# atMb API reference\n\nGenerated from your working `CmpAtomModbus(1).export`. Documents every code object, including internal methods and property accessors. Runtime implementations, identifiers, declarations and embedded native payloads are preserved in the documented export; additions are comments only.\n\n'+''.join(sections)) +(B/'VALIDATION.md').write_text(f'# Documentation validation\n\nDocumented {count} code objects.\n\n- All interface executable tokens unchanged after removing comments/whitespace.\n- All XML content outside Interface text identical after parse/serialization.\n- Implementations, GUIDs, native payloads, project information and references unchanged.\n- Documented XML parses successfully.\n- No CODESYS IDE compile performed; this is a comments-only change.\n\nInput SHA256: `{hashlib.sha256(src.read_bytes()).hexdigest()}`\n') +print('Documented',count,'objects; comment-only and native-payload preservation checks passed') diff --git a/library/CmpAtomModbus.library b/library/CmpAtomModbus.library new file mode 100644 index 0000000000000000000000000000000000000000..5e3a5747592c4db78ce2ecb8b323a2e93ef36728 GIT binary patch literal 746144 zcmV(zK<2+AiS08Ky^~9gsa=r>#WFRxIukiD&kmJus`5|=*m@A^Z^O-VVZbR$2P8uc zy=snkW3cyeV?BPSht=}SY7BAf&4dP}H*#!lRUtWx96e$1_7=&Q=CBnmu1ee{%NJU$UqxsH1`9OQ<(yS(nRt9=hh5a6oK(I(%Ly2V(6rfBeY?Ts z4I*w;yrV3h%wP*#Iw_?F`0`>{+k*e0{dE!S5v^LW?SvhA^qPx3Ou8klsL^zcWt%DY zz`PQPM4}KMwjmXlT5-|D*Gg^8Fu~()H-~F*feNX03bK#%M=MO0te^rHyepG2A&LOg zIjpfYhnA|hBXU2`fGk=PytEB|h^PJN1)T3~`&b@#hpNRB_guj6W~w!|@uh9ZfR{mm zA(Q(cwtC)lBuxB4V0B>bVat%thd3C^)qr3{+leU&mWUu*qyvvalYfna4gy3SG-wO; zJF(j)3U-Z;Z?Q+y=+w!-9is>uvoqcK>bW>`LXlH~?5_6&DNVY!c;-ek3dpB58*rT| z0#khcn#4B9d-1LQliIx2fH)O`fenpOj<#>x|SV^WKaJS_@u#4wPjp(sw@Ly7} zU1O{p%;u93;`?=VPpf=WNzEK#R|jtpGwHJA7g|+-lQptwYij+r(f0fwiTe4V%AaHjaWR*vtjgsHVAIl`1x1Ial%Q zDr?|S`8c3LL_z4m=JrXaa4`rQJ+pMJDf(q|)6t4qcZ4wEPRv6_X0Wo1D0HN}X#!S;?gRDJ_ggX>$;9p+WM+PvtWCC|#Y2h>C zLf;ur><0>g=B!xESnm>2BcB&lTQvH?e>@zEOTaU*w4sj8mrstqGT-PR!eh|B`4p#p z?qesZu==>eDRd?ElEjMh+hA1LoE%QPPjx(z{cAn&Y@Ebg5Mk8gCC#pe1R+@f`J}|72 z65N?v|6FQ2-}xNRN#fAWM2n!#aFlq$ErE>`G}rniLNG{Me-zvPe6$7M8m2peS4T|( zP>2l#kYfw>x2EMSqIK7LBxcvSk(lA>4oD&E4woqfzQLG)N8-9OBy$;;uDfpCp}4_@ zZ%+vz8nuVV2dycSTr#onfuk`HD!j0+ulB!JK5k2Y;vBAoroa8f)oEb@o2V1F5EgDS zCwV5a(=&KH?mZb4pBO1z98VJ@k#Im~trnAVJ5vQPNQeMCYyYJhpbcWD=6dr98E{yxtbOAgJvTT8~OmEVaG(l!)c6jv+Ry4$S%kb!zs)c zjlDa)+T31t&DgY<{!^C8H>?a|U=nRa;uTR{UEOLIxPO7R9p=+@PD|em*dOdj69uOM zcl0$E{qEmQD63$yYty0_jfJHv@`4vjLLE;<5}1d&b`|yQD0_|8LRN`dYRi8aKD;08 zOB`Bn+h7qb3jAFVyqR@A($QDCWy3cj7$v0Rfh3<2`oeLo2r ziu{F`QS*0_fTHS5`a=4dTZ3<~!C4=jqP$U&%$KsV_Z9Di)o@0nGIKC6B;@|sjT=dQ z(d-#|UnmLn+H3pJVSJ(g4VhQQ4&Ict&O+-IPqrM*G5WWR3&~^R3zmn|<5(Ld#aYu+-bz{L*|ubMNtn7I$Ht#rTRVkzYT~pk97)Zt(d`hJtR~N= z+C4GQA=F%g=|64C+I_R}b__~3DmHZ?NpY8Io=txtnDtAuhGagPRH=k5Zu+wa9Enr> z8Y4BrzBE~s=WtNxtOsh5!>ZhPU$qiec2rz%bIDA~Vr8ev&k{niEK}R^8wRs()nDy4 z^1O(Qs1RS8uNdRxdZ0I1?-GN!t=kEa8foyokiImK6NsWk4fxgd;W;Ks(@ zyKk7pnsIkUm>HR`p>Aw&HJQH<(?4-p+pnc(n&~*-u%IDp^K#qT?@(R8dw_-2he>22 z0C_VzDF8I&C(;Hz z`6y8qPK9Z7(_1?mDzsi#ClCY2kw$QP9Egi=vO8WH5;ZPd1fK>NE;L_;40_lWyXboC z>k#@G!=bx!noIxJfPDoMQt8=_sph#q7~#pN`_8M{U+zvM?b#x$T`Z$k^eR_H&K-%G zt(&q;-5dc-hn1??V=nWFmOiz$;BhjXAk!8*3RrY3_{N)I4ZJ~Fay+9&i%$M39#b+~%{->vdsjuOL0a`Xxv8ngl~=lDgjA?b@hK9}+L zN|B8@6RDl<42f;6WGr(|{qIhxtyE^krF4RCPnXQ5=LcRYcaZ<%1qMBP*Sga7JI&5e z;7Ygo{_<>WqW0uVhcKtjXZO8U69xLFC;K5Lhsd!??IO4S0Y@t}tm{Zwqhm8GX)5}* zW#4{tPlKuZGCvhOD7-T=WKu;XHRVj+>z^E4VQUt37Dv2EVN>jUH<^;*2tQcfKerSm zqTwZT#82C5a0QFe-4aJ_3b@jPXc-k}N!WdJv5XH*oOk-C$37O#6RkL5Y)tVk3&Yhl z)=>#Yvh?4JLoJWV1nIM7;`A@qVda>DFRcdGIkj&&TD+>Fy7Q}%vO5>z%HbS}9HN04 zUs$}!E8SmuA2NVit2jbst5BqHkR2ra>J+M8-PDMMh{fwUf=i)_IsH}F{or&O-ot2C z;HOIsBjHrq?nY<75iA)Ie}JD5lr_qyRxH*?+d~@j_x~|9oH^k6kHv9Ckc$(!J?0K8{#o>O6Qf8o{r+ORnL9dfH%j;vPxzg^#0JlhAQz=jk6=6t}w#Ya+;u zRfad`(J)Qr_$PCX!8SP_7%voASj3t}Hb_unGU=-@2E6ku&Xzy=qh8DK3GE6H(qwg#!QQ%7A0Y3iBlIB;-<{h`liX6kV>)1;$U}V^&8~DZ|UuG5Dko z0)y`S3%?!dqthuD71`)_-OX6c(_o@Yqk+1gv8#ph`hvA?pNnG~0q4a*Lh^;j0Wp+> zSaev2c5NnW58!_}Rf0E`ZJ84#NfhJBo*SlLC`^V|V){WI|387SOkCr)ds_-EXkrD| zsGn*v6Ze4j@2u01)3soAIf5e4$lda0gnhW(ktgxCzid4r&l6YM9TPj<-2#gB+YeUx zyh=O>eF9%t@vNazC`R-|8?sks@Ykm!jsXVZdIxVgnAB}k6a4hTA(Inrw$dwjD}pVb z7VfEk9JW#Dqk#wv9v>SL_A81MXPteXHLoct^bztaZ4fd(0rtSQ4F|~7Lv<;jLk_pK z@*3BQLR&qRjRpdEC?*sN6Jvi^#?+(iVS=&R{IU=OLA7>C;X+qZ>T zaSCFCZQRX5`g%_axvBOp#PdwwS1Y=U%#s7l|zJ)YI4i1qLg=e{RP( z3le(uc+Uh^oH7e+h4kwIh~_#Fn7|@tptuhWdph`7m>W!W;&sY`)9o@OP@!1_K_f_H zWMjLy^za%4)nvA(lj&bRf(zPLv*bKDIQMW?;L2yrQUF47>J1ffvka-V_=jz;&X3G7 zP;6R6{Nan^F$beG`}vPipqlYDdxD+FD0*?nn7;3kg6)n`A~`Imu-Ls{F`I#TI|qui zvK8~G%v#Hqx#D_BH#V!Ky(+c^^aNgYYcOV76c_J_rS}{M+Bb|E%24Qm&gbxwr(DWp zk28c`K+lnIe=|kF{DpdHtB8XT%vAOAlne&<AYBAS5vVC)SiWU)V5P&=cKOoI#hm z=B?z(?G$S}j-gJ0>hgD(*XrU_GEmJB3xS{+3H<7Tw~~5a0^a;YkyieO>?6D}$fkTp zlyS6P3s6b^3OYu&jr6L%=#2kU$h^AA5PI&fcT!(m{S$7pQ*AIrm$;+eLg^wZ zY_Q#K!ER@LCoo?FBGH#(p>683)VK`Dd1&X(m!z8z0g7J?WI^K1( z6@-Hs)=VPdrVsMgDW|6LCc&`!`e9#RS+=CVEO z$FR@?|{C&C^}Kn5fTfE@?l;w8?+x@Q%jvJm$()tN@vPnpy3CTp7%K8_E`A zbU~M$ch8-Q^{hJwUEz#SJj%U(C^=n@C}51}pjV@tOL`rUzK35)DYOMJktgc{69Xk` z{fbs*gikLPs`~*aP+fbmyu}e@gcbuXCPG?B>wx}u^l5G-iBEE_&gja2o&~M^oq>4) z`xmQtAIn{7>!3N|K+lbyh7u%Bu@7-Zw6YgO;M-MpYvV79F66hbvH5YmBn$F2Un?Lz z%5EGkxvs2$P1KH+yU%s^B{}{Z*BTPzO1+3%hmnM7$0mb0coJMh3-_L(RaHzx15J_! z-r6d_&{U22f8kE6zvaMoA5jc7k~*i<24|$R=CU<~JkU@I1Tzp?Kt<34grQeyPLC|QN} z!9-fG^#Rwh5z*~qdhWL(I{2)*>|(TVx(j>Jg1FY+A&tV!8O}AWir(R2Li#s@yBJx| zH~%T8+(a6b-Wndb(sZM+6Lo>|KbMTh(MMkZ#NTQgVIU2G2e1fV_8Km#+9?K@lK1;k z!`y}P=O#fkcC>VDa4Fni$-G_Z|PVQ>*FlFmn zV$3O`9Tn5uh^4?`B@TDh6@=GnGqjH{fd#5kO2;8?kQcQT~=TXZn(q zkiY)baoyeqadWZf^zGYXp1^;Uv1~1dqW72GwtlnQk|E=*KmICDb4Y|-om?tflFR6c zq2o0IZu7m)O-vm26)6J`%nxII zLB)7Pd(IULI|DE*u%TPs>2d+~|HcyZw)(Icw$M}&!wI9OR!55{O_a`{@4fR#c1Nnr zaf3|S!P$LNYUR&*%U4G+fG`2gUa{(S5T{h`#r5lUz5rvJe1zzo>w4w;XKW9fSjI#B zMXr)|A_@(@?a68;uA%V`+%cBkyKv96q{(;J@@{Nd)qly=v4tV_CKRw!omSGkY~OD0 zof0sz(TwJQ%&GgTq@m&`vb|=86J9788C~*flY5KY(*V7<&BO(k7UZG0Fc5Gz^_lz^ z3WPwZ06EDZ@E_YSuGj5ep_AbeQOwU|)yV)nuigDdL0WuTx7Bm~{6VOhHH^@0O)U`? zDj+^3@k!Ehzm8ax@gu|1=17|y+1%cnb{ClVv}Rl<4^`GkiH zim=9NFUkNo9%CUHW`e{oRT`4uAAFyUaF)T;}RW>lUl-0O zI)cKd(r<~6NE^MG`k#ap)>naWR6W=ZC#^(t7N)(qN4r{inD1)>5SHRn7BuJ=6y`<2zGAofl`!U~5<=%nWg zE4NNYK=i^V)lxV3uIjrH7PJNcc7DUe4g~Y>vDM=FgYyOy4y)JIk8WGoR_SGS?cQ$W{4`q2j(qapicu5|I$PE{@6C<`a6Z%#_5G9gmZo+#U^ z@~&s(JiYB^AK@X=nwc3(-Xo5^ae(FIf5>L=D7r2C1wp+mH;j>Php3D@wVf%n&`)9k ze16#gZ}-v8YRB`{g2Bc(0&M*OS#Eva+1Ti-kmdzU|KM7j$)u`>6muAA>epMGBowROePcCs6Z&; z#QFx&ddKKENmr+T?9_oPnWUW6IO_oMJ$fSWV$`S1CrPWKLvIo(X&mh|#N?W)oDU@| z<`p^76+p}NOoo$q4vA_0t@OOi41q^cQwy3o3}wPHZ*~FUNyc%PmXo;1XOn<_$_Gcx zsW_&%ztb6=cFGbZAU(*-Ye`cxfxc!e7ja51{@5_@KIkJD0uQg*Akw9sI+l3xzd2hW zc?<1;kV}$=XrZsFGCupPmyWZ&3rNq5zvRqadQCn`7&mBEtve?2Cz=jB{>MIctR5y! zInd9pB(nK?735)kM&w@;7n`xRSmO`|3d+(Zrx6mrRgk->qI;zWP_WPRQA-3_|319B zp##NfE{Q!be%%i2| zA^#(esph^GmHoq79Tq9zkxDg*b0R3LsrJ9Z(U$g9kn75G~43Z9_l1bgT4h`0{VR2<oDqUzLHaUnh3wkI z9kGOP30bdM-MW^}%DeIVz?R>tx6cU}*58TW`n(7(aOczW5<)cqzfK8n#CyL7OQ)%+ zujy@9Ketv+YbubD_V6B-T18_psl4-v3@ff`%`tmKd1Bh2Unjf;2)XQ7ZG={y-;=%B zFT2+M^vW?b1d=ZzRw$_=8fXyKKLDT$1_Mj~#ga;g)7xla4{K-KS%>Gd#XE_dk}Tac z>ZOUwOSLFiBR(l4L=rU-RM5pLl6?+}>(lO|&Oqqx^f`olk6?s|Fc?=T&V)QD)EEm1|Q7F&u05hu6 zkKI$ZJGG%MQ_sDys>6+DB;MV=Q-YJb_`+ZxMcS zldV~(Dvj>2G!Y%MD_yuK%%r@*z!Hb@lV65-^mWU4I6WS98p=s8dOM&|_tj{BKBvl` z`N7evV7~Pm+HF%3C4|4e1+B99nobC1i8GCU-?0%Gu3n*HC@u5nI(-EN#R+uy^M{D| z(rFsoEe{{6tJZLLVXy6QtUwXY9x5h*uHXc9nJ2#WW*Bu4w|SMP0D2&vJCQVv}(4 zh?cx@y>hc$n21=)rQn@)n9oh(4Dq`n8D9yXEFKYFW0^b#nn8@X=I+2Sv{uJfRpV8T z+5`Zbkom^G`d#0`OfDXGk8FNjzeW)?+Vew~+Drj)w@M9%QxpJEJk^^oxnm)9Q0ax) zuNPT^k!~h)b`VC+m8s%2%rsYhCtiemLOM--NG7^POd8crFs2<%(pU(Qx^3-W>y5XK zV^ADjN5Q!LywqRCsMffG-8zvYaqa#qm3C^2wJOnz*Z0o^`}wrL*W)LUttNj$Ymi+K zy!-wmnz?4D!vL(dAU?)_)!7&#$C{5J??;|4NA7FZ!#p!5iK-?72OkK(6It*nupQkL z2#6Is(0PBtdeURnf*R}CkM8Zx3r^Lm2sn-l2wUGe6JsZjL=qzRx}@ZT(>R;yHqiij z0R|G@wz|v4B`kHgaO76`U3XP(ak*#(pZ1gxcUr;{&>R+f^H)bf_w(IeB{0rwaX&HA zVS3}|{W`D7GO-J3{22L(sR<#5KAcn`zKdhLQ1vUPC~1Tt1$(QIdR_A@-&@$F@3Lwj zTXCIk|Hq8Qu*Ne}R&MC_!&pi&e@myUIcNE?q>JOu{6;Foux5(>YfK zsJ%PgavK-weLHm?Y9QzDkp4oFzdTf7#Qq1$D4l#(|8-$ulkDa=cj5hAb+Dl4gxC@s zJm60e_%;6zypjt?g&ZDeH9G5xX50e1so))mA0$({(b*0U0k*Aad&bGY&7_=={urKb_=bsd{-ZTIi?SJwvoH{ zjj(}km_}i?Bd79ns+FX7>gkk{VVv+38nfR~bM={GjPq}PkZ`z~&=_+#;m@|D{Ktg7 z&9?58NUuH!_)BM1N96z*JTkh~Abw?0&#S|v@|X$hee#Y2q*8@eepK5P07`3z@wIZu z$*%gTNOBHWBNSz`&OVe{zRP0OexvfJphRO)=G&!!Jt&-Sf0s9c_JVEX;>W!L54Hri z;AIhA;vOxu9;CtJHe(x{P-VBegC6N)mNZChylPAZq4S&+%<6jI*&4laAV9!(X`X+j=&H|Na0 z3$&$jDsPkhe}fsd{hPX>Pq^Q+bKCUwd)oIOpe=xuYQd(&G*jz-j`em0ko+VyWN8)H z*JRP#JCcXTV!er-dA$!aEAc5PW@LB@@S|`^qd3O=<^?TS>OH)kZI1XVz0)_P$!KZf&w4gzWn`|=ZA&>wZI>B z-Oz0{qL>gewtyGB6}fC2tkBs0=wcRm-V1FtU?elP9=J@l5%DRgA&bLfEmGW+ zbB1V|A5`+Z6%EaOQ)^rdV2(nPQr>zq)GOg;75&tNw38#vsvIox7n~SiiI?@EkX1Wm z+MH@WwDc3uhP`c$5n^tPt8>LF8IGYa+WJ}N3AB*4C`mez2|v$bI7~Ljb2tfVtSjI` zoyWaPFak=)z8(-Q`iu(2s6lwA9vOnwCn%{=z}2he^HqD3s0hPIn%J0a-#fk?Qt|n~ z7n|iL?NrQ*bi|7uT2U}`Uh->9y#~3FDJ=nW`j~Ry!1=gD7CXfYgtx4_I3JK_`E)HR z3IxL(K-+*loTGY0^xN2K$K2Voje;=v;@-^EY-Dvfo6@2ud4`8w!2@9LLD-ilQnzx< zMYfl(3-cp`y#r6_#-ndS7*F)2X0 zBM39Qb~2UM)|Dd3*o&7K>|uUGz~|$i+>$56GN$C=B@fxr;YCT+qSG%fEQ8~tmcT+< zRGK*llwpQR$#8@~SRTZ5KE(Apyk=;|UQA@tn!8)z@Da#iK@?F8A(~FNO43v$b*>cN zj?2-J^pjC^y$|HTeaxJJlDu#%p)2xu);*kh-N40OePy zi1_tnIk~uUrM|fyZrSrT=l`zNcsY9@i5&X(q2bBEM0SQ@(=PbZ0`{cFTntKBsN_)# zbx<5#&iBipl@tI+-fOVp8%wGl5feazk5Fh&h46r{nJ z?eQ3vbNh%ZRJeTZ)Jzibir<}hCP$0sF`jRw>q==OIlhZ z#)4C_GizEV{0b{1C>wtDK4FjWBV3>Lt+!nfhOyc@77rKjah0+ETyD15Vw~TSE1jyN zGnQY$>6!}-zpf*gkc&1+1r@hrlK0(rttGhSiBQb;vxftB6PmZ)Bco@1NiEC7V~eoA zO_g#38*Zp~Axl7DN`g|xJ-Bda$;XQl1e|nNw8#188Ok8#GKs249Q(!|6cGKXWyYNT z8@$euwYt}BE_FHQKhkl#J{gfvt<*p^1<5Jw-6@B@paQ14QE?}R1|#E5hXN3=pE*FF zLCh&kEwLXn%4FHxjF`BmnSgCb%m`PqF`SeWxeWL^ybMZ{G)%^(K>P5Adwkn*z}ZV_ z>PgGlCDx*Wv8f4<7e8z`V+p-MkcDT=cspplqm+& zrzGX4Rq9Z0i)!ZREwMFAD6-8XxxHyX+R1%3E>8h;kAHUDJpTxqgwi*@i2Wk`x4fuE zUS$=(CI=RS>^tj0h`&)e zsAPZ7kcq4=mT^iLHy8b@BK4o_s{Ms$*m+(HLS{8Pwx?uL&XaH{n27TEOc&fuT@@$z z?Ruz z`*2I3PNFvio>jT}b}|dK8P(5;f0hqeFC)v^{T)v8J0oVRIih?OhkMYvM5Q@WdQ zi_>4{yU(FL#w!|H)5tV1A~L1)sHw^M8Pt-E=x8FC#$ItBC*#-DwG+@t7Rc)YwiM7T zObhX8m+EOB&6me1PwLIwVb>PBQ9Cy@a}GHOS#w*>u(t6B*xH&F3HzMp@%nAY_#i$c zYzialkpGneGZdq0p9}ND5C~R@s#O z{4&)jWp?6BXc+QdRxGPAJF#lv%8lgBMF#8@)h*bK3)Xq&x0S8pRN$>b4B#9e>_asr zE#m?&u0@~~3x|S z87C{tpxznWpOC-maNXP07P!MekqkClq!Ia7#_*ruIfj=*j=eS)UV>K;NKe*IHM+^KkRHV@AK*jKr0yN! z_{z*{Fik)#JReabe3^p}M3$Q&iPpc&T0I9Q|8>Fxd-q&L(}(q+lt)U!UIDdx*=Lt% zjELz5B3b4i(ncgiVP=rXD?gW*E$ynfu?|yBn8v`9+@88hVvA$BJ5ntB9L9a_eH`wtrtlZ%YJy5awUDu6sqL#lD3VoWJ8J`Fj8Ho zBlx#1-bXlH*&ZD;7>1`wJ6zy|d0Z4BBubJ&Wp=61xB!oiRBd*~2`JV(x-wO@^Jx5& z#Akllm*b$12m(dl+oGm*{rVsn-N~iy9E*rYn3i=|&O7C+rh3RMAf$yB`ndB&E!54u zz4cX(?bp;wHJ_oUV&$Siqu=Pn>! z03=$)WV` zouwivcXp>PRQvD2m-%H739KX>sJuRTI$804Jf-zD&1w%d#r38z_x_L;%PP%4f|h(_ zQD1?wotOE)u1+gLw;gi`*laF?iW#;>^<)jryYfJ!kRV334oAKi+81kC+uxpHLcQ{TIa82t7M6nb!A*ilf_aEsG|l&Xja@`?xVmj1nWRE*8O-I&|; z{ycZflqi&TVi7AZSx!RMe2ajS=5k_rY}5`69`=nQtw6l^yVglM)#FT^N|}h@?N*#I z=hjt2MFSn(txEwrE{weK7Q|1d+7l(QU04#}ctxshJN3G>JFy0tWb$l+b?b+-U|Kv` zbY}y|`bkihC*tE1*wiat>Mw3c2j`@2+sInX$NvkpfDRlP%aa&9icMVT+{c?`To=HmLpC zE^t={h#Rmcnxh)HWH<`QMB0KiLy@pBsvX-cuxijCXve!2}IgkNfuPyX(GwT=|H+hCY_Lf2YBy<;PFa;az;`ji4x z{pbj2`Zm`&4}$pKbsN5rds1aYxvQ@4#G~c$9*RTvjf_!UF z!i zI`hy(>sFSn0H8u<{F*ncNU%%#^Gr~-g}Etj=FLUz0oKIEse?q))P| zC-}n5Fx%~H&Mwg~6%hG8e>;OKr?`t0EX&i}Daxmgy#kTS+RA=AOk9o9{kjft+7{;- z?vHMUC-YnH_OFd=yrvYE8kByX(rI4AUcXqWXC>0H)Y9p#tBlUb)qTih%ZTL3R%4=DXQ<^sRGa7ZY)%Maonp}vG1CRw}uwB|2*NM@MSs|KV0y;naF zI$ng8t$B++I)XWOFuc%h%~`%b5q)s6yJrnkC2Lqm%(ip9y$>y{8Yq3PKgV^qI>ZQj znu;(Ef-<@Slm>EUmnu786Tbc^UUTe8)I-2pu_ie$`Ef?dt!XE{jY;5@o7orqBk4Kg zLNtT}5Rnx>?O|m0-2UD5D>y+;U5tOqUX(|_(DIq)3ilmV3uynG)SthEeD+^{EK?Q%lfreZoY?< z>RX2M`&ekga(MR=&KsB#2g%2Ef356Jn7V6gJ@)D7ZG=)&8PDZyTAvR&=03*IJ1x4m zv(0IpQGniCt?YKYrInG%!lLM68kza^8%p^-+FT#83FTN7nU-+f*rLx;<3j=T334Ic zPe=v*`pm07fwb>h@L)|+KG>fpJKEc41nekZCRsWGR5U1*1=#4pTvgCqiwO1H&I)id zj8bRpMo}k~>E^yQrW=LtmUzf#VLr(Fsb$N+5fLdxX73~!^i#c*@Eo;d4){xCdWsPw z!Fy_DFo8l!mo*7aACjeJoL;f`3>wiD3>sp9+VLnJw72;jFNsB|BY~%aF@IB(Wj6P? zP5c2oxUK3$J6?tNJDk`sZoWlM%Ex2SGvsWf3Q{H&sa=X10%t*Y-Tm0EZ{O^i4HNQ0 z!=2?m$i$tnzO!S5`k6TsU=Mp@az@o)-jsa&;(X6{qe8uSsSErIQjjN6v3(DvP^+At zO5L`BeWZ@H2)3E7wT%0o8Y6)MDz;v%7fmncM1vW^^8|ceo|wj?9)IRu0!eIS6GQjg zjLTJFIqNG*+3axNZr=RnT|^70Y1MWZm_jZG5YAnO6`+^*M+5>)nh<)(wK}uY=rFY~ zQ6tZPI{f>AVRFCsfh(;uFw8XkiHinh+IkT-*Qh1SU)wlWlYa}bZY~3(CfFKj#){SppAWK_qJH8M#F0<_*?eWQ^Zy@iXHTVN5VHWxfL34|K*RISCL=T zT{6b@8pIYH(A^d|8}WwUxM~;_)`lGzt`>V1K}EcO?{utk99=G4fOU)mGo8f{TTy)R zWVdQc=$dZj`?b@AT^i!Ru#a0`k4AJNo`FY6d=n7(xif$F)kP2r%BzsX@|8zGB*lxmc8B-{^O%O zJ^BZylsN>ye|=}6`~JHWWl@MASL6g!IqeCf&A!H2&DUHWn7}nIp9c!OFmKhF65ZZu zYOW86gk`{+|M~ikd$;TPwIr1_vQEq?Temn;W0mxCM2R>(vLL8M%3pUeeC!v_C|gyb z{O=ui`<8;MA?JEvr}SVPVrZpMt<1%+=LD}XHxmrx)C&^ym;!~!*Mn>jvy6Zmw#+E~ z4fpbOT7GPo!C#%kR81PBrTj2zR2?x7D|JHQG~pw;2js10|JS7orMNPd>FH)uJ7OR>=ZNnie(Fjm^s zdgV$FL6n-}N$ZVQ56#{4@PtpegzA(z`~b74=c-g%MdOIvGS2aG9?m#+-H7;%<|Z?h>f<(6(!1};EO2}jE1lgJbj9^B6p z_ruPakD=xpCKnY>Mkjcnhe{X%X$rqzS$`C(@=*Q@_e8ncMpZ835`>sMHX2A2EerrI z(gcSE+awiIUOEKjERqIlX{;f4nZUt@7k7sMxvGaxl*Y*5TA)zYqG3)oY3glu&d`P- zpeNA9b(5V=b-<=gS`Aq9lFol;qN8q_XYD!2emNN6Qa!qWeL&e3m;WwuR6VYT?Ob!e z1Z(hd1}@%mxEPFYm2ZvADmP$A4zGHrqOG=yc@n$mx$gz~JW~z%_@JAJz!z`sU0a!$KqIL< z6Mr6Pgy= z{xZ&s-n+nt1(01^qY|g=W26^ogZ`W}V~yE|H=ED6RZ&CMKSka*;%vue9jA{qLpgIH9S~%30R%J(=9(l>+L6n8(+}iW zCF6=;cnoHx*#sHYj=E+!p^ecy(8YnEJU~5KSBY62IIusp($~n^wCf;CYz)dhx2%-z zkY9!yK5esRGoXdIP6l%Mic`Ds$bNW(4u-9T>;^#9<*^56t;|!oUdf?+x!8p>I!E&R zZH4>nGy4zis4OteEd#XDnfUCEqG`0JsjKbM>-=aKEy$l;y=%JGo7<z7)3JqTn zNJRtTvvUK{G?%e;a4}SIx}B{0;zi|L?^57R(il2w2E&&ri?%a9u=4XK`eS{1eLmn%En&z1lcS+KXIxL}Ng zLQB5K)Fsp?2HsU}rV&^g6JjzF?~XGQjeIe~2Y7{4#SFvz`GnS6gMPe7Qg~1) zmRzKmxF6D`R^XQMvI=Dx^*J_WH zx^y7;lrz-r7W;WfJ4}+6D5SqE5*{%Yzib%N1Zxl!6FkNI zS5ig)T)D1p?cm1`X&3&l)M39JrhB}6KX7-@s07VwrPm>$cg&)!E|@Y6?sVtJMLGA$k|6tUs8jDQ*|5i-CNl&tBBU1|B0FQi9a{;9TUQZ(*wQ8IK0J+y?8EU<( zoVv!Eph+y|_Py461$gf0E0rdXR3JD^J-5^*Xv%?h_3wbT05L$$zq7?H%5c-1R*JZh zR)j?7P_TmryQz+u)~qa_d*E%K#n+WQHbp?Ll5`BOIQ|#hNOgYzbZ=8iRY=@E9Ks$G z3RWh_t!8y!&_U*J?ZN-au{f7f)y5~(a=*Mms2?!SRqS01&zQNQzPXFPQ~5$IIx{Z~ zf6DN~1`9h+E*T?P5jplv>7`>nYy4m7TvUpx46N-H)HvRt5}Q_Ty|r-JM&3@LjU6uK zE5JxRjt^{upd#QM;0h@HtfXpjVDCmp@hJ zGkv5Y&<-fDQzziwzbhD-{kGSfG>`~PmP3gN7Go!ypR9w*kiBIKt&fbhT{b+Xhnt^x zoR2!=E1`EFr!Bon5jrZKp|jkz#UKJl(_Pc1=Nx=7E_Q^P@ypM_$|zU!#Vi>uitJXn zyBKrLi##;h5wrxwQP5VtkZ>9x=Hq^12)Y8v9!k0%m$NlcTz~zuwxg|!KveGMO0J2_ z3i5{LsDc4JH%lec0=?w|4^bpWn}SjLc9QE8bzP1hI`Tp8La3-ACS}!ZwLjcLUYRT91I$ z!C3qM{BX(cF#uQqYf4I4h^SsxzRkAm3?tYO#h3!C|A(gjYdn$WL_jz%r#fNgFGCKy zX`;8lpAT}YMWHHg)4=sibTfv9AV8&dy5(hHMF;&oRo>afs0 zF;T@v%$hm|k9~V~?Qc-UO(5c6E@f;8&Yz8|fn!9=hb8fyhV@dY+|m*Q7>|7k#fR&& zg$r~&3c@%~I=bn_4o)9BU`c%BODVB!pnT3pOA3Y?#^u>T{eI#(6MtQe32NTwE2M)< zV;}n5!^>`aF1_>(OuZa&+Q{*KKKFs`i;GDK zc0*;^(0w_ZM28=*pon{aEvw*7Y!@l61Dq&@l5sMQ{ZW#nwLnqr@PjOdBC1L;%B$r6 zOBMfJ@dE%Nk}XLI#L}HX zuL&78-KZJexudkpHB$s&LJTW0(T9!oYIs~QPhKijj%NI-!?5*Gz0gjd$+OZ8MiM@X zufA0YC=CQO0?@GZ(P!#qc4x$;SvLb8JZD**2(tS?V$Z2svk{rqoJ_{Ety@e69*J9( zvsBMg9S&dic#QAJ2rpZW6qD*=X4b@kxmD@>(55%HMDTDh4M^tCEo;YxV$R1kNJ;*=XJ+}0}= zR!|ad+QW_k%cI*7VyO3$wp(_R=KLfwMYTC2_m<@<<7kO8L}6{m(v)J5{0ak`;3{%f zN>z0&Q2F3b-CWaEpHsCLDv2 zl2Y0;o}S1Z93uMWNEclZ_?T6dL~`8;V`BWAF=RS1j!|)AK|O6`!~7}(1QMibgZ_5O zc&uSSfy(>qzK{X{&g7-KDC>H$^X-JNmh_L9>C3@WqG7Jg-h(O7+oBnZ-Yo~qo>neI zbR36mGrWZU5!w0+=Kk0e+1cyo=J*w?9G@&0WjhgC0~j1Dr9#;BM`X}}G%l|9c*~%M z+yE%Bf&&_@u%FXB)|}M3$d~!gGJdOTKLeKHZyfN|vo(xD(ANbvH5dA$^74B~ORq(! zh}p66b&z+_ol;~G%&gPoZ2}K8@MOebXr99m;hC$L6x}LtabFh6ak2P@J?r8X;Gk9& z$YO&0Bdg=GrvQm8Ub9#sDIcpWHr)o=#(GQ_rFWNDeKa&DU061FRp@iCg%SiZVoTdRH~^V zv*(d$ZAc)oSgM&(n~eNK@O;OkJ&tA(d62wbJi$l*Bi5s(-$A7dff(SV3~0H>0U6H_ zsNq*sS)@JWSvKK?@9G@=p}Kzk`bRb9$M{F`teaW-6ipr0X|6#e?s{KFXD;2W_ew91 zcJx!i)-B#A^xPc9#D{j&0Vo@fa{tD*n}3?GaH?{kVfmiRKXzvey_$WBtq#AaGWdYF?%W{BFD{kSwh$L5c!B3IO5dpXf zMW}2wxb>C{i_-Mh8eNj3_+#9~nWEnm3nLn@u-fKWUD8NAGzF~^9*5n z+_ni_iCLJ=^cA}6$PYcHWwP@N^rW${1Efe~dCOj-p=T~Z_@vo)-j2FuKxPh_FZ-W{ zr5$&2Zw@sfq+o_vu46`fxbbfb->RAn1R8|)A}e#iOv>S{)40U|eDitS%OTlCW2M(f z`vu$6lZhmy*M_N(9nxM4(W$Fn*uwhkT&u8m#h%!q8r~rWd!# z4lp)FhI~EJVP|P~uLh7Y-(*tod0Z9H^(e=9P4|sIgH68{ozCB&E=jC?BHhuj*fRNt zprDY*(cSv0tF1%0g=qrIx5T2E!jmn$osBtJa+~@yPzWwoB*A90o<#8?j15x)f*6c| z0ZAX%B9K)4feh1=OUnIy&(S0}fDMx?l{=~30uONp>wZZiEY@MP*xq4qopGG8CfO$e zOE*ksC%Hq$W601mlFg5wKrhFAkO8;fIiHW$oS{7fWs1WPWLzJ_Fg70dNsSZ&wRs^j zTx+D_s<84hLqB)P?alkrhZz6X_Bd7qk|Sy1zVb-uk5_pgfC8I6Tb}W&4)VA}Q#0N2 zULLc2OYX)Na*4fj18&#R-9kM7kVnMp4ike^TzWHPuf$xqpUU{eu1g&_EVuKjp$F5I ze>S-1Zy9Sk5M@L^!tu3(R@?bt2203kHkySt>r$wmQhzb$)m|y9lxMZGmz~tTb|JekElL(@ zL^a%C)Dd(JYQeZV=D3?fow<|S-|;P14nEj;B+<+6jYc9WKdl3rcfniosux)kqu@?$ zpf!XGSR7P+ut$u2yI7ylx+@zAHNjF%L+!XG8R}1|Ml0+i zuWjWFp3F-b==R?ozW7Owto)@{bvbUYe9W$K@8CCONo^#>>`M`8b3-xWe5fi;KZ z@C$iZ9TOV_Y|Sn>!!h#h+~Nzh27+;K;A{-_(pS)Hf)k z;0^O>rkPj?HVCgfGp_o}9U{R5FW0fP;r)}wncJTq4}KbAgwMS@<8+iGQI4K8IFStS z`3YP%^6jLQ$PfR~RmkCO6ePU&PN=vevd<{ZriA=WtP8*hwJzuJwfyZ&dz)qU&*_7@ zg8;i5e}r}y*z0h;Y*nAuW4cn+u#g6K>MY&y%FvZ7iKb0oEbh*hJM(iLkl3GM}GkamMty=%`2vW>w5QbZ{C4yP! zjo|ka0`&Nd47ye^!p-p;DspfsH&w7rC5RGwh6^rSRy@jR&d2p5?1*yFk{NaSYY{Hj zl9pxQ0JmgQIJw-|@IBOy*ek(lpRtvIG5Jy-ZR&lkpp@XAmIO&&>3is6(%$&I_@EPi z<(uPrfr&^@MmO#)BE3K{nwHu6|2T)-|03?8Euc9{g10DE<`w>Cux(A#>8LF(M?#7> zA*#JQeY5-B-RksB!2+~?&zfxNn8i7_OZNqf678N!KAPGL!A#*~nk>EqFH56P&+6+$wPYr+D;e1tm`t>Ij<(&=wcesDevOxPvKq<|<)4TD#fcQf(QFC1{ZN z459ssu4U{{mv@Bct@;I0wEv^vXI?0a^VDP$fSSgC_vpoBHjWZD1nDMy4JOKeP~H&U z2F}`cGw@|BSpQaH+hj3lWV1L0XX#c^Or(D>riqj4mUS_#`O_;OD;Jxi_nfTaYSB=W zrgGW?e7Zrf>Q2SYW2IQx8i~SgIVY-t2ZH4fQNOwu!dr4Z9Ey+(1GJhxQiujSV6kWV|P zZJ$w_H(zTAiW61W7-s8~FaK1p05#_nBxfL^vsyuq>BrGe*$cCH3*Tu7y<_dv30|w9 zv|E;a5tHHj}`je_jbWuAf4cALn1O1f6AEFPuz50M?9t^+i#^CQus!a-m z50jxqq7k7%u?y}8Sg9;|5lCjF{al)xrxw-wXw^ocQiJ@jUKyeNNT*xV~tRb0+e4Te# z)`Ixev3)^cQ9dASSt_(LQl*;@{i;Eyzz{i)Aj9(BKX(;+A)X6`ewYiiWo_?g$Sa~dn) zZ-y>M5TN7-N~>Z(yd*Qyw>V+5$OxW1}#zFtkqADi@A zzveR%7;R<%K@jLj_bpS$_ZzEXI(zgj1n3_*3_HCjGM<5K5Qm?5PTMLvMg`wecvE&} z4U{O8Zx3VaIE_*yEG&-Vk6~`End)8$2}506houb~W2ir2rTeyS5V3D6l~@mZSbWjpPp){1hrcm99Pv9e?FT>>Lpouaxejl>&{YUL8x9asA1B1l zxwg_|R2~PRfbpEtE43^ZqR&Qcj?2fnXG2?GrtcwED!H)N^q#eFA9@U2pBtKM!d_fk zCx3lL9*BgV$Hl7UJ?~|L% zJbYpnWI-_&seDtbBn8TPw)&lLeEv;b62&G#nWW7X1C!*3=s`)VXwKB8AO?RO63-|D z2~K&+ygNYW?s=MY(Y{af{7frl)x|9dk1;Yl_&0w$k)Y@{aKlQee7qtplyPT}o2bf- zpxXIKWXNPs3h|>rpeRzp^Wg7EtH^vgLjG>m4s&0(KoA2mf0v78yr$cMwW;rk`&MX# z?3x)|WEd|900&(oByHj$blnG)gG|P-(M|2q0=2vy>|-#PiFiw7)&G(M_}lgU+SlyCGK4y5a=K!eR~UlZNDmH2}u zxnwCuMRLKF^G|FbC&r9WxHWHtL6wi{XaB*LqyWOXBnNvP+l83ttHdLU*>G$&?gdmC zdN76Llt4I1U1-7Dyuy&1O*X)gkFec()SIF+aYdrISa@fh6~?F-s&;I$M4ZSu`_lJL33%{=PX~M%cYHR0!6ZELknbh)FDRmgta?D<>zY=Yl@;4a z0_BcP&Jlu+a_*u5^5@!OlG0eAswV)_94`j~x=3rtfaTq`H1Tj%q z7%=E227Y`>kaGOrK#^d6VVKgpI?|+S9&H*L#C%zjq<3y^rXR7#7n3Ix_&zWAK)L2$ z5~>ipL9B^#3)i6#jHzGHdlyf0n#0u!w(Bmcy<#)`7zQdXT#=`{P6S%vfW_p-X6jY1 z!A?&T!O3M4`L!-yRy)@3I90PB{C#J9uT?(JtQ5;Bi009hKcq_N1jpWJ=Vq>MoPa93 zXHaN9z}ms^mJs#MYFHoDA^xM4_U5dnQRWNS>4cDGUZH`aEVIhy6W+r~6JIlomy;xS z$qa9i$`M4}llmV5J^cONjv3VjW>pa7S#T6&fe1cd0-C~H_mU;C;J|91P?K0=PP(4W|XNIdS0u-;fTFZ_xlxo(%s8UjNh=+!IN9=2vFP~lz=wC zE!xh9nc1t?#KI_SOd6EYKXB++Uu7Y23_-~3RHB4iO*IV~=W0jZ;Cc3dtLyyb_x!+x zROhHnJAgN}_d2+fa@KS;!oGq2VgvslvpfTmV7C@)LjtXRfR~Oj2nrjHMDoH4<#6cn zCMwx)19Oo=!`A1^zorDcGWbO~QOoWz{53qGWnD0=_99~Pcw?&(YwQ%a0V%}V zr{0F7?mhPjPD%*HUMIUom{(tu$BG5zZRoxp=6&~zU4cYHZdm24NMc~H>!ulZ`q}%3 zUiBPjHh-ghC)9$#-gx^Y8ddI0^?|mRY+FlhZ`^lWIT;n=9+=I#R~#B%?_iFny7chT z82X4_HLBNT*yyzmVz1=$O+G|5U7TVk8qyu`IwzoN2CYJiJCXWAZelgpgf zN?5&Czry1G>f$##gifVqyIa$#Rir{6Z_&#`Ejzoo8VsNr^8LWTBH=Xcj3P`7jF^3; zLv@w^g67ZM0TcaEE^N7J*UM~tU;?6@zBR(Z1tl8iV1P+hfF|c3(8;wKJXX0DfHE zc$)!xK1P}jEw4EP6eNES;ew`eZ^djk)ieyPdWh=``LgznZljo|Qr<+KZ$!>K=&uy_R*@FvQ0<4c>X)jZgfC2*TLh%;(D#DJ75~D!! zhwR^P94y60rS-YusC4#jsLXwdR#m{@HZ;hjcN5MJ2Uak|oCi%NsdyRy@wu+cLpq>u zOacDS)sf(O`=uGH`QNyy6sLh%uQ$lU9Y+r`Qhndu0UQXhv z!{khsP@ynu4NkF(I{OXVeO^$|Q8)lX%Oc0|XuhBdR_*!x{H1{Z3%8Hkq8o}2Y%Sc| z&E8LfG1pE@tr}6q9ep7WCscMn>eDas^E2Jk@x9@MH7Xle=1#YDqG@@!K{ffKyKbcNfuqUW4V(L<$mU3mAY z7iDah?W^aRF0>gG^F8tp4g&)qRy?k)52z6jEY&>k_T=B4h9hK4x#<|=pJ;A`GdBuC z(Hvl75Ze32{V8fO36V$pgrJXHUB~|}+VURv1IF-$KU8_6-k2{gWx zQm$CBY-jz4gWf0*CAJ__Z3wZ3D=K6{rWG-HZ$$y&i~55bWQ7aQuEa=2KZA~K9%(gk~*--~&x9^FW8Q+n@3ce`Xccut_yLXei|hh6#d2{t=T}*oq9S zq36O7kMfFTqUzIFqDSHEG9JVDz?ypFI_Mo`=|e&n-A0S=UpL~W*(+Bl}J;nEns7aW6M;tbc^)OGsLc8C!+L>C`4 zi7y^n;gV@Gq|2y#Mf&_wClRp%gXO^n>MS%PPgI(hFTg{|qm~B#^iVdF;;767ZY%hx zD*rQB?Y}OX`Hb?j5N!Vc(nw!@Q3Jl>PvS=7^Azs8Rph}kX)HjR$SGVitsfUu_TnPb zLtWC(sqAJZS?_WH|Gr+%`TPml49|q>wxZM*leEm5;oAQY<3nfmoyENOj~j1-@sm=) zoYPToS@TsFB;*RTDp-(Zx#?I$N+m^wj9i>5UFl zOL}-c0*cP_Jd#n!*TS8;Zge7?&$|?`N_GxnT&=n5ONKf5yg>C@%eAjmWq<|22 zPu9Rrh>qw$#~|$ScQ> zZ&R8XWA>r1df;nSmU-Zth25P4(_Cr?_MfMLNTm?u4YlvtFOZ{O+e#KmK)+xZya(W1 z!!3PE_%A6Nu4>^KpS|cMKoj@EmM2QaHMjCfro0A1O>;f|+Nf_~KkMxGoo3**_2y4r z|AQ&(H@7~wu*eERdJfoXWgNq*Q>Vgpn{Ep@S*I_EizQ{-`&Cf%xpy>}E{@~D#fAeKVbP417 z7=YHOni^{lZ~ zJEsWJ^Z=wggcT#LTe!=bpNzraZm8@lHgQg7h0B0bW+$u5mN~k>qB=$S3ZQ03?$~iQ zc?GmkDr(-P{jEW0Yo9UHM-UBU%KLqmtRk11(%Z$rUz{iU1p!;$4NS2+h=?AQcEz)X zyNB<0Yx3@qD!h%gbeZ(kYbJU*d$e7nnxRIWy|fVIoBg)14#g~FyO!nz!=sgOE-pSb zIaO>EEepu2W(+yZoO(lPo-R4~tzkNosn*#X4ME3N3ud?dw%1ew;FezcXD zIGk}Jx!0W3CBM=}#}SqZTZ@)*T)jpp;!}f)7avm(FhgCIdLav~>sDx*Q^;qHwBAc7 zGt7PSPnf^Vzd!x17yMr9WG}aY12XTpC=v9O751C>l>61XV&>=uyxCpJk4a3nu;Ji) zA%{-{9_L~jYo{at>tS;P%i;Dp-45#0rT7chQ0CB*8Lfd>HryW^Iq~;WKT~3*a)+^m zrKb*rDis7mObx0W*rjA0I3g454?>X78cOTXu5v@(*Uu3uH2lMPW=Ox7CM)5+JW$o` z*GCnU5nN&v*Vou8#irGB(kdRl*Nbp_$uMb*^2s0VH6y+UP#;D>=2+?+L@7NrG7OeWC(bGDU zF5sP10RDC8uCN&4=*++kTOB{yWJq6%lqu{z+_>$2dA}7x=ouuHWO{-|T6hv-G@j%A zVa1&f1p6+HhBjmn8jC3c3`sOFC{rf^YQD1Z(X)qpByln)ysdSxv=3H=R_I370oHpf zz}Zdka(dKlHdLfnwwO|O(tef_uwPNAUBZS{ES=iSpmFqu5+vXtiR?}>p&<(~nsz5-t;rix zh(QY1sBp=;5jfbyXtenZM5XiE`gmhnz`pSl_z&HE<5}m95@Xf|G4%vrE%QXCt*`HB z?C4A*U*IE&k8@=MP(vfMGH?qfnyUpkKFXbGiR;iXa7Nj%6+1Z&sh zxt8xKBg&R}2$pRSn{gG7x?SB;ryYS#ZUFn^I(LderENN;!;H22+8lUE#gkkJ;m;HLuBXnvFy*PJ#Fx097?WMmBlKS$m%8 zU|u;%-c7YR2}^O{xe*iRZKROeReEO^F>7~wo4n#QSDp)_l-J*yU%g)xwrIRf_$HG^ zh|RPeD(}0mx`|bYfeJ0EwiaZ^&B#x;lQ7HR^zEztW2m{Lbm+lXUk+i4+2)ok#mE}A z=0^vd8I{o~K6W~hyv_ajyzuCr{7~=ttxj`In9CN&J8=325X%3vDfA}FAD;-Q902PW z22)xP(h#?U$Bj!AhF=xxNR^C`S4H&`PlmLUG4A)INc{#yy#mk{Wf!~+t0o;@EwrP7 zKd0%Ml^f5SN8IZo-|D1Hb#Ph7vGK zf)UiXYwL&?(1=)1@G|NKaJ@O?Y=*eQW?5)u(73bMHTUf#C!3|QUh=`uu!IXLj%dOd z%S}_n5d9}!Q6pj)T2pX75=QGk~#sChpj(Y81lk&E!=Rjk&BzOMiWkdZ^l@3Js z2*h&{QA=<+iC&dL@OpXWum8(<7u5!NDf}u)45UD>mOoHNMttfUTn6} zgX;lnWB8s;%9e46?o<3HRDBsm-HN%;B@M_Sg2gHy#=g+F{^RW3k5S#_gt1jWwT~}! zZ?oY#$LCT}t>Y)Tf|rtVS}v|t2zR4!=Xw2dl61dp3*z2<_GW7c%yA(1B`kaJTD3gF zc3x5M9Jzy^iPS%7ml|I#Amb{}2r=MqHor_pbpP0BiPs!w-*=I??h_*a(22uaE%G*C_W*2p5tIG}~Pj3WM2IC2j&yKW=<=i2YSV$#KWXj8fT>F zt0;;$h}QMjhEc(rp;g)aYjMgwqC5ko5{dCwI6;+ri-2LG;<=NOE-h z4+${S@YuXDbj!09(3_*ll#1fzPnozx?VU|&eK8JMiqKMf5lUJHz){X(P^jFfLK$N1 zaWI!x14Z1X(Q1eKl<0_Yd5G9M1|H2IzFw0XNQis=8XU7u5L1D|R6XUyXhTJnjr zABR@>{rv`jQ0_8*Ml9*D*V^8|&=&JES2e*%qxzmAJvm~8h+9+t7Ne622OG-V=axSlOb;LH>n-Y{d(IYLzrO}{VZMA2TRg67R|cqk*($GUk#7& zw3Wh$KQ;i4C8!FGEPqa6$BTv4l+?D?@q+;J79(k z+Rv?;mAS`+WNUKV#!Csq+}E{yUEw)4w7e(ROB^JeZzSkiuX4>h_&uIFxTT)Fq#BJT zM4K1k6byNSXX(Xja{8Pho4VCDc20-c?8z8HE+yASFu*F@__Pmc9PQTq2`_ddG_1WO z7F}s&YN^MN6cY@L`i-tD4_(S6p?w2q85YhXKt!Qb4qxXgjcyTCjd$f+Fq1yJQJ;b2+N&siYeR643XcL`}S zD{SsH1-8l`X89>Vt5IH`Qf7dpA(a%zxTZE!h=z-k<45YBhVESjSV3VogJk4}-F;il zC+ZfTpi#}*a>I8w_+wzF!Js@5o4KLEM>j8rCBYP*;<}q34VhceI{=x0=~i3#-0sVl z$80AQXFT5AraZW%aZ6NSZ-D9BN^}Ba!&n5%l(|(t-T(ymyML97rM%krCnAQ52Mu8bFZur+t$864=j1*Y|^L6TeV3!+!g0OLA4K~=$oLg^W z4WJ5y=&*$K*6`WpZ!w6`0AnvGr>e9~JGyut|A71TqKan-he^!n!R7=bF&3-DjIv)5 z=YD^3j#OCwoq%W>+#l-kl*>fX0he+AOHVW-N||x;Z-e`k#6rKKsd9 zQL|KfS{;{wf%z}?a|Bt{{=w!`);-h?fyVS^{fbwIT-&v^m>r^0v%AGhg3Nxvo%u$o zW>>|U(LV)b2mOz8v&c{ouWno_X!3c}i399--9Bq7l6#qLV~1Ep2KUM%K~-RhjBqS5 z!~@f8T7-dbJZzcNg(5E62Y4&I^-AljGfu-On753Olv1;lNa=G!TUaAy-bIs7p^neI zB9!c!-v^$}^LEM8IiaqCy>VzmbJJbeJ%9a3PH%<9h+~W}#mwQPHm5*)-$?Ze83AW# zmD6z>t$5ifX$zI2X!iQWgu0KIs?RV}Iye(P&QCi1>vbgU1L-KvWdFauXB{bu>e?gW zml`7Glm}_^Wo-Woi-3i-FhfTP;r(b$T~Xi|?-Prh972oX_=Rhwlmt-om8?Vg z<4A#CiIgoff;MGW1Wvh3BO>+O(aF7*n4WAXPQ$ir9QZisj09HPJZ;%0S+{hZ@f7Z; zI%SN_OT+xn0jgW!gq@$LUZ#-%mt^eMDXD=bP(vr$<1@;?3m`#lz>)|!v$bB8phz5B zha3Nj!w6Y=71j6}UNVi`c;FAKrDsW$uoMk@$ox~LY)rYZ4>d}ou$=PHs6e_BmYHk5 z@2~m%V4eEDVHr2#5k6nKB^cWr%%Pl*z9C|NmWcG=U0VeyhTYwOOk9hex- zwEygKAkobSO*GTiX%*RO z1_%Ckx%^%K!M3uFIx~p3#izn{5)I&Q2P?Na}kPf>7bzP55GV|ts8p?0Prc_HjHMn7Wx1jw`o z83tx`To^AMii9p8q`8E2C9?|+wMx+Y9sS~az0F~sNMkY4$2yaA~1}q{rVVB1Cx=i}$sR8cTV`@3X;@e8bFfLds zlBzH9%t9+)Y#k^OHZM|K0zFd|d9F{GgSqB8wNei4lh=Dcl%1v~`hj4B@Ei7lTCJ3n zg9y_?BWAnSr2$(w!h-Pk3`V)rAGTq*OH}{5xQ+QjNP_T8f5Su)k>?* zsE%gq4A3_m-X`7u@jzO1fHQ$-@rs3H*B~VN?PfS`hXEER)rT|(W)%;ldjABR(L0TX z*hG1Ho~e3Qyl{*L`Bzq94Y?ICCI`0zlmxx70hq7Ca14zQcPOTD9T`%e#BD}O?mj`& z=x2DK=r>dv(Mw52OG5}_UF!LZyKRCe>Ev1<1}=loxB3Ztk6M-d{F3raN5C%JjhAEv zR{E$JHz!J=ZFR&xAV}?YO@nC~cW<;w){m79L&bSzbG&W*eh;B*4KEA(I=9Um1Eo6^ zDGS!vzar8e+%x(xu~=IS_p}O zlIlUV3HzjuwUoFP5UrW;yOI$XvsDO7%7H*XD_$w+Qsg$3;h4#fNt!a|qjq#C(fGUL zh!`%Hjt>tl@Y8{_g}!))#yu7)J~<>zQ~s|gF*g+Ij0m)%E~H+Eytraj|G~Uz{sfO$ zoTnn5$}niz9uI(MwolRgKOhfe-$=6kquHG#5`4;i>>VrQJo3)BLUkuY7LVVJ9C(@K zoZ1|o*+WoKobm)Zzee!^G^B5$5t7A>)jk8x<9^Kom?AN4bDzX zSiumyTtFAT*7-06_FrS&!b0$kY$sujWDr!>R%;{8DJlmufwO@iIds0kHGmxSYs~Wn zx|nh^J3^dv5fpaefCrAm8HsCEm>R8xM=T-ImseW1@eh;r6W zfbaU-eE$)E0`u5lZf~iRU_!OQT!e3Spt&GZq@IyRCl@Yvg^9R@DL#qY(zY%ircAaD zmZ?ZJ@x;rKW(n>W8cmFDG(b*tz9_czjty5Zy2MQr%o1Ct510F)9FUvqGPBVOtkAB- z2y?l6qMZu|eQj%xtQ(fy5d&k*H79K4bF^q|cHa`rB3*sPaxrj}tIUDhU`1t)yD9&Z zDY}W-@k-pTg4v5=H{tU_xny_OVz}#?5-l{v zy_3=JLx`2%BFcngMd>A@dl|YfQ@}9uH_O*%XYPy@!}L-3&3puiYq73-{BBEKyApLN z;7MBz0E`13l_jpTun(#aHt?Js8X9!QBP)ho%xGz%=mU|52Ro0_y(&KYtyg&TP`#>i zr4Bh&6vIVL>=7%q0TzV(&$CnwtQj=m^Z8yC%hVeC+|?KK-F&}j3dG_6E5DhSy0+)I zqzyRUIita{c6VNoKp44L)nt>ybFe-<|8mpq!zfU(R%?B@=sj2l3~fJI=8KYl(F9kS2?AWFIJb4K&Y=%1u*%VuYGaqvP_ed9$4kIgv&P&BMQnK=0dIW*$rw&!d}ZHWyr! zFo>?*dQVZE41Flht46?TpUaOy$Ht2>!^S`-W)0(TT)Nh~{0dxX`(z>E-g_c7S8W($ zwH?wnry;a<`4C%AvhmmbXWjGy>t-iLMrCcqb#M9CQQIh7ogaQz*v;GE`3Os;sk8`J z=l|q|?znV*U&wByew(xK*!VzTkIvN^Uo2R23e;+iDjP^z#*=}B`V zw6*t*IiVeVh?VZM`pmL#D8aGl8&(F`d;%~R%2a2?dhC5{y(YT8CUkCDA-cG7Ash_s)!*W0S7Iwq?>n9>c$@qc37f+z5}UNTy}hW+(4F2}%_HM`H2Fg8DYZkt zTJLiy7$;DYnpbbQ<77~QKt0ZhVyDCSGz4yIKEP@(5=G;bTQ@rs-c7QL1w0&AE?Y+d86BrUapN$a-wDU6xEm%0)B=xLIjx`r2NnM;E8S|bBYuCi`lJB8F5L@% zalw<_%$lsm>lI}<_Ku9D#Bj&OC>JTHYI}^WL>j_e!=a07x}@kP(JSkWMr_#5f+E9H z-s*{+BJRQpga?TAWR>i?LNns%DBvUSdGtg$Zz*?)ekW%En4Ei641JQLS|3aytw!=T zOcxs=TihbDd^a;K%He)v(N1wY6~(kIEK+pua61bWti@BnnfJX_uKWkzQS8;v^o=Gh zzGIM>ItaBxb42%Ik`6$I+lxqQoysITUkdrVDQ2Y!uhn>Z{kV)p>Vk053PfBDqzcN& zM1AL=9|ROS?w9d)jO&R2|CgQlt%`!%ySq zrinCDL~9!+43PGA%0crbv%=3E1pf8m-FQc$xvh+9N8F^U)P+2}e#Qi)qvrxmfzbyS zO`c05x_wXy9D=yf150CGHYeme^ggv+p% zodq08V^?ChK2Yh5mrC`Yil|V=i*1vDI0~5OMg5_;*{NbGZ&Mx)py<)~kmZ$4>y4t~ z;MSk)Xn;t@QZ)6J>E|3*;kWj(Q}Intb>%;U#)4(A|4@z<>H@^ai>Gz3x|hx^&!)WhmI}O0~5K4Jr6FO z(__nla&$RlvC`{B!Gjn(y5W^fqUZ$jUMFAWMjRBlU&{~!r~J3ik$N+y{x^UPxEKak z@^_%FmSu(~z48RbpfDBt_4HzEwtUlx8)24j0_NTLK#z`#s?qhGO(Ot9K)k=mCF}p$ z_pKRC9LRgRG88D=BG2FyVIfs3u0N<8pd=;8Eug;FjxMdUi{~sYw|sbz&hw7;W!d62=**D^}STzIbn zHlz>d43V)8>ObK=3}j{C4?_IGr*|eNIr>v01OuW?=&4_I@@+(9hr^vWq~TAeELkFl zD(ePS+`Vm&tz0h2xZ{J&os!(+e4e03bRhiu$UlBn`9d#Tp)*J8Y<2p`?ug|t+`+tV zeJ0J4^yxKG05D3Ra+K*(S9r6C9Xy}|^`&Y4q7(sYmrD%2}^di3<-C zAN1I?iTXF!|)gM`rjtthsWkyA;ECcz>_c@Dc!nUsy;TC>b# zq34S|a_i~3o+6XRO{{sC#*|YO-_i*8;KGS1J*Y>)k_GP11!Of?D)|qKdb3_c?W7CH zD)0)<1A2QPCEb(2o9a5O3?oCKAmbRAoUE<3ylk4V3Km)B{;Caia6c|Y zo74wzXIJTScS6Nl3ri$f5>gjUTNNlx)Zl^XZ{Zvy_JLD3RIMDBgS&rUwn31xwnp%F z+L@>1&PdwOPdxreq&+O3oN1mS@>$ret``6RjOq;qllVfa*hm4R1%wp^g2`xG%W$-C z0)B!Dltn+@iOoH|%IGaWot2K`^xZA?5b%wwHEJFf)3^)&qrI)(p`Eu99A-bCuNfza zK&;$a0Ct5Q>^3B>CKSUBmsy`BA(2bLd+wxB7nrEEPc<>=Q4pYZ?ArUeX6>{?-_yvC zgmCm+g~)Cz&K4_ud=rC>Lq*|I3|{?2&>9TmPBj1xn&pN40?lfa5__CF&W3Ri(B&lk z!b0p#*cO-6G*j1Fvf3JQY&j4~)cn#ARVJ8Sfnt_9to4l=1gF1QXH}uIU%Ch)OK7+Ci9tsVN z6u3^|4KT0a+(Z&XFI(B!@?fK;B~Ws_*W7>!E{H7)>eofRs0$8U)4pzAR2&arwbLmd zYhWRp+_*x?aH+aXDxV?4?d#2)-5NY{b1irC7V~u0_!v~S$obaqa(XDo1r6M z)NJM6I7n|n6gss+u5T5@jk+XaTuSU^ywsRe1z6DVLgDI#))XOzzzS3Tmkd6>!HYhd z$}U_i!mxziZIwUo3{i_tB<7_|!i zJMgb%JGMKESx1bAzcF>nyRxeZ%)+krRwnh-II{c<+pYn+{$=UhJD#y-$Wq-rWfS`&LDMQEM z31rzYiw5&gohx?YR&utIJRF}_X|zb~?lx=y%Z;L3{T)~HtcJi!?dfZvf@Lrc*||4? zi7lm8;TA#cKR@~RU3cs!6($%<2`DbLS(MJM*jm9B*X z?C-PH?QEfwoik9C-Pg@0s&k~o9*?pWj@Z>le}~s^oPHYSsEIU^(hcw_%HQ<_dM4L2 zz!t+Q2&VT8RJ%@TR0BNJqa;pnY4vYBM_%qI@D+b-P*a#Z5Qb~Vs5;CCc4sy7BwK^U z1k=Z20?G?;Gtxa9J?&B`=d*?;nP#<<=U_dO8sj6sYqDAzjaUNn3u=iZ5Z_Gt-`>kT z?wimD=nS_PMoea&W*s<`SY*U~|Al`2)+6Cpz8h$9k*#U?fF|#U4z<0%PiM zC5-A$i}G!9M_n#}^R3mz=+SW8~p%m_FGvvV2ulBW;-0t7z5#%bCcg|kYj9=vMFFgXa*_BTm#h{VX zqzc>=1uQkwH&#f}S(xCu4lKvNDyHqRdUNfR*=uXBg}cxkjH{xS7W}UGvw>Ymb$G30 zts_U&y%$c@OXpfZYrJjY7!^1+x7Q@g3#Zw&Oa~|#s0A3AHWIU4Nj4WP!Wf>NYtH=R zQtZI_Z_ulCb8CkfL*}n~s#K>)iRfs^uW{Ey3~~6yR&xNoh{72rZ4NFvMi<15#gM`y z=_J(oUd~1a8XnUp&HFz4hxq~og9Ws7U+)I?fYP1#T-{p9X|pTSrcurr_yMl<&f!kI zf3n(oZ5O9Ax<3apw!f!p>6)3+J%djY23Q^;97K#}61l6=KgQVNTxOwtfx%u=tQBq< zPvYd;B5q!GB%LQ}-3E|#Wb4S)iiUGE0+nP{w{J0ni8-R^R0-(+ktH^5 zep4SsWgjS`55Gz@NsTdx;oi4?3k9POFpD+5J!Jsy>7CgVw)jbdo6IzaT@YBtLrE$1 zQ|Jg(O2`i2uA#7h6`f#r-Lu@a=}x4mGtcjSS=nWoKDkYF`L+4FK~!iEtF{*qn-6t4 zwRP*vER&Pm^o8U4JlXesuz6PSS;Lr{mOlvpoRiXH%1{2=PUMXf%s}RQa~eKuymLPO z+Tqtv+2UUE3+26BP%saqif+R2zQT&L#e$_?ORcQR^)j7leZ;1(Aui65|C3oY4u-Rh zK39H8Y(57PUt+MQ1->vItS7bT23T}ZUdv}{hHWS#`wjttK<&5}H9<-rN^y^}^7nmn zqV?nmnDoVyLeuwGBS;TB;3hdsmAPk)vU%GQgk8XJBRa*xr$xnsSrVLp(AKaF=DBMz zP_YSp_#k}lV1T4I1m*IogkpSXMUAUndYw5tQ0|){5J7pt|1*>DNJy|>s-SJ+<%k}_ zI|)|9IJs2%P9nBmmBkG`>{;y+t$90B*?ECjU<)JSB{aq7yry^FElAIQ5_Cb$#`=}z0Poe>H#{uBTzQ+8MH zal)S-d+ankaEU!5{I@aJ5Xi{8h%HjH);p++HPtD|Fi=U#3gv#=Ulw@Ru9?V7%eE?u zX~;%lWejO#I&LyAwoGYVz!MHurVje;t=Spdy;m+^E-73rQvoE?|fnR|EjKVOYAm*;6Y|}^9PdG1mEU|ncz!h zaoC*u?FRdjKiX!CB!L(#t^1(mD?HI$>O_|T4(c@IJ;0b+96uANEy{?y>4wCuQvPR? zA?M9_GDOS*<(3+>ZmVB$wgAa`rs@WVb^QK;|XDa(p2c)h#iKD66o~Pi5YHjGent=x8K8_eK-_qh6Drk;( zafn4La&FK|kGpJJ(tZCUxCc}9XtKw9>iYG^iZSzjGnM1V{=YJ*RUhUt6)YbOK<{hy zB8OV|T{TiB?_dh`S&5x0qTX#MS z?PIN)hg!zbwVFc~2iZofODl)wgNIx)U5Zt24P3lH7MrebaC1>;lIK^zt>`R(S}JS@ zOW`U)d1GyJ#$;^2z=_2Qv9qHi1y^wp5n&L4lqlm&H~^;!DvoO7gy7C(0+~e^WsfMe zW=;xkASBXJ$MfqXy%4_&W14#~d$}PeJZylQ#crKe=M@FDTh0&sf^-n{>NmuJMdf2rco@dMdsiE?(4Wb^)0{b|2)Ucl z65BXQ)4+2!W7)gtu|zbK1*S~s+km;zm$;b#$Sh8#=%^<&+$>tFJ?A+bp^Kw3z(x|i zlRg4Tm<#@@9atHW4RoapI8%Uq<#0IGs7jBFZ$S^q$hFV2?eC-&o~3Ni`^f z&^r?&PQqWRQzTxy=~@&_k}~@*6i9s>iKc=@ z`e6oX8a*qXH z#H}lwN?D*q+`Nw+-sR8~a1YpRtR!k<+W+Uycn~Tx-D1lag`uesc=c>@b&bSP6`W+0 z)cj!%kdA;_?MVkbOo#K^562b3k@<7!U40ECGT#xV3dwK<_?c1q-RAakm*`-+sJ3JJ z+#XaHnn01D2@`YXohtzf_eo}{S-}&3soyJLPVBODoa$B2Mqi|RGsJhC$tO{gLIWc{ zM|?JVcSM@P)8b8_1sDY?Pxj#nQyf`~=YwA82C38rF(&ep znOHzeFS3$Zj#L~DcXP=13#oSxv&F@xFHTx2ta?rj-mnXQE|U`={mpEfe;dA~7^$Z(;z9JbXGq8XI|Ux9;#d1l1TAH(Zme(-+ej)-!P48M0j|I4JZl zex9@(xBQsCjz|Xc^kq|oPa{pFEOSRSQp*h|&~VE$$#-eCDih5{zbQ_<9)nuBol#!c zgv6S`r;jp9IG?9f1oy|KqD?!Q^cT=1icBN64+J-d|CyjdHzl1csl~GG?YP`Sz#Eqm zJ(xr9Am$;-A{!$G=Bb8uO%^7*?+Wde?xI@aJU&_NOWsM^kT+Jw=-scIwil;M*8g|L z5z20~#FZ1j;C`VX;BBHGNWhJ9rO1pnFEipk9RgOZSi|xj!0046)bzU~SxO*Q4Y1g) zo`cZbN?UcW?PEFDyZPS$UuZiK3l^kRp16&&Do~s^xOo zVeA=ScwMw$z-!N|QV~lj97J==?&4yeM{Z_hA9^yl&2!rZVPMeE>T6VtI;Q`ztNTie zD`P`~DsbfUT%LL-75mq8H7;LL~#p}P1Deav5L z42f*$09Ju~*jLPs<#HE+AQ7HfZ>#`E!HBV*xFW7StIg9)?PUH9r+3bO)n3G$VL9;p zM3M0+Ar;Cg+FdX<&`Vw{%9KVm&jmbKp^lMM;Vx7zJXr_B#X0B(l+hVLHau>xsvjR4 z`WYfKGSeA+_kPA*igK*$qvwH(GgksTMQc0rC&@U5?5R(y+>T?bY!y?KMP0Bk)C0xm1-}phhDBGI0tI&)V~=y(cfks z&E5XT1S4F8qr#{Be4#4zNNEV!P)nj;Cx{jMBOo@RO@1M}*BA%OveR<(7F|U&_cch*lv@a(&O8@g;l1NIE6To$T3|)Fpqt{oY}%9E zrmB`QIz1w4pVaO8^y51__q}!K*&!5wBre>Di&LiUVVEOq%j~|6M^gW$-1xaxEvs1n zt7PxCI5L22 zb(?)S+4k6_%@=79&dd7Bps2{=dc75FeHe?n-2%7QC+KkRwSqv52gc<_)BsES8M9V+ z@xj7pe1uJD0ilWEwE|E*LlF~S9Q2YCYb{liVyxoHaZz*e0BBhr40#^j5YdIbfoDeQl? z^smv<{o6v_A>iWA0)>{5pbUsW;ttp7^Vof@F+={E?ps24rkX{j>)EbVBKn=Gdy500 zi|l$EOZ6j_cYMeiYN_0Sv>_HF>6O_#b9ARP!@Q0&f&ffZZ%n#lQmz-Wt2hHO=#`1kaGK8g8=_i#{VS%I^Mmjv?% zZCcC703&cdB_x6+AQ*fj5Y8L(&Bh2H)zTZWg(m(_v#RqYFv$hw|0! z`wYLR2G#~tt0Nm8g^Lg7Pm`9(4N1)5Jvd!SwL7nyyF+th74<2qtt)Y~bB?^br$B5O zs$}}JTViIbO{?U*K}w$Gm)tGE=0Nv+9QSENdFF-`(pAdy8y3KC0Wa!hlARJR$gf3n zv*<7;HBY5%i(zp>*bR(8Y^x(kO}L#M;Q# zKOx`Lh+6v7JTUr7C=`yVo3ufAD&oY~F+M5G%`!BH&>f(}LY&)CsRtkREj|y-rhsYl zt%Cq~C5we_F(sZfT8YT>z9H;s+GA~E zHE(4@BfA)uKK>I$2cfW^4lOoR!caG9u6%)9E0Pd+gfe!em7{M1{AFlj4~D7@KI?_- z!G^k!6$y@*VTl>5H2ePw5DC@C!siU>Rx+-BMDQCEHG1A%Ed@P(#u&14&TCy{IK8JS zr{OrbGeN=1gNvFgk~W?1+ZSUG5=5V1HeQge{oFzQNU)EUxH3_jiw4?t7wpzq-%0jH zUi?nBZeWP(H`OZ@q#}nc%O;5Dxcqb=OSqG~L4|t-;g_tPv^TEZ9 z$j5Ghe;K6gO5j8mK8ygPo@Z)AH(>jENDR99%}nKzs2O~ERUpWra){vq+DO`!s?|79 z!3@T&l09$pp>vnzG`W5>Zo?;rL2V6GbRe#j{fa;kCa za%&Uv#Wv-feH~#>KczOqORyQqV#Hr|nM?iODoN6*^{l3=%r9R~KNgnHcJc5b`9F zCy|!qAC0Ne56#Q7O@}S2SuV|6!9lbL6Y7b+UJi5REEL`(o5x$vV5QRq%Sq)B_=|MF*mO?32fn!j;qbkBHWOM7GjeF07Py*CQ0SMkhs=Z)Oi1XGpck_lby058ual%zUel$1 zpFtLQ2Krercv75Ol_$0z?Pd_z5#~gXNi4TDz-toMJS*0sa0Z5&$7Y%$fU)7zj2&G1 z8aeKk8%I6Mo>HdFvG|MHrI)(jT$gY3sQp^XWEBP^BTNYI563izO6jhcu422=M7_vm z#bjnC;6|UoblLZ9qa1FB3XQjqFXLG2U(HctxmD|yqwAUH20Z#NFfp~$k68`IGs)m{ zclmmh&6dgzUOHStc*d^kOuo67Q0c@c=(|4nNF+4IkT50W2SxUKtRmIeJcOtYG3~I)qKz?MRS4E; zodn+c>)X8mDcm4TqJ=%_v(yAWQh}YWT4Fl{OiL(^Zr%o#=pdRK>Ih}QlL30GSW5Os zdEpJRO`?d@(d8vQQe43*bwh9Bh7TvfadZX&s&SO@^R2X;?aN`llzN8j2tJeTbTP3g zMpkY|eS{AU+{DJ-h>%969E2M z$t?fed^f^(Jbb&1$3+GzDJ;O{OvdW06#S#^PFE{>7U};HXaydh43l@yo+uCpYAt&B zAj@Tf+&4mZeDFnFXhwlSxrQ=Z+J{@W5Gi}5$u2{vX2$`f{@Phn*noHwl#8H6`{@R4 zR2+zX9lu~_F~t$>M{xLgwVtoQAKE4^`1%Y0jE%}0$4d^Rv622*Ed8}D0oqC|Vg?Wd zN&^B?%K7jvLbKb?L_?7AO9I0yzTOmciI;zXtU2+N>%3!KI!k zev?RQKu8deSL@VpG#Knc(`z~ zcdLG!-pCJ6AQuQkFVpLS_~d@Mfx(EAf0_>_PZwFPyb&BngEf1{fXajroMldzuR=Pb z1hdXQ#PHqjH1La4qv?XFhse7hQpWb45}t-OEj_q4p#U+?22~L|kko*rfbQun)uK-O zgMI*&hE)nz`4DnYf?*#)eN(BK3#eZ_MvdlaDYKN?ed|6)y;c|_o0amz&VuZ6zI#`k zhoH?mDm!A6jd)sS(4WU@E?O<*mu`>`j1yR22DMwpS>eT9+W&4PB*9u_XK<=7F8NDH z$*mlIsHaM|hJ}1Bz>2gv8&4_5_ua%mica*5QFTW2Xq&+=;v24oeR>5;Lqwwx*MR4g z)dirtWM0b)&K!BU&3`gV08ARqk92n8`&u&uqcF@$-lj7QEJ!~oyiVJkcLg^zIn{D} z3#H05d-tPOL9`mn^nzetr&=o?M2s?7qj!TjgbN4pJeyB_hO8#O?5yvPoeu4T$XxFm zanXzaQwxzoQHO29=PYZ@usmKa;~oq;fB}!@AqH39L=tF6gYbO&dE1rjCR6A3)UoDq0M0S!cQ273CY8=#146-)kbxhIzEJwv1gR%>j*sfBelI<2}1~43b4C9qb8x z9iD*rKkgKW=<&%mN&141lZR_V0WV3d)v_iVb;m|d&8i!qaCqtn;w2b{$xtwCPIfkD zoZpi6d|6@j7|Mu0w9pdbG5wOa+1p1c}SMDh!&*UgoLWf-y06f;^vud8s}Lq^VzK?^(&?|TruNSRS00=5t^Om zB(!XiV!6RvP@Z6^@DK$aM^>Z7!NKx&pjTfy?y~~k3D)fXwpp!6$*aI9NWtDN}6?4Mj-=*kE6ge~&;JlZNEvcaGJ$YfjGn3k&UDDiIvp4 z^=QS>GO{`@+V(^`be8cwWSlYwZ_R}N)>nDD7(`OSVF_m+iaWvi32wC-w2HF?#gqa7 zk^SBvX`HM-^RZV}OxQ_m;i+`QEaVF|dno~8cMg;DC2hMtnTmL7M(eTDq#C{kWy3RCw|bd0lMAC0u?7q&oC>6D$SWY1)aranF8g zF6%o3Z4kFa>fhjHiI`4szM6HwJS{Cfm9eME0)e?pE=EDhVpR4G1(E5fg0m7QBCRR% z27c-c^!xjUfkk!`OA$m?Aut$B5VMW(rG%$fo;CM*=H%Ne^&nx3qjN({0g9VyL_p6a_b~X9l67$;0O^y~ zv?`^3ZJBtWuILAor^Z(Knrw(I&~ju<9iTS-``s!Ram9#fTBfwccvfA>q;8Be?A;y^ z(#J$$x{$6LcD4CCFmUqx8Z)*n#STD_YY3V==nfM!bVr3yP-)YjMY$5+FwU88xs3Sg z{qhg8V9`@eYtpPy11Ge$hc;+iNME!W(!8U1C(512hec;1i|p{a;lOK7PUF`oruV|< z^{bq2_be7rw1NxzSBeh_OP0?RA-{U|KJz7(B}NQr$>jFzM>_BV9@|?rXqr@J@_`*7 zwtf>X1&T@c7SN**FM99yIc!(*f z5@r<@wyUVGceZOQeNUoI=*_hXf6=&orC}vwRm%5)mH#les40d|`sk(|ueYUFkB@jl zsPmAm0(nwIk9I@4_G_}v+>Nm^G{7|koJmG%eR}J_-6(uKGyW&q{mQ_Z8*}5CrZ^1( z^8q)OF&`vPn3SbwxV?=?qEj?A2Sn^Hg#igRF;BpgH7ySE*+Eh5-$65W+D$_rd^^P( zWrqj?U|Y$IQe~4PW$S_)L?>4$xxelwRqgREx1io0 zsXl&o6*tlfl`w{6r-&nvjaNad1tuon5{%Pi0q*o$g&us)ZF@X&HZ8LD`4#ken z`RIa`w8n~wtk3%SJmS8#JI(nRvwK;TY3u#D-^Ik8DQP^Os3JeMM{HkbnRSRRZIkds zySl#AdZY#$EI4v%oxbbXfCkTCCnz-68xaG3P{mG7oMUkm(=ndxFG*&h^nXB4skLFq zGDqaW#hb~Tv37Bqn?nMWnl&bKM(%chjy3~&u6rR%Dk$iJ_R(c=mii;@bMx!qqgFHy zx`_}kxYSP_zIsu4e+`BKtg1HxEGN_}?u*)Fgw>^CCxSsi;s~GKhaBwE92!b!%}gtw zPVFH9MdDuGVWE3>GEf8Cgc(U)1( z1NyH?CoLIsLKIYn1jYN1Ad_~yW7xtq5Sr7Tkh}EqT|fI?E9zNgi(>|dAnc+=;Ng%_;}7MDVH4&Cz;V8$YeI^; z-0t?Hg1(snxt}ehLW^k4&QG6wX1m`@uuR^w4Vtq&y*^u8zA&HAI!g(b5DG~hI z1m#5Y%vfYjZ;q-4Prk{A)6Sg82|+$G&6e+ z=E*fDBG6hbuuOHH!O^Uc`%MzpI-r}ah1MmCL;+eENyKXe){H&x>S_hJ4ki?A0J(ft zSoNTV7h6YjX@b610PMc&@M&~a-6ZJhKvD!n?ZjCIQy(;a7mgnzR7J62}PgyO$W?nGa-M6!gMDM zz9L_*5~;e~|N7!mTC>&(8Z1>2C;zCBi++;zC<{Qv1Ff^f_12z1i?#d}BL>&~e-DoB z5rB6ZO)i(|-1AgeSM6i4{HRjViKmKN53qkJ_&P5i-WUD;pGzWY;LUdS^vTG^ri{G< z+M1@!1p$Aj)~@hFzX2hPe~&Y8U!pyjOV*XQy6IpG%K{2)ah5Z1?EPXz1`+<5qX`}k zppb+dL$z4^BM#xCo(KZX*>&N{K(M?PZSB|bMTs9?QAogs+OrVWl0(KbHN$uij4~}o zzxZHxc&A95@#^6l+D#++BXQt42^PL_>Dj&Ge4HWw(vqfHh{|IQMnB=cTo><}L;#vzm@dC5E9 zTKXJanJC@g>maCbZv2lOmmXMn^-uhOhg6`k4U|RXH%uT%^9W1K zM)a0PZLYpPWnie6l#oPce`G&HbeK2@^k_{HVKgT%svE2kuaPa4ixrnzEc)BgU{+~9 zW|0?g7K6YoVi-54hT0Fy&=ApIQ#%Ez;x%#r~Ql_PXue`#(yUcPo4EIJ`{I@2CodV z5~y>2(QuJ%5lU{D)O-rre&Hv2r=!q>zpwwEbh^FcL6Qd~(Y)3tLD+H6j%`{wOL6G6 zV>7Xkbc`!>M#^#3RQIg~fXKxieeKrOQmf4LiYm12**Y;;ON}nJ6zm4>FxLv=JYtRx z^q+;=HCQ*hp||XW#4gd8ZSJeLv3$j*MrEAgF$vCGtRq(U9;P2H>6pp7L66y+z0)+q zVGvQHcY{APIvwgt&Ylpil$IXtEOh2+@$qQ+sO~kcHKu{qX#CPF0Z`y>V2G1-^S8wd zZu-9P2O$-DA5`TkQNc~>S%BTUjo2H&_M*EC2`gJ)G^3@zLHlcFf*Kl$+(r~LfSRDt z*kx^s#~0xZK1#JMdn1*wpZM5TFGf^j$=zD4ZL@%z=GBfQNQ(;(SZtjinP}5>_1w-> z(iVsNxBKHmeh;Y`3X%C}unD}i!PIQLVZ<^0?Fu9vYN_GXblGLIG|Dq|YT5IXC2?uq zA;6u}n@$qDj2idEQm;k^73h2e!bRDC=K@)t+qb)&OsiZK@x_nSHtB3Pq;*}pby>i9 zoyv|OBg=GrS&;Cj&wwnkFuGo~TgiBCNQSe=X~p-6B5EHGLh$u)>*A+}n?0kx^eV-{ za}n^4pVI6`z^Ih)^V?nj6eiiE!2`>!%bnDd&N@B?x|qcB+8xS+eBBs%qrL?-DW2*F z80VN54RTeSI$oXMw;c9_f6XM6-#YWDosIr}x)2dfhiWmorR88T_k!aYi4Egd)53f> zGDH*2a=*Qtif5Ao&-?EKbb)&Rt43Q~2qB$^=z$&h{RQadDm$vQ0G9RN$uM(39;l2BYH=5q9G8CSE64~QA` zB)ye6PAJf@!>J%@qBj($8i;h{;=%z(YaJUhStPgMS(UQ95wSTA;oeXtXPF|c)zo&u z=YoxOL-Ob8xpL`vm@dUTOKB8|VFYN<)INR@%4T8OCB~3MaN*^L#Ab_LRy$vcy`>NY z&{+T7A!z&9r~ws{6TIG#AmETXeJEQ-gm5};AaW4Efjzr=yE^PxnJZZT?B?KS*rK0> z$fch97diTJaKQQdWIcvA9<%|Q;j@G{irKrl?J$y8(#JkH*#e-aOQ}Zo z71Hkavp&Hbf`P3`!t7y7HH@&#{xqHyij$q%AJZ?7KspTyE46CzvS?_q1Fo&p&b_3S zm+UDet()+ZJav$*A%k2vImIU;OVii*t}`@(z@|L9nIFxqPQ zwi-+ukwo%e}F3H0$QDwUz( z1NVb%CXz(x5l99F-RqH&i2>XqUv78)@(NPdH}qWa9&a(Lv~%MqKsKAxmltpE*W&>H^boA82tD$ZHS+@uZZ`fa6 z7~*h=f35E(kcN@<5wiqR4LwS0l;}oT;A)on$7;6h^D^1jx_A;iEmBD>qv}KXuy-(y zs~-xI6h$D3$Utxi(V+(m8@}PF~Ncv>W3R4a6((3{wc2DUmFZAQWLdUfz#&XedkaMYAxCLY>M0}R4B1eIIe#siXp^&=T!LW24v>6nQ4z? z09`nhxm?Fs58O2+Z^~q^(`3XsQCOk$pp!GidFFR|FfC`jaNd8v&<)3h-h4s7AU~5Ncr5GJt69f5Ix&Jt@O}m$0Vma&*o6 z*W}6@ybVh}C$nut%}=;xHYuf%=(F zX4&|fT{|e~zJ^43DDrsTq4KHPl+w_2y!@!k)S{vH81|AkE|EI5q-E`hPA9*@ly>{FyXImf*`37{UTbI z+|@(h8k*uW6vaFH(<7s)gq*UR?SdW&{+0T62xZ<8(Z}!pK;+A6{A{RJ!i2QBH7L># zI+?A_y^E}-pzaW*cd=T#Gm$Gt;n2Y2Vg8Yr2T_{ajR+aO` z#|e5ak_ST;sh3fyYs|UCXgd8C{NKCM0Nrp5@geYH&EXt?CvU|41hB}OFj~$bMpgSP z>-KuHK!R zXTIm5twQS9FsPOK5|0Ua06pc(%MVu1wNNYpGZUNVf`CMF758JwPbncurH|u;!_}6< zuWcPcSlBCrZh%m~3L8HcCp+{NhyvU;Xf(x+f!$E3&%=8R_K7iZ^G~tgyMdnvQuC5R z`mhhz*0~oM4j!*f_XjX>!X@2+@m<%>+d6H8qUUO{&Dx2i1Z8H^bKB$px3C?)b&$uY zNff56{~hiA*czwU`jUoRXcnY=2Am9+<|GX#Su^T(^-5ZIHa(-plo5!QlmQ88p=7)= zY{-(}G^)x8+I#X0G3E7ti9-$kvs$hc99t?J2JSiz{{nV#kJPvmjBaH8xTKBspToh4 zAYa)mwxZ7naC%swyncDENNvgkYPslz$st>{3KD7+91KE9_zb z;2|W~3xZ<9gJBKpCHXi_cQ+?ZgwEI$zCo}Y-WzKXdM zf}<*Fve_Yv;x$-d*vm{`mvB6SZK_)|{idDQ5*i%aMgh5OC4)#YtY$*G{vmUE${fKl z!;0W81Ufk-_}+^2EKr}#N)p(QI_j>KQ*=Th57Vo>usIt)qaW*rm%s(S4TMH#PfThp zk)=*L0PJ|}X*NK$kjIJ;D0Mm==Lfm3Qhu zz_^vmZ9uZPz_@d6UEz;M%x&m>v=m6_$Y{v&6fwsZlxHkq+od~b-UD$F4eG@VK}9F$ zTYdUtnTi|@8+d?@)TqQmo<+H?OcVpt7cAV!(oKo|9N$#Df?uqljs-@geKjxQ( zp-0%d{~8=DDz>{}l-<-0bKlW4P(vE(huyt3Y%c#57kvNL=3;+ytWThX_p zm%2I(yX-HK&z0O%>ef$->SNsTu|$&oX=BdSfywG}VwWIOD-rG$UeyuHx(H@-$}!w( z(ptsQ7f<#-_SOykqOZMEPL~|ttG$k)R@d+5>-HWt!$95I`?rW(mg;)7R0+6rretr& z`D6lE<{_N+x%1-4SrM%EW470kq+w8;KtL53Z*F05G4|+?gqSlrwS}Ts$nLM5_P+s3 z>dIA3xs!eUeeDFyaAG?p$45Seq6sy92D37i4-Z*p4tD1ovGnW>?C~H^DrHC|Ayl3| zujkcY!VrBEH*^t7F#0IUUf!hAcGAP+_9>OE&}#Ws6p4Gc@-QFAIz7%TKR}PN8RQV% zUX)3Dmpu0i==j{6K>&1|M~sH!gE!F_Ks;lUl$J;nmdN4fXj2v)8_^+hhZel_qv-(g@g(aDA(%ETIMT*20ZX&CzmIdjQN*xnmlkm}b6SCLzqr5xc>ed=>AZG|*=`cLrqL$vm&N+~5 zp66w{!YYHhbhDUA#G?~UaS7lK3-Lu%``?(aq3IyTKWHPU@?HLePR(F3&y&9vqQLJ8 zW+TVRwoV&pFd@@K7_q}3{&cE)=zu$n{ij~y;Z&~Yv108~OsRo%5!!VFgQ^Y70qBL# z-S2yQ2K(RYM313#`Ub+#2o%c>r1u3^>;I?RnwcrJNh8Vt#yv&1U8}MZyMQa`ri(+h z1SY+*=OTijvNiHq1{)Alv{e%|sDT;!11_@UMtm~2;Z$*W-;BCtUXZl$URXH;Sikkh z&RXR}{!{+M!sh|I+bH@GOW}^hbb)ox$&kOEx-gHe0a(08s`aeC=u}AXX@mzxJ)R-1 zs}u*fw@7X_&t+ERwumh(BqFbAC|yCQBBYj&cv#ZbWo@g|@6%FchW@`|W z*F`(P^$%!;;dKF6Y?ag4Kz9-s6G#p`}Aadz>DFDh|Zw8jXO@?*S1pxl=13P_Gum$>W*rA2Xv@H8$pST(x zfZocuJfo=7+@Zn1>ZT)ZFD8g~RHZnGbdzjl!11(XwApVlqAj&`wG@_B8q4ghpUe@T zb$N1T^YTKub+b=aEb9&)CpyT!o3#AqNpK*CZzj?l$}>nahSmsZ8LR{$yV)xulB>SD z=o1Dh2(*284z2E!3BdV7U}}pELvO!dfr;iF?NjuG&#w$T04_n>C7S54&PvGcE%Ghi zjt3=8u{(;QTW!eYErR<7al@*!@uSDL3xuUwb?Jb6!?y&L(=gX@>q$}*ZNsBcB~2+H znztujgWLWk(p-*c5P&fb&izp0hD$mnO_gY17S}X9tZ4Um_Mavkyh?QRSp41-%j0WN zL{lEs!m+zNpu^7r3`oBvpuwVp88y~k>JPUG#@F>E8H1A8szaoR%g7X;nI z9@uPblor_@v~DVoD^-G{W4Ig6SJuk51I!MT==&F7Ircf^ULDd=Xx-Udod z)4`t3Qm&Z{U=E1nIl6!LHC*7*vTK+qf`xW{1Z zLkH8hffuaw_md?*b+FE>%?Hu$IJH<(?*g$H%2{cP3{|7eV=+Wtgw61B%Gmdxe~E8f zr4E9xSFtZF@t?e?e2xZ+4&4B<^6OS$J5v<<=`H&Q`Bh@RNikijZjW_BqM_D~p% zw$lKTZXUjFiw_R44mdT(+HB`V*r1gW?0=!;6KA6|R}UBzGsSDq&pCr9NtUyE%pi4BJi5k)9$s5U{opSf8YXx!QvK-YtGbCan;)`RyyUdP+^i_Axu6n{})I`rtErxzqi^bW5OB!nGl7$+)GciuS%82hF(HxJ+jRhIZ65_-(J|Z z5lF*I{A{1dYl)cJLO8jeMjYW|K{1MzFE9Z{+8CvjZx7$*#EB~ZBG%dj zvm{AIb-GW)on-!Z&pQNp(G4h8@7_Bj?YutE_G0B2>;`EEN~z-64RD$1tSvW1lpqH*4%Y&ovKb*0WltFoNtBCN#om-Rrt{(;oioi9+wi zno?dR6h7N>L{sPYR^j?T6HGIQtEzL{xp<$j;sQ&8fIa1)_vY}zN9N4tkU#kJbsQCN z*_=sDl+_Ygdh!7=6PhM;P+qz;_p6W{D9&*~WNFK#DZ|Lv{$yuF2I;)8bFF zUOL>c0TkyY`tx`tAo%(my2|UK3H9Nppr`Gz$tOSJzR^oCPY-j{$Z#^%0@qP`1(!R( z1z@Pg<7Mp=7mzlNQp+)8ELw;XE-oJFSfX0IUfcFZBtubC9s#bUAP4Kw2LF2Y_V}QP z2^bK;zb3Bj#dLZ8pIEFn7g&VL?w08k4-EpbAB{;#WFLI2GVElpVr-0FxK@GcUDJns zgOmznl&`*Hq)-*1RR&+v-k`)FaO^fA2uKXVc#?1|kGIw-|H!f}i6n44 z({29n~O3C%9@vFb#H))Tgxd*S%Ry8{)-AVn;K+Pz4CG%F>9Ef#Enk!%u~ z^8D&z%B15KImJtPwA#=WH+nF8lr;jKuL~vODW|e497xAU*a=d&u3yS<2g)ADB|?l%_~$cIOPdg>;{>0}a>&6sawchW=RH)u8w76? zR8_;6rtz^6l>*c#*`0b1G|H1><)Sc+%dnR;Pfu{hMBF4SWlKl~&>e<(?2U!H9_uV1 zT~AfC{+v&>-3F5zcLYEWjo$T1R4yp>V<+M%Y>~IcHJ*e7K|OgQ0ow+;Lp~8ZuHlG2 zJ3Eps9Go!x?}hi<<8x`J9}72sHp_D9IH|n+xAnobMulZ!4##yY~PKof6uF zL|===pJl40V#n<8s3J~J@^xQhhBq1iP3Ri%_jDisF*Rq_K#7>%pdjd&C64UKj)i1S zY74D}9#oyayp4^Ab@7S&=jg5&VsPZuM&>F|H&h`#V}x_u=iFz5GXsV*oKF2|=Nb!B zJ%}6niB+;SgIW4zQ5-H5U=_uQ&3>D@u{I3<1T!&Nn6yOGX;9f&uW3S1AAe+V%BU9W z(wYog7GUPjx4b0UNCQN!g7j<5*T|h4S<$pU-=XzKHU{!L&Nx4xZ;^^s8jr>CCfDMy zFwKT`L0JG^mK^@l)+hQ{lbM%pK*Zdnie;p)Uwxz7hx(NONFlV6Uq?g>^4EDO!tbJ| z>+^KAFdqrVM!SX^=#|D`;7!alSyB8dRENd?AXI=ZQ!#wu^J`0!OvqBY>du*4iQh4J ziuHKK)W5=<32L_)BUqQTxBf*1NpAi2L=@GJvrlYp<)FQPK#VV}AH33r?9$QIgd0{H z&OT6*mQ7VhPt_xYnMmb<)fk=e1Z+_eMHPMoV7Wcd#WYNm=N!-l2%-2z^dKGyipww0 z#K?eB!!FHlh)~prIHi>i^4q8tL-b~Bn(os<;*)vkb@aIWL(iXLWJ%rSFFUW=c#jWm zmnV!{L|zbpE^SXd5pa3Zy-h<(9&DNLv*X!K?pB1(64rut)WIM|yxRJZKT~Hub)y$( zJ>`Wyqol@r5;R4yV4p^?YgbkVBZ9l_o8`E2U&;VoJDu6a`?1VOzn$b16K=`r8y@0p zZ*GIsDB>to>ZQWX;unwyCF*k(<=^Gv1slp+c5zWytuB~BI!DwQ&xrM`do_L0srM!u zIbYmi;?|ICh-cSvnGobv3LVH=C_$z9S>?7RD*%)s3rV{2<3!Ctar*SzZ3Uut6t(vL zTNUKx_`W+oOM+f@hvc>29Q!ZZtpC10AU%~j?V_#)gH0=l*Oc@FTjgZc4lZdMn8|`i zcfF~tjq#&CBQ~imy7KUScv@L)&NrgdBPdbXHx*kFNl9QVBV##87m1>N1 z#$k$&c){GLr3gf%Y-N41HrQJoVmREWLQ%`vu6Vgm!T=0eZm6#O&Ae2Y}eD$ z8F>8xJaZ@ap}g^7{M{94CGVkyUHRStSU`5@jvStbr4cq6*)Z zvhl5}P{bu&O50a_8<~p|wcD?!zh$*krCy;82XgxmQWc^P9zKO?3i_se?{A+0%}$16 zcJAclS;ZP2pgL?0L~Qg)O7PmgLBPJTm4}Gu@P~2in|X`|&ih;&=swW_94x$7%*5tb z=>1Jcm39-Q1_!*sF&Y@5U+)*(ts=sGoru6gaZCSJ);Jz4P-(uHR?Z%$dG1YhUF~7x zyQXQ97UBZ`&Vtpr))P*vLMW6*Y5o7XiM0xkw3wXU4J$H?p*b_|kG_#T8eA21ZqHfl znB_3ay}+H~@me`9%!lWTL)y)LM~kf9Ozp7xnj15MapI0yns)-^3B*%*;@ues&2Y*0 zWv`%Ymf8Z&36icRT-wJD6i%;M1ow2O$f6_^uI}&SUA3Du$1N>5dq+_3U0&day?PcO z?f;RXk*jaq$~KWTm)2pit(B?KcPmM%OGc_l0KsZ?9i1plq66P3XM|fe6DlKbh4%+OWOmQ}A z-D<+Cna~sc_p`_E#0_4f7$H0FWagW8v;Q1dS>%b~HD{w~v9|HLZbQn`iq9(Jwy{dL zB!ylN2L_lEs}yI&Vv7<`3bRyDK^myrYVdxx>t!l${;U)BQ67i+9;9#68Q!Ns{zoGJ zbqiWlQ0SF|Z1olkyRb~@>>o?}M(+)=h-&0dIDGM@il3ZO3{6H~|taF#ML@VuUGYvK@>` z*_ngXr2G@txyRExW8F<62wiZsx#on7Nou@~Kz-kcZlir!R^rx~u&-LU>LYooos-Nz zBWBmp;x7&zzEH)xxfQd+)fBgCl6U-NM&Y#|W~yw`;WVu$zQC-ZcH#fUS&oOGM3fDz z`Q9ITSw&6}P{)}5JY%?7j8CL2rd7fE2vJgVqy~?EI;>JL5jdrbW+7^GP>GZkhb|^| zP)xGlpf?CZK@$DHaLeNapwWs^v@>rf2fbvHXn&fa*9fL&zYh*Ub-lMG&~$xEq5J1M z@DcANKNu@nD_-`ukX8z#s!z*{LnZR(ah-Oqufezkw}#_Fqdk7Xj{HMU1ulXovHYkS zq?WZi*bblW(y9GyNCND#OuYn_h#B;gw?+G^h-@nyPP`I=zUm{E6q%M`@Kj5iKLEAa zld?rf-LqnUFapyU=7$Klu}E@%=Je397;rUDOWmc@{7iQ?jcO9$eUT>fp?XaPfhkNY zU+OP^)@IhLi}H4CW4C)>DNmXuJIlA!tS{)~+(3{aH|97* zbvaf|i%FnCK%h?F0pZClZ0?D8A?LM3TiDdhOna?ChFc6YSCDf9rCR`{yCuycRk`yg zqsnXs4v$w+Jb=U+BeQ5*U%f6Kb4M43d=->T&|7ae?GHSnbx3FM>637rM)1r?lP~UDV8J zkc-?2skI%-Ixw1IK~RYvH$qma7Qu&0^x6raQ&6r1d=ENSG0A-*OtC0uy8Nh^MbyXG zp3|X4`-oK?Ayr*r$*sQ4k=;Fo5}}eq41`o0OoQ-YY_lje9EZ0E=H7$I7p!E>jR6K0 zhdxe_IB|2^FAL6fAvD?;Z4`zML8{f20)J~X5XKo(s=1)&Q)IK8Iet}ql?@h~Jpog7 zW^&{NoXBd!az(rS!x9z-`qEL6r$(mBHng9t)J<@kx>JKM_!uUjRycv%4$z1 zL`vK7|5xSvv@gj!SjWC1`;XLGLolsUrPNSQ-qGR%Fe@`s`hXbU%98H?xpcvWi|C77 zAgORtXc$aHZg^?Pk;z_&zEZ8^PqwFros*p1PXP%cB}H4h7gKs*7>rV{a;UEohJRzP zsZz~-aSc?eDj`8LLbk}u zBGAN?uJGk+@er`8^MZT-<~tXF@UPA3oV33o2=L#jz2?x-|j513Yjh{%|*mU=3il$u_n zT~+IU|LN;DFX@*NM+%rDS{V9U{%Y&h6B|gsMQ=hRS35fISn&X+Z2UvT8+HBRieojC zfAjPWlTR5S53;Jh{&6~9!Z9(CR>VI*kUK*e^sO$__%eE zXub1};0_4wj>5CRB;qcTiR9m-%a6*L-W6sfxwbYH?}3`1c2GcmX3sL1D;DIdmUS+w z97Iqt?5+K3^*sXJOzwVqx3fx3V~3is7)1Fkmaa zYxlypwV~fu@KlumYy~Y>3Igrd@v*L|AKma%^A|;Qy$f%1_TJ_Qd6>#I5$u3*WVJY} zFB)%-xfE}XO#%jI)JA2G6_Yu~n3tRx@~<%s7^7={Swm z-fOE#3QX=Aj3wSafcz|Z-SgdV6u|u#dOsv=+01)Aq7T1D-%qCGCYi;g8}y_SP1r1! z>f1R*?D_P~pwozI#!4rmZNbdGOP^p?c=cY37Wk-BCD{e**A9mB7xC3j21-}c3ssIj zM4Q~^zN|K()y1`P+cLCZu13D&i)mWJv3{UNe$ktS+vw}z6KhRil-&s<2!>W?w5$W8 zoi>WsC?CwKAt*{!I9uI3n)vl+7*Rl4|G0I3SS}j;Tt4nSpH8WJdiZT2QY-#<6Xj&q z;1MMdN80c%c>j)Yemi)>`@v%kt*{%vSDRnigUpF>x-DZt7f<{4_$Y4M(#vd>i`*s$ z&IXPNER^<#kF5F+iNr2k~lD#<%Tn8AI=0J5&;|Np6%*;p*~{&yLRUdbQ)mCzRz9f!)CWn zl-kQpoLa1i6!lTxT4M81En_wiJ}y9$M^bPpD!q$0B$q-H+)KqY?`<(8%H+OYW#=Gg zg9gxM`uH?Tqe#Z7x6=%#q%LekMd=nzFPlxwf@jB^Jdseg3~pB!X*I7cox9>laFJ9f z5bE(8af%~vtLjcOBaG~y?^irgL|cPqBEVe;)xn|qq~MqR@QA<6obT$3-CD{_E{dD&&JgkvKlonz=zyOUIk3JIvi zkac)J)ueLxalh58Bhf4H_nhBJ*e1T;eK9Ojmtx2mcZ?eTNU5@1TFs3I8SWaF_kGQb zFF#(L_zc9lUE^T%WqYd*duxe(v39Ivy~0KtMH0s%Gi{iU)0{eSL}&>~vu5gY>iZr| z9uRE|qRFG-hq;fPv*B=4Py&9eTlz-Q2?v+wDj+y+f@dNR(&^3OT6^TvdZdOfc5TOr z1%?~1v^bOhXeq41E0hZ!=;jIFC-7KR7=m-um?Jbo|#JmBA(JAmXM^0${SuPPz~U-*)U)+&pZ58b-! zIBc^~EYm?i9(fJ)Xf|d{2eLTo}U2m)2I)>AvYUc&n6UVM{GLrlTj@B1Hy z^MiZ(6=AOEdN533bB+b)ctgaj(5B6$Jm}R?#+f(esp?c~ZF47+B&nWe%{IF83Wtfp zgHAv49Y#9Y+ddu{dVm@)O`d!hDIZ2aPCm)V%X@m3Hfa;?!QKy!e+3&3E2fk@m^hX$ z9O`7$!47Se#^I;#o=sbYo^6k=*gdhZay}{!iSVA!0d$X`9gcn~F1?#&u(6}ikVFg}fYlpA*`J@&sg4*v z+`pU-Rnt0R4$ZU z&m+nGdZ-BU;a)79T=Pe0$TRbO;o~(qZo@8L@z9H-D$;gH;VdJs`5>d`5SDBCSyk;QsIZ?HN@Wyv^SRuqDHT|2hWYQ7eUJm_WdVvJl$P&9M*3MSnc~J zJl@PyzDwU~&H53I)OTSGzjLH+FtPUPZ5(fG1+OuSz;cyB*=z6a8pCkyJutld+`kH5h|4P--nFv;uDN8Kw2~;6Qw4 z{mGEz{bi+#bU54l5IP8^{Xi{P-!+Q1qH4q-#~~wOrB`l*K+jA`y)H<`x8j&Bg7WOE zFdy@$$V5mi7J>-MzlAa+r@|x7FEVNrI)7d~Pp1-TNlFo|n>C@pnsWBFj3N!(P?%DC zQlFX#`kNpkU|kd?CBeX+Z&X+2U!_$1x)kk-$I+Tiknx?sS&}5#$6fY2vag`;lx#zx~6?*Cp)DBtcMwrN#P%o+0dyk&W59 zRzfnkN)(+71U=fRF*m00!iRw)q=YDnIJ1WBozae2jEJNTwE&_EFE(zwpWHhqY?3i4-R+WGT5zqJmuT)nvQuK(Ry>% zi2r;F+)pEyrAoFPFPb&cc z>v)K2_l(7vfxv&G9moinFOiG}GpLt<`PDtxN;&2)?$*@>B(yU}EVWEkAqq*nhHgxW zGF=yuSdZ*mxX|c646DzOh}3u84HX5!qE^PYnb=`d^=W3_NxGlD;xPTK8ElugK&Lu^ zN!(thXl8~8k86+&tei3Lj(p|4rANY;xppn!97xjIMaKL{kn)Ge89CVIcj4amI`6dr zs??f_m$O5%CdmPR&k2aadtU%DZuFB?VRQEu0`>mP#FI=7IyF*iAile21#(K9Yf9GV zLbjj;h9B87D795@9N@iDuilADt{5K8iBeOg@HYI{pUea4sJ?`D|Eq4OqBxy05!Akq z=@7kyv4-l)y@Xscp`eAy^wSZ<{(xm@?k!hyg z!qHauhL1FjsFd|mQ?Z|#8jGx|{|>O%Lx9uLq~JWpXCH_G(*pWi*Ivu|TK?6Ft6j!2xmM~~c5;hVcU~o@y3OMi z16XCFX$Q6^201a2Sqk!?^5iR#RlzvwvG^?Zzm%N$%fzV-D|Vd>G+RJo?IkXV2ZBP! z^x&(4<{-E{_^a^VTK*h}TuhUUB+Guh={%kj6RL^pD^peQ^j8-lE@G_8BHGHj8X%kM zN*C^rgPK33#U|CVxs5S2#1?$PtQH0Egc7D>bj9?IDWtfpkeC6VPj-KWO%yFCMjB9( z=bFif3y=LN`j-;h_c8k}WaeH_d}&>aZpemZnA6?#`K1phPO0Ky+X{&IVb&%D%#YI( zX{0Vv7Zjxl{}CyjdGS5c(@{$rgfAs^%pHN{?Kgq=ZEJT>GnJ)0yYetdw~L=ksTYId zDZ+!r`kV^N|A0I#x)q7rb*5-_C2WC+TuaH$9Gs6S`>|4{R7xxee#n%h(-cHGVqD!6 z?6QxK1@h`7y;`()v4OgKz=ASD@1QFzX%_7qkne32xE+Fht#JQ-p?>=wr-?a~#!;al z!JEvmSD)KLlJX2PCEyjG<2tnMT&j=DH1s8M*LvX*ZfT?>Qn#3($lThGKgT+4racE4 zA?yD9sTlc-@^1XO*Uu4LyV0nbGS)&gZ)2tYjWyPDf4c0Ett?#u4Ou;SwxT2B?eyD^ zhS9wZ{q_?=9hvI9v5s7vS@}(7XcWl?pNoAJPHwwxSA#B5H?^6umC;#19u8}!U1*eu(jh;m@ zZ&ny#!^ss_Umb58B zm%%&)HeJ2t<^O9YX=i}`xgK^yVtiy{k+N|Zu8mC8Zm%hy+}J=PjU@cpNg9Ers=Y}{ zpJ{vVHVGg)#N_<1(o+tU4!3%}lmXi!LPrq)wqf6TggTi>j1>Q?>NOtxmX^2!8CGb0 zn_6c@|Im`K~XFLCN){B6KMezoIj)BKd0o)aL=#?_UhZ#R%*Gb zkrpQSDuYYJf_Fb}2_|Uq+iTC(MKe}dd3KYd+D%hF~7*KKRGl=~vQF=ZM|^;EEOF^_>v`wW_8pU5vR zA%*8o?}s1XT0*MWe)@Go44+(4DsU=7eeUe{_y%r$H6)+eDe~9_jc7C&Z(4$>Oh@8t zkA1dC`GRJvjK-WTnSJq)0M1O@A8l;q!vp0Zt(l$xApUM~{*2fioOHE(P1)_Ys$mH1 zxT{;U>&GuDXf(oJ!8Y00f}qVMW$}|bjE-%n(32lw9CqEM$)}21tQmk3y=2EfUX1i& z5ZC@>ak4ScX204sW@=}E!(uoZQ~VR+T`=5Ue{7a`|aYGYMR6a=^+xP*XaU@Hj)i2T)Y zykY*dN2+h`9K#MPQD+i)0qI(I@oPBSB4*sN)urD&2e@8>b3O0ug#e!{r`R9;?F0JHn=%^K? zp|d;#ZPVSF;u?}G9>SN=t@#Ix)gWvN#G0~rZ-PNw0B1b7FGeQj{TZ3fpsKH5LmnHm zqezZF4F3=IIr6t(ak<(h9tc*81W#7$wbo-rvW40sCPVBd;SyD@T+fihZ=E+EaCsxfN(}yB~=jJs9=z3nUZR);j4q{+he+r0>K7otip9 zQN_+*Tny}C?=;+Td#fYY*Iz26#$9e`T^IqUctq=4NfMP%^#4+)#V)&G z;l8q{4zh{7uHDf4W||oninV0K1etb#pjj=q!L_z^uim2uGP?Z8%42_R2Tz{KnuV@A zrjp%fqzKfh2=K(zCn3P+)Lo-u+_0f*@m!&G^zK5S#PpqadeYCjH60jy%V7X%vtc%xdy7)MptvWJ69#tH{>~q-~xhpvD@A#K1&pnq)&S**rl4Nn?&IXDp znQ6yJ6=UF%!#UCC1NWm#Hg#z@2ybgw2u!F2w#=o9;f@ilRcSBAz)?kf$HPv%wj5U? zMocaEqEXq;#I>E|-KU)vKH}!YO zIWpt*vi5{~ReaZkIm>aXZ;4od!7M@*u`Ry|5b;W6$VecJLnXwGeKK1v8+(Xj_t)k1 zp?KY{$8Z#N$JSqs1^+;vvF?U+(Bct%W~QWEYvzf;XUM#L%dxxt_TXHt97A+BgUU+m zFmd#YEb4OcA1h7J{qops81Kq+Vdk8xcX(!>$tP0cx9s4i#w!!?>KoM(&odJW+Hrx= z^2YaMoja4P=phkSVz`+AJMST1>R!mEID}^3q3FCNEZCwo1CFiaD~V8`)_88%zQ3YB z`7-TM>v8MF%KQT*y@`^LWg(d5@^v`g_a^s37Jt%xdR4#9tr@f_HdiS2)I_*~kPaq9 zX6zlsz`A|w=lsArO9mRBaLgP9@oy3?%zdgG$VmsMl<3k zM*?h#S~oR2vc~>NvfO@GzqOiQF%1>D8dD1$kfHNHG^z^MT2Kg>SMDyX$8UC z8ty36c5MU+`g<#F_(lNFojor;oE7fo7Z>S?r*jH(u_S4N3^9&gFOnZ+X~s-}OjD|2 zIu6wDek5vy{^BjHJM+;Rj5 zPP#&{x@m7OT23qQ263I^WM8nrUBJQC+mQpfcjytP10)Jm6_a9xf0H*qRNWUWY9!WZ z1+A`rxdjL8i2^>vNFNRplxYlW)^IhqK-4t-;Ny3@1a5%jeE{~a{?>N$m#%iHQOkc( z=X`VHhTrY?513!ET{4zx`2I2i)jvW(X4?jI!uIr>WDQ`+<_P0YYLCUz!M?+EI9j>P zxdJVS$nR+q?>uFDI-M8>V(0F^nuWKG_S#IVgLE9!t!MOdHqZdyhNc3?A!->J;gMY{ z1e5AwKFHItW`6EywlboQ;Jvyt8T;n>sQb$ONg=fQ+h6CS7F0?(nGj0w!b&)sxaIC& zz4CQI)n1=V>j@9nPcg}g{!tt_t8uJx@3!v9f(<1o>xFdw5z46^$9abHCB}}u}$1;dVB0l<(0??o&fWTykm_yUFpp8!ucQjws+nrtoI zHK!>B<|vhdOr;HlduwrzJ_C(3v&-^mib>^5(t&Zn6c|! z4_k*>_Otqexg`}CmZ*ZAEvPT&`YtJIJcHW<`}OKqtK-NO4|5Kjdur8ULPod1V0GbZ z9P*%~&O=Kes5DEd^=d`oNBf(qZlVto6O13r=j`YCYehhAOO{?JmoJRsl$sWo-qNok1rd*BAMT!ziIm;^@C?Mks1|~-{cVwt6?^c zNO>sET;SkhI$FjT9;l7IRoU;pbt9u8UPU4_== zIolpg=x$^qeZsc1N>984|09E$dAP|goYG7KO-mc!K$V{MMlH(8pFA4)^`O26w zPl~e_pXpjOr5CGg%9L-WuP?9 z18WK)%)(FiS`hl>y+ST~teJWtCK&UtLgSlt_j84lh?P<3M7Gn-hj!%&IbJbiJWed| zvHvi|)(QAS`a~&9Qv)0Ja*8MBP8M=;Q(RmKERPxwGW#c~^bSEH|Hj}BC66bt64LFr zUxw-pcU2h=JR@0;Ij_U71I&UTno?QxLn|UuDVjznKWN+&Rcx6Sze$40nmTrtV2Omn zfA)-^5|ImBpvbY-xeU^LAph8Aec#ZBvUGkknXHJ5{#A9O`Ast5W{SewI-d4!;z_ZO)5;G(jCJU%N6x~`H z;wO`H_UfyH5kg)PwCY?BNL7BQCm4B(>Xaru!|VU_yyLo#yxWSE*?Zbet_$)Nuiqoy z1m&w_1Bc&=E)J`yy6pmfS?kQEe`Q^AwTG8(h%;~vu;{$z7w_;qPPCv|0|WyhUf24j ztWBKPV1_Onq0k=^T8vcJ!6=h+ugFXqc7S~Xx+w!sKEx-(hlirWwqfrZVXNqo{fik4 zc4GBn8KI9$8(3EHccgfJ@U#^3Py`J=e#uV!lTUr;b=^OBrD9=`^(9$J4oRXq@QbB=>t)hPSv1?t0tLwc|$+*v3UNkrDpk293}qR+ap z@KK=EG6sy3uvCW@KS^RuCWNP2i_W8?nEL(62d8pbAoItP8e0z{l>Y1I&{^^n4O6VU5+*3EmE=1#AtjG~ zwHQuvv}O%duKj=%^P9+jax1Orr#-U17h{La*AP^V#WaEoYm~&SXpG}lh!H1gMwuLQ zoZ=Yb3+yeQ_2uo0iAp8r7+Axb;vV)jz0z<*rWxk5DM4^W>akrVzkr$ZtmgU4P$?O%tA~h z`s-6v>NTt|sRU>K^$&&y7=abo>;BM14nC74A~VU`tDzRogj~ljnETZ)T^}2EeA>u=aMm zJU$|BV7LN_v7+&HNf$;j$iU`?|Cu}?70@w@gMO!54gNZSJ%C*{I3z1JxJ`tz@*e$b zb0wGfUT;jKpVvTQVspA6wzj%9k#H!m#>2Z4Hk$JM6dH6-?(8h$Nrx6;U;h%-E{#dX zyFm@Nu*cGC=ds?&{q1{5xPmSAMN&?P9yDxXRFaam-#=;KyU&keo&p+aeGVi0aVv$< zCzjey+!1z-(I>KfgR696;QCCa$Mn3@1;=AY#x?-)DYRkyyOKqNMVP>?hOx9npT+ir z>Xruw5#UW%58`ysN`ho!9l&u;xD(DCT90+35CpV|-{4#hU2kC}TDt0x; zjXYwMpi4u4FZC&#v(J0{F5tmi7@@*IKIgGM+J6v8q>pmwBveG267s+$(Gcj7M()U_ z$`sJ?)}AJT#-4>;DXnkpqxLsBs3?r`05iHcHUfVFho~c)E+#nlE2TDwM5a{bbmOWo zDxM>I;3>%|2h`r`p654C_S{#z240~G(^1H7;!npg2&hL~N{2+Wm|};p$C!%1Y!yFI zXTnyhZNEMlw_qZA`cd5%zko|{$C^tuu6|p7F@WiD>~>O~D#Po%bJ`)MoGyyAz)H!c zn5KL15RIQmXYnU%N`6yMcc9XSSdL`fp*s)kHUCW9%fMk$zFA|jhjWg4mU^x+fk=Y{ zylif-49ua0A@d(&eXIq-zU4hJ0P6kz+Mp%RsC!&_LeX`C=ITE6MM~^DBmEO_b;e$> z&Rt~0qv`I9XOxtO9xu2U&6?F`2_iU*Wsi@|`mq;c>p~e*tmd95Uj^597lIPA;%9v7 z7W%v}dH60(Vq50WcO_g}@fEhMw-JImt&|@VKVHslsj(N|QX5@amQqpD9}PPH>!+(O z4LB$ATq~rPgM2Z)3sg~R^%sINjeD4^b%oe^9K4qrPg1_4m~Js0t9}oTRVqpupoOFN zhB*PF2ZXU2`l2%?4LH1R2@vXlvn-khJ(M@ninp1G^r@w;)XC3cUtf@rkpywQFlUe) zKYQlri6OA9lKJi)ThTqmqJxyM7TBAYO#HiTcB?f$( z!)qqv9Vg>G^5kCmUopXzkDkuAU_?9CV~d29u~Y9C<`dtyew2z&qa($A)sZVd%N}JQ zh~r^v?|&Pn52jXr0%JoDQLvbayO#(r&=^It9g@Sz3QnaeU0g?@Trc7rs2o`|=4-t3 zE&jC(ozJE?5U_QlTrvUf*2;My5#JC7LESv96fg_FWIm-{0|mMY!zqyVJhhw?oou^S zD|{C4+XS7C9vXhTLSKX7-74b*TIq_?m;!MjW;?=fDf{m(G%>F5_u`;HJvS{^Ab|sw zRm|J7h(HM_AyFxTwx#&+GZFzivGn0~@)fnL!}un>dUgjSRUW8QId;UUl{R0&4!H2f zUA%4)Og$nsvm+C88|b0-?P`E>QJ z$_)~Cf@;lPGmjU=4Xc2q2}f?-k9RYVTZvTrg`kiY#sO99Q&`Ty^$@uqxt;1nRL_L9 zbTExu6S?~qCY{akU%vt;nXwlywYuy)9J#JjIV0K1oD|?IQa4CLT8^0l<<;J9hMO`P zd}uL*O|Tio*25fVj zxa-mBRVN@wTG-E(H2!UxVEK^Xx8<#RTjm$|hNm#-7%?DU+TrL6Jsoqk03Y-vi?Ol# z_{tK=7sWb5Dq*k`ujHzMZGV?eC8L!$JWs=svri?6hAf)`+3UI@Q;9m=fgy>z37{}6&4AUP~ zjx-xjQOBT(Gb%54Mc>2O;`izePiu_eEDq7 zUf35|1&8*jPVUVQg4(ARFiX1dgj&rMX*5p&s|wafi9QT&30l&;>@}b0g+lRV;(<8l zN8j|x>P(*$Zr0R449cO&_K^srMQlr1>nq_KO==vzSNd_xzV2;lw8=m+$i2u7@5V)3774wkf5okYs2rT&WBh@of{D~<65s}2V}->hW|$Y{f^GtOHa@$(h8Qz()1fxiil51nX4B#iJG$uk(4-X^#NmoN8fq^=o~`40L&kYdTr#@k)HZBuwqX|3lhyv ze@R;yu9KX3kO%+ChcwZLK}>ebH`~0I?O&bkiivio&WMfll>m5{Jz4!+)95U0yRb~} zgR8mhIILUKQNmH#)O(0%6~N16Jcx~eh|jK2Zl?q6iGdPNfp4-JbumS1t@dQnsaGbHW@u(n!D5V4F%z1l) zWN~S3d%(NpTB`UoFOViYqQ6@CDT3k=53zeDZCAa3{+}SSf{2%SbCtm57}p2e-_*J5 zt*0DzThPOoMyE&u%dS@Znr|{efVg3@jo4+U5^RN=dxro^K?nKn0HLWz`xyNdMf~4z zt#IybOY*N}H%u*iUnt9Y%}>Vuyr7_^$dZmXbam}$NHrv8q7WtA&vNyrl!l}(xIa5u z7@d%SVEQtKfP748DbpN&IP(D`VXBS8I_;JQ_nxM{j-8&Pao&ghMJGqChR!KGo!0jZ zKhi$-R)THHUF|OqJsbS%&fQ`9nA$l0MXnWgeRaz47v-zBDUYs3Otf(p{FK)X)2XBf zbbwO{JbGp)S+Y_^(G1`r2RY2xYRLIN>Y=3!+uot}1=9$ok4)dNk5`?GoQ2DNe~ z(eCH~s@UKViqo~!JuNLWQKQ|4CO--Ul-|OcOmX&FTa*L*l}exJf&h#?vybKL{_ zn=Lq5kQ|ei`&Mnxg$_ot1mH;_=a}j+HGqte{K4LhhvQSRh;?e`)KJP=9C!qfCGrKF zLoW%;K~*8!JO&X3)e0O+jb=#Ox6eDC_Ud zex3{=OTCxzjVM%Txc~Nq^b=>L=%wmeSU*dLEl4engxgaA7uDP1?b)9lo5iB^vgxaT zagux+<{ClY0?bT?cBWcCN104IoFMjZ<-Yly%3>gX<|ETC51kD`CXqlEbyy(-SQ@mOmwnC$f5mPVXEPQfBatfsNhXYpOB~OPXjh8jD`e z2bnQnd`6jCHm4&C&>2^Y`9<2ifa4>^Q9V(&D=P`}1&^^hZD&4W5|1W+(t`2Qtarc{a3BkSD%c>+PI@5V4|HMAjn~R%oEsnAg9yR#$cT)%%9@ur0F*Esh*%`3^7=7uzi-{ zh1ed0Jpb>l^D=&z*y{tvCKzQ&OJ|8!>A4%0yKgjeTq4Ug8{F*5gF-X*QTj6w(|Ca3~5&pPm?S{k_1H=7`ZrW zgOd+)wR(8`!X|q*e^6M(3$=*>A9R?ALpy7+{o$Oyl1et>&=PUss1qt^JYnQ)97bK1 zbSjwkt*wzo-lcKR1FE8f!b6f?T(bbtGow^bGcJ}xu3tM-nryG}xntW8va!5C-->B! zXwiLfkP?v>0>dvL|GNX4=x7*i`(RWi3?`xs{VgeQgTt}B7;eOOJX!eBsBFK=!H$PQ zCA_Y|YpyU(9M#b;u=O10kPjb?DlDOloNY%%D#eCqGPYb4p?RFs_e5UeC@!6X5fp^@ zHwxUYp!{xlT)wPk_)G<0cSQs7P=2&NT}^?}iLDwCa3;$`1ao%~ZS;!bp5wE)o!Jod z1-7S1yE)#Ah&HEgAOj8sJLfM-1!+ip|0)8JAGu57;66Z`T0nfU9+w8?Rcm%C-ow8$ zoxiJdG(@GR#L22rAyh0U?iq52*nm%Ko~48|-c2^!hFxQ@Z_^T0jLKW8ey*sGU8E}-yboqyO6hyphEr5`{^pPbI)6DM z2Xx%E4Df@rpgevceTO0pR%5A)x#-ea2L3S-GmE<6OfPT|VZnc0TtXnIBhO!wNrU}t@Bl>XMj{(9>P9X>%e~eSa zGl~li{l8&Sn=NeZe9Kj;rqs7JpsP zHE=2mNB{CHLci%-(d!GqeU=n=u<-&}t|(8l;A|&qnPhJlha1d<(iEn_Q92%hI$ zxW&5Q;R>}zHEc-FH*$};1X^yos3-_&DI6Rg06;*$zv#NIM2_yR$lW`W@M0_bDsj!D zN|`hiXx2H!ZPVI^!M>YR3E>uXL4NII!uMdJSUoc#&?rCF8|%=!!ob`aCPa;6IYACB z+mhkknS8jqUYpS^J*NcL&9grZ(l8|Amw&|GGRO`jii|{wxiL1&a0HzJAd4{YlM79@ z_d)w7E5h@vqnHg-RL<^Fg*~@_mu(H79iE!-s2tLfJsslkM{xswXXz+V>=Z4#Dx0ug z1wK(syMswldN>&=eZ?*azMt}mxZcvcQ7v5z3`x1yPx$;oVcS~%Dp0fF+|S~4Y79cp z=0?tnU5hfie2$Vfx24#0Wc+_X<{T!W6~=1ZWOpd68&tqofFz|}Xgb%x&jU{;S@cx| zGJ*3Ta=5=TU!TI?jzLRTN*HYg{l|u>(a=?4D~3-KDs3v%GihWIY;&qZ4|57K4CuZH z%w-qhcXRW}S@+tmDXmexI-^x-1NgrdIo9`~CfSkU`=-8+DC`UTL2aloH2eE@JD+2( zzA9F?;-gYh@0)2 z)s`pgRcY=H@GR_ zwLaIo6j`HXJI^${)_+ezrQX=nSFVZp%$ww-vj`FGJfL|r^C~F#NKOSp#=i)H zlLaRG!+__fXIcn0%)Ns)VWq<+Se>gm_IBYJOlNFAshFgBs-e4V;mS*YroFNHG@o_F z-4aO~=(<2&yPdmQ;G1AE%_LEE*jsG!LSK5)qDkw?1&v_a&`y*%PI0}}s<@MCES(*s z`ss8S*jpv>2QFAuiOuHDOb3JWS{P)4^APbDA?DPidHflkxt{a@4gW>0Iy6WqaJ0Cn z1m`tWFEikZVjA-aDOzsZ-6+*U-9eZ?8_Jvi`jcaD{8q6aCyvTwqjT+ZQCeSK0VOCO z8!jN3g*xJW4lI(Wdy(A9zl6UJ7ZtgUWxK=<-XEey=#e2EsmpCcCL|q=^*7+QhBzzZ z@nyqup@Fn80n`%i2Iu40lXoyRC5}upjMHsGq|HG+dOI4MBwZmy{Fbm!(+fhxT@^`v z&5f`GFh>}28w%U5OdZJY?@}>l6yw;~9XW{vVFy20>z7uHp`rTIegvY(hu%84H#O?) z9I^}|9ORK8HVjUG$yxmNb_p5yFGYzCk zIJ?(PUCa6Jo+7Vy>VOhTyUNFvFCPOcNLzS8G_5;BC7SPmf2Kug`WnFwl)|MiHw$-q-;lA4;LXV}O!$_T)jF;NCYQrA|6_-b{3h&=;MYUTGmew8JdPIK$7z>67l%R%1!wzJ# zop}K3f~fte|3%jgM0VAf(Gs0bgOST&9W$Y9Wg4WA2}}*y*`rEC2iT`HmEUh}bT<;( z5vk>kSwMwkX(hVyl8C1GT@=nSMn!@97^VmD%cR$y0T!A_ zUMogOA>i4e~mL1SmH<6$@>e>kZH)&{o=dlEOQKb*EdmmPQ^Rcrw=R4DqF_+x> z^Sm@p^a#}E9)KpL9rHF7rdk`4k*-Hj@y0zhh>GJZ%540Rh5or=)7`hPi~p< z*xCj0*m%Yo1d9wIiR&W&Yn7nPcdl|ike8K9@!$MiUXY#a1AyQvBO0&&X4l34hB4u5@`cxhGgRajx5$Y!+P#WV! zWzNz810E6SNgQrHT$Bl+S6w)P8Uf0)b=;O$yDXds>pSGL`yRn##d3tXpL8d{>+-1< zwj5f&8AAqA7?^ld+>LWEg+NBD_@rvYeZcl&sQbXRc+87^#~6jhNI@w4 z4O}r$x6DI<+0NWFi=LzG2(cunZs~RiN=2yjQYbDh&k~?g-%&Y3()IylPONrtT||`kYwl zv-?&)nu7h@c#I=&B%fUAf}@>#m&Q>j*%{#MNpbrTnJF2yJ?uk*ESOLfh`Rc&h-`Im zW9%NvsUb_i1sqAyCgAZawulqKxacfV>j`~4|AcHMl{aM<%Sr4qeRI_uW!$WTTK?=j z->ZnAb>-WA6WeGGI4}+(VTgqlUU625Pq7-6blML2AH(DeUDjL^s$i=#SX5Ht<}}5k zGst7f-6`B=C;tXGq>x&OSf=E9e+O=LJb;m@bhOt6TcZweF1%Sr-Frj%&Z>!!jRw^g zL{^&k6`^+>1lYhk6|kR{JGB}nA5~NRE@f5VRq$)#zl6BOM4{y5GSXM34ozU z9@0KWh~h~;DJe|7P)wa}r$&9Gk8%;zqbc|Fg4BF$c>5SR`x1g*uYoAJ5UF0S8Enpu5&(w`x9Q^l62IrrZ z(6P2~e90pEJ@-#VBi@MX?V>4)l5=qtrQKJY+kPdqD|tra+a1Muc?~S0PU@DvMqQ)z zB|FcrDhArEw-gB$DCi=W{{Rxkd|A-FDUiL)w-dlR9ZDRn!mXzKwPT5 zGsUmjB2>Yu;e8$UFhi>5C3%yaW9mO{qjje%GYX;BT-mSkG6`Z|ke2jR;Ij6Gvr~>c zZ!k~LfqVr9nh;m+LG_f)k_Jn)nIP*Z^o zKn7}Y_(DH@C$a~TUJ(H^aa zO?mccH8yqoxk7%L1?}$xoRMg~MqOsvX@Kh%VQ-u>QF=aYYja)FhcW@ds z20%<6A9%4t_#^+`r`%4HK^y>NIr#}svnoZU`?I(n3nGe-paExVKF>s8p~;$T3EM4& z0=2c~5M)*e7n1e0}dd z%UJI&o}A$@#fAk87!iM%X&#<_1Kjre=Jj(TSo=Rr z<+%+`d8X1UU-;&;egoCp9S}{+ih3YPu|4*LH;x{5B;!NinPuIjUPl!v1koNrm!AKNyOr2qY%d7f<# zH}2E%D(36%h6s61uq9eqH^;+7O3M=VLmC*@kt#w^vaaJa=G1 zmQMKG-21C2UWBV~Q*%O%@*3p|lg94jL9D12+gwi!mUa+*qARSY8A(NOY;Cd&Cl%Y| zatQG7-ksl^)NTai$#yBu5c|*PFrUfs)&p8-(QX>G3_bg~>-eC*w3U+&DCP!qx!fB~ zUbyhZ{fXmc@UEeWKz{Bg4~E!wg&;wumv#9&@^z4VMfyey@uVIKnkwmy8R@Vv{62<_ z9ubV*33k)JZFtPc4#!+fi{xp?#Wi2aKs*WV8Qp*k_MWp4R9h!ZozM<@>Q^(( zjS2;NB-tlKMN4xV*IM2i7dDvwPy6VV<+#guk+Tl7Kwql3J(jSx@0BqwuO`64*^vEL8A78^D{%~TFS!b-LhY^cKnsBwQT(fal*zG_h(KeW%crdOMI zv4R|G(&MvsRtcuSO-iTco1nCi;w7Oh{7sL@V{6@N=25wP0=}_;n1r*=6|9(~v#FKZ z$ppYHbbyKs=#tX6aW$&mj0jiz!LI6j(2TL7Gl8%(#MK-%fbw$mi{^N%4U?p-0_Jw_ zT!JQ+ZiQ54>zj0Ga>2FY`YxG42qVN-E-*6!JL#XOuHf}_Z02;8!TJ6 zMFYwiDq99T0WvAt0$!M)j3+NBR_BjD1ciesRzq9zL=S%+#fSX)3@XIdFaKywZy zE1j&V3U+7LHCo|G%5U8VZ!Nuc7VX}GsE;N_v@jPw@PW&m%9MuvKlacbLkED-_8IS+ zeyT}1i1&9?{QABjPV3wM5!_|k&M&%A=}e7R!JPezehnBenaKrFc5>O9@XdQQ{@CoO zwz8m2v0sdLNX26oM*SPt>#Di}_B)t+U55kuuu$hz1pr{ZUEi6BstLZYKPfUmQ(Pkr zJ-48@*gz}vE#`53z=rgRE6DGIYoY>Op!t|5Q7jC+<&mI9*@LMt81!<%eBPgV8LYp0 zZ^mILh-CQ`f(&ZM)0yL^?x%0gAV>@TW!;Xx>_Tg)PCcD7tHzMxC_S%#7j5wjQ76L5)R{1w4Uw~Ql*#Dy)*S6Q%Au%j2T>I6I3Q0@Ld%O?Hod(| zgIF=rQJ2;`wJk^B57AkY4AgQ9Gh^ecyAfC9@>Lscr|e|TWPB0&0tn+^2&KHvyWAFX zcQ(7)S?d`DE+}}bpZKX*G2A1#a={~oi(Vez?VMpOkm&gBjGlo-DR2G%Sy0cX?~1;k z4X;J_ex+AI-e0JhmW;yKSH36HyeoG!yiHgHYF|*w(ZH5$?sTwxu!;G%K}_g-0{tFlz=?e>7OhAmW< zL|t1s#;2@XA%xDKY5JlH$$^M$DNyJQuk(Cs+#MzPL3EpuHP|8HYe2`~k>WIE-TVxo zP>$K<6B)*IeIQV**w?0FIv}cQE?R2jV|1d2@R%NePpvAgBQ-+SUfpR+>pA5p@7o%N zElHNa8-y3$q=di$Zt`1aSvhtd0*4^PzfE= zNWXxKP8P=)+4p7BHiDaNa}JEZRopDXl|=Z$P41jf!{ji%)la^#6)nrf4HtQ z6-b2{Q$3p-pSTk?3!pUoi7Kv~lg4(VSQiJIZ#36uv$0RZHPlk)FLY_iy4Eq2Ehb z`HCX(Jhou(ody|OF zm7NoZ=V<)H;EaIW286Ed>zLq*=R^w1cNORi3}DOQ(gBg~v3>!Xb`%rQ%o%`c=8|Om z;-}|)R$X}N*D;vr=<9H+*qi?5sn*YIdT5%`v`sqUPMskt%dPd^XZmnXbJXUhGOP1x z75KJI{0Vy$89v1rZGt-7ljgLi6Ot>p7RjZ1ptLiXY8X`pqzZC8P>%vWo)lShIeID| zIJ^V+T6`&GD>EG!Hhu=YGK?I93BEDC)Vaj1^q7y=95Byx@PfYKJvBZO3B0P*5b~=P z^qK}!AWROmCC%XZukWg&Zm0{CCh57g1$nA4iLQfY_M;zm=Uzgn@1zfRVB|Znd9)v} zG3%?A5WzT>{iJ9V=MBZ{_C<9ZLGm6V(uXKXfsx0)`?VS;i?A57a7+sB<({KL>)3gN zm0f*;IfO~gS(WSF7Fc@ETMEoJ;Vcrx58%&6D=XI3?CT5PA4IC^>}?%b!5&>9!HoK+i&W?ukhVn2%O4&M z(vq*vPD-ovKTsUIHx*~kL!(IsUbac$m2Ik{6BIUD+$LM=fvWFLpGSGUFZMx^lbek0DV3f&bQrd;(`qI^9l3>oWA7 zLx!-;1!jhc9fV2>la5iZlD4BF*tt@%ywTX09)4P;HWz6If>igQ2<8}F+l1TsWq6%{ z952eHIj?NENQFGhs+lq&Soi6&?Gv-ZJ}eU`d}K#Ht0jBgC+}>E2T2X zmCQaiwM{_0nT9GfEZc8gXvARR<|y#Z!ywrSw7`OJ5)8!qyAKVYc|Ao7eSJq1@kO^t z=q0~k&Nj^6!sgKr_>Y>n%Z~yO&-R`p+Cpr&ba9rr$)t3ZrB5v&7I6Ve>uWS0Xmt@A zcktcO;JvinW$w^8C51hfb%Es1LtyfhTRR{iW2;~}zgdgR z^SbB&g5jrmn#nx9ZJVQ9cj8#|N}xGTWKnwuRvCWptQxhuQ5qao{+W>D%7n=4^<}7usn?Vk8Q(t%t+)DiYqpfk6HfSZa_OF3 zw{l6L8P!b!|Kk39q$A%PxqDW|{JCLU`H#mmdx7oQ|2%4+J+6@)NS-@LpOU%8 zrw9hS7AD!+x%O{}Lx+}y$(EIFuS*b!;TLMI=s*vfCf7>FGOG{(BSAPX(D5)_q5h>` z;g+4cLqF`}-L5a9%D*t|klr<09c{zLAIbr_0*wEPcd!O)458a6)}X@~l6CX+^N{Dq z>mLK7oTQMjzAkf`Lg0BdQzbIpGp0hp&yng)t(O_>9Dn!WwSclE>hYo+o^NMM?LjHEl{!xv~Fw15u~yoj#LW%|?ZcrJNZ zALOw3ARS*K0x7V-Y&2qmebSAGAt`hzOx^iue)Pg}24wAmK1j|zFkkT_s?wl!X}PWU z)NTPCE!HbKcPnnSFQFvKW*1a>ya#QF81!4yj&D+5mgCB0*_af4#$xs~t82OVRMl%K zHW4fVB7m3`d>cwCduQtgsvvAXz7x%ck>?Z=+PUEnu7%j%EuG|%8mK)k0@cEEP zS*A`+NJ2BEi<`HHfneiD%Ii0GAl<(=Yzfn5dDV0lLuGAVUek${z4v*~RGI^m$;6`AQxwn8sTDIp-^Q+8^L(MY0vT<(XjP9c z?)vlbiv@paO$)JEQ^No(&MF)-fGGa1Cg-2T>Nj3d>kd!+S|Gtr^IIFTDGJMg=qVhD zn{dpmE*{x&F#ks_{)a+US_aLXmQPzzvQeo8MdB57ZsA3u!ln7Z5DX*0v>`?{AlD4Y z`czT7D-Mpy2`y{ACDC2sw&}h!Vp@Fs5j=Er>?uL{vONOLuQrb9dBqcR#iS^d=%|mT zx>lM7pH@01Nkeo6!+;e6)JWghx;NL9l_aT=^K#+0(+);o5biAV?sz50rkWLbnEeKY z_h8yM=X?2%(;ytvGD^CfVX1qNjU|BY~$W$98+^eF>mYeMHc{RZ=Nd<37Qi+Z+WP$ zuWkoM)7-OrpUVFJ`b)VgW5OqF?+lm%gq+5gMgqV2+MUZw*pfLve{er!)lsP#^(NG# z?-p9>W^W3>;xs#B&s^btd>T*!%BkRtG9=Cz&G|88P}%KT0h%VCcih9ras<-?wn>zG zjzt4>#8pFxz_y>WNq>=?(T`_}-svD26w@~0pcq z06qfX1cfLFnaf2v$n!Y05tM1kYVr-S(66J*)tYZ{nLF0#2G9|myPk}EL~6kmVi{%K zB;b4Glsl=B_C77rz)76tN<^d!%1_mCvh#y=NfJ7$3YJ^YZO3j{1aJ%}Bq#4Ro1zow zdg`A8hfG{;-!0VMAX0pIo?<$po20>KoE-q(7{Pn2`hh-tC!;LI92?@@uAO@E!k3iZ z0cgeC`2Jn9%Z{d|49z3AW#8s}l?U*_XXO)e!^!X;kTqJNA2kIF)x_2QL>6~vF6j~K1z9tm&gm_ZF&U~pD! z)ZD{sTZEJs7dBI+J}-1Li;uQl5IyhE*j_&<7&~OV9z6o6d3sAtx#zFf<-;TmsUC!pOegP-$PPYJ`)1{izN7AnfwN*ZB<=1usncmL zfCt5FRu!>KaNE)DPZ1E@4Jhd>INr#TA4lJ?cQA}2MfQ!s^MK)_s8Z<77{UU5NfUVc zmPfjqlz+hh)Y#(;bRp2b-@A@`D^pMIoc@*;r{373mfddjD7)G?(zMO$Di3o{cK%XNNV391H^KXSgi-|>e6^O;Y^fo*3%4` zdO8gCJ25{Kw|j)dSnawiO~J*$Ln`X%g`Uug>CgeAppp2@)Lr++*<3?sD!kJ9E zNG!WE|otHrmug|(uVnl!3smC3fXJacm>&Gn7~047Xdi#VUoNEgxG`*c=P6(363 z7@8L6Ev$w$Rc-n8eO17PP;)6jW*VeyuE4*^i!!ap6xRw&tms4U)aPi3FB(b4yEe0{ z6SOgY_)u`;5ZnazdkB79tDDPYE7%f6pORDt%j%LDh#N8#gh8-&HMd!0Ak{jKwDfVO zz~q9V4A7Y(WCWL!M94+>U9@qxnRxUqM}wM!#$z_9T}0B{dV#cC@OuTNTpWyllx-52 z^bQFS51@+xRTDP);mDS`jJ9^eXwu3mND*bq)@M9tzJnFR;%(Z2@~`E7p5|cchr4fh z_z-Aim}#@c_oW!sOu#G-=(63ze0KC;>p7qK6y zNr+(Cxq>uc?Km?iIlpnAVeQh88|wyQ^VAZlWnveB7L5v(YwhO%992G0JTOKq%^ad< zy*xqje}G=6ax<46%WHb9y*iCN@4x)Bmrg|+T7>V)=miw#Ka*LTpw~dHev`v!38#fS zJ$jyC{%56mX%AA@NAsvWybk-^3KRM}Y5;WUFYMavntEnubMo`CEq#?>64M}J8vA^ZgSrhE$RN;}*4YnJg#-q`Yyr|-6sL}+r9 zvh23w(7#L7p7*loOe&98zOo%}Myk5$>3^3R6^GP_gOIE;Gd&;Hl7NJq%kyOIZ*ub# zcuaVbO)vYTm1ypxEQuL#L|8-tA!n-if_(iK>eH18(^%eTrulV*Rb*4-Ko{C&xK@Ch)jv+^%(i~ zJDxQ+cE?D`HG0yGEfN0Yojx8m;#FZ!XAn+uaYhCSfRI{zsWAnI|HMe3FW$D+Fzj4r zh0aDF;TsS$Ksx~Rrz7=0%~qD$I{a~?Nq6oyNWBxmE65ti6~NP^BqEhcN;p$Hu^m2} ztcFoyC!XEc(>*{QHK)nGcEyAw)12*qF=i?4uEQwqD1Rj7xsS-f4Y;__k^1is{g(n= z&JBu4d{KS~W;^ZQ)-N9x^d0M&32^I|da9O6h}&~fr=^Yy=B8kTf2W=ko)p~qD7ZeL zGGk{O863Wb&j-jAQs%dY2dTdmk}Nl7c6u(A^|pZ1nE#1Dc<-9HYI#9Qvh9zdP>L>P z)L(M5lTLy(|weP7A-7by~^O~z&+%7I~P0&4&1QY1u@ryx2|`5Jg-_HQ5FQ>}5OwYqCV zIW-ybfv)L?8P!NHM;G5-tGGXSj&#U|%RbkNLW9dXC{MtUrQqqEus%fesg%&G3TWk6OQb8?JpMUJ%*eBvKdR)c38>kwvt|h=2v(ynCoUM2*O%S zT1L~CsV+0FvRDWdlvd9P(4dkG zvBB)KP7jOw8mYWkpT+Y;CeFN?Eo~DlEcdnDACm&xm}Oap*51EIoWUt)fhElsc*u59 zQ>#&C$8!M;Xvw=5Azl#w6&jyZH?gZB8@M*-U?_Z4lBUrfo!xl_WfuSXkCxt`U8o#h zdzTc2p4$x+HKp6l_{roy1ES+=m`?{`C#Jjt5XzSX4L*Nx0~-dN>fAvtOg9vTU#-6f zy;%AKFIBrzYBF#JIcLoHCI(6n{3|XW>4?X$u&WvS{~{%)UJ<{jw45~#K(y(Hs!AF^ zgGItVJ4PUgFo6={V)rTiUJEGVfWn(Qzr!rcSCo$NwJd)mIbTfwZ?0%& z`$qOoPDYlR6TPF5x-HGoP+-C04*4+;u~?JYSLN7uAZjD05215-hT!(&Lx~VnHVORd zk%IAy`gd=>-LEA(z^7vMvV}^n75vi8K3I7t$rue5I>hfSDno9Uw@3F^6$VBKR~Cq4 zvhS0@vGmueo<^sCriMr>T%c|8AW4@s*X$x6LBADuRi?T)YF_N>5$g|!U<{> zF?~&yz39LJKwTnivdvU8B+pK?NIl zXX!(HfA`k*loqG2XDRB>FYyT4OG(-tQp_dj=sD|Hr%bZJC{F;Sh_3s9qq=1{_&t*Z ze|XU$!%wbBiST*tQ6(dxCgJJnu_)%Z$?JTo<+J7zhecH@IZAgAbJY zdQxWTd*s+SNqg>Zf9)XB-KmvegR%4y_wo6T$5mCJF|)?_IbL6->BOOloFe9Lj4ZD0(jbm&NU7@Vzx_BX?delBgUaHQu@nh z+cC^%Xj%uD$Jopie$Fbl9xuf##g^(Dp2L{)b}GJz4((*oaTz%x-$Rd2;SpO%EZ0GX zq#~53vurU*X$z-uZL~iOPU=Fz+pR=^1v*dLvht@S4~b4&UkghCk2@|KKB5DE_7Rl` z_MSM$;<}ck!t0PP7QY}$T+Z93m&|8kmG7U8FqaA07;UkD)3z-CIL)Ow&MZL~4JXF0aCy zuR>crkWMCb^q4&1DCvWcQB^XI?SHw3lYye=QdgXt7DNwj7+s172|C-xeXtsrj5R?a zvMofxVI3Oc30uxREIrG@{705s^$X8UO6(sH%9kp?4|%&^HPG-;JhAdRdr4s{3xV2^ zl$9`9^Iv zx^&r)*r1biUDDA$8J((d#8c!f6w?zRK*zbtWhSD(AKyLKF>?7WT;Lfv2@|k@cGbF^ zhn49Gt;EyVA*#{YO8CshIFBCXE2R#YwdyLSBQnyeD>Q)D&J!qR_#I0(gON-6RB7@& zB;O;o&pYk$eT;baVybQ-Ptb5s8ETydMxPy2jKXzX^hy{|muPIpm{pJu&l=9g50nHx z24+*e;pRrDl=mW+fB54_tZ4t3m~a-b-U|j;+3zmJMtkA~=gEs`9R*sGyoj)0V19=Z zv}?~|4jOwQ{tpY#)`!>kTj6Z2*)1A{QwrY7yy)*ppD}~((bDLC_=%R-4)cv84*A3m z`qja|+`^Pu0nK!48=D6Kh6mKfeLo(BDH^{Q(#d0fxd%dA?_6k0I%x8=E~KRo3Og5% z(J+iN2d=cbr|Eo9x2jg3E>Vz)w~CJW=)Mw8mOP0FOHJ-x)dXwI?74#`7Q3mz0o3eh zP-?&bs5@ncfADSVDP`Y6GeD@hlToSoL}olvO0;eZ3>AyMG?TY7bCNZ@>L;}e2=Y>6 z79v1cYv6ilL%1jUp?D52l_>f)MvcQ8>(35NhH|j?DH=j7e?MfSAVaTj;|!vOOHhhV zf6oeMyw!SHH^A*tQ*+CIhe`L^Pf_`_qs!@5KfE%+A1qS_$4%7~mwLsCpN zrKBH5b8X^oCq4x(ycJm!=Y#?fcycNl=iEu5!l0>T{RY^q%ie>hl~NlC{Z{67OR)4Y zGrG9&)NnH2=2l~~iOASK5I_|Mb&Q(@#F_T+~sq|Gb5Qr>iZ#LD!g%vraEfb zt&u5FW{bFCX$9&WwGG*oGiM(pS@}j))Q^*Q0jhKh>ro)oP$aZOlKr9{Y{QqOD)nfV z(yP9a{u`7c-(Pp)6L?<0H7#xR+uat@4Ksdf)TQ@=%-vf|mC?yUvx{z0MTx%M?w0Ws zbWlw2tt8tiAcCCq*}PY$f(9{yK#ryhrQ}OokV?4rmKd6LWKMYL|Bh)1xq*jF+hpSW z53i*O(>C|B2PQBorhsn3J#Mqsc4t(u1$kzii>eF-vK$Rsf94=}m?uLC{IKOe-^r); z(wI=6Y)q8;$!Qwd8CT6sL9@yUx7UQERCw?Dp=1ky!$N^gTQ+Pt&1}6)>*Emk_{A&x-(uQcMM^Q}SCVqm~( zZ?$;e3Q$JNif%VoXC#Btq;L(xDK@u%_EAta;Vbo7EFD(1G(o|8fEbN#Us8h!Pf#Ev z5_DsA;5@Z_Y$ZR_fPDGl>6JKhjy>H+|C55bUR}|g{i&aP}Lky?U3TtY2R0X#z z4DU$F(%n;BEAEp$0%~YZkan2;UHO+MXg|eNfA-iGlzd~|jfUJRE_#J0eQM@&Q>JnT zJ2~~JPy7h^1D>K6o1@$jkfExM1%F>u3f@h08DA1GR=V*hSc~sHrQ$Mv^yrM4^F7)B z99|R6PWwB{O6+}b|Hr38_EsS!gB}{FGrE^mVF`gOv!)v8(FFGXKq-sFeO+Wv{H!qz5$Sc3E22o5!W`cs?<*K%ad5cH!S@rM5luE8j`@Ld6M@NJvK zw~DtdRQvj((8s+l2B8e+GWeJ#S^7xsO)}Iv( zyMxY_xbH*13z6Nq-8)ESpMhPDsexBtfkAJyvo8_@qleZgbjyYQ5uJeKEpcxNA<%Pt z&GoMrH5NNrWXUw^(skXb$`S!ja&2Aa=e^0$!9{Y}7u{8W;=fHznb>({BYE86ssj5k zPMek8b?gpFVq+0)nHhrU?Ds7J3iyDDjH>=>TWK>B%08X6s`dPz97>@UZ65j5s_aP1 zy`bIx6mZOW9^)jVg+9bTI2=GfqP6j^=+ZBfa$)8|4CYLz-Ot0{?Rjza0zB(iFV`hp zSN0f5Y>dYtyGZEE52-5gHWN75=WQ97v7&CUAcla$mR%OOd?+K=b{Vvt19!ntp%U}ANh>uiPkqI79xKi|V!(74 zIDG9tGvs|05}e?x@&Xox=Jv#Q7NifDYtmp5#ON?l;Jk4I%r@dW^WM8OMRdo4EYB{o zUE9-e8AI^Lv5?^S`EKN2J6q_fc5!y5-t{UU4!THn*H|=Pf?hu-A>lo+<2uLD_&SZO z6KA&Td>j-8XO%ncl=@miHs&xtCHqAOkZc87?f;~7shQkrjS~6;HiP{xD>cd6lsy34 z3<>(ls!oS-CsH{dvST@Uv${v~yrZ{lyp6fSkC-fBEI%KC7P+H9rTayMYr0>ve^M!d zFRJWDZbTx$F#CEp8*a4Pn3Qv9+@xq4YABg*hLLzDht5K)jt7X#&a#PK&9KXhrqjEd zWU_fj^BWz0!QpyI>h??D2I;O5vxgPQUE%sg;8ZTtYyM(}@}5{hNvJlo#uoXHqd z6KZ6XKq_N=R?LC&VD$7D4|gT)XL!dxo;WvaY&Ng3|>(eY^N? zLn}89i&Afa4%Ad4$?a439zHhx9gn`?tm=xOzI9BzQ`sZ|m`#nkB?)+wo+Ce=U;uDa zCR)b8%os3~e(*qE!gM()@dgeYk1woyI#Qt!%f${?_&Z7TPN~$Bx(TRnD2O0@5qMnP#}qtPE;&c?1VdY8?H!_ckl>2vEQ31E=LgJ?4;C&TE3&Q z4q0da8GL*|1~Lfe?2)yJYK67g_%n^`P|$4o(q(?!GnYA1C{VUucF6sZknbc!D~+)s z>vxW;s@bO zZW^~f9iAY~H@YIS<>3~_c-5ZM#ta+Q=^Ti127Hno4UjV%waB)2sS9yvm>1`To(W2+ zn*mqJzVz}Mow<*oteto-x%t&m?$I-qNpA?)0Ae2!RrPi>k68)Cv&5#pK-~4}sO6<@ zRixd8DVPN|7Oh)=3>u)2kEU=MRz@d@^-VN}AOKUoqEUm zRwos4{yH0fCyC%y0D=Q$*uqv941;@J5GHuJL1Ujoc0tBAEG|W?)wIQrik09WIx>LT zk%hbJtz%=H6BWkM%dQ0{n~x&B&VwWN#cyr1C@p#m1bgWmuJ}dZ+4>;z7fpn zbcaFm6enKG=PB*`Q7?-ZF}ngT9~n3y;6`9LTdVQTgzuQm3(dD`%U9{2)T=5Xipc4H z9DtRuJ$=1dCsWU|A+uJTq`@wkqsU9vr-t~P*r1r!@tvhbO(HNfZ!X%ok#QcP~gy?n~$lNs8 z@|>;MCSe*7p`JzvQ7i$t`S>i0+ZQE1yPK@G1s>jTOTVfx5- zkv02AV%A6ySV#X%o*2KxN<^Z+)o_jx=wZG_N@~o2FR+4>VG)-sd>*0@;zM0XAq~54 zKNkIxtgodD75MITDN43x0o#eXXihqr>U?jNJQr=Lk+42{Ftzbu;wH^pecCJ=fV@tW za!K2nbn;$OA1RdL|1gFw*dBo(TrK16Xf38hbozWVPTUd8o(3R1zQ; zRwQX2kzM~#@A3sz_VBva<-yNB3_LH^QpxN1M0-BWI(5~S-OB$gXZ;dVcHAHyj<=vl z%r$lUj^Y%@M-jA-Tpldmp=oR$da ziT|@r{%=op6s&0&`2byhcgcIaavPY-tXk{i9@dLPKrc6Eb`0}J*Dx$JWL$hpWx=J+ zN@nHF2cQjNOgH#?!8(D&Lg;GpW>&;@+DlAwhr0{(yWZ;iMmikG+(>e} z?Sup>m|H_fGBB!7gA2)5b)+K@jxV~B#BQ!m255|2lY(ZXUkr=8afVR*9{%ifaPpm`NlWD}`+wLU^+j4%3!n}PmOjl^&L)L7kHgwF>veDd4&B9kWd9~f`R%@LxAh%d`gvzj69soE% z$G>V6hX?=Tb358YKIF6gLF0d8AOo3l=C9SDUlQlB{b`Dd5!BgcX73-UcnvepawD$u-*uXi@0( z_O!EbfLE9}VspZJZDaH-qHi*4FaPHlm=D>srU;w`rBM9GiZ#NzlhP7$WSC=$=R;JK z0)Y^F4XOhMwX-wz`gTA&pXNI`!@Y=bKX0+-x>C5)xz7S^Wd$)IaN5HIAp@)|s(<5! zW~dOldO^1ONBWf}ip4Qj+13yshlr6i;}$nRJ$jJQ7S$dRvWKi&lr!^yHyF3cQ=}Rx znGj51={GF3%g(3W$vaOA(+$>3qX~6Sr^#RcvM1X)Y)5jC!CY9eRTgLbuc*{__x}u~ zyeq;c=omcq7oV^H{-?6VMM$<4NBk#w7GdSj&+U5UmVO$`laTuNpIQ;lOYP)|O2lVl zTUzN+qPM<@+}JXX+lOoHKRaSkACYv%c*d1=wSg4hbejiCHzs6eC7oC*@uDx~iR-}z zq%_$?yOTt8NafXaB_9ip^;8V4`K=}*dFdqQlNe|Tv#5B^($)>#i>|gafpZ_48`nd- z2gdZ-bPIF?vm&d!H(>J>@+tEqI@ zcwI5V*kDwohxm8DRWv)}%KF9UB)`QJ=hszxjx2I@kmBpLL@y4<06DY`M<_GfAt6Q4 z;LObv+jmKvk=xwB@J(}BtaTbBX$xnfkd7yo0j;Wm&xbLB9ad`a!7#E$iTUQ7#ig=~ z1-}A9k|v-E3cHEAcb&s3PZMsYu?o6TUh-)L#J4%xEXRUN9x~vrF_ZBEn80_t5IF2& zcmSCpho|5wF_3OY{gqM2tbS&=U6s2_c~tR&3~gU6_*~hsS$?FyYc03{gcUfrtCoEt z*Xhj8d9-fi^2;juOD1Qt&m=F|Y}n4(v2!sOYZbx?SJM%$XFDeXh$6)ByD$>4b{0sL zb0A&#;^(Yxs^RE|Moyzn(r)}=D_>={RICVvDs?r-dq#QxrhKtBG&+~iP&h*GSY}6+ zPv=eT^PpZpuvGerzd(51&FhQw4m5@9#r<$35E*1Ac%FT8m`$eGTh145&&WOP=+sf3wv;Soz0+nn4 z`~`bOlEJ21+>1G8Wt(2t=NLGU3{$fOR0r44*t#UUv80BUmLIWm>Hh_|dVx+L;izk8 z(}%NJA&#~jjd;NVG{zSo=&;ULJ5H?$+HpV?NmObIIf_aAVd}FjSGQcpH=L>eLNU^k z?7sdh0KmC_sB`vTU+Z0szZ{0yO!dy=IK}lp*rqNvO1gU{P-Yxac*q)%D)KY`)4hGE z$%c*k`)on~>oFOS4Lb;=5g;r+UQoaP3lkSShloIjW?)~znrE|73BFi-WY-x6%1acc zoQ%)$?8%P;l^}MVPgTsi$n*y+fesZ6pfn8Mu7s+`F|XblYCthdEi%sTB58s zv+)c&VY>u+vbD2{k$CK3uIo2YAS#HdwFD!)wc^flVHfT~}!mV!TCEuc}` zXx~hBPs5tQh%p&JWM_ua+W8*NgO>6xlZrjA!3(;PO2qv;gAsPHkh|f1|E%ruw*D{u z{uQi&8WL^SGRAgGn*&rpju)-bBFw&JV#ydBFd&MNF-r^E}-AsiSYvffe6z-3lbU$D5$bpKu95OddWlh z>;ex9@-Kk_)vX-Lu#P;-n|b9cS33jz&gey|jJDV7q66w>l4e)CWtmDlIQ=bKVOF&q zz}4kE3*R(17^-y`5Z(1~tCq;nR^aS0$( zVCyN^NdN9fi##hTB4~TS^Xu4-@4342#?1I)t#m*DSSNJ%?*XxX&BfGMW4wi4xrCK8 z)9(Aa*K70DoQ6E}+&G}I{=XtLm)cGyV+XrVD8&WA!Ey2@*~=nBeYQ?Ozn`twpVEND zF9}b4B5*cVm`LWMIbZUo*RM*pu(!Ay^BYnQ1PR94-3aSMUj<#?N3*J;7yZQ%kexL* z0deJk-5)}aXc?!G|axxqwerHqIbb8qmj4dpo3!)br(Ndq1zhg~PsDy|0DP5D!V@^0v@6Cd z@@J~#&9lNKma~1npYTHyGvtCw1_E6)@KZ?dBo{6IP))`Tig4wpdjohj3pmxmmwSs4 zj$87Rxy(g(&I@X9**z95aJT~=JeaD{#Os(d8&TRsqT%mf~w z@ew!q$BB`3#O1p{Nv5i_mN=!tm3@I*efaKmp|aVE24YMGg8xUH4Vjk6D!Hz7F~y-; zA<7&j>#m|R%-v_Ns2hwed6C)Uw&97A{{Ts>*01{9u2Q57-1d|?$NQoWZ&eI7>b5lG zW&@{{`<~CK5L2!cz96@*V;Q2x$=uZ7ISG1+RE4%|NgrQ&tUr?7J&+n?NWa*$Xd>05 z-R}@=Da0X2wc0(_pH$*PVWJ7QsK(Gk@J_z*4u8WTH>XaMHs|Hg$AJNZqk~Xo3;tVnMn<7+vqr zo_BdGcgEY8e|6^NiB_$UoRY1hgI)v;8(#J5G&6p5K%Is?J~lk3n-DD$IN>7gV|Z&P z0=E%p;&5%16?XOglZ7yoSB+WMwuWKBB<~cP-Drn7>j7DFS>t>)xCjw_$NAkIqYwTY z=0(I^n9)v7$K;5I+ul3BJCDD# zg_sLY@Bvx-+fOg4OaGlCUOGW#fq}XhDe$(7Z||FoX@0ds;fV#A2{+5Az`VaA{p{g; zc({Y*jl_iP4eqiguWt!B04T5IqhglBLmfR#;y%_MN`D#?b>!lRQ?gyR)8K`V?6Z8& zOcef$b&m22dzNR}-@9|19SSA3)Z)v}(mx7u^J~ITGHg^p#}U8q8|7%%ZCuPzw7 z-$f-y7lV#AQoRu1cv?aE%V@mg3ySvg)3`yC1=6Fo8_5>2FvdKvQtp7rX3(#*xDN98 zQ9o(>2hL_>Oq2r;)y=bAC~?NuGQi*PKzgqZwq@Q19)g>smK~Ns_(*23bv`_r{FXhp z}L7m;Uw&GV2D^Gf#HYK-P6T#7258mRX4cq1+OKjc9^c-`C!(TWDOlcKwHiy?H zzT^?4P;u^v7rF5Gc8EdT{L(BB^AVOHL69+2{D_9BpTt^S@~f$=9F%zumqaM&H?Hc` zQ@uTwUNshkZ?=Rbt#MKVn(9#@u9qp)>8a2N$1+Su>N89YGjPj3Mc?*z?fnyePg4b> z$+N?i6=SRi-RH{kyAj+oy~G|WrW{W1MtUquu{H{;YWR?ROezI_kog-`PGXV+@{fub zdc1g}q$7?peo2du8{hA2v$(%vF_>9iseOjRZv#7cSoWB5Cl17+X-6k$HVcaLq9osT zLRrj!A?po~z@-+)ntiY#wo_)3VIWh8LT)YrXm_1Hy=8a(qg2H8FpB3H@ zrA2o!ys3jT}TY=R$(QG>bl&AShU$6G%&1YsYIgWXA){x)Z+po$tyicJj#8@S^cIb5l} z-iPXHX*r8d&|YK};{?PPSL`s^5mUP%kity*xvSxjuA)obQny_@sciHhxUg>^nv<`t6 zL>kNYx@R~w+YjC0zYiQZNvDI|)yFlN?dZOheJLeE|cF6d^BibJ^mL63^~0;4M=F82kw4$;LBV7H-g z)TUPHd=LA%*9_Wy@`Bwb8wRcr=N;mZQD}~c85t{1g%B%;nB>HAHuHI4hwko$lhG|* zZsV~5ozG&|6J2(JnnFm-FZX_srIxh9QMn7$K12sD+MBC1GviT{g~u&AFw!i#^X_gWE#x z^hFuah%>d3w?Q4DR!?qe>6sT}m%+OaBTt7kCViKe1xt%LM-HD!N{uw#411WT6WnFe z(jc-8CkEYus!t0@Tb1HF{hfKiY2*?^2eREK=f!Fw#^(Vx{3clqx}TA#*iO29_j+4Q zb_2pXdmn5xr74@oj&Jqy)Nv+(sNx<%z(tpX=LOs~G@D#7%lbflQY!7~V6<~>YU#pc zBD99Cu~{upf0uvkm$=pj9Uoqps%@h!TPza+c-nROxO1^#OV<3m!NuDPXP9t|xXX85 z;lpeW+N1`SMeFC1X5(kN1tO#}rAQ$MXu5i7FhZ=^9dSyWAL|Kq?4dmj_|N_zOSvAB{Xf{w*B5CdOfeX=KCYBAf(8_Gm_qZ5Oghe+y%CUet+mE(~>n& zwl!W`)YN(%ts6$9Q$TN=WQJ-7S#PBSl4702FI-syu3!Y`Ej_x>(k+%^e>7v_)hzq^ z{(&mAtiUi4^l`6^)Qi_nbPUe0c8B)%F}ghkwZ3|FLO9P8Q-SozmRxehXfn~cIpO+o z$Ej8z=ZedO0$^1!At@>n?cVKh9017HHUG+$Ugc$fYK~AV{0^_qZL@u)p-K8^+0whr zxzT?wZjJYZrhNN&;R&;V1og8a1H^^elEDXtI?yp$TX2DY21-h7L#b;r< z@d$h-_q)oyyNsJyUd3-bLh+E;SwSu4X*UT>XoBE`{WlTMGQkW6YEKI;7Z5kF<9GV2 z+OKpn_+NlAVcyX^LLyppaPU#(==G$0xH4nk3oI&XCHx#QRF=qcQpuclm);Q`)>>NEDYQUJ8LkB}2w)+VDU zOjkuH8qV{S?696qoI61l0YrR|fX;L0#C6PW1faGz#9~HgD3EX&FjIhhMbu>)Im5`=N{>Lhl#~h`3N+1K!ghmMi*t(axTytPAyT{~RW%S3vuf7{+-h^cEPI zpE;;p+G#YZ?Md2=#xAslQGq+PVoZ%;WPV+eGyBdsY<;C}<#9!?7ASW=ULtwSo84PR z2Os!!Chz;-5*;~A7coJolNeC8wq7@Qtx0C(%P5!*`Bi*oIe!jWC}2}5sJV+_>rg=I zz0M1n$$SiwkR19-7mL;1NMySyrtFlzc^jWbOgjPJfA5RY9v7Z-&ku@lDC8EQNDqau zRDA*fbsQZ-C;=Baf_u3NfB|fNQ|YpwqzZe%e>y;OuQcNd3+}~61?#>mAiRS@&S#o^ zAY%R>%Wo^N@t-i9=~o`^)npD{mPAzi3n`L8Y0lHMK_bPTq}qi6br~|Q?7g)khQ7E= zuoz*DM;Wc>g(`S4Oo=uRP)FQ3&i?1~;)X?G1rNg=vU#3>oq1a~@~Jq-e~hTU#;l?8 z@)2^VTYz)@|Hl|$8*doI?U8c62a8@6wV%!?o<``C38x3JcGg1#5Gl<+!(fy@E6>#b ztWX+Ni+0TSb&~Pd_Os?K9TMXpF)FU=OK;5kuac2Q<1#IDv4oMRk~3Q~POG>m=F4G(mky(tG(j z?HA{xBkPz8&e-WqT5-1!m=1%A;2UvE`W#ED3|NMFF)z^$ecwu`jF0cG;T}v{M!kSd zJZ3VGaKFLB@TC~D>_IjqHeLMz?9I!8G`pWBYjSW2G{1esBbhVqPY>jV%eMAIk(SHJ z+f3XM+DqXAA@ZnLgCDoEn9P1mNA9Z)H}H&r1PWW^fVek=6WATO6OGvPM}&nyJS~Q> zlRlTu5eQ|p5L*MN*&%^IMEBDkm+j;u!lyWsP+X$mRWt*c#FOgbBfnTDI7dDKX*Vnuf+sH4c36!{S-Gg4DR~%|Se6 z$G98`J|COfGra@xRg1y;mHpUR+Cz#2D;Ts~KZ6re=uWmcyPrxK4RfG^=Zw9a^m;2m za+NN4L4#5*GJ`8{9XGu^c!DG&znX|6$K%6fu49{_x8Mq`qb_u*OvL6g7 z`)Mb(cwB<#B$#Jrm#{k1XO@#*5~1;iqdcB)$8p_$_V#d6&$243?iHbBOc(?OM7m`C zV-X(L&2Se;<7e`G#-TAf`JnKV*;Qc&FHsw(gq#D@PI?C=eIQ2tI=#7* z>H*Hoh+1B0)q-;#YMYUBb~L4Pm2PeAV0D>3I5y+6i5BhC-WW}EYOpX0#x2ILW4&@$ z#j7f+H7=P)F{o-KKL{J?|9??I1NKkCj-!d_ML-pWD{gpU!K33niR6m7XgaF*%@0%f z2p^o2SRq3yU$GCow%%A{raKB*4Un1b!Kzrgs@gP@&)Mn8`W`OQ@on6YD9}C$kfy2j zRp>XLzC`Xjj}VCg{$+D9%!%_1qoA0m~YQ~bfe^)hHZhe}|iDp;m4{yTTp72PZ@^ z3{#@DD4vW44lC{I62VMtGb%svBMIjTO3Ul~1-=CMoJ!1H-rdayqHuGdyF=?|PF`h|Sz)`l-$cMuoHLM`d_Kv`qsL zJCFBYhveZ_Q)P4#Oe#eSta8*EVryFzbXL~1y`MCtDkI+U7#hGj{{31^%BYOkvhise z5s0A09_1!@SQ%~()eab2Hkt(ACo~iAWgcu;b-9CCyrbi3N!w;iVE`7<6w+Arc_UoJioYz!4a(b<1Vg?PsnZFr1)O;e0q7F9hsQ|44pv@pYBMMv zBCcFTPIN2>vA6*I0`*yPl}R1{EX&qu`5`nW35BjWlsTyDNoa!-DZA zy>>L%h4z>xVcX|U$b}I#s-K4)@{;v?IC^-B*%#+0OGHEjhH*pZEsI4WiKq}-hT<4# zs8iQEl@d2+?$og%FBY*RXVAFRtc+dSKg4QA;A5ec38lhKxMTzqh_rSYyA5sPu-|k7 zTgD0d7gou?&0>%?SFP68E)hF0nkXXnp_Z-!SF#!oe?L}RV4g_KznSGZ#eK1Oi2VFz zMx`p`13B?eoq(+^(fUtCm+K+p^ZoDg!R^ctg9>@{M_s{wt9+UYESFzUuLX7pabc0=vm9 z!UeU8Rn1`V*)_eS6wAx#%?!y}qvBN)6vw5j@VeL)-_h#XsffK7O>S=QHUWPkm>ZsB zHKVWvkTwJT1AuRo15!jD$maJxoOFleFAJ<4*pI5^-Jjo)b&@Ml1*W!QwaE*BKa7E8 z_&J!j^z#SwbKk5&v3?H+515Atb{|7a0N$xVE^-wmQq2+)Y-6U|0dDrzgp)kUiV2=two-iV-*}oq0G!N3aR5FhY}itp`spuxeR-cg(H^r#4O2uDSs}b zHw8yESGJ8CjV7q7RyBhL!v~6+0t2VI8I%4<61h;EVWS3DI+0b+0~8$piyrcNDApsi zKDK9bM?NWIBH{ZaCWSR;3-@}JGJ>I5b(OV=IVHjGrd4Xx?1M2e){g8r!Wc^!npWP! zTrZi6L0XwIuEFgI1jZ;ZSEr1UeC}s^wr$L#rbiUV!4I{Gk=%e|bg9}0>3_A3O9*Y& zlf^$zB?qCCo{PwwzM`p0P?ADYrG$NMS;=JrY`aNJxd<5m>4+Er&u**-JCHE-KcFv{(8*d^wwGK3v~op#GL>9{bK2ThF>7p--HeBl8HoX8UXUyW4T@bu;z5#= zpIoo<{Q^Ncxvckk;D<>0IVIp$hG`2sK|UPVY|ZtOo>kv8L#u*@Dc=7bTy}=sIb)-q zk8s5dDNs7pXtt7Vs~HN&@xJ7nq#;2?(i7;Tyfb##+wMbnDcp@XH1$*+t3x?! z{Ar>1hWY=O-=uGNlUboWmmG^;1^=FYQ$y;z>5awG#*&M(?n%w&zd}@QYFyx zp~>qN@8U+NwLXcjjPO3k-_zz(VSGjqd84qR_#wa z2eor)q`4l2{74S;%2WJD;l&IvH)D|!$`)G~c6vSZq##bF01 z3&jRgbqw73P=_BL2D@~6UBh@z(rf#i)2xM#<+IHloRFSV)8;z}*`k!U9Di^3-373{ zi*QEze{G|(Z%;wM{V-_Hu)hLU>*a1UMMB0Z_&J;|Z|9o$XMCs#6!t9@Vb(h3C>_Y=QHARyl~f=n3p6 ziJJ9H^BWZ%H7$5hx$&L3TyuQG)5X|0^dW2m5F-J`V@BRK-C&B%@94Db($FNF@w2g1 zqT^o~)IwnVPMKOW7EAU#tO+SN`aRx$xgZ2gGe6XSl@D(NzA?s+Y)5RCj3C?F5AfGb z=kU_I^MZ&c3S~Kug^n30n5^(zQDRk4XcHotDct+a@z$}L*bkd*2#&in2{L{;G0S;< zr8psDku?mn2(ldb;}R{acd+;JKzfxv<>?`r=Uj(_-vbg&q7(s0<4kHmuwf||xiD=V zL6cX@QoL$df;YUB$O|aeC8h?7X4F_vct4_(69$ptvmI~A4FYGylz}LXTnKIcCb4M7 zXED%KhHjgww{*MCr3HuD$mq=)|p z$2TkO+X8-jU1HzE)Nc7O20J1(v2D0SDpHA5rF($?f_=y__S7-HlpjXQA)Y9G^cc;24YoqJorrA2k(ulv;)#Ny>AZoq91DA%sUS)=Iu)3YUJ%cBEYH|A?L@Ja z^2R_o2W71Zneq~1?Nsef2E=fFjJ48ReY(EA@S|*3JUnaTB5l;&6Y3D~hm4EFheBI0 zgsnVmi}zl>W;vNZ@hJAjqolNbimc77VINXBn~-%9Cy5Z_z-LXuEgI}l9$a$ue!wg; zvLvE5587sO*X0UUfVh;4oY5+7I|DZr5xD4Q`~)YK>K#zqj|>lhghm>hoh&ZwLv*L? zO^>oaC}OUdsak~XnM3JJ%|FJGhkg2`xop)7iB)sqoh|SjE^-PluLfu1gS96 z0aC4QsBui*`JLE*zp=2{ub;ZjixT%2*h8st^bm-R!H+6J)s2yxM$fLY8mNe4H-_;M zRi&H)8y0C4cW%+w0;|_6wRFrEH(|7Khfs^!vy($`glR28(db z%{OB$CP@}Zqx^-Ny!k%pY7wv!j@EEzrO2~X{4J+>*<~X?II2!_*v%$UH*8#40feT zM<*#-5+gAY(_lSSZXt> zsq>~lt2Xd8tY#*Wv`KHKK$K~HgT``AK2rZ@q{Ym^GLhKT8?Uy#;_F5MnnR&`06X}+ z=3X9?hgiOo2V01-+Hn*t6d{)c@~lyRI41)L0>MhH9T$fn{5^J`#EV7cyVYe>%Rwx6 zzxgfQPwWv;RJ}n}s8Z?SP&gc0-$vgW`*)HjPb{2^C7m0BX)VF*r^)h$#NdvL#&XzP zx5>fwP8oX8L9vz#t5zONzb5I~IBO1uOF7pwVa+SODt_kTDw^JN>qKk5Tt}ds;@f+d zlA%l%sSRm}VJ}V{5xn<|B+X7$;j8>M{?stP`|s*Vf?6tR-9PpY$rE5`V^nPoMq#># z1B9J>O=LiJkod_@UZrGbcrTVlqaOUCxa?NsQ|~EE1n+HE*%rC@H3%Zf=R`vqQ?4Hm z-Xm|u>L#oKsT-VVq!6mG<$FkgAKzngj9ehp3hmT+y7K+&bhmI)0&gdQBGek0PI;l@ za`OA=S$~w9^?8LYJDEwSdb_SI^a~|s%G%esa<=iXBHlXRcfD1mIs@5ul~;!i`C|jjfDtW-!Ktdy z=o~-W5)mP6G)@3S@w%0%1{g>7Ig3JVY;7HHuBJ1z2a2K%G%^m&IM|U5{~s4z5N%jH6r|K$8R_BA>c|48jcX&gr2X5*iz=?F^Cf+Gy#o)Jh%EXs{AZ$P-D28K zrUXxY@N*6xi`dNOG+xgNEUn4kQYuY0=N&8LgbfQyP@Jt%JS8RG{q%N24TEKyLqH(- zL^98lUm%Q|BN?k0B;Msw;L!qdkU1yAL^Mme2K4+$QO{EP?c~5er8%1_Ou1r5zq0|@lETHClY}#O=B}mFEP@1O0rQn|Ki#Njs!fGZE z`cTEa*wHYjC;lv_3_&)XbO2r4If@C6o~s%OCPq)!|F6(5x|jEQSEJZ9Erb{FWbUOV zkYItvuom>K0EuCOIo_ZhQ^5-ubLj6jz6P$OR)J$te1ro|T98U~3lTGwy&>GYtf0Hz z&BX%F7ybj^$P`EBZtM_e-kxDj(9a@RO%}>E4Dy+S{|&&ME&wP}U?7!#HQIF$@Fr|? zQNuJ>ru_{$kedBi2iGbI2l&%(vUYUq198&_bN%*3sa-km_bDp9-htN913{MSEs*(W zt}8?&45UOVMsT`IfdP`}H5`!|<;=-HU3kafgX^W6gI|IMQFbZdLOz`5~xZ-e5j0g96u?R&<=UJ3I$CmL2p zH^@hyHx-P8go+v~Hfo1#XB5D~x7=f86KSp5EVVR zczm8!s>erGX0$>ESR6#UAnq0Af5Ktav>mA6XEW%z;Du&^ww@X@ER6L-uh$31``}F; z$XyhV4K4$z$dS25vd^=v0f z6V0cOP#zFvrU&YDmSg{H4Z+bQ;krTh+(y87HgFf0=1Y-+)d*1Sye$kU3-Y@GxjJ+E zKsBd8q2jh17d5B{POig0SUgxAPd_Vz%21=oIZbkwUT`QjRW}{)G!|H^DImk|$7m5d z9|^UpMP#LkBU>kcWKSXS_fY)1T~cq?C#O1Np*nzNLFE?b>MlYel+@SCIBi-V@`035 zFp*L{%0lBFp|HMv#9oUW+QfI=gNx~k6@H+_?GOj)RnMA(k#JQkl~v$tzd032tOYL2KPh)bDoDU9)+b1=Aoe* z3`ZB6+=eInFh2;L1DV-)Dp%qQw1(6Uqcs%QU?Q&Ng6A>o1dzRLrg;1&7ZnVLn8Ekd zE46_cpyZ2ARZ2bJ0nOf))#^jAPJ!YgX9Cg~eeFt9b-=#*F)%lLbCz=fdsrg5M}n&# zc?H50Rs_=tYqGjzYm=&w5%ijayI3gxg!*3AAIi($;SO=d(0!pay+ejxdpd2=Zj%x~ zL^W`@ivaP1Y!XflFV4JIM0^6;MYKoiBM-DIGOqyJbGs$X@A{2k1kwc;y7URVy0Kj#!l5Pte@4EipO&HDLb00ugM%$>4+TC< z#ic#>xPM<4DOfLmQ-iT&b?6MjZTrWw$ocTqf~4=-ZqKQiPx_2Ha?A%++gPqNT>i`! z;|!5>DKvGP;@a%X8Q=Lp_Ym-{xY-&oqb@nt%%YwHY!}ae07xtD+Fw~BWy_cckqv7) zoReOo!tf@b%`=&a0XAuqTJ?gVJ?4FN)P0ImW^P5Hm1V@PU<0FK0T?d~-GW8AtS!B* z@q*pszMym*@+rdZxUym0T=4b3#Xg6D%9B1B0%Skf4INvbn`xUP`qjZp5@XK+lO9xS zqV$0FZjo32VV-wK&ZXaW@~Utd>=w$Md^u4U$wgl62HHojLjqx#S2psm)-{4q5{THP zGyR?7c3(~wo3VS4l;LWt@T_e|cd?i1wB~#$s0P*YeaG9JaQqn0K}0D2us7^E8uAg$(q40XY~K*JpB$$+I%}+c$A`K7HxvD)zOVYE5}po%qeQp>JT6!l zVpdbZ25|BeU+?tkRO?J%;aEg9(z^xb6KyU-bIJK z)rb8eouZjN05eWe6y8SLYj0|9ixJ`mU))95G@zUkY@EqU@>%os+?>TYb;_ecK@((4 z%&C2wQU$&r(WJWUV^>2EAGD)S6j7H6_nz|^78D&U1(g-JdcK4&Pcmg3Q%e2gA7-4! zvVOyzIMCSXu+RAk`iYsl_%F~KT@a-PFwWm24uLi{d2BWAhoeaECm(@Ns?1_G+J~iA z#6~ZoXBXOyi@N?NL;cRG#4$pAzW;hxQmb`3mW%=b91V@(bU3Pr!sT5Q4dA^*F}u9> z7U5)ce2=RioV#6QeJ^)s$CO>O6xc|yTOYfSJt$?0iC_}z(or<6&ut^udToyHdT+4- z7Fb^RWP|m2&y>wG)1W-VSZ%-Y@O=qSGeQ8kj1jQLe0hPAv0#GK(KsE)ltL<_dg;hB zM4rsE_FtjK8#D6QRfSeq;)c6jnLcp_l0boE?z>e-7NqEi%6aPv`58Dwq@0_rHw9`U zr7-@xX8?x*!Yo}+BZ(Z8BHC!QGw~*Cuqcy+WV87=#c60U5$L!Cm272ApnjuiY9~@M z+7ODB%&hbXk2}d*VdkUZ@rIDgc>#&r!E{~?=Jj3g^I?^thOb+Y=B7M_-z?dAPgg2W zkA-BAeeS6_df%4HgoLz{2Mv*Y6u;vj(XWB)BDEmJgMf=B|bB zs4N0b6~j&Wv7?yMZ_%uXRhgY=BQR08d+L%o{84>80D2;#)wvN^72b-LuC`v4wu;U| zqo}+i0!}76=q~2H&rQ~vRlQQE$+M~&l=$w|Vq5`XNa_H8K%N&W6){^oUzk$r78v`7w#Kf%fpugsG$hH&2d$b-!FHc@ph_jiZFwFFvW4~?ZqI; znIKAm^BwgIvbLnC$Z%-%cLx>&~L9;#(p z%*dS)xE|9Oxglv37{->pacIzK*~Ar!LU!hHCb7{{`;)VejirdkJ}Rbu?FtJ#MaYC3jpTwibVv2ouw+XIRq zt^q1ElqIXESx?BFs)U68CcS9a{Pt?es>m1vl!S2agtUyl zLUVJg4BP@ywwI4G>fA7OAqR?Tt|{RzgE* zPb|x>ubI!NulyiEO;p)}yx1Oy`xBg)Lb2|@ABN3%&t#}T08#6J&gBV!qfvvL6<=tQ zi9a%AEm1(Xgi;kw!k|#d<#_e$u88PWS#FMY63$&sK|M{qxbOmAz$q4KXr4i4qwh<> zT_hgJw;+88dpjY>~WKyQAbrZxkbZlq!6JD&1VBQRC*L!w=5Y<}u7(xsE1( zCdHY};0pD`T=RC1nkZL@(Ee_Ff1|#!c`x2rJK?s=aJ_q4$R*!n+Y;svd@_6#?77ZDrr$V}d(6{VD<;<~!f5!X~ zmK4SsNGo!Vt#L#q&@f+3%YrIBHf89S^Zyc=>L}9}i^h=^y~HslRKmHXXke?^JX$#s zj!Qi6gZ^)SY$yk#Z(mmW;@ddHtXE!SsvAQtz9>cNgyv}O^2MnRr^=9PFvxb3FNP&s z6c3IQxeG*8@TJ^C6J{`1Dh%{GZUNP^LqTZEtTf>HkJDw7t4kmMh$vyu&3Wh^pt?14 z&Kc$5Zm3AzN18HO(*=PoAMza-w(fpCKyzY2>BqLb>*mM%AMOAe z0KNR<=Z~y>;PYg-luH(S3+$=J`e26atBo(8O`;Nh_$q~X`J)rgp-JkiFRx3#@gm+T zaSzik?oM4i_(!oyV^nt@8?fLOd+k==&5!XXtzjJ(q3d%q>${zH_YYfXOhMM!$961O zu<3Fdn&GK|Cu3A-Kvc!b(sHiin1O9#eI$DoA4?+eARAy55Rs)D1BXJ4S@bh&DQ#2C z_B%dGVS}>AoFN}1_=wER!WRE|P?olu*k0Le0atxO;eooO%6H9>X-9AJyVxm;p5;ey zg9|h5ura0|OcpdT9P>h2JVHlvuS;a-!oGQlTCnTtronQJI}&FB&54onj8i`CG-*jv zMGN${$3S?BzSg!JA>@AX-Chh==as;QfDYB=R!@xg;Ut9Yg@Oae8ofs15%vv5u73lJ zF{R5-UnqaJ0WER9sLJk0@s=*2d7$Bi=8^FF6Rl&}EiNZmi}JTEQ?i@DR}D=&GzHUy zy>23wuy~9Nz`2BrJCWX5A(s*MkNT!4tGc4kT&6&6fXq6Cxs~U!LcSd$6MbUp$uj9| zUu>YZc{~I7Px=5yK)ApC{O#~5-pPfI7@8a`3h8;jf01Kn zGZ`2Re>KfUYB`V(kcXRlpGWMDx51mH9JEO0WU3l#)HvYSLhrfF0nB{8;}1t4yw!&@ z(6X%IDgg1;N~p@Tc3o1$SfP6tDU$&nzBaE&{--@x+Yd~LFeP5%o$xX!*c{YXKsDx( z3c$1-jFbc0fT_J@@NV0DrolmzkNJsSkj@LWwWH4tBp>HP!nT@=mf$_Fb z04+?_Aw>>Ix2WY~%aU&q=vZ<;n?YAP)g{^$t8qZr2d!-&pM}mVktfUJadyDapH&%B zQF}>DC&d|#0uEOVlO-w09w^K5K5Cdy5ZY9A%Sf-b+-YpdJT6JyluwN7(o+nwslXB@ ztXmj=@(&I$zdf!>cIw5Gr?`L;b45<_veHZ6mhP_JGCXsYbV2x-6hF*@Is9R#c~UmX zVQHgH{Eq-4=bu*wVxQfsE<$)k;q9!Puc2qUMaAXep2p^K=v_|}xcsj7a_~&!A6%2{ zd-P&@WVP{!DgP4Bf0Ov@gB(n^r!=KvVK0_)2siMA zFpqbz`ITU!4N;0(xZTgbbENBLc#hq~>2m4nJMCPR+nihnD58g<0_csA3nyDw%^NbP zpPY>8Cgc@VQ;sUL8|RisVvF?7`gzkTC7YER*f?dhn~s1njJ5V?1y2wxhlAK)0HWdV zInNc4?ft4(46d!V!^J8RxxMPx5?%7B|GPi*=vfj2Si68asFh|> z(3%Ie(7g1MzcX`!GZS4QT`J5#0-N2prS%W_Wl4mVs+QE1^wq)B9E|&79*p@5QEc|CF>rT!;X} zD3G@NuKqz}V7-lW_$jiBKVy-IAS+;;(5~`emPHV*K+WFTMK}E$n|SA>e7|`uz3M$5 zC?yz?K6-{hPj#(5+E@SrfHN; zt=lT6PPfN}MB3j>?8sv&#ZsORhL=39DM75e4?E3DdXiEq{X|>y?qeR56tK!{t#L-Y zxxL)MnvhW*Xa;ZOs|IjnNL#83^^u)W?jQJKbsW{@nsIj>cPPJH^NH86-qA!CpMkCN zgA_3bPd|T&_j?b#umNTG@#1PwGryo1#9T_y#EhbMd4c4%%MUWEE?&~5f!z$2)@JFk zb?-WX&2l+#7#>l_Iyy00B4tl`tap@>@`ru%Z=!hF}#{@5sL#?>Lf2;kD> zPXi1y5PF^TR{Q(saEy%1{vrOkuTWu`7~9j#wq;u)1H4`lm^2~RPSz64;-^>$-+tak z!r8a^F}u6r*+~2K!XDQAI2hMvZ zoXi;vy(1Hxo`?=APJfaCe+T0qssHWvdqmAHu!iCK8H?zaUJis6xBg*chc1Tw{#REj zHG#%gDB2@hIm77{tmi`VhTo+d;o`<8IjxIe?3pxM%a-}l)ax@HRwY)Do(!j#OtbRf0eq`MoJQ8h5rjo{jcfmVi12p0RmNrJ4 zzbydglWd;K1DD>TQv48P(`CWoE3_g;)!~~}e|SW+iIX1H{~Sv?Z-$4lvG0(vL^9<3 zif#9;fx_En4r9wyL2j2bz+07i%XjqAa|v-R-K`{b!m0bX)Z2^#UV|$iEVPGzSA>vv z1~}Y5Utdpf1X;$@4}l6(6Hh6HUq$oHz%ka5N^4bewnhW~>l;b?4fi#?{vgPrC0A`x zXC=`KW;W5Bc)OEN>#)1ZvBEr9AuxpW6qL;~> zqs%z-kJ$C)q4tpTr+U-k*JaAx<#APiTQHoq!_j{7`W+PS_0Z>Gj>|-6g0)7O2kUQ< ze|Wqlek-pL0ZmN)K|asKc$?m_A%P!W?*(dh|L`^pjq4j>bxCg*&GNXd9HZ76BDCZM#P(#C;XV0;u}UUMo9O7zEDqX(4)xt7?ZwxLS!_wmFl38 z&2Wr56I;jVr7+BAH3!AUq|=Y#SOPvCMIJTKrISJ}qQVd!t|DB+^Eg$XUh|IPPKm1? z^*K1r*#<06h05^@Bkt)cOIUSns6mBu6CE=O*SXyVqKI1`?LOy%l@_+$ue|x zY|o3e7Opct_n>m?FV@>2Im5cU(ZchOP0yW;U$kmzk4+Q)K??a|2t)I%%=}~h5vqpo z*Ciy|Js&T&c4KPyQURcxyBk`-;OH25(rexhntn=_)dc5<|I_UTZkNcdPIp;dCVU3m zd?37ADU#dV)jw_uj-VT=!9m3Tz8h&hZHeDYun;!C2&cw14_{2BAyG_wU`QR&%V3tm zUHj)j8cw3SJv8sbi<65hgfXF35Vb(lkJivSV4sJ}B=&Zi<_`C~!{nx)3oXH5IX}_< zy@_^x_E~`Gw;P}sTR$znM4#(^xYQP|SIpq{Y9I2zGqTQ#FZCVhMs3lR1Xs3I^jhx2~Ii{rPiF1O;W(NFOJx(>2tYfZDHQ=vO9zx)_r`24Z8w00E@u`0Kw; zJTGOLpqV_m4yMGR7sE=8129>!1|AZT{3fx^1m(1u^ul_J1=W0hrKkIRSFfN!tgkd+ zN%PD>aPsftC6+?5zROt3j`y99Eb0L~WFl+&7spyO!7qUR*29Io-H@UaRl#|n?d2^M z@s);58#Hy0*Uxo#!A8%o0=3)34Q2%O;g!>{uTTg&7n$ffO^0(GOfLDm#HUII% zz;>9Cy(8hQRBA~MM3`wjDVOBz5sN?U@`#gDQ}w4$qy}E0X_ZXT(sNzlw=3HjftQ#r z#6oS-7b4%@!i#GD5%nP&@5Rr~%538dpW6iGKfTws3cXz90FqI0B5`L_rISsRG=>6t z99)&;On&g%fZB72J7Z5J7yIn`z}}KKnWUiSn=Sp_vqo z_qmoyk-;?lH6UY(hyAeHZJXnBGByKj_1Y6-&lG$Vrv3sj_I63S_`+1OR{1+_%((qq z4{p48`!Ri%dIa|+J^a|K$f3!rJ}u6PwfYsPkB!;h{H9c#T;55qqpvDL5zG5bQwdq0;LkdgZajR1J4OB%>qPss%OX>PlT?L?4+vqYUe{A;(%n&XY8Mwlr z%}R`aIw}Wzai}3v{BIB-pPB@kyGI;>$S1+NvZo%}9NRtq8Uz4R=j$b-UE|8BM z)7foJBb$yVv#qt=;ipnT;ip>`$g1;R4Tv_m9i>#95vhutf2%*U0=}{$Kh(`4!?K%4 zi0dYKDPbFiiAt3~O{d&7y2lS!EBTFspPGiyBRAtBb4jD})laZQTy-1p9gdOu5jH9` zkNqVhCvMTPORFlQRD9CkWIB$7LCshH%m51oKWs)^;fH?xBgM5gbxTsD#$tkZ&B(|+ z5N@9wI{>5qxJR!FfLrh?rS`So-{Db zVhqNWr%DnfyWfL1YmitK@6itAia@)Tf(p=qa$SWATv)E_OES}(e_%cApAx5Ly279B zVJMs|X!~Us+6i#=F?4O2m(8=Wgg}K-a)&nWAoee!{A8Y1skN;+&azv**hUm5kQ6Rx zLBv5MhPc_$Zogg8b=uH_m9)h_mSscxG_I43CKQ~|w~(G-)#6(Etg@BFd*RaVjKP23MWNqG$^vK2Z6cl) zQYCtf+u)a=RdK8pGL5CPt-WyMfsg}6?nbznwXB0P_~oJ#(LD6Y0l8v8qj085?PF&i zJukIVRHLJHMXhT6#JsX@sKGx%`3o%qBOU5cC|4X!0nuz!+^fm8z6Y>eZBvoOVuFh0 zfQ4mx!zN!~JUlqIgI2}WRrIqJh4doXZC2{)73B1ThJm7#4I`sjDSptb!pJWr>1P5x z*jG@Vs}2)cj6TO(p0M|dfMIpvRu7t|YdNSm&WY-C`-O@+Enf(9NM?aNPQUn983+f+RUR+2`4b+^;Y-K6caJf(Od1M#b-(VvypZziy>W{j+Fw_LWp zdb5!@$qBwEjGrTy+2d!XtAN1;&t<^@%ag@>7m3`SK*E#yQRt<#L?e-bNd5>(AV&g6 z!Dc*zuHEOgyc@R8P0M5E04dW+M0j*5W;qxH0XdrHCxiqKd^$(40Zc-i<7m|SC*e=% zDY!qy5bjr3q`gH+#K`w>WQUj84?Gi$437}jFne~`b>ohSDT%JcboGMvhNQ<0#Zpq>HD zap2Xjc!Z@>;1!!~1UGSxo%Q6#bA?=Gy2nWQiY7oJM zJTlKPnHORdYUmbUAzQ*fdNttVT}XF($p?}l5e~K8Z0L=qP~uu;0-*GYm{C`ul8V;|+ZsXBk+u zDl7I2qboK;>dT2ILphC29fN=07T{~en9QMgxU#)rPE8@S!NSTP2ii?gWUxKe_-$0R zb<_gdG{$k_a;u={!dxO}xPm5^rdnG-D=!6|3Vlw8@I;}mVS|=r1-hZdgJ1f*7U43M zi+A-5)3r}vNbr?Y9CWi2Qyb}mMQ)x~QZ2eCtkw(fZr2e#z~ZsqWVr1d)uF735qHF&N~#D&Ywo*+{Qiphvw69_nf-?Xz)xVlvG zjav%0QM}BYjnH@rlb)#_5=jfn?atAbd`RL0jlIq61>IDPQ1~-U2qO%qF>W!)z~R8L z7m75JvFzlk319D5Fb+Gp4xMsACFfi?G~9&^g))1NtuPx_^2x0u(=f!EF5f24nONah zmgL^bfC{{MG@FTBjo@yEf$xOO+_Iqb#s<4uR1kt+tG*v}W4R09SP(Tc2K0veBcaLj zo#3;Qji(Gkf{i#8_~V;;+*7OB?t$7#dDl?X!^ru+7bI%{2>yztX=Q##sh)2{T9s_K zVd8~P+z{a$rt?e(Mi8_eEZd>q0K<8V%RGJZ`0&U|MYjP7ME`q#=S=@@7<31GZy|D- z$0u+@=OGUY0YmA@F>}mz;NA$*E$lz^jzCfFF;}Sm5*Ej0hIWXwx{CGVqLE0w_`+=} z!54n!;v!^PnfXiN$<3HcQBm_~JVh3>31}I07aMoxm zK1NJ0mGt{R5Ee?{bN1}Mpba;cyA*MZPN;9S4%qJ0W=NaJ_gNfB-5IKrI4y)zG}>o5 z-Mq9v1pCW)?Pi69*VuzHp1wD`qF`fHmjU@rx(UB`<;c^Kz?YErrfdeCkN&W3yg=kN zlc~v-U>Z8Z`F-omb5hmjD&*lc5*PVi-X=%zh-=H3e2?v4C|;F+R&z)hO(1kHhp zrZi97 zXGW8i{0%PUaf^>^RHU1dCFqp1l1o+IH8iz9RC7?c_tPgPkrCXqu!Y2l z;n_0*TYu-ai!nEG1uW#aVcFv+J!n@z0(FtbkWpd4u|Hj)pWeuJ)t5!H&4ognW%E9@ znz7at(PZ%7>a5M4w=d#&$=k~)m2?k^C4Q*V;#r+N6N3u)D|Kuby=K$;S48jbKbuP* zO6L6Y_j8Ir>W$bqQAvTp_bqKsk@2`JcZ9CBD_oFO2`Q#$s?#bp`;1Vpn%wQ!^ivul zLS|hb+6{*Z5)ktCvz2m^Y@HbaTaj%Yq-K(6YvUEF9MX|auK^&FPApv}qaNYOE_o+? zNkFkn3g2JMis&S6o8CB5ffReaY0X3Q|I7i7B+bh`K*~Kocc(agDv~<69klms=WCfz z^jbGXaXSNlGAK>L*F`jKw;E=m_bNKPmZy}5nut<~J8Ic{3(0Z>Od$ds+O2uM$PHZ- zF|%E5)d%VPVC?reLQO73o57hJyTY0q`1oymXW+>d`mi&k3<4f0y|#yab0%T$hTp94 zro?QynXR7@mhcknEW9T7k5#@0{d*IB=nVRtMyDmFzIvs!Pmc}*{J)HLB6{wh+bsjQ z8}Yy0N^t-yuEQ)Jp)OXSs1?(VQ=PgA8+;_dC-g6O!& zI@E(@2h9t$iJX@A-qv&bseSS7qoW)m47C03C#)KRJ~PP68;oIS8Tha?40Phd+6ucT zN$$=qe=LJL56_zS%nZAfYiIR%T37u@a4^Zf)L?Y0!$d}N7B>h7KFZUc_bW=@6b{qD zI!RVy%4c>IL8PFRT<8?ZRKoW%&CFAeloAFbA3^N{lEG%1WZNMYi;Q1??GE{EN$V48 zC)s2xN{(B2VU31FO_G25XP>L(ycHDb>PUxFo$t$$2I0L?vZRCs(WOBJz9P9Emr z$uBooS_;+ifnqF(w|EKHA1qeHxnGcq0XX)w%yVLVNZ_6|MKO97l2evI-}i0Z-&h#( zAROHR!R=NIMfh7C3S{RD4I^qN>JH&+mfByuv%aWyZ}+A59Ut}HauZ56|HJa}r&=Z2U1kHHTILX1U@q%jO}}^#Y9YYP+psNQ{F?x?|Bsn{ zcHSILWI1uMjXQ&8#_(g|;F@V1y)xN93UF6&(e&~$SXVO<_8Lz8uBQ})F!D#jg^m;=yRKt}K4^l;nHhw$LO%NJhrRW$e zXFshb4D5ahGAv#(MXd>3-eaSBNk{tnW?nApPMVOV;U{-vPGQ75Dy5|?x}7Pi+>8%G zQkdVVo)M3LA^%v z&glAZ3LeA!RqpK^aZ1!xk^_dyUbsR$N>1OTz=Ph=%1&Ni zDzm2=*_J2U;K~NHl15P(dFe@*gX9nk&Mq?U65{ulKsrMqF8L_vh7k$zdk9H~t`c)z zqhig_^qo+o1msHtT-Y?0!*`tMf!u@tH#-QW9mS|@yldl_!4rV538D(~%_bkM!h1P3$puR4m=XTO zr|_%hzKQFvLZz)^r5-98c*9SmCgWmRwC}b>Q@n;Tb<^MZVVVa2b+`bs-*^SJB#jzv zzXp$HE~go|EvLSKvI2q+8*gvp_xD558Gn3Xo8W~Ob33oFnqi(XQ5!_IIWaup$b&`v zyb(cV@~uD^ZvDrnnlzrq$P)_E@`h$)G+?GDkNv(>`L-*zg^#ZTC3y7SYypHdzkxkF zFar{SL817ySf^^d>-tFn`KCfcc$s?J<0aG6h=QsnFv$K$XREty*#xl~a}T>23c@%6ug!LHp3F(uGCbKq}$JQns7}aG~qdF;i5?e7$@};Y9 z=@MVsEr~x)+7}x|D5;o?YmR(lgIndGiw1kN+l(?Y6UiF7o~WAK0FMr|r2%L5*3-)~ zP&CVR6bFb%a60=7D|QhXdP{d+^mY56ZnR}E8@mFifuGaT2A3OzQun+SALrJRg998k z=AFB!?{lX!fv^{u1VBI|Qz|bH$%^Zkf)ivOx=5Hl^G})G*R7^%im)aO(yfE$jWM2> ze&$|(h%E%N*FWpLf-KdP=q3VO7hd?L$^90lgn!8wT#hi6dRUBiL&c?uWNtK#ohjiG zl)sJXi=;}6Vndhe)ln-0EXuYVr&Vt}K;-urp@}c!iQ1H&<{T>O8y7Wea_gR+W6P)N zNEIk+FENL{SeV$z_N~}F9^a5Wb_3HFQ(PktSusoHkVUACZm~$z{&8tm1NfeKbKWn1 zZcQ?a3xonm89tk?IfJkBd#OH-$nBf^LO&tma0fgS=Ffw z`zlvQ7u?`fh=?vg49Z(7vd71l4s)WY%vZ^63~%6`9iPMgVDk-TT`hZeTE&^6eaYnDWl_fD_xgb(l6_+w6S*}i zCzVBhskcYf#Agr+*oZs+Yzmjaac2%E_2M25PPLd9xM+VW!+-G(b(EF251Vf;X+Dlj z_$Ip{OG67xQs+S|AdC=_Ds>YPh!4D;*o>GbyMhEp*0*$8dzvuhrf_)C9U;UMU z7cTh=hdDfCeZgQj(hoEg#>y-T=ySf4;}6h<<$hj9o{(QFaA1D~V@t@V1&%#y-3)-7 z$JqmIRLJIm<8NxbxH!&twz0tdebIsG**NKD!*eXSdEkLj1Z7b-3~6;PrxHnV8G##W zqMsY0&9>J9lCLx-rV2m(^7H8fYX99Jt`Y;`k^E=UMWW)n}|9l-QL7MBA z5J9}y!_##o9Bs~KSLRGzvvft=Zf|EnwF(p>Lx! z@g#8fHaIl5Sp#U=qS+Ss!!;%+{$!x6g$)+Wu-ici6iV+$Q9W9OxO`3$%Is{u?-)!& zzqmU=ULL`tfc9QIcS#4@UyO8Xs%E-%*Fcymhj-EH(-mYs%|XU>3+Rp%of-pE^4$_; zGhW8+6}B(son^^Sn;+zDoC%*6>+^gZn?!AXRvTJQOGwcb-OgV)duDJAw zX}_~LOEQTsi%`I@$tIq>Hjy_q{7-Gue^<=b`XqYKEXD@~RKZE9Shi z$wmqm&vS^ySOCv5%<@k-u|q(8qO?(;i%+0@olZ1Q{&1`@Q(pOukcS=nmzF4u9?nL4YrsHnKnkAErVDY9-nss;*fhmK$0wMIyEGlypW@iwD9wuAOeL(W1A!R#<{i>y2FS!i;Q5uU zId{5rW}FqbM`37rcRb7)Jx*7G@_>%%S9osjHy!8pY}jxcix##pMLBYU;jJh`$0~c!>>P*JxVFmyrd$Qel_Jv<+qtNp*mqf7dz^}b^j>bLk+Z0&KOydEW2Bz_Q?9kC>3{i|qyv0$Bx zia%REJB{EC5!pzCMsOWtnH9AG5L?n-~T$oiLq6^mZ*=HbUdlf{Is`*adLwt*Rc_Ifmbk5 zl{;v1l{Krw+?}j;me(L-8Q0q{6Dz}4pi;!V{1|;G<=s}XVJuUtwR%c&sk3R00ZDG( zDRX>al>j&bVnwK4hVpA)~t5scbZcKufc#0>X{vu;(l3 zH@KF-=R}6AN8oBFs&|)-4Mlo*7jP(XP-FZ$n?WkYr~=}R)5@*pmTzzhJrKG; z6HI?&dJRAF=xjmQ&`ZX_^rwafDeb=!oR~SBgrUV6Qj7+(2=~=2dr_LAIU~-aow?sCLEit74gSaC=Esz1G6?(J11Bi2<5hHg!IX7mI|^LvEXeDwfh( zfqM4yHGh+}_kuxW++5EHqT=vQ{z37rVB*qHH`1JdVSdEcip|NJQa$`r$#JKS@=Yg8 z&%d$YKK0~B1}q6D=tH5XIOIyez(QH6si~R#S_NX;LhEX7wDi^sh~&`s`mo_k%2+!~ z_{N?%#z>PsTAB6PSEv76hp;kY)Dv8Q(N&43iE7XUaIdjxlC^rOD!f?+wz3@sS-`iit9C)ovC zS>QD?y}D`H@#lDChS zK0L42;)8CWXcYCQKgN0g@>7itzBX^xoJjmTv63oZvZ{CvD*cQye+sdkA{-4jgh-<^ z^^WTZ0GhekTiQ+d!mI{FO;c6nPW{-s!bNSIKY^q{4=CdlnDCw> z*Hf?8(o982>7ksgG0XB#7t##WxdwfLhN-PtN z7Ixs?8N*C5p>Yt7vV}U(8+LijQ)G2k8GVsH3Y*g*tmvP^Q5|G}A5VxEeuosqvAaJxFAU3!Xepe9ZFd?z3W-mPh;erZs?PLgo2QT!>==qS5dDCTPqoT z(C>0~~r-PuqFLKCU!QH=}+yzXuL-ATP6xViTsH;d|h0JV4?xh8dP zaV%>kuH)9_Id$Pua(s4Ne7%#sp<(&5*|FY=E@}6+mM1w+P%SsuRH^ z?oWm-x7xg}!6Ro6rRA!R%WOymvG4+p=C7sg>6Ri>h9D%A5$va$tsl&Oe&KgOOQh2s z4iAciO7SK zTJx@Gm(44hMVd{okE%{CC4&ohrTZ*$OfEx#pjj|@##&W7Q63X^dCj5RzxB$69cis@ zC~w7{oT!Fto}wv~kSkHw(*e z_oCf*hB4cwoo!j_Q6`PhzlP;F281h)BP+PYFBH_GT7+Mht;XrZh`M#~$TOCmwrPGo zbh0|?v!L1Bk;EmZn#s0nC6b zU!H+eL*K1<|9WMco%|v#jakV?8Q%|$r5f>HBn{S)Xt&4uBgvWnu;F|E;B!vSj2Bn^vt|?+8hrvY12TV!@=3g*sYv1I zLxPa9v=MiTM1~;!LbcI}2_XOs(s>OmlvGvacZSW~Oh(cpkU! za;N_cAXYGKE{a6ppmqTT>@?M|&Cp@IZ|;10Wl#w#>8)c{x9L9>p=1+^-7>!spfDH}nFfYSA8&&%fc=jC^C>EQAlCSborg63aNnHPkXL zLLtF;6~WmfKIg@~;Wzp~8Rf#wyEVO%sZ@$DIu+A@BsSIg1&QT}k?Sh}Rdt!Oj^T07 z$yyl-24GPKn8WlHhwB>>a~&Alh2kehqb8y`q16&EC+)2D2nbWx zK&d_!uyx3M%c^0jml)`W?seNM+%^Pe9#_}g%EUHNTrYdJ6mzhUVbe!VF_R9Oci#Os z527fHZt5=me-bR0|Dm7op-5DoA}lP3hXKXqZOV29RYr87DG1fpo5twE<=y&! z7k*@rMI6UTswCWaOX}UB@j>j2;WJTIG-t6sb2H+ji2Of@HZUmRjewh?u_gtgl{G(t zaa#{=0d*La*ePdlI65)-&Bln!X>-N2<%EMTqNst`^5HzXyqmCWE`<-j5MlLzt)Fz5 zai|b|!|*d10Oc5rH^5~~qJL4a${f|4b2-x5?6+>$fqk_Bk+@t>H&6)3Zuj+LxQZT~ zcYGHSoxFV}H+H3~-7wIKeos*Qw!73bdqZhC1JYUn*ujQ>f(0K`oLc1zBYLl+6dgYS zIG>^eEUTNb_j>`2G(zI%2U3HhfPQKa9eSPiE4o1N#LL&cqFRzyfIh1EDGE@L5qs|Pngj&TL zqABMOnc@NlwUInNUn2P1H(d(RjqSlfB#OxosG!80uyjNVfk}*zr^4_KhPaF>Q_!RH zBHTb;>6HXlpajn)KtMuKFtY$Uc9y%I{Wasiv^TTPO%F z7^#54VNW8ldX1dz0-|!*B&o|4#ra#->#yw)zmotP7s8D*l7ri4b@~S^U!#UF8Keu3 zD_rCd6(aw_5_kB}k>BfTbjG4b)SwJ{;H4l*ZvG9qJ)2HvSDm zpmQBY2;1guskQ4haB-|YIfInO!CaqpJvNqy<5%{kZ$yZ(Y5L%*##nnW8sRJhf7;<# zF5T_fN!etpU~KL{&lgx$L&@!27?@=7(L(oa*50DS`qj8%eOe=H=hh1^0oQl0#L-{E zrbh2Hp!E!Ozw`c%dan`7HcH>blX~lj$YkbfWx4Dt`B%_j$IwFkY_Nu6Id47#B1Y&2 z*_KIzSUR2gwZNiTMLfZ37WMHDJ9SNl``!~!^hRHZm2Ww+9bD_da)ej|u1yz~pl+sUd;A7uKl$vG?u3Ey4l+eJ1ZY=X6SqO}xoxWx zKF8$k?(f#THqzoi&%~h78=ADD04wvHb6HVauP~(w;3V6EqD3hv<3|S%bko~MO^9V@ zVt)c^4vYuL%+xY9xlZwR=S1jGJ#p?@78$^WOyZh`><0ew!d+7!1#uzL@E+V2jOg4YrBoV2m*y zeiErn_SqIhgG*Vmugxfu4vj5slvPYLUdQ8dS;L~{3ZrKCr-4w zSory=)Aq|tP?<^xE6Cxxf}IV9(^$urz{3hf(s5_!n}qium11stKLWe*LCWZ5czew0 zi4{8h_my2}WF$FT?b^3eFJ5`+)<^?=C*^@8t3PtYWyHj#b7d|+krnTXkql_~Ut+ZY zvK7^vwj^3vdo5P9Z;XT2p{xc%DU;Wn3>?{_xhTpI4>iEl0nm*uowCo{GS`aVWx15y zN1DYawF#iX6JQg*pP)yL<31I*E9TqUzP@2>FZ6_;Jc{PHy@$uQOqy76b^lN4 z8sny<=00BrKUzSdPzmw=^yeI*YrNN=bV%rAp-0!+wSJ78@D7sF8zqj(2hLB{+CX;!Kv4jma}e!0 z+kuRxcSmI85ze|Tw23KOQLgCPJ&W2~M05$Bc@(Z=GjQr_@4KU~xRoMJ)IvWVOwlVU zW8?RV+;xYtI&uONwQ;11S9{e5bA2yO;A$Bewd@RIMifP@5|bufp%*6e{B`qG#+)fa z_mwU(_=O_AO8WZj&(Sy$UXe9~B0Q<)a#j*>y*pj0CC1TFUp%s;3c1bQ+J$SRSb~XR zxDEHO184=ROv|biR4b`AKymty0c3XC4rnk@bq%22$z!;U+JE8IJ&?fkbu~?#=rQWVRuOFoBzzQ;902Ksq=u2ZWbs;#PQUbPAC|<`uCJxD(ITX8 zN!=5Jy|6F$%J$Ja#4chR-wkagR;=cG6`xDoC?6u|@Q|(U9}qT>HVnG@%dO2aai6mf z7_VX3kT(cct~^bvEgLWt9J_nkO4J=A+lxolW_Ss_dtsgtG?4Rs+6CN;4yuMT?puU5 zU|K9Ml=CNK`l*y%1BHt`zGvw-f96&J$bR2ROnI>9SEp$9V2|*d02Gjet!|pej>NjC zs`O>G(pY!-1=4Ix7yYb1-rWsegM8w8(CnA*UD%#%YX`_NP5T+78f;R+xN_cUM2?LW=0F&z_ulR90y#mGxEL| zDg;Jkz_*V92>eQu{b0qwj*yYdcI$i=IC&mq4hsoiM*@lY;YRUYh=O`WaL-@-*D69o z^rauUG~#9qVs-Ej%-E4cbf?Xwui=9X8{CIO`mCSc9)k6>>_|iRT_4tDM;GAASbQz^ z_yuL}UJB9uS8Y(w@%0Ex<3FOztbITc`CxhT!czT4(|ul%)0f1`xkzf z@;ll7wKy8d@$mpqe+L1Ha1O_}G*{o!9?#MB!#ua)U`_ zK9(!j#g^bYqa-ga@$*>=+&#F@2+B8#mR_v(wGcM;%vSLX)1Xl-^U16l4QPrdi;_V` zeD$nTfR^aX^ZKP^AAXDT0c;Wuqb!g)bFXj{c8GX-t=T6l*p^r**DNibs)g6y=6(Ix z_iKm>E&YvNWy0nb8iX9@_A` zXNig!7xJY-*a5>02-5{X#UzMrM#AmtL{>DQ+^)8DaSx|vq@xVcYJOe$!hDi1*52it z0ECV=64~hWA=36`_JwR`sIRAv8iP^A<8w`lyY$-burBgUtQGHm^bz6_d%(FC4@J5H zKb;yw?YRd5UB14@z#~dA{>tSf%BzHHA#iZh?`W>o{!>$lB?M^mJ$v)14DSZJS@*zS z55C34l6SKmdCf1|R!a>2Sj zKo#E-7~+=je4s}2!x)X{TFiEeINPyuFr>;xAY~pyMb9E*z9JK|E3Sq|w|E`iWHwYc zz;K-qi0?M7+KE#maCQ5&MC72d25h`-9TOeSRgf+~b|SBrA@_Z#it!0p9@O-6JK$*b z93U&QmRA*|#H8iyc%BX)Y1nkQX;$~i4D^bjkGshE7xOUDg^{s0BmuvbpX`s{sDIvN zy2tAegehR7Kx@FnPkwo&&@vw9xaHh3O@ySS-hG4-z%`16io4HM}Yad*(%Xmpxz-iu;K6 zq7x*jv}7&xROfV}LPVQE!i`hMh6C7kxG6?a8LzNIGmCMI)N+I5Wkgb7;pK7+>3-Fz~|m^+yL;Eh;CjaspBhnf@h6x0rNRWV-QnlPD!=jdmL z@ohuvm%8Ky3R9tPSnE^EuHRk_oeTVTOxa%N!Y&kd=R?0+a{gpPiUptnLhOe*2xhJm z!%6W^IUhbpTR4`64&T2pR(O>+|Dl#{$VO&|#qJN0_?vZmQ?F)MVZJw>uXGw?Jqi<+ z&I%(D{R#~XEed{bbGWy_>Y$W<10Ji#=E#UvNOCMH(B9AxU1QWz*{ zYp6%=nCA3R+lDhp-vEo0lhprO0w_L43Lq|8hV8z_s zxTpu?()u*BVdca>iV9><)R;oaE-i?U;LU9QMC|qY;bKaFq2iCq-Q}GO;urjS)XC>w zTxbVOyg=b6^N_4m9a;!KNQq=s_lSOcbXBCD`O!m%a>x^ww}TcD=eHqjvbc-DFOqUs zd_W{I?cd5fD7$$KECUE4q!&|gqz4Xhi{nRX1B5p?de*M;WHtgAieCO;19)(3evo%} zg^jp2^8Om-KpAv+DE`E9GAL=)@&z@wuoJ9kkdxecY+z|Mws>rOe`DDQAUT3aIMC8a zH4E}~nt&2-^Mpg_n#S@No23yr&~CeeAhHr#!n(*KOudAqPMow-kChLUr8J9e90nZO zmLuS^u_m%#F$@Y?O*}L7f{n))6=ACWixr9zzVk29^K%f6{kW=S~Oe>6RF@@ zm?0W;yYbTo{v1n`5^1jCVc5l2s63S819_gvZ6CF`zrh*MDL;?HAMCq z$dc+vG)PdbS3QoGbbhl^f%|Crj}pCSoMTXfZnB^wRgAj}S+`R(H~NeKlFSIfwKa1? z+UC+0(8>OnnIKQM*|~>bUu+d!iOfdTj{=1c?_=j4$SbwXJT8-DMc!5>$LWq*Ft z3XKh8zVo;TPLk)L?13kAt|E;?r{pWG zL_|5Vj<=d(%z`Vj_Vw%(;&$UWc2m{0`V~+;m~85cD@RpKw~&cZw91hGw`rV28H2m$|x9I7UZ7xi*G}Ua=95DDt=m!gA(p=Mi#o+gFBg^NDTSf#f0!$8i7v?2QBMfZSVHkvOLz2Tx(LE z2VuBlVj>zV3UlUxb&$gVTDo7pE6L}uvnfNRLM=3$M9L@J8-_DDv86~jEXa@yst_V@ z^lC*{DaulLZgsijiC#+ZWy?%_O9cL*d^dfu`N5m8ZUKf{VK-Vxnf!$3ThW${N-r?H zJ5_>U&=&9o{*>$3H#Oqg=TTZZ(;MjqY2>s?DlWC z+fz~3P?MWuD)us~|F*vziDJ{$R$Q{^+~=YEu|6f>F=s`tE6gQ&JrrEK5}!M-hG_x5 zfHrxy=0d`4L=tj(u|>~p12|sx#+|{|xycRIKV^*xTrKdEfh2{Kkf8ywBces;Ne+6U zkY5UJqp)H{aCaX;Wvf@)5V>{gyl`hQPc*ZejZ=lnz(n5+hhdijee<{1Wo)lro3Hoc zX+iD{&d6gAE8vJt=Xb3Xt6)GsD$tiRM@KD9Wd`-?jSQ^%59p7}B1Pavz#{fAlfc*f zF7uH5YwtCp&WR6DX#S)py((5`6EWF?%P}8*xJ+V*?djc8 z?C!CT5ZcxFMI{*dt8mDMFefV^^mC)g;B%Ty*cZ8-0@9v@#gE z^z)_&>|g@|qBF!jyU3wR1GM9ig3DpTxYn%`=bysa7$LW|fm3n<6B7 zGv_ec;8bK&vP>jlol#1P4hJr8F6t4%$;!q3(TV7uy)d`Q0pLn4ye!_6me;fuke!iF z$_g{|5vW8dimw(7H=DvF)>^EHQy|9{#NpI7+*wB49x}5DkPgAg_(IuG3@h98EUWI z=hfc_6is2q3CL=8ZHr)E9SR0o4}NXo2~Nz1UEOi<|K%^gXq*CyR5<->sIKco81_@(I| z;M?6Qdjl=1^ouQ$61-LwT&kH7I3_sd#iD5FYA`20l*xK)lZek4I^zUo`4tU}jCyq1 z?TY;U{~bB588yPpz@u_aDv&#FZcEl`iVAp)a!;+c^f~6(h7Ys&RwvP~BMHW_}=G*0}t2Dip7<0_Oj!p5rjQ zJi2tunoDW8aAX_BDF~aGyHS{X=~Im0WE-Qt`Sq*5f5aX3Re97KWa2ZT9`*Nl%ZM~s z*2!-$7i5@TG|pbC1+H@SyZ7I}}MlylD)0a)t7=4D0wg(cMVaSEzI1hZQq zNZ*@TuGZZLQ9lSpJ<1gR%Z=Ucn_|SW8F;u$_|?oPIf!c$hqKdPy!YNFMe&i+ zJMdTIKl*|Zf;n{Qu^w%Z&X_@M-|O?+DE>8shhw@R6Xol0xhUDMgbjR+?an>cmLsny-|qzF79 zhdfUFWv1V1O$}j(Tz2sS`9;&e{8`Cuvzc1gin`{DZ*sO3QY7dBahL~IBO-cc<4u%< z(&b?Bi7Eiv&;frMn(A*awjT-VGk+jw=su1J*ZroE#Sn6@P<@!f@j2_5xj7{iToCpJ zsJUy9c4-1hZR10Vlgg348grfwRr>3fWdOc^ogHM_fWm!H@Vj5VWwgU6w<8eA%9CAr z=vy~EN0+!1OPt9eSLaA(4XO;L9JiFM7ro7pE5gP*>CeHIj`#%@u0D09s>SnYj$~Qw z$m|fRq?_o=Ls;foIE)>4X%+2OJ{FU;Hc|A)w-Iuo7tW#XP@AZ$&3yhfyH=~dGunGd zJW&Xj1!#%2;m(VVG4ew6s-6)4gS8F4vC4nL%XaYzks26on2EuBTMOu}2kYxQu=zo6}J+nFv|zTf_0 zO#=10PGD|{;SM74w9(gi zyJ^=GRkB-Jp-d9%h{>}eguBCwNNhhl{ z2d46I!ulNnPi+14n2CMEq(}|EPP|a+dO0{(^xV_JRWU>xJ2rpbcGK8yQKW1SD0CW3 z1T{&Nj4jXL8pkNfNn~V})h>O4&eT51t00McOODpa)7wyh11`(up<2)rB?Ia!Ut(*M zX6E}S%@+bA-(8Q7<4P)<sBXWem;B}&G1qAT&678BCISZjO$mw+!vBG3aTJS3v@EPwxhF7ye z#INBAsZ3Z+?F5m!*I<>5@K|v(e$pOwEVQv z)MB8&7i{vhvXj^Y0_2vY7xNgL^VM*Q>^H)}5nBk0k_5r%+cwOh)$Ev%1(UUzAfe@2 zS?e}w5i9_|NB&tMH?Lo>737V8ba5%!FtnFB#{%K?Q|%kfxRy8#hZ6wJaMC&ZV1*)o}ed|a$h zn>jZ$K-d)OH z7=wNdgSj$R8ARduNtG@;e}e6wyFH{IWB{-pqK{Q{+mEW_2vW4LsCt9*eVJfpMQF-^>vly#{n) z{WQ?$tCVg@c^FAMUF7>?gO>K^5@=1~pE9)6C3EwzY`;Pd3a|>16Mzm80XmUyUBWbO z1fg>e*#aK+1`x@)I!;GW5M9>YUcD3*hD4lhNSxlP;O-3lu=O4j9!S=ynwcY$kmRf?$$t1fGjc*@r?lb9x#Hz?% z)~*A~@ah(gY~{YN%m=!_Exw zk6UM-bYrr!l%Eg9rmpw@NR1e_Cm~M%!LpwJ1b%y5OXNLtKEmd{p8uwszpHY+#gA7$ z^&e`}AW3f#eIMw<5Vj*C7y5#JBq^{JpL}Ck+LOCI80dalJh87Hz^Pac0KS-&pdQf2E`o8G;w|(5z0Ewh`dONs5KSKI1Z;rRV(R~V_cY@M{|2M{}b*=HTNb;G{Q=Pe7<3bi==wHOp~nSO9Ro7 zbJhTF!|kTl^)wpn_&^C`v>{6BcI;9krds*#g$}e$1j}M|jaz+Az$U|rEt^MBhcTgy zQYXO0*1zh^bW@Ep1OYdRYgK!c_!9~$h;?_igilBi6Hy}G1d#xGd_I0Ntk5zgiv2kp z`*EPA9NTH&;+3Gw{dZ_=%2n&NU04tF-Ty@xVI06Oi~HY;wp2iuio zne<`E+Ur!}1MIHrtW!wTq@!>ctPU}nqqEh*eWMZdNU+Aqn!nCWX6KJnHod*bC|qRT zLAp7wU9Y@;lmwZt>$~7^6lE{fE4pBiTyx1+E?T!^lXd2aqHz{&cM(T~!lMgxkc#>b z!CKV+RRLX)X1bf6^O97Lh|My+nVqVC*DMaV8s&5h9n8yXg=7$(Up0Fa4-0|HfGUC0 z!?n@Kiog(V`om@3T#A@1bgn?-JA%K8)?%yE8s0>Pp@4}xj)BcMNWY#uOhpfMpPB8H z3(g+HSV_iU>N1>|OBuE>q4uJ(6)Y^Or}=ZAs~*_kG3$%X&vR7#66of@{R@G-EebJF zWj=)=tR1M0Ufvgkny=|eg2bJ&HEVUA5gKcQeJ`I4kfN!~^(mW9)}z$7Bj|Pb&ETw| z-SYw?Zbs?STbdhX>SUMipx9y5K8W;Mz7@k{_TYow8q}3X;!lR*Z_~iJDv2wiX)Sl* zzz>a3GVUU?6VHF%t1AVRJ=-LqHr&IBk9LLJDyDeC_bM0@%O;9U8>amz^W%4Zy83hc z!A{D8Ina$EBtb8t_icI^x`ZG}hI;gsfcV$w%JeVZ{d6T8`H zL&;ZBmiizQ|9hDOZo1cwn89Wc?BVNTsUMNDp1!uLw)5KoCMejdn)p82LG1Jb=4@(a z*w%4mk&$D&dcU6=BbU3+6|EH###m@}Hu74haWnvjG9T4CAheFq?+OQR&tIm<`I-z{ zg0Nr7L?9l+Qmnu9=(G>e%$g=qNx)m+5V4sq-vUlRv(Bpx2Hg8It7mTD=0<0leX}iN ziy~J(zhX^Ih*19Gx(sUdr?A8;p!sgrbH4m?Z~%@v?-(Y_~pAY>0Y+>&5pqG|=u zHtK)&I^F|;B`vm9xUJ&JPMhUYOL;!$gKNnDa1FQq?93^e45xZR!Rty!zETyrRg1E* z%vx>-$tniS1@H;WDm;cy2psO{CA=(@M%@Z0FT01j^?~E+AmhD;XzmzXG{{Qss~E^FmNWVroYzVj$M8LK0+CiXN272ckvTm zb$4kAcKcO`{ov#^(R60}PPi)2|Ij6I;7=g|`k1g3ZF(k4U>)VoC_~CCe+~Vv8L$Dh^y)bhp(~cC*HX(5amKk zk0A6zKSB)GQkGobLr7)x5Z4o*{AHe1dUyZ6W&w+wPGQ_`7zi+(zj#b0&jDnj3#V_G zaoP$fsF`6UXHwA#jo%B0`QgP2w||-nqUP^i`yGkWaTxdi90g@yKeFPtyQUiOL3#2? zINv`zzuRg`KPnuf#<(?1_?LDpIzq{Sz-@&+CKHNu*vnXxy0pGmDp+3 zee^(Zt~1=@pN@--0C89F!coghE+su!2RU5~+!G;Nu~AB_0?3Ddmeaj-hy0c+rgbQHH&}16u;u?rJpQu5oE<^-TLHBi5G{{T zj*Nz5+u|wK#Er&Is&yhJVfQfG8*j8EBN1x9r>0pP(lb-+P}i8$$YZ7ME{MqV8LsL| zj`h%A3TYi`#ybey-03ELJvEFD+ycqcn4KTf9y#ep)Q-x}wcCoVBReo{Fn`kdL zNhSeZ5eJm~(SW-L2Ok*ET!QYMN}_VGOF0QfSX64`%OhTE=Hw-m^K*R~ScA7ZmvSK;W!;w? z0c)tj=Y?PK>d3|tE_(M8o0g@M599?=66=QiTn=Es?`4n(p%T|S9;o<3*@%?c6KE4L zzzvG%f5y`&HMC>|U+Y6tPXY zO}wORYtBv@Dl;d*fdV7u2~t^84=&7`i}LOYL38!J>Ya!f?Nj6*(+Ash`R z@28_;hjQ53iRL#uIpwCH0uAk;;Ne&FC%sZ|9Jb5Z#u#!oN0pXl;bhm}#|ZBbx3v@8 zWc%T@4T$q45`~bsGPMbe3K$oET_T=E(!e>5b=gYCyf&>U*u);lpX9gYG{?Q!&aJ@W zr^z=LWHbUc9NyU_yA z?j{>}nW)K7Q>5n*-1@DVLUn9k*nGx74+FiNsQmWpmBVC>1c0(Cex$FW8V2!OxK}zW z`5aaJq&rcM-|enH1IZQvTw2JkuxrticW3x7^SuL(`RqG}!#0_y?R3{r-xxM3b22Wo zbG#=ZR{6y(XE?{`fdM_%Dmw30a0>-I8=7O=XNn#dm7XS{><2S{S2jMjU<=H#(ayT2`$S@OgR-V%w}*|uI)nJFA2 z#1ugu21dv~k7k@mroX;4LZ-DW9%plXp8u|QB>=x8?=S&ZD2ilg^3b8B@mlF$WTZ-z zdQHmlBSX}5HHeA`1sUK8lpaw)QOz_E0G={8wYR*`Q!>)bgw=osqSN;G>uQ^v zDa&s#&L-^KnDcOShFsK8Xm~_`Q}~Jycz&dhizZRBr6M|*!$J{IZn&&)$FABI*kty% zo`;jatF)&#e@|gIR^3$>-;W3=2$#r}`(46@v){d}FZqMwGU*TdYcg>f_<8^b1wWCT z!Zng#7J`+fLmxX`9&>}(-n03j_b{3~tq=(|M&tiQUXa33 zo3q_=$toqt)+*X{=Je8RiOFfkl+_36cw<@&S%5dn@p_if%|jjjFr0&mFlJ(oPsbi^ zs5NpVZsuaG4)0Dn+^*aP^knGQqV_gx`~XPKd+W41WO$RP>A$fZWgsk^McxZYFiC|) zd|rn)x4AnRKv3z~FeIAs=KmQ223|WCn$jHAK#vT9>?ch^=O`b~;F7`-H1br_ySQT! zOk|;km4~F+PWYmyiccvF3eI(|t>0H$Qk3#0Hg1wYT{?W743*n+k3s4CiuJk`>@?=7 z8L5OgsDK0Y+AyVZp2Lf9v;yZX31EAe7Xt(>jdblqM@5)gS_})Zlh{rUZ_@ziOLtqE z|H)V)g^ZI2iAC=6e?Xi$M5G?QiA<0lTrjRGw?VA z92_aQ!{H2pE-_-U+w1@EZtQ-LY)Qg4G~!1Cj`gwh-f|y#{KKj+>8(c!Z zC7lBlj*vY+3?*{5zFQdd-4*Z-Jj_msbCnk)KBSWqjgD{A)W2^FXM}_Y_@>!VDcH{@XL9bPr@(|6NXf%6g2)NN=@qVKdlWYV!Y=AO9e{UY%AxV+wAS=N$J+y@=BJ$9f^*`7jfJGC`uZ2e$*JJz3$;acIvm{i!+p1Hr$ zTz=AA%9eNIe;9J4n?2m~F*4_Ht$Xc{VHpHm9~mJi6j4B3O;*&@4a+8zVg#!GyS=cf zhSGNo(2W;NF;3{6_hTwEt-*leKy~77__a%u71snLdBPjmb?;@D;jY;1yf;3rR2)8{ z?0O#zRnBvx&T#jRT-@<*Gxmq;KXKQYohHa4W=csw1gAm9p~Hq}5}G^82! zkLgka6bbx)+&A;MA^3>&K&t$BNt&?n{}b)-ST<#%>?-t^}K^Ey=Uw4mqAENs}v zRpOyoP=sYEl^EYXL47?dr?EhAWADjthvEtbBQ7%BY*dMSDD~x3YvwrD7P=;WZprIC zkvlmhCGC1usQU3Zt)IyKREnI(t{3W<&0D=slizh0)D3zeB6Tvpz*r?W3uTQIQznB! z0rM!;mOrZ_I8<}7u4%zG`^2$uAO^v>*e{hl^+9U)#UvJ))N5p^wvQMyrYF%s^JQQ} zegHMvH#BH&Z}les?*e1H?%^a$gg%89TuQ_&7w1#j22U<6ySk zX^?=(@kNU@?L!{*;`$fW)5kWJg+X3*#hPepx4<_0@7zLcVWK;|qzOnU@M#)({WFRK zSLIvfNPj1B_)sJklNyu>RRH)v^q~7!UAj^GpwfNGn3CwL-$XocZ=9GBa7 ztTGS$&*_(SlJ=P<9amG7Pu-JQFPBFMuqYNdS0CHWTEH#3U0Q{L4S9rD^FE0=P_YVm zIhtH+PkH& za()n|Z{Yy(klc{;i@BWOLyEYbzbD+)H#C&GW1@K81jH_$s?5&Q!MPm^TjMj3g(|_% zK?K|}(b&Skg&+g_KBe)(6-2#m+WFAW0A#j=Qi_Tu=~ZJ(Z%-rW)6&P-iiDK>SR?O6 zr{n6k^>+lErMl|G%q`zi5Tc1I97Qh#X^~N{7wGoRx)2tr{9J@FJzlps@Rzz+YX8w+ zG26vmGlwze4c{~u4}43bDI$1NrElaWrw4zQ*deeyV_N1P%5+d^y{>!Ccr80$OCW`$ zJn*0GykF=*leUZ#iEDOmNG*)O!hCxI0S|oV8eKjYTVmOkv-ctJk7JjYq*%BB}l zX|r3}31TzHT7zOmEN5HE8)^-{=@yS^gms32<1E41k}=^#yUU@{lz@}YS!mxIobxw6 zdV}~r02N2kl_95~R~kVh*dS<0Noq7IyFp(ehlux_hehe12bMEbSm% zz~v>f`o?V=>#S@0)=%o_ma1Ar<`ajVI|?v*lTKlt5wz@ORw7m}m&+NpOXvgiz`nf~ zqc3o;QWV9BLF(fu8vcyU@@0EQs{MQM5vyAt?

8bFwNiEpA#ef|Q$Tz}kh=8%OI!=2n>(2L&S##hmCgW~2Isoe`I7fu;Zj^8^_Ys^LwHHLC zu^9ABkyvy<2QB_!@OnxJ5W{7%BgU{eJx#isLba+B7nf^>q_-p^vS8U^$QcyoJ#qzG z1^Fz|WlfODrW7WJ&52;oq5;;6u-Vv;ugC+Ucac7SexQZy&!%7R^kIg6XbVq=I|!oQ?DW;#onGe3xYM>O#Qu8TuGBegGzXR_(7Ue z#x3NWznTh6iGw{d$SK&@oZmQ=7&udLIg$JNDzpXQP@i=I6c*SE`GvxEs8^?A0 zD{%f*7D4DEX;oF*+n7W#YM9WqA!Py77uNnL^NhDK$XiTu965YBy=?3_w2=${tA^Pc zGD`TTp&D@(ED66DyJ%!J!7KP_g#j{x>ihAdeOK2eS7zniXIg~6cVTjyi#eLG-^vjs z+-;4J@uO6^k`BrOJojR*6TWP zMshQ(H$g3DcNkGmn8#1rNJ=4o>wdC-=B^%nxjLDsflYnxV=B{6@hl$bEd3sX24&hoP)g7tMg4xhr3c zbmJgl#ufR z3!kh-a>zaAU8w=w7?3= zD#!BeEbKa-Ax#jHbW0WMM6&A72fZ$y(?{Twyq$R4I7(LWc7_{Z8XuUF5SCCy*SHIGP(k_xblk@G`bPTsoCRD^X`x&e;c4FL`Ah;yET5~$CYi#6Lk2Vu} z-EU_#d`XR*kOs57%1b?tZLg|yfrt&$*wgH0ZhQ&`gc4q!)f-q*)mYR&NQd#jYj`?bS%;DSGZ9xDbsUq+Og{C%c&rP5`%VBq1PqZign z7Y_eu0qT9?^b*V_xPZ5DPL&I@`4vD`*0S%*j2YO1e4I6I2CX$PsR$C33PYlS)L zSztFJ*~QuC&WUnhgMvfpPXMAvOq0Y0dt9drwpDwgUx6yw7MV;jHF7Z6yA}aar>&J0 zCxXJA=eex-gCMp|th3?!57CuP&Kc#M{_fLc9DGIKo`Bs`ak=Z0+0g_uS}4@Sw+6JI zCJS;N2qNn5R*j1FZz-Z|Z74AqfrbL|SFh+lCqPnxCpi*FGb!#r)~Q+u6P)z?0zlW} zf0S-Nts|)JfkLoi)$&iK@bi~ujY#I2$~(@X9|+UI+dkr4^76k$vfhbzRgl->c(ta9`VWkt&HbvpyfcWpiWb> z`dgb_Twa`JYaGJTCe7ugF7I`A=7BWmh#cF8Z}On5LL^C&NwNKa>Q`@?(P_0+b1AOT z0ZIO!=>%K~11hyGgP#4BZz(Cfa3h+0D|$0fEC}s}r9#n<(uvORL5|jODk=)*mE%$F zrk|5FTLj`UID^Uj3}pbUPX}jO(M~sMk3u>}rvEjeacLL9SMBeZLzH7 zIpDwPieka!7E7aj`4xMP#H5o{@A3YKY%g<{x2UVjelOZVPYP_3$tQ5bY9@zmnUQT6 zB0I4>+DpJ$b%od34`w-N_1v$8xH07{3TIN8uz~*DO59v$7!~mTbV$)T(iDM`0iAyA@Q}?1s;f0kyWILrqh@2 zf}+2t_CMhXWg0HkNB7s=rSPxdVG9ZUOTA(#6Dw7*?w+(3ZVD@MRRoud!_{<(GUA-aT)? zo?l^Ior#`P-7W-H1=-CNSvG+2w>Je0^aOnSbhhms#KzZV11XLdq|+))LbTBT7%KVX z)OpDd;$ahvyZPh=`C5XLR#DZ&7T`UZ{oj#|?h}r+ldLw1YwFVb6yLdZ!0nW1#*5I! z2Zh~@gVwzuso{m>EBs76%pnW*Xb>vgk060tG_f?qF_t~dS3ZGPC3dZO<1CFF42-zR z5bO>jd}P#a$dl%#z2#I21)RMr;`uFVN{aYa0pb#}37+|ae&`XtK_Ds{lrsC6I9f(P zHEVJI`DoxGv`?;WdJ?Igz$A?_y%ySf@9k>d4RSRt^UJ1M;Cg#{-yuBStj-WK zHG=hlC?o4+FlG1hw|h^tx9jDWN(RahE5;Nd?t7`F0xiPD{{Us_x)%F*P9zzW+kZ}Le+7){V$shQDnuPWl;yARH z;->|26sP3n`KnBw&+6|V^FVI%5@>;bp2hmiM#s3v7xaVhwSKp^IF_M`(kappIwoEG zja1s=bQ#PhcNCTu1IA+Crmk;3P=RPALg;1_65L`3%o)W+hTY=fp;qiHl%XM z%32ZrLuQ}>DR{|xAEK=J{%tpO2@SuwG(M)~fDMnKc^E!%>VT_vMt`=D%S{dbJnSSb z_itMfjpA3<+*r=0rWq4O+RL>PL#vQ}3jV$K=L*bOMHqU)-lR9va{-(YK6PT-VBUKA zt&~n+LfykVzrLDh0!O3cEF@7^oFP-O9fwLdlzU`LAO%-b$I({Qv+#wYlt|}jB58+X zDWxFFv0&!B9u66kRMQj6EZo38Bs^rFP>E~3;=KqeghUvX!Q)zV0jWUUUt{$lCJvOTbLDsqH1%)l z8lK_-LMegayr4j_h9drYr(fwm2V?kNe?sERnfwVM^$^szG}7SRU>-rCIcWZM#a z!4KRE@ouYw&e6;wtj9!h6+bKTY9r>}bnvu&a+sj&?GVe1tXd*Mf+*?*`AT1uId?ffy3>?uvfuv5ghR2Yn2%IeyE1v)^-Ep5+V7}sIeR~`-Y za63P_%=;80z{A%n02sB+bc{MqA|6O;GIDy^976OEt5HZV1@ewyFQjwDvqId4=mZg< zu_iDqjKTnA3AD9^2ka-tw!7Q{`mpfxO@^nbPeUA`HAdRgis=$;QrO?lD4Hz~Ax zj~jl`Cnii0aQD}amA5f1mI%{MCZrIvXI;qvNXz^7`Awo(aLvz`9{B$=bzWw>m)Enf zFbOA7i?R1+V2aJ65Kb(-(bNkhiOx8_YIN|QtZhqHK^)fk>`BfGS-FJ)9YU>u#0soJ zEl%k+awq+@%o{{5#x5V9$?>&+uFYv*Tfw_#G_g}?$BYWHxrCfNVAI;+qXl(sYJFfL zM9HTmXA7REMfDxB0eD7BA;Dn(BwbSVs?fZk>sD*vsm=D1I`;T^B+|lq)jb5EERGP=SgrxEJk&<39L78G#dzsE((Lg6iY%GsDaziH)BT(AcH`{p zIy$ayJC3BC?x&(nJ(M66wH%YU0pWhaQ~6Ki_QhAe;RA8~Y4W4~j}Dre1hlqVQH9db z=m=9O=u<$nr?pq?ra|J<95+}gJ-+Mhu_3OOh*+6W{Tds|Nd+w+Z%dW-3Wr1Rhb;&L zePDl6FXkb@mS87f6m(bVi*D@Ygypw1NF!~(;omm(_50RNC#Dy_p>#2D7mu2I+p^;i z6hav0a+IM1=Lj-7N@jgpX4(?1@_Az0{@Z<$JpO#!VH^#RnaPtv>4zr{X^IkSPS{pn{s8 zq-pyB@Yi~_m?%vqec;5x>(HLzVrbAbEcNLmyZTtdCmvWE(L`Gg?S<>83Dv z)7$aA+Ixi%s3km1Z)$17=NjSx3RywU)|+aMaycx>c= zDTDQURZ-Nk6?W$rR`M-E3iqG3N1FiSJ^!j9m#0=Q^(GyLrTUtq;-M>wl=B{+h*G1q z`ny?())RD^9h7SOa}ivAIczh6SHjVAcZXW(W>m|NaYdHbg~8b78q^3|-%+VQSTaf# zH1dveQSwrBjt07#0(!-;xMQ$C=c_!^a>E)$_?xipQhy{VvHR!rP<7CghPnn&x!}XR zW4hccj#pO4dEBaYSH~1HA*cwrP{eJ&=pFZ>dipktY0ympQ)llYS}WYnCJ0gWg99rI z_!sTcwjin_2!NReZ2F2`w46#}oqye9RF@=G1{`c?0mxDzN$jy8`^XJ3sNTka3JqxE zE%nhn18NvKVk)rxkXf>1471UeRth9p(vwfB!pW-xX7x!d%cnyq_CW>93p~9&#${h2 z)=8~-$<@JQD#edBM!t{Q^|~<`I_LKCAMdV2fchgg{06t`91eOP4saTL z6!ae}M$jve60zxWKHAdR2yKp0Ja1wbTe!_^`f-|hiTuII&Z3~=Ud;M99H!$v;5WGW zxS#fq!pp^E+-!!2va@+c!CG5~J88cN3=UluUvLck0s| zuxI4dJJ&|H1^Y|4FYn5ejZJE96YWmdi)2tE^7OdAMC=3T#ZBOJer$Za6Hgmt_a1`= zMH^O(bMk8yRvaSEIKrBWg(tkk*}`?t&yO~S)s?nl^Tg=hT&T;8r8%|2hYQNYkE8%W zK)%1^c2f#kvH?8IrRcZx;eX)nn#adWr!15x))7RjmYo5rJgiuvF_l>_(Mpyu^)vW3*G-C6eL_0h!7fjC(@Ze~{`Q(1G7@I($#f z>?DP*r|~6uT+xoZ1rW{+ausb4nZ*&DhIDEQxfY@SU2|1M^Qc1MHP5RWh)yO8Ao%V< zU=dS6{M>BpjH2)AJX=J&a_?HBIMN8#jhOCX^?I9sGl2t@7VYtuYf9u~K#MlY^lw@n zw|=u((?2x}xiv}URuBN`4rYOmb``g^dcyT$f=sOyqY@0cC2YTpU{>WvJLihUL)8%m z0mEe)W6em)k5j@aTQwbwcCT`gjlXa7bLmmIi7Z2+h88aRyS?%tFEf-5W!jR+1&j%b zu%+XF^(lm?4f)^Y66q)a?lyK>eGE}o3TvRQ$Ld4Y+vCMliP0X>v4mNC!Nuo%FZHZr zK;t)e{{km_I{_q(L=ug+iq!n^iEmx|Uk4dtVH-W{azL6__3)x53P4TJ4xVpUMG|c- zW$$u1&(ijoUn`vFrZ%r7%EtLcwUKw6zH?Y-Ke0zA(L+o+uZS662Qzucx3 zcI|olZQ|6#Jd_W#k_wQ=4(&XUv@vukHu3A=bF&<(E|ad@;^;%Vi<`7PU3fyO^SsPV zVe)R`rd72D+C}Sgbwwszj8NH3BmizE72j?N87SvSthuJ0#6r?~S#*j{Sh`^Vcwr|H z04froTec;3qf6!bmr`qUoFOHAg1lSxq^)=g(fbr;Y%fJSHcdH78Vj(iG|-fO0E|xT272XlwY!B6`uMZhfFWL#O_!A zSRxrosML%>0-7w6cLO`?q}_1DioLHx_Q_9LXTxgxJ!KUFn#U~~Ce<@=Nu?-mxnxPa ze0sj3F(6;gb1+t^tC+(Y!XzBqu|Se4U@A-huk92k>jw2n&^ExTiZ7w;!)O7>T#1xN z0iZk|TyafiQpJTPMDqCqwqYzmnOYCYfIF712$&RkXrhOrzg+n#4+GUHEaK{B!v1}% zM#Nl|a>r@RW-(~6vOjgxu2@csIFETN5Lu*#Bwv9!xp&^Xw|8Am~3_9aGsID6k|x)aAbcM=s*GiQ&Quu&&kjf zzLo2?{=l}G#1{2jGD~z|La5zHc`s(^a!Z|>j3C3fMhhR0TJ+GL z`VR}a+t2YOdh9~FKfg}(U}a3P3@)sjyWtKkrskA_X^nBuHutd+%1l5C#X(P+ws5(* z49JyO&TyC)cIw+*XS|+bx9oQ)kvs8WSbmJbMIqGTsNB$+Bgq0EP~HJ29SSBYwMF-q zc*Tc+A5y&ap`*0~_(V4oXe}nVIEXfYl=1QQzq4KWC$}r1CN-grn2!s~maRQaUYa}C zweZ0Qj|;v3RLNAZYcUA6f#{UcNSqviWzr*5d0O&qw_18L^%M8-&ouxocl_z=D*7ue zI=ksj0Qnum*tEB}7&vOD1m}izK}-5}kr5Tdv+#gbCIH7}?+`PM@wFfpaDAL9Di01^ zZI#UG-W0?EWlUyA{8h(c&9#3O!={%^*T{D~(G9GoO$7~_5l;8PRzu;lzwq?$Um~aN(vya|N3qg+RzJ&eW%L)2?Qg+5I(mI32wlDN@E2i9 z^{=F~h3Y`?#gZ%wo%NM*f%c`O2|bA@?-Rjpqi1#T1al@IQnE8|ZFCQXDwxd#+B9EO zad!S)uL3rn%1th&>39kI+(udq;}i2m1B@)t=oFPzWEi!bc!sUkFOUyExj>H0`p7sk zR?7-|M4#p~X9lqMixFwL&ePkl8JC|C?KjQydjdAZIGz*d&F8Xp(K4uR3JY1)Drv2v zJwpO7MHx32`l-n(%TO|6*CTfyAKC=9|D^vDFAhl=%JP>3!kW`su8r@^uLs#^z>fRG zhg*ZpF;sZ;L6??Un0Ee0$DWM5SQ6C42#;)eUZ>loI>?3~+Zjz;{2H0vfACS=neW3T zr!+|~PjPLzwU{-Bp#_}mK|>(|tqOOk(?<1Of#~ZX;^8wlGI4u*Zt}#`IFdOs&#=vW zm?|-UC29y(2>K&n*BPqmD*K5dUArGscm_jc?m7aqB?RI`J`WkOirb*1qb zF}BIrm}xhnvz-Smo$KD#%9PhhQ|XavvOj{|3dHqW$rEi0s>wxWjpSlHSV8eL> zr#y8aU)3t0=m!>(EJR-*#-kfTN;x0_k8kc=XgAcr25aozN(N(1-|9!Vv^2^DPdb{x zvQIlM$k?Ob4aR{GNfazuZ1j3-JY81Z@ z=ivM1FGh#HYbMo*96j-4<|w*XS#Keh6Mq6h4B!(kAFr^3$aLF>-=H+^q*VK5xX!@) z5}{R9+6~gre0J~l1^-^<_<6vonhFUSDNleA8<4ofD@da2RR$AuK2*+J`pyjctnV2W zav@!3vX6Sn=!qfh6j3HZ<=25YxfEOsDp@(V`#SwP>XCN>*QVb4Xpq2B_N_LP2xFx} zCSV@aaJrQSxZ<~SoNbck89|SGc@0rjJ-wB8hW)ho)+%*_TS}Os9x*j>&00&}avQKh zeP_-M5k)5z!O`mu?K9O{!VY2t@CWGyo%J|bVHWz5CDK~WHypjmDM3D6UpR%|MrT=lCt&yAKUTL#+}b-068nf7K|>O*Z5d+T~RA^GQ*6a(Bo- zC`CAMTVRiv8KkLTSO5?q>YL84v{@AwH4pGc|uoe)Hn4M_&XJz~)P!_i&5 zR>BrLS#p(q+90FJaTDO=uG=8hGF=w~&f;d&03e+u_8AoS;`Ul||AXoq<} zKR0bDH09sxn}`l5XNn{cc)D=6LEKky?)cw&l+l&KR?>mLgx|nQCnmH_OJ0Kr;?=&b z^P>}st+{bALBU+70}2M2ptr7;a`I%5QT?;(0rIb6X&Iu9Hfc`}1U2-^9E5ot7aah# zZiI}fk;B;qQXo8}3iFfhZaRQ3C)uQOw_URY9=x+>V^s81Q5Sw8)D?>;`@&_g@tyNcz;fo!idIA1&IUeS@>=po-IN8 zCoL}{IDc>)7e6Yg_Lb{NYK{e(E$s9k=Cd_F8e=TAbpJt|&N|3W(SGDjtwXcW;-3kr zj5!NU*zUTnPh=lLLy6hs#56$E!&9FrI^_G4Ln^pvU7;Mf#9<0oPO94_x1f6`0SQ2a zj}IX|VQ(4eRi&Q;;pXup@KX7?t(pz&oXmSMG;UZVI8eYlt4JX-EMRDVOfG=+<nFp#WhAaG6H0}fUGzwyI0n!Jpd3SWjv zHgR$eTtZqQ-!$Bahf)4y0Q!$yO$0p;`hHYXUeAyQc?xQaVqTk-52`?V#JB9n$IiQV zInWBkD`MV4+@iH##nzobzvcjwkv*Q40hg{Y)!Sx`b*5rk2i|Z2SfUI-8A5dMiei3a zssJz8LOKgHHP29)FF%$Miq^=^enD5v*B=WT<-Q#egoiQ@+XPG+NEYzDq!LbN?gJ#U zUrL@UCN{SAQj;uF+Y<4?jDw_Dv?ywVR-7~XI|8A!PI#J0#|1bkQc6)uCJVAOdte3I z=FdNh9W{8tP%1|5r{7T?|1X099*vcea<8zu_$0YpCQRiSd~5W2PD{f6O)wt(Yyp%7 zsr4r?%rCf^>B$SHnCrL z1n9>(T2bACan|3de9WJc3gj$-u=w2}Z=YMv>JvPFLGbx$VEN8q_t&USFL&mkH*eg@ zp)kd(as!MIwDREMtrCQ{_Y9gzJ2xB=8-1fxHsaFb45Yb_NXv>8d{y!#vTFiwA*W%` zr-2cM+=f9n2WCv;5`uhcvsA1zRNQQ7FULdf6vwZ%+Lh+AsK8Bh3yt4$1;YK1;~GdF zGBqn|c-eBc?f*1c<6NZU(I0=c-;oiIamkiN z(Qkw(Y-}STGy?xc#faMXrU*M&!0+tYCBya%O30r&t}He{g+*k8cUEBiq8a7<#9<}A zLp=#>ePpchJ0l7I(ECySeXu#!z}+3nU(Y7Yqg35O@Ps!gTUZBAvDzeJ_Nt7EoYo}l z3~Ly4sUg?I(DD^fQi(5e=)%+KJ}^$XTmsH41Y z)J3o08=6{l60w4?7IWf`h4S}OzXvvUjk_lJI)dyM-o=@P!Qi+G?IrCt*xzUnZ9i_T zWK0Tk`dL-A&0h(fRjz0kh6*A0fKBo)w5pIT$573oHpZ9`>bTdEC4NWC2}nOOz0pKx z@P<`aW&4X3yNh-b&yy7fpH@Id3H6F%5-Uo{Z#zk)nxxx}ZCZabP=&{8IH%4*v#mE| z`57g}c>Eo>)MKGq|8Px}9Z`h}+9GAWiVKgp!eF{RmU?yLka(zWxk4?Vcu4Z&ICV=| zJ$9DJm&tP;=Y;R+3l1nwuPWW!tYxu15qoE+O$+X){!J_clueb+zPnxcV(%wH_#O!- zgxdDTXEVf$M%WHaXDTHcch_1c^jAkFz5{`X&d@c=J(66lx!q~B^IcOW8M?B1f0LQ# zH$UTe+tSWR2r~knG_oY|kVREruX-SP{*>%#c0~4R(N{r7fXB_pC-q8>)#QkiVX^+G zT9l2CZxI2`0{pKC?^cL>M)Q3Pa`;qm4`ms_1XA}bO(fHX?I@Bs**c*a=qc{IM@DdS zdUwoG`m!wkH>AZ_Q_uu!xIG4t{4)l`pO%cq@9s#3+DwTKqE;t=-|{KNo|K#wN|8xW zDF*Z@C~I{*5iv`v-FC%lndMp!Z*S?^w=u*Wi7Bd1AOHr52E}{0g41cHZV`e{7$Z%R z*c;L*a3l{W3-!wXGzIk)?Yj5*N3w`nDG?zJ7*Q#-|Kl}Zg>?9s^{36PQgU0)1yV_KbE=WQt-RX@4EP+Fr+$W?x1^{}{Q4YRCkXO3CxT9$hb zWZ&U+2=sWAINX$+9ttzxVTG5;$u#_VuA7& z7e98?4NDxkQ1mC5RdK1&0gB~ip4%<%qG8OP(ZA27HI)-zE2-j9Eyy~w))HMZS~6?o zNbbdE%pMnW#esOtz#YxXF{OIN+y`5-&pJW^(&fzL@ou!!((CYqWc3>NkMuYiea|k4 zLmeMe3qw=fcxG(UA*JvgNuV@}IU8vBWBm9fDW-|4seO$4GppaT<4Q1L91tv(XG`69 zLUd>_tKK-+X)_@|_*+)Bjlo!m`>Mpn0FAowHYyM)GPZ2P+DtAPfHXGA8zOWSq0+(r+_b9r5kb5m5A$hS>AjJT(X=_Mlcl`Aw!o2k;%AlXdyDWCDN8m z#~LYgz!}230PgG!=4_+ezgd|_X!-X((G0|}%e+-=2StUVssViuEm;QGL&!r*r^mS; z1}2@{ewr*VR8Vw2Mq7Td>HggnVQ6m75~l##kDU-t$8$fQl-p|D{s}6Uqr|_q`8{+2 z)wcjCEZ{hCZqiFMff_=uwAVE02~~QcD?N5-Qaa`E2=ekfc_UDjj@3x?i*-OU6Ll5H zK4G}5BwGp(c>a0@3gZL&yINDK$sNOIO(>m;n~t2!|O%xs(h zc_EUZm_ueDWU`hH`~pL5m5gZ7vJ{VJ!9^w2#g~kF!@(dRhWN_jsoZK0Ke>>f|8Frp z{K@5yY2C~GtP}!3UEU_OH|XnbV~utAx&Vk{HaU+UcJciPrZ3tX=FEKu+voCYZj_%u zQ(SgpG99Z3ppg_Hm94nH_>_N9v{D~}DQ~Y=Ho?=pMG7Y|3r49=Q|X zWh${5%1{^mStjN#XoCifC3k&$a9aAJ+Ti8Pydc)}5^}5O3Ibq%2_5(~@JxI`8DSKc zgFe8v!;W6Om$;-Zu9imUjdP@M6aTw7k&2oPvy6Whzc#zeY^$6?jog#5AFRpQX;h9O8~(Xy8yr zD|XaK;G%)1B6JCpGlhD&u=cc&i@0BYC^G$=Zru?$tJU8I(586DbK=#1Rft|&z>A$5 zR_R2J>MWSH9|^IP0n0#kA7X7lo}we{Mvvu$FK-mFv{lx$)fm{Xfif^{gX7?c*eDE& zXP+O<;vGfd*7!oj-$d)u7SpXi!K?7Xz!d$;8UgD zIrOX&WROcKUlKf@9W&4&c>CWPE2KO#LowO3umqmxqw-{J7DexjosO6iEqolOoKEz) zvqSC%v7yq9GQ8NUxY+d`%l?=^|NOs74LEY-)kLq=h`Gbde^f?T12u@@L%eo}T{!c18wB9K#DN1F_*qM>M=LikU#_}+MnliXdm;{6yb6wxak%>IvmqWPn!tXn zmsSKAwGWH1YU2;epk&UXQ+&H{8j<|63KSf3QZGH|PY%UIcE^61Uwb2985r9G%JqRy zk|!)1(O>-z=5c_Rx|nAo3l)xVrUGMpnAPxA>+r z&IMK56|D|J^0n!JnYbzb@eM~&8wAet(=Bjpb(n@9CV_VSG#I(rAtee}N|A?trG9yL zI2SSUS+BpK9=X_k;7d}UIocH=O-m>ddXmXvd0W*sU&Z=nRx)Gv#O0U}*j-e0*G5jz zwcad7+y6Zwo1iVP3T@HV_DaFDZLruTl=5Tg|f*S(}RN8>u{ty_Lz`{3tG<^YRO&bRec z5K30HE#@AY7c);p;N6T%l+(ebM(Qdvmc?| zKW_7!fF<@7#0Zo1$}~%h*8Hczv?@Me%{qg^X;r@2eGpopowL!t5LiBlg9{!dqGnXM zlC{$LaKBM~N^wP}kIDd|(@Z+iRC!@UN~I85p+4AV=y&j)d<3`^B*r;r>aC~Q+%`rf z^31KQP>;oa)AuYMJlDD^c^ArhUGM|Lis~7~{iPL^2KxX%o{6MNb(n0{>IWDHOzr@| zTiT>2o8M2F1NIXP?0UHAvljBYs_W3q;IKekjjPN#;@^G=!#_5jht^$?VMDHTTCc%{ zhG60HgJ$G*grZk6NkP=_QN1PjoU-5)!?W<5DlsO4fK<&*|F~I7!48$^Y&aJWpp>vN zbiB@fd3d1;Y)M&k`YP<_2?$9Tzl0#D@QoH*0=iNH_ z7Wxl|En$J!N|?OzwSDAGBM5Y{e?pMNDuhMI8lCG)&2& z8S&P<4b|_bCr4RNk6w>39d1$@6p~3dQPRm^cXYb9=WM5cRd|M84s&mfj4AN-q#MpL zCNvN%&7h?2Rb@@Mz5sU@wj)NF5 z^<#_ehq9Dfp8%tzz6z~Tdo2PN*DobhEZf#itwK4SfWaZFJj4TU;v_7fcr?V{ zKR$8nyHEw5yjH#X;f`SguXA*+@a{3KR@CEKPN*~EyAI}m2W*7+8;R^xgfAo^PG6~RGf zQv}K!O~R^>Z-+7d0QQcvMu?vcQnHYN7R6D4Jpx}(O{XZ%zqB}=ttcQ3I)F(?Y}iQn zd_iVsMyXm~2z37D*LJ6Pht&MKF5%GXT`f_@O@aT*h6+TA7=g;X2(bq7vh>8G?vMeR zIr|T+BXEdZ@)#OJ;4$3R_`f2ZHkcv3l$gi7Gl9~vE&sWB#g4?Yn$~A*qWX+>@jLr4PvM(eq_rxl7zX9;kFB^sHm)d^ybTtucex@`-7Ps1j zCBlEe*5I6pn=;prO3atPyd$~g{eWkpZ(V=lLWn|UbE@ZgU%i$ve`3t7f)|N;$Zctx z=ub#~@lka)TV~6}bUu97041Knmsc{=P~?v;LFispXvn>@O@5z%a3m2%70oB?G%LKs z9M$l`+34~k>fOKX>WK}}f7_6)^1z+sOu-;`*{S;u1D<^5O!t=ATrP=rgyX`}1zUv)tgxY|#pU6`?^k_#f zo@&h2{;s~`bTOIAD}_@DK$LQUli)czF0$QvHOnU>Yaad-_ljRayuXLS4Cz>e&|^KR z;?z;6EH)woU}<_P5P7{y0lO0<{JYr8MvVJL8nWlOv9;SGIvEGuQ?c)WdQ@}+6PHKg z@D?UxO6QXM_)R{NbgR;BE2er`7AP6}evw>)gly3fwPiMGY&P@Dn<~YhGXg*2GqT{I z^jysb!#!W3IRFP4P*TTh|<7YfsCY`f2dH}(96CNt>600%D~ zzTjmJB<=>UkMhpexTpTgAtjy8=&6ry*T+*@wl4Byt^dc-rvMdpO})$Mf2Lxv}CaY5wy zCjRu=L~AnO72VSuC@)9Q(J;85_xy$(s-=pZUp&3;AZ~lIYB>1aZx&G}^hM(sQjy66 z%#BOluhP&00;bswaA%XePGH72gF#fWnYwMKlTib;sP2`=9+_vI5|Zbqy&FY2V~#Ns z9A9mALo4W1dSbGu<>{t5wCEKWqzPU}37qe+w()m($iTU>R9@QFw|_Y~nLFyTty`kS zc)#;^R}G0r`rzCg=t(i>;c706+b4kQ9sQ3vp!ECB&^o5;N@B?djDJW=UMWjfWDa(K zk-A)%F4(a04Jp7h_{akJ#cqJaRi~tj0h-~JpGn}52wuGU>WtXx8ofFzg%(eL%p>y3 zvI*}SD@D9yvgVPT=9P8D)P8(hP|u+QEXw3Jza%oQ97tBJnKl@E+PHOHCDu+4{p=aq z`)}dbYdTSj#L-d`R52X*Xc>l66j3C+@wYP`R;m9?8=NV|8R(aLFda$rmvkC#c13tl z@$%Kp6*T|zzKN!!Y=*^1gNA6LfwvHkbF)m_0pBNkagdvRUW@~{zD|~UUCOiN7Qs_j z5Fw^XT8&im)v^Qs@dJu)3`v7<*={rt8b61^VjgDnX$5j!ia>Yz@k$y>nYS)Jq*1dm z+U}5(CLIfW6Y>)+z?$KP=sgdy=ns;@A^l*jmX|75{Je3pM+Il|6Y$;ZwU_}EJW;uH zgPO}xnp2)PN4QAphinY14-e1SqN)VITMrtZy9~=X1H^g5Q~I(Fmcu2~_o!)ZAxIuX zD2rSsa=xaZ(yA#8Z+Ajd7{>)9&#F}9hn=bwhomU*q_ys=d`^U=YIRv=kl(Ip*iL=+ zX#*Jo0F9$hkV<=JG{35!{@k!_5iR-`_%Vke4oFTB6F(zkgTM4?^TO{i@Ijux+nhx)bl}+JBQ_T66x=Tmzi2$rf zCxWZn+Mp&n^Y{{a&idR*-3-8wgDFN5Uhop+1VQ}C6zKY!Q8Gj=QQ(0+b(Myn-}NVH z<_7#@*x{b8jd-m%Zt`=VH*xzrkMuON)w3*+scNoAOI}fm_l+BUc%u&T!O6h^2ULB3 zj*e||DsT`Fp@2i}D>qNUT7uu|v~vT44@EgnMMJF5Ao2>sf`8_@!uW5A=)UoLRe zOt#dG*Bc+9;bERHpvPfX@uTw3*F~cGW_~-VLcrOGTKUH&Qej5c$zAC!L`5H|8tY|B zuc4hk{${N4Bno%KUy{O#Pph+JGSPM9AS36*GJ28+95Cd!qM}cKEtl234pX~LC@`l9 zsy>wwUh3iw7zAFdeaR)Quh^mDu(IeONLm-aEh9WAa%y5#s#(}H#sK=_Vm zXxQI8sZ)(6yaK4v+&B$cZOwyt8WFi)f43wb@PJEm49}th{b0pjcBJ~=k&|+|LFBLq z#<1qA-umLqV`iFv2vA0Aj1yPA86PmL^4;fBWOutvEpaFaSFnaAAt*B(7f4g%rr*lle<;Q#JVXOMQgwI@T{fd6BIq~9HAcFrXzg8t~z!) zoq>}Go7bf)1nS5F3AFeyx~L&ljRCjrs{$b3jgnf*!?~cM5*jg+4+hNRJ>X5GeK1!w zH4is;)f-|E0a#C?zj+LkF28dTX#+XLMsT^oLKS}!b`^X=Z)T~>IJ$S=Xc7$2&gqHH zzMxtI!N0+p>xaJLD}1qBw)6l}f=?6a` zxYsY(Emdq5Jp}t*w{#w&?PU>L&AC;Bh!1`9Zs?{fLEdxykt^B>#$7ja?K5*UsZUKR z5VJ}SZOK`|az{GRlbF@Rh+A6d z_^E`McQZ>oiSbNRi3vyP*ofkPVFc{wiSH2<1-XuQyrwaQNF;xu+C@AzWzN?TA`wg! zbsN%s-0h=z7}l#`LpcWM(hj-@FSM)uEb*Zw+jtE}AbcfVLF?~h13R~B?AXhNm9Tkc zX?%$pUK5%D>S-93`VK~%WD@La{Ipk3C}r%!npL!xzFyFll;k|hPHzUS*SYT22C0*d z0rWGS`f5ZV-p-@=An-s-u8R{oJR$A35ZU}UU*4~JZ<*?SGDKJGrKDb$xe z!w?ziNC^ryoZBNIq~lJtGvheyNDSpexGDKf0Tm2Pv^NkI)yzn?F*##wgvFk^h?ULc zE$XxwBz{aNDRW=gd=3%-j_VJ9L`?Vr0{&D};nJw{Esw@yb7%|{JHhkX#j};^9`WT- z^nOE(?TNJ(&XIV~r0*O_PQo7;>j8+ZvkzGM7Kl}_FOTbJ&!6j2<7Iz!C)f-I$01Yf zEM2^;B9)9viXHmtx0HFDL{c6^7-R1+6VonMi%qD>|#x}Z>_&wY)gNr zq}pCjEn()fXffTV{}9%f!)ByQZ+{6_wr+;}e8Jb4lmUsvfZpgh7a3FbVLcO(`5=Uh zp;lhyL#gk)4$p<+my#zS8>5T8enYb@Gr$NtuR%#=9N##Gr*#`wP)!RSDqwwEUeKQN zwXThfOcHk>X{~Q>=2x|Bd3+6cIK~_Pxwo%(WpO`Zge{kP#V+>=Rg*A(r6%Q2Kb1?k zZLp--AKB3J{@!Aw&z%6joU1eT&cdm6VdU-*nVDX(y+H-}8Gv-ur?jWLQXflWhVLJo zW9v^*ukSYD%C2n6_3;EbPD4g0-u>l<2Q{Zsn;csyc7Z$VYz-A(QkGsCObh1{Ba0ko zlc_hmLTXM)EEH3N^JTC~2adm3ZbwOmO~q5gL$!iKIf<2S3O<*DTqnPD*jUWTl;j4q zi?dG>W?}2{_xi6G2%yWHZ;|@vxW^53jf=+1FA~FgZ2*`(?0B4B17lr^nxylCDoHJ> zMP6k|fZN+D= z@l=EaM#{c#-$)_e`6zUaNF*78frZts zt`~;Wy(mfZ)i^$Ob`@AB;DAnB;WyRV7T`mc(zs+@fxi38c^$y{wpSyry;kK_%s!b+ z?J;tu-1tLyV@8$dGDhiWZd?bSH2Zod*0m+N@-L$p`%RN99y?GOc~;rYyBp# zi38>d9osjrUCiE1|K~FGUEG$O(Dc=2ZSNsf50|$}@*x1=K{f0}S(ms@a4d%aaz87QxbBRLuZajN^?(Fdk3Su6LgvFjM- zY+{`}wTh8fl!g`rR+TK2nOt?eXX`o4xDch_Jbx>ulLG|h*7IZmB`(AZbNM*SJm8(C zrFJf1ucfDk|A-ucn|eR(Vygf)8bcqa>j6wN$eZCux%))IvxF(jtJJD3CKG z%WDrP1-i(@)a2eJPtQ-XYaiNVukQR0B4bGWGsd$7QA3Q`{03`+)T1f)ACF;{8sA#I zk}Q1Z?T1J4wXxx>xJR#!0Dp%81xJkJn#Q*IhjTe)gI=*5jQ{QOs0>YywH&X>Jg4CY zlDZk9+GWjA$C4}GekLb_$5QXMJvIeKqEXtDa*qT0|FfHf+bws>&_*H+pXv#Kr2GEI z>4~-zEk02gUm1flVpkG~t3dTLNsUSCb6tM`ky1z{96ieM$M7l4Ancg<9Enf2|H%(J?43~t2Z z9d|gj3Arl)#zUM}X9Vc!k6=?^ix8IbBeDYkwf_>r8qfGT7T|?%!Q`M-Pw+EV{2fa( zcM4bvm{5g>3Vyz^-EQVlK89Ns_Brn-M;NbjY(NfN7t%ZkLO%gHE+BuJ=lxtVjo*W1 z%MaiNn56|uCIadcziI^(iR0&s5l!n>kh)~U?M?J>{Ow&n5ucB}69|A{6wb}OcgbhU zlR+mWD-OCt&F5+?S0IkO;0z0BIWnX$K0i4od~EL3O-)oKN?cN+XKr3LqBTN^D?LPoKx30%ju{4$%1lPg4!((K8%e)?o`)J}2G{ zruHlT3nA{##$^=LKhEUf$Sk-_8^E)MX5f&WRC#kaD4M2*UpRl|t6`iEZ?wIG9epeH zXf*S$&QXsp_>^YmX_+7&oW8>%riSU&^TV)ZNHdmS`KJj!kVJHRrR*ji*SYjdgIj1$ z#}`hWl?z&LvS<+BcowmEx6nrkDnJ8`IM^u3W!D~Ogf9RK4*S; z304z5&{!T&l-p*3wit^}XbHesfbi)?hOT~B_{p*lw3YALxoA6A_91!-2z)$k@H3=Q znav0ywx4Srgm#~VR^Yk0q>Kus7r}u_|6vuJaS(?yzB|;<-_)+yxR~2d-I~&VSw~F_ z^r39qV{?EW;@t zTAH>hYi$=atXiRdBi>f!B9246&^feRp8yLvF*Xg{a;2ZeW^+*NH^q~!{nH?3vNLsT zF-8sHZGKtA`5d&WCP=86Y?nan2jNn>y({#vB-sZ7JI6oYZ!swTZC5{ny+Xfxn%g_b zUz4J-hhii`Eoa23aMm^M9l|o6q}0hbWO}3+D2+xR@RUK5@*r;Liqz_!D7m6e*MqXy z`1!GWAhbL0jTt?xt6eWTsE8(+o9(1)mm;z;Y&e>0*vkq9W@{7Hi*%lEe*@jb5sw(b z|59=S9LNPhKhHI?d|X`%d<)ZSV_pm~jc>uk83@)22nE9l+bT|yzZg;r`2d)w%RJMy zp|eOrXb$vhSCkEb(LJ-nCOGnBh%vGgb)witsgkJmi?a4LXaFXpz2;qvH!PXNcE;x` zbRowI;PxC#>T3F&#fI6(uUMXk_G!V8#a+URSr3qCl(t4z0%RACnh8D#AMCwa|-H($q~G+B9Y1BKSNc6Ve0?py0Qi+vi73-|k)T{> zSB!Lx+(v=gDkR<@Z#Mg#K6{c|N!Du97C+w(UA5%S%uY(ZS3?J@X>#6weXmINiDw9u z;?ysUIeDJz;^jrs949H8=?KL51g<^Mc0sE7%-uH(VMq8a3O~ay$uRm_Com+w73;Fu zimyY>9DKtsgiQ>(T>5Q6#u^FO_QkW!#F-TdFq^6ax=Ix36d%=3>|tVtS73|p7zx`5 zaPEfOf@!S{Tf#Z-t58Y&a$}irEjKtaG3mI=|BI(8Mk{ppNu$K72*2y&FaU=fR8)$q zE1?ke?@1(r1>Oi&NrV;-l`7d|cRo~o-?2w@EATF3h3duF@NDQqwDW!tMKL)rP!N&y$>r(Xdth+x!tmw6q~I5)|je_ET;PL{O>=uENFvZehVpddk zLQqaH@(N83WI%_8e7GL}vq+;GmYW%0Q>y8eA0F9LB2kx1Kd1YgJQ<9e2o*Qy`ZaA-*PwkOj$w()XHxTA}mYa`#OV6&3g}M^xtgXyI=6&OXZOrRM+AD zj!mEo88vJoYiD%9d_(#-vgGC6tCm-P*?7b?t;v5&GZ1IIcapT@xNvFol3ORC=3&35 z*PxHt7L((iHq<5WozC})oC=bb0iAUZ4KuEGH8 zs|`*4&kx8jSXLBKYKF{ly39b$D z5k@CZ{3DH^VdUf1Sc~0V?8Ko`A$c4JkKAXa>U*!c8KllT<*;R4mZII~61W4~K zLW1V)0sEO4^yBzz20fkqb$fbzYSC%!p(AGdo}E}2EWgDkanXde!RvlD4%8=g9YI7S z%qx}*%*)9<7h`9S+?66Wu%Ru-g<{iCPz3edi!<>tmNw?=xzgRtL8@+ocryVda(zr<_8!xa}IPpGa`0 z)4kgE;x`Tio05(bq7FBPk8yi?z=B?~x5>`~!Hmuq2x?TGv@zfSiEW}8LRkuk3%fb& z$%-R!FGNxZ9R=B10mED~B@vA5tLX8iw0HzIh#ql8gwKkekRF)76o65xd%8LP6}4g- z5B`csoJ@I;*+(U_^X zAro}A&>i-n3~z0Yw9EhPT?i3u{j$2#1rWCPPy*E+*IfiB4l7gC;>AEAamYH>((1i4 z4N~}`!ot@7FS)8x;d#D%@RI6@L;CEZpSWYx8k-Y`;@c96mjSB+d%`gfXOF8XQ+Y4G zodfFb?hXTu(5oR-vh2kLpSA~iinkQt=fhCy=NkU7l6o>!`+7IAqIdYiXEo%^Gw?1K zhv?Jn+uff^Il$DCc>W^^yF+jky)fDqXuFoh!=>`)dEj4T)~>CAuw8V7jIrNlk1H|KT>XYE<7xq`^zS*0Cc0}ZgM=; zjPxo4b%?PaO;+E~FO88=&L>Qt07pQ$zjn~|)+^I9LbJE5x`)9Eg;&kRkzwwk$dB)s zDyGqtjN0pcRUvsGZQcUkEhbEz{+M*EQ$gTzC4O$z7+giBO{oI{WI>lw$%o~PFR<&V z8b|^cr4I7pD6z18vUkUO9gw$V7tN7YQrW#^xA5@SeedIOa>q#F{Y+A@eF=&6tVrn8 zD<`QL(yw{BS0n%-w$Kd`<3l4?HSPR)_@D4t6y+L$gc4q(y*!!4*8yvzoLfWl!moQ|^{2WzgD8)OvFW0feBS_4Os#8oWw>MOJQ zstbA6*lEj)%z0H`@5rPG$77BqO5udx;oVi`0tXht>0!Bh=?yrhd=*n^`EM&Zjc`6Y z;AP)Mi%8K-zdm1-CX4olx5d0iioZ$GLm1mKQ&i*iW=OnwcoUDoO4())GOM(K!lnq& zit%D7^`-;t0F8J0AUbq%6zzYzw@$hNrNqBJUIgp#EYJRK0J$h{bERiU!?1CGa9#ki0xdal*wvg%gXMq6p?r8r=8gNXp4-_MEQmLqd#0Lp^ zZ>1C%038v|Hbusx*3Z_5=Ueuuww<_@zy@ zn7)8yTFS4kOXVI?${$d~oGgkmv#tXm_<|A9O<+vE@hro*4cR(?FI*b0I}RUDJQJeD z042y)X~Y9;Zx6O=Mm0l*Ymx#%0fuo5MFmA(5e^E}s>z%Lm{%d8()L3vucMKVqUe@N zx!2kjnz8j1Tc4gGS2e^8Kk77|4@5?V0z)vtu< zS|pB|@wmf_Blp9?EF*TodgsKcf_MqC+Cz@Hvmh*U?l16F70XOHUBYZztT4rh_E#J$foAa! z5FH3MA`v!4K}iW(@sUjPR@QX}WkH7yX^jBShv*(yHyKrPIs84_&4$+4^(sSa%g`|6 zp=TrV0Kfy86{_`=;y~oLNEbD|EjQLnn*c6PHuL#c#J?*_WREL2a;?;IICgGv6540l zyHAPK)3JFNg7NT5;U0<2iB zE;<;GtBSRg|AG$w!5@bPzfb_s=ESi4l(BiI1%XO zq^EZO5)TA0%&%DYLvWLi(j1~Z9=0di90|w<-8Xg*?h*P9KK?||*ohPlle`%SODg#% zVre&qVvo|vU2gr|fMNAYQckS9^L5H5LS%C8EG@jl)Hco`o= z{VeQO(ybRLRYr<052%!UEj<=T)zlHbt6~RbeMLPR5t86MpiB!&63E=_GYtZPvteaj(LiDaoSw^8x5Vk-HD#3Ou-M3=H7X?nJqdxtCy{_Nz}qb1@r}b!=e17~B+X6U z`3S7{G*;bS9a=amJ-{+MDA`NFbMJ~I)RMt@f*n!p@3sTJvgZddPe^780YLm2ta6CBXPjf>qJ2}zTXDuv6qQd8rr#6BG!wS7Y?(^Hpc)>+95p1n zhr>-y{GXhB!VB$Hj=#*x^t_6YhYrGkERMb>hQ76sv=t+>22kRu6X)7x9rQ%sL&g|c zgD{(|7ER$XTH7*Bt-!Gj_$$X_Yyf-xU@%pV-pheQk0lL>sf>4Y?GUacO>>UV?)J7n z9o0|BqZ8jWVrlEE+<9M^aM^q`=WC&8P&%!a@QBM%7#Lj=S7lYK^7XPibejDO#_zsM zvit6h>^P&n>NnYqaywUl*jUHcZMT6 zdS;UVOBY5?hll9gY_9|7#GJ6v#%rYif{X8zT?0<9u;s8!ObR5>r|VpiL-v!57g$mY zQ1iE26QU;k7mKhJsj~r#QnHtk&Pj=%sv7tyeF#4@|0Qb6772CO#|A+T&9qxF z7o70ljXN-{8JJ-{K0@uEx{npHk(c!w32SV?g#?g@qt$<>5O61zr9pz#SP`Q=weG3Z8Zz|Y+OS~#dsSeqf;jFWZfI-VdsmH!1E+jc7;zkl5$@DNSW)k80TC3KoIh($&tZk$7(Hj zx$HxEd%mgIV>KYOPX2_}bOTY0>-4&tb6e@U<)HF_s$1u3InF2sD=PEB$MBQEp!e!5 zQgf8oLUja40&9~i6bxN=S;e4N5L>5!8X@w@+Nn^8YR%93L?hi`v$?ypNwZ2;2^~o1 z5;zhl#iPclL1zQrZHZY)W7^a83YfV~{7b4qIPKc#w_L5yQSmoE3B4>!6fdKHJeG=c z(*pZeDU8B!+x(w&{rDV08(^d8`~c*WbD}YL{hzGm$%$zqN1J>Nmm-k@Gp0g2&t+h? z38kArNH>TgXL*s3;IlF2o;oef&=;x2w{UOT$9#&K2;y=wAuv4+PykCLb1PnRvQ~Lp znZZ4g8uVLy1eey~NI)XWV_SzAI8mHuhBfEI$^uhI%T++N)ayR!%Q^1sQ<|k$a*@?Z zLAhXO9(w8N;f56DSTW;NrK7deILC^IG-QXy`*f&lnB!5FZfF>0h!~uC&wlm^g<`_; zgrRxG#MZO6F$C4xr^oEFu2w4#l*DR1+kP#%YJYs*g*6vP;$BBuT%J~Vo}vVLImL%j zb&gGqnjV1>6R2cI{YcuGOhW_LXYuY5}iruY8xB8Et3kQRNyB zsSTd_=-p{i23>aw-6b8cdp9V@zggMQjhkV$9luuF(u>v#VwS18Ne@D2gE?VXu3=QS z^pGGo;>m$;dmb#l(7+2dZw%mzD4AVi@=A;*sM6l@d6hMZ_8nuM(GS{QZB+a}TLHOI z7esTq+u&IF0N_8KrNQ|Fsuma8f@x!lt53UJTON*xPHy+ z`eXHTUk3++72J?MzbX}I$zz9Q<5v+UnH?|2KE}cl)F-bvPwhm)0n#IjW~%dgNa(*o z5UMi-M%y_SXI}Z`sie7<(UFws3rxC&)amAygAvUL9u^2n7IDf54@ad`<)uvVt>*anG`2S6gQ!t#o%yYzp!sN+ zX);w~D99RZ98WyPw{N?X{mSA^Q-VsyvVD$I1=9c{?y`Hk+oLE@6W66QZ$g1J!;a>k z+zUJBvT-c^DjIg}x{oLKZdz%prz5kW_SIGfLaOaCm{W0XU3x2s1^cqwW(`e6Re^EC z+raPxeL1>pw-n@-dDTZyOAHI1O#?ir_+W`vPkXkm-(y57w^XWfD0SXQv_0kjXA zymX^S{i~WS`He8D&)&DHGd3~eshz$@J zxcFY$>})Y<*Gj=J1k1(|gG#<|?5GqIH-Jv8pC9gq5=m~2WS^=5Xu!>k{g!q_SG{OH z!Yg9aYQ5wErmOv5C0tZ%Vr~qp^(zkGP2{ z0r(|z4z>B#orxwI1;r#4xrrW43?a584b<^wCt&m`(KaTKV#e!JTt5d~O5TQ*E>_8; zDV(b<)|0khG)whcoq-edD8%Ujj$y_iJhO(H*;Bp9PJ7CZ(jGiS04d2igRDt)Cs92}*6&aSX3UmyGSfaSB4fm{z zXMb9njF@`3%}w}miQ-62*X4|wLXcI>N>$EM4FQR3$)0iXnRu_ldN6`hle$9Z+ApQ6oMRWfsaNRKmV=2hw**P37s=FYOBw zY)CJ{U=(3w8Jxba2`x?55q>xt> zpH1Wfyp(@y6wSBD8>|f`AC2My$k_;7tRBKcbJMMxljof+3+Vr1{OT1^0N2h5^1Mdr z3Fq|U&gh;2RWEy@)hTW_&zeVo1_Xdm?^I$#js8=n+n}!pVqkNg_ij!ED1r~+gsycA zucSan9M4QU9XRv^I<|CR?T~6m2_CxC>yp!c?l%D9jQxdJ%Ri^U4--oPgEwgQU#GL4 z47Sb{7s`tc8ng-1y(u``BRd);K5ea3mcDV?#b-W8@?EuJF3J^U^s~D>IM)Fm+ztvg zfwtCtL4UZF%^X2WDqLqPp9KQtRDZFQ7Xej~u+r`Fq<_#}>CNv(7>m&!9>=`o)Anf+%P9uI~93d6h%?BjbTVnil)QmlzFOOUVjfmCEnRWkFSX zGls)qK!9dq5uRvE+FABMhmA0>=?{@jx{5DC^jg@&2FrW4saUPqByVikDwuE37wLsb zB{Ud!8WWby4#6m?95$e5#7G5YXWvN{+lO2URvQr~x^)*M^~6lIK+B}ynd5}){pPP) z{_R{9#pkz7vpBdnHifpketq;ct%#>~id|h?`_TqZzwND#zE&nLKf5ne0ME42^VOOA z47r3#=mf<(Ko6kpDThiR+lavlTCF}<2iSEy^R;CX4|XBM8b(c~+br-SF*xN*>7?K4 z6FaZI0DtoDCGNi^B@g{K_W) zW-bNin#%9?4BS}mp+a;!Q$!}eV{^MK@1gcw!l_pcaR6yhBd^xdpC@)Uma@mGy0d(S z-wV9QwqDTN4N_+EC;VE_rGVUENVj5z#lE)f8v|c%J_v=I8_L#mi*`!C>xi=;y^_vfkedL{{ zyx<}E2#)KIR9aUhM%(Gr%XnX>Me&0e;mOiQYi`$*5DY=e0n2SIr zO@o8?eUaN%t>=;hk=53B2$F|EiYba!Hub^tbn+0~-8KVc>AnGJ3#s1#&+cCzfywwe|s~saGdeO!R>+>ifiH` zaHvx<2Y*4`!tX-pkX?sLd7nT0mG7s=qDZww5AWCuKG%5X1h0)0udk@5us|kxohiwB zu?m@CxMTSVvAClICtr`s!UaqHvnu?Vy^{Y?dqk#YpkGy}^i|!%zRTiY(}B|cLi81S z((N}*##gbaux<6mrsiE*GK29zAdDAPt;=dk9lys=Zl|aiHbVfPN#*akNi$xvf$Jc9 zIMPJ3-uO}XYi~r=38f2C(?{Y@xB<=#9{t0zpTohm-xG-$4g}4gh~)fCXwuOipaZ`M zhk`|nS2|r8nBU{>sV(wRF=S++5Wh1gqKEj3kjCt%Bd8GR%-luRu>m`iv}O);qa1o6 z={QQMO32l!ut$!{47KT$iozvu$Je%GT0ps^sn=QR&WS4=-+j zPVZiz?A#oI6#!fQ2wjQyY_|_plU&oJRy=D~s-#RD7mifqWf6AZ*#5+8ogJ3+IMhW8 zeoNf*gD9DUego%NrOBqS>CtItpY(5h>t;DJ3FDy}Vy`C9f3xz18pY97M5MB_v)IH? zN z=0aiH{b?KHJ~L&`_2EcBAYZ^KL>T-zSQtQb5GYOeQv_sbWX1!+rlyHM08GY9x+?v1x6N3;sdSF%?tE{i}GY+K!v z4j1&(i>s}Z2b+mPv9}uvc!*my-|KnADNk{@{W*WyWQ^L#l&4po!tpO`8Cu zL_5>w9-x!c1*4<6xz~q`wR$7!RKkOD>JGo&e$*TC{G{Cjx`x11MfZn`cZl3GfVazb z-1w{60UUxr()MOFHFsJXGMH7;DCva{wVOHQ;ctKw`T!w?GoutapUN_YDV57zn`xET zb}#-{%mDJ>>t_F;n=Zs3keOcH8B?3X&Eqm0hP)*Lm?aU$l*Ti`J_Stf`r!{|s?aZfOHY1L1+*>3L z&Se}{WrhpgVB}Go6PIu#P?3NSkkFd&)Cj*qs&@QvVj#8C_~qz`f@{u>tFIigG9}7z z5EE_gZ_KE4bbU)1YxSCC&H5+wv*F&)&u%w|hF-%-pNFwLPqY=o?2Vq^s*L?(xvxH` zPLlTQh2Err+$;fJf_SAV1<-UZL)G#2Okez|$4P`ebO+3~lIr~Zb@qM=9mdgzRO{7@$P5MI; z7>pNjMl*sIZ#IiL(2M;_$r+L@0D~LG3Cc=eBK{|z`T`(K=LzY{7*eW2#k@eV{!L!( zCYb>Sj(BU_2%9rzzWLSZY9>e3f{^Y4Tcr-vvjkG4s&;Suu=E+A^T9{iU7-H`ZknlI zMdkBqdOXN3MqwF2Et7seizFGb@#9*zFtdYS#?_dD5U;;$T>vdqOEP*$3n!(?Lw~;i zWnn4FJ^r-Fk!h)T+>D%-_%CJ=j2vx+M1qa4A?ynsFg+Ct2u~J98Ut5QfNi%JR#U}- zskov@j^VPzIc=_9TFi)>;)ODK`4%MbL3x_3h4ens#}p~U$mFwjgPa=ij9(0MG4dAx zsnVa2tm|3#J0XIpL8Qyb27tQIu0@3o{X%Yn;|XW4hW}h-E;>WstSry^&1V3%9?oS> z9r$p$v`Pl^{b)ON7s~O?vZ+3Xa=dw+g0BYjTR5 z-qvU)A88L1N#PnkH*HXa5zCVe26Yf{YM(>4sbn+ff|+bQ_hYwOc=6BC26gfI zk;Zz*0@jgh=rO>PZFY~@IgU0+CRefeRDLj2TzwDrO(yS(EBeTOX2ySF%^R`y{pH0! zO^zcl()sSpZW7J2vr=waR3+BbkuG`|vKx~4pVt6AY@qkE#wb|Wocn^3GJ`0fB+Rr= zu#I8m!mG0$NdL|3I5EsQ-fyMoEs1`8iX3M-u_@v_0BO$3x|NR+p|Pk53oq;=tHj%) zs#C@*xjI|;m(S6Mf(lb@05>ksUWe7Q8hV_(uyjA(Zwm*%>OgLOg0T?LKYtlF$JLkG zqm!i4|FL6VpR=wBQj?Ka{7?J(^w&}FJtB>nG$&o11rJh(%5=X_)S?0&JSBKRl>}>} z@3XVQhI0S6$SD~@G*00WEW067-z`&<>qsqmkbiwnnU1(sa>V0A{Isplm;K^B33H|l z@X*tgc0P^Gb(BSD)^r&`6Igo}K<@O9^I+hRfKCl}yKS^y=j)jva=fK(>A9BhM-14T;igxM zDfYGOW*@j7i{Z4`J;X^D*yDR;ZvFHfV9;i0rZPcc^zhK*v(Tm;&$z zDvzX-;+V#>=$3o;7m_GGX4iveBpnPoP;M2g(h&Hul(jt=yG|{9srC(sh>_qcv?$?9 zrbA1Xsh^aWqD@ovMj~J&8a>9l^D1|l8r+U*`}wuIaZUSi6nu8A2pv$mTJLeTrh2Rt zvnQ_Ya@g=*j?fDNYzHyklFS96DbWlB@XsERJX4eU~PE7`X;u_K_QT1$3$C|YR7 zk*4kp#$~!tyB2orXbkW!K*t^MwwMhXOx$}?IVCBHULh0$`sa_7y^jfM0MX{L1beMB z{fK{Ayo}Y*qa`Sb-Fh6pbG^!#`F3l=%Zts3-*MtJG_YPtGqF(_T zFSIDw16?eUwi-Lq2}TiOvq*+Yk_0ZVrV5*5KhDh3@2lw@8Xij@cw(A>p#K$xi8w+; zqW{@M!1Og8-CBVz{FsrK7vTW5bN@0%^ZWhk?2mr>u~K%wc@=%uNKJG%!AYct%Qrwr zb=I}vo|S}99@D_uMBX-5h7$`6f3@%XyO?WF2oOo8!d9c?a*jtN@*B$ewr)t5ofoeSM2AJzmuin~4BE6EW!b zy_+jq7&Nnmc7v2zt!WVP^F3jV6J6Z}p~L}`bO69qfEnQsZhlb^_k&IHarJzkyZDG{ zFYORl3Y}Rvg|)Npgqvq$$u*xxOPKkwVM#$NcMjBCdVmDa_~qr^acaz{vYIuc*P;>& zAsg|HLe)~5+p)h&6wgY#Fc(9Hj_AR#D9F|~a+^d0tqlsjS6#n(CJ0l0VH!;#tYeSU z|Ab&B$0{K7oLc54BsB#srw8Vg4^XrTg(HtZ4ve503O|nDqs5S7Hmr(+Ye6OPvGUq= zS7zc^(yP@H`|c;|VvcI+^7(jX)(zxCXV38hM5x?ISk+9m)M;G|H3RxK{{lJtIn7Yc z2@lG>CSYD{2f1lf_`_gm1b|--lnID@kV=A%rBAI+qtB5#sUWEWud*aYUryi7a+S90 zq5|r295YxS?9Jj0rAwjlm!>}{fi{2LZfbL+pfLF;F=)jDhlQ|Gxi8K0KQWG0+!zsw+;OWtX4uf zPMke))I9Uv{ms*sdFJva?{jrXsU?z#TY-yVZqbjW{bL@ug?oBW(U7m2``ABLm(#w4 zPG}(qz8txV$gPy80D7XZO);Qr{gQ5rU2?cyfCg-FfkeQBM5ZBY&KX?$F!{t)Hc~9Q z=V%J;mjJ_Sb<1X9kv5G&vh)i3?&AAk*QuRIqBGmkU~ZQP%{i$Hdkt(;zJ3Wufl}kV z-YrcuJFf7n_swzB1x);P-|xxRjpmN|ABEaKhu%78$Wi(FhG(M39$s2zTMpV12jZd+j&W3($P?=i+zplD(VTz8Y0N)oOrl`c z|6_8E^0Bf4_GiTl6Js}@IO=MD7P}ew_()c;A@kM)+MO)lrSbQHSGxT@NO8QJF?1)p zmU08IcruyVT+o~>0U}$4Z~L8=Ui|`szSpOb1zdT=5Z75!?@x4$h8T5&NKMTFu|E_B z&_ckyzJ@6kOvkWTM^)r#Wu6=(*B>0W0 z6iLDQm0+x~8{W(uUB=}tC+z`WCshPCO@>1qBEkL3S#n%Ee+;{Hw_@s)=-y z^3;=|_;+!=kanN$Cu%SP!TsKh>j06Zt`HU%Tpy>-Nsk6Qs#Cubi4Mc<7j_R!pj6^sQWu5Z|EZyRH2 z4Bc?{Je7D#$TvW2A`vkKzbrZ)n_Oc`)s0D_LN<$ewKN5f{i;2TMa8ul@AV2P4=%yc zVhv*@p@-mK_ML}SD)RpV+Gi|Ys%EBO%@13n4MFbQ#l}+h;A_yf6^I~45pBn$3oSu& zFDJN{=YW0A&-0PGN#;79l&VmRx|7;#nr*{zzyYfWhZmvM$(z^w688|SSdd-pXRTHe z4;HKe!Zpsnm9l>~#Pg?p94H#YI<143y`Ism7+n66iwwlz_N)XAdPN{N<+lUViubRG zZqk0r%8yP*MAp~9pMU=atclLo8NSuPBQ7lG)DCjJDGfi;i`WmVr(p0HN91AtG;zL! z7wcb6i6_Hl?|(sPDG=mMX-V7#jBH!`%fPjx3f+uBPrGs=K`J(}>F$dVy$h%ezf-V4 zjE!c)iz2K2XAf@ecPzC`Tg>X#Pscfh2i{tLpPUq^@Izycd2;4q*yG1B-n`n2EIdd0Uth2?Pk`! ztEV?(4V%0L%M4D%BC&HoQoxzdEacF`5F04|s4rG?H`tePa0VW1w+Kdm9ihv>49A{P z*zqgc=&BJ2q(PgnvPCw5HEVtxe-&Cxf@M?5hoLhDb|s zT9z9!(rsyD=bh31(y*R5iDq83NA2rpZk$k4?u2Vzx!1_JlsJQXTR4NQW4@N@iA^e{ zD5GmkVR0%+IdEHo9~{Vng8-+xCyX`^^G_j(H2!h31eG=skZQHk$C@haE#LFP)^w4q zd|<@{MvLP9XDIi41@A|z* z@8J6^SXbawck%K9Ai!0FY0|Z?y?;I}+{RDP0|M9?o21}R7vhf!m%YhW-s2Ar8M7+)2 z8rsj7%(P~3m*qWQQ$TWBurEVbDU=PG!#ChhJbeQMyP`gwJZVvAc286 za>~Eip+;&eSiGNx&=N~H1eV&!i-eK3eVDIG;EgOEw;qh9dpM)qp|fmd#_2h?9Zy_c zthGre4`3r{HY+>Ip_Ht~6Ay|Rx};u%uYDEy3npg^y}z)|_Cdb`wx+Nt#mhaTjJ3wQ z#DbNR!&Wqstd>H<9g2bsDR={bP9@BZ7mU2W0tRZvBgt6maYpGUZ*mxQ)i`D6@B*nf z7ua}NUcesVo21eeWneC9ajHYaf2PF#u)}V~4zZ&16vOrU;p{~Z5f)VAnZz|+>8$XI zNQ*>u?p84!sl=dOB&jKrze}vd(bUsz;(9TNh@0rRQM@62Z6AI{ydm%C6pZ%{Vv9MHJ zlU!%S-7My$xXW7ij&*7u4bq(WwEQkgyF8 z0L^X6ydUU8f6^5UdTC;cTci%z)YqzAeN|nhn~U5sO%0LMt@(_6_O5T2g9E21Ey&}& zbuYB&zB5FFuq(IaypVk}ZrQt{43Aw;jG8;30l!FsDFNpP@ZxMIMFU-iNKY%kMoaII zhk>$`PqyKxyE)j}#?C|TYLxiQuy83M`J&}FblMowSk#or^lCG@FY^)xnkG;bdSUVi z=70E=*344{f4j@)mC??+Kw(#iHtg2t0E!F*s!-v)8aaIM7B?z^t( ztZie+eH20EDykP{ksbs1*tPij;EKcIoWf~^o7+HZt4g@p*4GUjD=_}Y=>l^Xd{d$w zI8vvfsIaCD$WDgHCJzgi^x9gBpv0~kD@vsqc04)qt>`)n8WW^|iSCCe=sLL;Wbk3( z>Z+585N)nZ$Mw*} z-s${OfE&#qkxF*?YnpCsB(uzaN-Bp>kX5y<`y+wWJ5kAC?_{Ts`UriJej$^_=)()n z!tgiylQ~+8T8ug@n6jj__DP?(jL0*e{!;gE^|{vMDxylw5APhBD@}isfq`ZZU55Gh zp@~u1X8=H>H$x2XR0#U4D2vlV_C=t>ei)+(12XF6lkk;I_b(a8BRvRJQo-5=x5W|` zKg}-+63QF7FryQ#dcCjw#3=sd9iRF2HVAtt`GU9>pic5vx%x@5_pq8O93bcWx6T~3 zo$&rc12t;#duh;Fx0+NKs@)0SS2d1nJnhtKRi>UpCG{zPoF0KPB%>x z68vU6QKuHGvnk z^*+=JA%2C48kIrGH-A4!bPa^qtC==?e6YTzB5?AvD*qs*4I;cd^iSW}s=Vh^NQx;X zx3DMT`Fareoh@_e63!v?#JiUpBfdb65Q#LDX3`tZQ@K@7;(wDmn0$i1t;iG;K1ws; ze@FU<1h4(-r^ZeW4rvWDK{^<4r1)<`wtgrURZZOk4yKF`PncDZj46Y<@l4dPC&F^$ z5}YLV@6T}mYydQo6(_sg=tTPR(>3yxYK)IvbhfWn-ank9KDlT=7%rS#E!3dfRv%@;g=8~p4|ROy zM?zl75f5SY{J++DXzA#_4(}+_(Pcj#CPW4V5k=no)sU$1;9qQNR)bnan$ey7#E7-l z4ffh5N?0OwO8}Qjit1bGjDpnOM z8*HS5tfz+r*ng_pIv8T(I*afeL_9ShUiS-0CCN{^nBHAh*&w}{D5DfHX zrT+498`v&R@2W$*qzJO;!$vkCaaUz?wV%ab1%h}kR7J!`*-3K)jRV``eTb4=Wq(Sc zqsBlvjxgRM8Yu$c?|Tr0?B=0s?$7Cv{@$X$p`U93r=d1jP)R4^ca^oY2V4sfz%}|3 zl&1o$LcGQCM@#s)S)ZbJN610q8KEMOwnKI)j645J+8=;U$R=V46yf{QBK?|aYn;*M zU1g1BtE8}v&0t%keILe>;!DC?E^MWSZ6%Awe+dn7HW)(I4@8XcR5g?Sx6<)G{_sp= z@)K+1X$YWj+U!40@#tWk=M#ivdn15;a3#R4-adm7xV7_m?sJqVJn{FRWoCS|)> zUM}A1698pWiTjSzxkNxjaY_ac?W&cWvLcV2|4YNe%QyLD3|0@K?KX?rL7~Kmt_4AL zf>p+J+>U*UdlzGswk}e6ty4Bf-=#WgS~~GP()GYy^W9P#mEOEAE0t%_7gn|(QfOo1 z=xV|rf>`h@j01Xn%snsLk&CYII9Qn&DExah6~E`;>1BNrb~M_o{DC~=ta?e{#!_tu z>3zO3J75xCxo3%Gs?pgZhlslSZ&Y|731Z7MR;D6_wV>UkJK5P^}C z9_ri8k0e0uHJFrZzBW)@#QvvR0+RPyS%o9Tjo6@DoMQlUD=j&NkKxb0p5M`E_~kR) zi|G0Ty9mX5_|6EXOV1=R`dj1lu&Xd@iv53Q|H${x9QNX24SS=89`o1n)Hd-UkQ71T z`Ut692J zP_a-Q6_P$JH$)z6rftUI>w2qL=@WW5N}f^G4+$&3PEU4XO&o9xKqA@O2XCT_Mszol}7bk$V5I(gQ=Up~vCf|C~SMM<=Bj}O@b#Ssa z9g`wJ+{oKGWD;x@p(B6RnM1HK^6596aJoI7+mzLXHD}HwPgeeUu)v+`f!Fy@dYfkv z0aJ8qYoy^(+G_OiET+Y_!GHRc!egh0)Yj{9`@v&}zz&Hy&Gz}|0vn)J6QQt#psAvV zaS7P)XtSV{j9GA9&X$qNzXJaer4b}OC}7$6eB1U#*dAolkz{-W3jI|>Z{Z}7^OVlp%aBIZqFR7w%Z zP)tZT`~PwxcXWP9-`IUb`AWgGzvPqr&QWbqv#FVd%vJ2rcle+Oz&>$HXp!p+Ew>*L zz{DZYUhBZcFla1vJtJ;@_98fo5;ysnghD|b)Cr5Sb5fl1<6KBHg}{fQd*)uvquntq zSfYh!ylOA30*!SJ?1dd<&^<-@QARC`?UC${zleZQ+#pVrshk$BiKVN5Y!tLThz6m^65+D4s%fd-m- z{y%x;h%+L3$5^}eR;draWf6YAH{>9}OM}`E&`p^DeA)Z05)-^lfr0)8(Y-LV%)l(28ftONtWrabAysABL^uK-kxq@MN$yp}*E zsC4VR!M6(WRr?0Ytk3<3IA4q-wxUh*LQH`o5O_rJc+?MFy*Mo#H0+f34vZof*LI&y z|CMrzn^Yx0*&8B0G{}CGN9ljXqi-{?+c-GbV6A^5IFCW}J<9wCGVOQa7<&nhf+A82?=F%b#8yv081ws2gFl2OVzFoh&=j}<>~ic%3H z1j&6SeC8V^G=qS7T9D}3^yrx0;E+Lqgue!lXh7}Hl}f4{v|DC$8i!%&ly9CeX(Ynd z>6o?MB=sa19g#KZ^l|nfXX~yDjyft{QOs=xkXa3D_S>;45@mKC0L4fv z2U!b#U%1r|v-p6GWllKsP*B4bVm2BocmJrmfcs-1La)B2l9dm_i>|jR-=Uprno2#t z)4vc_*YG7vrT&l^)UCw%M@2jtcvqKIYk9(GSqG8g`l%9*(Z-swofKrrGz!SXxtp0d7Rn;I%ehZFzR%%6{s#q!J#Ha zUJV4f&|8)|hl;B0$4cfHHW4cQ2+b+*go#et!oM#a3&86029N7Z{?3Z#gu(GRhXA>= z^E*Tcz8*<|UqP?K}t{usq=zc@s$ZJ02*M3UP=Nz~9=ZLfwzNP&6nh ziD_!Q0#GOA8zaoZ8dEHdn)N>@gKqZw*j*N~BEk>pa9p;Lzf8?Q|Lz&zVw5?cp}sRC zAqQVXPgcM!!Q8`<{dgv&PCN*sx`?Z`R&x_F>NKA`iVFWUAyxiRmenHF z`(vD6qd+%1(IYT0Pz z$lW`?FkLrx(r3=KTEslbqRa`GC0KX3Fw%HYU1R!cx-cVsCUt35Wc_E@zemB;7LS8d z_Oh$%n*3(NJ%F2SVO!bT9LsJ`_=K!2l|P$R~~YOj7Kh?I<%kML+Jd7mjZ=~hJK>XCv`~{52_qtde0h%ge~0>? z9m81G(xO0U>X-HJu!r^gXy`+6X);LxnDf@a*B{NXzQ-Cp;-Am_JwDLKM&Ja@nhD)j z<9p>1Q`u}z_NDJED;@ds$-T;Cc~yQJV7wDi(PRGVhD%8EPTs;a3JE!xyGnK6ZN5d&`>`3*uTZMBy&Cm> zj1fsm_TKqWj^C**ztPnu_7S+DRx#U)Qrzw2ubM{*fDxMfPjBL>sYdop`-C9|O&f@K zkbY7)*%i{(^a^^J&!vx?BSrxJjwZKGDCXGzP~ZT9>;0&yzeV(Vtbii`Fcp2kKUYgQ z#9-Z*s#_G;{hH% zZ4kQTusGm4R?ny~iD$Twj_)xSsZ#i93mhB!454wM85qwKw%+7@|JI8`zT3N~$=AV( z(VW$Lrt1fi4)wEw(K8aF2Ley4z@rbRVT4?JrAY)qxS|P04sEfKj~>b8CLTKP$g>cS z%ERoj5%EewNsVPRVmlKcFJTgcoF{Ool*KE68S}OXAQC4<7Cw8J^iEMzcB&-~mKpc= z2YvucWFTf71-2_BNI7^`9jMu%-Z0H|#Gc{exH_h^%VP5IkjfEqM1t^Y$=`~Yz8Q^a zhIu)hl4>QZfd7!SUaQ>cw>Y;{jmwq4hvub}!PymS9^THjY!p2XIZHAld_CUX&| znwA^YM{Y;H$+WJTy4@J4Y0Y7XuFJ8bcibaK9vEb7Z$UxQ7v`nIzUHz-Bfvg%6u!r25+ z?K4?+4MriRWB83WC3&LACEY}{T&zA#Fzm_Fu0A=_l#4yS$8E6}gW6UwCDW~Tz0G(D zzm|dIGp_gBlLWIF)*NHRoW3@905Ig9`FHG>?Do@V8_j?Pd;$9zX z@}!ni_@+TdLAkw0E3X+rxoWY)J9z#U=bI54KT8Y z6yIuIH~Eh_`Rp-j6{P1w^!2DrM_{Fb_YT$Y&pAIPlOqWfcuUyW3svwF%;Lpc;Dq(! zf)qfto9gUVZMG4PMXNK&nwL_cUWLDXg^YX3R_SjKmO&OkIr!~5#$xvW)T-U(SbI0b zp2RxKq7s$C1Ts;3%Yp+^Nf94Y@Klr~{80Zhu}Z z`UvPLlisj_l5+^M{sgo^T*;%SZw2_&lVzySyR9v-B6G>kyI-rJx#B|Y=vVK zr19O&oT!s<v1 z$#5n;33y`?(wv2cJh8>ynIT6c7bk)sP=cRw{*6b78I&S3BF8yqsG4i~dmw^LvGO2_ zD3>Hx#CH!s9Usllk85Od^-B6Yxgq3|S95Tqh)lns;#+o zfSfpM8s%bm^bC`U7!ism)}v<>=+^cAZ9E>;frp>p(jM%fa786z{b`gNTMJ_pm2oYK zOM<5!#<|-|Y;B3@U?_vnScr=Y4< zW4qOG)?OI?XdF6EaWxRsF!YBoUoYDj;BBivBo$f>xFh~89#}X_!=6~D;3SQaT`(rQ zKNIURyBdz84XONbFWUER*KVfq(@$8Q%m%mfhI$-;?r>t70{U-B1%djX*~)+@&n^Hq z%*h{_2hWV9lYu3$|>{29F~)^LMWNNTB0n0VQ`ThCS!KN=6WjdYgtw> zKbO#x5GJKHrD-mS1W_ddXjw%*v&d50$UuUrng)v!$>V#4B;0v6Q<fGDfwAMa|)>5=f&H!_F! z?6q~jLXK7=y6T2rC@sFF;s!_v`Cl2#J;txhA~0(s#^ce{(q>Ll8KJ72@NJ6aId1Wb8u2R zu5zkLLSI$cHb14gxCG$&8VA+ML*(T#8YH8&HPQP5e{s^Y_El4|MLN>UIw41o3+Q-5 zwn@&R9|wQeBSgUecA_Z4drB80^?e436)hv{b|W3HvRjugj1vas9+O?B zfcqQ9c0}7;=7t+gPu!VPvqsDzJSr_Z3$l4apphYGhCAtIE2h&{=y_nwD&=V)Hw^{t zMIfobYOs3v{Qd8h_92G z>=|Gmdi${J*DwY(v-4vA5+#)t!PuliS>P$|q*u4S;MZ2U^O)iT z^_mknQ)azoA@vwTYedg$5V=1_A*x6WkiYGF+9CNpafzeWcr>{T2x5(D?LjCnTnyCX z0~lTF!OKXTcN!ktsEZPw@6m`JUi@F!eZICc;w1t(z}`wv)0rgnh0COq7C&IzedrM> zYQwE-^|S9BYEu=XS)(R3!HI!i-l;v$qni$GxulTdEchz2V|#N|4K<^=685p{RmU)PrfnTNVhYA@x;G3-y2E; z(QhONiuJ3~yRAb^g;e!>uFsuC!CFzV(*ZseYn&5*7n6>>D#AZ&C zK2gU=K^$@mQF3>j7Vi}P$u{A#A+CED4gA~A)Rt|~9P618WUDcBqyH9Ts2i7SVT^G- zlf>vRyRDgd%XM+WGdo9n^q`XIG3SIb+GfgUS_D^LybJj#u*yI`Xww8_NT(h0kf zc*eHVTyVa?++E8zT})DkViz^#BX4Q!KX1$~)T|aNfc8BiJU>l{Mfb(!No2XVm=X|o zISI`L@k6!x$w`lbTbP;DZx1!|(iUk!NrC&?L0$3Wk7b5sTVOFKBXXil-rb39c~vfv zi*_z%;R6DLyb~bLPe_#?vy4T-c;cYn9@_1U(h2T<@CShh8+#(J|B6@i#!krh2M;~yO zw9eBtfCt^%b#(}7-NZ@gd62K5IGb?M;^rj;GTs><&T^wTnA1Bb3@@unW0t!mv{SIYSSll!J5Sy9XT}T!XSgt-d)YIiG(>PEsmjuhwy#1?=xuCmNd&h$T5n zD>dWX;T~cRtx%tyZ)cvKo4587Va{_vuS)rlK!wR~up!c6_oANI7-DyPD}q_CQwx%O zDBdnr(?t0WaX?X~w^y6gZcQU0)X{s2M^4__abPVR0?Tdlkdld5iXR7}fx)aFR_d4a ztoQ?#2SiBGiDGgflmmtIECwYwVZa{vMIJI#%A6h{<8=)7_SX@(+nNfC_la;o#?w(? zUo?*+E?c)*E zruKncS_;&AowqY84H-h<9mnoU0O01~PwD9_JUk0GJYl$u0gfZUzCN1W~lMS6MoS1cf8M1N=cB~TA z<3WFx@kG+TtHt%W&sxG-o~l-L`=)k8=>(CASLt27 zd$OKU!^D=m<*J>6O?|h>UKS|iH;K{uc_(`fyj=k4BKP^2r1%pJWZuLkD|!msZEeui8uk+`7Z7j*8g}Fjzuq zqCJ1u^j@9Q^rIay)~TcDG5r*Jzj|^*ulc2SDPPP9N~iVC}NdsURZwuyWV1!P_&RR%toYNrckdymk8N!;FG@zhesW0DLj)6}84FJXn~*cJXu<1(iqC+$Q(sa?JHe_Du(UBWpt7J4Om$$A5?y|keL zr}yQ7lWrQRv*q;*v%Dcvn9Gtd%#apZz}j#hpd(fUlLlh#SwM6(a^W|zL)xO+KhUkU zG^m40r+vRX&2Eb;mFwzD=8Y-7mpTgza(TZCD{HK-cOp6+H|aO1*?N6?6>a}7IPRDe zQWQj@gg)#6p!LZelj_jtZvx660c?gl^MR9AdzmMs5d+IbOp^$kXlb53#qYd|>dxUD z|L4!_cz;enlS4Fcmc0)g5#fdzLMW&L+c_X&NBaX@ zPd6X8X~5Vx2{u~+zB%EuE1WHX2~VzZkrudHh^niDoNFtZd;P&Lz+A~u`r@B|^xdQs zwA8~&Y~G)ko|PgVtz}M0XZ+w}ErwqviTkR~+TwZh0tF*Y5gYbV5_0poADh1w)XM0M*h99^t=XpKPTWWHaWPt}ft~8pP84>n>q%3$0 z?IrQT%tt_tZe&<3<+kIzZKv8!Xo2?BcXt+B#*vFi z2C)F=0I;c_5dAW#Pdo)@Nc0KU7q%HQ-ab{iP0_?LwS<_ z_Oa9Z`L?OASC827W!7gBGA`mnf<~D#t#S|rwf3e|Ch4VDrN~~!WTOTS1~!W}?+w}J zxL*_0t>2Ns4>OR&|dlQ&>esCh9=bcFxe z4QbcwWRe*SQBoFDtMpXxBo|YNw=5%U2AiC7`h|6Snf)X+n@7F?WU`f+18b@;H0K~qjX^sytJR>V2E&Ceei~Tp~ z`VRuIgq{JOqmJ1+=owGtK%dwcj8ZSs*?dw~QZvdg#1ago`U z$F&Xgo7Oo+)TlQ?BVyV(op3QKrDv^1A2VnU`R(4pp%h-7)i_3L?|h8fC`Q8HSZuRY z?CXT(&SJou-Yee5Ic0OtvgyGP#MVgMaEZg$1OO6qABg;ZQDIz_IN2|42MHxL5U0^p zp>alJcM4{838R)K-$j$#0TV1&)}?@YM&r7-!aQI@U$fEcs^Im@U{d?Nb3?)N;m|4# z=$`A@#b2u^0~_g<*k zQ576%e4Y;;5_VHqxH!5K*t$R&*>p2vC{74(VNrY<@dH+#%W)o0v^>$q%hHRKlihE& zTe8dk%M>1;c$Uigw{*#PKt-Ykw1*ElzWO{gb>}UQHTlK9aKGlr<9Co7XEBC4N;pu# zBV(^CAR%$meQNMGxFsIvV9rgiB>kFDY$8Fdlcr&T0ANW@Y1jx|0H@vo5$(IR@5g@$ z*~wo*skkZSb0EWo5%c>?l2b-bEazT)lWgs7hSsjF?seDQYb`6x&U`8&xary@s`K14 zmFVK9x=S4gd^yj-L_$M%NPI=|Z*zh@18(R|L4zisl?+46IoR|o=s*)&P@~PYbtVz; zv^Nk#)IyMQml5k3>U6p#5(ND#DCK<7?>D_40*4+l4RK_y&~4p<&B52VKqgp+Q)JKB z=yffhb|UDuE;A~k1u>sST7Lpg^K^)aRa3r)4CGyGB11(^`$3t}5?nFbZ4-a!r!luH z^;aeMw1Jm3H8NWzANU)j^pRl~i_KR13{azlkcBl=&JD~?BuLx_%+&{mg@ya)>L({74Z6(U;zD1C*|;tdmOD}0yrYe3E%=|D zJTmb-&@|?LRA~h?gFar`%9NxVS=A*1B;dGClGLtu@Y!t)E)*E zqHK^wx4tm4UJPo<2IGzHyhQ@=8TRmrKnhFkDnyb>zv3kjspu2rRr$%1f7EPX>sdx; zv}W~N06L7cs&!h>FJ4dE(U4lVb8BkN$)|oxRz)ZYN@y`HN@4mrP=TK-xCm|g{6mV( zbu>VJmt7JB!i>6XQ-Et9P((sKAw*Eb{3pwacMM-?@lV`FN#1T5OL0;rm@jh2-f>Il zOf9n^o7u{Tu{uO+aJ{iFI(g~0k^XWcze2HykNVQ^Y>;8Op#-XT<#X5_08IUdx!nwy z`!5Yesu6(vW6@9%T^}Ij1;M5`q=H2rfyijW4vme2PWIKBk*ZKJn9$+*yDeOF+-r<= zd7T%<93w8GYF$K;l-Ho`BCMP>qE>Lzh46?y;l35?c9DH8jg0Wu@TG%Q>oo(gD-nfj z=UB`hSocuSc$vS>|d zidMsWdCPEd`-R6~G?s&|6o_eWv$0`1DvDgHFmlxg%Dj>r_Zg zdT>b)By2B<6qJVh4gK@x178V0utM`@#eB8~@v_E)1zWNXX zS;X3Kf!9k87jI!TEl9L{gPVgpfoc^W%_%pF662q&8*M7XTQNxl6$XVPPNS)*sKoWz>1 zmk{L(Olx5q*%1{HEVT*Kec0lm^J)KDPlnNSI5^;ZQZVDg&cp>MAnZt0{>>y_eJ<96 z)*5AugRyx+I`4Wz*Em#+GA8%u4t3Ed>WI2(j1|S$+zXUm80i&iSp3~q5LuJBG^~na zMyQfulf8|%X)P{&wyvO|yo{=*ak~rUG_QuC@KKMzY@$UL^3{%Pt1h}Z1Y z+NOlHO#wvinadAU0(Gfm6h!Nj1I=Z}BSi z8}iNUGBccx{FD8-#kA}$Q3-nm(SLd=4S?!bu-ya)T-@L5YK;ctyPmg7qpQNUdxxK} zJQ?JFnmlV3q_w)$M6^{LzqW3>!V#%9^&pJ8W%_sJ<+#JTwi22Y0AN;2C0)80{uA#t z&})-y{Qja-IRZ;3HwKc2sl2Hgm+aKmC z=NGEL8+L%CC$C`%%O+~B)}bgse68j)-{;&NP1M+{q(~(AhvKqws@!j^B1q@QvmFJB zp~PohSOR73!fojoaW{%~cplCn$`Y`6`UM$9G`S#~YO5s|kg`Cm!l%O2vD`GI8sY{0 zkibVQD&(%$np3e-oiOP&cN@o2B4@mAl43MPwLzj&`+p4~O67KqODr>#HzC&yiWe5P zsJTyj>8oK!eu=)P`RlfgKpL4Hy2y1knmMmAD~idF8nCjY0gJdZS_EhFj9?SssS8e_ zX*?UIsgBN>nJlS4HD4}jww@u8mZ*4>D4+@!kofzGh6njdV`n`ZeWl|?B9z>+vE(zR zub?j}%G9J&kB?j;-&=2IeX7paI?mNddR>QU6#|LJpu~*o!^&{XSeosG?f@1XtIb9V zbJ%DF1?sBd23n@8Www6$C`|D_;tD!Z*)ryAx0K z4FdUUk^Ae_=5S*a82S97mZq|xtr`2UDaCy_SB?&2^s&dUTMR?xm*u-i^@B7mT=ZQi zyzX9*_Wj#YrJ_ z@DlG`h%gu7F_6@*#F3d{@AY-pB*I*FDA-gei+IgM`a|xIv=KJa9Qx!;fO6}q?P{B} z4}SR}gdlidt86+a*w~&!rM!`s>e-iis_p@EE!h+aUDS<5qhl|g=F}*sz$JVRP^dlT z55hqZ&0M;SYu4Z?)cI|8i-F{^RYoKzmi;gfD{qewdIf;_Ia}_3YM44>D~#{pesgYP zIHvecOvAFhsb?3x1OVNeDsL0;|LlJIju6pY=`-Gf0|nc2$N;$Irq#iTu{R|zoKK7V zX+LTG%R1bTM&r$-sJlWn(7mIFYz{5~8v>K{9ng}UuKVCYq1$)O2qQV9NF-(C$bkP6 zdorl3cNoj$KN|7BRhT*nwmNrT*XgcuO7TxwM=VwH)c;2vrHps&De=T>^Q>!322qvl znu#$$RDKlsMc-c^$)*+>BOxv*@MCVE@4H~*U(Hq2Wu^{Ot`Ea8$R)3}7;-xmIiyW` z6OiRuMoijv*QG#EU5I3*$HNA^bW~%px_$qgY6w{duVh@E!ortn_Xt!b$EFFdjbA0~ zCHfChqY+ZGb@##a7|=q5aA~QTDU#KaR#4*lmU;*SU%l>zFYyi88*&G@UonFJ*Y)GK z0LPx3|J+?nYfkg19Is9lHgq;jvfx0rsyG#$0@4FC|C$h0Uidurus`(0tk@5a1os2e$jil@Pm0xFqpXm-7U0B`F z$I#(qytR9H^-#8uU{y^DJy&}jV+W9#ZtMUm6=UVyn`GkkSe>DM;=r$EkQxVtLN_J< zPQOBZo?L2{ssJS-N56@R=HY#{Yg#tMqxrO5V|-)8*ZEW7I8+O{-&KraH8C8+dr4C; z%nxAfnd&jm+%FhuO#ykY7Up3zkB!1Rb1M0`J=DS{L) zGG87l>bQevW-2-@G6Yo6umWt$74*_XQtD7vc3FnJQWCPtzBKG*bw}S)8ZA8Z%@XjD z_{7{)XuVfWfJR$yel9KGvTAm&fzPY=?@=19#w5xg>FQ)|m)B{O?$QC_F=Ey%Yy@uC?epQ47y{@c0+1KpZrbUp{*+D3YL2>rPn$ zc0ZYVK!}ZvK$g{uX;Tufu|VdjB~rs_lU9f$LmEK?UC@G-JTSYaQ6?66PAwAnRUlsQ zmW<}@qc@!odPhzL-Yu;bIKQ|o1*l0>P&i<2le-a`Lpe{prwUK)L{Va#9ulvlsp#|A25 zWk4Fi-)edllp!38`CGk*XBfxl7%yYdG!|<;7%^}sFigVHVqUw$3O)S(K?#;w`H@j*5I8oP_vPB z#8o>%^|>7r2N5K0?*5CJPTm#zZ8hjioGuw~ylNzhmhAtOl^C2+1HQzROv|qnhSRs0FEfrgog6rzsS=m45i`*D9F`4Yhh< zPlv?wedA;(nS{D;0lPGm`;>b?3uW$o32zCfUK4Noq$%^vQTGNw8dWfLUK6cNYM&37w%qA?#`nfXTcdMAy!?yNj8? zzpEPLMjcBNC2qiUXXWa~QD0_qX1w4iGaUIp&u(P_j~MI}jIK2?BUzqmjf2{4m74tx zTU%zBGj|H&3z}R{n+}!Ah&XC5D9)OtA*5KtNoX+W3$Xa`=S`>RS-7%c;UN(R$FdxNfa;AYY?M^OfOtNdRxara5FbtbVvHU7)fggDwILAc5R_s;Y`hxSb z;rHi4pIm_<&*jurXC$Rd<_ap#OX#w7!+ zU~6W@b^5KUBrI)^AlJF)F&!=VF1YvUJ#+=r<&A(P;thx&Ow?W^oQUS-O@_=OLQafjX#zo>WVkonEAiuDmxrfebXdk z^np!!lMqm#ei<%V?6olnB3$ee2gnz!XZ?Ibcu(>MRumBumWxE|a3pk}fyLV^Xw|&# z%YjyjE(~EO;S7+~8PdQ)KNO~te7pLu3J0i}P$%Q+_FDSa^ZmE$3d`APbr|Llq6S76 z?vq%#WuzTU#3R4NVu2Da+x&i`jsPd}cwSL*Ya5D}Qp6O4nJ;0`OQ$jjyU?1yR5hIN z@yUzyGgW`=np@I@O;bbtSWvP_^D9iWeBywx#N;c(DtUpy9{e4z-tX0iQUPIm(HDq) z?XJ8V&SOaGOJWG+KKlg8jF2j3^;b6EP9p(YUi1pw65Qs@C9ONOD5B9O!HuOo-`9dS zmPXofta;|#2x1TgFFbY-8cx|>kbH<9nV!)}_kXyr2XEH*riIo0aHs$-@FCHLj64_% zzgXU?vec&~EH>7~2N2A*Y#lY?Akp=8*2J?fHlC;LSsQDA46BfhoA^BaqrBjS));yk zAI(ii>4iMAYwp2+kMEV`I8}}0(L^*}=HLoIwLm*m=hlXMlsxs~LbHS37;OQ*Q+%}os=5&gDc$;68xnZ-d+#zefq zU4OyuR4i@DDAT<1JEu&B=94SRNP&)K0^E@}s75WeIhGzEHidE6QE!~O0wqAzl$IGd z%b=0^qEIy@)dYAes`u*-*|+2KQ|=UgpFaxju8777v}Y)9rVsjocQ)t4@tT}_ZEE0E z=2e`js!AL>Z7)pb8(N_Dc16$@kv(w=;S)JR5}O}mYb!=us$ z)q2jzHbd6j#2i{WMhR^U=FKo0_R#{&jG_Vj)F%(z&{xlS{%jiVc;U499SNA}Q-Nwo zSe>BA(7}EGyPKfwt|lkBS0NgnlG$%#eJ0VyAt@NeZK6ID&IJ4YHHCj)Zxkf21|4`NAy8s^LAoAKCo&V_y&moxp!#!F;hm>&Irm+_c^enUX>3`$p3{{h!C}O zIu(Ch{I(^b5Yl+Gr}C!KT|ZY-KioW-_jF`cwf1>h;L;V=9cc*q^zyabsg6z(3)Mb= z5XX$wwu~M*Q@Z7Cyf-`MO@c*T?V|fsMd@}bwujhauT(krY!ZsNwc9JnyomQ1p9L5x zQU%QaRH8#pKf2+nN7K0EkxKUR-x1eoR84=`1Q83wcthE&8KiY*{YK^%mB)&2#R;7F zlYj;Qpcq4r@r5qsMQdt)6fLyze0cTQ2%yLlk)OV*VOxD~>+)sL?JMI5MB(2YHq3%q zP>;-j#mx^Vq_IYrh*W_VKdis!ym*P~&oHJ8s-JDJ+Z#@yC4I|yl59-P8Og?4dJfU$ zNo#XlY4_mZ+Tpp^#+z4QJYsg>!YU3mf^;`z7P@>;Qr!|mxOV})m;pge>gs`l0#-1*`#>FW$dCoh9*(<`$DNZY_L(X6 zt)(Z}zrbjX12~sRnu}knUrWv@+7)wMlOssCUD5B@%ak|}tFvYI(mLu(H=*(S@FO53 z-FtWs@Lcf+1>y*;91@50FB$;D+0}CqvBgZPuts8oSn-a3hKl|1GV*Ci!^QHih$6Q| z0l>P!;E;GRjvv>+r0M}%9b0oCBW@t4QXK4D-nT!XTA7iPQ&~(1Y?y=eeQ`o9E$2xF#|9J#%xqC#3UU_$6XF08d~;S#7|6ICg?%TEE$>{F)^@ZJ3>M%kUrJB34;IEca1Bj zj&o>kJ&F){R7GH7{9`1awA$Rxil@k-+@Zb2F0^in#)-Co1B8MYd!qb^V^S&>+*%^< zn{U>T1j*1ZqR9F7VjSXYxGOI!tGRbhU+;G!<}=(-8~Nw8cFC(>2LV#KW9m?Pm}bj^ zm!f`%nI$+NuOeQqo5)E`SrGkYqBuT0+_6O*zzd=&K5_Nkd-GA&{@9F)%vSdPQ-Q?H z<0MQ$CT1#sY3>E35L<0uRZ%QfCDWVoStCtPcgm{1oKRKc#P)IlS(d$|FuJIl$(tW@ zcInhUYv2SL?R}@;Wvxd$lI9^^we_ca_nkm=*cpP&HE$F;4cy^N@XM#(Pe@4u61h?8 zyMC*XN7qc=eny`fO#cxr zYU_l6s;hR6RBgv#o~GyZ&KMBN4~3wZtgrSGd>{LINHT>=bIP?rb7aA>VpDSqg9XH8 zmpyJdtYZp8eB<;Ik7O4rzrBd5u6O^F$RQPw^Jh)*ZcL8RTr_|AP^cJj$(Cp>j>wBO zzm>VIH)G0k03YjlfO!K{|@yP9Uv4|2X6NfWCa3CQaOCkYFQ$; z_!@`DF&mEQ5q$-w7=_wJ%QWkzY^l1~Ktgi6?s7FMAhtu(b=aua>-xb>YE~PQ=n;#u z4XQ=?V-}V6+0!jtoPelR+TO$V@buvGC*9*MTyyw0ArEum7h+3f`@{3bPVh-EP5%Yh zsS9APh(TzCR+AJy5_G{j0dwFAprn&PYtGHJ3YEz2<^lxv^3yPnWx2VTgnTi%TYYjzMo%9S$*Fr;6HK=e$aEz86NR2Im$)Y@X;fg~W!k++hYcL`@e zbbMaj`Qcm(narNXnM8m7;}*FVi|c;yOT<3dsj9_r-5Cn*LJcKwQ){Eaf1w(iQKAKt zL+psy`B&Z}0B_iR^D7*wyI>P}2~CWA8a`9i5NT%85w0F)wFEYx3|pkj@m>J*AU|{2 zohRkMgn)v zZ%Ss8eY`Jqz5uohmjzjRkw5U7{?c-)V1$9RxpK{wEQd7`?O^d5-+*IWb9*YXp?-;D zf%PbMkSe@T(Gv3!_R$Q5tj*SxPY_1giY+`@fYG_v36!UpZ$=NPJ`JZX1~ROi!w;EN z+TN7mZ+DY5ia5zw4%ZkwZYt=J+XP{%8cK6B?of<|-k*bKtYLA23k1h9TzBOo3o(XJ zJl74%a+L3A7CjJhuf5FFt1ea-XtVtB&?484W0FC{_R)6pLK8a&%Sl8BoQC6y;&Alk zblgOfOO=o4(^H(%?MG`1hXc-EEr7-HssPh;)k?PExC8o>hdHP`OQ&fxC2{#|ZGa*|aM#U5LkZFw!V{%=R< z7^*$-SHWxXiSt2PiE*uIApiyz>c{Tb!vr;+7{LqPGt85Q&QN*(J(VoHYLoAD7NWa58l}@8@*fiW$f& zw~X$xbL-4_5h|SiR#1eJ{lKom%CK+6lW}zh}N(MZE zyO4VV=#1-J12V+)ZGF6rEYmu8?&GS#)x(>;u@>%7;Fij*nA4Z=XpYYfpx2_H+#hJj zFFkyjA27xb)@fH6)ual)oli1Ri`rlB0~4C)`~xy5xvj0-O%pUaemu#PTEAQBnNssa3fixT(;OR2X`TN!?(XH*j@w6TN zq*bE5nwbt)Nob!>45aS*b&h-V(TpSq6MYh?7Gi%M8$ev83lPL_pqEFJlQ5cJc?J#U zV%)%`Vg?5MQ^+aSCDlcUCN}fqufL<;9Y>yT-h8nLb4iJYi*Ho$EI%2prX$Xp6=8Av zu}mvFJ&k567g<~5WgvLq)L{+f%T-|DVyg^1Z|wpB@acwVNr;NNP-cr2m4b4Jr|uJ$ z^{(Etr19Y#MImr?Q%oEVThlJozwewDp$=;XGNwNXRhbBu1yJS z8X^3eAf8sdUF_tr0gbQ@4iqtFYP88^_QhE#&PvlzKnl+!>8^v|e8EvsV{x@Lau755 zAJj}n{}}hj%@OL^m3ul~`Z)REH9u4cy6ka#Dw93{*2c)~5iX@XnL?7^Tw4_V)+&&z@y?+SmC=#qFW!ISe68cscUqJ#mYarYWU>6Q zBJ6Yak#>L}`$}7QOCzCGyzuF#mK6h5?bO!HUOw(2?)N*1DsuJnL&3gc^VG`qHPw8A ziosRV`hD| zPd0{iX{g#{b6*VI1RN1AM!6W#G0JdcuP(}WH=&8pK0vJoEVrDiQ8YS?8(Wr*5Lr@v zYBsZfr>m6Vy_(z(1D)Q;-Hv+x@3_OeXH`KUF}O?3w_XJ#!dSACW6#`b@S!8WU*UjO z^zB;104YG$zXUZ6^%Z{a`p7g(CmF`?zzTfxp%s4f(*V#1fZs)-Z6>B--qW?}Wj~@8 zF?ol;7?$A9h=+kPva<=skX_o!c%)i=d!@~&I%pxg3gU|(M}4a2Hv1c-FTd9s-@vko z8gv^nG$>1`(IRU`^CG=mk=eR)CY`h(!m?4xP(h_$ECM2na=CAHuAw*ycWnN0V1;jL zd~nW~*r8;Z5=+3~_TC}{@X1Ai&Tiu#acy3Fd8vG^zq>+3`mE&yX2VQ3}!wkOy1!0+QvDZWCLu42USeNA1 z{vxY%Hja|Rj+&Y*Li^9Avn}a8hVz{8mD$0{a&dZHp5fqpdPFzVHp_%8V@jA@qK-MV zFGKL^e%kz6Ac$M5wA_|vIl*#Ly-_JHiGTr(xxW-66IXX=VbLSH#bSsG;Tq!XCC-tk zP-p<`o97rzbK?=XOEzw(&8QH>!NK5TzJ)k|cr< zZS&Ozx8t>UHKZo`4}k|Oe8LxgZ?(#?SHM{77dNqi@>Rt_IKUuMfd1S+FmYvgj5=-1 zC7dPgG!>CUPs;nHR?@oja!ni)!Q6wSCL1IK!tq#Mo)`}IzM~9zNoSI46#tkgPBa}y zv8Lt^Pn1efUBL2tB=+&BlEP%)J;~TKx@7RJxa27Mj3kz2^Wzzu@_xbrDy;tx%jFs+ z(d|I}SIYg}bS|iqo}Yez_yBTYDLqGC_FykVdwtr7?6;v# zDG)ut%Pj)W3(p^Z1OWcG7(Gq>b{*9!=TM1wqr!X}I)#g*RTh5$a#t$PFc2r;T-M!w z+8>A16dv8wquqr)5t||z-x$KM518BP^N}1r(4hlzvmTVY}`kOk#k9k;C#K8*_j zw(tcOaN1}8MEXo-?;u4T?--+hc9JG9$)Xv2asa<>%*fN-X^UGm@x8+yZCG;(0_!cJ z$L{xlViA0XSCG_LJnF{EK=BG%Ino;*dck0eH^+lB;r%`2@JsUeX7ll^kaX6r0nug%L(>?7m4Y(lyXS%rNS z049x)Lw)?h2Ta@;X@oC79zz{6v;^PVF^$tdy(T7u7dd9Us%?F?GWk;`iV+>vHF^;a z@#zE#hwIcD9Upr;M+cbi_>Xoy6w3VXlE^#8z{}<74uHsbXw8D45hF!ZL@snr&3YP(ZSPgh<${* z-8(BF)~x}Ef(x75nMQqKU@p|V!mTd-`e5|5u%FPU0j{rCIgpjul+*NI%hp`=EMpdZ^C0s zEL#+{b8&fn_cle?i#C$5oOG}&GlIiEfxFiV7~@#r;sgHrb-L9>9DsPHKJEO3998%k-a#m2yY zMRQb(_YOyLcI;D7&&6t=9kWnHv=q)P)|5yw+0;z zh*n3jJ3}A$tdQV+ z*-ko`Vk^D*HlhCpV7UXD=($x5Y~|*{sZw6r?a@Wqyf`tkbv&##6r9nZ_*jIo<3ZDq z6&tQ;;XaLclNoiyEkis0bITE*aL$jY{~O9aU8U*nVpt+*-fm`pi&&qU=5j5lW(2lE zn9l`5GD%j@WRGg$`kEn$?+WG;kX7Q1 zcJm^he)Aq4sV&kF2rX-}#Yg5=OK-TtCdAFoeau*xq$6mPgIgrH;kLNELMf#CZay`?ZtasvkTf?2&uc5}wkCv6I|^ZoW7^_`gkZiD{yCVHPo zx@b^7Hv>V7q}G8@(5sB{xH_KKi}x{fNtK9CpiMq8^Tyt40$afv<`M>aypGa)daMJL z8K@nHXuk#8Ayx8qXTzwP*+j(&-%r3W#c#u%9{Fg!$2PSmHA%ua4YEx1W>(~v#5cR# z^I97~Ke1|!9VwapQIkbA zA*4pVLgb7Y+RE4>qkN~pS26vwS_iXlV{G+Q-7)t24qA?~Iqo6&1VWxE7kx<~&4S38 zSE~!=>UXJ|^h%pbv0kM|VV(G2gKf6UKJSctqm20kt+P?|47>w1J;z^i&Y8vRtv@<1 z>^2c;K0sA%BfKG5#xBNGHH{}y#0)Zor;GG_5|AvrplW?3t+0M%lD3$H5#+)UK4uE( z3Xe4(T6tGrfG&M|VzI_$k6ry6;ypd9>b;_~@uh#qy; zh(~DnrhXTIV&|@|Sk~x9NM5RKb((TV4qC$6DTODs#Q=dw;Rrm1#CX+J>)>08lN3D} zf`G!(KLtyYuKxh8onzOJeb0~xFJ`b@1JfPRv$$CR)+;e=C9ah+RtFLB-YHl5BFPhh zLh$6|6DWH0vg|vvPl=`2jaBv4ILLv?x989Nz|>aWu&RD22%~gAIo)(n(HiprkezKb zFgRm{-twT{*!)|$6!pJZMOK7rH<;xdOHF!PHuxpagY-#qI~7mOWLc;94}EBgKHikk z5`cPH2Eq?rO}+P&u|pzqD3-_~TYB|5LOGOOFtK{G1P94|cz)vZkQnW~+e#MNEOL~{ zgnLpw`TAs#KPV9DN8r-hTLWx7TbPrCMwRe%DKJ#3YAf*-+CMrj0~f5xPEub(47-#W zm3y|3HVN$iW{_F8?OGJ~i_>Qg&+i)+YEM_3Hy<(7AlgFnaORou^8H$II_4B1T_`;X7`yf6_igdl(kh* z4U>WW_@B-8Hblq$>p_aHAA_IAlO)d0)&(7?f%Vebg^X)cxc>f)5WHQAZtmfCC^hu@ z2MdQYe#(Uv;DVCD49%kHb`$nkVJNAT%XvdAat@jZBr0ZTIrVT2MfW{&=H`TvDK(qj zZ;9{Qe_4(+Rl@+ZX%JN#)@V_W52KG3JwB;f9`HpF`O)Ssf1Toe6TxAU5~eJky8s26 zZ`WCnOzntVFn&u+*_&>M5+bSz34JA38EB_}@ySvWGLbR_0GTrpiYA;+Ye0Gd{N7^b z%BG$-I^Wx^KT^=Bv$~40=`uvSuEwIhq2o7UMKcA$t|+xNI5_59j=R^yO#rYl)LQ`k zxK%*H_N3|=p5b|OSx-~G95>I#hyYr2=RaO37#dCY*%-czBZ2OPw0i1-DCiA#EamV- zQwnfvmvhw~>D`+6=`jsK@gb2Q!dST9$BueG;D6WW6ZtZl zaWl$Gyv=us8v5b5I#rEQudZ$L-6l5q;fm?`Xj5|DKmw1Kk8J+IgJ=_t4i6e_&dN4Q zZ9wTsECn`ld1?LkULROco=`-x(2NAhJg$~av{J)63o0y?ow5v~T3|m|f3ukJkXtWmyEG2-u~kclScL zCRI>*Rt1u?Z>dtq5M8L#w1p8U=mgJ&vmQ!-1h9W-(HpX(Zh^QJ#D_E(3qz*_+^#r` zY2t)gNP2Si2xJfC-a^-NrG#x@ye(z;CHxBjZ`trdJjj9>ljKnNPmssG8jGwvjlD$I zI+nEeI;b?3iOo46BGT6E_wCre<+uyF=3voyU7mS)X()?~c#h)u%?gk1DzmK028j*i z8#-_|f1z&=IE{Qaixg$1$K0it&d+3q1OGu4QKwC*wk{zk~8#06b^)t&HBrVH$PYRpJ@S zE@yEeg20* z39{3uO@_Z_wBKt7Q+?QUaD`<`KEp~y!lkE1y)XIdV#HfCMC>%QPPo3_Kj5+<8ibDREan*Xo#JCL7E|@CTM@s40(KAj&`}KR|{!s69 zJl!DO*jCf6F!2=LaPo0|KJY+u05QufLFUBhvmDk%)$XPVqGJ$dN-pRUhyG8|%f(?1 zaV;CR-rK$uX|AF(?*hRonvZB?T^vUodEJ3!4!!wkiH0g|6R9PtE_hIpOIX|qdIN-w z$r`u`wM`gn4S(b46d!uWHOs0LqFFG}-+!ZgUmj7$E^lZsw$1fk*RCz68@n*SOCo!i z2ahnF;}=9~10fP4u^Sqy79Pqx@&u?vt1}xV&2HJV8LYO~gFMCvopO{eA*6vT?y+## z@LN2dYZ_^|Xv(U(34`9>=>lk1YOlb&{ zj!;N}%l{F$)Fny#;WDz7oF%!h zLV14$%~ezClw7r?GZrW!o68iT-!8E`n|Cy0GXp;!EQUkW6z|3YGK-A^N+vi6FYJ^< zT0dVWr?fXubI7y&XFQ}q_bX{9Rlljsl$6MRkysyLE<$9LY!*bK&qvfM&J@ieTsZDp zV=fa92^&43RQGw&(!2XhT0bqn4=A&8!PS(*@MKj_NhOlWVlUw*0ol#k9HKh^ic6Eh zQCOZ@1BxUsSrwAxovS$j&zI^4P$(gG>K0BrH2Nf7C}IS+@_-;H$F6khfX^v64DIBT z`!&#na9((s-*)%?nKDVu<$3@WL$!f?*cHrl60?Tq>UyeK~6yvdqHkTCm%mP&=@2kRu5sgLI-Uz#_Fdt zzH7lywMSg@t!v7kEc|{#%<(J3SOEs`Q>+t6hh@Kkucnkv!pIrxBgy9mJRV(eL1md z#4<%*sZm1P!5!t*FocJ)sVc`Dh;bT(|B)haq~0N}yOFBw@#%dQ-0n%^J40m*S46R< z6>yKci0RBzs8LEKa&s!RcvLY5NiyFIZ<_V~by1J6$r_121A6^{VNYwn!cCm29OoiO z=}SJ{xOp{3hwx=D3>D1kq!bPntOP3}kNm{(;?4ksJTi2zcA}pDX)Hie!rjiV8?xi& z8cyVWzA#HxhH3E@ZvQO-*4KIzt`~!=e!_9RmVEV48Atr2uv|?k6-M?q`w#Qd`9sN! z?jA$Dc+|$LlR6R85BK)ZZ?pShEKG6lV;;vM`ykVE-zA+F)Og3V)1@evx{WgTxgBAr zPr^>-;8T9C?fKAv2*vTV+dpJX)D2o2>EJI5`al3j%Zsuw=-JF?A*s`TBI8#o0ax6i z)k%W&YGYhDr2;#jQkoW|vU&EU1}Jnt$}Yoen6JUlhFK0wyG!s2qIdZoA0b)BU<*ZI z+kG!Ip|#xmiH(U_toILk9KQqbs%HPB$pv;r10X^K)@z(W+hp_k%DU|~CqP9U83KAp z^DSB^D%zvKb{YS8A1hH6s33Hkq36sdH4ImXtVuXXc37SD`zY0joAO5x;lJ;(u zy%5R)++grvIUzX+n%t$kPqn-k4xBgHvN_w2E~N5`;jJgm@(Qydl>XZb?;|siQ4?w!qjrBTH0vlUVPyq^>af}s4Lcx z=8v$Y_hq{yKbiY@3}Dy}=jEjV=7XjJeW&grKL zX|7tLbq`quW4`{qfGM?-ZmP>G#a(VbKhRwrP0geDQqXbaYKbh*!&$00{eyOf?_SuS zj|xWnbOtF`cr-J<2Ycy-$IRqvGwWSXmdZmZG2?L?iTd3KPPI#I1NM(9g$lx%zhwE` zEpSjbnVrzhd>SxNqX$iiM0paRINb)r~IXfrz~bxU?DfV~ssZBQ)kRBsY)TCq!i_R|RYjiEPJaDk98&fr+y4 z25-P=14$Ro%AiP}=k(sLbO+maVFUP;2%Df2n)>qKxQuMybYnWtkU=JY7pB z2@i$h)IjQ?e=gm_9=9T{N7zn7$DivWUTT%N9y~5CE_{3$Au;>9#K?|s`#|)O!eAXi zn9SE@Dk%}8!1n>CZTAdPWdrmXc#<; z4xDcfB~9A8v}VA(>b_@zwDFBlEH-T$m_%E2F$hghJDLS^tZmbgvm||2IHUQ8xKhpb zJdnT8uR{Ibgc&mJWd0?=fXHQ!!iE_;nUbI+M4~bVmgCT4E;Nb7JI|zh9_v0zqs8Ej zar!0>6qM%)lVO~STyK+4Uso5_sldM9>rEP2zV#_Kwc8e6qRq0z-)F;iE6CXmG}Q3X z>}2a9$#^WL5KS8R+HAe0$Cc~1289|z$1GubzkP)rscgXDmW%#Bb8Oj^->cQ z0r4C9aH*HEQL5x2jy;{0@}1Yl=v&jS;O&Kfww{OZhC=23Lk%Piyl-qu_??X8)MVbY z)XM0)$nxFtG<4L9_mC1If^PAS3+&1&hH?t$kR~!@7YBeL5NYd)xm8~i=kNu)%7&Oi zf@lcW;qwJb64FK~H3mIrSFvkQ8p1-LkimDyBU(Ki7g~>hCD05>Sf-;QUJuSDri2St ztu|Y7%@tV(-H2BO6Zy$Y;Kkh7SHT$}db*Mlg)VlNhPy}y ziTMYT6A`~pd^&~~BP~CGN~j=*>~_5(deJK69sUnupXxxf|?7m2R;2P0>@r^LkrlrUJQ&nv&-0YzGM2oBsgc;>ZOorR0&ha za)JK2RZ0HrBRV{`$%7T77X@CU4?c~@A68vb%CLuXOKx&C|N3w;@YUgax&GD@;X%=?JnJEX1J=f>xi<_Q{{Tsz63ZC+fpM@MA#V)zS;SW!he-iJiE zTZHPg9?fHW9?o=BD8AtNK}qphMn}GSf=8^0?nB!8N*3jA6U7zOStX(_=TZQ8L8(wJ z1v_Q^!WKM$L0Sch&Vkl_qYEvjDY3uMMTZ*i($1;$c8oVs0T~|8^azHpzg~!y>8pMY zDTLTp2Uc%oUNX~?rZmWWI<$%#q=6h5wt=+I;e2ZYYqhNyY-&}0fYCv08<|hLZRg69 z8*F6WHZF&DW3nWf-F{l?0a9O9k`@`z!P)5=ENCLVL$)ZI7gKUFgN-4kEHlp)|CyHFH?Pu#9vHr zZw9jcEeL*g=s{}Ef`PdgjS$4j4=`jO(J^$q9gh4|*fQlLQAFK0xl2;$V>))D%*$qh zL#oQvJSTW3nh61E2wqzK)Brw?DF^o)66S6&8|LVFDricFiJhr|j?4Fi{BA*UM_KC! zpX0npt!qZ}bs;mJORwV_9%2jzhO@`G)V3~7zxwcy=C$(u(iXiYqP^RchuLmms-#Go zl)!vl3GvA-RM5QE6YE)%6Y`!TINCcD09^b}cqpSSLT}iNKf#4jpW8iVRGO-eDKgyUjoRV~y76SJ5 zolNu|Q03Z%Fw&Pe8h`12I<*;cmq%C$6A`8&ePHCPe?<|yjBVCEPEHepk;_1}z?QKZ z3W^Z=RRD1WH>jSWBL**E z$?RRU4gOabsO^;EF9~F-6qob#BrjriJG4-p%_XC8Mm+LsuggQwp*fybC(rW7k5*ML zU3SZE(kRE%lj^05y*N2Xk&mIIL{#^QicjF=iF(3(-w;qBHU*(Tj78@t2-X@B=WLZ3 z;<`6zgD~47&l9D_GJY46pI`k6lDI(DXieK0KmT0HBD70blT~LN#3yVHciVg;oepyq z_!Y9MLYnh_Q-tboTFD_*0lmPSqnwNOy|BLaMI$o|1^&3`^6f;Hp8IWHAc({%D!Ud? zK3*Gy3wrYI!Xg7uj1d1&F|7u#wlFTjF29#H_a`-_kKA#-8O6k=b6p>2qlT_)HPD1R zMEv%S39<+kvuxbV^wmM`+t{W=ukN-a162YVDdhVJ2WjW+iW;^a1S4o_bG;f1BaW>> zL!9t4bR^sS*?Xb{Rn4iryosqC|6?*?S^AkNa)8Vzi$ToDL0QHfS4F)SMNneh)G#~e z#Jd4=Ev|P}pCL3k147Na_t(;kbE^!7LzIHlEod76&z_df^l)e@eTINiIK3bjlF#O; zLOMjf>9X(cVN_ZYKck>1xx4f0Q{Aem|85)u6!7_rSKH0Uqe{#HP4oNxZPq6#{Qu^? z7=r9u72vSL`1J-)A2qmXm$I71fC2#-hVZ>AOKPZG?Noje+|evI4}tliq0AA+}} z)|u7ZX~S})WvJ7E{TdZ&q%b%_NPn=LPc7aQw@$?Mzsj~twx71|N)I~-Gg+H&wuUa6 zF86r~&9}!-J%B}JJ?Z4{@B{0A!!YWDS40T7B34hZvykIdZ3!6+%vKz%b>APnAEO0l zVg_IsC=@oXPsUY7Wmj5;Z9)H+%aiw&u#ZO2{naK4_@4Sv(O_j*V4}h=Cb_CBmu0BS z{I`Lpu25#c>R*pqy&)c(rBpG?;|G#*1%D}x0NpO$qcY+NCTxGORg^q;Wz<<*rlJeQ=LRmmv3X%dkI-xsbkI1Cqbj!OQ&0%N z(icXEeth6=&FH~N2!$?1V^wzAwQ}=7ibqSx@X3KIH5vsqo-=#UBp|Tf8yt|;V#gjP zo7OWIPzHOiB`~gFxef)v1rU z$j(bFUVvPgRM55*li=OX{Cyf1%kJ$R^4nSKy2hnr_Wf3ly=pBe{N$z`Xe_7;vKv~? z-f7?OEK8a#cWxELl^FkgUoe+I;jwk;^0Q6UgR7bhFt`v$7E2L8W0HeTjVb=|*SdQmDI{&5?A4DfgG?eAVA6#Z?`H4898n&7M6fd$*4Z!Q_D z00oH|9m5Hm_G{Lr8%~SG5#6Oh`co>_rZ2tOH0(Sf7?kW#Fd+ErF?D+VuiL&IrK9lN zU{TiEfpOL5&?AgEZHOhSJ|Qncx>y&kY>|L#Loi()(N>jR2ohM7;Oq*>38s({=s1P< zqC||qfy)Jv7E&_R`qpJndFVv1E-1DyiM)4`@HJ&kv9~V*zEkcN6jLmndZ2F;QIwzq zgL}SBeL6fSnRe`DiqrB<&8GalMJt$%Y7PPC3D`*>|cc5$SAC6ClL@)XvM&y=bVdIZc}(K?WxIW`fyc@Tm!3p#@Y=Z*W2qx z(#!y?4OROJC6+LY`ym`03y#y}{we)GU4J?Kr#`)u^Bj&CfuQZwTsdW6T4Gd4C8v&3 zH`nlR4hKypVP4Vx(A(m0gpq*;a`~q?79B?z0*(&AG|BCxUmu=o7S5-rxb7yZjoupcG>i} z4s_I@T?NMdQbnhx{L7fSP$b^mrxX2$VeIf0ou<0o3FZ@@hhOf)6K^rLPH$n$nQu*J zJrHwo1H!F`K`Ix))1TapA z6;cl@ithh z-2+Vm=+&n7@{O3Vm6>nkg6FAvz@jN^kH54=cMlhy?IU}mskEwG|8@J;z48Nqo0^?V zvsUdutnjM5#p!|9U&GO=)bZI+v9=YAXn8NKi`1|$1b6AIEOUk#RNH8oHLm6L2J0JT zVH>i=d4kO|+2kqyd`Y8&kqZ5NS+e5x);;G36)@mY zi8s0*{iQsA7Sk{|m*?`ozXJ=6<16yRCKg}HVZ7sSAIjQQ#_TDFl;#mscK-1w1~;5k znTy~df4}g=W0j8V`|sRHw&c_cLX}9shmor?ns2cAXtKoPp3NC8(5zw!g+sB88OC|$)=M`*AV&sk)F^R*Pm*Q3;m7E0UG)38FaX46>V zwL+zvN@V&M0mQRE>EqBTV@>?GmhNKX9H_tOQ{~hDm5cDtnP>VusY{^m0U#l3Qb6~Z zVYt1eZb4RSu)KET;!*95a=$G}R}^ahxCeT=@$aEkop1r@UKio`hNOU8$9b@+5ECGp zTLw<`6oD9&78?!8;1U}0)fLy?>i&7~VsnNsqLD47Ao$-^&oYKPUa#LRGMaXDncjh5 z8nJITLSw$O_FB_))0^0!s+0aBhcbb0T?KK?c7I{5$xN!AqF=TkmB(S|liXare^r-l ziJ;}IB%hbmQvwxu1?0OV4c*{H&B`qh0NB1uVPJWXWus(!uip35(g#=`oAc~4j5Elv z4{C0}c+}POxhDOr)9v4vJmK75p^J@^r`#XnJoU6ET2?GEdWu7!Cl$gpUtZkm+hEdr0_xm! zyCJyBwaylJkIw|V3YibGtzH>1l;u@wX^!$pMNh@+YSMmA8lNJIsp~8tN^#xVk;#%m z9(1f5t8)qB-27>JuzBX%3d@E0{PKcmZV?KNfxiSf!6BdN#&2vAuCz$39H$4AE>NCG z%8)ce&BqtQ8cbU8jPG7Yu+@Z5YJa4^G-&_L3)Q|OAPmrgYWEgKL5QQVXBxG@XchK% zg9w%>jy_R)p|H3_#%!(E{wweZ+lM~^EPTCD($+cT#WM)p`@f!%V|IV)ak2WQbu@<4 z`%nxAX4ivA-NiXimx=iaOI+Nl>|q8mBR*8Jq&QTepjP5}=Wj&$ ztciq^gPf~0OHOAeI$O(vn^KL|Xi|xo8ep^?@+%{xRx^9z*HFB1!=Ufjs%JJn`v zpf<)y5OD$!*>GgOo_I4j&o$?;2@HBRP-_K_Zqqeoin4h240-q-I{pwyp4 zuCFx_F~JY`sVn)Dt<;GR%LN>NLrH$#qbtu}>d>tErzP3pwm&05l3mSn&UuYGu94Nj z_ZN$NRa$gLJ1zJh=iZOK8>|Ya%(i7fTs<0nNbp+)aXovCPlQH-+~lfG?72@hrex)Z zQ{9ID(bKGf1*aX$%+KQdkY7rZ)Tp2mx^2c699NKBJ9c)B0*xc^hR;6V7({VZrL$w> z!P~gR?Tlsj)lZ}F|1pRRH${R7&L^!G^{8@+u5>~n@!rf5Y~t-(>jHx-$+_jfAgONBV(bq4RItLAQz3ItMG|fy2_?Tp`f^gJf=D%c zWrQ7{Jh`e^arYPR!+URmm0qF%*9Bwq5h&i@NouZ?l&?=J@JzaY0vWDJoIczCVdf;b zZ|a*P@mq?n>~`p_MBLk*WyP!w6(Z!vYHGuAu0bh;91atj>(nxPypRo^3oMsOmQz$RM);ca*Yzi?+;+?sZ+>KR^X!HK;hoOw9bWGG@?l&dlIb^= zh@<#92T5yV3yI5im4FV{dSxp~TS6J66Z%8_b)EBA$a=0A09D0E_yIMKT$+Fi)n`cD z_1K&k?fBbf&WMp8eKGN^%ns6(p{4H!O0WnC!w>EbghUh**Q{Iakl)7lEr9(ACM_0V zf_Lx=-i88WdxtwCgT35-l~_~oE|<_ku?j=88x$zX;>v&s6PS)AftcE&f{WD$rDqh> z+L~X6nhw{R8WPgm_fMwMb^Z{qJ#u+s9d!;0gL8)i+H)P@AD^G`H8ttk>R)z=kO&G* z4Rv4K4cN&69rr%8K&$)nT?Uq(1f1~I(J;5Xg3N!o?@AfA= zdgR^lMz$(9>{K(~a;o0)cgrG01rJjd$s@8oIscY@gG%~zxA5RfEZ=aHO#s1=6nTAE z-sRLbjm1oHgnv#~5#38h@DTxBk{Wzlg9ir!Kgd~g&Uj1n2y&0By9y8Lqt7=cc(3U? zg3YXVHn9UOhEn&z)W)Z@0$i^M@X_>!gZJ=+MtNnG+)zc8)lQxV7~umT+?nC1ukTmc zfiq;r#VRP!?Nk6tCHrFa?gA=takcrpUF-hP_p22s`!F?Vi#4K_NqPe<9$oZQ%VRZJfZ;sC`{@gk_%K&Dj%_0iz8_$ssO_pjP$2*8e3yf2Ri4!cSPH|yNt zZNgJeR>@bm%M%LSqyd6+vE`u|HP&`>v}A z`&juaDeybO>|dO8=8W##iitY%qv>r94(LwSEMdanE1uoDAnOpWjG6$2i8j&GhI7zv z#;#7dLLc;PvIZ|eS@h7%ZM946?3hVhpoCVMP$PPRwW;x(uJ6AF6@>uS5KC131E{{l zkODNITghO)@;qnJAJs9xeWr%2Y}LtO)Q?(|Ago?1VQc4fhtPXrt03#fBmAQ!sH;_e zw;QuBn=+6~gJz7*x6dXW__bd+>o3Xo*lR*8+=E5LvL&Nb`Zr)ua5yoRr?$5~BOM5( zhRSA|1V?9n5KOLy;n%JP*X>~CIjvEO&7QPk-JsA+vwbQYkmE8zJc`{QZisU1|B@>? zJ*5}9j#f10AeshSh?|>Vk z&q*4GO3W)4%r&P72boCRLybsmoUHT8zc3(%J#G{)KCy1g`|e?BIVndBd1Ak^DiWJ$ zum|{1Y>kmj;6DLxIQTAJ>eb-CG@ot(M~6#G^BVrq6al{qbXOH*y|4wlfiMSthlE`$ ze?|AA5gP+*4y~lT0A$y>Wf#)#j)B>|}hvP#(h$W{O6Ua{j!n~_~K)KT#2d?V*uQ3VY z>3(nc_8866nKD0e2AlPOF2HroHY|G7J85!BaB-WjQ26iTyyuEP;I^1fy8OAl9Wz5G z5kq!WdWB7{lbm=2MxU)Agbq=@Eb+Mlxt=I$;oYwc+|cl=$^)R9!L zLVI$R>7~V4QbrVpo)ZW&MM3&EdX)$zSKYSqa-P4%fQE}8591bUdo@N7*eo?{tpL5o z7q)y1r@Guw5kU*#m`&!8cU6<$-EISKoLh*x6#DNBMk1@)I)Jf30C&0?;~htrEnwZ; z)rgjcY}Tbw%ozx6?WHM->5xriAm37t!>%~cZNcc<9jpb{QFKVyQVoZ+UbGjKc5em6gqft9sJ1o3p%l-uSz( z-*acF*-YbJECetOM4kKP(J$U{t0~kFR z37VuZS17abRLA)&ZADx2b##6;xRJ2=(Y)?>mBbgURZXU6FvUgcN?< z4I9);YoxA{Z&?6EyqWehqVm>t#?i536QDvJhj8ZzMr|b(*sCZ%zr`FdWAvQ+C3`_Gl$SHj8JP^QmAxF+^!&lY#jmGXgnhzc?|KyC-W@qAOL`uCu z3aeDut%hc92M{*f?H+=*CNB&(0MPN$MD~Zi>R&m{Os13TQ9zs&7RBTqjBLtx>$1Om zfXYT%t3FWE-%fcWk_Oz9TcY@!0S}0Y@P`e}qeRm|r1k0czBxdZf&Dj~nbB7!OopKZ zXco(q6lm|lwm6)8<90Qee6BdPR3Vewli)pmC|qmARd4jIVj3c9u6sqP_Rm2~GFODp zYURJqXVHgzke8vR@t+f>HW;9a`EYu?VbO?-G$9%x`_x3=?$dysiiGt%>NaoJT?oh9 zxb<%J%{5QgZDlxDsiP>NnxQr`;n8$oPh}dHJ`91BaCGD#5~;Lshe*naQsrdJe@oY} zdZ0Z0n5}lG$2!jAUfAQ0#Ez4!djDu(Z!wM4gB0!6fdxRIdR|vA{FIs|v!ZL6YNr4k z(TPbevX*u+5v1I61$1+7`MuV`&4sEk(CAbc?5LrjiFDtSy`nw9h}_~HQ?ZJwdixRE_FSi+ znG`UI3OXTQ>3N{z#<2?nMQS$Ya`L)@1OYRcO3d#k)ayzCEurN+ToV2}G_mp=vE$ud zvnQF$y6gO8Fu7Ujl+*acG7?(mmD5rOQa%2X|MPE|E#@ z4aM&|sP3fxeV#_tL^BH{?0-MH`Iz(7sLu`bjIQHdYe#k>L1&gypA+I;d!W4j_Gf^UL+Jx6GCMST;{qFqsuT+stCOg(=UqF)N5^5f1U!1Szu#Yv2rYS!jWq8KQ&*KtJ^9T>D|Oc`?yQ%DhXd<@0frkq8E?O9eTH-a$0PT`c{DQlBSCfzBiv}|*_`*5+i+x^H zN5^^$gjbQ#LK8=%73Nq>nFG%1<5t3cw_yBgev>1P+^e9IDm-J&MW zIZ_EL@?4Xc6h@xqK#G;mBQuODG#${+_jpwhYFo%Esv-g%@y{Rw-{`pF{J~rD5w4P$ zM}(sNGqhncyasF2E3G!>eeK-nKtMN?+LkfAsCfkbvRI{b!fz!|VR{Yp!FdkMjJC;M zDx|vYz;|k?NqPO`4R&-5V4E?jI)BU02}8}5EtgqS6OaM{+>@S*awD@_7g>DLcmW zA^UonmBD8H;OrJdqOz=9G6D8}&==m&gL?IchgFeraVFXzcn72|cJjD`iW` z3w?SPSjkaV%&c)>XuKcO>Cd0XAV^ldN;uY8cqP+ftm4g$(Zk%aIDEB8?QfPAQ#*20 z^JO~xosSaOG9fLz0xw1l_sqk2HxmeKJ$&%uuyW7Isk83{OuLJe9-UPEb4wh&dwf51 zv$3G8_s1OxjJYyBSn!tRmi8rR=7%}VR%c*3#3EklQFZzRzj?2O@;s$&Iz2t$i0Z86 z$l&StXWLTCR-3K2hTFO$t45UPh%y9lLzc*&?X^jcgro6UbCi&ZO6@^IBd z$8wzl)Cu9)K%(YNHYw&>JBHiuRh;bK%nK}A{dsf+TeiDnaQ6$f)Cx8C1UD>=R9v>d__8a@zntFo zQ?PtZR-2vHy(fophI)Y3e+;qQgzdU1ySZEwGK<;?0O*;m&1=)#0iE6A>`2s1J{9w5 z=)gu&#{$sZV7=+bEdSzT6UZP6B^;+YCMSLsU05(K6~#o8xYx38jdRNFPOEgDD_^eU zjpnJqhJ3ShZqVOPa#nVgj1=ZDQ~{KXUq$^D7d=VOshKtP1cQt)*&f{eY7{?UqdV){ zE>gePugbPfgXdgJJ^QqUew3yOq$;xoMoITJ8kL7e@>NzR)u&TS+~?^pi^BQ+4sop_I6GG}tOOC!Tjh=M;{kGMf52p=ouTDVxT17#qT$88-lZNvcMAc|R zzu$qvLmxH(&I^f;(*PW8XcB=>l3vU;w|{>i>D|8jP%vT*A8}G#mw~#Rsg-$!20;r+ zrU$Uuc2t>}j#{M8w`6%3bDbeRa3Hz5%#Klv?MH=E)N*ucc#tRzhevXL;KFh0*%QAy z8cE$A;d`txvA(52DA@HQ>^O#X-wSs8V(y%BOHgH>S~h@s^_daQYDcKmn zai9Qn!YRpF8sp6S!5(;inIRTG>>JcwvG{?)z0pdPKn?c}#>){l8$&%e837&zzzgVQ zZ9+Z^zO>BiRnxLkx{HQP=w>I*JJlc+$}O4kE1RNpvhOTO$Bs0c0_iU;>%xr}279BB z^+IhYMCNSV9etPCJoFv?gKD`0-qMwBomCJn>N}_PC7R8x6BYnquuOERq@>gN3-wdw zZw6ju)h2@@Y$hJV>3eDt9w44MSK=7*xdSfp;a{4P z&=29NCUm56+Kk+Ffj6k&@cu=G?`hB9IpEs4p?m5sL9O8f$vcN74YV4&eWeKGJLQ;a z#M{~|Z$;u*|0JKv%#H;*Dc^vUoa1L{%%pPEVNR_6Q2;2Zjk;`Yl9Q{?y6ow=LtoYU zS!oW|y4(wSdu*1r6e({p~>(jp-Xcn*?9eBc{#(%Y3Wue@dB^C5lLzA%KG>&MJj#x| zm~TL=>;;nEBng~kJz9hhFxd`LsG@BI)uS4_`h2QGh##gq5q-Xd(<+Ssq?g>>OxAgX z<)(1|Je2n2)0~P34&^H+6)ld#t;XTcghWKmzb{wM@<}CCNQiMS0(JGoGa1IbT2^Ht z>b@xLiuoCHyTKeu2I0vH^Po4Hh){n_Y!QqmAy1H7#($}MjF0o59OE8oNc#kcPLF_q znJHWO_WQ-qxrGXB-g?G~`m?)4+X#1oJ^B#Ws|QricG^hL3dW*n2{(qC=8lnagn zfX#*RGN{6aQ^s}<#8zi1w};k4L9NPwD=4cWaUoVF04@MnsE)PP{QORKbiEqKYi z1l?*_Ts?#^DeWIKlU$*^t$Goq(9I=rZ$_g_-xogBX2nImosut`6 zo?hUQA9Dd=2N$6LZhaMy)@JnN+RbIy7E_#%(p>|sqCsG9#04e7JTx(_Xd{#l%&Q*| zmwo&Ap=nsOW%L~>*K%aV$>Cy_mYhfO*Y%^Gq+tprY$m;PaWT=mbXGl~&nV#gcQM$a zeBfjMy>{1XLg83+;+77qdf{6eZ+x}fCg7EL6daAv)TyM8JH*3&h9GYf_OhOpRw{fO zTmMRmaf6!qZn2nFyGf7+uRBq0W>MjcfTXyMDGsn$i*KL4aa`Fa!XA9?7j(`)DnC8O zZpPIikk=O1TN@57@0XI0b?rh%H0}AYn~rEUwrKZ~kQ{vDLx=!oe~fJ)MWuvq9u0Na zY!p@{szcZ;H3A#zi*$Saz_{}jQ8D{x7cy&u+mi2&uP-j(A&PHAV>X$=s|E~Ai8Sf5 z!NiI&#J*;_dm*t~p(&D`m8nBYl89s`Yo=6H!x)P;*?!H`0ywghG_BdCnNEokF*d{| zu_z1U;+J^b)C8wx*sKF^$kWb_wKVwxCI9dPj#Fq-k9%T;Fo5B=%)l=g|M{gOD z@WJU~!`y3fDAc*Z1wBk;AtYvy)75eB(s3o&N)VSwG;5jhC*rDR4<-#8Z=~o!RD=iX?nD}*-M6|RRqAZ(`i{1 zyLN%C2oN3ETB^YumGY=+Sz(L*8voHVc~#ag%!og<)W?OlmAa&-FS{B2>shO~pdY_x)Bbm> zRI(xg0S@aBeTC*c6X$UOUrM-ca-*$A+g1^Z;+Y9X5l5Sdm5^vVLJ-cLb%-s2S(Hq(~FI*DrnApVdC-#klrif|lT*;65b`Qc8tzmKsFh zq!rv(ZPd#Bq?tL9^;XK`wqm&W2$o1VYUY{bzA_KDzYY`uza6$GEM&LBwo$HNY0SAR zioD34 zfc3jmu};P>D7tn`q%K%)hg$q4CGxp6O@G$*Kg1pN99R|uTa;a3_U-=Y`!_H9c|L$w3LEltZ=AcYzF*{wEMt$jSmCW9a`bB@{E8lpBDcGgDE!z1U zcyAe+?;c6bH(U3Dl2?^3tLQ9l1-tJ!{s27p#d7s$qi9Q44 zJf3SBLl{nv+Xg^kXG}XuRqja%f&rMq#%4hl+ zlAYsTuJ~=FwJQ|ga-#>2kP71bf2R7wpwJYFW8pM3>%DFy7G(KzKse@r*d$w8tq5F{ zDA7Lli9BS}Zu_TMGbzZoVVfJ+jzzM~CY_rxS9hO<)-V*#N6sNu6f+1vu#wKnd?&T< zUG#MRh#Z8o%QRKh2{`W7=$3`;w(>xgsE|9TM!3M%ciyLwK5ASwhzy!Mh)>wHQ5C~0 z+QMEs`3PA~0D4SNK_SS15SGT#cq&)dI<;WdKkM7ILWribK#;>vuPt zoSW$vp3nT1K=%mNeoOpo%kBtZQUJ9x2%#7Or_KMXlUk4g;g;A4-5?W%w;4`cmXC5x?A6)#RyC3Ayo{Vo`@5Mt2bsg}@5^;PM^ z&49ne#5#E2ExEm=mnI!0(nPB`RewExD*S#2wB`CgG6atr4uV@~Uk+9IjH0kG8~Fh* zA!(k@rc#MFMU|&xp~p42H>{QVibWkZ|5bG^z4Um&LD+@qHks!R9~`~51Pjoam|uY* zl^&*$z<^oE`qP`Ku7Ht2fjrO$KNqPT5#aF)`w#!3e50UNuVr8X+Pr=MR+Y5Gnp=G$ z@X|0HT3nn9X@$}E%owNZ#>RiGAiv4VyuuxaML+tQm6nIRLE?h(uBI0w4vlzF2Bh)* zGQbAx_Thv-=AS_SBdZY7ePmQ)=ny>K5r4HA4v|E{*T35Q-E5;)Fxnxp+VLLy6cNi( znbUFB7&xL&(uH86nEPuet)K+g{tuQv<5$vSl+*!x{&dAy_l-cbJ7y^X%P1$rSmjGp6!;b zB=_2RF8&C$5O}V>!n#OSMcZwlTb-y$dgwgPRn2#y8nhO8SRn=boW&T?>$G%fL0q2y z&2n$Xt~WZ+1*)$m9WBNvQ&*&*V9Zz}#%tNjP zLFm3W66nU8s6uosBh!F4QLQPSlN*%_SPk%&HB)&dSxbf^ipv6*qm2hSrxwxHLiy2JgQwg{pI9Uc}x&=o@e_A6kaUmbF5-W{A zl1gJ1JpL}aC9oJM_XESW;Mers9Imh9%1IKs2{Qfyg0D{R>)bAL zd`DR=hDfJ{rAU#z1Ew|6>0qL)J zMOa5R|Fk_L^SvvL|1IT5p`{Aej{v(B3&68ugP^(R6hohLcCxoeM;I6^hupO?KZ;Vn zXX@*LusPmFavnJpA1hipi^Lw&i5cBxu+ZsA?*CU2QDWy@bZE7HjkMM0QYnqN0Of;$ z|C!%zEA(hygY&sEFFOrF#08|@B>g?bEkXB;7Jw>*OOp7 zr_`7SRW@qCon}%p3PWZf=wqfdgl;T3BCG@1k}vj%dT_I_L_vi4>KlNTlrYP+3oe}j z7h!cXxyJUP2ZYJjRbpH2AwQRk&&5>b%z5@R*?E+gWN00WMwZBA@Mi(B&8Ot%+3M%~ zxF|h^fX4{G3g+n(pWViX>oH$fgI#sP1p%@ennk32I)EGlV~CkE2&7C>xVP>SGazW_ zT%To`D{t!U{e{C2L2tg&@*Ab?JwE6L*psq^+nTFnZN;e(Qp@Mb!wSsIczrZJOK-8^ za8tkDtt^=%;ad2T-}L|`Z3m_a`pq@h*l>i6b3QWeg>df$L|T7R>r6HtvkBzsAuz#M znv&NcglmTxx`%X)*Q21WEAXRCq&tQArg`7k>=$hc{5ezPs8lX7R@cRH#wY%wa%FiG zj%cxW4Wk}6j?{4$j$nLduFf%>9@X6c_ZUS~DUGw2;(;b-*Z0TDc-P}wd`g1PyPZ%K zM$N>%xIDQX;pD=cvd^6Af&}5h>LH$zklDuv4|vaAk2|_93xdjin20%peGtz(IGGh= z&?I9@wB7}W@Y+Dv;|n<9tZrxLNNREv4*S&Dw6& z{VhiczQNWsl(V|WAWSrDt0MZ2G`!6G`8sArq324oB5SFIF^N2?$zPMTKi5#=ke@c@i%yH6@0S1U8>&Rc0O1As?tTz#QJg} z@TJ>{j(i>*gXyhdmf;_@7ru>Ng3)LDT!l+Jpgt7nZs znPy7OfS94P6;#90zbF=>we8%fR96-fA%`m_-;m?dopE3TH~GV>4Utx-&Cni3&Bsey zlKk`i5e+>5!R&R}+Gzw$8bxm(@1x@`mz9kr^Kv97f(C0*C}ZXFY(51K*~+9z>0&i% zT5Y1fqSA{JGgpdr z;}Di0sAAF^t0dbc~huvS0)4E1jG2Md96Ou zH)c4;t!5g%&|GA=edgoscB)xLpmZup1txTpz$C(mm&bvKGB-qdtq z(!p2Dsnz1K6Wxd@Tpe_sg6+CuLfcArN=2GtK@(r8CMG?=Q=)_n#s*x(1FBKjAMn21 zI}7^%gEw8VYIPrGdYVLo`m_mK;V8YXbj6<+e%B0aGyfvBTa3ExE#b0eqy@IrSiJq7 z((}3JN6!}rzX)??Em+(tPYd4>9o(Nkt``#`hGBJ>F`8r9FVaL!`3W0rE{A3Zuj@Y* z<7&m{#($1gXQQG?0o&ut0b#Y#p9pnvQxFDQ@p0ySy8N+f0* zPB7b_p8j3c#9Epufy^&mnIKW|Z;Y*Y7+w(Kk8!WraGw5FfqQshh#B0{ooHn{Q~%AQ zImP5w_c`>yoH_xnEs~L(_AY(nWflsJnnr^Z8Mc){z0yV)T(I@M~^m}|agNzs!Rfebg?uf%?1Bp*=F zpwf&K%sdIOtUoU{PfF~B6IGG7b^&1_lx3soXzhbdFf@$yaz?4G9+wEf@=^2%acKx= zb1!ty*jE4`@cVFTAl-=u^9RU$eMH&V`$T1&W@^Kjw0!Q1d?OWHYQqJGkGd9tj~~k& ztvn-3nc-MCy%L>6kjT8bz>IBxH0IbSfmfEsrT)y;)Q`#w$}~3jHmxUmybMt@b^P>g zqYZ^0P2!F}fc`vWE4tG0Q+NMg5mqktB{x5uE}*Rn+b{ z<4rLWk)r#xOtF&Uy2xmN|d3J+YUKwBo#I+uas^mUtZ1D$xTEbIvX z!A0k~W)Ym}W6?%%%Q#Hll@arcJm~f9N*P3)6#2>yfZ5^vo_7e9dsZ zAw=J@k)-1AjUNUM^-=zAJi#W!407*f6^UB6H#Be%xOS;L%N&ZScm&gBb=d1ZY#=X* zNq(Y6!tMxS3={yW^*D!39vd|8h~-%)Q@Y%eL6g70!3wJWi5(>#blwrKs@nPGfPRsV zq5%Lw1;SF6qV25(>O89BO{1?Hjj^$_@4F@dIl!_%C|!hf_V6L_S4J1PmSI#^+asHX znDBIk>oHIl!&`vvrgZ2p|AM>wO2e}`pIe&?2HNaiE6s1af7<~(|9!{6TYOfUcPOLO zL=7x|2lG&#K|BW-jeRx4-SsFh?(kh}Qv>{Q-Mv_=#Mak9nBu3z{V*9$QDKE|JzdZb zNiXie<=f9UDxm!g(7~k+oQVsN5FN|T~GIMyOM`w5zqOe!02Tvg;NYtB7>ZsX{87{awaFraEs?_SP^qP z{rZ(PyPm$x`z$BAhj-%Vukt}ztNmRI`c)?>{(GVp$wyzf-lx$X=EK>?`6c@G+U4$) zaDnz4(WqxeM*G6X$g$+t4d*kGbDDB}4!37_ay=aG<}e;>uB}V=%B>1FRq(~|G~l>E zN6EbBQZaap+gGP$6tG(6UAWVGBdnRi%=2$|+Qm733McNts!{cSKd)VmOUsSU$dIud zd@WaY@=s{dFm@fm&Z!aSCu#S58CKXOO*lKOq%DjwOnkFEL%ZF=ER5{5r-!Km@rC9_LkEdFeJGe+ zK@pEyHz_)gfOgOp5?`(QpT;311M$(yDUzB!rqUp^!T zHhwzdn`Ph}Qe)uZCM7jlz90s3ELqqJmN}$aDV68I`SmkJBv;0ZMltbF?);kgMpZO= zJC4``E^!HKo{8f9zpQ-dgQ;@iO&97&&}-Kc_(0uSZ4Cc|-EV2N@~WZh_nQq6P9%FK z?5rC(+YV-FUK$o4m|mg`1^JWvHBksA=*m(KOR3oD?d(EUIBPlWMW=%EAu-h_X-Y74 zb$Gq(jWiAgl$za0T?ZdCcQH{cEv2}Vvm4nk0<~VX>+L#1C3!1a2w-DY_i9frKQ|= zy?K*3GV_;Q0yV4QLz|Itx(6>Oa4X@aUi;NeMt$&U;LjY@?u?~FqMGufiOZ2ta0T}X zYGdyCvA&e5MN^nk=>N9EylcoEM>2^+s#}lmp|cpu+zeLDP=FT#lVgY#3}TYR_*m9g z)$ZRSkzHUbn|=Ws$VS8aCeGTDN5`x6&Vn^&zN}0FsmNb)_J)2a0G@D_3z^SHvj6(g zQ(xCk5Ukw2%9aMYOv&G^%Zc#5P3Ta zH$wnXBg~lZ5kW}t$p!B(tLtQRhm>YjkUVT2L|2}T{=`Js+!GLVYLNt;$4jYn`-`2Z zA|W?;(fZtRZ+H&}{$+*&>c?Uf84S^rD*B%!G_OtiY2(G=7LIjd(qLdd`SS?=P$yNj z5QJD$VJcprUL&g^-v81vJv?%4xTW07=1>gcS6@_=vb{}OkX6uA!-D!jMDvNtpzI9G zTZ$~X0D?Lh#sxStNwwxxx7Y)#$cL)X6gwWUG#;LD`+rIOa}F5-2u|!-^TL(D=HXAs zT|EyA`0TTU+;16teJU?OInf##MNTEz^_|2y# z2B&^9ScCAds4I+ZDt-BEi>!C%)-0zE>DZ4|kQqp-qlHTC*1EMXyW{Et%m`%4#l;GsEU${{j zy&TOsV;U=+e+E#m88Vm9-t=qH&1m=Y_HZX+N)D`1{h@*de%wr6P>4A2R|v!Fs8Z`y zf%Kwdqi%`29|-Q=NRZ>Ef#BhaAGS-<-Ne)p=rb;D{GM7VVON+hSEQ){$HGRe$cco{ z)c0qN6bSs$CHY|qfleHP(Cc=q@srxSKM(U$?Q||~0@d^qkXP@qDXp94o|gVN_qDF} zPb0;G%+?5mKcK=p4$?s%V^d9#bIWLmO106eW}S1IPm%|blfbDQ)aT3Fom&&RQYam7 zd<;QhGgvkGHh%v5#c%Tgd57fy+OExvlT{{;*5rPwEk6_v&x~A5@<)>0;_fSn__*l> z(dPTpm)ocUkX9af({DD1@5if){v_kfQToTz%@Q}?06eMn^0(0#Borb21Wpz<-1CH@ zq}Sr|O}v0tJf!ybIMru4yJ$+a?Ug!%!*2oYrp^%umuSZ=xM9u3bWjX(vi%`@RYZQ^ za_z>|b0Kumy5pM}cl_Qb!3FwsRlx<7hDi)w#S;kEeC%X^8*SGWiE>;y4%`-iKG>LJ z#xn+rhk_{lSwT@>ma4&|z~z-^7rNoJNaUoH#1)f*xKDwpLnM>^|0teK+BV+syIedF zOW%ukIQ&sAr~W`RCE-v_8N|P@gvhHe73xuInR7^L1+=1d=fHkpL%6bz!zX!Cwq2;~ zv6a_aQums%xl=%!T@(K&9_?64RMn^nY-1g;dib~3>76sB0bZ0ZdvL8}n8;iR0%)W` z>(*G8QX7k70TE{=oX(r&n8%Ls$YwV~t>2kO!*M189NlbU*PP|-b5|-+9cnze zA1TDzHJAx;da4!%hP7S$yOD&43(gct?bk2-F+qO zC~=2M>_(A?u0O@Vo9hTP?OMX!_j!Y5UFW*WMas6Ui!y!`JH%p$zHPm@uxH1CR_tZQ z?^70w%RM#!xrx~e;SV8xkx!o(2_rOAt**9>K|M34HY>{U1RNFk+bHtqGOq7`5idegHf^e_%?4hS z-BUJDklZ2QAd4KnU;-Y6`?vzD6h_sVa+1wo$}61F_UyHRO*P9X~SvY&IgJqh{-m8t^xaUJxHb!HR)GF6xNwELFSS2H#6!Z|#i%xl86b;mT#m-v zF4KYbT%kjeVKFa`nw=7-PSM|$oD7k7NxrE;W@Asbb8Fc-JW%jj*%LijwL#W$Xy5Ve zxj)_EzKhk^_Dqd2zH2!0Ri;16G}f!@qN1=(fuz1*A+Jc3lkUjXf;`EqFB zwQDo_(?Agw_W(L5=F7w7+FN9IX0{A}Wc^6VBYzDy0S`c@U07^Ps~NndD{Mht`Z!Tz zHRkm{+G=4=UaGsd*IOra5GTegXGAm5z@qc22F86#6(#>O8Zf)`0L4 zrI45Gy84|D;4}>VGP6))TG9*#ejBxsvMmmS$#=7n2$Rr1uaGAl`!}}0wZ^YzH2bUn zt3K0=^~q^~pKn7wba6J6+ZKng1Y}Nbw{32#EH>mg08l8V4*c}j*3&EeQ-s1WQt+rvCp{6_N5v!cktzTKLI`)n;}BJXS@L7>J7RR!RmpnqrF_9MzIX5P zPvKzX*-P5q8D%WzLK2IM+ZGwhdK(2!kZ>Ue!Kfffm)9yASqs32&y0_s#nJ!sRFbgH zyX=dJ8kJ+)aUGKRTh{|bn2N)4gXGCleiB26BKyC^S&iKOPy%o`PKX0!ck}v10wC@9I;pTS%cz zvLG~WWc)uEtNvKEs3UP0whA&E$~Fo?L-n^)PQl@+&ZFd;Tqbk3qfJ zsoi>*M8)!PfIoHfgh#A>Rork4gk^$#|3^%H*1O%k90~chNjlPH*QBz<=WS5Rh|H0a z^zi~#uXfi8&&4J_7dsWp``X2x0JFaF9?5YP%(8w6wd)WzFks;6Sm?2+ajdDeRLXjDf)ziOtMu!6nV-gR8JKMVu2I*aG=aU z&H2S;%0{b=Mx7|~^zjVFzHIzw`2R_MT`bKmOxRuSE@gYlqj^jq(ZlM*^BwXc@ydw} zY%IyXd3;9G%&kJ5*@B=zZ!FH0IEx$f|GyECyqQ>nOT4h!-q?vsK2i!?5KlVeblmHlt(z&Lan1 z1#q=H$H7>>arX+1B|dU)|7J+R`IJZS3WFbg!~lNL{H|1{c0rO0U~81DsF4dN{jYCd zWFI3-weAEr=6)EhRR;OevhUc_xv=Q=KaTcl9ZEYhRvwf*Sz6M1T}X~_lsJLKDEO%} zgjs6Crn$Z#o*TXG+OGitN15h8p76;aM&`ZGsXzBZCL&cDabfW5TuiG?$GIm+_DR|+U<1o?B zd4L{yw(c5LaS+OD2Fh}XFNpjWUYz)ob<$IWP80(U+ZiK2H{?u}`0mld zMspT|{*RrDU;Ci~(;lv&IZVP3mh1(`(Wzdi-{tT_JIQGHD)*B#VWpY4Dh?d>5{U5v4ppo+e!lhC z4)KJ17TR^r_7Q>{h+NfQZtfIUEUobr<%mAq%unOsP&A}pu67?$SM_btaq)#&zE0C9 ztGwgNVpdy1&+)4(rCpw0MZoPA6<#9c%QTO4G$U_@YD`OYI4{;mLkdW@M;24D-{yWFA62wQNhm(wyuRJrDc7 z`b4)Cdx1H9wPnBya8eH{;RY~_x8*2D=8jiL&g{wJSOg79XZ0@J;=GvyQ~d(@6dm@< z($umyPTT}`@|khkG)LPLAM13NlK6tku>WaeB;KPMHY_Gq&ryKD705R;G&>2Q0$cn1 zLHzW$f|qu)LdoD;B9%FILo)_=)kfUS(>|?c9@Y1I+hsVbc zUmp^WX1N@5PgbY8=y2k@)dJS8lou;q-&j}uJ0>YE|H<-ld_NC1K`@46N)|aT^JP+x708_WgdDx6sV}yc0 zzY)Rbvc>seih2k4ez7b|&Qdig+4h$kU`tzLcf8h!JT{rxCBF9F3Q zu%Pt1mb!908n#4C4rTH{$YOzzA!>4>vinT<;JpUy7jM|MkzXR4V~0^YIML;56+LkM ztRY^cZW{>?iD%h+^t0lT`!zHMp3f=uFYMY_z(j-NX=Jg5flO>Q>2{!l>K0i#Y_*UH zrHKl*G?j8sR=4=oP+g@lduaZp0K!cPGr3_?HBElccxB%bh`s~Vb+q}Uz9%O7F^&rG zSdLksRl1wBCmzOeq18oLyO^XA=~?K149I6{#Vr-hT-skWb(s#1I;=d+NyjyZdJOcU z!;29s)+`XKNa`OV#GuI{j1E_2wNmp8FtA%*Ot|_Jll2YvInSabUJ2Bq#+^|9Oi+^s z2UXj=U|}MDr#YVxc=(RX^?S*pp)DZV*VM>U@cNU*)TtV(mT+V1#q$Q)eQPTnZ)Ta3 z6dA1s#ZvLSg#y?~Ke$&;L-t=W^qpMVuMZ9^jhQ2xxUZLf^OLR^QHENWr@cKo(gk)UG1oeCqV&=jxuxIBn+4&f&s0BwcPn6K6l%dtYDns;}3!%Ni3 zT$g+u2~E@T%CTN%C;B->-TfH2mv#bvVikp--RL`C_qQuPkWaycv$d|6UXLP#q(AY5 zTsuT7%p-ySbI$00Qn?23@4VnVLW~mH#S-gbN5abrhvp!1B9LR2-bBrL%q7NV5n#y= ze?f3KeT}oSd}eS`nWEm?SM*`m90AH(#w#lXxfG z_IlcUf57srP0{$O%LAJmkvsRnkR@-V821rEs~{4DUBqVW+~U*YP)g(}YcUUxB3C^q z0S~$Cx>92fX`^Z^q_y?okb?Q9Ap*mjNbBtnI+<`i5gx!bV)5bP$=sJjB!CB&9^iFG zg!BhKN4?6PlDM;QEnw)lK8LOeF=1%_uWdW^ty)&5eLTTX@*`yjo;eFuwKX6w#mSIT zyF~b1viz`17=333nE40D1FtsV4SzV2?f7H03&$nWCuqjTg__z#R!~O?sKU@*g_#jd zgw83BBu@!G2iWAngB4%z<-HPoV@JfQV6;xjMLlLmb<#KIeX?j$vUNgoKCBkjbY3xg z^+T5dS7$WA!reUuC*;o~H1Vun#nT$b2|p#X#OfFbm$ zII-6mre0f)ZiVAcrYSd;7*u0boi-mgJ(XrVe=FyK+G-q1!PTQEl7s*jOxpF`NauLs zW;zX5AY($(2P@E;W899&XW}$(mC^77-8{->dD{HEFq!~HnXR&$of8_vvr<`xeqicG z3BZ1bj^lrGdk5sQN3sj*itjp+^O5#jxQqR;B1Q|931({Cx;+UO`tt4(@;8%**lYkA z(;Gc9$rRu{YK3jdPh_M26CfGxH6t!0f13t)7F^D_C@8Cv?)VH(kl0JKGbG4zw9Szv zAl%n^6h9`n1MTCRmQIM6>bAC0wHWznAxBLXj_p!V3RS*N`DhuJ#ctyF0){A)%Q-Xw z>fZBoC1>w6AEc}UY*5+*hxFNl(?YWuv_|84UJJx;d*yq;>{6Wr&kNDArKPf!w^Lxo z7m2g9*vkJZo1%r zz46bIVmj$8kss!jSM~D?XNXDFG8zY~SjKA0(~Xp_;j2q-g77M3%4z&R9UmLC5|pgT z`kTu)KP0&Vf(xVWR@J?*$g#4C&MAFgS)z41!lr*12UX^O899NbS`RX(m@mR^p) z2{*aKOva3MafZld)w4`8&uGt%MKDOD>dk5T+=kqiMmH(-uS9YlkT6Ju5sT~dmg=ob zc}DkdU-wz={M<7{_0z=A7f84Nv|x$BnV)lT7keADqtQ$lb+yuh}wl*^Vi#Km7+) zYLpiX*$t{U^U295T#?xaf_+UbT^cb&pVuuX1Wipx6I@V$5y0kvW^TNP)hW^ZaB1G7 z$R@NUY2F%%5+LC%fG97j#b&q~s9&kj z;hIgMrQyEK7$!=N%>jAG$2i;?9d2;G?76ZbkzL&)ueSz?i|g$v8BaM$T9WowVRGzd z_<=$bP~cWkj=5SwAvP{eJBAJttZAykr?*Zp=(_cquXN9|CsoWAOc|@axm%dg4j`k5 zEsV-R_N?(-BC3@<({idf?S5HmAuPhh%CCQf^pF(IT0Y>PC;l%o4Mr}ta1p%_XAkdj z=kHCe;gS_zMWhM`vRFvSx0PeTtiKg?#=uaG7)dkpr9~o=X6&JbZV2K+Bl#G*UIu{*wcN=N{>bFs-(%*2;zDFt4=GmKJcemA8>AQm44NpT1e zetsgjWgJPuSX5QSeDpK9@;Wi12>?w%vcFR;Z!LS-hn>wU_>XNVlHs0DUu$Y#_Zf9s zZAQj&SV-fS5hQY%Cfsb9D%T|Eo&Tft4II$L%L#}0_pH%nQhPsSEHU$n>YWx!w* z%~k|)mHhRo%2GD5e6;xl@Poo(OqZws?SA<*PN4K0dH8S_IKIRYO;*~COk$cRIgrIC zP66kS@w?>}CY-bjkFshV?Rmb&29OAlrpwxHmdUyd*~UO4=SumnS4^rX7g$5Aru7T< zjc^$#ZIj7@p?>Lt4PoDmUbfHb3FplB#thUilie$U%QrpmTZ`v26AH$P z8U;5ABT|HLBcJTLr3)zPU2w@_lp+;Zj4LA2ynWXcfFcd31^&UAorR>w8eLde&bP=7 ze^b(2#`i(rD`$(*g#bTUEwIV7!v`SidVDj-S?jLn!Alxy599v3oBNW$Drlx#t3r`A z^>aj(J6*iEjSj7WV7usyO&9Yj=My6nD3?Pk%n97I8MJ^3HX%IJKS`g*V z#P-p?t--kSYf6AC1~a3AnlJ3fwgkI%nZ8<{Df>P<#Fp*`=crl+HXFN_f?-6MR;imw4rHkftKhA>9R7Aq-)%#2AJSHO0!}pXgBOY;`Dq5? zZ%~RQljHe3G+9?v4ZgT0ZvN)`B%5Ka&~#`xYxKpiRj0C~!@|uB0lRcKre#?ox|s)| z62HD6o&llC;w>|{DtJnZdern)AHfa=INVKITpXN~ETkmEi#)LPk<tnhX+~GJN3WpALXzj}p5-ttdbdIW(gF%c@>mcS?mu4rx%dWvg|Tf&=mCvg7Bwi*>X0o*^q3kVB&s=_{5R^_1 zP|U;UK;RHlgJRfFhJe{&qv)E5<_clMF`{c|H^6js|Gp$GWUM-zdQM@C^?D+t`soLEO@9671GuBNe93nRxgqd=Pr5 zwdmxF^j0XTy~2EVDWJ}U02cD>LNz=lYb3s*b!yFX|23G@S2bOsVPWTX%P~Z;HYoTG zK;!G}{sM*(I@z?4`#*xzg`EBm>_CsR+}@P+G|@asCckD%Y0+HJL}tk{p*ff|?|B(- z3}+rTt#vR`d4go#sM}AeLs%;>(QGFutEc&Hc}ky=|CGf6LtmZKv_wLh{v_oV?iA{J zZK`;fsFJ=;VKl#dvNyq+oLOA4j2Y?;Onmvm;aJrz+|>2m<_cwBzXv(14GhIc+r*jv z(r*w&zcDM7lsqR1=?dxd&kjrkEfgnZjApJ0ax!`W#?7oJii#&j2nvHeNUUNB6ONCE zI5g&a9GrI3P(Q<(jX^V2PMY}MXdNx)6OV*vkg%x19U_J2t-5gGIIh$o8;I>trihJR zvG%$sD2Y^*xs0!qnn_;Z%6oNF%36Vw*>YKXC;*XMCN0qyq22B?^TAQ}YESqVmAHHP zUtll6{*vp`N6H8vX)15oL6)8%gFsABcKkUn5F8;i5wNmVN)ZNHSCYIC-$~|)a{hk zZMD@q|31L!H z5_hOPPDV(nH}QugkMVii0@G%|6q?k$##Z|}dVmjV!H263-e8T?M2FVgoT_LT(Aku~#tqjV!jfTH`AOAMW%p5UGOQKkRdB%UtF z|N8;O83p;JGDI$9&11@C4A2Q({mc9tNu!f@mkbbKxUXX3GUL_-*FlgK_Py(G@LB#| zuJEbhD>QS+Xj(Qz!5@kPFC9EM!rFPEGwi9D)3aI7?l4N$z zI)ftzBVDN^YE#KQB@)YDSTxi;+liGqqJ`f-k$46Bph={oP`x-rabJqnE|cCMPP@Wb zSUiKBCTmy}>C<9#ZV?q>MTAu`03h4NTJBzcgIpgd<1w{IhWwp9VmC5t(UT>aI)PT_ zkU99+-}k7@qv{tmT=#@~5RUZ(pThT6dEg;y%%W0>j{ASdrQ=RDPfwCK90PE0cJZw8 z@~*mMNoQZyV9_=8-b`%FpW47e0&0X_LuH0 zCF6clb3tAFeD4BY6``m8x^#AThvj29sc(V3-YMYjXbxguHT}MavGGg1@AZg}X9GBv9BS1#`9W z#D1@E_zFclMzdrU&tEcd{atl_@yGEh!IqxyI$KPzN*ktoJ8gQDDeEm_JfnqGiG?a%C#&)-Q<- z>BAWg=4I6E8!GH(Y%O@IT=1mUFJByTDvT8mbdz?tRgpKH2g1*z&R^Nmby#0o(%HKi z)(nfB6vB>HL|4KSyV3~+%=aM=3P%amg)~k)hmBdeiGyJ42Umo&yXNc0ZZXyJ&$taz zW!L^iS<5qX zds9q_%Nex!!s=Z9;g`GTz8CHO6o46K&V`aE-?LOsAVh2m2sgg>=XRePO6qFfQow%k zzpm}QmZfAqu)Z_e_oL>Fp|_+oPR^?+!!?J5<@wYa>~-HKmdy#9uevo1&_Z?NB!G z+NmzG*EvQydrzI(#uufRoH2QGIpN6^l`T#0KVZ_A-{zwrvEzc3mmwDboks6nbvw+1 z<*$#BRKf3RwG=vvmn&PX#XV4kxA8#Had%(el8XFI_=!YKdwfXHB9&QO(>lJ{? zY~C{1S%TPaR3e26&RBn@9OVaw=UWc1hv5^dLxigpr{95wVq?7nn&D2ay@grcb3Q`U zd8x(F(11F8*85!l&~Q-t`rFJckM|Y|QFD5OHytettM;MI>Y_!Lw>rU>K zLw#M-ynts_(Y0~s%n9`xxUT187xiM#HF8E7@NfX(SPOk7YQ`#U#U_au5^J16(S$Nk z@{o$U>C-^UDC2nW7AmtaEbLKi`Jf!;L38~?2PfrWE)4^X3WDhRF?|T}5Qp?v%$5m7 zO|g&KLZ79#&1zrnXAg#1KddebT;`xb8Y;L&$d%xOV0&RRxox>V8CXY+REE;{S}#e5aFQo_|U>bI_Kzuvue5!zN;^qFzTbL8$X z;M7uy2Mrd>O&3GnjCp+cO!n+w_V>!kfdye>X5?fEK&^2tTm|6d&a}G;^c=k^BL$?~ z>1$OBJzz>Db}xE+?tO(VW1B&U59u>~)0vWDO@7GYVN;hoN@shHbKEALNxLNZZNq^0 z!X|$kPYBUnlhCV@Pbv5WJ^8x7^gbx`N;-~tVSP2#eln!ngH?D{Ljow+?WNI>1Iq(J z(n$t_5-Zu;4dH~od~#t$RJ4EqfIz9k`EeHTL;YOx`mN>Y+tMnU$-QKd7EMR#Zg* z?+}Tvz$Z;fD8V>=O(5Lo2b}sx+7e}^An;pu?O-`x)}Bl|i77r&96g+i{R#2buYx$6oA zQ#58xi8;TdMwNss&sjy-Yb;yZ@6N&8wh8H@i{}h2JkyvV9sZcx>q~Shx5y|hGOP*D z40fykn<2>v;%aPDA38mi!U8_%^n7Gw73F8(X4&eRK`bY`7}85k!l}AH zEiK4xDldAjAN}0R+OoI?`S06oN2HocBQ+=fVz}G)kBHEGfX&ODL<0B-dPPh`mN&WO zfn4AXYBdpka{ElDi1(h_jskP@bMUJ9@&UKf!jiF1#CXBceU*vswwhD7$>(K|fr9Gc zBtJx-Jwi*Pu;N*XkaT~*O0ndnuW>y-Vi#f6plvquxeB{$pVyjN|2Li2{__$GM*`t> zJg*^hX>D`aFv+O^^~v$6IXf`5 zd8ma*?zy1zTON{5uM&KyP(s$*HTQiOmU?a}EjeXRV0$Dsj{UxkB*jv8iafWGXVnOH zT5B~Df^;`xs=ht{sHri%2S4!sA)^7%az~}4fr!0)eFImXUqK?gO?zvl-P{{~X_o#x z{%akGa{YWi4ER;~rF77K>))0QjG6%|V~`nquKG3mR+<0(j}fj^PKRr&xxP;E@cycB zPBbpsAw0Zs2s9sjiO{jdy$&AVq>F$ha4(<6Cx=N$bvp)?>&k*QO3sD~kciMFm6q^J z*zXozCj~jCj}H60g^1J&etgli>6TPn3S-CMqLA=Jd3v4z2$lnZkhQ95XGK;wGEOS_wvlC1*<=G_ix9f&xY8qEa-t1Dw_W4O zwkwC5u+MBC4TqQE>GJ-Z3$93ZGRq+8oVj~%6)|2_ut&Db1LEuR81{XMz<+_xe=FWp zx0%A-Q}-T8T;7>=h7cct!%$Y&pP1Bp=XG?rB56N)KL%ESwnG$kcL>*fSl3u+K>MMk z?vNLvRu&{xbbIv?U?uNU+9wN@QVQ)MnxBqn*Y_VxV9EhB-6oJGfm5d8>i!K(^W&9s z+jkVV43!70DL|*2%euJj*vMv!@}dn2?)Iy0!R@eOfPp`$s$d@OaAD6jWNaT^M+l~J zQAz_NHBh#3VS)xi)*2HG6pTLjh<(5_C|_+KQ`wMm+_r}b^CMFu_lt<6zbc|@d|Mnp zS9iri-t>L&7BE^zEmwDNTak=A3pJS4?h8YGJ7X2hMX$_Mtb`xD1v^s)ghT#FOSR#$ znOAiT{VxzC(R-zvWXtg}#tuGyPRJ;%-BtY7px%?Eu$1S~6kzIU0yN%H6nzi_)1?t9tBYD5#?aQumao=JK5 zgy<*1SBX7#y?~g9lR#U6CNpW#XasO%-M;M;W7Gg4#}k}puhK`%{lJGG@k81#ddsB! z1L2^p`AR9TJ{TRezlF3>l=^cP_3^Q zHLoXe1TON&!Ew7^;C63yVQ=qQ5*|LeRO{v-v@;^ zH6nv+JF93o=|o+F4eH$$9LQ(Sns@ui(zB>^p&={^m`@qr^16!pmndfP_5f8FfjE_SvPXsDc|B(%*-6cp1Q{Zd83aftZbKWKK|mZtna>!!pmezkPH+<+_mVIuL_ z<%6#7g(;qeZKSc)(e)<5%6@}mkh3}51u%-k4d&1=x1!Y#9Np*gihqWPVWLJ@s(J8! z(#z>iPs*=#GOM4=zk1_MAKeB;s8+cy0;g99kFSyskg%f$g&s4~m4myxD*)+$%>mOJ z;L%#N_qh0K-f8`|N^Q4_xzuiWi=7^L{5|!5b*eBX$k*El;~K$++%I1X71Q-7s7wm& zSke@jHg@)F9C3PHn=K}=0CnyEe6C0jvbr%z zCKx085GsBA?>gyylxcKI>_}yp%~D`<_52n?#l=I!GT>$1jQleowHgCjI?ukHVT-FA zV2ecyWx>>NZ>6RRKd9A#MVuCi2gYZa%Q}8DERtmc4?*iaTB#) zG;SMm%MK89w*ZD+G4tZ>p2CL94yfxZ$4Q?uXE_BoZn(Q@@}h<&xRJ_(fBr7NJ!}1?7)RIfxr%6LmmC3p&Ss@~1RwK91uRZxEX@W5f#P|W`FJngvI z`8hXSDHiRolxSq$&=HyLTQU0Ku>cBF?zM%)mn3?p@t|A2>y*ClDuj0%ppS@uRxem7 zpx;*7bOd*x`YV>{KmZJZ-1~M4L&EOiS3+fC6Rx4{I|R*4&f7~+JDoC8&~OmNSERK( z7nXmcw`lB*fVX_dgXfb5a-W5PT&EIT*jQ` zV1Y25B(@t{DH;%L0ZXx}4qt~Jp6^7iifAJI$km%7gV&LcYm_rCG@PQ$fvc|ouM6Bn z510rgQ)vqUUKgwdw6B5?!$^rS`ORHn+EShrt-tI=;(99SJ=gFS4H@mODB#LnQQwj@ zn&=I>=9Yz12kLGQNn-CnHGwJ-d~8t{49E&ab}O>1#`}yzoD%+Zm)@&bt&_cChhJ9A zIiFpXEsG?`J)D%$g`9uzJL4o_cl@^g2NTi=XaB(Zk;8HXY^jjiwEFrYMQ*8#cxfcP z*Yp9`_`y}mh&3RaF}!QP`h-Kknx_mVq4~RD=c9QKR$Bw5MGuLA5a~S;xmmvN5iy>_)wRvKy->#HVtib3>)pAssz%~I&xFirQz+)kB zjNnm8j>#ivGOj}6j^v(1mxpQ;WvC#Y22nOyGS=VH*jKl5Eh;0J#5s6O&E}?fz2&75 z(X@wIottVs%rqWxOuloY(^xq(a8Mzv>2`pNV^)j?_u^~p+q0Vw>9D7;t?`k?CdjyA zZQ?k;QNtlV8Kw-fZJ)Tlpx{m46zZk$lEQQ5fWCC=VlPwG9^9LF_W<4h&r>QpaXn4P zswE-H{l0x)?A~O9>8@c9i&VJm1P)|Ie&T1qkEsReHvBoDa&9+C)Ao!__3e_x4e3q& zyQGgQ!DpxOITPV4-W<K!~ zMzRICkG?qh8>do1^dKY0O72KrH=#{l_TOI_-sd=aGGiBGcVE$}B7e_sc|c{^*LQ z-C!aK4j^2|CKxfoKa8{&6`>tFL$zyopokW-2}X_QCQ9^_4e|ziuu4%$^_^X1JBP96 zyd0nR)b@4sflI(JAdBedRP^ORk(Cl;=I2XuSQiyXuXkYE zwhJW5G6Twx)|Q4#=8;I`NIfv&W6{KD$&ugeQN;0E@%>HadCSvb&i^5!NqN7LqROdt zUJzA!yW?{brImFfoXv7~r{6Oi6b`8i2axM~UXaInri`rEIZv{qZXwUcL1}p~o#C z0?3fyMndLK7i`Fw^||emYfp=0kP@;HYuab&MXAP_{=-&1>-K2QQ*2TkZw$u{Dt@uV znxj1xDfb6$qn~~{X0<|TTb&u%Dl>$Gp?+$e-H2*Ezi^}r75`{t+!iDC8I7ujGs^|g zGbCX>Z8_c)&rVkuc`h874snQDPmA#80bv>HS69!V^vx`R`cRoyZErwBO*q zy|!NsH_CX3gim!S>+xqN*aXYE9emkVGPr)ZlhCiF$*-O{cSJIilE5OoShpP{{AxK~ z1ljFk;D9-k)D6?S$i#grcy!q;c$?xP&A12igU+-+hF!^$R2;aa6Pj@&lmj8gK2f$> z6H0ME6Z5j2pXM;8nIHeHs+LMj_TrZU#SI_#tbOg58HCy!sl0{Xce=1=W`)}9dh91* zE|WPj{&2UG;iJ~V^k=H-?SoHhi7vZ^-J@1}{Ku_v7n9q49W}Z54Bf?e7vM)x_6QT8 zck`Scr9T+cJ^YU_$YdqiLlh!Nm6m75+R}1xeKowY@$_%;&m-o^O306H&?gb6Om$nz z+tx@xM9R$*V1jTZjxw-bl4#hj{u>ON?hOfG#I9V^{q9vs3J&37zVmWwrB3qKd1p%A zJM6=pkEQ^XF1^c8S2(?2IJci+O~UoQD$WV4*>`{pR16Y#V|?GdeCGcDEdOZevU1=V z!v3R(Le*(mCoP`p{Bss^=jReUMcbQk*DQ!a36=soj)MqZpb62+p27o*i2?I5X+e)d z8SZ%N%`VVOY0ZbFb*|d{#XayP!-Ss#1jI3exKhx8Bk^iVS9fa%QbmfGM7~SF61rbx zFRI!+*}e7cT#>266}C0b3SPtUTcb{jRIj#H!REK zs|RYs1EMSII0e|sfy`zM#!L{=DUQA`4oK9nem(v)1iJo~Aj_N`dFoHa5_L_#hyZIn zPjgh{Nvd7V3Q4uY7UXgiGcjgpQf)X(i!D43c%s2&f+3#2$V#(tHc1>Gnm5umi=17N z{p^8tMRm)W&eDcE`@c-Ph}-QQ=&mnSZuqyh_caT*6;CnO? zc3T)48kNif;qT{~SI-H*02wT8=2U{BcX-}q%*F%)grEHU79r$2I!oOzgIr?TYj>vT zP4n1k^$*%K-mwXrqV;J~i~xP0>ninqpnL1{0@Rxv(uS4j4bSR=5#hqSa)oCtP@ZpK zy#i1s%RL45DDIsj*Hmf!dur=UKMZ}RW+oJkD8-52a46MLd(QPhKdegmbOK9=u~_zg zM|xGFAKRe(T~SHZ>wv0EfY_4&s|;%$|KHe%!szQynRaiE`2}cfBqN3cD^!DQI(AO^ z`hQZPoomnSmYruurH>BvxR?22H(y#>oY78=nJ=+=*s7~qj!<=~7hok`0@6Ds+}9Ow zAlR3}(4{0(YBjX!RfpHZRd69%%o*DOE66p*WLNjOhM5maCRpl8O` zI7mZdg`_N0P29O8wTXj+w&cc!43tj&U407Ju(1=LP4ot-sa%tC4LTGDs*Q^RQ1At4 zXE4EajRs8r=MG*H6#4x_m>O> z0_S)}psHfcVE1-CjD`D|qu_}-%+H0Fh?f(2p9>-zIl=b4>)?+kVNv@%U}UH-iW&^G z`7Q9=%mVO0?(nf}AjPkE75w8}Sygn4z@A72^&wobiXgz2wu4sV5u^QYH!WhdH@A{k zO6twLje|FY$Vh#XS%SLf@-LMUjRl)75lqZ*vD&E4vMMZ~3M^Wl<2d;%S92?aPk2RX z&1+*gh@%4SU)}cb2(<-8p{6==(e-6CJA|$E?xat(2hb82qaq}P+uQ zrms1S!Y*RTNkq}6^iTda9je(a0D3~l*?W(@3YLPe zm5Iti%*;>I60_O`J*_{kFN$O_dLKo{0?nW4DeGu2QpD^-&3$wra!j@$7ds;?CyH;f zfIE1iawShT!kL3Fyc*%t5&si}GU^AT{B&xRdHD@7D>8;#j|(iTdh>?LYope}sIW+D&utAitj$i6b8!{p`$NKtT#jDhaZ?9MwGjM^>E)ZFl> zN*wQmZTW>pNOHeJl$-jS(+CvUI7mdRCl3G3qBeYe))}+p!pb<<#kGkC87NA-Uyn@- zwXtMD?CP{Q#zE)=Mj@DpkYhow(6c&ssQDgv$FY zD2Uaag|!WV?rh&}H>SZ^K*J7#S|ZS{4f) zHRQbO8Xn*iJj6y--CeruB|U$0nN1IoY402nP}^264U#2xa%S&?Z66EH^O_GedpYyG z8Fb`KcWhHLD;ltsz|dSJR!Gsw5MRd{6@VWH_Wd+XW@Ep^&j0N? zNvpitW|=rhE+L_{Kf0sNSy+m3rT-2mOK!Rq@mtzgwzQz%v`RG$9QueLTi5PzcJG~O zt_R|q{|Km7kLK75&n9xyPv(>T_&ITn@L?2}T;FcKC$ZvEIp=ggC{9Em+g6xz|Sh9j&>&P{%?gq<_H^7ix9%!sW$g zw$eD0dvM~PDD;ryql@0XPK8570uQdYAG#gjJEz}oH7MuvsfMS-xHJu|L5tJs(B7b1 zUNDygSaVD_+Y3$B(VYd0I)r&dhoD;931~XCtg=%tp=ld-jODbarwP*Jio&>#bu8I_ z2018FkJj@}^sFAmqxiP1ja?B>oc#wp-veASG7tEa^BIHF-1j{s$z%8=)a>6~bD_q9 zn|tJOI&bR|E~Rr5aOO&w1_c#TOoz0Zl-C66MmFqpStuP*2UL6uzm-_^~UWe(sRaLjn6mU^O zajJ=mpbuqhUC%kTo@%@Xi+?tv`wCA?GsND6kSs#5bf5KMeTL8J)-0Z$v+kO{WubW6 zq>r}nHp$%muljD-;AS-OzGKaBnB{oCBrb)k*Any;Z&}MmI1VT3QDAgZz*E8<0F=GHJQ?^0u zjGa0d)j677;|8t)X%q5&a#0#Y;3AzG}=LEZAc*M$9B)U$Qj?kM8CmgX%em> zH(J>$ZpB}%8|NW9vj1qvhUq+gE7`ofAU}D5s-4e+c0=HW2_b>#%T!3jMiaTUbpsI9 zp|k2^Gry`@NlS*yDIWmW%ncA$-UJhpr^y4`{J~c~!6ky{EVZAsO7}+csJR@sEkN`!r(PxyS!%yp**fWvzJ%dHd&FS!3LU+z z;cBaKe;O**{WXbrL`{@CSQ*{J81Uf_EUD5mm&^k!tS%_l_=&~DC8|z;7NZXi$lGU5 z)hqQWMsgY?ZBmeij~E)q4|#Ku&0QJZFH5hMSM`3+l}CeCqda^K-uP2X3hrfTcYm;j z8IQA=W?}hUW%ah0s#%EvuWxTnBg7P~I*FH1gp29?Nz-SJWLl@RznjeXpQv=deSkO$-PZtG zRjwoI`W|RjzsqdH2E&T#aVMyWqD(tT>#%fDoqoe5`zrjzd5eeqcNy+OFksxpXD6)a z6IcCF*Q5z22#zb4*mbn0jh%_$=4kHKzkF@wq?Nome)zzk9f(&jG&hWm?ph91HAv!H8qclhq`w4r`7B)8=S& zQEmn&Gx0o)d2ZJ(5zz-0aRwuiR$c1+S&q7l^9kkaL?lt;8yHb*raxl9;-&lAU@GEO zSnhatXd#iJ0Jb*vx;{d~o>^hGA|r9a4dPwAW!^z>ESqF3$+wlIbG=gr0&|9QLPgZ8 z_ao%C&M;WR=;AI(M%&>OU89+JtdD~K_0@DU*KG`kP$t5t#ij+L4M=s3pg48s&7Gcz zLB16k?tqG0@7xnu!My>)8qwgH(rvrxs#Bw0HYX zb$U5X@^hwa@A;?mWKcTjr!98XVY&d#IqsxB|EjYgb+&(%kA~JST-_Y)ztEnXl;in# zH>(nhExUQ^chAHcyPyf^$UwYIy7OiAjwFGNR4t2~Bv3S%5uQ2iZU(c7;ZF_=f!$E< zG0nMCL;paIL#DhK>l<|LyfuC4#ByJvD7x9YO=%@K;IcF(RWVWGRQIXzZsec(>Xh6J zCl;;vVs`JkIEF-t#gZ8MM-IML)zJNux}F`>aY-h8%!53Pz&RyUsT-@-U+Y|S@%~b?(xW!y+dr1 z=pgc)WNU=GGBIxz-VO<_Eo1QoWKpbmNhSP}|1DjhK=3*Vp$=#udNTN&bmja}B<(NT9dk_-}F^rs^bwHkjX5t3ajo zPde1o9zFC!0GawfdnL9G=JlGZ7tg+XL#ZSpJ*}Mq)WZl+FPVzl#*cqS^yB85G+?6dt*CN|yuurzXFozr1Lr$bd z=rp9xYSf%&b!9)#s_Q@_Ta>hEg`-2i`a3lH+Gib#aI&p0Hk3nFgD}3tArm}2%qfaU zGh^H1w$^!4o2>pOx>Spz0R>aLlyA}gqKRI)0n z`zRi(%d8+L*{V{0P**#iGQzD56Y6~S;A?CP+P+4|nRoMI#;AsWW~+#TAA_TA5aO`t zisisiqRn2xkABm5jNFKf$*)bNeKqno?7{sD`E<}(21bUu>Qt*TUZfMjqy8nahc>Vtk^+EcLb|_#Y@F$ z`pm~iczmc8)2?nN_I?uk&mrGP^vbBXV^JM371e?duVEN2j8jUIhsly5{S#6MveR7y ze7E7768HazpwP>Nea^pHdrbsn)YKot@POEgO2^GuV)Dh)V1o@`JBp=vjJ8%}dw!FL1CQ^LOu!Womlc&#bqxHz} z4;HvBp~|^)Sj3B>pQ7#kx}C({Bmmu+pxlaD(})ev$RKq^B7hLaiP|Iwh^vbUw5a&2#aEq3Lha5%C}^`5K^*ywr#*Jzz)sW^x_JJyV^mrDA5Xa0 z&WI#eZHg%hGQWZ1O?w{T2D8Of4sDC2)NP}RaMt-Zf2%K+!?VQvBXkJB0Q(j7=#6GV zOgI5uOQwyUT6L*f2fR>Z;W8YuKO>a58HPFl=v3PHbnJ=EWS`9&AZb(xUszpHR|NEz>&Ac3EkU80=OR2*-zZ9!=# z&h>Tg&d_j7Sf8uG`>y}Ii2i{r?*|2%_dm3(HCuCnemT^xd{o_L-cZKBW9#}Dz^N9y z#UO9^;$!Ql^YB!dL4WPtpifR$bHyDuuYo@}3dAIOCpeZQ4PuEo(_eGOM_jzw;)h;L ziv_bvB(k8cSJ>H9QN$3)t1dq)NXD7qqAS%9AX?h-_z-0cgN%dHI7fRoY+sYeD(YB z)0$We{|~B}Q0S=sLPD|v`s6g+)&gzZ@JymA? zLULXkx%~Ulsqn;#h$DR!QuQWiXixP+qti^jBq)~tVj{|sT-wB|H+q(4N-8~gZq}qg zEMB_t*cf6K0kt_>n8*<2XY-^5(b=MJ<)EqqaHy&P`?dl+4oZW0H+rlZkipUHS9Oz$SCpVcj=dVc82H8j!Wj&Je$fWLc&k$mt% zRS}_T)F$31=NDE8NiY6ZW`z zu+hOGK8PikgudOO8(yw=u}rhft(dLmF^@E&|B+5a}6_bmY9BkpN#U$ebaF{JGK{ z3X7%!k1omMV;IY{=Tf)W{!6+RkaBJL)TQ16J%hh3!IgcSQGnrW?`l6Kx!A?+m;fNx zF6L5H+m@iIZdZs}|N2>I?eXVk*l5=&9mWp~>o}5+rrWIdf!nA_eX+o3<@q8Ic%2)# zCEtoOvGi}_U2n5q$e0|#uxG?xdkZUm8*Yf>kE4yqGR3dEue$9-Ggh5gm_V8rtAvIc z@1m9fu{3v*xOLR)OZg(v`M~{yEl-QWypX}BUHfyEr~&I1+}t(Vr!D-sl;y~YnyM3+ zC8)c^V&0S5YCwYsfLGF$GLZ;!7;h6nB6R?wwC$}9@hg&IoD&)CUFQO|b(=bCANcaH z&vNG9OfvQxzy`JVn~nN7-r#2v2M9sbbkzKzhVUt8Kf7xeK>m8|5AW~!&#-51!F55G z5G6gQNNw_t-D~Dln^ksC5rJ$HFxu}^fC^}u&+=bHcJ3Ntua-PAO?6F7z@6Q^1YnPf z-8!l@HP`PSDH;k5{tly^vi{6`1U{s*%7ux=Kum3zt7=#Pq(NWA?M1}5^+Va7kh_!( zaRQM5ML@d0&C0n-j`YNloXXqh`Ar8)tNK#kaDW8q0+~5!Ni{Z|mhNU^^%;gkfs!9j z$XFXXmgFDllrBY>mL>Hy{2pwVI9AQyT{iKwTOVs#`NW8(Y(sNR7Jd=_y#`JJz*o^R zqJWxBpl35~;kg~n|G2Z>VB)p{A(Gbo8L6o_AT~X+^z1XCVD*R=ze4ZRP2Z8ZAz;0Y z5%;>?$&G#Vi=HQc)t&1EJEpBGgxq)69kIcDs_m>%{^YuqdY*NNY~sVl;=hm!^*OS| zW_qdyGyEG{;Xb)RX*!Ae{(4LR1EFR08YY*AN#m8ogWCwtOgc)U{$ckXp49!%6mCog z9n|)rlRg~;e2!*8TN)y}B`O#wg{w!OR((fv6v%#0;@5kuG~-0nD-wRTwP&6O8Lug{ z$s>d2kcmYyNBpM1uVga)pE-l!)T-#{f2#D|L(DW}K>!5)Eyaf)s_kY3DGVq6C_`C&&_%@<>tcjlre$7Y+2 zp#Bky!4@-&R0A9HLQ5{G-XK}ryss2Bv6T|tc=fmscI=A7^>j9(CDi>Z!sc%yDFs?c zS65~Ay`l|HAT~Np5E>5|!|&*!Ay5-q=RZpM*tEftFsuLil8wy~eb|_mGWs;J@pRKG zKY-VD=FE^cnpzl0J;Q=W!1NZn^TH=piL0~^ENzJVX|<~sy9qE5+XnjJt*hGR+P(+9 zM(}ImH8O5Iv!ITa<4FwaR0QIpD|cQGm@2LZIb|Sr9{^rB39~g}BPDOx z%#q>rni*k+wSv8^kdvIpm#N^Wkq+#cxu;>TywOFeqTSKEt_s7x%o#ao5~)#UoIVc&z|VqR~RR0UWF_0QWEw zIr(#`P1{5$Ux5y`umdp1i{=e7ESq2KWvmBq=(H?mC3HjufZOqfnK$ouE$2#Rly(Od zf1#4ado;3A<>i6XGg6U_Miir=L@y94#RfH&CLA%oY+fF{0=AKCrJ9LGoOxq=i<_qn z=6N49iI~H=rD+X0ezG-acHns9vR-8rP15fEa9p*+v7A}H0c8f(yx8kN5s~^LM!Tk^ z3^{54$O>i0W{sywX+eGCoJXMGGr~D{D**W~SDlxv4=TUW{bav}SGNb4S$>Nwe9jD7 z1dHwTWQYU0)v^hd*$e}9@a}k_$7ufUdr-tAZ}&iPe>SzqSRj|+`kVOMsUpxD+_xLQMg z0vK#jqQVs?1ZU%oo!CQdiI}$M)gY5hRHvzkQ_F(iwOC5_fx%2V^EE-fE;)p;IthGI z>=Y*bV)ZYYy&W!^0f`M#N^u=p>3l{*5JIf@mb(YEc9Q=9v<*iVaiX6`b-%P=W-OyE z=J>r@8q~-Ph>K<47RAI@QY(DXDBep^HjXJz`Kt>~cJU)3P1|0wiW78VdUU^X0T3>= z(9y|A9XRyvJ%WCTvpsWD=CeE>Og&Z?%olzi7{y~`7wzhpdV9@Pmt7Q01hNT#XrF{v z(jDU6mjMs&)SV{n6epnLinOrn?y~DZC?g!TFn!Lw-D>7a7EUWu0mdwYW=gr8&c_m+Y^&7yw+?WF z&-0igo2SZ9DAV4imQs>TScYr8ua>vtp-kEaAV@KyG?Y`#$XAFgETZ_h1V@`BvTr5ml!~e`MpKSL0^Ny|EB|4 z2)T5nb~tk>3DO2#1n`EP!Y4GhVR=~=69d6KvUtCO*KZaah71y zn;L@)l37j9CcI;G-^Z~R@$?@m*BpYN$S^-j{dRYjxM?kyFsuGtfGf@1v6FIQ_0O6} zyYF=7$4Wb5Pq>{G_p-j@9JKse_{>Z?I91F6Fe5^8Y0Bx+uk;19fRnWPYvgTH;B+4+ z;G#QWAhD`E#wMI^5a3C;xmh~@)6I!vPLFM;gh{y6u5+#A#z zhaweH@MoeUdI_A5c!?j^S~|E+?x!5r8-rB2wJ2NjnYD%syv{bEyY;GU$fY>rWp)5Y z(k0m*4MQd0Fcfi6ISY4jXlDN6bzevQ%_NX}0aKYY*xZ-g2T(=E6k?*2R;AysLc8Tt zGm8nU9<7s|p)-?r$;3z`pKccNkd2uhDN+{il0 zSb~WE>4%^t;lMO&qu=yn9KHIQ^L-A6_^?MNMC+!d`)XFr+B=g!R5+l-J%x`0876il zEFF^i8>u=}oaQ~;B&*bYgMQ$JiE)l6G7iU?U`iT^=BW#ae zqmQA7nCclIc};TZYud9#$)*#W`J1ND}@lw55*Zp3VPb2zWAb%ic~DbZ>NCY16oLnZbTOZH45tht@Mq;syyxxeqqInIh)7C1xJU~{ZdDIRos7)| zJ}%}JyglpKyNe9Ojc1W>t@7_IzsvQI(K^Hp&eIpwQ=-V*oZi;U4)KHr03kV^z zj>8G^fQQPDUgtuI_XZ9_O?I?1RTVLpdquJ;_sq*`cyKs187Qr&ViEG_5 z>oNNQMa$Q=(IW_O8qSX!!^9{I8gg6;a?gGtpmL?mazV9@m0A>_n8S!r4K`QjFNrj8 zIv{5#I=z0Xv(*kk9GruPi?c6GxV_$zBOBs~75iLeJN^SPFA$QjkHHkc#={EXf)9!w zQx@D>dohuVCr8Pu=DWfIODwt%+d;U(emffjEU6!P6MZoRIliK}Q1J5sd-kJ~y@HI?MHBgw-TNNK0|z4K?V zmRV@rr+)6Y^=Dl}Q`-Bq<%G5UEVBlY5F@dVlfz#VxKx}MXqrD9$8UT+G5RRmVe{AO z^*xI$j&4YcMSgrHkkHAC8^4sZj3We)5Izxl{e%}O{XjUx-+XtdU5Q1kePn1*2p##v z%qet+2afuSR8r!=&zVRyw`0-1?VI6^WFYrCG5_-`1(%AFO-2>z|20K|l`pVphfZL{s?C#K%c4S@8U-O$ z9?!tg>FEzP1y(|-px#I6W7AT}**b?d#9}|EC^jl`DQ+!9sLX;SxaCq|kBmw%**jSn zd&LD@*H$UPJO#wd>nv{)1DGR!GwpXOB`gpxWm~V0Zn7K)T(2%}PnUAOT;+1?RP64> z%?aF~RHWUn$7PCzU|HxE@ybhp9mh&mC~QS_k+`Qk<5q_WxyZ10Gumx+7;9oQ;JrBs zhL6&m$FU!aIwZ$l-l-xcjI~prkF<%Et0DO#YJ2aCgV`=?!l4a&V@vK8~DjWXu4IIb!nM$-J00J9q@Y*bHehm^mR6IXVGy9{#MoqA8NiI z=rUx^{<$NbE9}X6-2h3)wb-3>#ZO!#yKC6f$qo`wEU!OygIfqbv}a)Q&(7wU zdEG6PpmZ!co>hA-ooN#*sP#h)BtAgh0}5Uw9|6H9muwC>J7Rp50DP=uXk{{1>o=uK zgXzwNU(@9FmqqjLF$s)bfhC^Rlv4oDS8I2w2Oo}jwj``Mw?7nl8i&NKNu(LJ$N;x3 z+*}#w;RDd%##zLrnSDQK2~ioTv+uj1^&N1Qot~thCA{LMFUE@Cz=b33Wr^iGf`NwA zwso6BA6Q}=RqxMfJB{*Cqq~$;zrh8_4&3=|nb_q~>K@+mDClXW)Ta+VC|NjWCN+KI z>90KzYmrM%dU;Is*k9Mwf6;>T)BAz!m_?DnmQ^LB>w5SM*Vna052zIi)iz9kT|^;< z&5E!5h-y>OnKkA!TyEwQCyH^AE<*iq0#j_Yc$PGC)LnE`)O}D%%?VXZgLuWrFXgxx zL<=1HuSSJaUQWl+r_*GjR0Nh2yDW3)wuQV0(}3#D;R~R^lz^@=ZcCkV^-uL2KcLK9 z%~GQn%_yeLkO+u#TV_afi+?!Ol*<>)g|XF?RWb=87=yi&0(e#GC+}(#Oo(4qLC z+6JNrA5k{DCV;!rjGvf*|8M8U!so_WoCOv7U?rvCkeFH9u`7?rCwc55ck@ z-O|``FJOD%MlR_<#dvBp%bbTGz~5v>mn<>RR5Y-%X1z^Wu+@xk(XJtm&$eks)h(sy z<#XHgxLlD1^{BEAYXJCLYkw**op$#sP+*oAc8cG%wJNBt8l{u|X)@&KeeH#j#=P@_ z(gH6sDxZ{$Qw z*!29~^t}V4q-ssnA2`hmA<^ffNJDG#7dP4VL0A{T&4j-t<+ypW^1=oTknqH~)J-NX zwpfm8^|bwbxF4rc&ARJp?UFhbDe5Xy72R>qTLW}Kted4EL=9O(U(OU<9=IP^RtI85 znzq#WHxq?R#!y!$JDixVEyUIOYR1==k(~vC*s4_pojMgS%;ah$`IMtOBUe+rcv!;8?fm~KxSD+V5o0BD&uFh9_% z^6jz=CD+OYnS0&+07T%B6FJhteWs0H2;L+c=LkIt3_eKU3=GaSzB5G-us65NB(izj{zs5)5fiK?au1F`n50e3D zqx`jeL5A#2<>rZdlT4+9~LoU3iNUUg6qY8)*mOnx&MR#H;`P-GY_eGZD zS25f*I@cZ<0h?A%;j;XB^~|hK)~xHeU{dAlq-U!hwrs3;PSbq{<=Klfv3fGR<8wwL zO{r_?fTy=Dy%O_oOe?u~)5@& z`72|(Bj;Is&SI;Jjg8S0Xpi@-j5CpBl!X?s6Q}1A!zlWtlKk+;aFjL=f`*bNo^Bg& zKkenO@FsS;+%)x=^A+e11iI|Xv4LeQ7w_aTgTQcO+o-3UbS0fibgv|YN(Ra8;`82p zG3qByFiTH&4^t1*zMRu)AxBpeF$=(uXtE zP)#)}j)+v0Daa6w-p`em7)8T`&+%lb0XzkUGD2F)B{QIM7p9yk;qgt4k;2$3P~XY1 z;W;DjXKISp1h~u6v;w6q`1acIZF)Dk#J#_;5>A>^0qF@=K1pXJ97!ocIY*!1+g>>8 z)Hu4&W^qfJLqF;q_T6d3dzWd90kp&q@Hy%`o&|_+(4pjkG=rcOQz-*R?w|yoIt35m zoVXtYE@1>$fCqQ=c-(NiZK^27Wkj;w4*y zHZr|(h{vG&pRd*^Y@9m9b~w`^{~Z70^aoB3kfeT1BfORAVe5a+xA|;!Tx2FF%WMBV zGpfgEd#N7{@p|0v>BSiWJ-Ft+CR20Zm=R*HP0PVoP1se|aSdT6HytgMN;SGZw=g`* zJ#iA`kPJXbd`L>Et|Yvq%D&^B(v3oJLrc$OeJdVPb4rg#uv%$Q-RPX`Imz568C?}QgC<23x&0jFAaMxm9>U$-v#x~>$B$%o?YXAkl zZd;)CgaP$i)1r~j5vl27!ScrTLWZ2N>@X=4A6#>Vt~J7fhq787UXYt690Aq!WId=l z1m$EU;{};5cGC#mqTrS@r-f{Bza^VI#^M@;z@k-(ZK=lx`W6hM%R05ls%5d{3SR(H zVeyUUn@lMu!><_jFX0s(lway5JEA_up!d*W2oG*)g{51@GhY4|S8Lt7CVAUZi#i{tgMv}CJ2XTa7%f6zwvr-5v;Ku| z%Q*xsj}HM9sT*dS<+~nO3Qug)^;vl((T4rX&tz*m0fV#^*#Q0AWkh=BMAd?f8&mt_ z3)LVWBbRSGK2nysW3mUi&UsoZFq2smU+Cdn_iFsop7pLtYHo;*MihfSFCBva!a4dZ z+4>3qLzr7enBwubvY)D!;D{pkKPU6z>rndU?aTrN-zXDchBL&&48XSFyla0qrf9?j z&?)}9<4W+_CE55F7C>c=Ze$4TNjbO)Cw+q@fk-sx?^AW~vul!MNXje(knu7?OMfn= zNt*i&y*JDTJ$Yvidb^kW9%1fe3e?yZa!2|_QLnJOi>8jS-^}juZHwy^vmr{*m5d|j z>l@4m#&C44NB{9Mf2inc5Uk>uGfKX6)w-@}%G?z|1lX=YO6^Q8IC2rX4i&y+hg0V2 zDXsB)kop~OTlWr&yHtzGX`c32lkm23{CGR=0l{B-mq;(wZSWKwM!|Qt+6(nZ_vuMx z=8lAM1h^^UTcV`)VQ_*s@{KqDbU-jfaiGlPT)%#)1u3W;hiAJZs{1j5H!4!M-mr8pVt7o1Evv*@ezyZDUvuU;W^09M)7_(>&l>;|ra3#@P9Ul3A3l4WQ4LGfl6B zG1qeAo8Hbrzb|+@uEacpu4mF#w~EhFcl*Yb>E&xV9k>&5ksIUaFYu%)(9%^ei}GE{~&pYaCZO>M+I03uwH1n-y8@@cB4nN zc8h+a&o0u*YVLT@wywWJAQ@BZH}tU;^H;u*86JBpblRSWxJnRAEuYFZ@uo98Kb;WB zJZ&&M1o<5v^m0b-MlU*6=Z?P2QVX!r#Z19*;XBwOeaepsPD9Ldk9>$%d9#Qg7C1!E zD+zJ@x9t^c?FWDynYH2xLPN|go+FdF#oOA2vT(C zM-f3wPw|J8oapDgFH-qLdAYx#NaC@d%4083iqz)Am zXQNL5Z=|pTkbDQ+%k+{L!j#u>^!VSaiQzY?Nk&%xl$@uOm`w<41pNr=Upb;;AH^`J zxbYsO(Cl5f4}?FxCx2UKB30k;cef=Cc}k;rl73Y(x7p11YZXm|Kv<0ds7Z^=vLwRn z9x=3_@IYh&3}~ZR6ajthTdyMS3vphIq;k0q@E*`UhI1xUIxP}bIP4?LhooKgu4z)K zJ2Krn)y)_`xN%uIbosJ*6Rfg&)bn=`n; zWJ&#!**InZt4g~VITslRUw9@zc>zMjm(08{l=7)(|K=bLXZKs)OtM6nBR)cW1 zrGj<(J+f>R@;s-lsUY-ma_$Q=x#M&eKtQn5jUkdr9k%T6yqz`wf;Kez&ac$!eL*Xb zUF7fewS(_FKJI3^=RFhcyy6erj)hDs_E{O&ZfD)0EyO>eM(YAx`aNG&J_cBQQKV(m z`BT$3qNiWoMcNGJzrKFXNE2#cZixUa5$$jLc4`=nqfvIPzi9QNV%xDPc^CfwfKPkV z_#`6R)9gD;i)Kwqchpl4cxj;XHiW>2Hn^Uo8=lGgM$#$q&s|E0y{q9q-44l+ZAO;^ z2R8^Ro16(AaNnr2D&g1X@ioI$kie&mA0Rz(dqW`*%a~B9Y2vqFU<(+&5D4a1N)5ty zJ*unOIQ>O((Wtu8bL&Lm@xk0??WB{RXm*=iDG%s4 z_GZYJ4Xav*LcYO#$02ofGa>%4lzzPfP7ETS-F;s8h0n-prmWchEIei!3cvpH7_dmw zpx*e{ceIxxJMz^I2R0}#7Gumm>udQ-)}v$cv$Uk+rg-2@bJ;AiMp`WkM52LooC(s4 zMbo48=X*f_TV;L!5-&jZ3i1U2tycj_G>W?TGqLxqfobIm1%jEn=Qq81MsV3(51TM* z)=;P|xcyOwY|>CsoRciOH=VrK1!87}y+ZCofu{O!8w+8nC*?+8F$e>EP};=c#NlSD z%4`UL>dH0$(F5o4-A?Vnw;)U81c=le16$AwH`l3a{3orqii|Q9%zq66mm!SlxDZ;X zQMX-tM|vEG7#MNJ;qo=5tq=qvz6XHD1GH+ZV0rZ?m#vFnz~Hq*bg}O36vQ3vnJ;g) z0X5zncXdASR~dx^ zB$_Bz)Qf}pe)uNPm>g2_S>h4lkHNMZ$nR2>F{6*#XI2^(=Ggne780a-XhK;mCcGB$ zqRGhEtU3fLUi*RBkhh?-s9dYl(e!L>50C*k4k&Na-{TC8bwGg&Ccs}?smJL`;u4A&BXQ`8wWc3uDofXgq@TFjHcf zk)~65eGa+;Kl6UhVjw#b^0JR{!{^gN3}C?Fds6C;^n<_FTfmtnK*qq?10pri(GqY? z(MihbyN)hJMIz7@Zp4e~C}gMxr$_-%ZC(FVG!x*L#-S5Z#1P}BoS;kx2!j6aoOJBc zPY>InsV{rOX&1oT#-3Q+-{%MXA?UeIiGz!&T1`m-Yz_zgbuic?!hn%ZJPZE==aTXY zSD-EePzJn|bDL!gq6zB*=Pr^m8Q9lS>f7w7{ml{&l9jZ3Z+>CuwEC%GYnZ+LiF)24 zr$*lOfY!cY8;a_@h#REIY6u2uugYay|LY|$~`KkBB?@R7|hB92aI2;#`qP- z-SR$?i?O?#~Mz$sTz`^a&|Latw+E|t)irKlYA@bCgP5ArQ3pK2-u3sg#yB|V z*TjhKEecgDgLuV6?zcU+`!Mu;Wbg-T?1cTlb0`qq?$;}@Q&ka*!j1HzjkD7))DCGv z5^TqDHP>&XrwDl^-j8hTF@P~j^qrsMZW_3J4OWYeg>gNA``Ir=tOyf)99q;q5z&t4 z20c#x{!>2O?d8N>%S04qZU*7x&~>{vdJR(sD3?zzWTmzLv}bPx-lt}^AL~cC%{94O zXEbqGiHt&&f^z7r<4Tgx0~MyYv1nSXKv>J>r<^!-joc2k@MGi1Xvn~iJab{$!a*#G zv0k;{d5Rw6rsA(3uE?lS=c7PpN>9LwxV^SIgKS>tx<>s)f_;pd-aXNM{%V2exI|!& z;*)+fuT@@>-vJCBVXLH0oqrB?MpR5EX2d!-#v3}s)n(as;U{h|9j0rsL$Z278) z-mO|X=4F$7z)sU}W~skKe?|R>x*fx=;AqN|pz8|Bs*Wy$k+8n+vtinYu z2o}4Syd(IQHdLA}CsZwGff{BHHTG*%f*GW;i9AcCjTV=hArEWqe#Yo0@G@ILfJopA zbuM@8#|Hox==~fIB$#4ZzShx`Xnswa=P_&vr<9t)sd7;R8{8a!GC@f2>WuVM?GiJE z=fR`c^%=eibIBr5s>I#SfUW$;e66%(X~5=7Qs&-xfN3RPTk8A#>f@%T_l9bi0nFDp zfOesKNrwYsTrdsAyH(0B{{l6zy9#;QpgEsBd={>^nqeX^hUq>wA1Fr~IQ#SC(}6<| z^wXOFme6$_6cols=mkywgC2alssgua{mC+}YU&E@GFbbDIKoeJrM@Gxm(4NoeFpui zaAJqwoBuBpLUGWjvV@V6f^NN-KD$i>UE7l1P7UZ|6QX8`9B+EJ?v`!(6$S@zV|`_8 z9Q6DyEs8GRRC>*1OANk+VJTcCdeJ~O_I4ps+MZnI!yv2g78O9TwYi-ZC>|282)ruQ zoZU!^EwVl1wk_Q!od4A4Vsp|CiYuv%L>PvG0#m8C1`B7Z-yPR-uk119n9Z5%Bx+(I zQiju<`DXf>qEZKVXGclI>KfCbcAUT>-m<5 zOJgToe`47vV<@KqkqREp6sixTW>zZUP7nM`!fCw!Yx>KYQOuZ-@ zVX?h!GlVD2SIQND@Dh4W7XW|LHgYr&p_b}tz^eq39i8DopEH1@3FH<^65VVEC}p)I zrAOm9bM@WZ4F)aVBK3;DDhh5a7y|vbGR-q(PY%v;OUr{wP-vzNh~+J>wIt^Wml!S%c^0Zax^naqdzgLB_oWoF=oc%Al z5}{V(lOgb>=^moj-g8ByiHtBVM>Kys+Ks~;+}>A1r1lZ>vc|SUx4!E*2~&hc2|4y6 zW%UQnOgg&Nk9T?ewgZ4sf5t)vFGY5|H&6(^KE?nX`Jd^)Mpu}0=zry$r6B%o@=qlX`@bKK=6!Iwi{|?rG#iTS0!uMr-`qT0P>)?;~ z@`rQ&;&{*_aS$Uw_&gJ_a{zFMyKJ~Ch_3z8`N8sPH+Q-$P($ri%-mA(pzwkhu2Un? z=^p2CR>0F!AFXP?*d;gDD~7Fm=)}7m9m>6i*R|X!kMq5)EkMoK#n5BR2b~xZ09jqF z)Wa28te4NZUasBH*N%Cb`|W<%?Q~uSY+bH>`xinlmZv0@_~s0K0qsl==VjAKM1Ka< zumyGpiH%wYLddrjoKG;O4ncV;KWSsB&Q53E2v{l0gPZatR);^qSKNY^R*ZYj!jT$c zm);MsK6)D|(!xAn(1;1I(5QnFzwvpl#LUphmsH-o1Um&D#oEyz>94YA{cj2ogo+&M zTKro$edZeOmrH^*tEai;qPML&r^=iP%-}>_j)AKJ{MQ|uyUD8wtt+t*vY8iRsnWCiwk61JjA!jR!`f>*xoZArF* zJt^!=Ax4t%102E?ngjdher;Yba8afA(DS|gte*3Db6q8h124Q*PTYoP;*scOoFCHJ z*LF%2a{Ldt(^T)~G!ec^pa`hbJfw<(u7W2??k`s|v}24mU0Fn*9<;@pM5^HrEM5@w zRwZj5u`Z$lQp8rHjnQ#(B%Ao!J*v!l>lB4ggzcT`0IML)0Cj5OZ`(b;$)C_FT7)C7 zMs+Ua{7h*QVxj5l~buF&}5Hl7(rBmT*vqSfM|)DN;Yp53zXd9vE{q z`2oNO1JC7MK8wQyYWSBrfbZHrZ&`ght)xPdRN`7Nrl0-_j&RJTU^GWu5^6sRBBi{oJwf7J%Ap^3F?_q zy!lPn`E~9%e@1$Z=H&wcnXxvm;2o8xy@B5#Ec=+qhf(PB*F2}iPnM2Ro8SfhBQkI$ zq?-m@kfhP5$UG7|9u(`E!jt&EFHnLyOF*HnEN1wS^b(p4YIXnL<{wj;qHViwP0low z!$cbpwW19=Mg|4~dy-d61}G4BK8_Lj*(C+2K?D(H01iAeu|`hgLISI>+F_;k$ly!} z$$$ciXR(-)y@drJ&#KZv|F4nq6Z4`8y)DRtBjLo<8=qn5#;2Q-)mbdl&lu&{LQ560 zSUh&lBMB%_ywuL1f(I7(X}1eXOJoxVVx)PIZaB?!cViFE;cQgFcS>sPEC*1v{|`EL zM)w@wU2lI3w^CO*Y2}OW0*R`*x5ETTgjHbBb;~pmpU~K9iy|Lw>L*?I6W46D3lv-IAU)>j zdm(M;s4Mjo@Z1joLo}F_K9(tR|A0qoquHCbTL#3eVIMQc|smW`o#eklxFbbbl zjEGsitAX?Rt!Uk zsHMkSjY7mu&H|*%0UU`M6z_)V6~9tEgce1#__9>v*~w9(AajJPP|`|}ukI9fIk~Lq zWp&N=yt&xlz!@OBPi``mIyFI2FU{8?lX5Tg+0kvo*B~rfe3z4oRPj@o^!UiYpJZ&` z=#zf9pbWwP_P+D0)~;Zz4Ox_0aS%)=7Nohd%U2ou2X zq!y6l$3w`$waSD{$;`&N%uI}_%%VNEnLop73R0bkIT#z4EY1G{)Vg^-2_gx3%Qb;J zRSAJ}T^prdA2tm#*iOVLib*|FK%bW*;h*@Wp%@uM$qP9U3G8=U-CC}kC`&T4DuNe| zyzQPK@-!$k^MbQNqRdS>-uX{W(#LdUll4GywSKZ-KpGU*R(pNCxI|;K#_pGDB9;r0 z1wLhW@@eCd@$4g$Q9T z41ADN0euy(3VVrbyjp8MGT7(+qj<;&F6u!RF_@{p_Y>oPgdtK)?+>K1aa9Qi}3$?6t?6 z>NHA_&~1|IXJN%egwdpdtHY`tE{ijml&G>twx4I5RZen4(_I7XY+BX3sxX{1W8Ay| ze{EL){hWHU36^@>>~cA&k0|?$lvQ9o7#s{H-3Q9eaCFarI1;dOETf$Sj)sN|0` zxll8Ri=8A^_t{wMgFQVwoA=#_y+G*Sy}$UY8}2B9B(wUfSR6@${v^-q_` z5ZEzkF}f5Ug}WaUfOJB!K>A3Mb_6XEf$FWP^DVxEWwnaO(=rafQ@o@kK=X*m?&c%f z%(X@FQv)-^Jo5A01TmNt9_WFrHQrIbcRq7nRZC8GTxb7W4$z}zi@;#o(62gfbY|t- z{{c)}>PQ8`5{Ks`9*QOFL&Zu>@aPipBYt3$gXL9w_6qzcJlOc9vSS6%Jl3kY9GKu) z^oR3nqc%oR#2jp?FIU46ft@%Xc!>72Zm^#N+wKElsmE{=q`Db9I9TJ!SGY#1qI7!sMCBp z8BJ=_X73HmWRNgmo`6&*A;Tbpz^P@FzpV?S95ZfKW)z?f0RV%U!O zNmR~JCs3m+h8s1bIYXn0gXf$vnVE9qx7QY$W-6tyJa;r5{DM2iWjJ@|$mYRMbJXED zf=-fEl%hjg^I^S9xha1(57Hr61A>Qr-mHz9l=`jubnNZJ=!c?si;Z zBK)oA-I?%veVVMv;{+(zn5&ssg(pq$I!e9<+edN#oS*~db0{WX`t8Tx-KaeDfKStB zwc;SVuq1F^uSwsbO@qvTC-ATX8I)J=7M3Nz1=EcB&;w%qQy4><-MA!xVvcdHSpIP!kSRT70E*iyAl4(uDRKqt7=j1v!|kda z1ZS6TFyi$BpH+xbV0{=ZZElnz1TWRxP7jG1i642m#SzA-ojfYXMz;lph4=O=XVb3W zLEbYn5rj%4zOON~yTXtFSPP5FWLHcoLLe(j+Xl)I3F=Z=Trk+-d{xNXbOR5r&)rT*Q@E(UX^BVWjtiAUxz7WSXe2rIdnivo-FV4Z}IVpW2 z>mp_Kj#(ua@SXk^l-rPS7izgK0ELgE;eZmACMkJgxG-8GaktcGKVN+CJ)@ku)*9D1 ztgpFJuJ9cYk9zWXc#_I*Mz-L2Uv!8DvUKOhUwE$Qh+*Cy{hW)9=)+YE-w55sMw~)< z!bJkP^^~gD$}IJPLC&@?JjEI_8IV^hImudGiv~%Pq>n=P(VkMg?Jfk)a|{bxTuf)T zz9Mj}?rY)&uDVf&qpncx_Yi?I9QHVldUKh^9pU8K8W&St;;j8pj^>PRV=k|iMjc1u zh?Vzd*rB4n@YF-9u)-H_Iera=tanCJ_5Pj9Q!zQT7*%JXoV`Z&e}Q`Rizg86+t%AtPrZ6SHK=9;&G|26jiE3o6Dj$a*X=3l7(4}2 z+skGTp=`iJJzR}KDNXe8GPMc|(Q0`GMREYH@Hg?*LRu3?-h=jr!G^h(MVKImrybL?b?xT%)Xury>BvJb!F)2k{0^; zk__}v8@9cODFFi!xzz$=DFOa5{LxO&sZT|Swm4%TZdx!(G5v~Q&Kt|AbR_Ifl8eE& zwPXH1q*POWxPA0^uA;yQRACC+6lt7*<1(N`Ee6(qPB4=i3#24R@--qoUWX{DY+)4; zlqVAx)dTotb4gAF{thjd+w&Jd@lG9U_tlV7%!lJn(&DanPt#KUhsLANDZ*Kji|cDK zzf49MJJ98W_HF6HNjXKb>aN+}EZ*d*Ixtqu;~|kK#M^#?zk=7wU3iMKGAuF?w%NP` ztsGhlp!T}11QTe#IJn_O@O^=5TYW5&TB&-W8B)YJ+Ua>ZUQ@w&a{%0{=}f|9H-Asc zUYBc2b?-2~hZ!m>TsSioV(wCtNGEd>%3K(e_2do&+2f9CnJK(Q<^N~J$QDgBpQ8@` zPqLKFLktyHlOpT34eac#y>?HYsxmN*0I>}v*Qm9;MXm|^mwJ)~o`)d;Z7UP`{5VH{ zHmFfGLA*%6ewcW!>E{d)V?XxP=4CLow7S-0h1f`ijn==U%EPULNn$BOae5EyH)%Yw zp=zUPnpm?<@8i_(=i1Sh`}UA3x=o0U7D8UwmAbxd*K$+=mkMN<)>64=sz-RT(gRNF zms6T=%u*UMrS5;8oo~i0x4i+7B)ReFfANT08*z*RAko+A*|zz_ClxzZ36v#(L%(PiDjP;w_O3JinY-e0KECo zpxx&1GleQ@m1gnyG}ZhI#%+uzuRs&s+VC~05*+n5J#ja}ZE!(fl#KvF97GVukYb}s z=7q6anv4(PZazVL#NzjAIDBrha^j9}m3yFJ399GQ=YbO>IWf8i1Aq7*3qy1#C%t}dL2JgDvYG;4Ot-E|q} z6m4siXqc#ac@J$$aw}l#cW1>7zbY&8K)gW*lpQlhEa4NMKe66%QLj(ES^1K=RHi4A zcQ7-r22k@~Z=h{JL`}_nJ2~E)yezOOs8^3UYOHYiSbLlPR6SoIX#>MyZNNShsojn* z!c8lO*tmEd3gdm7{R(w(z*S~RZI;?T*F>`FVN&kB=4iv#LssR0%Jc#(ADSpl}EY$52;_ zse9i@|5(5wTN95tibn*X;j_Gqkk7G{rCcksGqNcv-@f=|ClYGS<>Ul+)#*ZwaMEkc z`P*}|6FbLfC-I;JkBgOYTJIkcblr!MF}Ck_u@{?2A+}ee{3G8|?dqyRUH=M1O|$YR({)iG(DO0MId|PSba~vQEA>?lUVzi2jhoL zPa#x>P>MVpG#y7X3H8qj&=sJJ(oU1%WJ)(CU-zt;8z3VMz>D@R;BfRvEah?2{dp%Z zIf+b&VO`G6*ye|EKcljT{aVSF`NKOb@GL#sy`HA7i);GRAUZCUr3lB%R%qvqOnqW_ z2j0;XHEhk&R4Lvc?@|cjP8~y*9<*d2P+8ae!XgX+8r4pd)Vlxa1wu^qri@pxC%v>e z-MN$>g&X%{tF%55Tnrv5^8+beC(mTG+t%|*zEw-pk99QrFrEW&KU)(QV8P z_~P6h*uO;_Hqn5Z7lkUZ8j*-|YXTDkn zGlQcb6erp54!gR#ktJ zw6Al%%gfqTUVJcb{NYU7$tZCClE0wN~)vj!P?5F9{95S9F9d3t<*F^agd0 zPmO)kw(ST;tJL5Cr5*4C2+CuSCmb~zYRE1to~*bzh>oQ!P=@=)d3Oa;$*tl$rCcV{*dU$?OHkyJt&YhUmha*` z6KvQ@9MazycuKjLUVEp`a9zKA$WOga^~iefT#6i7_`nNJfH(DdB~w-^fTF|pzORXl z>&>J2K<`jtxm_+o(+UjQlX%~EFH=fdDgyeSuW)++{ehpOh+kQ^<954v??j5hwzIaT zNEO&Nk9>fe^uYmdBbn>0*Sp2!O=%TU%QH{Bdj~B%$mrKtLdn~SGU=l0s{_&DaHu}i zYp~>I%Oh41av61X#%mrB>=B8_$w*?uC3s=uz9I=Ujbo~$$QPP|EC3fR(*xV6)Z?Xb zNm0zu02cc6-)f0NE`)e-0qkyzY>aeOjV&xNO_0eawo_O0CZ$u=h~Dzw49gM^hl$xT zPp@oPbRHweqiV{%)1ABs>FD$WCRHvE#6ZO$Ck%xh+9m*T_*Cp&L1!iB1_~EE!7Ec} z%2!7zMw+xfHsz#iyv72^hT*)X0qu-* z<21koDM*5@3y-#gHFn&huGnbpf=NU)<{_!JBDryAZRhunG? zqt%v)M6QHWrIUW*AOTMF><13CI^c1io97ilK+0iLcSl+y{6jvZ!=ByKKgA~OZ9~{t*MihY%{9%a!U?NF zv~}Ux9;2~b-cmQ5Kx`b0KWgl($BJ)z93mO zD(13@q4>Mn_87GPt1_MUJJmjLO zmPApR^2C`!B%zlAW7C?#An`HqxNYiQ4eQW8Ci#@>@l@o!)$tPF|E!$PAo-$J7_cWMa%nikz~6Qt3uUrEpNKUrTZ7=oVM$}E^-D?x`hxS zY-~txm>HlG%89xL*>HJVN*3Nddq&E}wmz1mCy^}>k7=&n;1P2*;a zQFRv;G~s4_M?GV?IoKh+q-G|1yu2rL6qCI62D#EuPsS{z67V8hxl>m{rLSN>ddNPrif$t3y5k7wz+04a*U=E7(HtRH%oiHb4fvSc;k2jo}cZCBHJ01eRxDO6gI=o!?{4%BSPeOLsK}0Js!{XictC4Fp?W+Y z2HGoXQyQ1Lm1)Cc5qyiRQy$PLGL^`m^8j%o(uc%-0qVQgn(z}Rme;RnO(p`Q`TK4? zBn5ym2lkIvM2lBz&N%KctiYshghCbHde+vlcTK|xhk&<7Kbk9GdM|m1(q0Nj^Dl15 zg306II!8HarjjqAyqU7?h@nflrQ+)@->nLg*%WBbeSy$b4U7fo}i5`$5r|g0s zY^``SEZR!XUk|k0V(zLhCVgxFfM^Y5^7bMpxnB%ly=o#vwQNRKheKjY{R|^KZPufo zt7THUmlA@-VP*rT+7gvsc|!f4-b43Gm1i6-ou+sCQWx`c^8@(Cl=XZLwv!+|4l6U< z&2ZIegIadyoW-iYYl?3v2E`YO>r?m*$4lij;N4{0>z*jEFaturpS$4 zXJgoazpZ2t)DlW9d2e8ILM{I|q}L zc8eD*;_wA#Y@LhWe*mUAmkSkIXb(z7$C>&nT|(69$SJp2SZ5Bs_%}Tp z2l%V%Eg#zis73lb%$9rgn8{8;OvjrQp6pqvVdaf=NK7f1rF51;n6f%CI;TAF&*={; z`M^zT8&w)t{~^I%WseVB%Vq-O$&N5-EP{h`=c*%1=N2%xY`0XpEj+kMO=&W}ppYI` zPtTjNXdcCxOIUD2hurV@xGUw|!`deFjktZ|I~&`T_ic<7}ndl2#6(WgOJ3r(FBH!h%a$ zP^#(oE2FxcM-L6P0@RgsKv2Uzrz^&dvd=M8v`v(q>+p6;U?5>5U1yyZj5q zpWfn5{KboE-2Yl*AJ_6nAkk_da)Zm=W)L@7E&_pPwBxsu66Zew{ue0GKv zg{~+xRCL2M!x<{y-?UfRd~W5Clj~PUv5FCml1NaLgXp-=@!q_&)~mBe6PrH26URqB zxVI&pEHeUa_mzr~*gL&*A|a&wzIgiMy7hkl)0|J2q0h=ePXbgDzFc?2rXpg4ktS1q zDm!abkK1@nV<+?{Z9A(wp3&{>ke3_9twJVY#FtZ>5!gKHk8X`IeH2)gbHzwjg8Rc- zVDGvLQihZtT~8fgRxa%1wKSxjsc3AceN} z#jENGUs^qI|iV{|axy%M$S#XRuLT)E2K+fg`l5!m-_2x)P} ztANb_><{k)xdw&XHLE-?AXp;oc!!BGJd!rp|u5{BvbpUyIUUR89fJllB!i-_;) zjjSZ4tuHfu)0XsEef+fbHk}S^y!Vb>N#fgq2SmsET=1-tx@@lR@j8(1xvEyQ3ZM@E zpT9s{(a)+eI6eYGU?k&J{2j|FR zbqFxFX-Ui}D^e91z63Azy*j6zBq~hDgG81O9vS~TcCqaY0ZOq=?tjt6Mulrkeg11q zfj|M;1OS*JvvWZwC_>0PllM^EZ6y~c~rqYT(K6f_yl2mYFm`94ei*NC$gMMiS)oOzF$xk=Pf3+bul=Z>eL>Usn$ksNR30Zh@1)+STr zMYDObxM6%?-oLscO>9k79=IVX(+9qIUPt9rYAxE7aR>iBw4a_~g|YF7a>KVkH4f|f zgxp~PH8!(3pJ?#BRDKeqFXGDeTNWd81`*TPb#AMYc9I10}hQ^rR7K9Cs>&5uAa?w{A~n=AmyA5kA*|6Me}Glc~Y%YjE8! z>c$rKx}KLsypKi}HxehS9;fCD+zrbbXl&#}&c;R9v&!Lc7zfsKVRf$us0EuP@2SgC zmq163DDN16)tL%kvkr*dtU4Fz0cptrA@aG&bik|$8FXn#NEk z)iuBHtu(wleWP9HLK_UQ9))3;ddZYSU-jjR>(J;5Ub4)!aNg=S8i4FB{wvR^ra}oKCN zM3!mpNSun`k2G$}kFR92QB1IWmcB{)=;wjywQTIA%Y$sEQ`*-h9~;8bH8m*vH;&mq+}jWM%sjl%c65*boY~Rbmb`SVR}TQtG&wm)Uba z$!{q8gktmv!qTK5IiYh-E5r^)^X>}AK;?_G=h#pzRA}Si{)$m*&?Wz+CI*VmcVC?j zxa}(L1)Gz~Lg$iqN=9l`mO*-ii2n zoVeaa&oG6=^!&?*aDDuqA^-wlsH!@%XYfk2Yy8HygKh6^!+`XDWh*xz%+n)2u(LzC zQC7O9IEXH5Kw0p2qTTZT#&XKur;>C^5bphpH*cf4qU0(u5-8(WiNy}TfMUnz%YvR} zb5~j-jEJlE72S|6Q;hZ@Iv-i%H+@CTMuB=e-MXR@5JFvzCvyH!zT52rZ))uHer%K6 zwad~fZcj|@c@!$?dCtkNOY55eGJgk1836C6hpuM}Nm3?|J$w0vMgs7@kPgny5L|J+d6+6N>i!3=BJfbcG2*NW!Z6@`|J#&wIfPQ z^fo8N6@W{PfGY+-ssw`3ZHJ^Fb=SH+U*|#;P)1m9Qf5iSvIlBa`$Gt|$yoZpj%=F>w~K5c_H4S`-o@D;f3`hy^U4{-F62$YXNrQ8J=Acvz9 z(b))Gw~BDJi8j$ccg5#>JadpHtPU=s)<{0^MWFBoL#(swuk>>-)T9Q}-_3|z!$kVQoqiW%bL`B6PRo;{zkD;6 zFc|0}3#=xVt3fazwKNNs@rOqTY^ORnuHjl-Fx?|IsKWlCuDcb{HZUu;td9n9qZae!v&1*HTqekL_0NXUioz|ILagl*QK~T&Dv@*0_kzZ5X z3z>r~IKsep7T)@RW8qX&6eQ@{a-g&;8{i(dzi*9JQwObz`_x!MO&Mcl3+WczQElUM zJzncJS~0Mf{S#OY*9VazbV@lT^+>;u8~dW?F>ueb)=l78eq1Tl#;%JFXCZkx$rgjM zsh&+U&)NgX`7=T*HCA&G#Q(aCF!e|Y8j}cKxnvOw4`wA>(%Q?iLCZ`^>|v)PDm;OG-dpO&3yqVNlZ~Lj=yp1Wl{sW7+nux_j#>I^EO5qLUWMB;~v09^$HgjWr)sP;^{-|F<1@%u)C~WX#@(A z#u~c3SI-dk!4>9>vwzK<-yX2$?5XYRTIygtijfA2KF5<`>RxXla8;F6YgysRjuA-b zS4K{?^#1BnZk`@rtEdYVAnPi3`|~TG9nls@beF8FQ#tS~B!7dxyLka3d^=gChL4?S zuS;mcrOT(Z?XZ1VCNf(lMRJUZ33BJ>3{rC)hXoZp4lY6+w6zo!z7`rMhg1cWDnNBL zGF5>=er4Lkg6iTCx{IkP^6*@VH$p8vi%{`&=Z!o!$ETl!9)mM8+sJ?`9VyrdTV4ug zbNDT4nJ!B>@wQH9QUV8pBsC~`cmCbB0XqR(C1dPG#@@s5j@A(&_tA+kaGxAJeuKm`_ti$+I zsdAQx9>Cg=4PNg77--zX7Ok?Vj}E(>2P$>TxO@Mn8{Q*LC_RQ`uDAV%A>D*X$WB!x za3;%gzsaO-wb0fj5YzU4Z7(J#lKkeYFEJsJtP>I0i;g|}ULj-_lTNAt`IQ&^XQigm zjxsL_3?ltwLoc}#>38DJhq3VeE%~N=Y-LHD_dPl;e$j)DxSawl|S&qTQ#9CZ+9qQUg&Mmk*jc4KD8Q8gF{ z3g&8;T=mgZPN;vr{WW{XKd-uF#-dE3dKIa{eFW>DLJuWUa2F}!1RhPq?Na7Sg$bI zKAM@xZs~Cj->fWNoZce1QJDLOKI|5(3RMR`Zm*rj@ zC9#FUVwVelK-*!l#^oW_&M{IM_!qQ4kZEISL@eqms$g1IVN?6Sc~HP}%cvkw z!xL(NlTy9hVi$Kju%e2DVp{OM27k#(5?%2J^ssQA$k>cQk2Oh(4=+aHnsnW1{?6d> zm-?ZAig&wYl2w{UB)=oRbXHY!wzFIE(7rIZFW+nVh&{@f?Q@goD@f>KcD#o&UbR>| zfVGy`ty|jI|8_ypSb|FcKlWlw!qXX+go3h7nO_weH)T|@zy47KerLd8tlI;J9uB;M z3{vNMNb`Bwi znY&76Qt83y>-z0T0Xejb0mtNxyRlV|VxhMz5IlcH3!x+1W_LVSiu=3A=5E+lDP+AN zp-NupZWK-(Clwv+7n0KB?U<1GKX&~2&-BD@+>_i4wLVTg@F`6GyVqL$-XN?H@#!FT zm>v&FTEZ2y4Ot#r_~^7V;ru2AHCn+NS@=C*l4{XB$UQeLL*gfoJs)Ei;iIVUxe%5b zJ0A<|*R0(11Z}C%St`1`4r*rrI!CKAH0Yaz$^>I>HhU0=rxP-; zOS7M9!B)X?SW!gLrrZyiY%q3*WI6%?Z zv~%|ttKPr>W-fGKwAYl;`o!fQI>@=Jb#SqNUS23F^=~?2`d7llP|%a#sbIJQWcz7S zP^jg^{Xa^D5_^J7pwV4;UAM8meHkCTIZbpcq$L4MGJ$QhZDQAair4F7F zPt)sLuD)dZJM-;05=aI=Mf+-jo(7IpAFFBST1$N#p@6(@=RLAStGM*k8TSCYbt4{y z+5p_HlUzHkaJmJrGe29J~(4x=QV%z30e&-xe5_iwZkyknXt> z+>j@B#SRpY^xnpt0z75OXm%oyrOg#8bxftSj2Bzf>1wV2iWW9frlbwqI^$aLYtyzB z)_81@NvDt(dLB%`OR__r|2F)%Y9<~9#q`ChZscx?EQ;XSR`LBX8ZDnC+}sD3v??Y6 zSs>nvt_!nmS>$&1c(3^Q)26Af#(T7Y1b`f&vI~^Me{1mnPby}lHMI`kkF2-0+Ak<* zfoeM9(ux2!ZqD&j_)SX^iMBKi8BNO4kF~&{e)=22MEx7d;!t(i7?@yST=Syf=RYL& ziDF`l$~2ITGbXw#c18xs$C%*Bd7U*6#7Jy7Y`Nrnirn5yb%={K)rc2A8JkJ(|BNg+ zS8q~FpBgcg+2^ZdD&(Bac<&L;sK4h@0H;4jmI%3Hg^=++slF5Kz7_XDlymTqCBO@b z8eWy2SqIvNW3kH%ie`KHpURZSm70{zt#TEmDX!?q9f3#k$jEbac1Htzl@f4+ejgv4 zYGJ^N(&af|!+}Y0%6cRY!(EVlse*~UL_)#`#((k76_E$zMKgP1{={N4Zzp|P?MIe=1TD=IVs@~EOrDeu z1Rxdsfu$c*KM^J&gD+vn2^T+=l7*Q-TIqx1uXv)~hb!R{uDbjRFjU}Io(&gdX%YC5 zft9s=&?@;#GU=!HhF{`<#aqqnB>T~d&`bCZVh7-ZVjq&WP~Gsql2w}VipjAp>Eyv{VpAXkl8&w?BSV6v4 zhDF6PnEOe&fR($gFgO?ESabS3HyBc;1ssJmbd3!mRA7yy6v#8poNKpZpeq81E+i#@ z!W~sQoOTHmSaocTXWivIZ$OG?NAgtvy-l+ywI^OOSPc1(wTUMn_EziQ`WMdaMlCJI z`lCzT!DnL+o}BZO<>?{b*xnl?o9fQooq2^rsYYwWAIVc&(n4P#G$cC#GG0D`ImGeg zrGo3Ts`}m((#fVG*-qMfiwwIx`GDR{h=-=2_$Kng38arscXpi(CX7GTiBG-bfH2## z98f4i1?CEnm`xi^hcbc>#B$%f9cI{PbVRE&;si`ol1*Qp*1{P3?emg=DNJ$0@qU8l zy0?Q=x@q)DHZe;QKKUnN&9qpw59pe4XB%%k!=7-{QKoQVXDe8Lvw7<9>4i@So=Wo< z7m~qsCfV45OOq8nI1CIvh>Vv~Pb10@{@Q?gWkqXaB~SZyD4TL%&&)EI`~8-OiedHl zpjer{v)u2IR!z+nT3IKVk9`XA;Sr0l0?ThM8;*>UYTMf0ORW0D+_(GOk>sg5D+R(c zIPYI@Q6ztU0%wL1H&pr(OY%(K592uL-tONaW-k(lr}8jh zjDtD{87ORdb6cX0bg?D8bo?=$c2V9(<(N=mia=3S==A_+#aM-3+)!zsRv#05&FE!| zfEa&C<;z3cQtE>A*^rHF3X}$Q)b8q>tdt%32SenTRjvVkWIjbCjR%qW(86BIb+Q54 z<{xp4?2bWp|F;Mjf?jH^Mo`-pGubCE^!nVZ0Qzg|@yF^p`vkX+<1cA6zpqOCRcMaFI6n&5IGOlYYFk*dt-iM zi?+JKFT?S9?wo2F;q$hn+rr(Xtm?#)^zMB4I!te7-GgYmvZH%HiO=xa+u({e>a3}* zS(bf7)AiK-`)m+Y?Q^b<^CKdKw4T_K{&r}!Bj--)H|D^sCm@5nGsxUX1I}iQs#Xf< z2mgldqb-!d6p_1P%EV=4iQI(xVJ|w0R33*jOdSs$Q93;k-Cwghg?JvBEA!_`SQhuK zP`H$d$J9ry1oO^qp(~^c_lIjk=(Q%tbw@l&iy=)gZqP8r68(>`po8zG^If68^p7y9 zkTHV{H;)vBY|ptAK0}S$-gyrM-5hIakK3Xg!KeF^5sgHW)Do6)vV0BAC?hX|Ydl7e zn|!XUF(Z{9wX-p1y?6OTp5a-Pqh9!!h)~EE{uKMuLM0YJs7e-%py0xzQ^=gB16oNa z!vZ+8WeX`b!*nhjk@p_gbS-!Im|a*{{u9E>KOYEogh(^G3ipATgXF=Oa`YQ{^wNH& zeT#QyYtF_`UJHYk+IQVBVgY)!@e}1%&&z~Q_Czvx54!IB_iIu*3?z(vMl;b`MN5!n zi8D>LKM$07YfiZNzik0otTQykLtJhsrq}FQ5vHmf3s@65hzEQXA|tyWAE#k<1SCi^ zQ;aazq~3uexRG(=ZiIV#%$?Mz)c&yzQ^RL;==^!l8=#3nNiTi^;t(VQb`fuT zAk7x@IUeu2xy>fM9+$(fN=tW+nfO@;jtiD}wndE5^&|fi+~kJH5*G06*LmQYwZrng z$J+)|HxI{Gru2j*6+8{?yFn1Wu!N=CO=q^& zES8h}j~IqjNeBN!Q2JE2;)USh1XiIs8F0#Thh1^%r!rD7AV#Fm~fje;%|C=H{@(>p?68GKiEBaD9hhRPkCFk#K_*C zwiG75H*VHj)!P#mU&H7rjqVxxx@Lq?f2O7^X30Ldp1gJ@?~G%C7PmB&I<32!&{}^z zISllC+(PF;~iSb zfuM0NFzQ{Qf;tF{{^QB4ki~?q#GLiE1_w@{>4*Ej2zU!TAic;~e(U>?H1lV{YYkx3 zMdS;J4)pFoyN71LVLm~r6dNNKMt$5hh-C4ZxAM!H&_fm{75j(sw?U^E224{9&ov*C z2E`g~-n6$(VVG zhO&j4T#@>o^Ke5nKz;NY`79mdu+j?cE)2H|v{LPk&S$r})`ellWPfD6*}I(gvoj+d zH+%+5v{*`*0!x^-=0c~!pf>PKf>Ft=UMZM|d!o|fJH(jIIQ_E)FP!5koFxiH;UFf) z7!0dWDU`VjSoW{+4kR?k$@&3WxoAK|rI!q&&T%IPSZkzlSfNM|2Lx-|K(s~|o$y0A zx>x%xC0?BRvB7*A+vtJn+P29$`%CswOVD^ddg$-)_WZ0Q$1`*f!`}CnJu;c3FBlVI z(wdM5GvvnNwrEH1QN0h0VMZ>Mz7_svqO{ci;D~=xapjOX z>wjL%jTMr4fY#)h57tgfH@4S412gKqowqP+sxhxPX!Qhm5Eszk1#A^{G~@%cgJ-#m zY|!oufyf}ZXWRLOrRlO??D}k@p?8`Cg4z&4Z_lXtJ&>AX{!Qjag$td9yr?^4Q|cRY z!d-mQqmk=PCcJ+%JJ3(!vBdmW^e8@>iYWK4Fs15E38SYVM;!nCFwz^HxMurinIdjN z+g%o%V}wQb{y>U+bMl0^tFp>s8~a+-g;#LuM*)9wPxNxthn~36#~K9QM)${vKuq<| z9IeqeDcqQmBUp-to{So%w^LS*1tA>00q(i$WR;&>mo%B$)fT(L(u9t(0~H?-Gv3C+ zXaIF};ODz_L9umYt&Bc|i`8BLTPhPkqmXpjnsZQvS2&wxM{CCUSurZiRhC(E z%I+NsC14(}Q$lu@3Qd#&yz^P!VA7nq0}25mg}E$ZnW{H6$-J7KSQ)7T`)f0QN_8Oy zcox@y3m(D~ZGS@aX7DzHeIV!|7N73Kpe;d>@g?aTJZp8C^>y}p>ldLA7Dv^)!H!?> zQ)=CqH=;EacaRC`0TU#q6;Z8Fn0u}eVCGd{Jx}|^13TkN*v;vOsCrf|5l>A^!j|DL ztj0<=%qs4f+LAz+yz>@7iDZ~ zgn~fW``;P&K~h~j^{YclxNxz1kRF8yGDbM(ZgiWmk{VM+ND)`m|{d&EYF%-k$?WwXsxZ%$-}_s>qP`RB`7pncwug)fh}g`YotQ$Tw=H5 z0q_7N{5cDE@WaRl;*EPE!H`?xnQ%bE4EV?%rqD2p>J2wK6&cWObGsIlZNe#UC0SRH zZcj1at+n$fRvRDSi%HVYkt^X~Rc*x}e&1c`^-JTzcEX@i{=}JmkfaPj7TG@87R~dp zNToSJ+!f6~(2I>$02c}W(^qCPb@%H~U5{I4SF~KzV>|$vNf;o#=$6xaXJSGF^Wwna zMlU5>EPl(DS+Pt%ZJy=EHdu1FDni9@?7&isC=`d@C!>kbZwAXbErYInc~hN4tYCzA z!}Xpzu)s$yw#Rv0frtX3cgRKl4x15g%g9<6dt@RImHFFTpQ`#PZLj>b|D)&S2A(aM zNr0LjEgv!s%VZIm%qWXbZU)K!B43ykn1)@MizBHdb+caJ6Vx)SbKBf_2q1j9*mT?( z>D-=RL4=2NhG$X60Tgd9yfZ6`>xRBxrd;FK(m4l-jrmvUOBPDW1DN)={f(Xe>Y*s8 z4D~>74LhNqcLc~bn1w6O2QH$;!>cO)*4)3!x^odW0o|mtFxa`Bm$&BsP0>!e1b}|> z^y2PrNKU56&wb%+#~eOqsa>Re0<- zn3nAnFICk>e_dDsS3NfyPU>;lGFUXjj>p6lxJ{#auLq z2CWcuWFIa=q0a)mzPI4qei*Al%6 zuVHgf^C!}x?{0F(N8Sn3@v>P(?*sSWR}d)aoU|{TDB1`UIG7$-Y_E5R&>TE3%*4yawo(d}P@;5e zH!|q(IcOlBd?$~0;+Di0lkE6S@{}$uu`tq(BzKL{CSrtu&=o$a$qv|Ceg3KaaDsqA zK6OfLpEdplVkXh++zvzFk;qv)<~3t~qPQn8ym%=})c1B1b$SGWJQ zn1c~BlB=Puqu!rYg(UwY-XhN;>-c%rstF?p^Pf$(&DwiS2U6i>y6n0@4_uKO{p%KL z1Ndb7`dd>Br*fd55C#t#z})dQv#5o%HH_Fs%z1Kn057L4$R=cg-A;-)AII`tOl@lD zMV{5G9)t18MgKstFHL8~{)|N7VyGx=)TJ1#W0r*xzd*phBL@YO#Yh&^Ds#Qt-eQv? z*-W3cURD9eJxYgYOnf`R1*tzK1{Z-=%u{L4zck!nce;i)NV4N`de>p-Ge+)NELNp) zHdO}WfX)H+K53D*= z(h@Ww@xoqPEj9#Xk=Ip%m|&Y8(ZBVD;Ln7HkK1)5U3$3p7>}eQO^V_lgrLlND&s0Zq_o&_$E#2f7V0_ye6EWzRBM}lz!0IpCeGGwTXj;jntGpIX^ zp(6|T#y&xaWPJtf2o&H$AR`yMvk0adrlzpA4L8ml{(#B)5g&Cj_qZ|~y(?yL9 z^fr3CD)BHb_TaYlE$2{3&wJzkCu8{AYuu+@}mB!zaz^bz0^UmUkv<`4bGDc6eF{4N5cT{VKaU|Axc zti%JVB=gSuk>A1Sxg)&lVT{oE4%Qr>^jfid@b02x$Evow!(@{aAA6^Rtx2i1{|ky| z-i!K6Uv{8bQ-dJeLX0iHXs8+MUdRc^8qIcc%flmQd&Q&1(8ey|V3<|Ifxb=%I9^^# zSQwvM;y=(mRn;XG> zb|ksl%|sWp(&3R*D~eVYeWE61OasrqZRwDki-_qhpJ<_bMo6Qn9YiB1W|9f&6!ju| zsKPTW-;fn1nz94X30sKF8d|;5YbU#`@U@0w)j`Dp)~NyRd5nR_s+(~Vg%ZI!b+A$D zylnJCUb1&*SN+&x2v`|xF^;QJ-6#i0KU~|N=Cg42u_WE)Ow!N#y3h%u{!b+vTs=>0 ziZw3E$AYLOn}j=*3|po=s|PllyNH7RZ!%Y=gUos502eZOOf_j5(m4zH(aymh^>{1L zp}Z^Z;h@|WhAT8XLtBaOuU8Iea1_mvGE-EqYWaf7rc%pe-3P+T=&S`9R4f=)NBIi7 zXOW}j*BZnATX&1UJb(Wc;atRCJJ7723A6ok}r+CbFR!vAzEa zKOJ)EkC7buYDC%hbRL`XnL`1Jimc#WEe#h@+Yxa_s*Ywhf+ptzKicVH!MKYT?&G)b z;f%%iOKz@UyPv28WCsT(cI6wdQ_&tba4KE0g*QArgrb@NHM+LDS4^8DG@vA;FZmQm z+#eOS7CiEYR^4Z;#WNWMo!5=jTjvuygNV&W-~z7X7Ua|gZhh>#pgk;bpb%FtuNNQ!mrWaHjGjN$H%V4LueY2!)_3a+!} zx%v5*pX_n0#7BQ+MkLGlsBotP*7BD$xxeKwALgZAlboS8g+n6>YZ0$(bTg}7?wU1v zMb@cNm7>Eq(lV_r#cApi{lULZ5qRr1L@0g?=#Y_zKaVh&af`G&s|!Hd8EfEO`dwCq z@1|8RiF*Bpe3^7L$(G~E==kq#4cF)FM(lAl+v}?~$$Gj==~=_T-2kE8`w_?eZH^`@ z^|XVUt=`GNe6l$jPP_&FKpQoxSof)CK8uUaOlE^1dvD{(mX-7!1h$#EC)Uy6AT>z7 zyyQv)St%%6IEL)%1xE7^u{604Esz= z*ce5N!AXzxQ82=TuzCSiKjkVGe`}b96&_4^oj6V2DnrZLEa;k|W*(E=e#0;sJLzM~ ziI5Q~t`lqn+W){cCrxX2<XDAbeW!0^Io6GtFh zX}fPg9991Ko?rWS1-FlAtE|e4@5ut{tSEs}s&JLzh&K$beamY$U+Pwf_L<)cf0(?k zu6_)2+tYpmFtB?X2PXNl@dc?q$i16iHBv$TDuc3?mnM6Ue9Sg)&n6Y4CsIN}w$vB; z`$Ws~2?7uL-ZocsUb5Y1yD?I z5JC~aXl?r`CSIoQXr~8du({cH!8&lftYH^5b$zf@5`U)>E}i6)Zlojv_HdD?Uh&EP zo7<|V`o}KUeY>b)GNzW?=X>rzny`}cjUg>$(b}{CEL;Apg#Zc;RHFq$vZ(JJ_-K12 zHx(Nl{&5j;w43TYE_Df6{M?~ zB=wW(=urjerHdW4^5_gz=TW5%-D78G3mbu{IgTK+%2j;(0~8EJ?OJ8W>7}Qfb@DNm zb$nhnE*;?vAUJ-F{-ky}_;rxLxo2VHhl4+lmVy^zcNS2mwDv;7AwZ0_3ZEZQYJN&* zo^Niih9X_o2B}sMV9~W|VQoc6sc+|Ve9rMERRm8XMESs3Ec2Cy|3z@NM~O9t`fvM2 zc;L#o_v5|^syXyYxD2ElxYh&#*?NpvyWd%15{&HAA_4Y$J)%5IAOnj^GMIs*h}Mwd1nu-u^$?30p6}8_NUxyv8bb9$h$dB(f40Ap{1_8_BIlI zvV9z_53)e3uzbE~sE60cA*tCgDto$V0TN=$)D1RABO+1o5Jd)?w{oM1biudqQ`i`( zsm*d>J+_HQq|8tMTAwuI+XwrvJVIL5~t4n0Q2t>0RuiuZ+btxlLs@Pv~*yCzSJaY!jx-^$iCH)~?K)z|R_2^5D z+m?B^K~|DI@0_&WH9zbCKO1CzPec`s~?c8_zX z5-T<<($!(LzxA5f?WQ-RA^>_kp<5@-K$;yRvyJRoZ-j3-O%_`cCYQ5=$;udjkpqYn9yB1|1;%fH)celN ztD_(q^IlfNzEtKsGuccbA8;VI{;*CBxq8d`B1g{^4tegcjQZzWQtJ=pYa%6?Fha0_ z2ODCwwRpIV_ib$P0+)ugn%BNp$Kgc2E>KannPiD^h68sVAuunh^vq~W<`Q4(HrkF- zp2HnwJQGBu2JgU*#9#kDA1`Nro^<~W_+rOI#U&xOZ26Qu_=k05#dV{yG`Xf?u)E0` z1c8VsH&XEB5QS7_MO-YPS&~v^NB49f^*U7AeW=mrB}&l$qhw+^$KLyk0%&OhPo=7< zYmU;5_qUjoGj&^=irk*}8Rf$NpU>k2@TB^9o6VsL+0W+B!Q!`n z24?dg9}HzO2hBoI!1irk?}aJ$O1i^O^vv^>#$Ivyde1Auyz4bW(H2tvj#q;68>t9U zs&DIv-ue2vzEGey)w2uog|w?0sc7W29N7!mb~(;MF>BVtzk1tc$SqOQT)bU>Q)t}S z*&lOP@~5UpQle`CbM%UJBc$IacHSj&n2Di2>s{&D<|x(8gRg?*LyL0$?2A3%-5avE z8D8;+b)Yv?{>w3n9h!|FCR=xRz+K4PBXcubecPs9WGON+NY_n;KEB(HxH62l67CM{ z0R{&Z75(V|USdts5UKyy5Jq*@Q4dI&`O<+4CChNOFsw3^X2!0?)2MI<}f|uNA;F~);zp7n};GN>EHEx0!y}Dqn_wNHO3Xc-Y z9w`0t5*^&Hdk1owWi6z ztOpH2Q`HMPasMTaO2h?)I6w>esMhT2e%~r#fTa{T=Ozp_FrvyIc4hl_uQ>X4(16II zG|<_Pa+yBlz8Ym1r!#<8Lw_V}QzAfRDSc=;LOLT1cijj3A^U2ZBPS-A%CHSv#?QBj@6fkOyCHLg#5uBn5Lyicpp!j2;uTgVt>`3+F`Fup5=ZRPV! z``WQhTBKj-2XkFMm0{ku*7MC1wYvxIO2W<;xg^hLW)|{lmZo5%Rg#7u@${AJVTpYb`)?kUH(1^V7AF_`k)%=`&UDEmC z{b|*>RkA(*o$6ntqfKz(Qs4BgDiCq4aaR9kf0Alp&+iS9yx*jY_G--rCIUCP^_&u*C2EFw>Dl52rpCB*x(<9 zCx2bNh~^2kWPu)hB3^Hah05gRJ8QjJDeO{!c`qI|U!qq}WeN=Ux-)7UPdG9x>U7_~ zqY!?^X{^j+iNGW%bDtt;bw_cu{OpwqLJ!Mk39KI{`EI49dK%UZ&br-o6I~mso}_>r zQ^}BsZ(me3{UW1|t51}4nXcBH{4#ZTSftq-r78fPi+n}&+QF|LJ=p07oX(6BPnHJu z)UoOfTDnN<6IR$5w(QRnKb;O|ViqfR7ACK;k+}rK&rBORP??eGFxA_OC@B$oZ(ObS zapEA}v5bTvZ<74nnA4wK6;_X8nHyn9&9e}T2~Qg#6;Rp@3F0Gl%9}R5x%aBE=>#UD z?~yapst|b{u=qgw8foprX0bo6E+!yK-QPXT=w~ z{}kl1;EuhY=H!duJn_zXEz_+Nf@Rwv<)w=ZrP#6GKtA5n6-;&^J3h5uX~~F$vO@aV zQ;&h#7(&mB;fvW4kE}StSwApf!zN?o#|3qo7d1w2(&>O8Qole!Ndm7<7^G96N>dhK zfPT`>3CP=(4grhJW~!6&lp%05zNzi4risMRQMbsA8!oU6#|F!;VmWoN_nAT<74CuMt4=&^R4Z!|*nGNzaROnvQtK5lYZ2i$O3z%X>*ZI- z&rByjZn4T^h|nx0Ik%VnYEr_U%QGp6@J#e6UJT8wF(vm?eD!L6%gF|-1*4BIl~ATw z_mdLdIMn=TjsBQ~J-T?eCdsX{8K>jOZc}*6x<7F?nvhZjKru-GG;A?Rp}TF2wmExL zR-=zs;&|vEG;K}$M+3K)Wsg%h3fjE#;9P5ZeSP38J-k^Qm)&H47QLMHA$?R4HQ8~B zAoY<*KX;V!?oV{E8N7lPydzi_ENT+sn<0X==wG^IinV84A;N{N>yRP2f}yWbJb~2= zpuCG+J6|vWm;QAzS-R8Gtq`kyH8$c_c>94CE=?d| zqE@MPT}YA-3U2e(^GO7h^`yuLSMQ{WhZ#1^zV~T`n+4kF(*k}!%9DWtjMlYM|3nFa zp7Gs#EKI_4y14fX-DS~*d%ihjuaY6S4CS-H7f$Uip4E?$XO?bpecSJ71#A>m&TEW; zXnAyMbAQK|S8ZgrasBr4@eIPp;gFq{Nr?7!#4ALO!*RNhkUF)wM)p$}Yu%bI6X{E= zE6;%Zx6XHSF4Xb_6{ReLJ{+BGbjU#$@|TWBFfN^4+uvf$9^9eRa#mM-3rvp&JGav8 z*vr_V+ByN0*m8H4Uiuieu^e%fR{T9~Tl9@-CJTGd>EBOf(_V5AezH>9#|HclZ!dfSf zz%kLCYbzb>Qv;x5qTtcIriN`GMhJfb#&{Pbb?eUiIJOwpU`yX{LZC$z(mJ{G_4zs! z&!Kjvld7JTK52W>5hKFX(1+f>ha|&16!`okH`&WXk;DarNq-E}KlW3%J|KkoC8bDP zK0QH4<_WNfC8yfrSY>-R_V!jM%reoqlStik0#3+SjWA}SRq>QZL;OG$F~{-Flb2Vr%{e1^ zE&NDOPj(rZG18eEZ;~Z+4(=rX_0^dZN*qjXpX?A8Fs7QOw9RaiTqW9p( zwjSN|GEM1Krkf^qr|_q`#s&g6s>D4G#4S5LzSwq{XtsmxfDQs~6-EWY!!tz380%Dx z%T4NVQ;JAsBj0vc+RopoG;D-mNH@H+R+Th`o<}gE3B@6nZxOIu82h6h;@el%E|QeY zG=XIr6r*sTl)lTanyyj;5o|EuDw`INLWS-XP_1C5A$aC6j}6QYdBEL7GTixm@e86R z?}X{6o~mFb7S3z5HoVypq4CKWrvRSP2Hk?ydiRO71OvPoqf1^s`(+vDxB|Rb+1Kc# z1Z|?}*Z=P6_gd5yKtJJW4PlJEos9z|u4^>uO)#x^%_D}>Kh00OXsFm`l(-mt_{ey! zk&>FoH_qlkQ7x)oZE2N%jRqVFY}Pi{;4{3h$p{eMUMg)yM`TzqB%7_UqVY&MI51gE z=XOyZe^Z9BHQjg_2%Y&lBP+KzJIGW&p?rKD=TS{e`Bxg8z;RnIJ0WyU=IUsbL%DIV z@K&#RDSn*Hn|O(^!J5D zI^k}6GX6w_5C4K{UNy&`7de`sp#wix?~X5E&-E2!x&3L}I_ENypIRwVEHqAU9J(=! z0j!VwP=R`y=le*iP=fMg74e9IhLIS>PZ+3o92a@BCsdfum@YDLEbadbUiGvD2PA!A=T{Kd`4o=m4P!FyWSmmOJ*f6+88p= zLpeeYjm;^W-`L*3W>#TSyO$8V|G8M4`dCg)3%mnk_IJygVOzXy)4}V6iLI?qo;RoF zsNzXNkP)ztG`{s)^j^|_i4p8L!x2deZ8SHuWbSctgzrPP-JzbARU#B)60}Kh3oLvR z`qpy!i7>9`u1$Wb(-7IlJ^=B5f(5uf$3(a6`c$X2U@<{CXx;1moU#Bc7yjpODkbk{ z*5pRRT@D5H@NH*b_2+TLH>7o1?WB#jMEu?y(*?n$R5jybQJn(&Z@+GuJ*6f<8{?rj zVDM+Sxbrn;ge%2s0p)Ku)FmwhD|Wzh_yB_h%;^T_K@6lGQ*3EIkzPyx0NN1nMWN=t zOs2+kO7Nr!)u9ffz%?v5i_sppoY2ZANuR;gZaz=1Gs zkz%wW*j7*98S!$lI6{ZxwU1_>2J>xPl0d3R4wFA_f$Xr&9tky|BNK51E_Sx4<5%F5 zO{mt`d<{f(40sE|&h}ulLdY7~Q%%m4xRxQ}O$0@;^UaN&B;g(rVLfF(p0^b>)RNwW zCdBf#OWe__y9GDOs+u3@7=2nXLZ(AaKehK-xfM2l#uSC}EQN*Sw2&ivNTe?A6&?2f zYlOG|JBh|dog=?#{)2B%L&}$}jQ5w~JIE5ajm{v{3C4p1vYj&*edb@P-~JMM(I?5V zSirPR z2hiVg6%1Y*e5I~v8Q%V?ocJF&3H)?(_7o6dw32nHfZ7#&zjKic+(o!KSnknxwyuTR z4B6jmd#m=(Y!{8q2>`8)eMWhgJM-nS>#leXj4t^qK@6YPGw0FpR0#6Tfn*W=Q9Vwz z`lojKmG3SCO*q3Ar(kmo&bZmA)PZ;D9ACx+95`5nEY5K7nzf==LJV!`D519>+ ztCjbZH7iRn_mN82X&t?BY4f~#c4A^Q4ltGIS5$Fas7|xT#v1WuRFqZ>aKsevpxNnc z)!F91ryZ1R1?d+kX}GT|5%$mAaRothvo3@h_`h0I(?v^$zLlvtd z85+%3DUzS@AF4LUd%1qlNYL_vod588Y?Jk>QG1&8^Htpf7}mI1`b-$**n?QJ%F1)t#DM??$xcmk#jn!}&!v`7-Cr zV5i>8E1+!_b!!r`dLfN;Vw@vu_%d-(;asDZ!Wgs!B&pvAxRL~N9zpo~99(miOPH7m zpM0n+ChD#%%Nrg=v9$!X%aep{?zR;DWw@f&cUSlYE7eVOlt2^;a0^n%7z77x_I&{- z2y(NMo)itgtip097c&xm)ecc+dS(#T3la-=#yZ|?cg*2643C7_ef(}iJkSkvFB6LB zkUl!Vwv<&L{w_o*mr3wi)mpzf50wv9f~(YB)tA=Q!uis7pqTqDqMhpcHl5hIzy%sC z0z;X}vewYi&0x%Ou{PDpTSKQtq`A z3AoiL4}JZA!mD7MqR4}X2o51O$|lma3|g5!p5KEb&)*EgLm@wawG|^4rL^R$`Mmi$ zH20MvCgdxw|6^RlFzrlmcZKA1owx1HNnb+@R0O0s?VNvS#lFLn&t`+0+1X#*p%{Wt z>?bU`NOl4)cb(kS&&iF_2Kbe8d6MwVOIDo6%F-!_%QvAbgu!_DfTTP2Bbo6>C3q}RQw@Grd~fKa`(A&8ps zK;6j>&AEKFDU#UG%gSzX&Z-JLB0w zGN0Qp-cmt(u25#Cp&_KY6~`?8{$8uR3u%fbMG4R><_g(HK2K86PqS=Ij9yFx`YMU8 z>Q?efP+Mi=-}l0UZr#G){^#i(ZK8Aj5n~vr?VAG=3YsWx+F#yQbpI z@m(FbzapDliWtV`@rZsMsdXxm^TDy*liMmo0;Qc;XYLe;6- z;K0^5xhS60_M7zenO!3mjS328;9CUM50_ zBZ<#qM+cjHZ0R^)sumN{xh>^O3~TGE>P04Zt0`#?4p^x#Pe+tMhPq9DxD`?B4wo8; z$Wbe3#S)ia+2*oz4LzvAWPn1Zo#+_P*cD!JCmq!tlgluMUYalp#7?a@P*#D#MVMs(>{ zQ0!#%nqi%TcMy5H=+yfBzh+^8H~PtzCokLcJ+^W$KJPdH?wn}5QQK5gnjW(`TY3yS zrA*9pc$8o$#cvFs501QE>jusCBjGO7DH$9K32A`eQ9zrjTzU{2;Mc~B=el<;TLbg2 zCMVtCoCLmipaZc?yv2ImPbBqNAg?P~q_`wILpW#EL1B+t2u=TYc{^h+_Zdq@3bh-y zm-VD)&Mh7y6QbQ>W#G`Zqu2dUKV_C*luY+!>5#i@{UBL zo~?OF6Q&+5ezVmL7xQUc4z&`xKhEAEAiZREmY7gSl~T zd75e7WuxRyCv))tR^#`{73&^Ir4EZeN?4xc(lkLLuY^*%op0lr831m!&t+s>v~%j+ zU11KJsegy{kN{taVdECDVj8G?iDBD|-bGe`U_*tpc`C2x~vL?Yv zhtOc7t#18Ju+JhEOaO^_+Av{zDPaMw-1EXVx=BN*Z$_%rvMwM5gY>p?!bCOz0Lh8+ z4fL+c$7t>>J10iVhg7Lab~}N8+n2kVV$E%dk)Fn}@d!KsO15wVT=TrrP?Mc$mm#wE zSWmL!vntu(EWK286`xE5I({{}FoEWbIv>c@GTX2NLd8p*7J?JDvsc0XM50J)c$Jho zFU?ZW9o71E!Lzh2rh4@)W?DvX1wHsED2lcLa^0`v==BB=7S~klZ}^qdiPz4>`;SzF zD7`^OYG%o$?#0zzE<`mV57wLay}MBCOez}iLM)FtA)IDrp+W)^snZmH^r7?9s9Y5l zo22@5+)HJwC@CdThU1jAMQ zuYdp*oU+T0W^<+7nkf|L{>ON1#aI|d?($NMY>%FROm_2%2};`CSzy6~Tw~;tctoNQoJS{dCm8|tl>$NGvtsbuMR~mcN$eYmeS^?|3g11rffs>}k88yL8 zAeymA=wFLmCryCC|gtPJ#sF_F$a1Ty~@xI0d2l z5Q6iFbpPEDy20! zh~}U-R6~3DIe!!eNdV+7W%MWP?onm$!6_cXodPtOP!tZKd+%J83I*z;jUY|IJ!4Ecx_$Y-BV_>J76 z-28_`yM{aB$!Rl(XRZ_sdUMmQblzvF=fAc()1ZvoC8G8ujh=p__v+J>@(4ijF9)=s%o`pG1fx{V$b zpxzT8VVy2GyOPtG z>sAl`I`gsWbGCh-@Ksrp4vn!TrH6tDNYsl1_gk0Yft_r<%p*pzlaa~$%fDt$uYE9# zh{O92&P*T3(GMW*CzRQ%E#^~YU9;WH?mzamgp0U&0JG|}!{dRju}1IJ87dK1%g zU_CLcmhY24g*yXaQ^u<88Yc{?$(5WbcUzP&a}Ogho6?K5ibTejZ^Yu!OgAhsaMPRY zL(LH&tei>pW{UI!HcbQ`#>dpL>)o(o)!zYJUhi@Os)>0Knp^1vh)8l^n0d;0*- z1{-tv+{_qv4c1fv82h(}#aZPdEQ3{9In3%1{0gJ)9U_#!0U-8tJCj6`xu%eDMo?h0 zrgexzcGA(TkOHUIs))OVjwaM-5>XkUe=&?Y^Ps+5b{QMz!iCIe6k3t-pWp5&@N}LK zL$hgoYu~x?F~(n?nJW?Qj92ht+l07#6UWa$7@N^lfIad_Xbs-X>ZNhW9_j?fY?I$J zss=WdYJJU}@Sn1C5-YXrJO$$}MP!@H=lYd6e|h0tZGw4?jA21S4hc1m9`g#CP@hf! zxDf^M*z5~3qw!GUf)!)zXi@u5(Fji!ZX1$YCSgT2=#3z&jcNpu;Lk#eNr_i-pD{kA zOHz~|I@WUNHUwmH@vJTW`Z%0|QdtieO*;Nn4xw5PHVaK*7_NKBWvkP6RwH*}2@`jz ziK6Y>TtYBO&|T;`4Qkw#42e}o00*P$gmJ9+N3cIZ5M5oR%QDd`9qRtacvyeBTg%yH z^X>X8lA!k=Y{$A5KH$KnQmku4X3!(w^fSF)*Ty}r8>cmCv`>hY%)%0tZ554C&h0-} zh#6~4t6UT@VKLbbRQUIWp2y21MvbKrRRK)z=M4o|BURb0(@8$GaOi`zCNyw6=lw8_ z&=L#K8eiv8gz#TyHd(GbKMFxCj4w$i_u3fqq}Qr)@SF1}?IOKj2~1bexQbdF*1lS_0E*pR7L9 zAYT^{h4E5u4i$q9vqC<(#qgA$JSvL?MC_-n)(OC>po1zl#?Nltxho67g%0s#z$SWnAVNdY$yY&oBBnf1n6W4eb%E2 zG|drxHOxXubw&vzPcGe$D-X>L*#^fNZg2k4aNM|vMqvZJ#Zo8HgFC+rqjh&=4=32+ z8mmrYGQMr; z0m9Q;w;;Dno2^FlO46;S>!PaWOT|+|g$3diX!IbkBgIX!L_&ijAs98tS4*NYI8~!J z94AckaguySMf<`KhME1TF^Y2Xmg75ueZhaoTO*IoQKv= z>ZPw5@HveDZNietW%EieD>=w0*=pms+r9R(P?_+{d6qO{9d_hp_r=t zH;00486UZ>Pj(Ybp%#m0ov4R*-NC?iN|Y9D$!}X>XsOIH4ud3(+~IVOoGlexqQ2$7 z+6!0qs#dEMf@TX9m}>@5GCFjjG@=d7lKY=g4_?Yd;~6M5+xp74c~yp}8VQIQj^{*4 zT9K{!=wIGz%j>dujaL086dmp4ZiEa`2=8QkHgRq{lzNxR)t#`BFy~}{_bHF`fp&;H z+E3qfyU6?w01L;5f)hzed!Ub(jhMsD{H6sK+bHS0#ZC7BsFfz$`ioP2z&gW4n)jes z6>$V-?;)TRdkvnO6(=~jFdM~w4}O41CPsRsI@Sj=He*hx3) zSlZf{(;_dvKWQ_@`6+lcL{)GCeH0Lz>`pQD31ln)A7-Cuu8o>DzrLFjS7~*+4R;B% zS#9w_$je>piXBIK!AV~!TiQ^Gp*44wTTHAU!w1e_Y@3<|+h{5JB7mzJem$l2#w~#{ zKPrlW>@ByI2;mVxm6wtCYFy5Amp7hEF9I()*lsV1vj&1w{2uh2Q*g8J#1t5_bm&QW zWF$uhuuboViIyH^w(Ysn_N&I*s#(0y*rr(P=|S-Ql@|5qX2=mLOhJ(1DP*iNb&t2U zyY{b+3(3Q4_@HHP1w`046YBykjq3-CRaT?lxhXW$WKwOvb0H*W)#f~s%4&Gxv8bB0 z0z{DR4D69O*If{2x_F&_q(5A}0vw9Kti_q<$J}fh)8%3QO=z`1w5)F9-bVH63|FU)R0|kbu))AMwaR@9& zbpgXGx};ck3A~2=7SXM#w&%?f`9U5_>NSYn47JqSJT&5^AJhixSTryK*C5tX7G?$i zmWO;w_E7Qx35r&&x=T)Kh|b*1&blQRJMAqw!8++e;^#i3%;*HLo9&}r3ZoM|OA##> zp`HD&k}3C&3Mph(@lD5XJy~~!L}!exi17aTD&0LB-=A?(R-heaZY^HKVnt51tbJ7o zvo@22akCm=IdV{`WSb%X=34&_bamOn5#~DOwqlo=IT&-)xkqyHA)2ZZ&?F>vfFqt=FSBX#qbpJ{aK_x^jv|K z4eLvZatQ6wFW9d@pD<@$>oWTeH-|FtDE;~gYWGKyF%=W@dMp2X{TE2C zd=;)PPHDQT61CPRA zw(t)N)rROa&>3s+TkW*5DlT5*Z;=4BH5@kuFY7oG8}-l4gh#Q*3|zK8AIG*hdfxY^8!8i!k&W zM;tiq&xI%%Pe|T}Ncd{ca55@{)|M8!Dp3um$2^i66y4PO*>|gITzJcbIKoJMg(UmFn)@SUD6zTssRy;T>m7*fV0_0b4nlY~LSOyFa^e z6t#o^htk&%Y>TPBzpm3%+WZgoOb7?f2e>^dftHx{DXt=SvG5jyLFv|EWx>z%8=_z= zNaiORv=oxzq^L_Kx^##$s#YpI>C}T@q$ErWOd?uoGKow~5!U4Drg>>s07eV~uL7)` z$MBt*m>gXftpHPX_!rP(Fc6i)OQNm^`0afpJDHVJ8e63hmnWw5|54uZpG+D$E4~$S zc55hJOTHG7eFywA*cI(bOMnlJD_Xzj=Mc0ya5*l7JNpRiEthIfMz7hlE~|huP|SbT z(Z1S%F$Xz@sKu#s!IsTXBRuAK=kfX!7OLw1_iBiEudUb&CBp^!Wzc6Ezs#TEvKXa1 zB3Im6@A`XFetm+rsF=i6N!o!NC6U;kvn-c#3(KzvP1cel+~a?H(~~Oh!&x@`GR@Di z9oh>mhZAOm-Jv(uMW`5WTm!P_nj&CGF{v*rq6oLsWC3m#5Y7JyBNIFSpZV_Av6i;* zGeE=;;YCW*ZyyXz%4E6EKeFJE+v_VPytk7pvxRoXk8#sii9%(K=UD__0)9`feX5e< z0R^{~Q4ZIvC5sq|F*+~~nV;!_Uuy=!ZHKmnwVHPiHmd~_SuFautrB*V0mpE^BndG1 z>W#U%u$25}d(2LjvzItLNI&g`d0?Jd3z3oZupB>YK5(*XI-lyxYLPLBS{)B%c{R2I z?~uYq?0a!|NUu+VO8E^mPsxcDu8|rfdA)0y++g`7D!OxxqA}^{7$CzyW6lUR8^bg< zC3)W1i1p*7h}HxTFXPQc@>hjux{ztY{>uljG;0gb5{#ClOh#>MwUkmUlROy;7W`EP zK+e@Mw_RB{d5L_o)SwM92Fo}+NxKbv z%5ug8F;@^XeegfX-O_<$NFi~7)=ceG*!R8VpG3`Zqr^TIa-3^(+_d|sH_Rq*c*fd> z_)zhr?puMnX}#pGT57MYLbu9~A*JA7tBNrY^RHgqwO>3=6CKN()~xtrAj3vktpp!* zxD+=1{*@`v9&WnR0syWM;Y_{AoI8?I_hKDw@z36mI>=jH$H(|odv}8j#?-2T8oRER zew|~5g?fCK8(0w}YEmh6zadHos_c)ktyg7MSpV728^Bs^`sXKMDFa_=A{QUWvKFj7 z%2yMjJWBULk^R=C#xUdENAH6gQYIf~Ri(O@ z5sikgE|l4^sA=xN3A{Ug-0dY}9^IJs zk<zm8`}h=LkaVC zC@>9G(}u)qpLhI}K+IJN=KIx}WJylIc`<(lSg@Vh$@yJoN%R`%D5I<7@EPDMpD9oG z$aE2D9USQ)85|5;>TlA zLit_iWCARE&AxcC`m zsr8mi*-|jZAp!pFm!)OC?9ttNHfC4Cgt6bKaADSGZP}RMaBESZZ^-w1iDJ6ij2SPs zBi#xR7Pxs(poaTPaRp;j70QAyt>6Dq9tXjF{$oLz$ITR`U_K>ws^!Y6mKf8RyFXeU z)$VTe2L8@VapNYFhBNo@tw~To?~IDJoD&U}<`$i!3IYs(!B#!%UnP+`GOjHeCBj?y z+UqK+s@@<5(c<~`{@?`0iGUfUnkgpkDeGKEv?8{{trJkaf%}T0PtgsVw0>Si0u0}S zVpvS{vPJ#0QE7#G$M3r*Orq7bkjse&5;aKNV$+W;k_EJU?PfLba(PAJe?m79TjGme z95q zk$4Ipk(OI>bAygF~m| zK;28@B)yazoKtuGeHE_K5ub$Piiw@k&r?i`n{aqQs1C9ZFyZSg<6`pF$*kzIYP2kw ziu8=91r_4Lb6K`%ye7kW7(%c*i5hxv}EQe26y(i0M9QbRV;d4Iwty3;%E$RH87MxDNOn9f@Fjqk&1?{#B#eP2UZCP!?C)Kx zLFnz>Q=J;S2VM-EYzvU^8=%1r5>{gPi+GV|kJ4|t1nu&@(z8m_NTSAg zOP|)YB@#W#Ti%*w%b78z^p6R#VJJ3=fact{MbvWrjNGcEd%NZWBq*fHDSeUDMylC( z5EzwK9o25yWVi~({V=&o>nKauS^khSfEe4~@bj`}lfU{JuX1VI)~3?aNtOR~zsSJO zsjNUvQez?GO3KLS08-ON`}Y!K#Od5#Bb>|z-E6{;BVDv({GU*L_w5p&W3hO3mNIY; z{dZHx%XVSdy;XWvQm-n_4?M3KfR;W;cHMi_{-CupQRnwIJjZz4JQKi;wl2}W9K8-- zG?Pi$5-67ZK}Wd_6=ng;yU9Uab&|VIB73)$+^7&&r0{#J>LeKNaW(at%@ z721@XC$?!`JY3Wr2;Ga$rsZp>)!*FZ_C>+qb?nGGpb-UGqbs5cw26AC5L4^{T2TX| z8PV~-DX`LV`o3@w8aJUTkt(^wuvYl41$*D9dTuzb;mPRy2t`!`Z&zWGiCe9Ojf-;@ z7|Rp2Dp`yIOr!_+?kvzY#4swCsv6uv`Pr{5+j)<_%8%%b3wu5RZ7Ect5}aY(a~ zZHLa)QQ(d#4{FStOiXG#ZBSy(WY|Z-ANT+D=CLx;KFR8d(xg&pXSa}RB&fZMc~Lwd z3T}PCPgf|^O>%5W9R*|3y@Ug8M4lycWn9#&_`Rww%SJVd=&j$gKM&(Z#l~uoF^^u8f3cX+B{$31mwx zx708nwmX zq5Qv+>DRQ}&dqru!CHqIlVXN^Hc^FxDOYMr!?8-wuBQihNTGDeT8a71o7Po%^{YlB zwU>VF%Cta?p9h+wjv6SHu!Y|A-G)w}UwpQpj5khJa9hPBk?wDRq6G?m^V=Ll2Sw+S za32|N8i_>xM57@#3t`(AFWL1FIdFc5R~^w}zNq_qJjV@kQuk6ksiGP_Xf|71pKa<$ zp0|Wc=0%8=D4iH2Us}>HKOq7~zX)xisMLU8>T)7kUw4;Lb#r^$X$bRYr?Jr3O zqL87ij5|od)7Pq`%P|-d9J&GxY0=;i(DspH8XJEXPV#F$In+kL!w~a%GjED5%PJP$ zK}NG{{zSnm!!w#4OuFu*!4?ErZ=giWF*)jFnalun@gQ7c9P`(Oykb-^Xs&O5z{6Lv z;!xROPJEhi)+VT;Mngqb9Lgq23oLCkM4P*oK(BT=^m4!C5!t}Kf6`Rq7&=gOGV$0; zVPTw9!g`rgkVmDD{z1YzDR=V3CW8d5O2(%yc=od!k(#rb=32UIVk|<2@ZWd%R^VK@ zjz$?XzGj!*=#4Q{$v&)`;r#6t^dG83@h4M>c<$r%!Ra8^#L_^!uLA>=wBk&(p>)4Z z_p2DX%QkJydN$Hbx1}p49L11T`j*C4kYP%ysK7=2hZ;l@lECv;~E@=)A+DxkVX;qphgt$-M3;Tq~Q;(CMB@!E-%Lf5LYIMmx6p0@gB-ALB;Yp>bn#0OV% z;8MkCS+Uv*vtCiXFU6U=_KQ_X$sC$rb-sM(jByTibv@b3y*HGmOC22qy)Ytc7~6in zVey_KukZaDorI7Uqc>pkrnNtgF*N%oGS4HgFIf04K0j|81{9K z((oyW`}8z>4?2^FEMgXAs~R3bZWDjQWHg6!RYljp`gogE9Lbtf77S`8D^g%f54=M( zyk_kc8PnA0WwGdq4f6mta4s+9o=mWbcqmZd^qVAHSEHNATW zIs=32t|$z++Lu42T<{WbdGDVCs z2ul>U&)ILL>_AGl_zWb-)I_Q(Cu+`TS-e|HGJ3(3lz3=P2`7^i{Ycjv-?w_uL$?e3 z;Z59NCz@ALd#0JGY{ag-O7&P(fRVIsBuj+sjfv2oX$shxK61z{B7hs1pj)a)VG_Ot zG!y|IH(TYVwzZ}i>o~o?jUi1Gv8{#bW9tG%Ju8J&2`8AjOVd;M*trK7Oqcp6_z053q$zrJaq0V(--R6W39Zv zkvf+2Hr5N%PE_X6-efzNHo4EDhIvoPW_cf+(NXdC>JTw>_G8ggY%;AcWO6aJsFkjY zRWBV-{5$$$;BM3(XXh1q2}|@13?Doc^G`03uj9a`>b_}gNeu_`QtH18t0qhuUY?lB z>oOY#`Req^iS{NabZ_Jl*#4Il?baC^sFKK3!fP&9R>EB5?a}4OhUZI0NsEY8xzIm$B~$szbg~Z6jEGS7${8Pv{MFG) z5^PxUL5;kgRnboJ!i9UpKEBm_KXVU${Ou~wG#!UND_9B_3jlqTU0@}&jFev(>Jeup$Ioj zs=FsEz4plj=*$kM2cfunUVUil|3y{L9hoL7Eefmk4=#)1T9}TnxEN^2pb_-bP^&Dejwd!^u9WYM0(MsJc8Dm)Ce+cr*-+uv$17X;^M);#uDyWIPI%5V}}V6%&tWg@x#3 zAE7oaQY=ZoaFmWv4XOqkXdokiS5cF*HEF0wrjjE@aQHb-H0d zzS#IA!s@DNZ=e+w&H_)xa}ExxLlU2s+0x7E<4-1X_l-qmemiLn3-JVSzCzwruEkHiZssu}QWf9ab1G(KQPe-A|BE_AL=6qh$AjW5^01`A zFqOum2fqQ}8TwPo$m{GSlrFu%UC1y`s~3@886N|$vq5Hgm&t-t>P~4;nFebiUnS(> zD8f@>I+f@yu#v?)tLw43IRp-C691#9mwpexo|?-8v;#Hqq@rzE#iTBCg7Z@_ZvGX7 z)d)^Eoeel>O@;OW{$vO4y+H@BFOf55RDzj?%;vtV9P)nHPtqx;0OI+gCQR(ay0Hb z)9JGmZ*GIWm*m+B9iL9Ii45GOiN69-gRoWDC)Xs6JB(q>ARxh{BT2f|a>L>1Rbqyw zUeeZ+MOZ}^5y#+=`x@<*pE4{MfZ%eq=9Yc?w!wSSocXIUi&_l7Ww#iZ3>u`Wo^Kq8 z1ED9r7^S6o9vUOp^TP10L|~FgD9FfA;c+-xgwS1Xd4RUWFg&_IhN0Zm_6`}MY0GZv zS>4@(ue)NxxY(XvUKgy|P2pe_vgx9MCqNm2(R5`#ly^9~JQUlBlu0N1Gri)55hZq$ zB0M0~Tkr(B+OPk5Y*3Z*CH9#;t_$~L%3DA=tXs^LJq1SXmNNrqCiFoSETAB@fLBB; zWWp$~s7dAdIj7K_(MR%n(dhLnri^ooxNuVWi&!W$u0m5h8jF4kiP!0ey4xNqgZte` zSRH)1J1atAmJ{PA1M<`_USn#E&{Fy z(1)$0T8HF#yAhqh_{3i<9oNP}6E}7FmwO=NX8To#GQ|#ibABe4IkD;y^yYoz73qHufEcg)?nJVu`g^p;8=WYytjX=(G5fFdS`MsX7hzj&jWPg&_uOjP4V|&(@ z{;8&bvlgrblMo`2{Iov*h!!AAGYH3ZnzEwY&Poz>$q+^IP*Fl)4fm%UPFU4)g-k}z zAzN9{@;YP?_30CTM}rno1KcBI7Ez0nrp7S#kV3;$#Lbs*&4<;Hmj|%H_9Q=fBc!!x;LaLj<2UZ_lHlB|SXi+%#;EdZHSrK$XzW%p?H}M@`z^i0f7}-!5}soH zu=<06$zAS-x>F&A9QgTodWs5)U8F(E+binSnSSEC{Mi&-<@wOyO~=>tcM`t-#5vD6 zgswoWxdo|~B@gSiHtJG!{?swofBJ=y(JBF0PGP&XHZ8toY#1x9**^womQHwL4we#Z ztFdK`el=}zR6P+5fIADmNg4d>ztmMA!+WoiC5vKcG!Dx^^uLUTIvQnA)S9%Xgx!V9 ze1o_K2GQ2=BCo%J^wyzE6NQ?fS9?zZ%JHl6t_%q$l@!i2+Vjtbaj24!$eA$L6qIu! zOWBbew<1?OXbeaDpqQ>eZ= zZhK1MYaNLhy`_F{B=lyx&W+hD^PT}U>*wykVT-LE7+7t*O(JU6#+BkYG`$V#Fa%d- zwqipc4HZ04x4npE=6c424d9ss5(fTo1WBBcnKFr-w_`I0v5j#VXv!Y4ms)AbuOvV0 z7x${klO_0;CT$dD8{D&wq?_hS$q>5xdOR_g-N85AcvCVJ6&4x5PC|cp zRlY2{Kv#$Q*`Y(gstM$Pkl~SMq~Lx&s>NmS_61WRXB|bm$vlX90eOsPR~fj*RX<+x zMZDmzwSgPUOOYm0bglv~EJ$YwF(_mpkY#hgyfwDu(G$vnYZ-DShvS&7DlSdAdQKw^6C`gIlwJu$|xllLE1bb}| zOI45TNC?^_gcZzVz?PF8M~Y@l(%dnI?YcJktJ@5CQ4oArU;GK#tvdEP5O{xOUi!co zL|{E@n*XdjxwyF15D3fyx4Z`4aj}JurUn)Z)1@7SJ#4``{t|bO5B}zoi-0>;8=86w z*(ihVb*pC~L=_M_@nO1{*xJJK;dW3-=`jG2$T|mHT1t6}`WbUz=wdVre96`&+70zT z`|g*Os^9SZO?8?OvPWme>66;7{A+Ke?)l&ub$YSFp0HJs;!UfaDRPZ)^?5Dm45Cn*mxzd_s7uT?%F?KT%Zw+>HnH8FHGbO)j{^+yyWc&g1DK1KLuOEW$C{(Mi1s3rLUtI%$t2oc+>W zJ~u#s^Rz@bO}5{SRg6YWT^iHE1yNzbhhu+P#h0A<*q|EEpL`w*56@#*po+M4yX>7=_>^cWAlzJ%0Zy@CYFRb z-kYyYE!DahjaiSG_#iICqvL^eDQ6Jm2P6ZWQX)lUm7(9rNl590pHD5T*?29hUUx9l z39{6C=Kev^#kI(~ZS}6+-IguN%&;?m(3&b%X2J|l!S9I0|bO54O;%~CSro; z@hH;8;&)ReaE;tsjvnPZh+=Y;xGdOfNiwQ-Cmoa5Hlz2mZi-DEb^sOlmwmbmD_8r55MO>gXHqqhsb>MwGpDu0+L1-xr-bYSVQ}zO3!yYAy!hWQpP@onS zs4Q2}5blFw!Mg2M7rw%DpoNuc!2pABEae8G|7|KgBF>jD9}=+I_eNOZa630&|E{>j zc4_dvt&jPLJLy_Mg-ck9Zmb3<%mB-f`;V!!$R}Y%#(3px=Pg}UzhfC=wOh6P>8fr8 ztMqXI<`H2X*A%_l7+Q5A8?hZREhUo7?|b(-mk7wXA@Nw~+4kYqGa{1q;-VS|s$N8! zZ&Cb@kadmh4V*v95P&eq{ICDHKd|lb@}R^I-CluC-tnreD6^B4 zC|E3J;@7B_oJ!JSIgqWj4c6iZ^$}en(QQ2s7u0s{%w0reLA}m3mWh5S-=^Au7VW1H z%3J8P|Ks``Pq(B<(T)IzQo{*R0B%`wxPf0Y=S|cP)jD6>tLitwo9@p!$w#! z-1-&y3)psXp=5per3}gWcR}&z*<^QzPhU^6527W+UcN`cVw1kI^7Ny-y4*zfy4*-B zMN|VXON%T zWNw?;6$D}`f3gm6Du6uji^t2&kf!%?|EM?G*dzg&(=QyIY%S*QB@%LSNX{;o&%gL@ zNZbff9W1L;y{DMj)pFrp`d-^(!Si8H|7kQ>r?4e5$UWBOSz2IJ6hF5<)r49$ z@}NA_@Y^o#-eQOoI5G@g5?rFZ;b$ey(R9}s0g|i*&u4a&s1i!to#ThT!r3qnygw3z z)`t-O7@jIoTPHGQcrsm1zhEV8if%YOw;PParBG}|wEZmdV%fo8<`ocNeod2&gJZCc zy#vIInzK4WREFY{F+A=phRgT({jO-A&Pe-@N3+H}{=37?g0-OCiC>>$qk z-pAbeQWc|DfanRkm;$Ps{3&n4uYN65Dl6y9UjkVK%q+U{v2h3C^L4`4D-NQLQnSX0sXC?w#LTz24Xn zwJ^V=QM*)LZe?tICzZXWM;?jtH>Q;_CL4u06BzsXuPMXuTifZKIDoulQS*iN+VC!q zMUgx8=x_MNNf10(UrXau)PbN|pnKxTaqD9PBEK3$mw&iy@cjt6JKF|=1Lv{<+QhBD zb~+U_!|aA+y)SPBu-C!5n$9qK~a*iHfojOgM-Ja?XSi>$bF>$ zg$ahyuUI8F=SIFJj+ysaSNu)7;7oEX1HgMUJOzbT$!zhMR34NihL`>^+w$>;a!V6} z=EDf?XTZS#%pE_kZ){PkV*Je?_nXD=_MCm%;oiPY?feY6c{ieUV3;}qrx(fLcUtH{ za-DsKq(ZyAT4>I&!k2uxPgqucZ zJV`OAET`h@Ph^asLw1>0$~ju(Xyh^{7*$WQFoi5{lf zS@~*0ecW`BjV9XYl>CCEU4K5urRfx$6d5`dLclcbzy;H`_n#I%V1NGrx$qY>>*oR@ zyby+>x+QGI+C&oZw4q2qBq^$?AaREvY<;*h1||dSWDEHd?w}%UrY8cX+db%{D53b? z1PNX5KoiZdofe>bj3Q|q3OC>h%yZuC7-PH>3dj?L1 zsar(S8fX76E#}ru_seQJwOE}}YAHQr@75p=4Fk6hU{76?p4e*xy@g!u@58{>2IZ+f z_tss3FWJf*I;q6hl*fYk&R7+koI!2L?CMUADy+f!TlF4#+GvH#*=?!eo^1*&xr8r7 zM>%L(Ym#@8RsqCMXL>i#;>6Cd%yT5zylXvOy*S)vX1sH3P$SO68zlKfse@E%x3%h5 zdV8U8uqlDci|4x(Q}*0@^B3~siAuK^P4Kq$x;ot?C)i3{Rqu{X ztni;5Lz_`(KqxD#R*L~3`*3^7Ls9tl4WLX#m(0m?q_e;8Y z!VGT)SPiF76nS|VM%^Gsed9aI zq1gojPT);IXP~q5NJSVs0K7ICS=smh-IKV!t=I{rxo$c&RJ!FG-PON|s(rYP1fJVs z!~DQ6$CSYEWt7>5?Ge5m1q`dTZW|Z3r+NusU2_%!-*6TJ4mQ!ZoSs{rl%rB{${=p8 z;rI+DVr8&%FGr!FC0q`9rg=^C&rl$nd~T~cE|!H*e>idnBS!ShZne{dM?Q=(v8ta$ zw%3m4Ag%nSbLj!tr7#i(p_C_yb(r?Zwr!}4nfq$mG`kES827v$5aXO{hEl|7D3rAp zWoFI5>qu4*>u!WV8;Do?CErAn?;Et_ z#p?=e8;{BklZk#FChi0s;3~J51r#@2KS=ZfN7dtsdn?o=%rK$Rw*a%;h|}_aLr0v2 z4?&SlZCf`YYRO%ly+Y&7Z32Z1x1)ojWnvc-XfjMIxRsyc8_QoxWjqB236TN79+6Qi zB-Br@TIGPM6RQM=z#I{I2e9X^nHt=s)AO&%O{!<*LKxxChi<#HMR;=18(2~f<(~vg zJHg%p1-ccn2$mSV#0*ce0DoQ!uW>nUf$P{nQNG69g))$+v88}G_N>1sdgGc4)s{KJ zQ)(zpWGj!_*FWtrE_pyT2R@IP0-yN#=7ZU?@|ubn3xXL}EFEOhYs88z+!M$S!4cYh zo-%$>PNy$$AZ}^HVQu8$!O>n$tYK62jkB`Sug02dRMo_W8sjoo9G|Ps5Rq=VGFA zwn}bUq2cOLyBfMj4J%L3YRm63kPvH!Y$yyRImczKSE_BEJ)I_ss{LPq$iC$7czWwv zq(+BE15gx1;QXH&yK+ygds!*wldPHk-tM-FG7)f>r5Zm*sS1QNg0?&__7HeXa_f8b zXgs~e=qmB|KYVIXa(hBt48vaT6@|Y}X9PyL%o4uF>8`Gyb~jfos*^`{+a;b!vO*Yg zE!?oqb(gC!Sf^*oThmuSalA+8B+=4R$HX%+cn^2k)1MZG=};RQgNp26kRs%z#rP+( zt7Q%{jH6MA-2;8K{h^P%1psmTnlwtRf75-zG&; zk#5Co6pXM`V#AdqL&D?ZYEA!_g!ZV}bYvsc6J7zYPYMijc*E?Ak@fg0oOtkA_2#8|M z%$JHn>?*nf+ib_#;IIPpi?Zcdg$7hRL|86WcjRO=bDfZP$4o#xugNOkv~S}iZP^If z{3FeaoK(fi5p_+uK-MsAYnl+g+jG01W#WOE$IGq$i?7br#rJ^i?|*n5u%av?N+K7j ztQEps`Ppz=MT6R3vo(CdI5f(X$ojR*uIzhQ5|j!e5x_R%9H-1B7To$X{*r@-EOVpJ zm>i>V8sM7G_+bsBW}T}03(lI;*hk?xbb5(KL_Xxv0kM2$vhwG*euz=_LB8q_tiuY) z%>4T38=HQgrD0#Y|4Big5=HH8zd`dqQ;ROqX{2?_Exm02G1kSO?A#&VW}2J-47}Tp zh82Ssc+ksx|W^d7RxSe{q^2b)07p>0Ow5wL^TqQG-}?^1?J zE8=uiztZr7=F>R&2nj^Mw3Lu4CIsYkj~buJS$CZqJ(~RJtp@mWVwk1X%3sn zmH725r)xq1cPl=tM%I~HlUnsHd=}!&$#`To+N^?`1fYEa?crlAGP-4e%JvDOaCeRQ zmrK89f$BT6tjV6_whMXlcj5bM>FTi#>`C@ZgVJGNm$M_PHoluz#ffg5k?X?j%jaQ#LZC`OS(efh{F>%%X->kjiJ%IyD=218<}|n^*E!a< zhyQ;vs&w{+c1rQ@ZQh|P_H+ZWfmLRNW|^?;hWxy;T~D)H9fc%=)}qcpc2!<)QLsh{ zE;D)%mYdFGCW^60$++^pjUwZJS!|`^3QKyCEC19TXrYGFGycI^h!&*j5mhoyWUD8Q zvp~8m{)j92W!7GYJ5r)97lb851nv1B<4R`atYGt)_0sTxMeL>(_7Tfbg*5s6pd@&( zxZU)&c`POYxHua)r{>Wwxb1J&4W^0MaxaQRk0ysysulOge5|C+d-Tl%^x`TwY_F5R zPG8Z(oaTHWiqMWlfnbXle=7F6(YayBe8mw%pPKH8JmlS74x9`NuOyOlf(0vdwlTE_x0~-Gy|10I?jWwb6AXH{)z^$z< z{%f2cB!}7&7!$b1j$8>;O!z1r0^a-pmiN|l8UjM@G(W7ro~Dp&XFl^&-2AVL?^N_z zp(4Fv7uvBLpj`+a7u@|2!eqlcaNtZUCm&oUiW~lB(ea7FVKm|rC@JKnpS{_vD-SWr zbZ$MTEL&vfsS032U_zn**@Ca#jr)Itx=@xH%+LbEQSHd?8n;Z{VR75)!F?zJuf#U^ zND;>PQNsl!KF^d&g@*6-P?&VKR%(<>ZPQqz0<_nnp-t7oGDu_(4?H$I*t;K5x7In? z;*-M@x7}5KpC&*|E&$WOA*J(74u9f78@vB2TWHgPvV zs#1=TpTTlL=ser*v|Ca)UOVjpgv5p%;@K>*D0A1(n-W;|Yi^=6EOq9jVus0oM9l?M z?hULpZMq?n9=^XbzM@lIswkb)ydlBRfO093K-*h@+99Ema<*xX+C0qQswQu!@BJHP@R-pn zx6n$-rrUpgXqNuX|Kg4y(G#B2X+_%cktDN&8PRq^w3l*MIyISTsboxIVgViJ9XHjN zjA$L8NMvCfXtLFY46K2_;ffgcy^#7T-i&q{=`5;GKMQ+gR7BtcblRNKx13Yc-}v8h zU?=u)!}y9wt(U(y$BBG2joZ+++vZ%A{{pLKLWVi{*FX6f^0UZQA~i$(A_*Ig6Sm@mAgBN2-#?nWhO>!u5_pDA~P>WOE*W7${ypQAa=3HVA zb;a8tfSg`&zztoZ6f#1(Q4sL5AKWt`cak0cXVdgk$ zWk!tvC8`H?a>7U`M^zsSf@NpVryobCpm7b9Vrq=iQ&$g6e+LG6w3H&M6{8V~4cZ)D z`z|Jcx_l&CHS&#gA&WRbwJA?DRcL`9IGW$(kujmR`Ji~3>5|VlrdeBa&Pl7H{>J{+@DZN!c=q2V4Cgkw$5+0nfj_4M;AVH#vVE8%00}>U8 zmZQwx(HvoIHUIPCe~v!FwK<^=Kn0x_2qtD<+P#^nEP97U!#Hyugmb zbfPmu_D@Ke{venZYFLa;%2eZa7FvQvUC}rBGa8f)Us(WYKn_;47Ed?*HEguB8r}0D1axM0fo2p#tsLpE)gZZuqPJ=FmnS_V;#n&6t|Hl8VtX38W9t!q}Hb8n@>oEuEWnMT|>(( zw#Sa2tRD9m?8+s4lG)3juu9KXe5? zjfvUo{CikVye1$L;0GN2nr zP}hv(a~qq=|GGqFp4kfX|BOz7`|T@3G8U=wviV|bzSj=g&JGVD&jU|7r!q|vpl04d z)>jK^ct*Tgv4_p`q#c-Tm`YT;V~fp1Mx_3p1-))?P~-VT_u<2CxWfsWG0nwcA5_sQ_~F~dK_*}#ee4Y83{6f+VIYrXW{437Q)orH>=UvqgmD!8hvIZKukE|vOo0@;NG~lAc#i}@*TvI9Y zSse-<$A0l7MNimVO7*4hS%+U~SM5&y^ET=;P*=IiYo9DHV7A!rTLw*cWJ6v#m=^J{ zP5c_tMkf6$%$y*F!d|otV;6I2iV#0yPv44|cU%hl0GSCaLfuFEPH~@Du-jqbahni* z%Jfib_QmFo-=C=<#$BOaFo@;Da^Hnrx{G~ilxQd8(vsiao@R%CFcIRX`I% z0ICX_n0N|T_zE00WuwEsz5PFjS{_S7J6 z_hYsN8SC)S)w|;uc%+u*V3(tYA;;VpP<~c4%igIgJ>u51)cjW3-b3|TKRaX^?KU zK#JCr6VAFn-gg9%-WEQ~_Q0=9QCYjSJje!6R$M(3Za4l#mvVc9;W1KM$K#s=Pf}`0 z>1jFcTU!c7I1cN4W+Xc`#rsZlKr|PkCz*;C8w>QYZ%{95T6n4T%PiZK?AF|km)xc7 zEr(KSkH<}!fts^3-d>KyB6)+ydu1N*BN5!Tlb}- zPX*cYsn53oobj#5PIZ=U3B*|)_Vbb3Hzo;{w9 zy7Amqsu$5URJ$U_QkoYlYCuYD@5p!`TSGH0?EYD^_V0A@{Ux2cs=DF*`H67zUP1If z06TB{njMDVi0xag{o*+<`ntmyN{MN=gkoJYP<9bpZaQCX+n~PP5e;6q@WuCs$*I{Z zn1B(lUnC%p>yrto4e9H*4vho$Mkf^C#%wmnvYUtr2C|nR!X&Rli!+1#R;1b0myM0# zjNRu&&nP>58nZ*m{mVjkzy(yBQkJARqAJe*pb7hh=+AbI@47-yHF4q3i@rva#=fk! zi=h00v+MM6#&Ld0fMgMW{xm4kFPi$^XbCvzjwK%FQG3T1fS@~HnBM(ag&Mzs(DPPY zsbs%wLgC0a626OFZ8vHzr6emlhDENh6*cFY*{hFyLyrWtSq^c`O-RAUo{cAfslArB zPjs{NXCEe$(oG^5HVvCiKLTweJ^d`9W{5|T;QvvZy#pX0%ZCI!ovwQWEPD8#&WALc zUS$Sbv$vg_3wb*CK)3X(d_BmXevkjl=AMHg0y(FH;>4ZxMeAy68Ml>E6-MxUifKf& z;2#NOch%F%1bD5683OhfDc@3Y*x5Uee|ZNAcx==xBf|K0&QsD)jog+hTvky#^}D0n z?7)0_#eXBAeU`_;;P?H>ccn-dxW1BN2m)sYP}8qn`Cl`QRQa8JS5`}PTET*e5F=sT zL@tl|(Z6O?kh6v$p{SWss<;%BTAoHkRt@O~hA6t-(F@6@7|bRJ7lG|qr=334GJi2` zwiSB?`+0#39g(~od#MRh1FNKN^0ihL?*Y_mr50b!D zncxsK(bLB=K#BgVL#3OFU*q;3x&SGBF@xj%&*1D0|y3?=(0TWi8AEN2IH44lwFy(T**jm`Y zpTBmR>YpCK?JW9U3h_PBb5Vgbm^bBcOa;ey8sRI2Mn@GKb-+Ck@WX6V0EVV%Jb!P% zwKtCgmxJE7+Jl>fWVQ|nJZk2^)aJ~fTqS>5{^^~c#j#(&|NAoSqs+m>x;JouYqA@X z`}i5}6dkd0!935^0!*RYh?>j(J#cp&|c?cAI}l>nwlvNP?_yW;7%sr zg-4NiUOxETtGtGccn`WVzt4@BN7lo5oWs(qSCERoalTI`3KY@6rl%3m>)LuU##0x_ z6phqp2~A`|10tuv25>O9>z5^a*7UL}dqK7XsXK|tX8;%FRv2|2^&TfQpIYe-i4GbJ z=>WbS*4i|GwT{u`MgF3m#36!z-`<9zgXiYJ@k8jMo*iQsVbJ}w{)$Umb|ofyNFmv& z9D+*rv=s=n?i@kf@H?CQg8wIZ${&LM8VNRHLg(k_qE(QE$Bsw`5rHYG2A4`Rg5;B5 zVCB~)-+fvNfnlyG6*ZAKo`qU+#TJcM4r9no&{$aQS6_laRGWD9jCmf1l zq80LE&N9|-)HFM>Ibz>jNC2yFWt(!&4ZefyuiPKEp2^ws{;o(BqsvcE#$S@&yz3cz z$8Tf(`R!ameWbmT%>?{lbIx2T0Rh2A!^IHeE`{8$Q~==peu7pI&ijqiYk zI{_=m6<#YOemeBBHho6Hw~E^vJmdBW!;8e=JUz);$~~F{5LY_#&$7$s-x$-YA)V_C z9}AA2<(J9E-AQB=(r>}Pu`;?m8vb6sE>a|3f~cd=XP;87uVs~wL_|}a9kfi3kTq)5 zZG*|sPRXUPDo5H#_G9kRf`2_wEnQ9Z&RcAhejR%#Vh#u&5v<=NBnjgc_(9(iu^1W6 z;^)@Gg5rSWEMXoL zj|ZGiUMhdC6f&=8%CBRZX5*FACKLK<7)SMe!Sa`Dt>Hu;Oj>lf8Bn^>pZ7fK1Pz@n z6JXf61!V;K0kgJH2SCBNB5!FLc|OLXVfILvgg)%sRXPn!W&!-MQNroWqJqpV7Lz@a zZ-CG{wpONOIANq6oa;ZG-GY?Md)RyCzvJ77LG%H*! z();vA6cnj=iG{lD=DY9@n3%!CHnl0WT3EygC@##%+JV1s?CR8}llZ$BITqe}asz}2 zkSn$9(DYW0wlyBuK6FwhMKpV^M^z){4ih{5;5SCZN^oNPq#S;*?w99x5;|W?vFWta zYTqNw1phtEUiJ9PmOZR)LvOBiNDE@_uW;u1T>X&(LfP18KA3-llj!}Au$9K^tBb|8wm zj+#i%JFRN7xv{u`SnJRSvg~*92@W~0eeVE71<`Cmmn`5h@D*5bcVb%=@T-Y2qw817 zrugjlH!vqbdUPTNx*0|Yd|kQZCtmXOtTVEZcOPmFh{+B%FywAcEEUW-8R7}Tai{pa z2i60v7CINnO5I|Mh16h(wt{)~T_cka4>>p5Q!D^?@ALoKiz+LVmAhA=P+Xn@S+m{F zW{=0(7_4Y`J^QeP-cS7PfYVhw5LZtvEVtM-b2-cejWn=LhbXbcMeX!^r}#GA1ez@m!s3O2UK@x8tJW`Tswzcx)JjH`=x9UOovp* z=k+TntVU@?By!-T3GmQ+P`Csmde-=zg>h-yZYgO>#iy?>GIrACg*fhHs9fSm!;Jx+ zO#R%pQH2^<`jpj(8};Ov?0QqGK{TY@&7sg$z^!%&L@D7wUa&nYt1vHs;t2MKcc6rh zMHYrjlRoQ-tqC?{p04&RyVH!vM3J^N9atDvP+Hqg|RH2oGA|<{i|o9e2s#TaXqqzA3g{b$#YV zVyMMuj;2{VQg7})^0ruS6zo@r0nXuzg$pLI=-41U?)%L?OHR7o5^_qH^ z(JpiJYJrW9*FX(Y(M=K~mG851O{u0_V`W|Jg#p5Y8a_kyH8u?r>m9`vkSlPk=)pVL zc3l@}bl&5>>*R7|q7~}fVV9{M&mld_*GmCfOYo{Efl~DL(JC}QKoe$m*C%`KpM*^P zFsHUqVEG^9q}Yt1+sAA@p0))sxIc5V6@uWEQgvtFG{85|Myh)+jQ#9!X_9#!B>fXJA0NOvI?P++!%nG}O%-1Q)(I&}T<>DBpM6po`#xpf-8rgHjCqi>+ zDZ5fnRbwe43BE4OMS#t#@XrU=kEKRjcC!tIolb3_;mHf>)ae`EN&cK6%X;y+qHasB zLu)ZpR$38y5RHCNQq6|LY1 zj!fZ<2V@v?o_!`BW3&*%;udvk;3>!0EO8Tb!uL?r07s;(hUMQ-Cp=Bw)gc#vl=pfB zq`~yVb7v)f>u&_^(1WYuwCQyZm638DT7l{HI^+z_t z6CE>LHU^pP?U-*cJp6}e)gf|;?e(d7y&<~ey1>BbH@ddn{OVV8dN>a_D2cI#Qd2V$ ztdR3Jg4)_ex2!Wz3?z$nHT-u_OBZ8Tf@9>v{r<_qRv))k20<%XB#?bOAkwjLG=OK$ zKikz}WV2e(B^CyT&f7EEFs;CEe^I}`Zl%nh+?vbu%;I=YX}1dS2DE)Qv|m{CGmQl$ z+NGBOk&+v=<`J#JH%vLKZGOGTm%N*BLSxppnSNMT!~x3jRG^0R!mBRz9yK;&u4dM< zLULnBmyRXJGI@epRyG*P8h>&%!B9Vt+=$OierUJ89#Cc|otWwd zLpU)A7`9@=Pb zP@6Yb?~ivuu`<60+GH+j6td^RBesLphOdNkaZw5&={={>1bY`?xu2Wsu_&f(>v6u0 z%AYKCyQ0`;CeX8X%>n3~6>U?m-b3g9K!SGSK7D&1toE1M?E)oSGPF!If=PcQoBBIu z|K`#hHYp(x7|_|ow8seV=WnKar_YIK->|wr7^+B%h0^@baHlUp&mP&C+u3&$ABeJ)F^i{~fSIkL^+pHeQt2w9&86VAbARkg&tzk?X17lpYxirVqgq;-GYfzIITf zqNou?Mpa~_?jf0icv4g&VjvMHdysT1^rRDXz%aOH(=Cam_875~9(sZE2m6`k#N(iS2R# zTmo;APYCycJKJ(wHmW7yMMcT(jCsP1SO2@B?D7yTP+MRgVJ$>EMSj7ww09X7PI^j? zxf|i`++U;56|>+lHD-5~rZ0v?Z&LMKj-D+@H}i{)_Um8Bu>@^{8N4^O=)%7h@K&1` zssK(dcrGc($MB~PLMpXtL7QB`^6-XR=>_pwC<@gv>%E9ECv~14k2*o*M~i}Y9vX1{ z=4IU5xmF*8;`=B|6|dlLhi>hN_5Z=99jpS+bizN|x_9PJ=*~N!Bf!_56BF5z9v}I!V_*e;&u9DE_LgZ<^ z)kMH7T(a?@9F=d2j&@k*BL3S>kjC-yl;2GFbi#9vKha7>_>ddOBIqBc!_@ksN~!h#`aUtgP&!ZYz5fD^k*Y z6ilM8@%?l@ZyeZtB*ZKB2Dnjaa7Y9Fq0g*}S*isYu<0A9XV|lZIBM<8G7&BTE<<3> zzJCQMkWE>MzBXO-*(ZRH7dasitrm?M`aNJV43};S{oI#3dcK5vcbfU9yj?_s)8=!( z%GsclXH!x{eWH-LE}mrTt)z0o@;^}e*Vhdf-XX%W0>k3w!cUAUHP}To{1XfyPI@IH zt%p8JNJSaJjZ<}z{yn$)KyfR?5@qw!R-xOQ3Pi4YrJ@1WY9C$^umyI%=s#fBHcBts z)`x8yIUpftrW`|GVVN3ob+c=@=B#aPAV$nz5nQ~}#5)`}&H$2EI3m0>MmGJO6TGoo zt2^~FdfHT&U|tR1Uf}S1te_Hhohs~gf>pUnH=E=`lEaZ0XYcdBp`P|4{N-;bEL_G} zv+_|mCecXeQH; z**E^z%j$fA)y=l~A;v{<3?_{?65JS@y;kA_X`q=)axRLmM$qyZ=71M`!a;o^vt=1< z_#E@LcS+%sx&T}7x&IY)T+LCpBLLi~+lDk-8~ccQhZ@lCAZM?rX5vg!P6%Hu_wfNS z%(J1%9;WjJ05QW&2V$<8wMg2T5xArc2PiXcNr6Ys06{>$zu2fY2Syft@Pk=vG{%(T z#jaT(`^=HGT(C^uyqX}kl~e8S9^YOcM{DU_qPtfbH>ox+NwKVw3z4*{2%guI{YicI zU@@KiP0L#EU0MY}EghI(92!IgH1H!98sM9w{u;X}RJtT|wMT<+#6Vu}(wp&xK$zpD z^vPV*gwYp;FSK<&;wI1rH0*ZtyN)kh4aY}Yw{A$Jf0+}!14~adu?)P;7@t4d(fEB5 zv0`vgOK-oyO1M|TWjbTt=mobmSOb<34*q$f%9FZtZBRX3HctqW4yGqp(sF+MUVga_ z+q7d3Fxi|QqlyL6lg#HE(D}D@|L2JfFP}-1^&%(dJQDGCnf}8>fAHP@<6TMN6?Yt_ z@8y6Mi*Zt{AO9|OLi1!d6H(l9c*=j}QL8i;{zeGjt5K++2?_JZaHbDPNi*dMHnc6? zHN^x9gSp|`9%>bjknifQyCFl8X&zPFyh94~=rM3IN2l{$U?h zH#w1;YPhV73C;m?+w%nSFW~h$uz+oe?kk|SuHiRhU`0qt;VQYO!By024D|*UrWt0k zTDmNRL$6r1F~vc07->Ub(3_-PQdKZ~<91&$S7hI~iEV~shbIuK-LSoTvd>GXtGAG> z^yX`SAGg!0d})?n!4pPAs2se~1DTbVW;?o=hlrCWmB9U%Knr$-r1(cRti|&3k>|gG zWst*dz?mOm+tiaWv}IRr$Ehk02|6Us_N+*Lx$=t})zNp@OmWsJmbB$|ni5mr3i|?1 zjViSo)DM%|S-qRU7O5NYfBf(#?tj_$Scq{2`FLt_<5j{0bwvbL!m;sQFJpJgLFY7pfS>Eod9YClQBP<$ zt;&ci#IL{_$vOA|POYf;|^JDijcs6H<9c!cgye`@+X4lB1w z%LyAyS|}kZGBXu~r)dgLrPC6jU@Iy^XS}tDB8e#~d;%=BPvI>nT>4;&>d?==Ctkn+ zf@IA0h-rF}+X0Frm!YdvczG7+y19Nc_$T5mt{@iFHEV>T0w7oS3Q-8`M4tC6&A-^N z`+A!a(;bkR&;!2^SXKDoeopkg1BcKZPwucbFAl83cgSw;Jc9vcybv8$JVr+4@aU;TN`modg zma&1pb+8ji_QTK%k!8FxirvS6OgZ?Ro= z1ZR|xH25-x(UD|BK@a&l9J-BPOertLZ_+))U2b_~5qGC#%jha1T00EQcd2Km5~dU$ zK`Y>l9+68i+kqM{!9#*4l_tiVVT&k6&b@}R~!R~Z%iwJ3J>pJ{RVTIepZZ2L&IMkIPVo?4v>gM?Dd{!9(!2r z*f{ip3XaK4(6Q$>7Wj-a@-EUvvQ+XzJg8Iv5~@!gsQ?Z@*6O0bq!|A!#-h8vO=Qvb z!4R)u<7JjGV!vmZJ+{?EO}qWB`8=Z9L#FmU+O6&EUk|Odkth7gv1`5ee8?$TmGA5q_ zRh3b}98nw_ZkA_k&$#J`w^nQf72ioHknbN7r{>_#xu~CcWa{`uq(#Bnu=#l+aVW6; zw0j^`YXFB`Q$ZjGda;S9Zhxk)bUT>S+js?7VWoLUXQ|ci2FaKuux?}RsAtvcWWgaC zsc+m`BtcQs`{CwC7is%Jw|*y{7G7G98m@dhxvb27%c#VN)2hi1Ye{NleJ;6c(5|!^ zP1^DLjg4KpicN4`+|~wW#^Rv3p+)~Ntjc)6GDqy!{Er`yQC%RBo?Yv&yW{6%nq&b~ zDFu~?b04_sjaz4mS;Qgw>M=u`GXozO>tlNkj|8p@RdnT3&4q(nQg6X^76x2(x9J$8gC+*>-s zDhU`8fYrwxZJCptn}<16o{G`he1LmStO3Ug_5lj1=yp1v8Bnk$kqi3Oi~Tb?xM{x~ z?dMlxjeMO0EcH>+@(2Sjb#Rf?=2paf(tXc#3oO+#XPc%ywCYD~n>(_t_UycSP}NNF z6Hi0Uo^s#`lk%ZpsQr3Mkvzm@>Xt`;1>6J*f(4cR#T$je~ED4 zjK;_~Or|)9nN3Cha9r%FiPP-U) zxJ}C?76+F=={^W{L#B&L+@m6EyOfMSf*{*QxOKH5xD}p)Ru78#h9?q&2F~GDuQaoG zxPjO=uw2|}dO=)Wyis(-wc+ZIOhUt-sRgC=XOS~BZIAqMw46))j`d+obYOoaS3U89OG?b0G~(3 z0EoageaA9zv&8aRbvE#hh3_oeFYYx<*9@YGg!b5aKJAQJGP!Os0=h96@V;8h6a4fb zmjI|Bw~iiTrpa;Dv6tf$_9WwO@Hl?I*LkmlA35#s~a_ zj+?J}mgwQrYzD}S=`$WY_ur^*ieH@HPF972h`4Z25r0G)qzdyNVC%A4ulH~pCP|3m zUw_%IdeflGb~HR@3%YJ5jS#vyv;TNJb0du~Z!U&W1-FDs{z?qicVWz8i*$p*3iZ@+ z9pmHZxbChg_O9WE#>{rUu6y&MNX6<9+ygecVDZp#J{SvWtE0E~4BDYu37-quI0|ml zLTzo#?>zKPC|hD{jp+xk)1p2||50dHTdqV^IgW*TY_EScNYeC&f&aPM<=f7-kpw;J zTt!jWOGiT;8utE*MIMTF`29{s>l&7+`Fjy%KZRyr|pgcEkcne}*_kKl>FD6`3+ zvyIt>J0;-0hPOa9W79wrKGAjD2cNmbOCZ{3R4C`)!R%r2oPfKbiBuMGrgAqA(7Spm z{>OZ!<<~8C;L|(W9gR$V(MiR>!_F(}tmE5fU|z|M^Ky=}J^_Vw;WcZ(9;8(vu2KY_ zki}a;RDP(TX_ya?auf!=h_f$3FOEJ|{%qT((+gb#``@}W4GU!?T-&tBJE6Q!@qB@RQ4yQFBVRAU;H=JFx;4GB?D`0V>X52W!gOO{Lr}S`e?nU5S(yBTdF0Hj{ z_vxxVQ5^R&{i0~i@l+kYp0X}zS{8U%A0dC$4!ENVm`PJe5sf^P8<`oJA;db5Mc0e9 zY;wXNxPSfGFu7ru(@EQGgaj?+aFBf$ycV94B@g(#S)(-4>3sI9iehg)@9QhIizSgy zG6g116TVjIYV*2ndfSY02PTj>Y3q5d=VnN>>PK}v=Q9*?Zm&3SWhH5#c*6{!2lyc9$^(49KBM8?%%`z|wgw8%?I%ZF!`y<}i!ZKIM~d#w*l= z@&p4MwUEo|IPvrM)mZqHE&V=#;F%kvk<=SG1_AwpjVp?lCah8B z@J_9(|MpVE4_MP!?*2R)Mq3j>TM)LzeC5z!9{po&Sho}NS9r!6sm^q5S}%(cJb89PA1UJ4|#+A8gP z9t7Io){i|_p2Y0kQslCIxK7nRPMOU-4^o3H+dchW0Y;rfOs_8s+*uxEbk# z(QD6r*fY2NJSm8kTFmU9M?k;vnb9`TS|x3~s{yz$MsmOJ zC(NcdivvaxXU;IzcMU6S)~SPI9H3;W6E1M=uHD!CD&8c^A?}MDqfX>qB$*=&9|6}Q zK@zR!svBrvAgQ#Jt@5Fqm`FjYRsP>;q&;EVK4j^)UNQ(LrUv#IF^pV~?_!S7)F(2; z!`HMQ-fvBGmUo?RMQ5|qBDK3WG`ZS}cXAVHW)rxrlgKw z&^Vv*&=Hl~(|2yG$lc0)W@>L!Jb9%n#(8=<66=hZlRiHGLIWy3M;8aJ zikpmNoTYW{b6jK|GDcU8r^_GvDdNWASN%}%8)%}ByJ0?l2T~!d`S0*g` zSOmQ(G@%VxGc?Q_BY(q;#ylLc^P+m+2uPxT3180)3!~1Sf>JL(!7})E=IPz+c8kc- zL>PCM0X0{a)S`&wC%sWBgZ%I4XvW{CWd73ES_`#=oVlfE*=*k+wQyAhRVynJQ!$eB zD>fh@2Cd|sPS#JlV%Sz_I$uaL#wc}OD~=xbk5t=PF}z61(99fCER-FV46_V^pKIuH zjm6999E}J2Y?Xr<<>)0?Uk_3UqWq}Rll^xl878cU*K~NEr?FSI$MGy%yz@gC!$OdO zkxh2WoEuzo-n+imGN6~5W%7d*^ajI;gC?J95RzmMe{T)n)CwDs>j@=a4aXUtP!W|8 zGnjAWHnggq@WNAD4fQkuY^izM2UqrAl@)LLcPuWA7GwTKcgLa#iqezbM|Y~Jah1l$ zLIK|70_xf|$lN4^5zdUK6r!kh!k|IB-Iz?YdFJu#%1MHJ-;64+{XC`Ds$b5#>tB5k z=sT9=MPRz4a>L#8)$h&kT$s&A&4$=JY2ts4GeBd22ba(Nf3dATaahz4Q%^g`1g zgv~Y8;y<<5Gx2Tt{xsP#1y;v&M=zG8F1|$BcAocGns~w!p9(Dj6z~e&JPYm^BFqwI zB;JkZ>BU%=qShaz0G69HNY0%_aK%W9H@Z;ccF?&q=GC+F4pGsOuKa|y^(XUUtQ@d| z&NZaP->ttydrq{5Gli?H>JR4?5_MJKX%xp_OU)Ms>n8L3_y7(YTD3fqtsEFH)aNZU zUvTFOh4mSqSt&k=-*;9*bkwV!_)ylUx1;7lGww1mKiQCWk2HXBA#cvOP{}I~r*)d> zCFjCV9Z5m?f(B+tRVbMnSfsSLoXTFxhd(jsPrEtl@&N_1d@LkaYAmXU$U}Yvd@e1u z=y9@>WHMR(_`YR6XG}S{Lbn%J8$LTM4fcq$O~VFSJ%fXHFWkvsIRb>3Ak--RmApR$ z-sv^0~XwFRuJP-1FQo5F!lyRUIFWOia76b(#2Jv2kxGLCX3RU##1T=%=s!eLC9 zmi~$9qMS{kI6E%d2&c3}>u+PctRJQRISM6L6_)+aHz6Wd{L>}=BxB7#WN*BOmewdV z%QP%ErtBis$>A^}O1YANUt07!Jl**MC=4*=$qQB!CP5 z5J@B|h+)|ln&^4n!&KVfSB>vJ*!3q*B85?Xhu3(;^<#1EoYN~-!=?`@S2-Kwh&u1% zr$8gEGi!Q<)WIMEC)@n}IIwQK)9LY}I{=bFp1S-hI-dsw#s`*{zgc4!u$_ts0+^Lm zgLrPITa_O~#u)8jYALx!P%Y!8QvqYaBPB-B!e@*FBb2=!WB_j_pNB!6$?UKukun1I zFo;%c$G2=Sq>*r6whAIVRj(I~DL^M@&bMZ7PO+D5xVSx9wR=IU!I{LRNVTj^qh$ki zYL`GAR&4m%)vQNc;W4)i*kiJec)y<1lMp5@B43%b_woJ=)PL1Wy%*@_2`EnWs^-ML zJ^%x^XmJM$P+Ck*ne`kSL(lTdlE=tnhQCqvUZiSOyNHzEuK!$O!x*NQ?n5kF`yE2` zhdwf{U8gB~5gxGLH-2th%_f68B^s%*Gq=60_*)gIXk@8D7YMIIK&v48r-CjK6}+0c zMtF66O-PbBFpIw`Y=4`ax{#iYkGK7){IHHi&F^l3>tN~~j-{(2;?7Tf+( zrrkStFDLf+&5!UFgshit3C6x0T$-ejR6O zqBxzS0{Jl1*P0+Hn_a~uM3CBD@+ZdIwMcUpO5Z3s|KVj#T{eXSN4$%}n~SA64R`3l z7IynD5o|l2&6s6Pc^3>5)k^4=zl@#&sE1^8`rAd*LaY(S!A?jzNMAF$rW0@w?Ubg?@E@(4LL1>SrfnqDe$J*%>EEKzn;HS{tfi7nK(_j z2`UC19u{Q_UI;5Xv33thmxn=VGo@e~zh%VY?j|QiV^Q5Dz`u5+2n&Xmh6Wkoh zjBB}priqy&w%I5IrL;W`uJtol#TuCx1cD|vBqa||A4#xl?R0QXpU`8FuO`&l@V)^f_0Zd)MD5Skj=mWu8kAzYRsA z&@;(B`)Vc2BW3OCxFKaHi%MC}WVDXXQ2HTeHG;hQWgR~L7cM}+()vfo3xl_G)eUHRGI=UbN_4xROZU{~X@DDfuite{;ym3kd;3 zSr2`|@!nKrIT^t{1kd-my$JPAETW}GLcIp|iGG~ZfUriz6hqWiU^x<{SlF$qqJ?-J zw$5)BV#;)RFaOx0F^g|Au}I;=b2Hm$14r6~R6s0HZpoEYV3;PbEb)UceBZ_JJOIiG z=f=nmbIutxbxAwX+y^)Ot(MTV&j=mC{^PEDrzqk&FAkR0l{MtBSk-^v^kQ1;W>Mzl zqlEG{I0TIG`q{ziLifb)!}ETrv5i;87I@`kD#95pkAAOn#;5wnR2hFn=KcSoXGt2_rg} zCs-#^-jN-y16yjS*iT^TSX5hH`~C4Vw#eG|G4g*h1rAJ&;UPFd-0TAeJ|^Ba39DOh z+$W}8O8VWSG~OuPu?s`g4AGscRnG1RC&gPuip%Tfy zs9n!9E`yNLgKsmvA^U7m!cQwm4oN0(kmI(%vt0K~wP$02h#*mij|_FmEK<;p2T1HR zDDXQyP`QAiVP)Him_r%t&jc=RJIADIc8Gc|s{ieqcPYf~?HEJNImG1$X*+9wuGFPY zE|Jrow!*J&@0!I|8s2+~_3`zbJc?uEgmd=ZNA?#l%Xt>@GeZm(id7=|P2}dnk?>Rb z9&L83wD7%ooO5z^B>AJb))tsrv}_@5#)LJ6g7G$BT^oO>*6%wwX#Dg4uvL)O!Ym7s zRrp=FheL)ii_cnV+Y+31pwI#POi6E}FSiE9qQncy*nz-eS+6uDs9g6XgspJBO1G+~ z(5)jAnUoyF_vG7A>+aAcFSO&?NvH-(W~KUEgWfS?EY@&(V@+Ke z3`FIt5~P#lteM;#R?}X7dqO4X-V5w~w@K`kru>XZ)vzT;{MhrJh&D*AsUnoa3I1F2 zl3_HUiI?$9g(CpuRkpoW&dCn7-UqLCOV;!Tu}QdB-Cv$2ET+&$`}Y;PdaX zT*Pzh%C0xx72M#ScO=W3^j%I^eav6Z-V+_&nD`ecHmv3nVW;KynP8uL&{#o(+InBR;tTb>@u()Z;#Jo-2 zKbZII%2Nm%kTl$se#-F&Gxhn^6G5|YK&MA@PNb=;!QI?4D9Y1jO(H7_Ye(3rHB#B zL7JzjG%Uq7U`P(#f*e0gKIkzaHQ|YCmBan^-8ISHYGJSUx0XPO^fI^&>E#2lMIbUg z1e7A_(MP%x6(NJ}M5;K97yxd601Z@3P10)$YWOiv?p^}wn~;hu4X!Q1M?8ibBn44t zPPe=hCG4shuA8_Q-HNuj<|Cr6p$K6#1FnjJ>!!8)yFQ=YN_<8R7H3UDyf28lb{!G< zBOU#Km-YO1noHC_%0=3C=2U4F)+r#CRL&#`koNTuuhp$?50PL zU%33nn1x0Y6QV#ocgGWGfeavb%XwyauxYE>d3>(QT-n!m@i zsyjxt2s)Oxv!Mj%h&+gp3~cxmxdfCWc$(B^*=sL=9A2!36+}8j(7a@sB*yrDu`EzD zIr1 zhC00xw%}QVXccuWOPD1~NXwnz>R6S;pEMRi()(X&B$$j|xVlv<15F;#AvatlW8JFx zMEcH&fd(ey7GF%FywhwCKh|$a)rX8zy!c0XiEw~3)$7W^Gsvv#0&)DRk5Hp8TVRDB z-kkpIVS6^g?SA4}5+}d~tRc!X$V@RbluJy2#W{Y|!8EzSk{y%Qpe!%6-2Y>3-!n(C zpwid{-FPg7Jxcsc_<9?VdN@f0Oc>Dmkdg#J+%6VUEXrfvma41>@_I>W1}Y}Ix)Obj zOs&glRDM^TfEzTrEUx@R6msj4Yt)+5Y7my3OBcJa+XlEwt9Jg-_zWJmWcSQwf9gg= zdnW+@SPQ={V;|;wrjFz}u$0|U*53Y!-{!V1%5n0D5x`ye-IADfe5mHq9ZT5n_%U0~7$E_6M`Zx*iuKgXvv z7wOl_nu?qtR_`ysJ9k`hZJZuC)PV7sAK4g1ou`RQ!?uVgs7DRID4uxu(H`1>suCs+ z*6LH->AXtlIvSXeXlg6-3wZt67_27RSPuJ`~mtjEG zql3~|yYUq?dFx&4B>&J?Z>khkaTjy6`QNqZw$L(oCvDUI?g*j#PNOwre*!b)abfx! z8IkguaG;&BJmj)<8Ra*o-m{etyuWuqxc2a+@%iI}hpVV7@V`dkR(Z7-S(d<)q`|v7 ze6dyD!V04q%t~@7i(APy-+|?!S@{s?NFH$r?l?+{j=s_Gj+s>@zu+RJE}v<)>!!hW zBcB-xM*0?Rck}tSdf5!E7EnlCn!p_XccN5fU`^A5OL{@L@oNJvRl`>@5_E`KXS0Dl zZU1FdhppMoL`!mgm58GBIQX|!F$poSk7nlEJrs)hqbOPKYViIwW_c@r48og*lihc! z$UitqVSqlX+WIkz92DCTKgdVxbR}+#CY)Z)_yK2!Jcc%#+`sBr?2TyuRII`Z4fRv} zuOZ^I54U86* zKhnQBNjbH#K|1FB=H&5AFMI|0YugEyGkrUj>3Y9)q$$N7RaU28zb+O>-WZWm6u*mRa>>sFghn{+oUfG*V?5mH8)CafW8$~S(Da`K7Yx?{t?@sYZmH4Ko-)|Wq&yil6=3>KD%H-%Epbl` zKy|(@crEsQ{?-R7KaN@lmA%A~IZVPKw8@A>+f1qi6jrohVF(0|grZcp{yc&%XKvvT zMrE*5_BK-@A4yQ8dL58@dQd- z=2&YqN7xy7W6`!WpQD<5(E`w&Og93bv2arD-$+a7B`{pthLC(d297KYdhdUMKobv``XeI%FtWms6j zn^M_kwBd>nNXuIrVVx^WZZM)6MyAj<(DR)b=%(6@h6CGtIPV$A$?F#!q3@i?b|P;$ z#qhIkMw(bRGMb!zj5%Gh;<a=M}Vvty}G6N`DS;_S^f;%{QM_&FtApvlN2*N zp>kr|D#Q-|{RNEYYbKT^qsbZ%sDvLVn|p1R9w4BYsyM~8S+=V|Nx55r7q>t*H>g75 z!6SB-@wKYf&IQ&wz-#FP7WAVE7ToSj`pRTl$#p6>V)?#&-)XhOGfJ(uw$s~LBbkHGPSIjQX#YIVM7b@pPZ&mAu5 z_ISzSU`g5X)v9k`Q=7Y#{4J7Mb|{O=JVns!36G9c&nVDC+1?9^j9KHQh|UTrGZajk zGa2@Fyn9I? z0*NHuKZnJgDe*2An+nt{s{Msy;Q`fH`Q)<9Fr!ftI=l!+`Lezl=&r#L+H9{}ctGlW=TwVLq~q1D zVNptd-)=u3>iee-2i`}4ejucX;BhE~kf#D;re`4dxt(6xpRso9%5)aPtj+@Cqm zbY5}Z@ouz`<~;VCb0im(?ky~BvZ-Em+&`(-jey=1vN!d~GJ84~EnFI7Tx>abv2xnL9vT71aGJ z`&@y&{el$PyZpP}xgIfTd3lh$p0A+a!us_?@o#>gW|G%9tF~wPTRGS51E*8|#iiZE zi-(&Vv$_Zo?X-X{Q_>^i(9~&wVJuQDX7uwpYh2GsjW79@Kg`!S+|q23{P0(Scqa zs1<&ZnGZG#<+;nUNqL=a;%YKA)UUQ98C4W~jIKe?@Bgi;jqPiM`CD(yI1E4wLUrmZ z-dD9Qa;8+$69FBney4k)gQ+xr+)p&-q2t+lLR7W6=0p~aZ_@F4Vp%>X&#}Kxj_j%H z>U8HT@y1rbENQLSbD~9$ z1QWjzL0p^2d&sadMjDTN2*_2ym|86_)dfRgifb|4D1s{Y2w+cZ*Z}+-9aX%%NU@YF zUUJoEQwXhau5(jrQD|w=4uUA>0L5};X(V9L!^Af%2Sf}5UTTxl4?&5>@*CLFAMd@O z8Zu=e2yX~ivPi?@jBo$=HvGv&z)gV3f z*dfqX!%IFT(Y6rJBR*iTPEvG*4^=4y)LOQmr64&uc{njkZPkH0vJy2R2Mt#RD*#z# zg)%hgsCYR4c;JX6esxofh6z8${;U4pNF+o#YjrIEA-Ude;0lZKLiv=+ZPF}HK>iP% z^f83kZw3bY@;B&cP6r#mGr18sNUwd4n2si(mfs8tRnW8OFi3UTe9niB)DvyLXR6NF z@pWI9K%Hm={4ln$bHX(Z=f~DQB2aOeWD{6S@)p{~q4$kV(+nx#T$?ryV6&!TRFR{$ z3izOjUh-IDzu!ZmWc^6M7vL*?X|3nq(CMF$z=%^tZW7&l&r+Qn7B-qVWJdvdY112$cCVCJQ3ld;%5_+HbN&jW~eNBx(JtH08@Lg9L5jmHQhfv{}HteT5h8Yu!kLVmc?q= zsad%;-h@wo=y@d)jUL9&kY*I~!^f0C7mXu&am)>jrjwe5AOVJ7-Gr)|fefr8z}y`! z_QU9@9u17kDsVGwLxLHz`3$yK71*+e1vuD^Hv+jz=G~pVB_~?tE}(jl!K0gR3ff0q zAIb)SqwJ0WCwY%ST}(@7|BE8 zA-9@|L#KJOZS_G75n&o&cE^~w)BH7s=8c#G#}E2 zWB}MH%;$g6(NdcTg^QhiaP6LP&wb{gd{FzW3`*W;)<=pXy}b;kiCiiB;$+L`8EgIK zYq{<}*4b@Wl=|NlBu*M4vP^WKr2;~R2^Rf`;_cp*>@gekfH35f{u zKEcE#xs9J~LdOXAZA<|T6t~Eaa{Vp@DTg9<9qT0c%XW zNl9iJn2?r^cBg)Iz6#SAc1bCZ3=iwN^q{;%3G0_=c)KC?mOv*&2aBWJqy=lAVJ-U{d->Rtd4P|2oY%7fGR(PwFz~nvY98RbMyOIFuLrCqb(3urEgx_>JWi%jm zr`-#oN^+cf{FbZIwW!RR=6sl%-gn$4<(r>R+%&GEf~CNdFCYDS+n$?wc1g4Qm1Q>S zXBvCc*BeHb>=j~!V4_fhmj9u49 z-zG|jW6lzZ!}E>>GXDG5NQx1f4u@M4Z^F-3qncM5;vS$5k@$A%^{8$;ThR4H;6Fb= zaz`A7nhx5OcFp#I&lfbp@4&3fDevLl%N%)bcm4wKq4^%X)jg7TSuUeET{3)$kP*P* zu4{<2_Wvij68O&s{H-=^WU(|>lHEjbIKHm38N8 zX=V26ZkrqEXAX0od32XDKnU&d6*5po)Mp!ACVE~@n`kERLP<{pYSRJM~-7`2PWwbUCS%0gi$6Cvq{`pDr4C*^$b2&h&ua z8;f@|4Um2*LEg?W(*go1)YPS=u#@RMa4!b@BDE7Ve{X=#&0;QC)fc}LHjH{ZDl~YV ziF|yCRFOfICQl3tk?-XVv4(}mUS^X+R1hvZ7UpBxc%RwAt~s(2v1+E6O77$4^EJMx z2rfiEGLlJ{lZSDrLzSp%k*0CtC>I>t9$vb`CkbL@5fw6^4WICUsCL9q$T&-&L-hwu z(NtCB_Jnm2@-+Nm^30Vsm!8O)#&FH1;?;E8ZY3<_(RAte^s$tb+F1wR4h9r*K7Q|t zPEP9L@(c@Fq@y8XuyTSp2)X*u=hsxbdu{CL5dnp;_+Bi|uo6DsbKqFp-~;@rr)ABK zc`Tdh8Qk3o8y=24xFABq)*ECtNZ7SOh6B1k1wPZ&M!-UZC>WE$mb8r3vYzfHycv23M8|Z>0Hg#@&%jEAuUL zP;aJBVrWGnWzP4|iD0-NPziLlqoeW@7vG?nhBfqQ&jXNYw;=KDdTR91j<7sBhlAQz z-$F_5IRL=zmotFXsR`X+GW7f_``{@g(S~YH(j+@D?&4&7&H`4Cvg`;B2k=tW9r!j{@heSuc2;d=`%4NFbK8Y*cah5i14va=(9t&& z2_iG|fU4kE!gtzkM4>eu;71FBX4|zkI;uFjHOB{k@T;kref=&6tuLU8cLlt~g+p%E zvq3n#b>d2xZ?!PMNVHk+Ai4h#ztr4RDNwin=@M|{^!xzV<3cMm;VJI-GbP&Et|8a# zKF*0`G(g|m9zL}sdyM))rPZn1e! z)vtA`%95|3<=w6 zt7r&OEa__$I`SDyiP`-A;J2e!LCKx;A(Gh+wAXcEc%z+Cn5Yg=xscuZUgT3#@u zFAgnAd(2=f%kVdDvH9V%#Xj3=vN`fOIa=SXg0*mAhusW9S&^K4uDPx;5y^s)CweT^ zUtP@gO{1b2EM&U!mj%U%aAr+P=C2$Kg~}WPyG@{tqW?E9$uiMZ^AT32+Ze-{n#A>vKZ8X2+RdMBKmgznsr@xLBc%bXye!gVW3Pn zT4m}m^}mQOgr2K}a@!dYTG8=)+mr0GxvMN!Ed5#Vo4CK|rD^?F* zFGbu*0$NWdR5R<&Fo9LW0^t;&C&{+TKjEJx!xILWUnaGI5YWDZcCg1bu1iO=7v^bY z1u(8a?=c2QH7(ylfH3(JMdk7YJW}dK<-IdovD`SX_>EgOmT$glHJ8&>)^DtY!ceIlhy;40+GYt)To6)#v z5@jVN(OTc1e1UD{9G8`elv?55+M;$A@JEkenG5(v-4lXSO6do7VO!TO*MlH>&Q<-G zg%{o~kH#dK`#ciP_d1XT1Dz!2@Dr4@kbU&;(vgLlPTWTtBMi%ikHzC?%M6aY6$p)Z z>7D&%;Pt&d$$Mb}{;EthAP@ip&pg(A00aliU9KKwzD5$A2l|xck(|HS>%5AS9zb~m(`{d`5(bu0X1Wx4TXaG%}*~~?cK#+JetziYb zL`?GsRNxKtA%KZhXK3e!X%^kYVT|;WV~Cs*f+f>Rq=KZ2aTZo#{TEJ#n3R#nHI4ag zm2&_UKbtcnl8EU@;D)PeH%vCWW^*kDd^0d z0BZ-6j($-cpf0?DU($l!{;-F4>C!}7EIN91y>4O%b;+@#7xLfE4y>4#<^|GJZMx$$ zvVt@hoq+?V$>h`%E^s9Iv=4O!`+?^4lMLE#%As%ENzRr|))= z%B~Q62^fAq7$zACtNw@L1cBmqr`I*L(-BF{ioy^1JS7h`Hiak7Y^~x1-Cjw~5rS#u zN-O|7K*Ya7`-qS{0_W`t>CQOlDq6C(j~IU><%jGCrIux{?HN0dz6FOz^uz*2rI?hq z#Kqk;OZNjTNej*XuMYTcuE#u^zXk5B-P3>Bb9`0Ebk7!Yw6LpGi5_Y+8a+L!`E)q% z)ks7Tn@~KtAIzh&>gkq|lm5LZ1GmpJEPbq|FkYKb?=qQsryB>iJZEi2t1e}~al z!~v0$jb$ZLJJF!IiRC2~8Nv(eQzTQPNlIl&*UL%?jyvexO#H4v+3!l{5za(FI<7nW z2fu&5lrP{PV#EG9gOx_b6dsdJ=Y?$Qr&klYztT+2alNQH2zQRiNWKjxyXp7;^?hI1 zof8yL2*&G7F<8ox(xwa}h2bEQIURWoFu|`_gJX5p*iVB>Ic)GK&$iV#LW}}@^uQ%Vyx&~>i0ts!&YaNnc6=Nco_7bes1}KPkldXN| zk4|!hvIzgbkyt3Ow(jM-w*A&jH2WWdwY< z!mvmn7zls@eK?(b7DLHc1A9aoZ*BLKjtWm&0#8$~&uC~RWw%c%(g0!ZNF8&SyB6t} zaEM}0A=){yU!e!>`~Fv@BqSRkbYpmQ=qOb2xKZ^Q4M!$2B?0F^#R8BFQjN`fFlp!p zW%$8K>XYf2!D^$ih`C3+qQ~>+Y82!IM+~ryd9D&)-KkqD6=~0>J6>B63`FF8PzLTr!Y}`JV2cVB7P3>~lc=YQG`a?x}GD5f{ z)JZ4s0U>b`Hb#IJ+RmnDsK1c@TFKG6*Hjq}ue8e&No5XBmfE{snh;d@?ZSZQHcLy?>(Gu`}n&B|A`&qGYSS=sqM#U)2F& zaP__LkE`MSpJOsT{OlY6S54`jzfYfP zUT)@m{)+&>n8~iaFd8v=>m$i11kYLVw7L)T95URVr0YaE?Tm|&bsym(Z97eAJa~Sx z@A2(?U2_-7HGb;`23y!Ik3+%?T7>RH7RZ@8!rf~qRLRun=41szq2dP);B)2l4#3I7reknLf3Kqs417=v5q8 z(>2TP57Y1ncXKj;WHw1L;crc6CPAnc9`Ii2=!h*_^xo?2zGyzf{)LNenx@t6no<<0 zXo*24KnPWJrim}+a*W~#E5#$q`pJVg+IXgQcshcFws(*TefEop2OTJb z@mJmHGML<=EaR{1f;vY?D@Guf#KKHz#!B@(E&S`uUmvCJW~jdL6|I-jLTOm%Yw$5; zKO|BID?^{6ixxU1SIEI;0rVsL1K;-ILaKKD!wJt*=QH<3B`*dG^K^&Zyl|8+x#`4! zOz_*y`c?`9#K-UEC`#p^92W~bvn90EU6u@Lb7v=}TM5j^J{U_#<_K5oOqD(A4Cf;f z*(|Yo|lbC!OjGlAhNVfA^g!*bR?Z1uWv11{-(qG7jf!&3UA%p>q^+0C(&2UFAnqJ z$)rfpYg?ui65L&q#BD&7YThy=gI7WDwt7Smigl9 zraP=c&}>FA&XU-l#(_aiO{)#?%vOPDWY_KC*ghV(ADS`*G;(9`J^%hdLXCj606g=d_= zv&;}i5w1S+BQ@NmPX$Tn6wzM9qHW*kMfF**V-em#-&4eIo<>YE8?S^yt(s061ZPbh zu?u}7jjLMr@@Otg;0iQUPzxiF8?Ir>p$x=G_*)kBII#)dvTAE1L|=7?_?24M8}IV; zO{npVplSH58l2pWVz>pkGua{CWz4D%0(2xqnHYy!4%`tKOA1XV7qA-c;yPi~UY@&- z_q>zTMY>lx)5^U`oY=o$YQqL7zlZCt;WkUHzoN%A0b{%0gJ>viHWuB%uAr}}gG7N+5h zj56y#kD^KAKlqr6O*=nx?WY3t2yYQQuAA)!9jXrHLGbrftCbg)Um?oaiq&iYpXNIs zQ%APDx|+Pa6ukre<9L+h7&YYuxL*-I1TRHR#k1KbUq6}X1}LVVH4t(7C+ffbj-Ns{ zOsVLk!jn7Na(kQj451bIo3eK*_Q^BoKV9n*HEe?KL@ zItRn5yaH=~&Ezg68O73zaa9tMFNShR-Krn(bx3G3-e-S>Q?*Y}S^aI76DUdk)}#5u zDdJaW087MP1=W|<*WR>EOlvdtUi0Ksn_@_4Sw=>~XSg;)uEp;Ez0PuLfL9}xM^#}f z5akjpdLmqv=!`NOGKEAYo3LRL46OH5XLUwlz_>;I6HLUxaLAZD`$-=G2_=y2hp2Uq zS!hmO|1Z2RK4i7+f0hO*{%l`Gy9y9?Gvr7#f?k6i?h!bN5r|I8zyVY>3f(um$ldMY zYSF8RI(})41V|(H>eq;ll5SiHql3_JBR(A#a&dPFkYgWj%RvVeyxAFf<;5CM7k5FS zEG_aP8rmFf_@t`#%>im`mCA-q>2_^EuKOP?F%*_IV3TyK&b%#ZkV>PemV${iGB z`Lu&C7NaCfDhb8v3PwmIZ(?5NOS|@!TI0GyJs3E8&^Ld?!zJ(uYrW zSyYciaKgYgK^@UF*d+jOZ^>?AM7c2^xlao>tPU;qnY$m~?_=2y?{?bAa<`vj##&H1 zZg&n!e?#C^A}zd)uGO+iz;@X1`V0D-2KqZ)1wf>XF0{U17wl0-mN;zy00xTPMCqT3( zwUDiCIx0bbD9?dTYFSyh^BzVU|8*a%@j!~H!>Lx7XJ=sPhx}#gEJVh)#wUrM+vBJk zZ|%QyER_~(3irMQE<6|i!fJe4hR1kbiCO&1*|2Ex&FilkQ8H!?e#VP2y7fVa1EgcX zdqU-u`!6ltt{=fRR$Gr3YM&th@c>WBc4=r%m+p43SKbc@#>MwfHD6q+Z7+NMhqgE| z9u8~$P`kpKPRM3;eRaVV3L%F_0q^MC6KSw%cVs$TLDzu@Rd@|djp`7wz-lfD_34j> zi!O$UyJdkZS|60%#Cdr34Dg~SsSaN1pJ*7L76Q>KW10x90CQPd8t!fAx+UP!Ne4;< zo3S43u?maiC_k*!dw8g8v{T~=NZG=e1VHvN?L(I~2GN3EevDqCK_&9uD*#~ZgSiE* zq`X2sFD6b+8IOJgerjI5linZ&#c7d2xu@+mvYErN+jaFA#6rvTY48@aL)_m`%Bx~e z=VVp3L};_}nLJ)y$aiN@I`YZN_JV=Jp%XB3kWDY)m=ezR!5OgWS z4q?g3qz%J3eA*cZCK*|;C28$55uJeJo8B9l;M~fKC*H6X9@Tb0=4&d!x^Ja#1+0oW zN6)eANZypzZp&;v_eW*H@s@zls&P)^jf;%-Am=bm|GEa`%-Nnk9k|KS41l3Z*kSM}wzbi${pO(!;eWng5>ri`BGKoRz6x`|#xG}bm-X}4m~{|Fc{CVf zEie8OOSN^UE}(eI>*Tuc;m-yp8|<4(ZJI%cUed zU@lXC82A6y$hq1lNb4($3O$zdo{N0nyhL&TDFjU2?@o|@^-Mpm-dLJ;0JoH^o#ifo zDxd+nG!IY?7Hjj$txA=A^%(RXfcD=Shf$v>mIYCb{^v4}Fcvx~u)<&k z9{XWuFNx{rcQ>H^KNNyL;8)T(*QLw;|G-7I+4$RurI&}fDMXerf_&-Q54e;&yZYtI zT3LE_C4;mvhtv^PQLHJ{onh1RcS6gitnJ44#7y%QjhxXsp>DvJL5J?uX`}j}nfB~U z`=_DUvs#vRCKKL?yEvzDF)DC`dU7|~HvwH6+kzd4NNc3Ar0t6OjiMYS#^0UQv)^d4 zIyY|xkA<_=29q;pxRlNE@Mrl9%ztZ9VPP#ebf2$b5&@!|EcyyMF>e%|Go6=T9XjO; z6ESy?m=Xs59i#kJ!B;is8V6oZGs1)9KnaS*BTmb|vS3JwhRk`l1knsWyi+us=w9?% z_rfEGPy625QW_J$(&YXzqsigI3c?VLtO%Qj1KK{-mJFioJ+cUX4^q_-a(nedki{=o zfh*unWr@7xUSDKaq9XHIXvX4GL63NCR>IKQ8E&XnEy_2d7P`&Y{x!rJ!7$ea|_3+o#le3L~!r(k#f4YB_nGzSz0(AdTp+(BqebRjbUBGJVE;;*_< zjy;!pGi#QJej6g}^fMAnJitM=F>tbfiOiqd=%{ohgFW~jT^{20)QGR26#4HyREnO| zr#*xgBi%>Vn)CERD4CYt16#!v#%ZC}%Nqc~{PXS4;?q}Y{B`^spL>qfv7cS{x5exA zel&@S9Dju+hy_bJ5Gv#=D8;Xqo5?siVNV%gLQ4cb8>fO&Sgl!aCJ#Z1N~}SW^}A;< zh3V<>gyme#-XF?v_@_1X8vPrYhKi z1Eqaf_QCbZ$HrhStn{Odgigm?YpI29?=p6O?XY8frBkTfXPb8$k!F@o;l>MmJ2`6W zad_a9T|i{7o7wj|gXOyndELEozVbqeC>vKXy^f^%W{O|PgAM=8Mu#jmk5=4QtC9Yd zhxMir+kN6tYCkt&R4UWlpKm|Q9FHmbN;liB)#Sx|a`iGPI< zktRKBz$9+Rz;d#8rxUdRMtojOHIc$-!HWgVRz|z}2HSKoh%wAUK#Ct-KyEr(h^b3x z#kixhF*(xKDS9$7xGd|68C3c}tmTl*Dseo|f647583Y=_qt&?MG5#DjMY2WGtUr)M zmUS5R>ksDn6@C_?4NMkE7BwAI|7dMIV&+BDoZ=YMN5a~}T0Iz!2c2-Cwaz%eorr(; z@EkLx$`i7bn;X|BaU~5&hY|~_CQjsGsmUUM@q&tcysCFl3@Y-Jrd0F?i_0Oac!8Kp z84C^p4-ih%(kc{llSleUyv{fdI!uX^kzF_zlo8PbT>&dk?M;|%dA_9^jwb)lLwku> zS1#X)r((Nair>I}xjbW3vMcKP0@}=9!=`*cGJ#f_qY#!7K%v=WYa!~!Vft+wz4?qEJBF#%L>|ZQP|4UM!b8!koCQ*p?7(@5 zW+T1h$mM`WDxE|9NP`u>-U9|#05<%vei$1DSA#_0UFWgNs|+q)rwF7neL^E?b!xok z<`J=FL5>pIa{v5zJ#=gO6SnS(kvL!QWF3;^{!1zoTGEqE=ZMWj^IU;}`SSEP5;-)# z=2_6R$($&jh1dt2_JFnXO!~NIhNOCU*|^HD0LRf8&`l|PbKtUtPYM?N?}T!kLTPB) zk=?~lUjJh*R?@|k03pezt+4E?CFervg+MT+pt}}@=s1}#IXj&v(M(`F?=E=r6Q7jk z-=<(ore|F!5{zf{5x)=p=v^!-fz)_wR5QbJ)6N8V07fJ6a!-jdbO5RJ?eOb&qQuj$ z7sSz;kNVwF;C*fTqUURTbcRo^0VyP3R}5TbTs@mpjFpq>bE@RJ96{SNh@|4MnvDIf zI0=W~jSyrzWdR08GOV??Xfa<^us22q^VhNB-MW{G97y%Lw}XNWc4w=oC@RdvPL^6X zdvHr+921=eDdmz50k-5esbdvVdBi|13Qs6JKOb=#>W9@iIcV@LVVCHj z171mY+mEj^Fb}6-P4!y&{|-I#b#6FEZB9b!nWkDNqzP9N3a|6E+Lch5;cJSJvV+^M zS`a4^{AdVzQ8|O^p+sgo1jJN&oVSz3xJ2@m81$mA*#U+c^WrUl7nQdKq(Ac1aL_ zPLzaFOs)*UwbtdCS6TSOwXEV5^>w8Y%8U^~x4#M!krxc8`;T1kG8WOq z&*>SaTU>~g3umq2@WjQU1_0=j{Vb+#L{(7!mpB7Wk*B!@X%E>qJxRMee~oaiJCco& z_|1>Ts3}>g?xV9M9NeV0H5Zvsh@xRP;Zu@(f2q@V`qH6)LpL;0D)}@#v37n#nNIp# zG7=WfVJh`(I77?ZHnUK!?*|cCgTaypxa&LD7GNG4Zdq)jgo&mnP=<-qwQs;@uJhuc zhk84&aOQR=-jW@n$U`~}GEtEsW^glMa4HeHe7KHp?|(1wDU^(~=-3DA^M^mmMYw zoI}-INB(Pfxq}4H0E`gR3Dt@PfePqYX~h|MbX0piWPb)0z4E(XrT)i=v~jR@Tu=Ba zzv7<=v&TO)3Z6Nm{m>x;?BO2{7e!D}H1N35MB?1`3N0ywKj?$!Gm{s=)zIWACmHo^_vc5~ z{rzBj4S?>3tLRJQNOxK4=ZDIbW!i(pE9G>ykPO~iLD~t_$cLqCtP&@|N2-o&%$b+Z zN3OxQz`EMZ}AWEiIs!NEL)HZV> zGmW5?uaV2V_E_t>kk|KIUog!rcFu^H44B_#OSYdNzb51&5s2Xd*l|UI?$MIn65Ff= zc0L~mLq^gXDwqtm|ClXb{g%^G)rNWhA@3i!Nvt^-4^`Al+oZNFz$R`6(eQAjUaRH* z%+j0MW__K-MG|o^PvP5unD>U~D@~IuZC7C)I=+=@vrLh$+_VEpJG0}77XX5TF;xyw z?pKOUFsh4C(Qp8MN`s<7I~E|Yx;udV?EOA~J+tbRi3q9Tz@zy~>H($aWWjz zNpW=I`pk+5I5Atx?=eiZO6X(fL;<^`wsY={fs(_TxeIns=0|z~;u!2LhzlCH*27ke z&y9NKqs{-9Yr>RIqOt!cqadcMmg~k&qp#Kk0h6o!^sB)MT{IxivQhruU{i%B+((s4 z7ze`jf`n&!D+9^aRFpo5^KtkED9avIb`=Jl@p&!PdRY>~-fjfo!oy>@`9$9MSA+u~ zO#`IVfl}I}A*SVaS>TH*|N8_>(dgKC08N}dsX#{E96M-ETa;VJe@p%zEkqGdzEvC) za)y{O8@JM{EbO=ma}~-8Lk2ilW5ysA5cguvf(5m0r@)`C>UZDp!o}{kni(enP*lY= zEmkBRrbKnr9`+lfNz*F?%i8lc^{{d2Qsl{v&)_t8#Bp!KivNrjGC?@^7f^Ph;X3Tf zqStnO|LRPHl~hq4YDzeFaU`h`sjcTDzi$usQUW1zCL40|f?(3?FiOlT+LxpVR{Tu% z2XyAm4s8+jqjVsB?%e*8Gh`TJOVU z%*HkIrX7`yw1dkpb>Mj2oTAiutR4bWoxLDbx7Wg^G7;T0B z-|x5VI(0~q(hKX262ef$_(xQWACAh5)q3w4Zz2+isSPg0s-?$0PC3F4YH4*pV-<@mkLmb&;bv=yFS(1TVuxm)OI&M&$Re^0Da*;N-I0Ha9pvItmYhA0&)$+#+3 zSj!|VWC)8D+M`9og(aF#C<&Y7G7t7I1;Zm((Bt7X1+lqJ2k?Lw=RPwxH214?ER@*m zmbTW^$M6_OG!EQsB>f{lMH87!xzW(`G3UfOW#x%*Z7L%aa&mg5o!5PbMZ(N%1!0KI?p1c>RJ)d_;8$UK0ihr!@gA#>Nkmd;g z&acnrnuLp1YzteSPFO9cSo2(v#;3IEUL;grXq0OnTGma2xh}v6;A=F0!&C|%0%yb` zFR;d?tj#53G1G?!BjDYYb1nJDpg47d+j~?CdmP^*_X@a5vm;Ikmn`xvJJh5>u51*G z)%<{CD~|<7#xT<~wXUA5Bse~CD2@*5Qcp-Do2lETh!4f#h+1yb>-O{N;gtb238mOt zl9IQ-G8U%=nmOfIX^{oFxOedv2q~*yuwCw+>&Y+al){ogLaB_it&KL#HT;GaiNhJ! z4=tjm@JZOTL?4ydTA=L6w$}2mQ=*!KNysxqgOr$+_=hTYA~S}<%8U})mamqi zAYU5F;?S^=z!S(3F!{*qM=yM^IuxXh9p3PKSeiXgR0gm z44q`cmwynf!E33ApNP_PxrVMehN(l7^`hncS=KUtiPOxxUQpe}a!0 zr}wu%zQ6w>ilE`xqszxu+fO{2HWt6iB%Hf>-fz51x$ji=`nz{QhjKX*i9EB?3r5;z z!OxG27T$85-IEsp^Dt&3GO+uV{zNaj^EHO&jgU$9hQE#)+*Z;X&*v2KIY2Q;NIrhv zmPK)x@g#$03%#m7rUqq57L|cZxL3m=jZweD4HYzinR;Nv!84Yi;@RDD|B@sZJk-$O zRT_&;**Zd3Z|U>IYJj}K{y#B?5t(TO7)th4Adn4|;aN*>u_m7zdGe++;#OKcDT`+P z)33ouZ*f2fLHPOpdyITod|tX*86yUTg=uz|`XAq|aGwOmuo#q@J1%-iU@JfxbpO;e zO^6zE%$sg|waL{2&S{X`&V+%i4{@7ogUWf)0@-wsPSi%gCDpWyWkM=Guc=zYUbd7VboiPtUlCw zfqu{On9!ka{R417&?tb?9^n$mypEf5*lx-Dv$$$P#V)b6?Q+;;ywPak2g8M&-~TUn z2b~2tr&t_mAKrbe28<&$(n*L&=&|b!cn;xFgK|jEcz^6ZYpK3BNsT^{s3;7uca zgtLRLh>QyyMk{Ch{_Kcf^$x^>Ah~EWTzI|nv%nN_NW6LCOR>T$fRamdPBk4I`+EUC zm~>*Ki#?`^q=})Pz+vbC>CNaeX4QU9N zEg4n&q_$<(Sy7t^jPR+weS+s0JhAdk7xTH3@!b?iO>!lgnXE!~34lAae)2u%KZMZ4 z`yw)q@}r+t?l65$MK7-4tGv$iPH1QDZg;Ue&Egn*ntMMCkrX$WFhftR2PODC3>UG~@FFJ~O+n{|e_!HRFAm z*7+2~VR~L&T?KnQ1N$hLQ|T`EKw|?T)hkRKcp{wm?o8n3E}+Vw-*7KOu;@*Tn@dkB z&=z&vTXbP-b%^!6XAO7avyz2QLwm7$rM~4EI!6+SQuvnj(9}CD5bL95%~f*COX0QO zqc<-8xb4?dbS0Qs(1`{>)+3wGPzt;z0nuT_hBp9J=4gUbJH~Dk zX=`6X1_d*B9+{$n(L-0o)_-=Q83DU2(^cmC{Q22fq<5O$?uN)OIh*L-vP9uQjaE)6 ztx-{EzCR=YkH12aw6MmScgk~B`PQ%me1IKB4;#M*mR;@k#w6>HD1bCEL&$C+WK34k z8^`2b@W9o#Km zd6Vu(R=*AQ8RhuJ4H#Z2eoq|fFGpgR3uWmf5*zM$59{y!lW&^n&=+j8jP$xa?2duU z`hSQPhS&-sV5kFb1Qw%GGDL8*j5M+OWf&3>ZKn|LaIUJ6>YV?ZIlEU_SqZFT+(hd?zEho*M5$GC&8ieTu*$>#rid~^Pa zm&*#cJ#NyVs+1i2{!%8OCt^J8Yz#v7-yFths$e5ft|h<`#aAfM4{CkS(DR8FP=>sA zM3#BGn|%A*v?&^;sUCmD$u~K>lf_pp7%JC?-1lE9^A<8SOw(bUJO#_2WTQQ>Rq-=_ z<^YvaBDUctPEfEnD3T>K-%^?Bo|;}E`ICsGL5g5K^weW64e!lv0skd|#+Oag&?`Dt zc<<*19=o%W7UHE!>FW{Ry0;2;%boD1GuEcAe{FyJv9^eR+eN>v%GJl9Lzd#5c z`jOIdrI@&Vj|n<2)Gu!i^TWv7TUPxq|NqJ1>F<;~n%5$fDDu1FwhggcqoY=2?tn>@ zT@WjfdI8L}xOYLx*sKwfr)#k7yMRLyv}QCb;Bh3$VU#uDOxovaqHI5u?6BhNy#19i zUc>;|RMXASK_d1O_+@Row!VbRiJyeP){4zT;1G5Vo6pIr_nvhxV{+Bu<{uE+yaMD) zom798ORj;dgGOS7k+XZr{HCh83O)gYNfSK*hd1<_gLri0@**GZI$1gksZRMZY>d@O z{3Ek`>kziT^fmt8BYkWt{fF!lZF)-F(RYC=fIX9`)azkd_8w!iJRbhDxjsFfk$ROJ zaNkWG%)y0GCT?pwK&F$Y z**r&m$Vu2BMmVPsm4X=8y5zcYJNg?sOhwltUD4;ceug5!Cw`aP%`em-LF~7~p#n;{ z1RW0SjxBUY{Nsg*r$XNEb{kSWuh7*)6}8og#uV)p6{VUGtbbG8a=7RHki@re&;-wO zE8yn?&;8(?rFwhth{9T2@0&9cr_Z2%gGd?LYPHsl#|Bg%C)XSA%8>X6*`(wwN#XH7Pv#O6xeR?Plep#0M{ua zFE1|VY25E!!wkl5pmMXPn8Vv6om5Bwt`}s{6R9!xRYxJ|aq%C-A*217&XPfUd@_Mk zZQv|aU(T*rdJ9Vj$l)(M9M+hpr8l z0I9$)_Utx<+*Uayee%~rDmkUiP_5iTeaPMmQuvZSFm>^21afUMVLuIO7osC2%jVtb zne`W&Ph~Mz(J|cywS zQIwez@PItBXlsZ^omW3d`>a_w6y%EY-A^^nC;`9UR`-{$T5{KBzcVs8Jy?8F<1E{t zj5`=)5V(Od8coCr>%OJ08+=!Jtj#muNNA2>v>r6Sdh{ZGH_7c?vpp5KYHZPm1A#zeOZ~Oz==ax#aE)UIP zUeQ*RpHEoEtT$)Y_yWWabDJrho0@KLD3_|WFx#&*5C;TnlV$+p5@j^%NJE}|cK-eN zQTy!)z|+o({I_crZouFk;zVBKl~=IZ-6Mb}?`GW>zETSmcGPfM)3y2?clED<1e~{FWOZbqfAwp7W1Jx zZWc47mQ~L-UW@`5RXZPErtUs^!wF`IleT~0F&WIGPx`WXX!5c3+u7B|Y0TrdPnfOn z$wi|-MuoNVD-FzM4pW$~-v^^u-g>&&V3Sqg*qFRRa)>=Tn6%*6Aozd4I@Ixb8yD`L zbHvV-^BHa%|Zb>Hs5LdX^Ws_T9aIMUyHP5<@gW@HcnX&Funo(H^QZa;H ztw8`0h>`{Q+rm4ivRv@mPYPh*Kr|S`SkS^0Om2zbMQi}8E&tj+Ypu>Q-^s{$-~53c z@jFEMYKK~^`~UXHmEO^_)thmr7``<@Q-iZ+cKQXpg^Z2h>YC~`)ODqPEe@_NOe@06?M4$g25XD=ERcG)1y6tx5-olJkqC4G1|h*$gO;qZ zpA=()3&g*n9s)f0*vZ?^pI^jE^geee9|kTtXO+isNP(lX3vHZJXnyCC`6tDNqHVH! zWdFn4`ir=u3Qt?zy3UZ-p|5%rRr)b+0JD;Ojs!s!JiM-R8)&>hu4p{M2{d^fDhyTa zG9~xoir;MeZw%_2gHbRp%*@7i2jjRD*SW75;ocaC^$zV6q~3C#Ppf}3uiyHUtAZpP zXQLWS5+S5~P~xhVT8L`j-4l0-}FOCd+w!QBa!}BK((@C_4s27Y=&%r^@8NVi)5_%LtE_1c1Ls zah4FJ;VU}CN0|=&0tpu97kBYK89_L1dJ1F| zUO)P_6M5 zu{p)re7Gg+_fK*@`KA674T|q{gf8OqH$~G6W%;9Q99BFVZYSJjtH(?J>1>1|B#n~R z$-%`KA~}@4%AnZy&XGD)yhez=o>LTnELnkhyezT0TBE(_@|SmjpOB)4^ns|NC4kSS zxDa7H6{{mDN2Yxns%=93jrO@_bg)TE@Qs)CR@qyj-_nVNa{Pg^jI;SkwopAWD}F&VbU0wV5=t=YP7uw2 zT=pt9S0YtYv~dC8MoFW-=+rlQ;<32n9uRZ1kpn)Bgw!f3i~ThZY(6VU&;%DT!E|J` zlO8!%-a}uf2M$S@WxGv5@A*q0QStVY;9(DxFO_eTM$aOv2c?KjYMiIXaT`L}KoN8n z>N+X;%YSUA_+`rM!8ga#z=r|0^T9p908Q4>8V6%zjVJ@ z3$EOqH{YH)dbzS9<-XTL6N?H?+8RU#0Wv3A3PG41zhhE=RbV?ZvoDUe1Jk#v3hhHQ z3gcUHgygPJ_VU(Wlc*)riYNZ2BParZp<%IzoM<>_5~k|a1!0?8iA?CN*NEUAiWBme z_1nWu-5?gH#EpgctN%7<3Qt zz>VMj3N#ICLo#DVUzuWc(#UW5*CgzlwE5KWHdV{}GUKo4tWa9E?rQ9em*f3}EF9NA z^l07u?8MdaMrxXFJF0oSjZuyF=QB=5&weyIO5^0eWfu5)2qu)$LWK>RO&qQ^S8BE& zE5f8X4v_BQ5S}27-I!HG6w>Ikj8}-?1BT%iVCFRBNoD#NiG03afP%HQ;VFI zOVYgf@R0UK_`&1^tmSU*XkAJgf6zmu553>UsQ0P)%@g8!I^8?;Ya{0yK!rtFvh&DU z+EbPc2hsB<1}+Mv)S5@>Y?vv(XEmS}`JJ1i)=z*1hXJRaxEIuE4@E3SOBBT4jm=Nj zTtQo!(86lqtnk6|lCcqo@X6kgO=s9jBV|+>c|EogE0NcpPuag@yeH?!K)#E48=;)V z_^X*UXqgSJ!xLrFM+krvdptI)ow^g4vsN$he!A6SmzMCNl~k-*hO8>spAW0CxD$rp zAc;En>QU0v#LmW|yAmceeiK=sHM(o!%+iK<`xR_`W)Bj} zf9Q%~spNKzL5z06h?S z)h#$siQE>$xz3}I7jDVq!r2?o^Sz{1`2140ug=-$j>Hr>=b@bPu%9KhZTbf`3EIPQ zNQ(MUEzF=uvj-@ZiTzNHEc!<|zDjN*yS%wx`lw!4-33Zx%wPUNL<9T|Z_ZHwXxp~y zH?3w%9zZOue8aF#^K+2#+(6SHXsqd-F9;_Bbw*#EByFDD0|g8KQ^M7i{VH<>NUlH> zS#rvntMDUcKk&0(_;H6v5}8`Mc7a;QOPkRq1C$UG)iA8m==#X1^0KwYeG zgr)PFeU`&5Uv6yvHvl5vz0P){kJ#L#Wws?vWkS}R!WZVt;OAJ(Zl#JGR^y)J%q~V~ zjj|()0W5Z$QVRZ#EYRdn@Ka9Z;hl1y8aOA>39^0CwM-|(bqwNXyRlbXO zzKd(^I6eC}k=eCAjp$414ZL|eBWx?)&<2}-p?lye)K9l^1HsvPhaI_!W@<2zYW?ZI zJP@lid&l>V7XrS(+O=ae%-8!9yX-h#9I|xF<5UJCYeM=`Wt~J#3K0cgY%)a-1XaBD zbxh4A4!M%OlhFOab@PdY*Ln|#^^$<2Ai+G8!Es+j=qH?Mp){v-nH4f~T9M)lz)~G^ zmKrm$ZP{dJxf8IwUbrkejP~);+NMW2fq-QVWRw#{Nw)(ZGRVoQSk>i^@Z|CdGBd=y zvoe>X!*c1SdJogQGkwC^+CrA^xxLJeS^4oXed^h9<%BZ#n$+dlW|x%_OC4&VSrV@3 zc?UCoF(9yQL*z_VB7#=PHcYcW$mCGjV$3z^+RJ!3ME?N_M)SN9C-!&j6$*=Rie<}v#_9TfIpH!X#J50l=T4=iR?{pQMAljYBRAB{?j&eN|=Zn zi%D$+N2z0D8!T=9yU~2wRYng@8yqF4% z^s={=uXS|I`JQbzX6!_j{ZblQLI9J}0OKWfi%6kl)_iFs=V9iU*|&krcCSwkt^n~W zmF?v4HziLzS|2Zz(@s(K@x%PJJ<26(l$%eN_lA^<8L_T@_%#a-2JlnG)&B{*QilhA1VXFQ-g@HpBR^g&48Kt0*`4+%YmBCi(Z zI#EGDNaK&0bk2YotAID_(+iBM_{x^ImMm{`d`!m4Ybj9ap^b<0infP4uSse+L>?>Bz_rUZpK-dMU{#t z*R6PX*YYqc^I044@f=J?b90>hzak!4n?ajC71PYg~I_ z=HDmd``tbi=tYM}Z$?gjpk)u_V7biQe3w%EcTCRh?t3JqKI0bjx3MXmoLak;uWNab z!_>L;(qjcR-X6Rh#HU3UoN!Ayd*s8kX}|tg@5s+b1Cp zDPdBUc|E(Gd{%DGjG1fP_Rt>}2p3=O>qtxHz$?*sn0lDm$X=`4J568P7pCg(BeIf+qe@1$@Qgo?ro) zVR0-W0Ay!x$yhK&k?%QX`lgDv1ZqDCCXA}b0ICZvhR%?HwgMyGfQpW@Z$GWUc7Lx~8h?z2Bbe52kPuT4=izCPQC@01yL6JiSbF+`1=55&7Kocn(JC`( zt3}I3W^SYt8WjtM$pst}+r<$hcl^5Tw!*cGA!0yQ1DECkjWH)#k+jBERvH~Hz52T) zm&rvwp~yY-RxgPkH|$~tkUeG{ywojU#=fM%#eWNFKTL5B9DtH0Bv*Hf>aMAW>WuG! zHZr3O!R}3i#s&(KK#Lp0WHRo-?;$P1;MvT{!$rA`p$2W$XoTPo3wwn=y&cGyYNFj! z1*HfU8N18>*k6z>8-(YS)>!5D>5X@ssMyXOB9*J5J1o4y7;x()B6cp-8x9G1`x20V6 zVg)gQaUUJO<-9v0JQ7m-<7}*Lrkh05Bf(}*Xb07{DbdQ!mDD+;#NB8}2WwHD?fotq z3y*(6*UV4cK|~xN(){&MtTd$h65&n6+$ylI-UDAXKo$kf^{iiOaUvjF;E$|i~yj{usi%8$tfq!;xVI2NDJM2MEi9gO*)4>7J@<8bp(Zjj(vr43t594 z7Asj}+R<(eYW~48xqyi87XuNKa4Y=!fJKV5dM=;wEen4exL2I42AvaaN;Rp$`aa^e zwv6k#{=jKHc~$wmGw5%HKRn3_S`R5sg?FS8-Ikxbjd@q8hUI#h1uAy|?-xircZ7s= z?VV~J>QhrS!ZuC)Z;x#hSjbkfIn-X$jT@n|?B8)Km_UOo%f!(RawGfdMRY3W(u~z~ zW=NYu0VYxaRjFKZ*YMXV24=8tL=k=uR@i3ep({ulu+(yXq1SXjo}`p~ z+$+oNAK13_R7dt@-ccU2)@IKNv~3X!A;3dvVv`1-HihbwEE1|5VT0<*@(bA?vde=Y zb(Y_sU=G=}$yt+5{teV{s&UZG8k5cfV>}VXfhXB08ppt>K$v4u7DIO9&vjVmB!J^) zW**y9SS6~BKEL2po(U;=`nWv~km~Y5%nybMDU%yh_DO^vqq;wZitWhCy`sD`YA;q* z^#l3GB?fiIHw7?Qa&B~j#nFL*>hlzZt1y zeHDeC!DZDKL!cSF13`8plt$w9y+mVKyN8g=rOeE!lJayxL*fk+0MEx^{!W%I_ zv%zLOza%UA@TzuH=}?N~$o&kWm}Ovjp&EOWvj#ZLN1$*&(qdt0^shQH6FRXGyGLr$ zB!aVx*U}sv)hyc+Cpsm0c8YF+^$@?4*kaBqrcgH?1kVR*cRcP@T-i+aJ}2UFQg6My z>xph2e4hNLzg=rF9QNV)r4Dt$?-$2J&-7=&NDe;8o&txnmCZ8h ze>YCYt)cv;&!QITmV8n8m1u7n}(VD|HbF@pd%dza=rT9oTT=`p<}510Ur(o zYVdrG+HW5Lh+CX353)v&+^sFHfm?OQZIxVHsjB>gTLMrF`++*bM~c=FZnHIf+W^gr zVB4ixd&!$yh9TqUi4sqTlMd8_Y?$QMx4kw@*tZ&_bec!cl|bPa;Ky_Uf2e=cxmUv^ z_N61UX|%D?C*G=`gxC^qhmkhC$_IYsG)Js#fQHs1@SyS(2iA6n!!eF?ffgF5aVfxy1UXV!#~LG-Z9#f|R<@YUUfQij5hT1&tFQ9M3%Wa8AC_ zD-wuDoW1?KrCG3*aTjCr?pMl=(OmX?mwTFpj2w8|c4zG)?z{`ZlWL`I4n?f%X4-H8nsG+ik+H$L~>N4w1X!;|# zsAqgX`Wqa0DYBtnH1oIUoHN?_)4{x2M;VGpOUFcX9OZfB96J(TB?xty>}L%_pAV0a z$5v={Qs_|cd`u@d3(gxDb}DGLv3zmTl#PZ(OYd$H9}UtCAQqVAl?Gf{T5;Ope^>6gRh$bN$OQj?AqHB zxvr;1sOo_JyfU_g;)LIm6Ac7d^r9uV34{VfF|0ETs8tS9{<)R>z55wRM(5ijp<3&& zOyN`wgV>i##1RU;MuwR56;nGZX7Vyk*A6(w-7jzhw|+JPO>h_I~vQYa*ck5fYAD2hVrO$?|e0B8}iBtLbYw=t`hQj z@&aU>nq7}2glGjvv^RO>zSt4YAHSM2N6f0+{&b3>$qkEdye%Q8V5R8y3JzBcWtkjf zmQVQk*Ok3qF<{G9Y}58vvQVOlz_5_j(s{_&A zK$r_uSgzsZ9)$XG*@Bl=2`#BeNp;xI?Yi2zkl%V4BC5wMso(#^a3qf-ny=oay~JW2 z(U-&Lxqbnk`|jA)yEJf^o~`7XlXE3<;`>#9jk{l+Y+JUyyWB{&stlGZN8;NOI(z@_ zQNroaC?;z&`L?MOM1v-&BYh!e+1;bmMmagen6>RiQm$0N-u}S3<-#L|K&Z9=di!q9 zhVYo7k`7Ddlz~isQ0hD_rs`0-({0n!fhU3qhqX$blnz-U8h(g7|;tY{k?tagy(*gJ$ zY!ogQ6FSnh)dY2*zW&{F^QzuWfeQM%GP?Y>2{@miIX8aRHdd1_!NQZ}6x}zNCA7O+ ztu)X#8$43k{Lmic-+ZfIS+T}=E>2Jxzod#M<7ure$ijD-bKjA9z{Bvb)^_0TlH;2S z{g>E-ijE!^qA^byT&47?3Y=;HMZc^P>R z?6UE@$C{9$o#NHKjk!R9r>4P);9JNYp1a-Q=-+KtKY`!w9u!>)x|cPLd4&fSYh|8> zZxaQB2H8^oe`m|B+LJmp3u(Q9uk$ZvOq-`}e*XB1*F?V>D{0?HiK61LDnHC*E;zvx zq=VQYTT_xew?DJB=hbpWU;Celx||%_Va2FQeYCy__j_D{_9Gm^n_M|^Sdb-gsmNV! zs3JcF__}mAdufFzc&6I6(`mD-L8`A$we>a)TCgvvg66P3--;%zz$Dg$ETBhfq)oQ=M)9qy z{7J_N8Nr!-pG)Lq3r8~~Dx&ZWg;QbkHo0JwM9wwjC5#nLO}7k7-d-`~5-i zPiy=^C)5V`)71o%RQaemD3jD&K$hUi?4ypY<=ELFQX?8nH>Grkj%qXAgvYlH+r(Ga z+-}p{y{!d@OcS{&m|!Ip5a1}QZ_@iK`L88fTT8Pveqvkm(yKuPenaDFMw$+jG!*8B z-i^^U>__rQz|XEE52{$+pWVp8ZO79f3TpktvvOV~2c`yB$UF9PAd06=8c*HJ-=KTOKXn5~~OI*bshaCNuu?%HDdZeV~%@64GAm zRtFS@TBCfVR2D0Z?~f35KwH7h3TT>Z^3WFRU{3hY6CAba*+JNg7+u~tTaqpUEQNOa z2vhyD=Z6BYlWRl0dZQW8%3TBWgaIh#>uDYWh)h`}OzL%eaT$4}(=Z;RrPz3*kPFLwO9SNlSFRZ$>w?ovzawEDK3>xY;=yk3Q=sTvn|C z=4eytx_4jCur&|hQLwT9dqe*(OSQ_MX> z?8?SMP9wtf5mmFm;-g`$r?DwMLFeVE#ES^VgOC*sCk_t}R)S-Rmu}@3|C3!w;z^C} z0kjmjQ+-xxN9pGFPfznaV0S=uu|_6LvU-`kZS20T`J3NoRX4@QHCe6uJ{_eXt~yj|yqt z-O~Sv#hZr>;(pP3Fl9v>E^yU0^-gZxnWoc@)lVG^Dy64QiTD$R`~}~^DOj0kB1TJu z55lYwh=Vwt(#xQB4;idQL)+Pgz86!hD8wKbq;r2iye-}HtJy%1K=%i++kczqW8W{?V9|M|IlT}s(W$5ops^S7u*31vfF z0Rg!$=4>~?L_7VcE*BnsH7dB%yMh~H?iH=3KK7ePG%@4h^H3onSU3$I4$(63X1a_9 zISRy@te{ajTu>?aZ;ZoEc=McPgu~7I9oNE;bn(4)6up;NsO&vsTUiM3j%eSYGpj|! z67ATqZ2Y&bjepR%N1t6QN6MB!kFAosRIkd=^H=$cXnmmtm|fjV=qQ~L^FFT@H43}{ zq!(p>s-n;$bN0)d>kpLY>e594+*#m@f6hh{KGN=j+Qhn}DN&QE)A{CTAd{7JwhSn^ zLgnLobQ8rW56AR3q;qiVC*LP0y1MGG4V)n5zV-}gaTy$ zG{1Mk)JImqCQSf%W2eYN3@gvMKs~WbtgTKykXzl-pDYk(A#Wt=jUrVm9rHfXri7#N zJ5^d2T-pN(49l2JwG|u}z?@Y>J)jvYVS&HL9Ts4nVz&s!K$-~+9#r$$&zK~Zzh2iM${dUyVQMgDr-1%)= z0wWlBW}ReihMmmUwlUEL$!vy7+ouN5>L(t;t?xs!uD~#9Ojvv)Z8J+!M*~{^rE+ z&Zncf4>&hXQ8n+BKgXvqkz2{{0=z(&aB8$zXs^x-7J~`?E%3WR7&GDl1c`n^m2?w0 z?#uF@EY!&o#2;)rK9eCiu8S1ukx?73G~P@SP3(^4QERv5Y&)ROxbZU*(R=RqwI|(-59mwo4`a(c343Me>@qOdpv?tw(;$PZ zwI4WQ-)8~q1zjK7<~cmzVd~162>RmKD$b0-p!&>9*=^!X!z_Y|3z?`m7$>+0)jOZ_ z*M-Z!j(ep`MwSf=_jn*P(1L$I=))A{Y|3uEEyXF7m;Us7xy{&aaOZwx4GNcq}opCTiNMzkcC#PXu|`J<~Q=yuYxfX zaD?7sOGDG%^7)i%z$}XwU8HdaC{Kqte3W(Mm&v#eXG;~w(jf}Aa3!Zj0NQIY&Wxf_ zfc~m&I)MaY{6wvE?BIZ+ca?QU(Bo7}l%*JSqT>ZRC-z_^1b3K96T+H|&8`*|(|??T z&M)`yHhmFs>sjo3dQ>BjP^xl%LLZ?Kq7EzjHtc}%}6qHfWz*u zeivNogbeTOhfl92xW9ww31Qy*St2JxS=pxUG0YaW?oxsyYe4QHGZ{XYJ<#}rlx}y0 zC;`^*(0EzM2@$L&q4<@Kaf6Y;HT;E0kLh$JWTZ(81~jqR>Stc((qEd{3KIzc(G^WE zshhm1pM4^x2i33YB_iD)GK0wEq2#V@bq_tv6@gk8wQhkbOFgzIV3;LDD=%d*R9KyhZUa!pGF%9Q`Bp!f0k3RYWMFz8gnGieQ{a1ikbo*l(%DI zuejN+Pfe|okGjMV?^^81>$-9))1d0^i~xvG_T@EzaY&^%m-*YK04|%D7>Vehc-H)0 zr=GeWg5KmYt38$S{G9Q$a*?NHC{dWaN`ed+BIM1U>WAYc8c%zJ_Wl*&zo?c{nSZwX z?6w$|0lB~~(9a6UNH8Ygf!v-5DC5g>fj|8s_+ORtZ%kvLTBpEMSvS2Z{K8GPJilkW z$=`_Z*RZOrIwbk-tLdAOu4AcR%FG4A5)-!?ZPDFpj3mdYD^VXF%0q&?Yr_Q<;U*{= zN%H#5fTW{K^}Z~L24ZBB+RqfIC3Vzfjb9E{a8ID~lnsQP!2|I;ND!Gd;^*`bi>zIxX#{HLoR3sBv!$_C z+S(BLCuomeQu$8XPtFq49{iCk@MB-~Ngvd;B7bCgq@ZzD-Ann_h%c=9_Zjumv4M=I ze0#Y}KAPeEr3C*@n8m6YOK4$KmVjKnvs+_;X>TblhNHzKb(dJ>s7}XBI{nZw?Yqf3 zy-BfvC+mgIc$x^1{IO|+6h<-*6g{V z5-u5z5tznaFh(D(Yzy=@%~tvnmUJdq4+IaKtg`1z^J9Wk`*|lyGU3HR$u?bn>PA`uJ&YPm&sNPo%N=kd(OI$QiuaubH`HQB zvRCRyGzzQjM`JKn14*M-$pq{Fg?d-G-^h%@sD;01l-MHAmzRbZc;SJwWo4C$_uv@Y z*T*e}_HR1J2HI@poILFr=%WT`C1LGdn^(tE9TpA`kVy%a*%;W9stp zTKbl(@=QyA>h042=m1~_a#pr*6v?c#;`h0B8gaQ-b_t(Vmz*`Bei%A;Cr*@*1)}~Z zYzVrEx3oH;d|k~K&TsA4$50SyAON(cnochNw&y&2t0q(vO!V~4 zeY+0e>b0e*D54%!5_McQU>FvubFrhIl8nu)5Dz$_hj!u!?=AQkX(cAY_2QELHM2;n zYV{c87gIfskwrX*Jf;SM-)tT}lcnz;tNP;*l?5+3P-m230<&V$7wvW+$KME<-Tn1h z-!E3eYjl@pJi5{>l5}XyLouUZvG&c6nDK1u1k%y1AGIj#_9Ayqu;Y=$I_+uuazONf&l^ztaCY#UXIK8H;xbs(;xsToSr81@W~E~ zb4x>0L=D8DFTzGN7D5Y1^Ub8x$s>hXzLnXArzQaO4h3;nGSPkWuSp`szQoj};{Oo7>Kn@^1a#$qrR3#M zifLhJok&tz+UKUB+9Ypa(rcb4y^J^-WXj^+xx0X6&JWd)#%lpN%2di0`hX#tX#Kt_ z5&&gy2W1xLseE~k-b{b#e-Y;hwV+AeeemZHnO+B;-nQH{xCa+}<6A|Uo z{Uh*Ut19)GwFGUOMMq65u`E7;m9Yc5t9QbR;tf=F$~?d^TF z>j?^oIZ8dZEAHyg#v$Bp1evAugjSbNdU{otx&HUwFEYmMX4L5f0UA-sHn&=FCM(L- z_K*%t(hciH*=1tWyqbXcTfRwo)476z3|_mlW~DbS@Xv$wiA65EgYABB?7TL zJmd&1mgK^iuMY$ZX$!Bs5Xf~~Vsy}ujOUBNAkXO_Ft*S=kn=WI%e@oB05|!!XDeBo6R@T|CX9-3!9HITMJHu`Q@!+?RKk!~lCQ4TOw8!vL%OZl`^@V(Ola zyQy$fuKZD#YlzboInloI(4G8#v||yl>W$RC5>HSp2WmOBuKB%!5~v=}qeH$wtz&^pBLlv6`;M-(>#3N? zr0VVaD25`!7_&?##90jo{>}3VKu|8)+%ob8P#-lscUee5Oz&Y0jJ8}Cf2aldK z?B!<0Y6NH&7A@Wpn{m%UKls)d9WO4$Yr zMNRc<_q_Fz8Pt$1tyUp+r>ljsiUF*{W9{;T?fEEf z9i;U*L6ZOZ|Cu_coK+UvcO@NAsU9ytgc2M=DdSq5*nprfVg9GRKK!7Mxbo}^zbEe) zPtm;A`MiO29_JW{f7Pq;{F3RFBk{Exv9o{Z5>-ZIPYUaTBnX(gV)kwzALsuSof z5Pk;|MLAl)47A2Xw^Fq&E&b?0l7Vw8pj?WXf&D;^ zEzN*aZ+>8>!`v#_4-~t>4s3mOJB1u&9)=5C=+b-4u`p%aN|uO~Q962VAl`AZ&tY?ID$^|q{+0*`g5^?<|ZYT}X8WS2FU$GasCKw!fda#_+| zW})Yd?V*2b65rb~VjFfeevES+<~RP#eXBqi_TlPZDbf|S+ll8_JZ%6~On@fuFOy?p!Mf1QH1>Qc@! ztzke$X1R_?peF6esMHlI-1_$N@&xrAg_KrV{8<%7$pzeI)?UQ8q`+GGz|Q?&GyR@l zw;dt>Xs}_|q{$oH77tU<0}68&#zmR}pbR!NW`LvXp0;h|(Km8au-`+$*Yb1J)N{z% z0^6p*CjFUT{NqB-fQ4+Lm3I%*jx$vu%)t{!7#kY^nx>9Rgj80O_@D{2ET4~9s1Di? zcI*r;gW$QIhY1e_U9;ggjXTrqK zn_etR0^~Vq1UwOmR;7#1jkL|uxdN)h_uJ}3}ZVJ>ypnj>;k1tc<%h3zhF z)IF8=rV9gFTTxsW&fvD@x9&&jEP6n-i$h0-b&buH@zE^0FA9H?j7GAi@bJqFSm5gHXlCu>RH{xxv=u+Zzwcu0>cNqeEe?D(7uRz)AUU z*RUK*X)~GAo*;^qYh|tkT!<>Sxn%Z9PEIY%xG>T`>Ci+$mg<`Ay))DyE~rcf0H^q76e){fqoh5Q2{1m3ujY~)Gp7?V#0&CVsnhbCtjuKy<^S! z-m#AZob&n7^=WBwt++@*Lm>nWXum>B|IjlIC51zq=Me2-V?gvv3=JdeWT2)d4BGx{ zjrt5Z?LUR!9*H@donV1_w5+jMAn`zFW;!R7dVp5f)3agf8!s30sZuRSgVwO)^4jb0 z3|u+UENaIujm#9n!ICy3at5 z4)NzW*sgD4qW&g{Ls2PP<1#xmd5DfTilo4vZHm-7?_KiA7j~?u%oI7K$=f%??UtjP z8ogKAu`;3DJ7&8-zl-< zZNfSxsKa>?zYsX@{TxG_ArVCdfSm~|NK7B+(~`nQoX&#aUvB*>cBdb63P!wJ47D19c7SUQ_`fH#0z zRN@!LuL^5gYuS@ujRqNNt1>BZ+zvu&T&@iROCAD01{8F=atQI5<8uX1W)(4V6#6HL8JsmF(yGW?K00jSgsd^=4FxHIRF^24U(0>BtBMLw{?*p zSA{?H#!KF}i8QrxQHY@G;JxhzOheuvCoU#G#r%MhQB2Etp!3xrNuZw|f%4#gEBi)A zh;<`3nWm;_+Zg%%4xVyWyEB+eMChG}ytDuxmPD(Y?4Q+ZDT)_)VyBxq%{}VA)o1rn z$0BGQ;+ObgaOU++K+C=6pK>)gQaQ|>pOdB#0iEM z4Ko<}P1<}^V8_f^qb(*jV@wj>#mPa{H0BIU?IG-F=<^d$4LwJLQ#v+klO2CAkLOns z;PPxL%9ZHI<{#GW9jA67bbZ!C3B{z* z7V!<$^FVmcEQ5RUA(aa}u`iH)mrv{ZCW6%2)3;gMD53mr=kmeyeELuDg1qnlno@{= z#(Q%$Q(UMz3c8OkLdV(DD(MH)+Sjm=cQ6HEab;dN7fr5_+eFxM?Y71E{DTB|Ww_#Q zIM8Kp97wwwdfgb4^qRh>zWqve-26=+2lTC&PZ6JJ`q?TbMH+eH7+Q{3EIIj^+GUcu z_fTj^mF1mMwTzIyBb!|8Pz42?I!}&C8?kt$=3O=>zCBrmz0>PqZK-1{Rb8&YI%tzX zx0~sE;`dy?{Q1{Ch^L3+4dNC84vNomh(;~5?qMY#HTiMMTl+(yl3SomHQ2CH zER9!1tW}F)@b4>3={7pE`4Jiitu)Sppqo%b=D8r!90JrzD&VdwKD=JQLd1>c4YQw$ z7Yup!5<$O_1ausCdxdrBLATXkiBQE8?$YxYlPIwm0>`y2t9Mk|Dm+0+$VkQEt);E+ z-k$Ho3;~~66RoZB7G%t1o?<&5k@bTms$nZ4UN;VONUI2PU*u%*p z%+&^xsvk<|(>}>5lhv^BtFN!jX|4qyYbl!}T~;r)U2ppdA%KSlgZp*OUTh=%418rD zQ%8K5LT_tqqt}lu48_0BN_0)*DK_L7a5|`XUH&}at?oM@9{v2b>Ghb}VZqCK^mmfm z1a1^d5dPZs1UMmC*#(d#NAj(Kq~_OZbh0dQeljylPr|if=3jZ;oN`1p#}93vR+g?X zQtPeD4W7}DLqt+~GOf5ynD_<{Y7?O@xiQThj#@W_E+Lak_fw{zFAkZt;6+OAb;50t^N7Fjuz3z6mh!UnOe1bU%!6bm{lca)~gLb1K;mpW_I~jwpdxb{y zo`y!oa!PeYJxKc;D?gNm3o!WAOpXInIU3qZq`tom#^AE}K5Xjjz>B9}vVde-J*qm- zjN%9NDOyj&VZ)Wl!Dn^W4u}9qxW;TlAwU3Eyp7&caH_i;_dmrf(%kZK(ATmMTj_ZN zxQw!@UhB0c%cFefMH;6_;YG5)e1sb`E0%R#4^xD89D_zqqsUr9P1l}j$WehtyHvE* ztZ<#B6={wW!X1xcFY40mHUY)EFG;dcfKM$HLgcMal%qPVF}#D-5Uk{WP9jx>Ho`fY zzg3mEbuho!0P?b9Cbv6Y4XN70a|5~6=;XC3$-wqI!VT4dE8i>hXE_89h;>+OxUQHu z*q8tKRGkJlj+VFGuPynRGfTx}GdNB<0hHRiM(d`-6;7xg@bFq%MqJ@ob(%QKv$c{Z zET4;mZ?F$9)Dp??bsh7GcV&IWnugSU9nfOb!z2=p@w4MZvwV(Q3P;g4ZQl${rH?ye zwQY=1`|hNqt=j{@+{X!}T%N|TH?|x<7Of=HiYD&gUa*gzb0LT*GVbE|EF*B@ z{ILZ|p-p*bTVEbMoR}~+`u~*(5k@DH zD(~kc&j~1T8y@Y=;*q9P4**0)A86;qsR5??SOVf)1G4McT zvtkGPaYP^!jCFLv!Y*`MSs8BsDUM1XmhuKhDW9|x!c&Zw>Qy}$VgI+vOZ=`k1W~e@ z20V9yW`-8`^4rnBeRO*Q08=U? z>T$WR-@kmlA-@kAx7ap*E1!fSyNjKSE-OY^rTf}(Nc!f}{Q+Gxi%q++Dl4ld1o!3t zDLC(DGlzs44T(tzM3DKOpa@^302V8Me#t8Y@^JdRZHWZRAt#ss&rF*TTALn6m!0|i z#xG80q6V%&B#&hJWpNRfIr{T3ZF(D@WTG0G7cw%xp+1b-&A-bP1cqtVMK;sfJ$?K` z#dHl5PV+1HNsb3YtZGptPZ(wrO3LEf>cAM~maOM`vHw*2Dkn&1-HJy%^M@KdduaH> zfnOmL)}oD$a$tqHbOQxUj)*EQ8ekMG*Vt|2Ks{~2yds`hDoD>maZtRZ@E)_3<9`S0C>7kSig{`O*$*7jn| zPFT58nrin^1*M=(l!tjfJDiq~V84(d1e0)$wb)s(c_w5jNjnmRmx?Ap={%W0z6fTN zhvM?Kz2DT5e${WhqUQry5G0@2@C~qc6LReTi76M~y~^<|J||?zR8n<(xz1O|9zhm3 z5f*s8uL=6}NyOY62g~6KzA-MlS-K>*VLvFA9f!~IQp*4b_q^jB8u%9dlJo2b^Cw)M zEp*TA*P`01r+itSk2YGevddyk2FbCJ*faT$PZL&R?YcNeY(Ut1+ZL6HfeNAv3QYBi zzVMIOrVr>AaQ#e5I@oT+35RrnG$BZTt!z|OQU{>l@w5k~dn);P^?T6=NCVIQ!nkWP zHuAi#@Z<|tw@E`v_#x>W;J=oqiEnF9}>~8 zi;3D#U^=+XxN)-bl5u&(a40^WTcg#{kj`yD^dlW*(|;63VS`~FIICFMu5FK}8Qu8O zKlW`ADNW@n*ONd@!8OME0ezhrs^(mg;xMAjx*HgCflisf8H~9MdL29e_z-v?QPl^> zP*@hAF$<-dr*`Vx^8iNI)ysC3jx$qE8bl5kL8cq%hr}s~?{s;3Tkj!j%H4?`aWO?c z*;Z2&^Xb-9k?nEmfI!>Rv1Xg<1pyfzu9I1oAWO<~JP18+ku0&R;E~R9HJ7{ZPKE=a zx8?TEEC$F)7@H+r3DRK~meika(;p0bbw#nmFcl>kr?cRhA+Z>BWk+1VNeJKgLwI)XV9 z93?n?ItXBbFF){ETnrQ+c$3mSRrv7Dow{<-OX`NqK&O1M5eP#&#M|Zj+X_nSM^ft;Q%C8$U4*8^ zoTC0q$taqdaigiqz*2*;AByekFWSFb71oc>Uk34Zzauv|6%dcz@}8sy#@zAXk+Gmc zKy9{bV4`XX%ts~PR#@OBrg%62WZPgI77M+n>X^?^HmT$ZD((2nfr{%V9im~4uFWbZ zNrSm+K67|?VF3(8c*1t5SRAT$EiVsd$tXE^?$=K!-IQusn+sFy{3+BZz>Jy)mctOh z$Lhqh2{`d9dCl-USP&P~hR7nL(JfF56k7;NS&GG1K|<~J+rz>4?)d4_NK2Nf-yab z`WDMtSCHoUNJFM8A3LhVX+SM563L~V327DfT6&USGX|5YnmdI*XTMvr9&>Kd^h#;H`-I3roP zI5-mf|^+9DaBkuoyyEdY^-hZo$wEO_@Zs|~sK{~P%D2;XTQev+9 zx5f2Zy9@c$NG10~U``gTB`f63>07Xte>VOMu&C5jZU*ua>qYP2Sn?bkD`Ev{%mECw zyq46XFOMz^?AE7pjdO$IV@@4TSMn!h*`d8)T6`I!V5jE^!OgVV97GW$Bn58InPB+A zb)01ZGTJ$731e7WOaN0aV zw!-K0>MiuF&boHNel~V^S1b%K8O^?D&kRH8uM@8XG=9vK^G>?>&>NUzC3@;%rR)mF zBQ}d{RY!(cjTrA7#}EQRm--I+*A*mDTF@jPOaa=2(g3sqwJP>0KR{qvWpw=e1aA?`mM4j@1XK4r zO{@X?tC=@|GRHy^*y@X5faWl`LxknmO!1*gB)cjBJ!d$iDa*$wgFr!lpl9rQ$)+SaJY2lPg0*=cSWwPM-rMXq$PCpsu1L`4t}VTHs%osU()A2^l;Kq;Pi&Ow!tAQHtYyq{Dd| zgGB=`$?3uvHcR@W^)-Br7jdL&{gdLx)0o&a(#j9^!VVG<9^c=mY_MYZds=FY70P{W zGvtVPLu>{)S-*1PeU?b^D7Z%{iL#)Lj_O2Z^;&%S#sEri zWeWw3K|AwGFtS)Ns@iuXv76LELS!!)IH_CpA=b~Gp2uxf6ZD@YX)KyIJ5u;xm!*qL z^G&AwYFIg!;{)?Hln9M8D< zQN{>?If)NwI;Op4F$Xiv?GX~d9)AvO?UrHgjzUbC?Y_k&CGY13M+*Upn%c;>oZFsR z`b2evc2e>ewePO<#-Gw~+I4AEo<{W5DmznDkuF@A2by$JpEJB9oiqDwA!%)xX9ukB zyY;txhshR|(5SDw$#qwmDpeHP9L+Ze5H5%#YtYU`Dety3?)y)3;FLb7HGHecm`~XS z-v56whYl>l@B@bYJl78(Y<3v3$qsOi$czCMqj8+7=&tOnidJ_IxFIk~Ml*p}H^WL1 z4eqolJc~^n9n{w2!eHE%!!1hWKF$Bq%WtWVOT5cN;cqf?bMqCCuJ;;`3cbo=Pfw9G z9w4~q?cUz{3u0!zekyG3NSaD5?x<_tin78PJ-Wn~4p$f&tlR9i>KD>lsQx!Aw}v7A zwhRa%zOAzSc%Be4bP(aop-XwrxgK9c zD^L4(|Jc^r=n|PWEfS%@u+6YPDC~I%(SL(@0rxze!aTH)W)xCfarw|~{~?AcJj>4X za2(lkR2)Z}?Q@LJ2q8@PewLSh!&rAhHv?pz%?xMS`f?_yMa(@0QO#{t8wwZL4GW9a z3f$`UCU4{7@Onn!h%L+dPW2?SCA&24-nxoU?(lX3yzKmaMm9o5O2j-UW-RM-sP-y6 zFE#nQ2KONvOQBS%b|PqF^8Z;3JVyF8ZPq%Q6npL#4e*$S*1mX*uHiqoc2J^)kUO)B zKO}OgPX3mMDYFp$(V?4Ma%x=X(fQ2{d2UBiqfvMFet0Uyw5%mKgKjTF076gAt(wS7 zNuDc;{m;-QR1ONK3RP5RJz%cCytavpYDN-{LAD9o z#3D6wi%1GsbQ$Y^<@--!VA=)mEbBa`xI`92@0GXF`sX1C0QoTsdEw7GpbJz9DTl(y zQ9WjpsOax`sk5f>Y)sz?HQ-<{F|*ekIO~+avrLbYPw=bkx6BpFbjx>BM!EazPE-A$ zNXYC+=ioGdXFKf)jd$K(biw{AT*KFyVbZ1%^h4tqJ2AX8{p3plZ$za-9YrMEE{(A zi!mLr+q&Fl+{=yJ8_TXF0%Wzt>vP|4_{I=tT3|>f6T#GX2S+baQ{FD$7v5Au;mpH5 zQwi+7rqXN0VE}J@!T$+~`(JWY7x;!OP=}lc*5~yU)6;v_f1}CSmvbzmYKK>xtK(B! z#SQQv^!@EHYybrzgon#`Wqdo$7Q59#v`Bd-m#MsM04qS$ze7se{psid5Y?Akh$l^g zpXsu57Qpt3S9Yxah*c~T-c z4m*L!vuCM?_-$PfH*HWD76|Fuh1?YK1BCeJ;xif&zjz%+Da>$-f|OHDI8MU2+$CgA zHSWCR1Vp=chobMs9w03i{tcL2rO3Xy%8_Pa863m*Bl<=@dTAOKBn^kv8h!QS$+8wf zc|$fMXDcf|ORf$_KP`ciJt@#^8#*oAi-OB7>>P{L_=y`X!$BkhIltQrO>DXufuu1KL}Tbz^Xn zMQLT=fg2iu56coe(<(rfC!_6-9ZC<*ak}?fZ{@B?6_J&IRsnOX7?Q5~^Yb8eF8Zlv(i8xt zFKN3hSXPi>;>e|e=oYt^A~s~XZ+}fH?cPNHI(%ebGfK%m-q<3#ZBZHO9-~ns_JP2N-dR(l3$SfJ0EsE<{X4mg3`jd!vGVBkGQ)QIJZMnDj-8 z9j2B8wu4v&o^-rr7bS}*j6yXW6aVAyunj1gvruO>gVlN*m#{|R(&_<2>k`DenOA#l zT)h2{RxcqwJg&*DqVMlQxk+xv&5jV0+07o_!k7*^=Ul2#N?XF!6~eNi>c}9}oh)YO z{0a~(Wd(TRlwNB%ilF1cVO6h-9BJ|9riHj*`PnGFr)uu^r?24!0E?8^y0vUKyVTCqD4_r7mg!f{8yDc4Ci=D6mJ-fT1xxHU3ph|HeW^ z0h+k`T1Y7kl!kl{v7GtPnNz~+8{ zNnSrap`>h74|5Ggm~+gZz>Lj(sC}e2?Q2D-MW|V%Xsgy)$id*%==5nU)Js3s%;L60 z5gAx3_%Z-&S(g4hzHs@BQ5DZ5d*FInI3%77eCr7_$fqQhB9i-SO&s6Z=F<7{H8E7a zu91MElW9EERND2J{SiPb$GQdqH>{VC$%EKzKJ(zd-rL3C^TjEuwSawB@KNoAi}Y=D zKsq}(D&q^1CpY%5>iH!1|JYo0Jp}T!CWi)gO$4;;>8CI_H`246o@{Pq^vXU}YzE5f zcYE9fHfCk{y1@wHPawvJX`BIvDts~;;b>C^PI7)&HFP!xnRGJ!mwBaQQKicvJF;zN z$ms4?D%$~NhVVO?qx;mPzS+$7=JZ(!MqcJMMx|0P17+U%lfpFy1x0|~X+Aw8iW9_2 z_kU;1@zZ~WWm&`e6j*Qf=+&tB{H9D>pFw|ZaFH@z0_KZS=;K%*Tm!ZONpl#>js4_p zH+<2qk@OCKyoR;(d!CgTrR(w71FjAjWM%BpBe*pQreA?A#A&kecMqLdW z^-h$(vWH$XVvc!#=_B5_1~&iGHyuD9q{Z)CLNS%)y7PR_FTmmlb75fK0D88i3B*lr zi~#B;VcaCVHs;fVHzS8Wp>p1YOJwgd8@@%xx5wE@WWHfp9wq8e{5ydL6RL@m>{X3s z!f4$!Ne!j(VvG5J4{7QZq!Eq!~20ZVT(1Rl5u=W({&Z zk+4mIzY}kLlnoa%mB!fEA^`IMYxy?tm2bE^xJ2W>q+{!PYty;1Bve7@ZvU+4(~r)t zlxCrn`3W1vo5dN9IRPdx2~F=&)>3$mpjIN67dr~RXIURcP47KuS?^tvpW);_*0C3z zCO<=UtJ1`ZkiU&|{en8A4i8bB)bH2$ENOztS!7wdA|xB%*y}2oNXswSxcyCCt}*Eg z+>HNtUx70v_?+l`8J^ZvuzDIMM;2;viYbps9$Kn?03wnMJkfcn|d-o+IFvK+SoKS&rDOzN^{KcJ*J*2LO?uA4$gh68!tV4 zQp=6c3=&GbqT_^DNb)qHfLbtoMnRq8F-$c9nGPkYPkD76t)dyn=v%q<%9C>HV zC->YS7~2`GtOVl1KDsx|#S0GV9z4BoaC8;oW^rD0ab`=ZK6TcGFq?UjX0ka>jx0)8dCvlVA86C=D$rJ# zU&}DgusRb$*DCEq2*(+L>Q5LPPzUH;CEk77^a>fam!6z&x!G|-VYvm~*ba%n{Z}Pn zV({NBRYO^?cm8)H?bn5dEOO|!`Pgr8$5aQkS`1u$-=w@Q{l8Li7YTDfzSac6s~Q%? zmE9AUv}^4F@$M|3B9d6n$)caaI1B@Rm6PeZ%KhRtnO}OQ#pf5x_b2u)ipgyPK|q{X)&}S2U{Hsb(B*y|uv+MRy)2q7(i_QO2MqrKeKmHLp|c{#Vv& z>hvJqyWZEPEb&FG?p4AdK1lfTidxBFw{;An`tZM)pPwP`8Ot@Q}vvq?bDKATrS7*2ZVvq(hN%n9ls$Is@C@xTm zl3QZb(fq?E;1iDT6k3oiP(e4F-vz%IgGn7OJPJ4Ai9u!6y9+8*0nt6WH>KyN(Mp-8 z>36(UBUxQ=G!sP6@_yPT0wMdq+p@0|)_xU_V~dnlaiu<7R70-X2+@!?KvzEw&i-Qm=CvuKUGexlP;(r*T%U(J9H|ti8xvN@lTR9cdo;?NQ@7@$)W`F03d8 zfr=`)MxPU;td75guPhxR#Hb^~oX11$S=_qhc{scC#Pp_D_V70i=J7i0%^L$QpiJNljGWp-V-?pi#j+?}Q zQgER=(qp_g-b7E9H$zm|>a9@xQPT>L#P$F7}+);fA8+pRT| zGfzhP{cO(WCZdZGWZlLDr8w+U}#E zZLV!k714C1*QmGDvO5r*_i$SSe|kjlRYajNDlv`D#$f=+imjLTiQW`OsNp9_emJggpVuerZr1 z#3Jkg5*~~p>1RK)ENkBlif*Bz657sw7~%+Pf zi9a&i`r=It@tvnKpVnhQ20HKccl}c+NSu3>*H!e^Iq_W!jSNls=1?<=r1qL2-z&q-ZDJ~FT*V_Ak5sV+_2S&k_wEwn;+3D4=umxzOqO~ z^7?u`#C`@_4!%0ttdj{r6PNHJ`R}tLXubd#uHANwl2Wp&6UbqING9GpenI$5K~^vK zHsyMrCp?9UAJv%lnxeWMvwOaPG)&?F+V(BOG86fbIcXt6HKoB1r3$8JDL+63r-=`z zgux-{LW{j-9!+k~04k}r{e2w6%9d8S@`^365|z>o0pqB*0TpLW2eImdz1H8CH;L%D zn;R7K`E=u)c^oElnpPh3moL3 zHpGwh$Sa4g9Qk2|h8S&Nz@4H01p!kf;i1)vkdI{3Cabf{r;Hn~#}3ICiR=Oi6pGee zkhvO-vR%N==r>_f;d0?mFdAczbOl?UbFJIa&0%alTqkL7tiqB;Ss+0)0PXG@f~dst ztXj~k7DYiVK94cF*o9^BXC8&@N^E6R@ry6mLODPTt+5eQ1lR z6~jH2jq?|yem)A8li7E8i*~=vE1PzB z>vLyhJ2$}&+%R^Oo9J|DNzs`aZN{lh3R_+yBYH9Idh`9yl05^7R?R~!DiP>=_XQlN z3@p{%P}?YzPA85sa|5Ymja5EwEHC4^|6agOm49&oDt0IHRT>7%?-oJg7d=8BG5fui z4VSx|z>;`%G=Sj(zn5AIA?PmZ~(4T-DyymY+T8Wqi}?WJ3u-$ z4UeWKvbn-0|7izDt(Y>6hlUg=B zXZQwuzt++;!nDjLfz_ccOyRRe&vf-X#H@an`&NHMH5DAU(a#rr=7^e1I@$aR}g zV_xuh$?)I9a>=VNS-j(>!6;OV?fgOEaob*qXwHrWqQ((X5I!T96iiqHG$0h=Df30x zEXSpF>0^^i2dPcypCg=gkab49P_tE6QDzgq2f@0D20s;u_U2&Fm{Dc_6aQbJ43#mj z7se8Um-5v5-QBppv^+C?-SqwMdD_JZntL2IKm|J_(%3%>=G4WRcf%njj@xyVL35Tz zkYmz6$lnx+QhNQZj-ZUSZi6ggef9-9$4Hu%bNQHF)%y4h;i0zTj-Q$17eb~RG*~0s z*Tb7(%}|{6fYUm{?nfLNZ4&+8GSj_riN!0rdpXl$`XRMxw)U=)?+mtCdfe@qWu_kO zk|aE|NGRGdb#xb2RS_SsdSe(b%F5_@eZjw3#Tuo}B@5=f;gU?CdoEGhLW~#J|C4Q; z+9JYt3k$ut_NJ6@#|Ub2jHJwvP13jTi1%(mD-eRaJ5=KEiHlrpMIJ25f(h)rg<3c& zc#S}B7C$JBSNxUc;NefNgw0Bm;<7hkaI;i83zAh&o5q!^6+l`56G<0`{WbiH4iG16 zLt-|q%%3X9_B(NhA6*tdxf~eij;jYdI*~M=)Sc*u?L0M@VyDiOMS~?lS}K?Gf$~Zz zxJ*5n{WA@$8Fpn0P~lM#gr!2XulrSQXJbK`8~QG+x(%$b>h1rJz2m@!FcydWK1x;= z#Zb`UJM_r@^pLd3{9pO4!Mn(xT-MEH1drX=t7q?I88%GogNRw*@G4?H%;__G^u%#Y z1fNGhv6d*i(Jrda4-9_7Xl2xCtd!mJj{C&d7{Zq3-V}$GTa+q;2g`2#F&f;W`SJE@ z03>WCisZ8gi{!Q1Z578aoF_gC2~Mqm#j)XYT@0@iG80b8Zbk->drAnazxxf9 zO+n;Si$74SlzeZ|Pp;IoIu{0#)yIE40>9^@VCETNN?}Y%8MN)6j@S^ahZyb%I)2jv z`s1P3_~yYa>pb+IP=-e;p9_Lr*W@T9KVcO{y*Vfts-fGE1+k8yFf@JQKWg@i%v)R_ z9McS(|lA*-5Sdcj)HzOeUg6R~LsHtpZr;zY!8 z#cX)ZF%VA~W1WmjIdY3OtF^Fm$$ndNt2idj@=&sG?5`h>Re)5N%LTg)y96_AC5ALt zPYu(9SDyCCWZEJZvRzeKcut27OU~SL;_FV+MhxQdW=(e+ufry*Eo~!ASo?inVLl>^ zDsAk%Su+5Kp}oqFL8|fKnJz~79EMVx$mDe^s|$)-aA)g+yxVd4>cu~Ty|gDi_+FS| zZ?JVC@B?>m*=eREK1Djf)1pu0gWrorl)|qiw%fR8#Q_ojy?pOL6+QOu!)czu6S&+) zP`l(&ejZzGQ<&dwa#hH^ZNNF31|t%C)AmOA{)rFqjM@FyUW3IM>BXtel{eXi9`XKR zv;qQ_c)enMq}eLeUakNGy;V&~s+sf0w%dyBCgyZ~^dZi@60N8Q^y>iWUl`(tOFXT4 zwz#Vdz$%ojrn_*zT(=p#?2M1rBa)!d>LcB3@(Sdv-*sU7JcFxO!`Jt)nWW=QH=*`0 z03C@bfP*mIAl`17b^eyk>-?1h#FjhLJ#))O@_D{;^?MUxw9juZw^l7f_~WrPqvb?v zIBKnY3Zjc0#k^9uq@b5LE`|(T-L-l}WP8J>irA=BF`@sDIVUrFlf+#;DAhVxGy7ufs_&G!By@Pj0ho7aba`A zQ0G88whJ}FtG2|uE4vn-+;>{cXs6PqjIui==!L$_2o2Fv$ zJ{QQFXV2hACrgj&yj*q0kP&!4#R|d)Ph8iF(=TFL^hkjPOXGvYW$o@xM+a!VYcxts z~*hAGIxjp|H-;qg)UC~gFuqrnE8}s$kNf3 z-Jfo*s}<|FT-$t%HMEB!H z>jb$!s<+MU#y@#TXUpn8aV4$i0(~PmM=!X`Dtz{Z$;c_`B7$~16}w%uN-9v@iku6w zepzdGh7j*!GggZ>#V;5cXO?RE_rsug6vep(*X`kGxXT=s3yYTQRO-|xmP9+o_H{V^ zo}IJQ*v`EP;H!|!y7elz;2C!s^bC3*&d?xnJqjyul}G?ZTaXEHPN>b5hjF>iYS=k?Z{qa~Au=v>WyKt29V7)f4m4vDw->MD z&fE9xW`ZQ6djg5S2E|ul4E6f1m?Lt@if}ei>trHJJHjQYSs@W9)g8eBiu(NV6OzW= zI|_6VoID>N*aVznrsxK$rP&PwB7iH{Frf1D#@B42vIg}MAK-7`G7`IobYsv={9JN) z*nhlp!Hy&-cz58QAUpglX1u<0c#6jx!x{g9kv z%*q%RNV&J3^V8!x5RS_EB99yAIG2d7HCT6zpU@%TsCz2arGcJ>$+jU(d81VWYkW*0 zVmo(h(pbfDTa!voK6dDf3qb(aY4KcqGQ>Q#r!UVld5d@c3U7cn3NWNTd&blM|2Fk2 zo2X*?_-(%xk;mLPw771`2hbH<_e&78#(Sjtlez!5&GiA5^Bwm#DEQaQTBE#r$x(Fd zS}k{dL55khpMQsm2NT^qQ`Y)89hEPwHk&>i_f4Vv;hWse(>j<=B+Z7|5Pqyx>Vz)x z@E>0DZN+myJoG!;hk}2Y2HDw&bfO_T0n@rED9i}`rP(>XXb`$gU{i#MB#8zV(JOss z3Gr*G8us;8T$7jeBAUW^sNiNR}%`EV`kurPG-iH(tcC64|=i!a-TqE=`S+|Lu=8VTQY-pbr%RK;DpX9pLpH4x#;HA&Es6A7=W4;Q6=Au7bT zEK^f{>bcwfF4gyq2N zx2XRrLZJ$?@Jou&F||Rxa&1wZRh5XjvuP(Fd1&qJsMX&{$HWvtd&8Csc#fSMyT;xq z@sj202Vk-7{{NXh({=?94Et~Th&|%lzE`+>cYTC4{0FLZ6X5Rw_}Y0&1U?d~jooTc zWxey`OSxV(8l0HlI!+-S&uG0=e`KU)Y!vn@7#(|C2bvkN!N1E5>w&ZywMC2!Xkr?u0O7-d_p>k z_+u)p8SCu*MPlojbNk*|BYo$N+(%&|Q+JU+E{KKN1^OetJ!tMamy5CR4z+W zG+Wke`&Aj){<*sqYw9-GjE}gN#XFvUtsy@yac2qy6`>x13C`npfARokq_+$4iI$82 zc#Rqj>|MXDl#=eiI3lz=oJ+{}s8NMu#>oLiL@P0&N7brAkF1@B8Jt5QXV`F)q|Ixw zP~KN=#DSW88b`v-Yf?HJs_tg6PGzC$t$2ZQ23JwN_rA zcc%Ru-(bGCf4?8J!yc30w4gf2L$7AsGjK~k8<9=Y`yq1mZ>YoN!s}9BE7sbBmlC)sQM@uq0Ns^F*bowX+gJ?}W-9n?B@=w(kPM0vR zH!6vP3xRpOX4t(z%)&!@B8w@9Qij*05QmYCC|EmcnITR$MbQ3j_DGt^>#OH3Uz%SO zVIwq>+3=*ABE28~YE}~}CdX3hTCQnaRfMn2U%(pro5nsZ*B?Pf^<(V>YL^r{>UDkH)n>LnQfB4KnU;h4=33?45G z71Y#9zjrCTY7MTLc)=?B7ek1FSuRMstjOK5<{iSgytXkV&?^N$%~qrrkoaW6n%j58 zCk7hEZ@G%;4ht|tbsDNPI1^z5;xIG;;Diu$ZA-&Bf7;jEU9v}YR5Qw9+H8R9ib9p$ zoi(Wm(O5;jj|06W3Zil+tHSM=^aPY*|JF-ZYDMk5ByCYaRJr}Z3CR>1;Lx7Z_~LBg z`aP_?os;M6JOZO-)8;ttH+5DV7N`0aS_{qVrKTIFo|hXh`-0Cpq+xrQfz4!AXQlAP8@9~fp5BQzHUL8Jw9YkBgNHM{YK)TJT zMutkN4v;%HNam(1yPop50*@W6C`DpOIYI=HI7c`S>HHxG?5^Z4T&eA3CFO)+P?H)= z36?_79k3tfY`i7tRx_M|Y&S7FRZ$X3;&M*`njq9sUT_U}@()Y?rOQ&Tv!XM#(d|hQ zc-Z^RV)D+U>9Bms5$dpwlz^bzsKy@Wrj|F5FzS-C517W{`KEM#R^#r8dzwTp1|#J6 zEn&0h=S+7ATD2!?HMhonDUYkHf3&N7UPJ}JQx&@N!-xOo^QSR4tBovGZ`G~T<&od< z#TL(Bh(5rU-L26=V`Yab;6|Lof{Lo1jy5M8xtxVn=g?hbr@(M5?(m@ZkYMy#0O458G(^YtM%{+Q zFiK!k?B!k`XInozp^t6oVUYjA^H57G{vg2{(LF~n^FfcGy%DM754<$@)zGQ!NpY5< z32s)zznPMVJ7UeoR}9Wb62Co@3;A5xhc@C}6(u={~Y-B=B^+tt4TtNq9L*|cdAwgRY|Cf95pdw~r zfUW!_@7F{B4tARI*sH3vvu-`F$xyH%fMjc?VG;TvfplH%()m$*?Rt7DPVr`*SEyr& znFKWbb#Mg*$HYZhxw|z!mzPIUNpX8#x85G|6)Wyaj{PF(k8F*@Z1V1vMc;NItsf0M zPVwhLfn1lKbUBR)qYQ-M3o*}HYunVuf5jCgCrmc6-y&k0Y3Hr9Wf?6AiQZ>|_OE$w zz6`2ceMLTHsmaU&qpHyY1I|VGp>Ao@e93g;_3L?hBUzJ0fD6erifovAL61ni-{{2l zFYTtk5JjyvDY%F!@x3wLcDtV=sE--Te!mm|p`0o3{LC_5OJ^6mdpD|QCB-5_WcXXb z?a|)s1ga(WwJX&;JFI8+$G?YybDdJi`r(nkGXS!ZH}OwM+~`xHtgU5>e;hHlhk$PK zkos|*ILq55TlTj{%U(JYPc2Hph9B;iLQo|Jgtj~X3fT>{i?J=Yj%{nJPxpg$$b zeml%-;p5^<16KZMCk;}9a`t#_1heSd(^m9dd7Duw;{1CUlg1K~VT?70UDzYL){8b= zjLqYTcg78FXY73#x3-%FN)j5`&ULo>d$0x!D&zf}Vr{p9#{CBErPSgKRG~2eSdhC? z^sZzVyR!`nR;w6Lr|TVs1?{LWF2#tDm%{oer`FglIhbSSU-y)nG@c`ogH5@y%ljQ+ z=G0Tq5lA4RP(TJ)<_rFyYRbEU_!}u_U=Z^6fgM6c^3J`F$r14B%p_y1ScR04*V=-y z!P^6QTAzBW5EcZ^^r7~^#d0W+eqvu7g2yBzP}bUnEbHQJ)%7g6rp8iX5rgtse?Lds z9e4*S%V`xCcoT~o80DRASsGa8JL0IosvS9ve)NZ~lJxiv2>O`nn1!4w54MX@*_WuQ zr7MlZM8pbD{9?9c+C`JigUKX_=azUR>WXa?Fo~m#Ph}B=tqs z-vYee_1dT`MO#>=llODX*EHcyXo?JJNt(yAu(Dt;F`?zQ<`>=&mZkeg0hfx~;gt*$ z+`=s>OO)!Un}TJE?BNQmk?UaQTj2`Ck%DYLS;nrRe{rePeNxJQ1_Ev3so8Wun>6@H z*E5c=v~wbt$aeTFlZO6g?iUjxfkr>-zu;=$BU6SBu$xmA2}nl$?Svtjh@F%)CdmC$ zoR4G@jUq!3pgb_Y71f}PIV-NF96XIUn|07>qKUlBU9f0iIX45Isu|EtnG51 zIgUCp@9&$n`QTRpD9Z}KUafZ6{qKlMm7&>Yv^s|BVo+U3;y8Ca)3)p*LtuN@)$|s0 zm~^SIwTJ6DcuEB9b`k)HVPTHe8GfB!f+1+QE|(u9H^Jvx?i`eXD$gxwMC;)` zab4e5EFZerJKI#H>#}p1%uX;iH$>-!efYraXQge5c1ZfT0oN-%6_T&fAQF>(Z1)j* z@#=iG?P0RO`9-2~HtoM3XYV3pR$V8B|NfZ+(3bX0G^skkOJ5+{?6@$cKgM`5oOwqn zzKWd;74bC8S1B0Q#M+~TtgfMRB8pOTzUFbZD%f^i*Ux07IOn_0&{`Zih6@{WFl&4B z9!DH+02@&I>*PA9Fe3U|B0fm=vEOt$x2W=do&;G4=?^q#W*PEd$%%7f=FE=Jr>dip z64YE2^d06Gs$;X@UNOsPYk?dqCd~O4O6!py6b=}K@WWO_C@jw^?PDV8{e+)m7CJFx zc9P(qC6CMTCg>!^+PdEqO-5lmq0>-Ag9v3m!QfH7*$XlEnL;iu}aIYTg!<*=&C{(}sCQ-a(q*AR=3YDSav+Y0%FdUCyhju z1SRraJ`|e~8AqxW^bz}gEtCkWP#zuhP6)XUqGVMF?t(fdbuyOjE#11&Sr`HEQB`(&)kRLCnP&JkQwgmy)<22 z8@8p;(vD(d5Tl~uu(}iB+&?LXe3(F--n81I)}Jsj0)P`ntD``pPXm|WYoXN7R7R*_1av*Dn>1%LYy-CsXrQy=Xpx+*m1 zzZX&vii!-kdzj@RyGnU_Kkr7<)ykAPbsMmBjfd3&9Ng24Ff&X@fpXgSf>;5&cNp#T z5*V+u-nuNUw*Z8i3cI7LAa-wPucf&I2R-Z^kZRUmb{g);^?U7uq)^DQl4+3u zN*qK0asTav&R+Ca-=>K~c7t-C`P9gIj$*B(d^|2@*ua>l)|@G-XqQWkHseODo-)Yo zY#<6k5A~hT_?(px0cm}3=gGT7=$3pofg!QpS7HBtoJ@W+lwcUIgGldQQ0Tm63N$$y z{J<)nW=Ljwsv&Bz-KrjvKI^-_epAi<0T5G)95J@={EA{q#)R0?-7h6>5`oAf>LmFl zB(tsWSzLp#R~{0SK9mKVkv}tfhm2m*)GixzySv0(Vd1=5-ZEOuOkPuI*YUKYN~S;f zlCTbpz_O9Zry+#12~dGfFse&ymY0n`a=bL%^ND#83%%#>(`AKxPcX?;UJst@#sd{` z&KKsifSQmN9C>X4S#cqiaSI+R5X^;JTj!swg!8ftcc;POzfvWe%YIG9Op2{|1aLQ) zPSCqmdyLs5rO@ziB2Z?ZC?u(eb`PDcl(Kd6(xzGG84j&&DT~Tx_-M@KLffc>UY@-D zYB=R*uj{JltGG|p<r*#r!X->jzXhLW@1#X+vl6Y`#DkSn~2;8%1v77x}x2mnMDE5@MQ z-e{hg5s&)P(^K~C1#HQrhVA;1hT;Lrn@z6s9Nq&({enN!Jyu8Tuh^vLsvjn16+rsu zN09Bu6cVT^%PrUgoR=S&*j}>IA;pcM7D?ap#sSXtGa)BtxYi@6uPv z6X#L0fAZKFE7&0ClE}F(XVz#6C3F4DjDTjTq>&xYXJu-o+JvdMwYr~5yR`JY?m%d} zeAr1`V_!RWo7q2!(;+Gh)zmLp|6HI(z9c~2p}w}S3e25IZLJz0#c68YBXVauY#2wC z8HxJD5P5&$)7dpzf+eM@z>xs3Pt1cEPJrY>i%l(Of5z33&c8{zjnJ+vB3v{@K#fen z`&gd4nmF(Oe*v!>-5VE5{Y9xL{LPsg$#)vi2B-FQM>pSn`?|!Y!Wn*&t{F!Ef`H=p zy#EV*(rTLC927#@rEH({bGwj29Bww68Y-w_6-M~NHqa28+ZH5h>nQIs=f;>8ANu4f z1GdABU;fK=%4d^;h;bgR#!r9k7E4=l5FDxsdAxDqC7h=JVFET(Tf7!L6BOnu#8o8g z0j!P>iC`yME(>z}PP&PpCs4v2bjM=7bIPJ@^9CsLjG~tF-RK^R(cZvJU*FiFUoZ>3 za7^HYLJ>#R7!2s2>ar~;*_Bu*?sSuh?s=|*9Dm0FN&T=xY3nuOdL!XeEM`bVt>rQ0?5J~PO6B)`jynx zFEcv;FYDx~Z%Ek~@<2D_fv-6zjoy&lxNl#FKS|a)Dk+tLg7b_8@f^_4IE>by z;mu(zHyz2xjmPa@46sg2??${k{4I1RhTc@dKqP#g7H=Ey>?h|h&Z-&4(4r%RS2-c3 zX#l8Hi+W*aaFrd{mfC@Oc7MHmG%}aJq1ht{o^M(XF6p4;Knh;BM@d(OQenD}56$f$ z$!fg_jZ=?!zDiNg=Z4}?na-Z8K981qnRFQyGU#@d)rYr8#w<`o4)b% z%7cb7Oy~Y=V-@*x--$ey8pWWKzTFep@B{av5SoHFnQ&IVttYChcV*{b<;IS9_W!g%c*UjMFQRi>gTFN&ke87j$#MC;{yU=z#6i;Na|U= z0$`Xy&YuU+Ncv#s!$ZbYZrE=Y-1F8Tl)t^{*O7yf2yXQQ*E0;QGBh+5RszeA#W#l` z1GC6m(K%3s16KDa$*2CQZLaY5SEinP{t`B%ME4Aq52~e8?TD6MeDh3XO99QvI&wCc z^wu$zlfW)+@bE0nZI1G8Ptg^4D4EIex{vdLpN7-ZRFq4X!6@$%^8%pqMw-V*Wr3#y zVOc7N@I6on7aMqyIz)@^W7fFM&Q&rNxc9au__RMwCP%S;Z9O3eeGIgJA4zF~7&j>& za=QBK&UsFEa=Q+$rQasm?WH~eJ#pQ<_R?4O8O@L3B}jg z!SmSb$CaA$5@moJOGBd2^yyj`HOiR7n`QJh z=5$XSo4e2MJ$C@F*_Tv1wzp(5`+jBq>sm{(NM2enayCe+8!O|T6b=>IlWknKMeT0n zqws15lw?J;q@OHuujmUbZ@)ACqE+vZ+; zoaojZ6+ahYb(6vitBUv5cMwB@eXYD$_>)ri45WbIB zmz_?OU`2=uD~ga=8KhfHBy=b=vH1MAp(qv<_2NY>O$^!c(GU7E^MqV+CmX6=gQ1&U zT^+AoyfWZZ=T*+cNv+;IhJS?g-*@k_`MsB-@73!?096=i35G$SB%@JD3>ZBG}noWC2Bu!Y~A!w?C8bH zx5fFZwf3sN*Y#X$fZ4CcKtGv8qtV4a6gVvVJHET4=;rnyXqx#NCc68|xC6t9i;n(VEGw$Qq#XMHBDs!RZ$I&y;R2I;< zJYcICkFNskGGIqDsRyj#?3Uz!AegH0m%N04t#;&y7<(9JV3sSvgaT@fpd2v2h1q$z z8MRbhwD?~#eVy$~d#02bjZwt;^{XJa6U;ch0%6%aUEG=96+B6Co>I}8` zTy+BoGSiN-YMyT9;Gl;DAJMSLw%n0*D+5Zd7~XH5O3>@jYfR=HGI72DG=y-8P|9L> zJF=-p13R|1CcSj#;Uc@XS(-k&2K!GXLy@Gig`09?{O9=ZXp6#4IMWmSYYvEdfe^6D zqzcOUdv=3AJGB#+@m!BmfEWGx>k5eNiv)-d!gTqTYHj(DL#Fv zQR90qGARk{?~zj8A>}-rX!ze4Wb$l&%aZ8!R;K=7w6-phE6=Crrwjy11N-;`x*kIU124T*U+CaA<46(FB+c6FuwIb2s16&GEN@c zAIMK>psfIMHPTHQi9eFKX}tX`L8#}ek1>So#ag0Xun^*~JLp>%)*SaYJEN#`NCKy( zrQ>o5h>i`9z~B#NKlT3gV4*k_df~lNriv_9?}+eJHA5VaKspo!40A1l5Q}Lw-7UL2 z7~)WweJ=x#J>|48ZAW>k^nqoen%(Gc?tz04RHPOuAFq`;a1cV&3^1CC6leq)r%0!k zZihtqjS83x*!D8)GZF#kWe6NWc!Jh7bSPY2i? zSdEFgjocl<4P<8Gd9I4t!qnE-30{CGsFy zJ3L&BkO&F=7R-FhrM=P$>=N{?W7_S?oBAj)<Gu9o7F&Nj-0u`Zp1h?ay8e96L`XB2j7 zZXnr_CJhJQgOYJ->)M+GWT&2kw-xdm4Ts(z- zH?GYt3(Na4Q6Kq_2C5|bVz1I|G5`M*g+ZCplH5DyOUjzxYfI=v=*~^cuVmSy&Ee0R zdQ&bMOfmjzq;$Ud34*VceFmaq5S{t%fYf zX^XwyCbgUxE%E)OV8p8bf1SgYZ4c&h(?(M}3W_WSRVt@pFW36F=n3=ans_@c2)jZT z!dDMupl~L*u_Pn;e;2ya#g}vx9HpGm#9dqW7%!@2iWa2CLBD$j34;2!cplUTPwx`V z`xTCau>kDGu1mjRtj*U{EzR6-%KP1`-@1R}c?&Q)VygJgKcF7>YZ)LXfMV~0zVJ;$ zNZ8N^Uy3oJYPU3EjVy%Afa|mKRO{CicVZ=ml~d~YMGe9KP$)eoYq zrAYDL+wR2Dq#R+}W#S0>@7t?adFwW@H1}t*<9$hcFsazh$LOj7#=C>sBhc;JVhjmq zsP4L)V8kH_ACWA&?}~f=?mrrahiU!9iVbH1?0_&vj+8z=`kcRdDO`Q`&xIR-jw;&d zA6E%W9xughxB&!}$GScku7ou3G&M*0MSuAK5gJ|Y&NW+jKvXKv5E6Lba1YiW4p2cp zhd-gIv`grgi`i9pb-HYI-KgLDpt@%ndcUZGH1P4_swRdr7d#d|cF^`qL!%7VeNH@H zPO1-s%WII68RQ2s1Hfn%qzE5ZW4UQamz4EZy`e;AuqUV2q*s(t2OPUOa{RCY9_V(R z;mwilq7`SZ$~v&doQuhK6H2yO%M1sB6L|!!Iw(6A4C@S?$$)wr?k`6Xj0Dw7rs+pxm0@q5NG5 zuSq@$r<;y(Az)@`8`?sO(f)|$<(P-gNiu*_g{kZJd(tjxk%td-rGmtfW%mhE^)uli~I0>)GG0OQF)KgLzGNkxQ7pG8CC>F z4gYnjlc{+k?Y$41MM$1Ut$C0bR~xjh9Q?zqMbOA$Y2;8rk$J?65kvp5P@E5>tns`E zhS-~CF%g-3qX4A&pZIq?6GdOaU~q5TL?`-@vp=l2?h|DW-ga%?%;rxE$EbV&lR*8y zCbcp8bgb`Mu9sM0i(xTH!QOLs=6^%P^(^TPwi{N)HA(I0U-gWM#1VVHcx2uj)C zz@r|W6e1J-S-P9Vp3$fzFa^UWCiMolk|i?O@x>t$wuNlNbvLk1GLy_X$#j`nz9ODD zpq55}cM=23uKPBg)PfBqnJIU7An{B>m7qi8Z6NGY%h6PJ;3 z??fn_UFrx8fDUSHb@t!?g+eU6`Fy)dr1u31U?@k0VtIRSiseJRRtAzcPu~je?^&yw z=jM0y^R;&a3h`e`*D}}Mc8&KR=ed=U%f6c4TR(S#6KxXPZE2Qhki?UynYYdL%pxoexe6!!RqkkHM>l16=kCT;RnU%s`MP z>K<{nlUR3|EJA`#*=*K|WvsTBK! zqKu2SSI=exav#cpU*@3lD`WB2Q9Qr9fOwP0VW1Gj8R$B4bw@cU1O_^rGd0s5*2`An z{qr67N!A|6?cyo7P;dZ%;Q+#V(3p811{5*r#{;$v_D$B`AJP}p<29ypd>Kq}`zyOgc1%22iO-Rxu0_uGAjSGe(+uCP(dSHTdb}%F+db%=Q}y+)bTBtxwzk zJ)7@aTQz)I=v^OCiAIA5myb0<5QN<=DKSgzyJM{;`M zy0&lOyr|qVn9O>)?wCm$!+1cT})(xE1B&$*lyiggOzQtvbQX zvurdu3RTPZ-?^L(iDUa`^+14iM-Q*rq99#$BVbK}p^E@nM5l`e`t6l4N(T(Sr09#B z4l;thDeAAN+XxJUQ+l+{OfxQ+84&w*w0www4Y9nUGA=kV#kiLmDBr3LDAG2T(D3-5 zg!^=Z1b?9z+qcuU4E|jW-c^ZH#m5V@F!&oZAAkN9>U2UG!kuf9kR-?^rIed#k~%EU zH6DkfjQFD+^Vd&szhAZDYB_(13VU^r$*;o9*g{$)rGicQ0h$1D=kb_tY#et`0tN6J)J+^&cU`7*}ucWH=4)u$4s#gO;&k2md> z3p65wjlVvKH!swq(1n-?x|Id(2ETt`+051uWB%*&sOjtTYh>&M7c9j~{W-NkiU-Fi zGz>^;s+;N!aqD>;pC3;q=<2F(Eh*Bc9V)s>ookW}kf%1V;3SjPzmPsz}lD-y@& zg*PV_a|cAqoKjvCYTk3*$YBc(&BE0DX>fE)E!9R03i*C$61KY6J=Jl2ISRZD*d>fm zZ(Doeh&q6j_SJ*+VL!!rwY-AM|$(4KEPLAu)+7IQ%Op_G=`vtRgx_rK zEB7h@u>Sw(Z&z1;AAv}J!!593URx*FD{E`2TpR(($7tlAW{}tO)ts}xeMXl*@D85d z7L9SX4xtJ`hu}T5PMm>V8ubxLEce@4KOkL-PbvX1rPU?;u+WKt$vbV}IVd=EP7I1I zZ%Kk^>5wE2OUs=q32Te9^g;9p^{&8PIwa?^T_H3_MaaC|WVsSN$OFpcaPURHh-P=BrLuYh+V-)I$}ziTo(8Ud)^6*Q@R z@4R8f7zCX#yJ*x0q6_e6Ti_Ce0NPU}Da?yG{wLh7#T*u|*0`nzsCUeE2+M`DR~6mX z$G0B*j^~I#cpO^MnKk%e)@RWRHV5qO^^W#V3AE#6%i@WWSz(xXHZd@tE>$}16)ZI( zW7SU(u#Z;FMA22P?)ZI2mQpEKB$DXA)r(Lf`EHT@EJ?MQ8Y@Oy8<#)qbp&S(L_!WW z2%M^(KU``mkccHueevy11p9Z-cDs)2d*mB%Z{^V{jK{V%4Nv69e8Cj>Du3&07IS%u z+TuYKc+}mNrH>Dy7v9x4b|GU-<})alfX}c5Qs+|3*(YK*uZm-Hi-h?zOU)sUZFlG= zJMqaeIDH>zX;}AzF}-8*&2#X@kD?~xswHbv7d>#M*0c!6Vuo4GP#MFiX#sV8)JN?d z;POp8-H!#@HNY4;7GBrvY%3twH|2Q;7R9YGJ$7h^fvLzbH=hfqI-obTZsIs&$Q;5A}0wR@758h^?l{`NCa4mB_ygMz-3>D!t0GzEMaY=4lX@Q zYm?m5x~Lo%(uuGAXhgm3#uiiDD|M+`B6~Ad4DNCu7cdF4*q{^|3J(u1f5J$O=2>i1 zP0Mqa&)f3bv;H|Jd8&#H=)S#og?riqLc1Le!FOtZQ}&8uXY5Om8O)mjb>Psx>$vl* ziJX#(SD!Jn{cQyK127U!?*DYDJB+{QQ=I`B7I4V6(ie?bK8&S|#R%rw{WCO%gt46b;;xK{>3hy$f%{qzr+R~6TKT)R9iz(bwAvcczx z3)L`^x@$UaedT(7NYoHDXE&B}SV>% zOkMuJ2JC2;T^U}|99_!LFYXiM?hie``~bQ*9#1>M!1kD)Vr64P*g|8QO1JPEyl~VRCDDYE zV|hH(ef}vbK@~=%ai_j z_lFm7jBqVzPs?GH(x02Ow3M{NzT9XU`p4a`a8J}?!+s$N`w2b8fk$1(N~su=Z@9m; z0vr-a(BYI8P2*j7aVptWE~StwmlP84tgi=u@@(r~iDRwv#}jCR5uUE4$l#$fUB!vf z6*QtiA;KY#a6Tz-p*3X3mG3~AoX8X#ZTPWJ9RFJwb0_avg}KLjqh9xN_z1}R;-9`X zEJ|_$SIzpPOHUlXT5e)F3Hc0J6Q~8$o>H<3KGfd^Mq}z*^{c6o_siUJ>fs$fsgr3`iI$ z`^IcYFCDbu)zsaLO8C(b`(an?^oB}DqJNu_kjXjv@PQuV(a^X;(i_e#_O3fPVYxTq z0K+b1jg+1ofFdMrHrs^Fl?m|$YLH+O!Kr*u=WJzd$;oT$b9pPuva>|&V&-as85)Nt z>gQ(l(uHx4c*;3h5mIw8GyO6lV~;GTy(H4j<_2%(AfC2az#>{-%-0ViA82MLh4^9d z#>{DCg;{73EAam2A!c-ip=!FJO#sR%4nHf_7gjQnnM`CM*w*Cv6(F}5l}10+IJb%n zHDnwam2{FHt)EVCH6+dNISw(a6GM8vUDi^DulssXvy;3@l8IC!1V7m#S(EEU3n1t4DypcsW=dTb#?UleM_+_q6^LjA-*P1zKftimvG`Fa zfJ9=x4Q1ty=xSkxQW=fq@gbG6!OCCym1?)qwC+ANGh%!a%H4LhqD$Fta9GbLH_K^A zO^{l9PhdfuD_ssksb;&UHpQIy#bbVtX(Hj!^MC=WZyfQm2@!j?#t4P<&tMd(7@NKN zQ(t5@;E`;}OBDOL4|}jK-BQk4w2*%DK)G(OMb=*T&(erkwj;vK7wu8 ztBE(FS=)#Ba^L8P3auMKSkb&Zwyu3LzVOO4+y1;?SjmVsk$ZT0(Hfu?>J-2fX{E44 zCi{FGp+L@(&Q!S675*)>Xx1FBmSHGR!mn)~HW1Dx4wpn@V3L$+v#CjnvvIG!^Hi35 z6~N5o6@O-^skXR;>Zxh-sN-E}CaJy;!vuqUXl9!Li$nk>fwC)QAgfk*;`f23Hs1R- zdw8ane?h>a&1t+-L<|6S&$C2zejRBbXQ#L+q|h)g*sJ=kQIV>$w6SnZ{f&c5rjqmi+ES|HhEF4aNY2fI`>fZ|l63kqw~z(Z<44k;hNeMxL0kgXRh5&fvq8 zH!U07y6U&*r&Hvm7GIP4hU4wx#(!cU*_#h82kTx2>0?FeM?cTh7i!z$SrZI#867g# zIJXUVLB*dqYS$0BMu6es)p^9a%hZaAU-H+dL78&J^BoW%6UZZEi#@IZYBDJ+Ft+Bh zA@m3W5oq2WI~jlFI@MVC!C}p)CV*+$xbP8N5yyXo6gLIODpg!UbS?y!J;t(A8FwEYvG-a;KQe08^lGBZ%MTGaZK7f!*40wX_8oy` zBg3E{&X%Dn?;hxAE!6G4W|W+WbrzJpc6dfg&8?rh@N2ATaZP0Z25HdpoeOo~r+iw^ zoXdLyxTiHG02iWbfkiT35O$8@Yf|6}I%b(whj3%D=apm0vTqp=$^BNzoinJnZesY~+Gusf+*g4Pc*&+XZ!6{9NP{gCmetzfGTG@J^LG07j^9(Pf z#N_&{*|Q<&zsn}vps@@%*aS&81V@6OLWw^#@i7VHglSIBH#V6=vVkp(5T2&OrakBS ze;Y@&CCOd-y`xSSc$U(G(sKOP!Xvw}=oH8pL9vO)I=L}Y@z+i6OU@oJnLJhW&>7be z{fvCVj=EefC_-|6KOSNXs!uWdtq|;;*yNAXviI>#OaQa1%pBTPd-@|Nx(&m8kH<3y z*ZYg!k>@Y~26(fJ;xn%~;~=53QHnh;A1oh@1RLA#&;x5*js5h-AgCtba;Sbbg1fT) zVuT~PCEsr3}Qp}4!tDn@kV}97AX}4%3HCguQuxgmUm@f|FWwW>Mp=rV>@jXY1`i*XjpYzB6 zujqk5lHNSPHeb^}sEuux(9T1GEHtC*9}3pJHukyA@5ywyhU3#-6gjB_$9w+A#?YFi}Wkz~FERNom7i9YT z-<5HLXMA>ts4TqXw#T1F^L7N83oH|U`=WVIjCFovP^?p<>cUvW2mB>>0asRE--u>oUJX!$sgD zs_HHko@*0?9X-%W5R7c@|Hz&$|4Maw+Os+`onhbYA|1i|vJwy9EbOk;7h5Rw37*cU z2MbA;l^gjplUE~Bgx~no8O4V!1{HKZe8M^Py`7enDsmxuZR^~A8`pyRSHGXgrlBFYz4mS(X~-Zyer z1JhdCFeOHUNw(9LLAgp=UTi1Y5KKNLfkU7eZQ#V26wN1%ogUcE)Uq3^{ynY!WlSo;(Dp z+$``zi4@zhu4>1dZ3@rOguoBAZ4-_!qTSCS7YA@j@`Yt1S|e$NKBGADI2_|ge7M(V z9lX;KsjBc5<_M_R46b?iYpwx%;L{Jc*POQ)h`C_!4M72w(ftmXw11S4SYHMbxwnvW zKa7+&wM?(?Wp%f%Zo6lcJOYAJsY=?@x)ICzp)Eb7Y7 zSR@<;0fCOFQiZTAuUhS5xI|*-8im4%LjCJYKgEu z$a|}7a0sN8y_S{qcw@2s_0`B-kkFKFoiGqi!p0o*4u%y^p-Bb+L2nqI7H2FdghsKYYfUS|)C@c5-d z%_kcL8@*=yEu~JUXNlbUh+r9SCsHp3d6iN-URtS9LT*`R*K62=|F=~+?jpPD&Y5%4 z?siR-YkhtdG2AGNP`OLJsh69gLkEi<=9^8X0NzN^a@!G3U6e-hACFsEt~3h$Ao}*7uI2p!m`~F z4zLi3wsyGJ*l*@y2cz^#>Q7ldnGc1p5s7ol(V^G!IPgJO9_`W@U|am7C)a54lciIgRei2VWuzKk3_Rp2u`@-0-!~+tZrjW7Ic%`E4U0wRN=vl zTH>#0R@H{ztL{A9ysus?FP#KwfR~Wsn~Mn3&6n4jUa-F_BDP4BUJ;eCVk@!a?qeYx zQG-H2TscT_@BvBUiXyy8a5vW4h3i2!=?vie>HE)$mS=aIsk&IB~X6B zB0z8l1sp0eEAnG;c+L4ieu5v4JDm}JMq>v=9KuwTO}nx&FMjy*w`frS%CL$ zt&>CgXFh&`kKjlKZJjPBQ)rd^wHtp4zFw*ZFV~|n#w(pla2eCjOU)`j+XLn+KooiT z`7Dz#Hc&yP*ah=&s0hY9z?cq_>g%dB6=5IJS?R-*f=D>ss{fvk_S{7}MvfLBPz0Tk z5CeZi8`MU0|4%{p0hxuYEeitTCz(U^QCGQXm#M>l(;p^5&g|Gxla2pRP!^Rm>Tvcd zL~ukTvHD(P`eT7hHdpD}XYGj>M~LIXXuzkkHWmyq=>n3mlPQ)a?{>V1={Qr&Y%A)_ zEKckz4>dZx(cAMZrr!-uY-%w;k4e9QBTZWi-^+)xSx=Hk_$+$w!I=3f9UenY-&v~bRJxUC z@)3N$>PAhd|8>E4QD!I)BEzRE)(`du#IGHBBeeG$CK+ykk#KzBeT-g2{p{+G0|1R# z%6E-Yt3>?Ags0XMqLz6T_XESKk97mCTix8r_nxXen=^=rS>-!2h|kwH*;#vxLd2Q4 zi|L0>zQjhoi0s4Do`TId(}Aw*hnOKh%9=^DV@wfmk+02S}7#kSp?b% zl=}MPEUOK>9z`M)uT0xQZI=Dx)pB9H9~(OS8`0Cg{KWDeBt8fQpcu^m+$Tqe3_Yix zMmZggpUf;`e?T4VVEn^-Rrh<^USJ{H^>hPcopJuz`$XkQCX@Gic&=~)mn+D;=TbZG z^%^ej0byR6aa2wR4tdFlxvN>p5-6)@1z#kv8HZw>Glmthp3;Dwj`>{uebHT*6*}>l z#tj01lo{E+9rT+2jUGz>uA-SoY0m3Un^J~woDGYh7QtT;Ki8X`3%DC|RsJU1PKd*U zQr6=JU(C$sx5NpHXIs0ljnhf?flpzO!9%7&s2OYy5SPR-+~W`rq4~qH!uDM3S`eRY zrTfqp2xQD#e>65Gwk9`9x>^x}l>?J!NC~Jp(-GPwK5trZCIjIZH`^nVN_fYb6?n5s z$w`%Qja055Du zd8%H;oI{HtL#-jjYQw6Pcz34Kd5(92n{IJ1!Aa_N=_wZgj$wt$;7U+wRGmZnJSN+c z?OjsTI*dKtLZjNLo`0ectehvkg#KI3H)tqG<<-D9Or)V@fW;B%NbbCNFAX@a-Q?KU zoKu2k(rKu%vVa@oA8DC$Ilp{i{BGDLoM*&n){TBpUinV8|2iqzUNEy>F6?GJ~PM%G2 zIxHdWJ<37Y+IjL|e>iq7XB__SjsAeMd7XsYX{77ZK+WZG_ZTKY?#;Pj@G-?R0`9!v zK{1gE211Umkk6iaMcT}TVy)9zs|QK_V}v5|vX@86Y%=GQy!%QM&>TGl`-uE_HHMh6 zrh}7d^H=<|$Wff3DwTEjf?jw;=hGK%9_Y@w?i=aCNz!nu zg`Hi}w}0_lh0teEzQLc$%t36jRU&fLaXQ>$7QZ(QdW-*pGw}%lG1*7HVbn^sWkgew zs{C84)oc`APPgCBwD-M(uD?$XkrmV}-Tz;mURy zw|u#$L=jK=aK|}5aNIi+<*<3MykJEQXgJ~32)9e~x^3;S8)U*kvUbPa_7Eqj15w@0 zy9w|9ug@Yp99kGTZfD7KHT3;?XPB7+fsjo)28Gu2uKsIHF+Ar!W8QueXEv zFq1VBZ-1lULLyr+1hSGN0SPwtq+Cqkt__GPR$t9d;(UNq1;E|gB3mwi!cBgs>YaE-2YfYX@c${?p zNW&k|RD3%Vqi&xR8%H4g99W}#)k|$|y!dxM)?fBW%qGHWX(xnSP2Q&ij8N-u!O#28 z#Q#rUSlg%4teU*wdP-X^N_j@odAinD0;@;Og74w8jQ?>TZ+t)S7{LT0Fz}d2cX>{_ zB1G@|C4DQYcK*;%3T*VV4p*>#x5=Luf5`1f+(d{tCtedyYr%!y^#k&1dJ+lTm9)l~ zk2ZTH*5}SRN1~2d{%(;=Ta6PCKD5YNx=bJkFd^_l#Zq0WA77El(@m z{t31N#CPh(j}N=E|Ko?vjAGkCr^Tuc?#c_&g&mQ5T-Xt&Sb`({DUPh}6Sz!A=^<$| z>W#QnG7g%+R%9Xt)ts8>t0F$U4=QX6_M0_K0yMo+`DUe#ap&}bS?^yr=I}%C!$%p- z%0VI+8<;!KVu=b1^hZb!2^~xpvA|mDFpT`(FmL}YkGu9K{U=jRIAdZOTKexEpW;DD z;?ZPxzD^V1z9Ncz(7 zt+osvF-5^*JrSBWD^;VHq=G705TGh+V0)C{vTZ!x#*sSoxSSA76`YWTkS2|MZ(ump zO1hoP^hvH1K%A&^=UbA3AykFs zvd(nga=>m<*gyYty6r0UFQ&+OMZrF|^#iIc?2cl}6ADa7wOD-Fyl!C04(CfJS4j{V zx*)(czj`zbS)g0>B^guICdwNQ6LKZ7dP3@!PXO$^i087iHm1rlDCimRLz%7w7$~?~ z?Z4!>f4*;}*PY>mIdg~mw@6%Fl1o}4xIMV%M3ko4{`Uys9P^+RPO*{t=CwCS z6`{z)yEA4Tsyojp|dZ#I5suYbFIt}yv7l&4K!P)s?VP+5<)lE z5%S+X*rMrZGHPrjq8qBOBo-LWjW3=p0HIv-Lcaaxk_MVd*=_h0sAAh^!_(qq+v5P@ z*g@X-=4X0CjS00z$qZ2yT~UG9b$PJCSW9L$cfGMhMp6ff6>T0MWzY0iftOB1c_3#@ zbj9iIaO5&^!R?}*{NZ)#z9Q(2j#zf(ejFQC_rHI`72NZG!$4b&OE$cn~OAU|6Ha zqLHF%48;EWqH(?>%yI($rKLlUb)<8%pU3&?siLoxwxZuL} zj2XDQQy5jln49peGF3H*CnE#i8zeKzpxaPo=y#h^Rzg&P}s>Rlk@YBmiZ}LPk zI;u1|vabN+CLznwsh#+Sd*sWx3n<_G;Kqz(DyMO

w{3NoHC3iITUfWpOgnjEV(oP*KG#l$6aG<o>Mb@WWY;-Nay;`yIw zg~7(etEajSz+?ov~D`2{wX@sFJnXvBG}(9t#J06jJaOnd-4GsTi3 zb3yWnlapS?p$C72(2@tpdJ>~PO7Ecv(yxovF_ryqZ{gPaN8S{xKxti;!;*QBW8NtT zyo_{guHi0Wb<2)BEVGxY_NvLKQ?Xen57__2&Cua z;r`tP8)(@|Zun}(`ghU^V&2dCDI#3!0Voc(T#!jkMo#O^KKd{E*(qcE!nbQ8-zu(G z%C#}K)pB`MneJuK$N9Y1I}_^Yy;#sy_BGyCPkh+)FQH8zuwSq&4Xq<1vqJpdD~#75Mp-c6R%5HH0^;Q&ex(LiD=F46Q><4zTq4+Im_8Y{Bng+*IYA6C=-i+;isu_jUc^K%@*FJD*1SNrn|xorG)N#reJI5I0F89r*Hzky zeE>g&2ll!?w300s-u6~<&QajrV6!VS_4_P?ym;t+3EGEiLoan~yQ5i1)pUMA_khgb z7mvi+A(m+U%WKw`Dng8Iw^f&qF$Ue36Cf5ot4_NA4iA1gl(5qqAxLNQd8! zfMJP7owPv~-g1I*c$_8C!sov_O>T;)DAHs6PPw6V1r2mO1B;Qp{Qib3`!ENg2r~F9 zE1PPU3?NE^;IOT>H9D%ET*pziDBHD$4ABW-8n_+PmPz~&3wh=WQ#BV&ZR#5Gs`2sZ zZu8TigeuC1D3P%|fCFQU92AL6?#JENK%NaqL!CPq2U;0PA4ADwkU$!?r1zB$d(MC8 zYl^yGR6%SL`hFZ3TB#d%Y#uMwdz~IV#nE}(j%1)5mLql%Nbt$`G*5V@<${y3u5c}y z6y*V8uvsoKBB=Kux)}M2k1ko#(oX%#A;Qw6pYSTnFy&??Rh{+{U2Uj|h%;3EU}M76{S26&^c2TDOTIut(e7w* zzLQ6S!I(4S1fs`37ZsTtS50mzMH;CZS8%O5;QHwt!=-z3#g!aT)~a^ZB7n@hv!*nIFz6}hX&-}Fkr4?F&w8Vw0@sF!iEJ^fx1KSwt59?u_xxmx(g7eNjfK~1MpI|--w>PnPyeC z2Zvzo5A7jz8{4-I3QNAJJ9>7RV@qj>PwC9)9h)GcYvn0H%fm!O_~Y@qsd>)`xu*AkRv1y?zGM@20B zKrTP~*&awbI5?CB#WM7g%2j!2N(y4Ig;l8#)(^0Lzv4{( z)qvl;(@T7?sPmnA%ky7x0qLscus2FlsM;Dm1P?zon5Qe`=D98YMG?;!FaIvgv@2kD zF}rN#R{Kpmvs^w7uA0qmh1>|;NFYAzd-_G~pEIs}5BsvdJzGe@W6Oq4f|9zi?2m(y zj84T9UMc~^=JzDm2^#(4ocPyBu#`Q$U9YKv_Cem+dmr*07LP9vG{zvUm7f95b{^Ad z_OPi?5R#`~ZAqI13I{*K;UMz6n@9;6Gec@7PMB*$Q5^0oZyEBxOVk6eRq8vEiaRWQ zgK^{kundI-M=wzmC3Kb|Q=zIGgKu~d=GSKS=#e6WU*4zyrmOWtxd?3~E<_0a(P13C za;1|YO%3z3Lvx%!U~IdkaC>LWww7^=#&4?xN=r6I_wZoq`$m8I-v)=+0wq#S%7yQ+Dg`^|; zB6H>cx?2IzTXuO#e_) zhZuD%>#hO!AnE*EW5*>56n8gG$U9M{0wDcPEEakkLOA$g8i#Tl=+#?hg1v{8>Qy~ra9#9M0d^O(jL&VC zZA{J64xBg@Eb)ArRv(f#_a1Ue$k6flNJS76D;M6c&wU%`H+YyVN~tF@Ps1WX$Y(yR z2TmCj9_RLlCq;QoyrsFDk$!#X zYZfih2qNQs^s8f=Nu|vwc3YT&`7qrx&_^oQONBrdi0L}8E}c4ShD0zd{MsP3ZQF^! z9e`lfBId9eDHD7lboKjlP83>=NIOWy1$6WPVJe8{N#y-O)YGAE@0ZtcN@ zM-tHKg&Ef|<{79(qOkm3slD+C`Nr|e2tA`$QV3aLXYnyZHuvbU37eD<1yVMq1w z_*r%Nq?;Q?w%1GRTEKkm9!6puHW2lR7%gz9{pEv8I|Gk`Ic{!i$LS3N4^8`hUj^_k zZ4;4`OIiL}h5Ex~beh zijuFE-O5)|g}46NEjp7P>{`)D7#8@YV#!OigvkrLGh6O!Ubav;5?WTHk&<&Ox;mbd zVlNBBR-jYS|C(#`nwD!VfGoR~0a=(gqsn3gYqootulw!aU_-mlb+95RassjnN??-5 z!d$?6B0hci^P7dS2}lQz~m=fkQuS4(F*x*Qmghp+4-s7C`~q7rR~40(3kfbgZFr>pHE zE?RW8C_F_ir@l4Qh3Y2Tqr*a~HCrZ!6VUH&oiWopGu@r#!5w92Pc?}Cwv_N9?^r~+ zeyzO}HX2iMoQ+yS+mn^m-ebdr=EODf^5YtkI9NiZcS@=vK_WBse_$Y)h1?wqjh9&q zWc+D$h15?r|KSdYJdq&NB`5V)c>~Ec$gdA#7OOB#A?Tr&T9(Ds^Acj91n(ygCaD<_ zMWN48TdN75k%L@-0IglTUhey(+*ymnz@hIp)raVcrOK5oc*IP{HOW*c7=G6A`o#Ok zPO_LgHHF!QSWzW&v4tJNhN?R^?Hz@7fIG8p{_a`C@}hZ=ir-{KV1UCXM47$mZxd$T z<_?!@d$4)$N(>4nK%*>dN-#wb2GB>wG5K#Oui&|BN_ACWR6wE2S_)SRR+`YYU_gurn_t;Ek z;no7q4FWxLKx}m)e==q?rhM3G8p}}_6GY>uVEc2JAvg<+@30pJvDntav4U&0~W$cBh@%B2J5Yy$E#GK`16((>!^@sZ!~e93mgaHD5D zn}_7Qo|x$qU^mNI%{8~7ZisTk;(Emh#A8A z?MY72VAfUi?dXHeRC^?U@fYe#yeFH=FYyHT6Rz>_dN#qw9;dZJK?0H}YEY%T^J6`@v$Mi!e075+TA@${L@Qnl6iciOQaY5q>T>CHEak z>?NtQxi~8s0}b`ls}(coNgab0^hB4X*0flb%#x&cLjBa25b(2RwLoH-{Z_O1*R~gc z?Ig+l1|2BeLOy{_;;4_6HtN5oi|p7nw?9P7&^Q-kKyge=KSgb5_op=i@qi=LA(>|o z6&`WJ01o7xXwD{x+HX17+d|V@ka6-|N0~{b#$zZGX5p5~?C|3hHbIMrHCZVTyLB6v zw3~xg%6rE;>$mm%|tli2dAU203SM`5-}LkH!k)+aDgYO!f(Wu z?{rIyM7|X=7PcLtxf${?7VZy|T$G@9{4K!L#6mWx-wzcUweO@~yEHx7$=Mh-Yhte> zg5bVa!4lI9r!f_jpytme_l`0}S@&0GASR5qW{aEH)^zPXCy>YSD-3jZ3#)6W@^$)c zm#gg(2G8-oPZFq%*Wlpcj56g8N696@xWI3cE;Fya{gW2E+sxfWy_qaM{x7c5G zkt+;x${t zUs;p#0^e=wq)?Ff_`se$PY;KUJYqbJ0tOfzIv&b_=de+U(LQ9i4D7I*0Pj}j%T+`)zJIo8ZOsnu5AF+#uAHW0VWr_Q zhiQo2A4MZgC~Ns@jc(*TNs~)|`Mv92I75q*yoeYYv&fv4zE$oZ$Fm5dc$ZGKO+4Q| zA)`>YH}*YaI!1!4$)cGmid3yIFn?+;p?hhg6gBY^@dyk_0Y-Y<66}#Z2ilIY`Pqqq zCp_+QJ28oO9LeiQ$sRi<0bQEL`hTaLnw6P~C8RTP#45YL;_j7ip}<~uBgq``(|OzF z7;-YjC(}tbV+S#qy>uGha0NGdXJ`%UnQM&LQ)wU9AdV8)nR~ex4|_!bqIT1jC*UT8pe41#7Pys#Nou^C@%8AgWjk}KJi#q?b^*HTVL&esE*a^N zg3p0Sx4!qa-Z+g=TE`9*k&vN^cG@9QhSfl@j&(6i>hkvEmrZg~Q>nnWC7Eb^fF? zd5)b>az-fE$Lxu`;1x_z68l0FW1f&TU7AfpvRER3&_1 zU5_7Hi2U$AW;uy>O;7NifU?4*4yFs5!@*|w9a8H_K1nos3!9XgrV95^wER6ETQN(& zZzmPP1EW@n{7UF<(stMBBL43Bv}0NwT>tw*bz%ONBX}f?#x^r**y`8VSxi58Xf1)Q6wjzk>dQW zhPqtRy6Ps`4V80W+ll2F#x8yNOw!In40b*j^#$`0!6JDXBk3*(mZVi? zZgG`^9MNV*)}J5i*NYhy+TwerY%y#~0>oe9paU$c<8e;&4|M@W`ON?w>=z6SP@&Wx z&kxK!(!lUMHAd%k_EEGJe&YPIYg%TfcqMLL@RZBOR~bIc^P8;u)#*mF7-+_`3x$7* z_oCMkd}kob0y!g%iExx|%qW&ItSzuCAG<~Ov@yrXXN0xScU?FrzG8>(h#ef3N*h&L~Wr#Es>`Hovf>LWwc_Qga}nXsLE-bqmO+_Kj&9v(4g*InSZ zGZ|DZ1H^6QQcj%?VL1jtN1gM?4sf6FV%~c6;wbdqWVdYhO{g7;U){1jF{!GqUdZiH zTwsg424Ohrm-OKkW(LM>&7@%VtU$)4D)K1 z{t`W*%m(5X)t?*0a1XpLTG2LQ%l6D5`m^S_b++ezQ)Dvq2vIi$Z|h^xuhnv#*RmR{@uhLv><&4-hlGc?5Br?+3Jz zpkVk)b1H#072IL!22ZfUi-JNw6`Sr)J(dF2$h&b|ZNmKDK*TBt1=x^mdaPx-A9Xff z#c0X<1m)*m`ovXHzdr{8&z9}G9YVu@cyOFaRH_x^2##q50V1t@!OXC8;3?26VSB@7 z4TXj6m$_N4hpD%RO|NqyIysLS6OyLC9JveU z5q{oGapyo@ZUw6~LfR>iB{3rjMPhC{cYv98&!es5h^7!Evdr$ji!jR5D98yfqH>qR z7RPl)b1rxY2kf=@Byn&sBXp-+Me2-980!U^m-t;bn7MBID#qP7*?#7h-g6__hSSsI}vB7U(*xE8}9^RzIQdE+8a!WYUgDGBkw zc9#2oxPTg3VbW009f4_-vT-ZZR{A0eq=< zqVYJ!YaErJji*V4>~CeE)qzm7Tc>xzLT4AU72m}w;J2tLi9v!rZu-dNlTJc*2Zc#n zE$K&TGc^2Ts)j+*Qs%N}t4KYDG?F~{cw(&jKa%5jJd9n9vdVGbH-XwsZmt|yiv_U` z`+f)JLac^xp2MDIM}E^f;&ETgY*>5~FA!Yx zD9Io?pGwGB02+XTjw23R)|q0%$k^r{0?E5O2zek>cdg?Gu;ySiQu8pIOg%qX=mans z#Kp3V*7*CJ(^vw{7_-+jp8UEfcfTmaTMgJGC=9VN!jX|{x;!)pY;rVdCI3oKJqyAL z6OHdLLN^_hP(dKaW|`=->5x*q|7sQwfob^ zE_dGg+P9e*e`SLmkqkup`uGo*TW_EF7?X>KHN6!j z3hNLM^YoBP#rE`XiQ4g~KbWrbj55Yl(AqA=RXMy0dph4R$G3IA*{xvmqlgW^FfLHJ z;kNbLB3uFFEM__p5#Pjksz5Szo?u>bbi{wz>A`WP;T_!~;hM)+H{|USoG1iXOH(-D z>d*mP?`$-W_f~Fk=}KAe*MDE)~6;SG+}R<&Xp!J-AVRDgHBlKfAR@@qT+-aEO$ z!%^F_OHcOXC>t2n&wKc9;r@R)Wu0f>LZ@--M2g$mQyW1+5S?`5u)X`q;au!-|ET#N zr{k0YK=Z0Hu=j8FH-X|oQ^f;UFocfRld9h}-w#j$GFhm*&H9#<;{^~aD3W(i>i+)U z%iA_M#+)%MV`gJ6Rn0V)c%NkMJ!9oAl=OY6?ps57d-agOmdB+o zlFk|NJ#P>11M0LgffA!JUfK3$a(RhzTRA2Xuxtwv=lELE*gGKyON$dJ+X3N1Ik0^J z4(}^oJFc%Z4*WK+((`k!*>EyWk6+WLR88nE5u23J7~5X{tqiqa>|pX08~??Ll&zlq z9L016?mpk1ynF4f9CZ(=+B1YD^%z4YuC%l!#xf>CP)$^llp9}=*4)Fnlqdl0oHFyt z?#<6ztd4r?e^dEDQvU@a#vP4OgUFR~|N>xXOKL>X9tl#CX82_JV=9Q@-rs(C!W0Sw_ zX2T*>%8AZ0J9Aa=eq)omB2(jldiUx2uEKdwq;?IGaQ;-MBZmNV|G+6y;&5sA%mvNc z)LXzwVhzOBM*8&0GwLBqH|!`l;1#D2Zn@k}$*@sU|7$*Gc~5-YTh%fiTh>k5BUsTX z<)WVU9r@(PCTh3a?j|xJ>ly%t#T(UDy#(6_zI8z@Ky8rT%qK~$CUvgMlUvyQl*}^* z!6JU41?slP^}xJkRub>`r$wV}-m^c$hLB-~*$$ zlphg?$CIec%xC+L=)-9B`&X0&#ZOl~8%1nAoVRY`Fqx#j78;vpNa4noORt*F3e9x%i9e@gmoUJz)79AR@*dE?`)!^l!|L1-tTArMhgc; zEpfK7tZ9wiN}=6R^h72uNV+H09I?I`4Pb;NEmbcy zVyrWzt28yqg#9TFZrDCFpr&Jy$mZLQ$#T_Td)-{{;rc+rfyl)7QWLrmu9E%FjQki| zWnKaJVV?SUAOqp&l)tv^l}i0d-6JP@a+W0!Ng?I+x=}Fwy89<*UDE%n6n7287T`#= zPIJ#P`1)VFIWcC7N+VX`|Ys2iKHSV7Qw^oFA}* zxsX&OM{Xtrq^sR<+Tb<|&41Ca{s95j8Kq_p#2sC^0$9fm4qLkrcY5ErGXVf?C^Rspr7XoaZ7sxGN?L0d43_k2hQVq>2=&nL|emEP5{ zj$uZNff~vY7J&K8uhnG4!C0;eC<1N^B||W1 zH7cJ9tvj2tXhZYN``5hMOEX$H9!TrJBS!r<+@Anr_ibYOp)5xX31+sl4fPdT+#5M2x_g-eZA(BKh*-{^}>2k+-*M!8r{&P%~X`_OJ$h-2176lmR~w z+Wjv4;rns`yKG|HGFQh9bxzgexvln+zquorM7U7hla0hhZZ zDwgNWygmOg&^I<7Ng^mfLi1@HWY-9PobZ?Wp>7ukd!c2jlU76J!6~N}Wx(&pbBLd@ z>RdQjJh}k4n^Sk?TpUny(VOSqHxYn@1nFuypnm{}#o0bdD(RV~53p@x*V6=(Gl$0+ z8N;3rd%}TqQ_^?po6p`JYb0x+5+sGGOm%XmX8liM#X5^cnD4I`%2H{6&djoF+m02> z?~w(hV+O*x#1mHh6);pp0S&Tys~$2P{SZ|Iz!fSbzmA4@)v`6U z09uOyUm;{!f9)CL)cD3pq1TYIAURd~bT&7jUZYea`7x4A;sb-3PT>g=Gf@372O2&S zdk;IOn5vV)sqUhhaIwQ;J4_%L&R&e?8|KQ#=6QKgzJtez>`~)z zJ%3iYekX&Du{-gKE?>Ml6Aa zFcuGsfKc{;Vfvg|rk>y=JkX=6;1D1~aV;oI`&(+05sPl;E1G{)jc#61r%w?+sw*_r zFzXHp)L~Hrd15P#xrLG#`%HYymrr^c54d-3NH6>d&%@^cb}y z(MTe(7ajPaF~9BlAkg`o_Z1f^Mlxs$oB$az$J~s_1iZqoBZKJmRI5fR#QZbZGgT|w z@EXGEE#azYe4?HFBzV0UEol`69I9(wJq~O#b7!XcxP%stBowZ$T&PYtzA45Nt26DR zZ-_K8ls$coZJSm77<$LzPVe;A+n_{5#evVM6f#c7&Ec5;Ym0l(NHGFwO1{Hwdw)1( zdS9DUeRUSR56v{ShjU5Ec4nY!4T*qXcp^#8NpJ8A0jO2Tu`+0GG%|aEFs|?WgLP+z zRav9O_bVm5NDaG~zSaS|D`LeBu1b+eDtbZm)8V?AC}-L zFh|xBpOM8zZc5mxkQHj-VnFXCt&kQ%Z3!vL>cz}{0mP%zf$IeV3LT!U@_A%Yz}BwE z;2wF4QWvvqe8(&uaY^9IA}W*XC6rUgHjTb7%&%X|%~WxRWKTjA2Sx(K<91f4sR%pg zsY7XD$z`3aO@jdD9GY8ZIr=JIb+mVs4Ivm{aWm4Xk!<#W7|aDSDWJb02ou}kVMVs4 zdS4{QcvN(6USt{PZYox8II0-sV;_O|;Fb0}*&~2{D1TF@_;l&E@~hHyoH%uP2Bs*y zO!6AOlU12yJpWlmcthNo4NWp0Gbr6vOnhNOUw=3yyj1hVP7;T11ZqkaY58iYwQhb& zqrr=-x^x+%uJ=ewEh@}}e6%fK?gs7L+j+0-c7<(0O*_+`AHjYK2GqVO)GX8Z=|ylE z*c)ooiLlDFRu8i<-5}=2iQLUGqukK=RyKuv)(sSQF+VxD%s8(=ZUEY2z41mpA|xxn zv*Q&g06##$zd9`y%g9!^f6NCqS}l3)%Pbx!1epXEy!ZP!ckMFoXdFMJxZgu^DL5Jm zqlZ%xgY2=D{|!$|u1AjWcXZj50)BKFqH@j*m(s^)2sH%AB_!53sOnWSupTPowHI$b zA1z0_WQD?mD)}anA{v?f@7nRvN)bXfX*n-I8)Iv^U_NQWVj5-f@aMs(qf|zM!|*g| zi*9BnCKz%cp+(vj90eyLwcovuKirTPjkh6g8r0@J8O02Rz`7*qN@2Y)<}@7U)*K)e zkmJa@`X+z33Srl4!WLJiCIY`vGk%44-n2B|FM?VL>M$kwmT#R_X1p0Lipjl>0QonGaC+ zIYg#~OA0=4i?Zm6;6s|ph*2;s^=g38i2bOaQ1}T~-de)pkBVrIhl3gCb@b_FuTFRI8=R%bg**fnnd2ZIAma{(Yy94q%yXq?o*6@F>)`d(R%3xS z$tiAQDL47*77Y#u=SSYE`x?JWPOjg}IrB?1bjG2c)>#&%s=p@Y-XUC_4o$Go{g!bU z%`AvDLpxN?@HA~y=_u=Y#Jcy5%VeQZefn|ls{^@muNb04h{pQZCInWuoUu5Am|smT z=XY~}U+QCQ&ZXpt&RD+h$4ySMgD6h4QHXi0UQ7p$nJ;3^DAbm&6v5bf>%0Smq+uy< zs_++!4|vMyXQ8a?NSYlC$h8p>qYpk_5IcMIgi4CrI{BfvZU9>_FE`N0Ky{|cQ!{6t z^R@bql5(Gj^5DZ<$aJht%R_+K?RC5p3NKo8ko-0Y*Ul9WGLA-`s#1whi{0)q+AbN{ z&Qdx9f`Rf`cD@2s%ZP#>SySZ?GvrIt7Rq#Y_rF=PvyspYRN z#Ca^d{`JT>px~+f`khwLf2Lv+Eb#FHv6SKz7^`@w#8jeAPNK*J%+H$InhVjc~~zA-dh8}T42db1BrNu zyPmXQr^K*SK8-2UfpbDF@A{)LZ2`$3agp}I^UnS;@pezZ=mGd2$cxF>ClzUM0Vb+m zW3^HY+t+C3LW_1PuL51?_fn`H|r*4Plms>GT*A{4e2LnJtVcqNn*zg+$tb$4BTT#g? zli9N^09!CjOsjB`IdJKLMJEgnFPrJhrQmbKUTdF&(l23uH$gkxws z5UIw}eH~8-L|=P*T`AYZs_z!ETcln&1Kb6c3ts3l@HO`sUSfvK6sGXg{#?BS{1|5GY1uLL z-P-TuSVR0tn(sNo2mHi&GBQl`l7OK6q0cUI85*c`SO}ao&y1VVuve)!$#-Dk(wSJh9A zy+7GLw@H!+NhDgqQ{1*i_?lOD%hnhnL?e=Wb; zR8iG(P7WR$7`B$mK+!YRyQWkZtxv~qF zFUB~Ik=HiJ36IK#04X)!4t}2jfMU9ykvii0`oLN9GX2Fmh!d^20%CHNt;-j*>LoVk z23r6ocToP!9TBVe=?yGCwPP;d@xUz$)YUZ5`Yqbj0mK#KUBLHfVfa~)a@cP<#6iIM zHbx~Uj-)fFvFM=KEl583_Wr$FMd5{0BFW*G@a_&)cXYWZbn>k2Mn#Y#ID1neI94;* zPq%hFSv1P6TH)5RCR^ezy&2p0A?|yni|!*};p?zl2S3&?o8|-;WxknPigdP@)m22B z@54<*mU{sip6&BcYpY>xc{BdiPD&+DHym`;-F$o#%c{B=Fz?h?G* zDG>|!W+HO6R{Z|8Ye|6#)r-ZD?{vJ=mD!v>9sNZm9Ee(KLex>$8*4HbLl4jsgui-~ zFa$7GO>x5Sp7=c(IY`YEwSdlc9Hx^O33c2bB&K@|KB6^jFfjsycHu8EMKyP4zzLLb z7l9J({>tNFSHygp$RnzY{)@y81>sTeJ^jj$tA{etpCt0QoPDyA1EWj%`>|evyBjGB zd`*@9SF3Ukr-nIs7MB(&pDGV~rISR8oxgb8AHkmyH?rjsg9#|8xo%d;JeDJ8o&4~- z-aFx-IT`-=45Rd(Q}^fHy4!M~NOf9J+(eNjz?*kZkasnU3+)<|D~;7zkh9Igwo*HQ zdvx@0l~ps;IdVvy8WlD>@P|pI(y06b>*#e!kfpi2dL|ddepRp>%C9HZSpJ=9$7Vyt zu7Y0VaDKaRcO;jOS9O>dyN!h3+5F*a@BUBq-DFpY)DULS zGb*6F(^IttahD5)^Oc){o3(shil9>W=yTAZ9j}2x$_KO|8$r{ z_gJ~&skS(dHawz+hJMZSz;b#~A3(vx@Dx6hm}UNAb1R$T`t6Gv2a+r?$J? zOFuRC-4!DTCrXT}pn2s=b#zO{v?ww`Y#J319H0^V{z;0Bx$xTbpbpVKz6^)y z5qPM{S;l*@(C28LsWjfq-tq!1A#Y2%9gkDJJA_aLMLtujZs}brLvwAr-HIN_bIk{L0 zgfeYr0TGW_5yiqcy@!B;SH^y~VWmxq~f=k1kd1iw3~7+%w-aHmSUf2g%_Zevr_Jng2`3& zlll&Tdb?So*c-~bN|nVe!h)KvMK;#_aTzFMQ~=0?s`CA*Bx#6Wj24V1!j$#z6=X!n zSiglwkMJw`Pw#)Z$Alz|kkUWU|irg@w2|&aHtGDB74=G;7JkR z6~PU)6Qn~;=+Wa(0Aede$hj${Y`H~|1Jh82X^D6&W>RIYI)Z>XTNLy|bEl9#Ro2sT z4G~DQW?NZ?ofVQIjkt$;V{`0@zE94#n|{%t#^4(DM%JF@CrS|y}G81u$u!I37Q+=?Wd`2YNIqS-XtL9PDf6P*Ze z1Ko~>L)aw{=LF{Z-PC|ScUh5h?Jr|;=lgDf=d~9W)koU&Q7-eVhXxMwRk8Snn=&hY zTw2PdYD7^}0YLw*gY@L3a@J^D$OdDKPgWq3siqsCZp`(5^PSLL{yJ3}O;>#Q-u4j2 z6Tnkq=VrixExtD_g-m<5i?oc&oLUL)nAC5&kO^`ECFAPzdBuW;CtICNV;6+_OQXZ$ zCfhYitstRc*!1?D`U<-rPiLuM!1???E17K*j>P{PnChZ8Oj#3Ehkg$mxtR}5=P-u~ zyPJ4eZ<`Mj)qLW$#VzLfF&k29Z!9czaU@l(M4;*I;gFnKpvvrn$qkN@{SpCtT|Esg zmGiuRB{@})vG1Q7kA7n%P1#TQf@CfUfzx*8rO~W2tsSn)gJ~>iOWgd={b;Tg>bn%Q$0aTvKU48MnWuYV8=(B-7Lt&AcyHhXR?A3OtKf&w!t}_!$Zi6 zlo}ZrVL6%U93BV9TB0 zE_&wp2y<)>%KCFTKCLST>FXMA>iWjCs6iDHYH;$|buCQ;0(qq_ONm7SeOxI(mo3WSLwx z9p-Z|!y>M6ATc8kuK=7l8+af5nKejPrw;i|`q$860xO6KqyOyHc|*d08W{i#qYzTbuVxHrc}gdxoySnW^D`LKH&YOpy<;&^CaF;K^bI^yJURm=h=mtV!( zs`!udQlX-lP(&K25Bl8&E016{F$jT+mo!@*YwefTlUXUtCDr)1%G&N1p)_RpVi~jh&h1RPO!&u^W?M+mvEt9ZW<%`yJ2$g}GEvaj%nLrCw zXy8d^%MbCW$nciw0vPO=w*hvpeF}Yv?ot3?Wl-X1gT&jLy}aAhh*48S5~g-SI7HPL z{B5>_>m>@My>@UIXPaW^{f3W$=KA8Pybww=q6YssS;{;!zR|d4?3&hJQ;n zq?OXtx>OPIIJZhv6AVINPJe01+MCG9GFMOCLcigH`4iZocHgz9xN_+6P>+|QiP&vY z0ijc?7L(s~sy)OrctHe-HV1a=3^^}nQvFCOP-ZDUfwN^jsk{_0WI5R1Pr=HJEuAl$ zU-{`=mN0yUFj#Qb^BMb{2`Ff{@_DMHs z8hC}o(Zi86?Z0?IlMBykyhbR=o<6*u^-G;i0g>b7fg7R6g%H4okJ z0NC)n%oa(@?I6{m!y6z~P-O0*pg}Q~w2&?NiO~iGSutC3`=;LWjD|ACEVTC_{PFRF zHYBLr6k!)P%qw%9k{=r2H6xq{aC4SD(}SJ~wT@y9e};?2VZRFEJ}SKQ5}J+-bdCdr z7w=FrgkSNOxbEsZ(N0wAM#VSXbpAh?+rf;_X3s9r1ZLd=Nd)77of_W3~H+7Q(hb(kgi;vzw>nDC&HMvBE6Z7zIqLo+j3M zcP)r)HyTp|*owB67Wx=I?^MNZaV4bCg>&}=jr>~+#5#D@6kyojI(amKa2TE{cMT^> zT%U{83G!$cgd1+M)Bw}nrY7d?UYtvdpAUjmI}R18O&gMzk>I=DBIrMWs- zG@b{g$Ew7U^&LDXVfP+FN+;QzHI*U%ovnx`4eOlH# zM`e<5X1se^xcAsbs?7o5PQMN!nu&`9o=8ZOxrN2^?A)z!Z1>H`qR~vdRYr&<`^b&v z_J!e8qfvM3yQ1gE@e|qrLW%yzpIXw1Q3<7bhJnX(WsINu*oktyZD{gbsKQgSro~p2gZD5&YD>L_or96S2Iz=rXNx&AhAJ6NO1MO9jlsN0|RJ zQUGgUezfQjXp}rvKHbg5>q~<}hhvH1w^xO8B$M=epdi^+OtlD6Gg|wyLY&0W54PRr zbYAKuBB2Q;F61uk$4K|^ieVEnf5_2dEuk3k*JYedK9}B8#9g>F3BM0R6|?k~u(X5) zM9|{8$E6W5zLJp)t)>Ff!|Ab`!b`wa@C-sl6a%RusWh?(#*-^@%w#tUwucU2J2Qhu z^`#u|O^gm-!kJe8z-Mr2!sML`*4&wME8vrmaT|_2uVCg>m-NWZ_25n9`(Tj zThl=p^Q?@yndbnZ3k%;T|0J6g0tLbfAqnU5wOLvuFaPNKB%RSEyq{|Jda9A@98+YD zRPU$@da>F1+_bW|gI$H!MoFtcm|RK@{kW#dyAv7U>8QL`6u-h!xl~NDz|i7gFm1L% zd)WTd;ObIoP){pGxHx!r6S;N7N7SYvO32=+(Dv`rYpL7+NQS%NOl;VeY6eFza-sFt zUvCVr^9G0T^pyCK9ru;on7F`cOEi-pKfXjG`?$s}#K`ah`8H2ZuzGA%`t1 z8MabS6B{|cX1%RNyE-3?3i@oDR^^goD>LEBX{oS8D@UjNkTNuoFPcd$;U}UW&OeUf zS{Fwtfn9+k=B^oc4Fsg2u@s-Pyp6q!rGDNw?QDP3sk+&qDlTezUDI3_@4!e=jheT7 zU!UgMAgK=BF$C$$t*(k%D;Hhq5V-4(bFtAMM~Rrd;8WyD`iimcnlyYlmK7WN#rVC3 zaA=88oJbnov{d}z*T*1?4jGCKw2RR5r}7N+|73JyhA_LD=~sn~c1f85cP+l3qHuva znTUmT)l4y&!IQp|=~*oIBO#cgCp8gJ#^>dMzV{{eYnE@*$Gsd+?q1+b!;(Loe%K61 z@v!8NyPY}$>5d)KIxI=P$Z3&&XDCw-2BnN2MR6=Z2>d1CZ;GxoldDZ^)}}P|)R&9l zMrC`B)OYM;fYQqNa|d@)S~%77Z!OiThENu|Rux4#-$G$^xpZ&M<(95Wd>ymWd=XL} zP4#nGR(}m8K>fn`K~TWy#&G1{kg%~qRXxh7ST{reDXW+xN$KNyzTMYxpKJ~xLyTT8 zFJg@5KDyC6N<@S#`fED{Fn4U;w-Y_pT87(a5Mlln#3XK+Kxc>+hI9B`wtf375wX~f zT>z00>?JhUUNXW)A0U69j5$i|JJK~7dJeTazn+>{Kt`B*k;?Pl7Q3CLo)YiYPq-_Y zRqEsX!*71EI(&d-*z@0ud(@wV%E`JV)A{Hs zYl52l&8+8+U|*N)dJ<#KgqD}MlvfaGU>q(=U?@74k3}zehZ*-pi!w}3ow*;b-eq;s z(rlQiSdO^k$67%T+$pp-;9o=*OKq9ZZwj%L?-IQ|GK^8&i4#Quei201*kYGWv)r%7 zn|7{RrQaJ5=<^>5G)Q+3OZV41%mr5Cm1g{P}23CzY*k;!{zcT=S(PE4VOM ziLyaxV;fkUiTC_=)TDQMO%jxf!B0d!YN^;@VTo;a;lXx9+IRXX$8MjOglUFuJ4ltGWs*($E#Ok>s5GuhP`V{ z7PGD>i?*^5y_e0P@?$P$8)Dd~=e06p&r~eLxw7FJHfA_5Sd(NkJ8zA2kf*rGV1tQ0NE{SL1w@Yo{Rl`hOdF2AQ2H`QnQqc zC$rozjB9?|7j*6-L;e)JCtp%+6=?X7q*nd@p?HwFUszXV z(nWq+V1gaL&H5E8Lk?IvBkp+vAPm;1Hx~yE0RU{e;9ux8PCAk`oGTL^tISHp8oLn9 zJlHS=UUxhd=q-NF*42bT;D}p0D8`8y0yzjGFda1!s&VCe7-vH?md?qVDYC)yI&+9k zOoe47IQSl9z21YuzjO?*a6J~UIAknGTjeK@aHi^zA0HU1^0G!^whpF;gpZPAsx}#G zg*LE5Ya_K@_dAT&_rd4Pc>xXM$g{^>`f-r+lck(X%IW1z%&jpxgAvUAASj0goRY<< zHq6sXGfWC7l5z&j(7Im-S==_Q>^sasMj{?Euu5Yv{R?0%$$mEY*U5e59OE6tM;CdC z3JsOPu7$Z+cLF-B-E~l29BeKW*(FV+2MPHJgdR8FkZFd)KC^J@mS5=y$%t^kMY2$L zH*l5Y9vD_zpA%%nJ4Ng&ORJ)yE|DYP9<)PV{6m!cHZ7Hdgzye-P)|ojnL#4=ib~2% znn!SPv+~)tV)}h9sqC4l{R?~IUAI@~c6sU_638zg)_AGMDaBmXqOU>;7673>+rz4O zmSvKvjv{7UQre{1ML4ED3jnmRGvGLI5;M3&J`7$W;v*0%gSzNI=7D@}*x&@`q>sTe zOnt8kx>W$2C9QzT)*T-|>O~56b|LD;a<9*3Qdw3_z_ofgGV!?C>mZL3)}!3jmnZ0r zv4LJD}-8gIgRs=?@3ZdmQW%+*(W0w{H zRNu1C)=3~o&US}}r|q^ZvaEMM=5zLv&tK}r8|G0L27E=cUkU}$GLvKhwv8cP8D|8y zbo1L>Oa%j4?(8H-PTp}cY)KtCL{Y;z1dUZbg}$lOYp?-H;W;V+BzC3@fpi*?NsLVO z&f{UeveqUee3kE$@OynBMctNjHeh>(FqZ>vhE$!=#p-0za=5J5IK@-nhsGlg(>4_T zu}ovl=Cxzq$x%+FJfTD&^Q&McRfW%SA}i`1G@KmwKY8~}}ByG`^25AxlCWDG7Rg^idqAj4F#@I=Y} zfXzr^GaiEQBp&F}#rad$9!ULW7-~K9j&g|2FEzOeK_`3`pHlwzlNSOVxp$RQx7$2y z7eaE-Ltvl2t+l6uid5$b!yzGl$F<9ZVlB&;C_u^1DcS-NYkT_;iJqGu7=Nmm{R1e zRoAPDO7{v`C#@;QYo|4nJN7*FH*I#oC_8#u4R@nqy+v(DpFK!%i@WiNfsN znhN88w*Jy>2e&~%(~DkDY$%)=|+%unSXsONu~&;BzKv zVKwR>IL?wQx7|4aCt&pv5sa+GW!8E%&Z#C!$1Kn& zm+}ngUQTVSpm}aVSal6*G*z(8wLfL~b-|jET^hGY8M|7D{-^ZR1X|bFTxWGU^1O-RS?+D~duFlD=XHofb)#f*&At)udij)cx;xLT`^5F|dFGXWG-r z7|3@-=^{0)#{G&D&IEq0@%vxb1wrj%5I|)KK8AU7OrYeh%(?z@Ck3FA?(LT*cK+q3 zYGJ=qI{m;Weo6ZT_p47$ZpyU>21};-o20p*f9}(S{BhUSq(Zqb>Q_yxJbPfUL#?I$ z7D=aI{vc3p^c~y~;GF_XgRq1`837hMPi^l8P?j-&3rZ_>joJ(O-TItr5{_umVJ)z<;t;+HDZy{GO zY16*Mh6wZ?GO^oE&u@SRS>hv0KAfp4z(kiS%Wk^)(yFoYj98CJMY=P5S(0)z%CqsG zgBvczGi3kb87!4{BMkp8f%%$HxNd&9oCFb^kOa;TA;S;zS7Q-_-FP#~WbL-ub{kV@ z%mHp@X}+hDZAxuO+E)m($x5dJy~{1mLK2F%3}7JYTm8layoCz=Y4hBkyX zfl!(~sH3yoxzX{ukaLl@Q#Kr!KqpNf{lJ@{Xu-bOXn)k*aKAuZ=Pw``M`yWM{$`77))qjCjXF} z@=}xH6=8~8Chu?{IPq1esen%s_c@9IuZBU`wp7LivoweP`lh+HZ{FEsq$#6+t&Xj6n^iz`&vJfN>}9;Dbp*U3x4l478Cp8luezWN_Y zl6@!pE4L_S6J>@v5+sxY>jd;74`lTcz7)-)e$J-RX9UP4r`x;M)pNA4?WmQ(2qCkYKhMVc6B- z;|wiQmU(whvhazK{pgBO0kH*-8c>!FG%@(6#!dUqH@PbD{pP6XVQ_uIer5{wYE?Af ztZSL!3F%~x7#dMj9h_sPSeRld`K^UkT- zsxl}UA?j1v>kR#z3!JcQW?gyNj6KK2)BHk&Q7E9a^kH}sDBY1^sNU)~l-fkFx&!}k z#}b-PK*_R0`a)VY;7g9@R!Q23wqvkj9zEafj_p1{nE%6xg;=VJ7#T7hp@i<8>V{@9 zz@5TTpsTzjS^0tso?0nhwNUJ+|?u^dSPE0p{01o1r~2@RL1m4qg6ncg4nWPU$~Fk zvS|Rx;zkc6`Xy0{vRG$%ky>adY`;CjlIorx*uxBi_wf{&Sw1*nOk!h)gL5{n)72$j z#g3X@0uO+5$9X-f9_pn2DV6E<2CQSvH6qDq(htW#O`-nO2}M?mUq%&~MxN$GEi8{S z#P~T04oT^z&nIbz`q||Kgu9PpspJbF%+7`9^BVt~Os4(pL9?tdndgJCFB(5l%p3Li zUwQZi>7IFZf(g1`@*oeDEzH~ST}PlI>3#z;0?XxglFM~FtdHKAMY479R_uT_(IH#t zX6+7oaOUgomg3b2*CtF*_|7+7P*D$J5?LwgCK<;y_b_YS@C zlXdx{Vg0+!rl(_D@jHU-swxb&HoA`empaksmDrO11Ld^**ByWWbM_XJrOc@3b{CRS8rzRa(*&ByfKAXw?+JDLx-Qh_%96XGsUDD)X zKQkoUt{WQV>Djpu6BU%|;;7#YnWjlcCS)cilK03tFH`oxYAR(*J~gRIPmMfXe=7~8 zoS|^3fN>agd0ga0e}_1O8w>1k##&+JzVkh0@EKp@215cZS9vXa);8Ad&Fc~hQ{0t? z!)X>fvCAZbg2QcAEhI*_5xZn9zbklh_4|%c;2zn3$4WFXn4^v6B7ueL0)ZuoUG{tr zhoJTt$wPwsDu7(Ogb?h!RnElFaNQcQ;ji-6%@u5csWS7r5iGx<04hBiOv-)B{jN&V zS>$m5W)peNIj5R04Oc6xZJI;)Y%D*j%}_)O7$DjZS1gzzyLvk%BTAk?EwvS(+=-{G z9;uxHAWh!$dnd>r1i6{!xSu%GpOF>uGzR1nP^^hN+`hwhkpRoR9Br#)E^N8#2 zXVVBb=$^?=iD1pE#{v>>stw+*5AU5|@2#>XR@tuUV0XcQx%d~j35t?wds++G4!U!& zgq-r6y-c6lw!{wVr556-36thElI_Q*3#n?4sz@pabN%-!7AtSY`aCV0cS)sheA0%g zY!D-^%YP`FLMD_2#-7$&GGw>m#HLP_*kP`Ql4E`)Sh3$n;ERPprhDQ#4R-ELBIB#m zAV=I%oY-P7$Bqy4zWZQWmSMa_K0*LfOXSr7YXH9L;~0$_T;H_qo=SvPR(%<0S%F(j zHQ@tVtsDvPe@CdS9z%-^lVN#Q?((!^tzJ+bVI9@J8DXF1c@6b;PA~qOG_+3tY=4bf z)Qy|{nDtXkDi%W@XnG#hUPCRw{@s}950rke?aziskkVnO5m@F6W^Y+7DXWB~W{+yU ze1aqX>RZzH#HmwG7~qu3E$lef7>ftazmUGuIyJ>6J~iIa;!)K8htwW6>(q}hv6@a;_dK*3BM_*&{Ln|reLKw$VM{*l##8~r8L@1>V8BbEU$yu zB-$%1(@!zjJ3}jeq|?6Lt-d3v#VWK%nc72=U0XqTL@>f0i(p86H)pPKpfcHP_g=E9}V!6}A5tarbFtf~)J?Df^k|s6Tx@2x|n^G&fm+Ff@CB zs6D_ItY)pzTXvHVf5Ru_oZ#=k5x(fQ3j4q7UUkrKuA@;<$1yzf8Mthjk<_O@VjHJf zK!XDS2RT){SI>|Zt@7asb*|K`8Ce$nDL71BvYJ>2*?A5uA&L(L4%yN&IabdLW+ z{^Vda5@#!wV*Hoejw)%4kK%SD2(vB7Xjog8=Gx)v_xil6+K`eUs&IJi&_;$t;eE2* zXlnk@G>q5fa_prFutFOBx;2l+U-m)~`L0YgGb+jn5>Azf#9IZ)B>foQe_i^DmFO7> zs-lHlBfmL9C8fLiC;w%ZlH)m^=6_M?%za>hBkYf93+?BB-6R}J^v z-eg5CX4W&3sVW|r@07W`@gsa2Hbmc@WWJi}F5_mTUi`R_G)G4yP8InpAJ;OB+MCXT zio%-Y8E-t)_+U)uqXVGnoc&3T6zu^J}Ko6{N=Pp^{GG#&-)W_KOzY4F}s{d zrpJ~ZNelygl1n5jSM`ZY@J>v;#?n{gLVdZ(>OIBLRZO=?)p^(9;Ajk;He;b%A@Jy; z`vjzoF$eANc@BQ|vrGh-eP4}HyrQzeJTIi6EKyVv=%2lRC2~XKBQTW`Ui0sFVmhcHvYhDF?ecsu%uyoTZH-^7put6og z5=@={mq)472rC4)sg>X8&&W}cuKs1${glrD!hi~i?xF|dW~8w502h$$cZUbuP+X2s zYe7tKGDuREx%6baErw{fhKR4DOSK%OW-d5YSs|}73zdpVL zLdJa#NZbshF&Z#$`IAmJF2Ls_LHJy5B;LMSp}&lc1mfEhG#uN$dOQwc{RbASi6kX0 zNyy`UEJ@Eu%)Gw5Om=zREhE-+s5}PmJYTJT z`SvavUKc`?JN&Nq6I3pmn_{LOmi-HNK`-5E=Y5)$qDw0S#1NQab#fz*zO6)=^U>-%cY)$2L9Az0nh~FEM!X|OPw-T1usm0sb@l0KG9z@A zy{s;Gkj&Dm2(liVwTT0!=v>f4fcpvPr`Lztd*xFZhhgDQ24M z6N|+73o1v-Hu>S9Cx2_7g9~?~{Y%_5PQ77zmGNF0z#PfT%H9q}3wI#Wl)n=9Tn_wj zRqNkqeqwOsPW15uI$Q_YSx!-`IZ2xR;^LH4`UQ6_D&!b9RnoD7S)Y^j%M6P$Igst2 z#;~E{dx2rFgtCZGs_4@DuK&Uzl)jI!wo*-Bd#5laiue~Cf4(6MmbZzFB4}3%6}+!u zxhc(fu`4Zgm$T)MuHpTejK6{k4exnEiT8SKE9JSw^WJ3zlkspoh$&KmvFicT!yj&HnFNig5tQrb35@W8d}AtstYClk@85bv0# z@a#PO5Ss&#t8|=!%!1TJJLpu{r(5nBVACR82$}yh@Am_8VGw;SsQhLbljcGTFs7@Q zV(9%r#ayfRJe0*@5A0w|gSS#M!FTx_c*Ij8Xw_Dthr3G#!mh95H%Vmsj_erv6LzSU zN1bt#tHDa?e!}ssyRBfFO$+GlhNe>k_r**2mdm18%Qhhg)Jk zVeJBT#HR8?%$7t*evKXadD7i?)Iu#iE==j@XOU|#|M97TjxCvo4&46ynXbvEkn;u) zg#jgy#dx5FKJ0DM{)_~b6N;L?^P9LTT|HKyK6f}PGyZXdiy+K!4~N)SzH_wXAMgVd zG^G=E7!F$;3iC%gBN@C59?&kmiBX^Qj>qb0LJC<4qwx)ku4OjQ_-hm)%1U~O0-4)* z=n+IOXdOrbs(M4W)gXl28(Tj?*bOWQU?c{h1{+is*--wY`{b+yicGf`$M-}7@YzX? zzV~%%I42P%j|b}n+pvHpk2#f*HtTh4Phhv}jBYLx&NI+e%-Q~6ixP*l$j%(de1mv~ zvTMb#>%TM^&eUN(@+ozUv9j9Tw+g2 ztEVqQr=kg|`L>7;vd@l6w)gr-0Yp8t0OBzM7F7|?7!B{!x`Y2g!9+tSoFk=+cCIp7 ziLGpeZQ#8HNmMYoNmA}aF~KxJ{dlD+>#yJaX((+j>%#J|P=@{~K$pi&;Ys-2<#>yqX3kW$}+jU&iM`>1-5-3ETjpFN?3-aRvT@F zQHWGLqJvha&^}RH^YT*-a-QoW5QIrP{a6f`_ozKt`Ne)gd*)i+^63SJwM#o%IR_14RM${DlLjRTEFVYN@K#D3PMM~n)O~E*o z8Cg`XnFcCsYmd7~HRdJ`00yeXH!M{xKOgIy16uRG2d7KC1q3hW#nrk2GC8SNTW(8> zj*4E|*{tvIAr}97@19XHM^rn)ph@tD*{KL&3H^553qf zBfd0~s)5CFOemtPp6fe7A4g2dr>m_K2)V#is@xm?kKz7$*P`gtKiA;V@M&qPMWt9&z`r7dL|U&)=Q=$H~`|p6q0M z9q&eKHC{OLIQWI0tR3#*fA=y&oU71U)l$KyR=sF7R0d6W?(o0A=!Gt@sH75X@f;n02N;{uZqeEyv(2wzofFR3XZ6U)PXJ6iPlpt<}{I%k< zn{ZzNJ+qo|XD&Utj|i8ta%0v(zA_ZR2C#89Q)kZJc5DQTH$ly9n<1N$CF@Kp-OA7)V-v-`Yu$4b zPqcX;Sc|l2p{~`Yb80K(q^+6LP#Ind(3xgf@LzO2qkJsr?}PJsGM{wBka4G3tiC-ZmWl96N?W*Y;S zz!0$J%KiP?5`BZR&)NZgSD)#p0V3Hpy~Sd+8SGQ!V^zOQ;X-tcgCBN`CjYT7AZ^ZwFfW97m=QM zW!YY{WhyE{G9V^gdaF!5Fi?>=nPRZNUx0sD@yQ{}0M{Coawp!3a5TUI6bGY~U)ZVR zbTLptJLCPd+(sR6xC>fN%%GPm>2-hDMp`!|$EmIWNa6=Rz!Gw-k-{CKjKNj`bN9#* zC$jBD*swV|gD8Du&6V@;i2w4icquS9Aa>VO-5{*&kKCZz7#?9+^yr4}6NH(E22o79 zoMgM*+&E4y`>ciyarF%;O3TI8F4Ap3pmtadAmVDC<<;&`n5OrMz!v$Wkg;XZbzbsa zK!w8CXOvuPBGJ}D7C$xqJq+0O{S2C!;~h7j`M!E~Dm}^*x`4Xadm{F}Rpyx#cIdW& z`BrMW#p6W(E-Y$8PmJLLkt*UOLZ8Q$Y(Ok%#F2$KXGc-pC6oJV6Qv9tvJ0|X_=zZ!8j zPb(?VVIaIAX}@1i$lX@&V=8_%QI+-!A)52+@PN!-KQu`Y6Y|+%(Q9)By7PYaPZG+@ z!1|Rx>;ehjx*GNc(`MeH0FD+&^d|+E7 zhf{%MNu>H_4TbMDp_$7lb@Id^v_+jYl1sc6M<&jvP*e@8sRa5=DKbSArkuu`=Ib{1 z)dc6Ov{X>EJ(qYyb8G?}IJ&lMJaN$!Q~ffBh=%00Ql*l~r79Uf`hUr->7f@=GgpSl z?BOYm;rgjEJ;)--VeCs50w2R)nG$f*8)1yn$ZXGuVUK;%azAr399{wAx-90hg&p{ z`c9*+sw?mp*_cS96&>NtacPSbmK_YXo?Kz^<&lsDcywj~)|@>cgi80*0#m_!Vf)#r zMUkj=1CZ1GpM^BI?C|mv^LLGKx|1lG?%yz7HyD1$TTor8wojCz^KoC}5SF9nIP#M~ zf3zVM`&0vOSNhG7LSQ8a8b!7pUOi6|$Mtfx$k7n;oR$$^%sWUg2wv*9tsz7nY)5R> z`eD1qIt5MgZ&Ia6`gq{xtJpU_Ex&~`{oUm{i4F5+dlytW?Z~kEP~H4SnO*MPNyjjm zf#pk8AH>b2k%>p=Qrm2|s^2;U>(=+%=-4}oS&weNkmKJ|hbZH2@pAHkt)_@$@1@|I z?L)w&5SpU+Xo-|V$Gsn)p|p}V#9~Fo&`@$5qMT&7`=7XWqbx##LK2MskwWUjHkU~W z#bpX&kc;l z-(Lm9pGV8cGHR2yi|Dh8#qJbJx%Qaj8;}d z$OylS(Gp~E=dZYeO3$~-M6uGdHkXtdh#bxzwE-;2_iHiK;mmF-< znVGcuX*mn1e1J=<)XIdC3^!DS?hJ($>BE`2v0P6i7AB&)zoS-NsX{M2>RZPLr2tYw z|Dp2CeCMeFv^Pz4m&O)UD{2UH`$N>?Yf-0&ts;@o=z_(R>#f1Bi3O(HiG zKq7itQnU_lbRBtBs(S*nk zo(q*r5MaP!%46YuV=sDD+oS$7rG9?UBD!fW7VrvxW4Wp|JhMmROFfd>x#T6Zdgr6mOwrovlJXN>pAC=glbzjdXXh^b+i>a>x61u7GM3&Z0)or-uw%d&sD)9g8*EnnkGMd zAHFlY@U~i8>ZG(FX5BG*nfc@&5Y;^TiSn7hSJ6J;A=oVHgaPC2W#i>`&GV<4#~CTo zoIqI?qoJ97@DqQO%mU14w(nI$?iIF?jDnu)wV`&h>2eC#n>+a!3?;{G(_VVDedwYU zsTp=m$j*Z=rFDK{M~H1hF;%$^pwi3h*o=ts7|%DQxD;L#<=yb0&;&MS zxl<`-ki*=nB>oq^*D{tDc9x0gp4JE}R5w!90>y1smC4Y;;v|)4Wrgn#H`M?*m{Eo5 z+(_83SgoV#23WXQlg@F29}w&f+IJI@?vyMf6SjImHg|(4=q_#ZLyc(p2U!qzx@F7; zUTCRH8S{`T+{ljNF<^zRJ3nU5T)ZFZ9D4GX&%$wqe2?(wIG{a*iC*20db<>V7)oP;2FCD zE*5==Xn1IhSQmDFY^v+JeOvV@oqb0pfC6@SGI45s4sigM((yTQ7YOZ@SP!LDC=|b+ z(^RM^>3+O{wt%8Qewy_+R+-Qlpa7fT3t20^*VDl);AQ4D%a4pD&H$0E zvMt6yu-brdrig@Z6m2d6RP~L?Ds)omqq%lohEFSjv`;uYChd^|!hJf(50plri6AGm zyz`q0rSPlFY2=yx2?c~U0#adQ9)B#+6&GH)PN{g#$I6@+JrR3=3^XG1TyENpf6#;y znL>xwNuD}UNK#zeQPON<%}`4wC{pHb57S-%-GUjBxNle$76r^QE1Bvyv5>@RqBUzf z8k6$ECP=2urp~Bje6B0%Zl|ybC`Ox1$immSa_KURz;52Qq@)KVh^kUdv+cBEla_2& z*HhMSJO){7^By_PY$n#h?gP7%{{HHq@*1!~ykabtWogVv;$7zY2f-RUX1$glG>T-l za=Rv0uK?ahhK!yl3%L;VR8eCTkV|D{<8Cx<2H zeaDc9Y}~G;ae_cy)L8QrL}GdROL#y>1)UZNJ4w4j_}4Xy|?!_ z*Nj5<5IXAivi@y%3^X;_X}10qpNJUMRBE+RNjphUzvT}colctLY~Dy#Y|E*GQsbZB zdcF=P`xAC1orDSwL>^-+w>h7!6!$~FY3QKieh)^V+naJ!D5t+O z;{dUvg-R|dpbDO!WluK{0JKAV7VIU%q#gP}CE-&6I~$s~i~W|1S4ATh8JtyfTtJwy zn5#&WpGGJbN1igMz?G@ii`;Nr1F`6&L^msmz+zAWE*m_04X>{IlT8A{=wq z+_OkP`%}Cj(4$^zEB~v4DKQo_Ty#$k(`!;W1Ikd`Yd)-3zx-xGm!MO~lz;R*F{1*_ zz7w0~mnmn%2XB>=kySW*0PzM^8UB;vGl+G7bL{2d8+WuSjq2?4n7o|FN2Z!-VA*sP z(AOGCWPhDEPfrv3hfG_T#ak=_m{(ew9Pev1Oq66(+W~uwTyV|9+N|w^eFK^#F3%wq zlp9snzkU8ob30j|GG|}rksqpXfL&OJ$C}VkF!IVMt){cd z&!b>dDM!}w5#=B}876V+sjjuFvDjroo{>#^W9!C_<1AOnIYM))E7C?lvLM{-2_E}H~JGxMY}{ZEo) zp19OHL8inM%`c&hL#C#-i-Y`_-ALn*jxt%=aR_Jx_z-v!O_9rm6%xfsG3R1IP~3#b z4yMI#nKv`SBQUs?7WQy26d(n4Csy@d1tuJY?NI*ro;$p8$uPa=5Ft;K&wBn{6`*to z0c|mCRhNIDjCl`o&hUI`@;us>1Z116wBgk)mmYU;m!pH)Jo)3TNr3l55ksj~H%sQ( z?iMQ`E(J?8;!0o_8jMWrOT(AtY;WjzCrOUzz+tW()`#RKrgp!WS#_G>X-F4tSotZZX9 zt{x9=E^q93g>pcX^6cZKD-f*I#f%aK>m;VbU*nqb1QfOMVp z(sjY~|G?;kPj;2;3b~w6Q*8t@oq;@isZ4uhkZ;8y4LQm-&vp>Ei=_7bYe2SC1ewuJ z1`cm-oWPzI3r*wmmlterYAo4BVKCII&L%djN91ekt`xMD$wr z`qVR<(xgoMY(A9a?$FL>&CJaX*3xWmwq3hsC>tz_(}u;f!W)!w*e{~_^G=ngh3 za-J(K7m?whNUwTHsxEpdqw0u%QJwTl`b60tZ_=ZI7AX40Wz^XXQ9p0c~%=}cKu-Y0J8e28TwI6fS;&ln4iJ27_6wAHa{vW(*`neA=4b2WOks&i+w$(5D^BGL}bP`QvNMT6_CyDr{%-0eq+!;z-S=Ts$#||%hA8#Z!LNwu;S2;ZO|_N zTdl>pA-44BhUyL6K*QAtC4ZIuqQT3VtB`#dTj{#s;Mvj&$d_5=yX@I%TN)`zDsr`8 zP-v=5^Ch|kJv0?zJ`GV^olN`H{%>SgUfvvVMH}~TGZifYm(ey4@5_ocZ&T~}4@$xN zLTb8H$Ir5ZKRYJRu_Ucf%BI4ob-BzZX$pwS@T`-r2_m1VO%w@{QX%3!1(wBM{W3^8!5pi*J$APDw zoVqv`Ln7YafUNfDjJn{oXFyG%yqYCu4KJVSwrHL1fP|cyVaxkwBbF0+h-cOA?CpX= zjZwwI1-t!h+wq*~q>(eG<3iH7Xy+y2*#pUm@Z9f_hd)gwyA~S+o6V$JkL2)b)Ze4) zs{?&5Y5b&Wl939)B3uC?DY?|Wv!eDOvEQV_NX~b~MH3F}kCDGnm!RvG?f&z_$X?gowS0L-*?b>?lskQ*gOc?WVfj13tQi{z%n{}lSRzI0E^Ix8XUn3-ZUx zr+fjCnu~aAdjeGPdqiS~OM|X=;vLvS|>7NT~nd^~!f&Q*q+1bD8OOa51k z37=4P!>);okupKe#q?d_FC9V_^!4ZT=N!rImCuB$VbJaed1 zhJ1-}?{y3O>Tws#ti?%m(9t%nI34N#O?`aV17YBTja} z5Qq2yXs$c~zEo4Cm_t%}N7$s^GH@nHD3Qc_JVwLvG7z9Ex1enak4l>w>^&%`4opaV zRpSjsM>zzHOSy_}2q zZL=XIZxnbu3oh-_OjnCMLgdeMr?aB^+#HKdii6jCD2_mJC+n<+zINJ%ED>1yh0sW@ zY}2>CZ=~%LO|KhgXX=cRptbhG;aG?%3um^3b6Dnph8i^l{AM zeYS%x)w1p>d$4N-k5L~LbkKtS9i5BWa2F~IAkpMozP7@0GAfU+Q^~E%+5uE~D7_mM@D79zWV2hIiQ(A;Fo8V$jlHNmPKxNZ!OtwjtWmOqMWmeOM~e-~e4 zrVkt&L-b!T3!1bG2$IS?1}WHD5tyQLv{(H5YyZraRLFrJTq?u`3Ait3XtKTvO1aOd z)f3?vor^~?X(Mk z83A3jr*O>bf)W~U@N0P`+cD~pL4>SaOGRql>iK~Ad1KGg5`5ji@c^gf^bmZF&(6xP zkf(TD_{neh%HL67FFq<4>D4b`$|0MOIQ^VamfsOQdC94$4Ki9jR6*E=i)AE+PDFkYkOnlK>?a6_`;G6}E!haCn*sF-r-LoiBCoxqew-91nR%(}8W6u>+isRs!R_ct> ztDCRoN~?V{D+K>c-REdw2krvX8bH^=F%9CGY;wRXwhvn|0s zEWoSfu)!?)o{F2`XN0)GfJJ=czn@sZS9Zm_SZZ6L;W&Zz`3p+~ohONnk%D@mCXA1E zfWjFVf>VRj6dyB5K=aMhF2B5_@?%+Ul|OeVNpKo%YJcxCJmdP~A6N}wq}np%xs^yx z583ubv}fCKuIr+V@4_eroVCz_(A1RQBivpph9QJ!TNsL1|K{Bb=mz^i6I1Op{mJbx zuUQLa{tZIel38wIvgr&odp687%$<8)H&``otAT0=TliF0zEzMd%D=RFe7SwErB#_O zNA9lU0ir?9LEz|QXbq{UdTxJfAIg)@Ds~zn4ZT`}O6z>{h-i8VLX?zvGvRhZ=|<;d zCpqp-Zcn-(8s@%Dk0X;B@j}z=W@`f*fP2Y}}x>-F2eAY{eIchAUEOsSIX>@-brz-K_^byh@z%~=ewE17CM&PEEfk(luSL~KS z+0ZZD;QxJIrA1E2MKxe}s9ollmQo3ccj;|Z$m?!OrrbZ@LTSz^Sr5jfP3PcPDKA<0 zP77dJaa1gYIq$zSz8&@nRg>Ys_l&fZ)aM+j6GPr?nnyeu*R=hDjz$y$^#vR}qH75! zs5hi@^U`Pwq>2`tqa@$ht{Ku`gJxZ)Nu^5~@`6X}p<7>D9LYwjYszZg7U)z z(d#-#{1y0PDQk9BId$CJZldi|nw`s_Tp>K^1zsZD2Arj;)CzzOdUIDP7+JFIo0u{J zi`_qrlY_hah0POJK1eA~@g+XY=5s`eJnYgi55fcy5I9a_x|lFR8?84YfA= zmJLR!R2;?%LH%r$Ja=2$gt*t}@Q(?yS+PlY3&|Q`P5xZ8k>nj}X)GX;2HC$-%;w!&u@4Nhz$Dw;T?fC_QnJR%~Tr z>J^R5lj~1K4|i?JB_39Ea29|})hb(ffU*ZGM+-uj7}nmk;-l|Fq6^yxeZ3W5hrBA{&TZl$paFbMI{`NJg{5!4Kz3Rl!>0Ak zgTI4VBm#DzZG$QAV*zI@?j1DYs+EVWs~GlrTLMH-njPQU|5O%<#~euo%Jif{@-&Z7 zd)QLc`9@%yvbu4OQKZ{cDio&qdW^HzJes3IqXI#~Yxz<5JfN}`^XtjI*1eZ|&=&VS zsFZCGMb9vFGVZl=&yUu8g&31`ZCRBPEk{R>T~LhheH{-)K6P97z^}7ae-gZ^Mpu%! zEhzaD5`u=JIe>G!?k033-0UA|wi}-+nD02__)$3^0oh5^)5#06UfVr}$e-(NUbXuA zivQoeEIN|EN&*}fHv()}r;}dwe@IeourA1>oGZ6h6igbF?_|VfmWOS?gEDJZ-`df# zq}F44n=cFm-CNA!)I`ZD)zk^vM7nvPU>7LmEN6&S5^L&Qg_SM@AKJ>gH!MVw~wBaro% z$#Av@?8526DXQq40acV6-myV>yPg36u%<r$(|mO>^An)@ zu=$Fa$++*O)tHVGn4k-V+ou6!+Y>8AxsU9?;Xx1$&trRuNPI?F+=c(&v#N)@fB#DI zP$g{>z0@eSj!P%tc0UJGw$@)_x3JK13Q*}0_~>vsL>(6fCJ&c?uY4)nt;nKuR&3>W z{L!6XeC(yq+&39w4Ofi!hEwO~!_*!!v;== zNA5W{NSLh-mQ_M*Y?_L+!PCDUN^4L54YVe#{9errp#FkB|LE$1l#X;JZ{*;Qk_=Nd zzZG10oFDrJ8R80noenNfXiGZ1USN#{4;gQT%sSYx37^(k8KZ%|g#Z7oZB`S&O7ijH zC~K`R8<78(gq(5Sak&@ng;;E@96C;@(to_#3@SE2y+9N22*gK9dvTme^=zzV?l4i{g@U2X%qrfU5N^27vQI-T} zKNM(2B#H7k5`yc4(88Qb0>9cDBf35o*ScjE##&Rqy-mmy=^%hQng{51{IoWqOB18H zYkJ$9;w5~T0p$$bvC$;V+6?k6{b|qwg`PuNgtIb{2f`cD`|(e<+!K*;y2tU(A@p`E z1~(_~njq&EaD0M_F!f{22va)Gi!zQ%hwikT=l>TFR+mE4rch~=5Y_SVh1Xf z3rKaIK9~eJGj_)67d6;enxw*X|7^G08Gi^5a^j|ui+B73VZ2Kz@i6~ZjzaT><=N=7 zZ%HNmhHb6#J?CY2Y}bSjkE7=;@8Dyf2Rxap`UFd>(NfJGiIOWSw3smSH&?mn zqInPvfAk!;`4U#_IC#}`3@1#TtHo^?j_-b2rq0yk7_9pc;au1k31xJMb!U|i=YleG zlR_$Qv|3VBL5PLV27<<7jZJ^M#eM1-u>BSVHi2%NejO5kzA&GdZeg#6^city??(Xg za($Z{{{6RFFlInu+-LcdLIC=T#YJ`p&O7JAPHZQrled=hlvwTG&Y0AXBOHYmo+b_N z+1iwzzxY>A-_5U{+6Ny;z5wdb6F#}uIoKs1CK z`uCWD+VUD-Y^nVbJ`1+=WWc*!`Id_eZc7oFANIb_DX}`l6TkkG$==y_ z^R2heuR`D?Hxyq0$Vgr1zEUG8r-jdy^q7RljqJGRpJwQ}e`2Vt_VP+iCT-=udSASo zea=00FTjD7DX!L$1gUScbURhQ`3WIRh?@Xs4Xa;`fJt9{AH*nL^I- zg@CX^H9_~@va%$|{JG`nAgUC?VXq+tbV)gCHbrP8?NZ)j6)L?kY%nyErpNIrWnnNM zW3b5x{z0brs{!KlEh>=c0@Qj^;LIsq|KrVp1M<{EiVCYA(;OCCEUm=pi6RrzBr>Hm z0D2}=?oMEYYYG&IU704%!V9FVJ3a%>=L4Iy_AkK6T-$)#Cr zfVL~Lt&NIvA&!&{jRUHaViUBh8?W!8zC!CKm%ORzd%_Qzfd!-Wt?tG$LE4lJZ_RX3 zr-n=E1y<*gCJ_OHyL+(4@n}wOgLgH3WW}m%X5<^wot;00zVe{D+dnv%K3+%2QTA7d zEu9qcFw>~xSpr}-6^R8^O{8{W<(}eDdT)L|*pxPV>e~Lz>2?$(A*LJ_3=Q#o4in;W zd>-DU3JO43-g_!DuVcez^Ig=tPN*2n62y>#&kLm1FK&nkWPjX+6lp(*@05+v&k5 zIS#^>T!H6w!-<<}UZtk+^|hD?KzUPE%5ZT5bK&YjU+k8!NZ`N1@u_dwKODNfokD(? z!AQPhJjNXRK59{B!TAkH&w=t~+{%Y1^5W9VgpRn@-{ zP^>qZy7j+ILoQ!)%N9>Yo7OSM9P?922#yL(&=UMzb>S#`NA$=^wJ_N`qIcv-&bl(P z+P)cFnn=a#BB|Y9ScZ%f#-4{KwBjSYV&wDb&ex$K035ie+|CqBI!>Tld-yW8EaS_@ z?BAII>WXwzt-gJLq_SvrH7xFIIJK^hh5|n-D^^QP{EJkNbd85#UoNc7#k9`Ol-$l7 zk)o7|ne+@}`q3~n3e%;2xf$WvGaCb#B~pN^ffk3!;5b>t7)~2Gykn1Yt%6?Lzz5qe z6y)=S^K@UQfTi>iL74*xwfssoz3>EoAlUf4p?+)yN3?h=J87`avh8CWc9iV$2-SzQ zRlpqF%$ft{CWj;`GM}#bivMMAy4_ zpFsx@SbC1dsbaWfij9&F3~KA@mlsU<1NX_btXJDNB!jkYy=L>Lj@)|M15P`69>9LO z+))J33`mfyv;&s#73-xh$&no<_|fnPz$wY47N38~Gp(L;@(4!FNb&up5)k*k(cNo4 z*CW=Br|CsM_M+k!K2|(o8#d;@9s_nWt-7-jXB@wrH&|wukj4pGhE=%|`#4!N?l^4> zMa!6P@O#x-`|MS|e4H~>BrX89$SWoR`eAS&gU7bRLc2kQV#|T%jI}HUCizLL6>!T4Lb$7anHfDd}7Qb+5HIl7I+~R|sTB%Bk86OI z%BI2pWyWKYOghK|gIYqs)89hbYA{;6rDLtc8$65{+b*{q)T$zh%EMTye$xug>ZzCb z-};^etdltd|AlnUjFvIc=g1VQ8BI5Jiad`-7%yyaO?jCev9L|{6z?l~4K%t6tbFFo zD1Q(&8C16yXX*9gwzf2RPgf@H4h{cso%2s8A?Mr_r09#ly7{kj_|D=y=*jZ6BK&Sy z>AkYZJ6=<&>69xyk`A*~s;rwa^0c)I*f$+cdnL?VuzO4z_S9}VWiqDW1J+q#svS!r z%fK_NwqmI+jN&RK*swMn*?eVgV+$#hV{SKh1>A z=gixeoBYiiXHTpe0R&?$o`US4pPuUd%>;pJdL_}X%fh5=(i(#hGbVfaXwtw`PT@L* z_?JGKl}8FpXoiXCZUJ!~KTKv?u8fYTNC8+LcjV(bIs0@xVH7S~sQN0N* z-X!iGB^iGlry5Uj?Ovdjli-s2n|ZC=VVYA`nVmBo84&6aK>DFx)RMdAAFn&bkt&1KYeYm7|!eoS?8!_6j=W|-HbcTp{r8v&%>?h=G%oeM1eUDQa_YWKF$4iWz6~#wRWT39%fIBU>FyhpH}m}O zRjE*qoB|twv?P~L&l1(1I--Ct zU&j6y7m`_sy3x9WLTfi8>W}b7cZxE#Yw5Vo7&<6XPk`!V^H`O(wXpEbVVsj_FA-#3 zKs)NRzB{E369NLO5{VI%t}@z+m(^{yjXf}2OYn%^YBJ_9gu1x+w;_D?v~V}jF2Bc0 z4(ac>=?9KyOn{;Q@%ra5Ko2Dd@=LEeOXC*H5L`g)A|tku|8-!y0$+1}ALg+9xu%jV z*dKC(JmC>^pc3%NAk^6>dIbZhn)0ycYVq$jD|lMz)4h3v-fBmo8s9^!z7&utXF_Xg z5PbY6Q<8e8eA17h6@3fy8P_1=TUz;F&*d#6l0HM~jBo227lIJNkJ&8>4K|}X#-6J= zAP1lA<}D$OY9QKM`x4delSqzpWB!A7pKb@em~n1v)$%cJuL|WM!%n-hNu!;s*(=jh z{%EKWu(8F}8&4_`wue1z?WhO6+Ye$*BMCsHVff6udV8kV8)I3rw`%?~N#~pov($IX zJqsX+dVYOzQt%9h@{Q|>LRQRg(kl5hx)QjewqXSG5f=0yTda?mOVU6=-lW9&vOL+2 zr4KCdI9Kff+~Q2;bOPOjW}boLa8H4>U#BX`Dn$V2?^a*GPKY}Zc^=W;r!~SwPhHr$`C9|#!ys}|=)}}&{IS~n`gJ9t z-?%}2_rsqrKlV|A80cTK`<|7YnJ|(1AWFeqK$#m$4x!-n0FX}jXb078 z%{v%+Rq*LVCVf0d32Kg3_fF)N?UxYTjQR9weuv6W6r;BA> zb!Nk;3`zvgckGA4C~=W$O;sfKz;izx0FhwZ(cxxwgFS}*fH436%VZYAm?fUse?noS zOW8B(U~XI98MzovF2%VEjl@-jg-H)_dN_~aoe(tRCN3>W~ilkz7z95 zJ>QIu_3I`p{?EmofFxl0u*X)#c<}j6OeF*u&#-oETK%G1NY|7Wf+8aX%m8lU0yNCN zxSO$SzGe75%{CRU`cVcTU;Mn^C=nlB5#Y)ai8eoD0CSg__BXs)=azj1xE}C(uG;+# zfj}wN)1u{EPb6-jq%Rf*`0791_Hp{z9@4*bE1wu?BZ0 z%rscZQbm0hrHYK=%(u&@r&hPK0IJx^gv^9qrTLX}JlAp_i2CqAQVI4YfV+qLKVw<5 zHoHw{=q!`&gF0{8dKqX@@xJNlHHZzhx%Uga3%GD~PTJvsh>nXuky8c-4Oro2jLiLc znMujbNzACFz26-Z<^2M<_Cz#;xc3OXG51FAoMjCRrjT4< zmvmebPL@&~fk6-YD!B4{63Wl|xX-+Qpyz;{oIjyZ zrL?Sv1l}DcqfP8QwKU?RlY%5mr@XwfH4L2LQU|LNuP&r1-fOY4lrhWoB<~2W)z|rT zW?yDA&@966tZMs8!k94tVj*{UdErRv>ndS{ zCZQ9(jWQ(uIW$2(si#6a3z`o649S{#$tN0Q7vttJhO{)2n8&spY45b+72HMg{3e{X zbJtkH3d!}-A7yL`$G#o!Vbw(l)bUXG#U|1K0bKG7)V@zL&U|6!`+1}_@GTltqG3gO ztbG0;ioI9Lb1L*aS}2c43$fh!iQH`r(SmGGS>MGH4*?<0dJwko`Ic}zgZ{stS`QCX zX5-D0C%&?!t11}*w9WRvQdGYGI%_4P*>xNhS&xE8qoK0koG|MYjKx@2t$hmI4sdHr z+3dn%waSk`rnMu#0amcL^ADyGE>P znEOe@;Zw_&0fvR+jXa7t=P0U@R!2U%1%z8Ptmq&XY7|h!x#2XJIq#%aPkB#pQYAd< z0d1xxpu>uR_HfO`)QDG_AhGFLIMlCQqlr1&Tu&*Ux|?GJKiE3ZdXW-pSfCYt{m0f zrMz~EaOp=q|E@VXWgg;fz%2))+&l~YCIsbqYn*yD7QED{M)2`;R+K(SuVEdyR({z* z(g1|c&dD7UD3gbou@EMeeB5Ldz8f=_Zj%Hb<q(v&GK-H=x6q|;j%tI7% zrx#9>T+r7t(=oWHdiq@hWFo}Q453g{_cspX1jar4gW;>~Qx`pe#S;pBo*8K>-ss_& zdf<a^>Y#bpVg0==GUw2X(ttA-Ic9Jmxy;maw*S;OATh+LqM0L?`!mlX`C=#dJoc zS%PJJy5sIKy40*C_u0NAT;du2^4|;d*TZW@ttkpD3F4OUb^r(W#hM~- zdCuoHGro#U3_n8~YP7P7ra*ms-SE6&_ds*am!Z|EV08Pyx()Y=TH(B=QijfmqB{v< zMe>zcK3P;v6q824(nb&#DUL*+Tac?)E|0}YxJ^Mw8FwJD@{Ed~BQVjzq))NcfSLz0 zMS1!krfv}N63nuQZ2b2vfv66w^mcSfR4AMA+&CZk&&KwOQi_SBu2$Ewlhts%iNJ5OxJHslA`tZ@54^BhFn`20ku`1HCfw4*!TDw`e*L#6F?QesYA_eYZn|JhYfbc+xuColpvwUED}Sz=_T(T?Mt=Ux+WL z83NN>bEFLOGAs_S_!7xKtE(T+Iz(yLp$#j_kxIbXJrZ?D{YdGjL7`Y1!^Qk@BP9EAgWMbui_hNU(ukqz!IZ315A<%K)^TmsxU^MPi1cN z#6y@$a5k#$Ten(cKjrA8qAr05Mz0@u*AaOJKl3eGB)*DkaqK-CT&i!7ekkM z=;Z#dqv4_Qn)UzE2bz9igWicYyF)TdNGu4g_DJcVy?2*+VpdKWO8c%uUS<@EFhx@aOV=-D_SZcn(su2I8#+6bhgYJ|1}B{k8p zKF{wDNq}K?rmwga3pct04#mD2iTY}e{EUS?z(!#d&EQVE@ve_oxEL&TA^@u<++$nG zf!~9%|KWV27tJ1YUjgIALV2EL!E)hv@fTWrC*s5w+=u#N@@0Y11ZNsVJ3nR5|8;np zvzFK99T)WY$Nfe^yDKKekmDpJ#Q zyabKaOLUsj)R5KcdX9Gr(=e@_;TJ6-_-Rq@n~Q@VrvW__(t=$J<6qK>K_o`FhU0Ci zBI6!2b%>34o0cghn+D7(hG8czxT5QWN2w76M@ta*Xcn-%vZ@WK-8;rHeKyc6>FEX_ zwT9BKy^ljh_?{(KlkSx>z*0oFZ;D;pGW7-!-gef@j~X+L(pUt$U!zt^r2eQQ4X3#W z6EeMrpkBi@eaP(gf)gfN6P`^zfl0^Rtu&1)Q#j2n&o9JIMC;Q&g0Q0vA#BpjZD zDe$3sjZO?jW%qiJxEauM*ZvP%7h>WR)hHSCP=f}RoQ>Q7JIe<%wxqpAw2p=ksZovU zf>}SKe*~x-LJQbUaj97ckt{lc12eoT4|Ee#PQyO4$=Xk5+3p{ z;5(QV<0pPu;bqiuN{cS#J3cj7*3Rb~>e@2(XHCwV1ap%6CCzCCOa4~B)MCb7SZtoK zPQ99Mw++`^GN7D@HW<3NxRvi7y}O;AxEl8i<2HzOcB*wqLdaT4C(Wy$);B+0nUb=k zgG&ABQ7#(jJRPVLRjJ@=Jb%f?b%L;xSUJZy66$&bSF+f&5?+r1-(2h`lJF*X&gxP& zqtchXFvZ?QCq8_b1B&(&7O6SOqw?8Hh!7qCn66z|~6!YP)m&^y#dueCEOQli{JZi@9Az0(j zCicimOt>&sf*)PPY%Kk@6dywc=4oEsbUb&T3mcZacz3=$rb;$zIP<44n%3$|(pFW@xM*j1;cSPgN(fPL!baCNKOP^RvV0?8QOdqkG>y?_A&iC^~pbbOqE z)QD$zYs=XWzEqyM1!gew|^Eq z6r4BN6~YVbtaUg8#MFmkZv*Zxf|)coN6zO!Df@gsH1<8Vb*nw?$n>t$1(S$T;bNL`(=x`R&`2QRSwYjS6H% zu9oTPOQwrl&O~mAonWd=sCBB~lpsUO51yw?H`pX~m$ivzM23>hYL z1!X|xoZ}%%zq=mc%4b-83d3?n7W;VO&)IIUA6SQc28#)@HoYg&)D^hN#B2Nyaxzvp zaA(k$W#hxY2S2D$I3N1nN-%7D?~s3$AdFv*a|;K(Oh1nbI&0wTuCDfY;HU^#zh?x< z>Hq8p4|{yBE^sz>Ji0%gZvUGc)H0W3_xyBJsUb-jQ8ZOsSo3)`c6Wa+-e>O1d0A#R z>J;l$4dM8-1&HF3@>0!F{AUYr0Y{*&W7VI!Kl?p~Z)VbI+Nk2?%T43^5KVJs8&8`i z*cgR?y2(M(vGMY;Vmn;ht;dXgOt!!x8-SYG#Qk84vQ830$2NM^H$dk*mjs`Gxchgr z?zir^UJw9JSR;C2)^In%2Ht{LL{Di6P5iIx#_%!j!AX?hG$Png6V_YvbZitAwNC?ZpFeF6Q0B8G0T(vyN{xlO$d?TPK%$EZFtp zXnGR3mF%R&xBafK%gp4pAeMy@oJ{1V9^Y8PqO!ah(Og$Mh7`GH(*OXsc3y2BE%oO( z-j;$yumo(31dmB9o#QiUdh|mV`|iTiF!B##O>|m%vDmR;CSNSGX5cF5QCaz=7ex;s zBrd7pANOpj-I^zN__Gv1wp%(6c0{hQ+GgMw#~%`joXZj^9J?+D+l0z|$Vz_c$~&}e zO4>~Q*?=-(za@k*zNvZ?bF!%(`D`>bVj+{1H~#shZdC5ijK5t2@g+)Z(e~kB7@j}c!X92*nvi@jXZTEYz)!@#=9YqRDAZbc zxqJTOANB0^)KWJngn3^RF|bKEZJ2`-`uY+IygzISzkF0LQMzL!t;4!Cj2}}!3Bwo> zeEvCn%cN@(@-g}k3i9`hPgfqZM6a)AGuUy{1pyrRkuaSpL0-hDH$D4!8C$2Q-1qs- zdJ;NnJP5MMRMLq8Uii%4)+r~PwP~*u3s~1yTJZDm$>&=D#Yv4M7#$R7hZRU7^)}Z& z*;b1V@y6p0;>Q)~iJ>z2Jzjq<40f5NTgpE7)&l-VYZD22x@P;%=H5z0w%s~2sRhNf+X!nOe*1z zepCN)$7x|WSay_7Rs4^S(QX+ZkyQT8Bi!7pUCYb3r!B2ai)isruzj}1hc!_8_3?2Rd=j;UNXiPK;yO1HitfMrHUI3n za}IBS*PjCQ@%H}>D)}`gDU=udOWxb%Rpj=`)##Q~b%@5bf!W}uTLW+2Mvru4`Uy&r z8nGPJGfCvKg=4Dk;mzTHWM-}b^OOrGq!{?%OmhPsj3J`=cd%*m^_4ap@v&T6>IgEV zG|eh8*M!=-0jO*}hzJ^I;z9aF(Z)PYO5{>Kf3^@}La&!njEC2NTBF^2pM1RzIRp^M zPNCJyyZ#y7@gwLVnUiCjkpm|E7G3BCcYvP%1`5}sHzddngb>#?{RWn+YOAZR>%H1h zgyADx7T>AnN>}ZrX~OX}*4k`|gr3)mb0#H4Lfck6{{!XICPTHNbngBKrpTs^W0e6 z7`!Q$pkqzWWqF75`dJxQ0*aQdQo7spMMC0(!+O&A=;XNfdnndaBT|UmEJ3WLn$#Kb zLSOl<-KxB$1FF{u`T;5-@e7qnz{QVIkregbLM-=>pM#E`QYDQEu#r%xU%G`lDjc&& zhe%0dfW*IoSD+);F0#-f8W$c1)BZzGoBc`Y#dR+Nw90N|<$btChDUqPLQO;7_CHh6 zKNExyccr0(@n!AxpNlRi&knq&{AWi>H9w%C*LS64UN_=Ji_5)x5(6OD! zB;6)L6rJ$C7#MfiE}v_L8^Wo%W&+s4MSpgq@$!c4OkAyl$v}Af2O|m$2mipkQ2#*- z6u|vbx(*_+gE%bdSjnD3Br9Y9zM!3=4*tw=@yDW6?Kn!;5H$6Y)Vf=q*Hk@CG{D9W z2DFT-W%E~^gGLDr)~%0BdGvzPaj=Z+?+|y)gNQdscUu&g?!zMWw{id3EgIP#8C^8H z7k1ZLb*r0w4-|1_q>G>pSRB^kf+hdA8LA!(Pq?jX;t_uU4jk!U7P$q4k+j;NRE{V5 z^sp>aQ_aYJ)DhexSJynFZbX2f&LCXG_+}?{0dz4qCJ>s0{{x6WaQp;V>fpizUh2Z{ zNHwK*l`l;ax-I{Y2Jqx>|AMQCI1;{0J_cCwD0HAO;HPtXjoqh?wMY%v6x^g zU#8R9-PFwKf~NV!W6iO>?4*$q0iQMZ*1yk#A+A?seJ2*e1;|WH@eANEF?yJ&*7Q{~ zRv_oY5f})z;Pv{z(L)b1yim*X?UVZ@2UfCx8c-D~x!4jw^lL%Cq|x2W;j7A*%p2p7 zDpY_Y*0fDV6a!)DifiRWhFU7GDpCo<;~rZZtttR{x5j$S&!qLdRMD;cwW;}>fgJ~3 zmG@Q%{-p^GP1tZBj%a@4joJcH#2RV^etxsnleDOMe>St0X#~2Sg;rbRX*%*ccMCwn z1ec8fKIzkbjAnQ5(o6P1Oy^wFjz42e+mg^?4&_n%(mf}*Sf=MqBzbBG*uXA?t;(?L zp9rpx%Z7}f>Ur$!v_pt27^zm0sV8Gl#egL`dUSYN9Cme+I=*JC{2-`7Z%S0gOiEBr z3sVoefp-dw%OPG@u9F1&it71~S}5641!9W_ZunTxWFiBKU~19)t4eO6sX%)(Y3)Ny z$XK6YXzK=#?wD$U@rJ_rA6g7r#ykO2~iyt|@o4YPnt^1x6S64A}2ejsQ7A_?)p*sHH-v!DheC`{% z|BjM7t)nOxpGuvec(L@&j|j-uUk&3Gu_o$8Ke1#>)76KUvCB=){=p5{5!)|`;L!Zb z&}6bNKGX{1Zt75AhRM$HXcnUAGHF`gA;D!5nU}E$j;ezeEaQcw%Raas70SD42^@#P zLFDXx3FAzjJ+3A5W5S?s_3L))pjlBBm@sjk6W{6{%6(g@D_c*vTdDU?dW60&oRp^_ zq1eG^gj+;Q)i!gU6lCYUJ;Zw#iesndW`gs+r{m2E*Q_^4)2ZlzJixoU^SW5FYU?)H zEu#wzU_eqWeiAz4aL$AZTl*jqLsthPIaru(*8DvF-PI6}TC#GiD!AJ}fwK3N=dGj6 z)}waOGWCCoxcsWTv%-3xn=1GavtiR?r$Ne`_ulCB`5%U}4$6A1ewYmaB$eN_V-A)3 z1sk+&O^t#+``$-0&=AbRcZ-rw7k6YhqWmn)p*u1db%6-rWbJdaf0qb)2ubw4A;q6i zirWTG0IJ?Vofb}p+B6J~3%|w5eL_5~P|BDFJNLYy7s>O+yO z=-!gWp&2Lf-%kHpT+xh7ET0QT!jlF3S3icV8f9%7a{vR%y0g4iF@vBl#d*u5hFfh> zFd-P=935&p6kyY{z4CPYFk+4N5CUJFD3j%$4b z&z{gn^8CtT!;amV8eV2@2{8`U&JuLzp$Y(#3k$ZxQZBGMGJx7E%H(*i|7wF!V83K9 zSN&u}5MdLUS5~56#|{;(nHOH}J=RDJqY&s%XJg*{(}P53V%v%`tiP3{8r=n2Ab~Zu z?<{Vua+zQoT-I@%VNcKTtg%~v2Al>k>fcjfGQ*#SU=hWhg@c;EoyOT(8u^ke+@k{m zrrh|z2m8drl09LzN{td~Aj8G(jFUZ{*##fk^1fi~t>y5yI5eZAQgZjvq_Q0!E7Wa* z5h+VCO{l<)UMZQUZ=vBMm4-e@?UkmFyF)~=qCDTs9;dAL$QmB_dk(_pCfo1?m9I$Y z2Hba57mqCAk`CYjY>Z8EF~gisH+E3X;^Ro_gUDUuMmSc|2hI4czK?>;=L(39^+y#j zUd(OYb(U)gep>0h{^iQb#K1mur=eenPLmdYeMYJ#9#QEPS@*VGAOEr=@x_os+)*vQ zv>-HWI~HqItmVn3J*W_pG5h6*2ys*&t7|@Uy$55^T}0s?!85G?FJ;rcde_um+|7I5mw?CivVD$;1`d zQzxjA5@iXrPo=X`m^+zn`&TQ>to=lxFfBSo?xNI~B06a8{Ba`rtPx7To1OOz?Sxu_ zje~ud!>G3X;vcK|g`wLT^2(pE5x%F@NrmgQU0!upU>;xsz&=*MO+!V!X|Zedg8)sb z>&A{XW3u5dC^yie>M+{jrr%Cx4_h9Ml7346yGm6+i#o=Vf}R=J+?sfSp&Bf~-=BeT z&vZ1Eu8UUtcN6W`Zqjm~k@JyNy^%D63;!ER`szBw-haN&!C&I$v_LL(+w7Dx-Oj;e zqz>~$UNmNMFzg?0144$LH7@sR)9RQd-yXTyr5gWU33S}$o_tn8MIeNl_E#;*LY^+r z+sUAYH@01urRO5|5XpAIiKXMEG%#oMOeq&M)w~Cn6>Ls9)l?4}P<)sGf-~b8cqQ*& zHz$+U1cKl*OY@lZ(U^RsFd0U%izA-mNB3}Q*gQRf(`2Qt2HAx&&0?Q~*)~q)ZCEO1 zLaK}2=X>UNdHe|6qSajg4#;u|hqA<7xF=F5r8F>ay)gjrCU>&GCrrvbRRXKYfm zmKwirejtvPqV4>tej^*n47S!RrH+u-4>+^ z0|DaPhjxJy_RTiU6@ZjlJ5%lE3fnnJHpMqg!;dE&=YH?DqxV)z(BY+I+BISH`&N;zQNUn=NF<)_lI+V#g(;XK*0i5!&guaY%cc-qMrV#!lD0Z|6yTia8_PVN@$| zrK_?U(+!Maa0e&cGLw>tEdj^bMPa^R1l=i!?)(W|=1F@(XRhJj zB2|!>!hCDhTW${DO1OyY!N|U;MR&4$(=Z~rGKsV)UY*-Z|L`;Blgpe*2X3TAl)S1c z8?qh*jje$JX82jtNPQIarxl0z}7liO=YF zVB#sYKFmc8#J(S8`ll7Y4H9EA`=b|z=yLHoy8Az}lIA9Y*lOUK;g#Yub;$k*5s3Ru zLkA-LMj)RsiDM_GOlCRS@#vB=PHHh-FG2g+{~w;8@-ZHox|(x{;s1nNW}u(!b;tnN z6Cl6FCqtp2kRjBWWp*BuWiwxz@a0Od*i{)HNz8=xcqfNG|4}_c>VSq&Z25pa{1ZXw zU7-G|SdQ+l)EL{jrds|xmVnULLc{DK+ZrT6LD5I0mUK?htanXign!*BSE);HUnwQ4 z>g@9&mtMG%*3F{*K#^7h7^};2{V!hgeW;O0go3$ae3kIN5kAhPqvLYJBbZ(<&qSCX zwab)u1qFwIne4LmIc62K)d!#`%=n=xkob*>Qib;ij?nl_Crl zWHnpS)}#2G;|3-8+nanFZYllBTc#Sg4^#XL<{+nu{yM8)rnHHNOJPYIX8mTYq8h<& zycau#m~inAPBwcY#5opn3jDWp_Y@C?p_byAJdT?lC0B)I0yU=qdRc745A*BXFv z+pm0yy&(sKF^BYb9+6~KL(AYRP6w{6QB=41=SCYVCEb|a9)2x3Nvnw38CE=2MLslg>Tv zGk1$?+Jdq8K$nxjiNK|w!d6J~-l=|Hp4p|5ld{-)G+$a-G^vVxy+Ow_ljb5l)Euqm zThMRLhX{cE^ydwfJ*NhnfmA?Sbg^gRh43wftl{xGG?#mq;BG~!n;CD^9GVPhzoJ3P zg`U+B15L4rrZ>}k$QPMn)4x^M2JR^iS7tf#VVT*HX=x@N|2M>$&todu9uA6o8?sCd zP1b>Wz;*#ZY^;9VYWwip1Prm$=yOJ4aT^`83J@o>De_^4%so(qxB?UKEoVdnL{ql7R&Xmb3Xwx-r5- zCP5~|{|9u|Rsp1#@gkE}O;^YiLAc2PkOS$6zsmoaGNF1<{1AO;KPNBb*l7;40Qfo}Wm=6xJpI3jMt8^|yXV(a9UcE7>UwqAT2ItE z{6^Pg+gSoSUblSRU3HOZ{#@O|VxIs&D_z!Iydg1*y|>*Jk>};qWDo5gLW4V6k`Ci$ zV(q^;3KEG>m-Sa6mrt%)yoJU*B{>bD`^=TP*aL;`JtU7rby`^a!e+pL`l$8&z$v zZ@63?w3zZi`k-b`?zz>@;>3A|o~D#wDnxUnvSW)QyVa{%7Bg8K@P>nf2(lO4Pk9zjQu@)nNLdf{`mDnOBwbK*LuFqm#WUeNQ zeHGfjcSBJk=ibpROa9P34&_Z6GeJ4*zHB0u!>CdGn^i+>1q4WsWmQNy7b7rAn=qAR z7u5pPvNp^yI-k?G@jp33NE6SW4HbsGy`>{7uy%A0jJf~^k(3o)ukibSH_FmOzpjjm zGk~AAIQ9L?^sK-1*&uiq8n{11GO60=)~h8%2>sH4@=mmRDY8$5UZuedtbfO&V;s3* zn!lB~o=JJ} z@xjcgKgd>_0Gti0vIlfS*!wB^7wwJ4{KqPSm^>NIf}m@8@8t+3#=4a|Z1odBA+&dklvn0z*=@_{bQFr5?9NtJ8D{2? z1_*<2WHDm%VM;o!4=|9O#6NEc-_24#m9h+oAe+XMPy1NLpWv6c|}i=GtF&rY*Wv%Due5)h-3;~7<9Rx zd}-mrK2Ri>c=V9LKuqlH>54E}Uyc$oq)mZi5Y)J(GicfrvyUqmb4swF=&JVf9Az(W zrUer7Gi)&jwIH=)U+0Q(V)+PF;-$`l@FFSLu0{cB!NWIE>=`*|Rw zBrSkj$X#)l_plc5Mw*>c`dyu3;v0Ci!uX`yyGAoic<&ab9a5z>&YH2>0eA_tiD^$X zxL>Rma@b;*G!^d$5y-T-$!qM!VMEu};EuZ70capWD^;f>;g5Z=SByMJ)q<@XAI=f) zB7q>?Uq`P|XzALi43a zv<-8#Y`-AZwrGnkCc^?z!?5tWRM4`%I%$;h8uHU0scgOwBTk7zl&p^crPbzfeMFyB zFDPSo0G@-Yzb)MmKZDXHeInY|{13{qzr^C?uaPOha-r)u z2%*H`{uOReR6MZ3*;DfZQ&pTs$6vt@vDoFv!6T5FnZ)P!>xdbR`$|z>y_)Y19q?5i zqmrjHMO$nEc7W`M_Rm$XgqL_Zl1Cn&hGOkz9vZpwvo9WWJ!-4f)W>9aJ<|vFRl+^7 z<1y;kbUG!4RTun=sST5;;L>dof)Av0#Zug!n~+v~Kg_bZvU^i}2Hc!~a<56A1`~Ym z6wDsN%XLR7K5|ON9DoVc-OXwTlVA6|Vguh|aWX zHiH1|5TQl&PW+P-kW=^kt`HrTp>3M0&n?GQ>(dJoHqo2B57!@VdS+`#f;6r+hHH8} zq7y7<=(3b}+VH_^P{l-60*l(2(m~og-MxrQpjbP6_8X`%-?%TL__?eS!DnVFwgwtXuc#&r(mo}v7A2GlsH5ljbL1i ze`q9-G6LL_CwZy-o-tI1xjPtU!ZEXG<8oTZ3#eSA_#@WWkAptluMt~FtZ}0AUV!3E z=4p3(RKWEK>rY1P1+ot4$p2!>qT!DH*3U`28!U<~&PLs=YNNYXu7QbUC)&J56+P0@ z@;k#0)>zUEy$FAt)KqxuP<&)nM(+od+SP6tv-{Hz>sanQykg+>>Me8x&+nbm4RZeA z#Nx^HJ*87ENlYmasi)gCRZnV6Iy1I86_TQzkPYcsKfK;tU&>-g0WFghrDoLSuUBDn zL@tzKQd~x3ZHkY8^aB>u_GWpC%j3lLc75CCDRIY5>uc9mBd*L6g5Q;nXZvcm{p|Wp z8QLy+-Bcy>!27ZP>j4UsAtR!ebLO6b-ja{Q^++?mt5iUa_S-lZI7vnZWLR_tKRf7$ z1qr1D*d9YHvEl9j4Se-?8H23cVzgI+;R zqQQ12R+!%arepZzP+Tn?W!`uxiF-~Nwr}bS-X8ALJZeh^7G|t!K2JM+@EXvThYx#&2g z@5|yvvI=pV!Rg@88R|^kK5eUP;;07O1=*)u9WET<=tbCcYRzjD(8_`|jt4Y{x>Bij zUK#Q;Qn%ccvQykn8sv+YjG_E5d$`mEOEG*W!W5^=lVv4k{bKARjVUUFBcQIagE=!P z=s1Gab6VwhO<4*c$orRWK&R@VuSN&!?>4Ur1~33Az*mF`sksHt=}M|*MP@`>k>=je z_PJ07F7)cBee070IIiOqGR81=Bj=ZS_oOkpkdy_m{oR~$M$!MOQJJv8x-0r4ZT$d3 zN7e&1X=l+9LG^E|)$!s10P!IKoys}>&BXHh1}qY{324vip$Vxhb_b47c9Pk5Lqv1# zb`xCXk9p-5jM@s=?Ox~kh_%lQLTQB>45HmslvmFAv&V(*n_T!{LGyo4QYmT{m$yvz zPS8{Fllm_RWQ{~oDZ1BF9k9UKImbXU#c%-@Q=}WDL-3hY%6QHRky$>q5Z_j-UdH>! z{EZpW#~yFWH7+;fD=uz9?`_R28b+;20{dPtpWGxqkT!=sa(ploCk(mYU*vZH_0`Q{ zbRyy(Xr^KRtTC9_K7-_&Sw~e54NRVt9h|7)W6}CemGx^UGkjc2kST~|5gz80(}i1m zH1d1(p42`0lxXdQB(@%K=+P?KCZBnt!mgg8mkE$8H6m`P_}fY{XlXaoX8{i>~ioHNxC`ULlZjx;BuKm>$Ybhp0M z4UteF7!-%d)x4S@qU=>AwP&~1X}wu;u5w{|(vFdY_IdeAgBpj5NTRFoWHxKEqj!!a zB(mqbv|s--N6?rpi38Xkh6=*?;tu zL9MemjEsJBGkZ{B7roecH;9ct`CI{;d8xElcs&<}arY)#kZs?OAvnKI&vy2EW9W zcqB9nBjFvkhPD2_|2<#p3hDEF{I!~a5Aq&P67|>z`TTfz93xhSmnc9rpwmM&XlI*D zpp1(AHVc78`GH3oPP=}tHR##MlnSRwW;KRZ%WQD#l3HH4+Sz>?|5I*w8R@z%j^*kh zPO7EV2qifuNTJzfYCFIBVU|4pa$rT$c{t^}Jhu!kFm6<@D3N>9ei*c3pL#aEeciOf zi=R2s#3Kz_nQ0`9HQ?z#{jXR-x0r1Xn#xmUSSXP$WcK>cfQ1HZbhI<0A(Ic}hO#fJsRNGa?BG>^!w$JwE|q(JUTj)n zuS!V9e$phePkL(MBzf=CHvyVPco-bhNiFprw>pZ_P_7HlInJY@Bzv`BdPf0ff74YJ zE!`mw5jgssyJ z(A)YkFjH0!SEORR^Sc}9C$m2TrtZi`1AtUkU)A^-!y;Tj>1))AqpsG7)objbhY>f`A$ zrCh@f#zb%qC^c=8uViOu{zrF>YDe|<*rJ?Wykd6s7Azp*Z4h8bfahje&a7biko+=+ zHywT7B16aXE1E?|*iKugCf4u>h(g&Ji@9aJEYAXie0XjzO`&CUH%Iy}Jf8`0?!{e47s8{Gpr_Z8sq;oK&}b`F{sCm2EF!$>A5(O5#)34d%y)xuhGPM93*C6PvI8LO!$bM zwpb+~uH5(cB$yKO@s1#$96_C?yVKn)@2+Sz4v$T=#AUJu6CRY3=;qsq0skhv&^EDO zN#Yrr5-$wOFSh{cay5yb4r_m|W~#5L+|6Fe6pAnnQTGb%sH=^*Vi91VE=@4i$4qE1 zv)04u#fcGnfSorpV|mk=Ch|h=_NqG5SmLg%+`*4nX8?!g+x?ca)W7ii$SM4po~2MB zYCmSHjKfq<_?!hS{z)uS4Hwq=2Rp*YqOQkJsy5LYey9M+Z*3MFF7RpJ)0}{_gLwpC zbO$`8>fqQ%G~$66o-Q6c=B}=bnFl_oPCK)HrS>;DYF`%nw5p#jSmxJkx#l69;u82> zZ%8)R{2=i0@+~nXeP)v|NofSSwc+E)l^;U(l#u2o$#oRxBp>=m9`TbP0Kq!UOuY0h ztzl)%Mvj(NzMI}V8gDre&=970_3QmP(b%)9=%rwSpRU8@;Vzg=Z(Eq$DBI$ZN%Pg8 z+j2(~$6%+~48M*0>UJFHP%Ao+HgI%IF}nZzp%>qY>|Z+6np!WcYE2sJgnNCd$QoYk6!zKW5c zOU;dR8sAL6%}xh%s|@R+-ECZ~nbLQy%b-~B<>roNyL+#Tar&LXaImH&rCo=^)0jx3 z=SzOs`l;GAytRGPPTj!f!ukzBYe9Vq>3o$p86_{jr+-aHmc7%qadpu#*Zc@r4R!P}L)SJb*CHb1|n0ZQSL zn~x2#kax*Ttd})WnvY{j=}g`cNz5vcQHu_V&QP-*8 zV_H~2E$#gZq>$wX{P&{v`t}zNKIYe@hJ>!w!2<8_ z40nwvQV5^_4nII$mDEt$L#QbK72SC@DwBE^n{YK6kg3tsmAchm&Yjnz%dWR=3DwnD zj1)l1K@kkUeE1hliQYwHyCh!<8lHxiTnNeL{cW7nLiM5&0x$t9lh7HM!^P3rmDID@ zh$d*{wrZY{CG%}Bp6u`fZSc28Rzi3NhwkgLO>Sb4k&mp6(qv%KR05C?-zo0@`3+Ia zO^+12Us`he7W*WRgw4v@t02U-mZlAAYY0T=kEfmZSg?LaKzIK1dkWkY7?A z%3j|h9N`2S94e!*UPS7X;VIkXVKTXr^Bn2gU5O|q{u;75tVw$_G+Up^#zoYE1ndBp zNLw7!Z_bYuyel=q+lt|3mU_N)aZ)F45#fjxy~An0Fs$6^0wQvoO2W_E`E%S-Pb}8) z;Ud120yViqIQoO>!l8%;*#gwuvnde`@Zh{8HX4q*_BE*UD!6@o+WCYYJZ-X1ZHz`3Ao^QPSwFVi1<9HX@2+~!F^m|C zF)XS7CUrPdhE+@}{k@L`$F~Y>15L;CjH6r_)rpT|#m}P_*DH2%;{-dMANEbyBqrk9 zCVkPW`JWy!jA8`TUc8MWXmbh=6dl=J-qUsWxMl)E>=8~Z22|pH9>r$13E>R?sS2wn z)*)c+HM3F7O+#no;{ljxUA8||ROTb3ZL$BI7wAO zkP%+mjat0h-2a$F%p?eizl5nhr1QS_n@U9j_i+M zI`>1eBP|RJHh2Mp;4U*;J&fG=xAHm&n(Ebjxv5>?r)f9r@>jn@_>8Kw^D_1&4Sk8L zEQ|j=}`nsVi_mdJ%I<# zkCIm*?v{`H_?I*pgYgdF{7b!$i+hXN=$c$}oR4`~Hz;x~C)g&a^YCRIq7mVF&F<3` z(}P*bGILR0edyW>?M4?;VK2FORRI}rDTn{kKGTk#y&L^1#GSr+G&*ZF{fkrYw`oKW zX!J+wK_TbzLSd7oynE8ZQjdRy6Hk97Lg>SoxYe{)!(VGeRpM}x_Vn(t>s?*_!WOfY zH-**Vbz1w}1UV*^V7AyJjD2i}a#m;=dj>}xMb{o6q(_6r*?0#?)Rd=mH*789<0Dy1E<+BumF~y{OgkJg_1lW|-c!CA_ef-xI>X5I1fVOL z-~F3@8?L%DS)r3r$XQfD8dZ$%XuIwQpOS})LIKw4!0torsqWrIMPx!Xb(vy#X_T;? z53&D`E+9E5%PupNQ_gPFrU{|9>P<_qEV2~~2^Zdom73OrurKaFJz@rS3V?2J5bvMe zJrlps3(?tv(~-pG)s>f|$3Z!U$o=o=RaDYMVF2~!%b=W)(^6nt@$0dHyO4pyu!rc0 zdl9Dm$j>#(egH3;6l|=okqdOwSN!<}%Pb?VMiDi<4T%HW4%${M*NtK=PXn~7M|b?& zC2E?W&j_!K-FZz+-_QNf8W43J0%L#uEMKbq^L5&C)I%unC$kTa2+_iY_aVZ`Zp| z??r;`YR#|E47WQMKzWsKwoS%#w|(7p4lZ8Mx5QNl6Zy)Y$(Czay<$F`-2Zk|KFwxbE!i`Sc;suSf`$OhsEq}O z5QNu>c@w2LRk73=R;oyOPJUxm8}6R**yD0V?0XE2zC|v2wCNulF$S9bfb!7!!vEJ` z3$M9Y3e)-r=?96PWtnu@`m!!oUmBek5@x%lR5&!`fuuutuuQ&;+b8{uE*^n-xzLGP z%rX)T4hrCpKKE=4Q>N-)6Je*47-3oKZ9ZPXL3PWMi$eWAP(HP@SV>dsS`u z!PbiS*H@pV#lJ)fdx0$Kb{>a)wTXJzHb??f^FwX#K^modT1F&IuN z0$AxXJ`GyVqcOXt_g&z{x;N2zrPt1xG+*wU9j7YP+?EME+E@&k^wXMGv9Wz*K5{1z z^?Wqt@5;oK#w79dCOl4k$!2=Gz}IU-$EC}f{kDU!+9qN+qdT?1?0ei)BrM$bQ|2Ls z%He`wfD%m1Ny5$AIw5oukDBgVvms3lZA-4eWU#S9e>lyBY#k{~Fdu#6&A1&to0S9; zzpPL!b_=iX6WczkVH(pS7uT`+K+eYlBluE`!+Uq2eQv1J_Sx^CB+4J;7$vV1cHd4h ziFJ4eBt(FjhK;W4EYsJf{ZW9#vpk&0mp)qH{b_|5qr%#;L@!F zdYhc9R2YcNq)qznbV<$Af9!OJ8s(<>56`&XpEe@K@ z_WR;tP}PbQBFT8kwQfX2<70gVBxF@=qKsA)2OewLV*^&hk1%`3!k)cq8ee#yW*RJd znm!}r!&GC|e386%r(tiO_(0JSnG^OJ8gHxxU(Z@qdi9@mCM726swMgiZ9cueMKo^p zi7uMkb%8TW+@W(+43!*j27PH_U(%%v!J9M7cBt$elC&8_j++W>gdz5e)}}gHMEY=- zoq^?&AvC;lVBrJma=#dDDpyXTsi0SJkEv`cAVg&jWZIQ;;S*m3+yJ($(C2CU@eU7L zglpTwV`=i&pC#<70%w*Bt#CfT5r@(Ran&7 zN>7un>$Jngw0HvGyJMgcKQ+NOsX|*Sf$DP_*DH~oZ~l`>jqi8S8^Q15rWba6KnAL1 z)-d2yJ;Rljt=t-XX=FBJU+oFxG*R~k<_A0OyV(YcG!PaD`5b%qG+p!g=v_Cm;HkXr zk8uQlmYhU}_tZVYHaw4Tt;W-X#3Vd;C=;rsme~=uJWt6$Z{RCqhoczCX)uW^)~Ce6 zqqCsu(R1nxJgv1GK?d?6@<(&Qj0q0Gv?r_2Oh;;++mkfPqpg`tU++kWr7&FagaQfP z7J?ne3H`kVPSH4o(HNWx{5Prue*Qk?yDl2$hk|#?k&E2a-2K!b7jN1NbdqcMIlu2z zNXK?NSJ(l?8xxNz!2;5W7oOOV(X9)O+-o}DBGPj1-NHjzf8v3)2{>H@Qgw-pNYB3C z0@eZ&eIU}|Ct;dJz}Dhl6NmZ<{jo&Wx;5acmb=36 zO3TfPdJ3m_M;*%_L+koO$PQ>hl zc>DeHsX3;weLceE1^p@ z1K8#4ExYGy^i+U3c!7TPiwZ_15I10W(kDRwGeYmMkF3L8gmsbMzJ#{vY(}Q{;@_yz zsEc6hMkVNm%-1N@hn2Y=&`FiL&PnYcKL~5H!B1US6-1Z5usA9{CPG*UyOjXc2t@y< z-y5G*leVMBenaMYEq;NDZk6D+auseSjw3Ps5EyA;QDxE zSZcy?+wiGIeVj3KP_|{dY{KwIGt2>h#APa_V)aHljN;^<*$^X*W3AlJCkqI03HN0_U1)yEIGB75Em{KRlbukd6a%zs6037AGG+j0+X_~&EQ%Ok z5j86bQG~zY78zl;`0u#dhsTYHrR7b9R~}38VR*+qwU(yQL3=21eq+m~%_XlVmUDdi zY^~Iq>q@ds1_UV@%3sPvCNAax@z}1==ma05Dfezs<`4UQA0Z)Qj>!D|pg4cUQB^s1 zyf@t|%Ox6d65+*uaARa`s15b-rHQt$}OMLoIU>+?KzES7-Ph&lmk zDMBf6V_Di(*|&ZQuA(b(k&iZ`ghws0PUCnnx#R6f+;h|&t?=IMF(aJGUj3)v9AGHV zfCpnycqoCxUvTF&M7ACMt`S=|1Nx-bT1^Xl93@(N_ovj_$C1#WX48fsV;Lx%mIGGe zihfxmIT73LQhlvvyw-Yeb;+TPlEu!zou=i18GKY!Hagz;uQA{7PemqLu?ocUfckglK)NQyYmc2 zj#GjI+m)ohv(cP`@*sW}vRDpa2ewUB9)SRjgQ}>qHN(b}adxk|_tS}J4h2B2a5>^u zgVY6&iqPizAz2x%^Bra~61j#Fgzn^D#;mD|x)UxUz}^noq;_d)k-+#$Y-e0js;okMqz^vJk8{3R|D=`KZ88FN z8N|K1%22>vomC`c+^u5J20sEFmcUu>x=q`(`u}m1;%oVN?N1?kG)uSR&K2Iid)bF- zQOX(^tIg`7D+B^+N&S45uY_Jhp8w$u3y!zBg5(k2KJY<#OAv5VEy8 z`!~0tY4*4>2wiUO5#REGYVQ=Q?NJQT`%%D`Al|+2R;6pHzGuMS+&5DkLLkk3k8V_` zie6RP$OMRr+#vKmloKe!h>1qLr!2{~sIe+$sd$2p(>Jp}yH5+)hXDxjujt{i)Ay#k z$fJzldb7aQS^7v4Fuj)h?@66NE3SKstIY9R0LmBi-lEP$T7ZlBS$Wz?8-~+1q_!TK2~U&on)z$8Qjo0HX>*j}d?YBNsAkG5Gv9=AS^}OgVza(o zuCyDA2Ae>RI#;~yC}QeG)_D18_)7*K-#B`sfeTg7rq@*5NqlRQhvi&p)-TKuh0Hup zF7e^p#BT-ro~ZTf;E#7cIYE3HUqQh<|LMK&Fj!uViyEWFYf6r+{{4X;#hrR4W_11Y zf)`&j4f`)+bv7sZ|6hrXB~gFIK;7u$XeFrLQ7OKuZ3!=JVe*1VJ7%6mG6e z?j9g89H!uc#=irb+&|!eeKnz)#!h`Ln5abYDeak!FlQzX&Nj z8eNZ-U9Xz5ugA(N9%lz~*5Y^Jd;|QB2R8oAAZ1fI664Yt@$lM}Or+kQ#+4{o$B%(1 zX}47I1Ep5vtkYvKB>Y2`D-7YO`(=^sYmOa)4^0r6K9Fzrz-)RU>0K&bX_M1l$s*Q& z>j%fWT|7kgKvG)WVAJGq+`oJ6bv^{)VhEtWc6k?MtCu0pXCLS`rZ6@i&|>#9xp6Vk z5a|;gtKOD@i5#SHVCn#s6Ij;zfXq?$Eh7cq72BR(wGv)H=DoJTpuMUA-II zf{^loW8pGM03=GV>f;6yDn$8Mqw19F+r;K^_~L{T5_JcNq(P>F0QPZ}US>W&xO$8rZz(rq&1#AsJrak+cOm!?pw~ zv*mm5xK~Q@2Q!ZdVev%>O$8xaTn}V(jJ#~1Zck4jy&QSX`Mz%o2w=l51QyPX)a_jG z+@WxhFQ^2hNAzNylj6>;E{V5HUrr-1l6onk=`NQs6)y7MK1b=Fb2uxNGF$)V&}d5G ztP{mI2)sovHRoiX#)D$f{No@Gi4mYO82vq_=}$DkY(b8@6y^VZhn`|<&N24ZL5&P$ zAcR)p$CREN$U^U_YAn;jN~fv}4h*|nGMA`gtX*GG_A z48a%U`lHNEVE^N>a5Jj0fJW>2(f^%cajmKATh7gSR$tYT+HL0|!-QIYga$&Of|x`N zt=6UWp<$JL6~hfGaW7)GkUaUlUyaBfHlh18vmZK|3yVmIAFXzIJ~hi9-S>g(a|KN_ zn08MUPX!FR=Pi3Q|A3vtc>lNIe4r@BHl7wD<6u|jy-n7@NtiynX79{B6d+nU1ZzPp zg1PMckc(L-+<%7^{s#%Ux6xp@WzxQGFqTX2GMP=(kNboVxAWfAOLzu)w$4L8_D1V~ z^XhvZ&EWyCg<^1l$jO|4)}I(-HJ7tuXae?o|4qR7`~zd`l}-2)+qkOoWbtXURMT@H z1OGj;XFrkQ?XoUK4~g{N+vejHb&b$A|+uU;u6TzQ74*zMmIMi+*X@2hC&Mv3JU8Z2_eP#hne^)2roCG-hbNatHTKTHD{1X zP83=oxK)EinWD(zhnX`A1-RF)->x?SR<_DTiVtFQwyUW{cS!&t&1JAb&j*d@boKinG>=$wN?E_WXA4&Q`-u|#HmA+eob{=vp#KD%+{e;9h|0)Ni5e0RM; zC_NdnH-;``aZ#hHI%Ck537~yKEv<{1?S9M9mM!a^`S=?;e&T zReqZFfSG+|EIO%MFS35rW+OzbmR^rEX_k~eFhvIHL^UsD>UVs%uyQRm%yV#NGMzQ$ zyj90;4#s{T!PW0K5NHRLW zJJT;Z{M6wFQUwgV#HpTor(pA5uTfMQ>6!E+04BQ@zcT%r$Q9MlqTe0&Oxa}tO6}+M zCoo(oUUt^4(Et%lI~>=(@3N5x4Zj+Dn_IvKJ+&Km$M=;GCWIw6gsK07H6lcXLAGa# zvK|M*!Q^zqO1^iFmD@pNlQGp#u6M(kG)DJlxkYMp0Boz~@~(1-%KhDcmVt=yz)mxC{eZG=rPwv0gjZwrOz?Y{Gkrmdly$r)OxGJlN*-OYB*e&V z!?dO4q-WcGMLA=I0-xAIKD!jNdd+Z2SE=IT8L21A>BdtLDYP$WvZrnJqqiI-f%%J_ zy%pD=|AWU!8EA5IrAEI?7%SA(@FF*4>V>qt75i=_@Dmtoo1-@{zT!M$Ji(nvb$T4gC@9`$6rdjAtKs zs)m6PWNc{_B0>fdj9-Ld1Wm+CDVMC_om(Lkw)@01Og&1U#Wm%?0#oni5sFqBUbn2H zkP|@&)~>UQ;c~i|m8cuTlY1~j`-U&s^5Nv&(n#JY_v!QrW@WkUTh(f}%)%p^ z{70YB3O}oK0UyV%qCq>?aqv!V<{3L>w;ueNqz&qSu)3CWwvxg~p%4F#G7x1FErW51 zO@1rYJ)WQ0S2ke4&*WIJ;hs39uO+334iPR~>OYQiXo7^96G$4v&UF#G2BZ&hri2l!bwsZjU4PQT8i+)lc*iWOMn-3HEEKH z7hJob1-mfPbWa9GU)I2R1*?)oPB!k=N0`Co&LWM@%|g-db7k7c2sqDv!SXo z_`?gUJ(vxEND96AH>&|Yl&MyC-~7CWF39LQ29=+nURCcDD%(m~LQ_9sU%EwD85!+T zzMWu4NnulK9CD0E-K)j}N9%c3pJ^y%n__%Li9%yH8WHe~L2!sdrV&G9WXoksAQ;r8 zx4;4J1*Hw-3S7zE6y8#{^4H`Qz)AiQVH8!>ThBW0Hngl%&EkmD#~zWFvRsK)Y%eY6 zEDkD%j?_{IWaP;7*G>+9Wj22A4-1IP^kQNk)!E@-K=Xy3SUT&SSs}TN48m@GqA4J9 zDo$WQ4G0g}I#*4XT>ZUY)(SvJE)!^_*z}bTBBvgg_7k&Zwkh+1Om`D1A>ibHT%y>B z6K%QokEPItC$Fy$KbV{ZGc&TDG_dw617)D7M&pj!3Zvhaj0HV*L??wT=|n>z1JMym zLWq=ShK=vw4!f5smGu3NjFo@<^Jtebdv6c=p3a<%olf3cF!P+{{gvgcLbhHvHLtkb z42N*)jP}!6NG!^J0uwJWIyl8B*iLmQpqTq@%wn@Pol!Jg4|?hdYy7!hHQuUf#pn7` zEn4TsKrXej>k}BXz3yoR*rWi(%CeU)9ZRBWc0@i#!p)-x;k1XL&t6Xoto|wZh)NES zEg~g+)}-HvPqp!0y|_Cb^TsrBN8 z`NFtT)|&bLdG2OtNy=$7rg|2`N zywDTe?MC3G*&b@h^z|U8z5L75$odD>IHvDuw%rC+J=%2G3u?^-vw)ieY*+saDcB=) zc()%JkrLH)gisg$(I2;PR1W>nj@7|)d(CJ*9g&eTYIPQLSaa%bMv_bWiIX0A_rcKg zZ+Y|U{6uW`G?Gw{G8fZwwr)5K1xK%my;1u5&29c&+am<56-cx;zS#=H`$srW&7G%EEmKs?(%*XYDp1SN#5is?C86Re!~Bnl?jJf5*U?>g10Y2zT6B zum1n*j=$Ll9%iblm&J?8ap0$36+b>~L~F{D&6+B@0m;7%|6e=c};kE|jMu z@}HjG7SlZch>wl&unt~;AEXE1biB12zN!Y6tfPE5iuCRtN$ZCHFkj#|Wl3*{zUL11x(M__c5*uZK<6xih7W*<~XQb=|?t};LKAW7}UIyXX0 z<9(*1F>mARs(oKp8Nw(uB=G7wI%5JYs@+zaUr9Q^zWXDfbRXiV7D7xzgC{BB1D?)d zXuzwyDZUWVllqKWC2CUZrlJS1xDF|P&S|E9sz%&_7!KyY1KB!a3OC4|v9QvFe2%8;QTwb!Ab{TuP-c?EBd*g)6IL-P)`lfZA^Cmm!XvshYlATLEfP% zXonF(f4ZrRFTnicWwWCTAv8VcWK%rc-hb4MvV$O?p1dzPLhNh<(Fv3!aQS?4EpbL5 zCH1Y_xn9$Q!rUp|Tto8Z!XCH6hZ;g_#Diyg&I)|TQ7de(oqL#?zxRWYOD!bmS0k#q ze+v+BWmo+{SA_7p+rt4mvXVfWq{iX!cDGnd7|Z9*9bWeZo1E@a2#TP@@n z!f6Ui!3LpeBX#P4S=%lcF+<;SFrSmv`k&fe2sP%sBH46@hVmNSSzu-nC*Of67|lc9 zphD-FDdK8MKa<$X;-XlfO4c*tX*LKcJ_oaK|EF2V-~|%%Jm-w^A4pZC#dSSEf+%w^K|9p%mi&5LPmU}vxd5A3hz*rZ%k6WgyN#`&8)&WXs#>*G!ma0o35G#BCSf|v3NNKP08Ol&^%x-z;H+k8!m zPRPq*dBdf8(W~W*QL8qf^4JWEcg#F2UegG|JxjF}auptA^1h?s*vedV-1KntE3yH? z!YhxR|Fg8Eze=4Pm)A#%jQ6*9l-gxfNReG=n>S)NLT%(=<+&&YM#4aF1wDQ#UFe#c zv>7DT;Cqwll6BZSdMv#-TT3UJyAZ}BiV7_Zs^6FG1T{o`;-8I7kN&o=(NAwR)D2ML z&^$HuB6c*had4ODLGTp+4J7fJ(C|O1Q3Z@jW=4hGh?iyGUg?tdsNcuKZ|&N56A}Qnvvp>+^UXnswDPJ+ zWW$gy-N9DGG^B*J9dvno=A*;*0sslRmLDxG75~5&{|-9*dwv-GNy?fKP!x)pKcs)MGaMRBbm% z$Ep_L0CT@V?Z@7eBmh<=y)!V-4GPsMQ%4%!zro2k5Pl0#DmwMy`>IB*_nPh9gerC~ zx8BmYnJrgo&fE+d;f=?!sg2{Gg>>_6wpz;rtPv&W9<<`MK=w)2C?K~(w;V3u?%1-X znCt#~ujCgf$=1Y!OWROUxq;d}OZoNSHUN+27RmF=1}6lMiDx7KWzw9YkPpvcqpTml z(gIu$?uh+gRCB&)o6oCB1CWMywlP#h&Z5d(^z6!47?TxMF+z;Dapo?JWLPms`Pp=~ z98#TDDVC|d~f@LTS28YjqpUZG*hhpMOhO~sZUV2k#=O}$7m#@hdDQmWUZT@ zPbplJE&@a4UdQ8?-YM%>Q^Cm6&7Rk7y{)#P`X&HXUiynMBJT1lQnh!OtB6600HcC8 z?+;9VAEKHIu0ISgzAyY(5H>Q~fTs2zzChDAAGJU9H;26+mUH~V2vn~bWi)xvm;@UP zY@^{|+?Y1ppj7iKNiBs;a}Nfm#D4DqVsn77Q~3?*WjQU6FSTXhU!jg`yW{6%(sEYM ziBN%iVbUC+EVE!q!KOVJ z)JM`d++zWVBI0TS8WD;)R9j*R3pv$EjG3X4qdD4O!dBTfSD(0w0S8thVqG|gA0eL9 zd03nks>!`KHZC>Qr5RwkO>pWLG|-(=1D%z!n0-?5{-k@C-peKYwPGyTu)wM+It(T| zU_Frz={(%-$|wWW!lI$Antvx1zs`v)QM_jRou+A||T>4*QY}bq$z;Rz3(vQoUucvb;&yJAX ztPr)og#fWh=5K3#t3tkR1H<)oAu6KK@ZKP(#vQ-BKFB(lhhV+$21+)#0%(tpa->j0hXhPF{ z5*AT?VC(4Grp~;MNdv96Hi=Tc%9-OXZ0faR+)@I0(a;rM7ms&5$*m$VG*J+e@K@=;n@LZVxu4BAZ>fFs=(c>SKVY!pwsQ%Cyq=S< zix+8JMJz~8cDW$goIP0sU6$fE_6~S{W`szRy{L@<702P;EH!d|tr~#G{HJ?-YK<(W z)rD@-jqqpnGAScV{^U7=ZW$OA6*ND}J-^dzJ93Q0QuTX*=!i;9N!!4u~`KacJs9!h+1ELqhi5Ibsr zEg7nY{PHuP!@;eU2G+i`v`8w?pS$dIl{#uz#*ss$!;jt`hTV*eV~NkOTZZ}J8+N}P zX1KmB$!b9RBaM1+Q%>#f%RJHT>P8xrcc$-G9ewPmCbw(2$-7tapkRmD zWyACt9LdY0d6Q+pm&ND1sKQ)tb?pw|u^|%u8$C;zVzdj;x;pw`%-X{lWk(Dmp0IUG z@~n2|+%Qz>i(Hqghe953D)$-o$@73-Cu~X?T|bMsJ! zqJ236sg2Mq9T92*1V03Uh3g*>vs*}fAmHZEKU&fms+BPG=QU&;_#v1Lc^TlK1#kjv zwl!U1(4?Zb7bx?Z|6Rl$$*6xde2!vpw$!WpCNyT%7oY|!$|(FB>$Y3S_Vx*s0gY8n zcZ)hdjwlxA7FQ2WcBp|BG$>-o>X0IQng?@m+twKdI4t&nsL?4#ah9BMBl{FwC{Tv- zh~MAnS|TuO>6oX)rG0?+97<5)VQ7Dyr?GErN!1s@*;YO@0{{PLnI^IE{d95_Eyd$% zz%6v|Vk?!60eLj|$yT_U6ocR+4iF4Nr#2YuVb~1a{>Okaorpt{BNo@&gSMU&qim+j zcu~hwL# zZEsz}rbR1vm82N0^fcJBiLX7k86J zXHI&GsvEhNdS!0WEuS*YNSm51Ly(0fU&dL|1AV3Cnxhz)KjzD~u&-kUHIM^~Udyrz zUtRyGCCwx+qN-~*jzj+Csrej#A7gNrP!W79c&UNCHQ3%C~`Y402%~G;+mY)t$xs9~NPX|HMFF1Lwp6M`+ z`tO_8tBaHACFrWDwKHa89eBDG;vKWyU^mH2s?$N{)S%y5@txXN_^nUr3e*mF083oc zHS{=RH&QEjT+&seqyPm-!Xz6|$vud{2O(6dBvIOSEOBI4DC=J^@rX%II*K*q-)r{k zThEWr;jeVuM3EeZuQ3xK z{H~8y{Ge-osCrTt_*8K8;*qL)SY;}eIP5SAqONRL3mrD6vc~fw^cz>>w#{`QKw)XkA< zK^4bN@W-#kV`Wcpt^sB2^}h+)xU9cJ#duJEIs+BQHH}Yav@6!$?a4#fTyXOY^-DED z*I{J#@cvlpW=Yl@VX#M<6R(6Cn2LBNLUtd(UNLsIGSl$!3Qg@9iWD5|mX1t`_!91m zq-_SkR4h}W*x9lo@N>F2R6;%N@G|##KAge+f7P4aW0_myD&I^`pq^z6(?=lM)No^R z-EB2*g^08MuO_>dL`33~3nNnUlM}!yN&Am9L&;)Iy=qi{gD|KLsZjo&5TOaS@$_g> z>h&9h4e^TYeDHR3Bnw#a&X8gc*tR8!6KzoOlQ`J$m8j?_?)T@5V##)!^|u39CrRp1 zR!*@LEgUI0Ao9}L1eeZDz~dBql;7O6L)6>vbli$bPeF9XUR7d3)SeVU=bIzD)U9?) z8jC8=JHgq$mpeIEF0Jd)VUpcT(iCfJ`xyQ^PwXos#g3rugY!hVxF zlM{UCfdT}4uu?8zG?zpf(OB04H?$)g&WNY;%hIoi-j7|R3183A*NqevPf5@QML1qZ zoIRGwE?^?VQu5JGEq@WFLcb_vT{%f};>g4f;RC~)9I!0&$L)O94npyF({WvV!Kw~k zN1az|b=;Q*;;fLP1W{>Xdt8ylu|E z{~dxYit?J%kaBDC=t05LDVeSOSLX*?C?Ch3HZ!huM!*LcKP5$Q}pU;0ThTu3jqP? z%2bo`N$$3pgL+J%@}!A~jVP?(0tHzp(Skhm%QG_X5u~JPW1bFO=bgvSxLx$d#Kjni z_2*KCfs6MANTTYhM|d8TFEs%6QD;ok@{|eO8(&IOEa;U2&>hDlHcPY(GJ7iElVnN9 zwqrbJw)gX4yCs{hGnV$o_6qDWSNA512G?;Po#`C zjJ0%F;o%@zU5Zz$R_Exyz}!@LJM`wJbu}oEEPu6J+X(?233^6L=M&v4Mt{$*IHx*@ zYC~CkD=elTZzl1`NxLa6allcZ#8K-CyE2aa+>w|V)jEwTCiNmL_km_Ze}1&<{o2ke z$B%RX#1QS391eGp)f*R8rI{;L4I#X4x%ZM{Kgj<9kVus2vL%NCEpv3GI4Xnmb8^@1 z2mYS2sxcKHzR5EOimb?|EHPi5*UrgOp+W z4jT$xAy&QOPykFi9MKdXX8PC#*`ak7H8FlR%*bNYU5)GAFLyU6he$y6V5d%CWnoaK zKFdzsx<(-eq%q&#Vfc-1CpAJo=WPg>iZ5#%9A!0u;1e0`&rl@h6`}@nt;RWhu}<-@ zHc}O4k&B5b{q4_uliB(8C;G=*5hELr&em#hp#ctA(Us-%ic_}i?stAD9(n~J!Tx30 zYvKEGQdDdd>m0LxiED#%pgS?WJ&b_JElmP%riM#13m_QlUTd62beLNOf@PGn{mi0W zuM#3$9E*p3kLG!d{~?)?WCE2m2f9N>M9FXI=&fL4MTCWwXme*^?#Ntw#P9$?PeR^| zs;HCI9kLt<2|NY*@EglB5AV}EoXDzrw2hS@&(>L^T}a30ng&t+@Ku5fz>)&V4Ba=L z_ntvQRf$8Vkcz!jvnwUXFVz?UX%f*d1YaRBRky3Qkd*^mW!ybSs}jUe>;mTtChh!k zm1n7%a_QHxP#+zO?ODDsl;X@C&vD`KRN?a17ykt`KUb@lZ~g;Gm*_#FF|g1Z=?Bc=nflB6R1~K`D+dw+afdzvi6s)|uFc$HU!(djjJg{$^ZU``Da)1=b+?+@g{VDGbPu%un3hc%H4iX-kDeM^f=9VoYkTRxlGGsMEGNaTl!<@HB`Wh zBUhbFbI(Au)ES)G!UvjWYVTxh%}Mv1ciH7a?Ue?jQd*=X+q8X+!EmU^+ju@!8f2Vy zLg?qvAG4m0F^JSmMMfNVsio4s;k-+ZO~S=m;3IL+EdKn$A^RZ9t{1VIb2Vbo^rVH{ z_nXV5fW4U?OY7lmP0327k>h`U$qYG*Q3jXL7dx&hjtJui@AL*&sD{t1Z%cJ9J*Q!s zA3ftYJB|M(;(*fgtNSP0+=s-@zeDziHU#R--Jf|CH$LJifu0R$enL*YUW_4&)@&_n zfT1#hK-#e`7lzJUb-yD3U3!ouf|Sfe!8}5dbnFf9`<$y`i!XiUq}NYYr4x(91gL60*;!XWBm04l#as3VywUu7xOexZ4M@ zXzCN?-*b>&nm(cHR2Q?^^u(e>i~csm+wS4(B0ObND>fmO?s1`a4aNgsc~#@V%B# z$b^(#ureAjI=TP&vv?}6_M!BZ-`vwQj+VYuMrw`L&_zu)rRnu4i6f3oC?Ds0eu?lF zQfTIpVC%CVV{EvU$`~~$SA3m1jFzG<*6Cg8J`+-C%Ag^;#(39rcjB{3CP=+%lxasC5+1~sfZj;Hy z)wo8m3VbIs6uo;P-8Iz;4Hz?`KdE$`B1=yi?##`IkKBon3wE^ZtOSIlDlqF8j&1-? zqF4=lw)){%A8yK2sZW36AePm`p{nic7!TcdM9U8;ELk@&Ut|lTPzn z>w9q170R?^n`WzFGg%WXFV%g=mlcZq7iS#*2GZ{tsWEdI9cEx)2)$uV|oeQXC_OZxJvugod0X~I)r24p4as|$&$4+vcM9?1?^BiXoJ!nPpwXr(+(ROX!FE* zk>QZw)hMX7VSNHKLa>`f!;N!h8?eJuMz8w1|1uFB5#}4;FYFb_N_nCzv|#lEPyKO! zXy9|*xtcsP;;OT9%fqo|vhS`A1-?NjZr;hi`RoLfYLQmGAjn->>F|y{f2w>b1wSt! zGoy(;fD+5z}*IA7Hd+}^0M?Qb~9*ckG>gvUu+T_HgK|T2^2M&lUH0>2=4L*#Ko&KSXuT$Ss-t+ag-fD z)EqVf2y2#St_XPby^dwcqSoS`U8F2mF}qN+raewjzV;6F(XX|-aSc<7H(`)&T;|uD zl!WWTwh9Nt<76tPC1k5ri}N3cmajod`rnf_SbFiirsfx= zIcYl4MMCl@X6!6 zW=s^84G7vNA3sCL9{k>iQ63h&2DI^Hv}~$;9&wTu`X0`FtdeFJIYA(Rxxy~s=;>z zBo%9!b}@;U=UIDKPUmb#wy~WajyI?!rjC{F>Z*_!`Nh#ZEUn zO%O%6dX?rZZZ$0|mN4NDRMpAY{34Kfzl|h3t0^a9cK~k|%I)dY>WvydNZK(@c5O)+ z4fv~xqe=4rr|vpxhCsmyFF!-%<=4%^Ad`{XoLHZxL@|fcJMi>}jMfbXJMfn1152Kt zd@guERvp#?ZOKECAjma-x9m5%xFDtFCoPvU!fg)Sa+Y& zTwTSIbrdtqRRVbSxqla4?VKAFMlujyM~t?@a;4}Z+KMIOYBN4~B|P!&LD%7BjS&=! zHKa60Vp4h*@{Spd=L(oEOUbZd1Tf>$_mlKQaW1<6VpYVoK$6=@@1ClKxprwvC?u_% z5C-$qkh3ZW09!!Ryu#qVio3slO}rd5#E79!81wC(D7uPyCUSy1bxH_6&lw z^(qLV?WV_$!nvS3@iyw&Lxb@!IBz)KkKBmF`H^7}34gQ0L@2^DKL! zHN_LBNN}8TsE5EY-%l%*$4N(0?nbF$-XLcAJtnZ(D&=lAwD6~Hd((ZG1fEcTpJ@qS zog+VGAlTrIOX}3wGYG$a=&x3d;((nXJt=%A2V4rqvB*i1^$Y}*^Mg41_Y+L+%ai2T zNjdi1Jk#dtKzXIov zZ=uHsXqNRGS03*tTyM$7J)(>n^O5m!d-f}Wr#A-lgrIy79S`Tn*lOfDH=W``#U#aX z)9gH;DajaDJ)_720SRmZr4xM>QLx)Bo!@Sdky9H57VOepauoYW^tmQ8(|sDvi2~6o z4`fJ?gh3%8Zl1stZqu>GxMK;r%UX|~<9T*!ig|diJLB9YTvh#%32)j4%^N27CdX?6Gj~c=#RCU|;r@UrKLT3_ss<^_DWJATtUn=#pw@^H!(^eEfalp9Bq-YeDt}OuloV*@%5V4yDoTUn2&UfedM@5xigt8ETNefzHeWA z0!~d4bCW!>DG>C=^FK9EY~MJ7@{x3#kg&9cioXAXl9_o%6#qn$2wn1g!uKosaukQ4 z>5QVjX&;=B2P$U6u%(to``ux!BB%$j-zwoHW?~Wwl<@BYvTCP~%oj~io3yg|i-`o@ zyg4m>xTt9zh^0dAycv87jg9y=rBI=% zOQC?adKPtBhSvE8+7|5G%Q7{w{0UKSyMR57O*zv+n6&Cl7I4tE!8!la(HGMCmFHos zzxZeBMM%ptfgXgI2$usmvc7ks(6a$rCiTbXNxic|##_7U4}Qufh5M~(y!D8no#@x0 zAuzU~#B9e3NB8w4BP?rkbQnl$+W08DI{_W&jU!~kw?tMp4tY}Rm1O*o6f3wbnxL$) zhg+wca96f=V@WfED+aJ-*r#vqIsHGEe_O{?MYDa8Ths=}_^JUE-4fsrchbt~VP>pl z3iNdmr#^G&4P9rO5E^(B07Gb=Ua9n zJi!jmQ|C|iB_dk*_NP5_W8-?_Mp4vjRJc=7Wj(Us{^1IBMdyZKoP8AqwZ&Z>Fl@a% zV`FUsi&YTwq0XUMx%XBk^#8WnG+?=Zm*25Jbt(8mK|WVFGg6C`^}jFORXwF9vw3cJ zOZ@+{Unw$`+{dN4#ydxrt+C~m-_<$cWpL6b-b$HLIYIJ``&6-Pzs`a&_EbuYJ^f;?d)%{ zmwERDUX$`QCKE4PYU#N)-(qtJ>O`E{xFh!?ywJj=U*+aJ>^Y;_!DR+v04-I-t`brK z)@rlU@#z=J#`3s8lpdkWXfF<_dq}Gu9&;g?O*`JchPF3J`jFbk&5)zzruGSelWuwd z?m}%U=u!B_#GcTMr>5~{1M3fBw~dh}nH|aA3!QGvkQA%bJn_}EB-O9u=N2R;los4T zz+vi+NP9#`^g!qF^g|Q{>#@k{8Zbpg9AB9-9x2>6{Y{d+=11aZJ@KOd{*`_&pVn5^ zD;~fSgoZID?|227i>-v4F;F+1bec4);tz#K1AVcvi(7Qr~2tz(x8-o!Ftt;^B4*Jsc07>W!`(D>nFxLmU0(v zZaKi8)4wOlsJ4#?!uXIz#43+^zU^OH$)CMW+;$O5O1s{RrWJXhSrbIhIs5OYpvg8M z;0_s8?#<_#7QS~i^NTyDJY+dTJ&Z-SjC!rH;d>- zuaiDp%vRPx$Rz1LA#Zgj=Hk2d>CwSl)ud;UldA z;{yt7Htnt9>$`IPk!sW-?`NY~32X#ra#MRvXc+6HS7r@WQ+sBFjz#WaR{O`(ThXk5 z6E*R8|Jy_H%cik=I|p`=2eoATan4N<2xO4HTnovOX*c85qxXLUo?Vp~YUIBjYe<)S zZwe?1mWeW<+=e!d@fXQd1b+3a;$*4|7Kco8ST035hSMaekT&rybTk9qbX}lsZ*ThF zu~aN3fPIDKwPKc?*1voHHYLxj`r(=q&)1UBdm)=AP*)0tgp6|+LW=Di{udmY*XdhjoLGo>B{Orct zIy1#?dS7VGvjyg(&9niPqhiD=-WS`;azb7!=+0i9ioiFB4nZU|a9__BHHZ>p4!HS? zhQU7PAJ2H*fe1Xq7>W}wcpQbT5m zxYH}5Wi1E^|7sT$;8(DINTCv*RWjhj!ohwfLR(uN2?GF8V;QjFy1E|M9Fl%U+Z~1} zUJ!g>rf=ztvK$Zb~{$GJz!}K z{5oHNtj#L8EHv7oe`<`$lCM}TKy#r5q3(;AkZdAx#-VlK`W*|5jnp;*Z)^K>pi1Yqgk>A&2v}m_rGC z{$3e~fY@~IEibh~On-A>5ab%VX%qiEso;arRmF=D+F@*^th4>(L>Fr*dns#&H>)TM zmNx;tz$&d}jCp1fxT(&%Hz#y$!An-#mH9pt>c$j(cpbFG(y2%gF4D;I3kII?T$}ol*pv+DJJEtc3 zJ|9HsyXQSssY*XVkNP3NA+wsyRKx?ibp_63CeJC2k5*o_(lcF9g?wJh44Ny~dHA>% zDY?E?{m~Xi!)Z2nv$80>HqL@Oiad852kf5_a3S`D5phMbULNBj4_rgOuB$2DL&B?O zuioFBlo1~ycaGnHM=%v_t=8p}W)<`U_zCXx)IsTo2cwii=WD74Dng|i!P34^NMI4l zq|eQWj`i5q;groe9=gCq5F6J3t>@aadFHmT{oNIIWNJ9O$Tp!U`wCHDV%vQ@C(I^_ zq}>3{S^5Eq?ztPTjs-O8CtEB(k&vOLY3$OFDZlz)2o=eV4_;@eXPs_sVSE+11$5FJ zp2)o;@w@9@%&S46uN>*G=M~A)Ul~d@J7^Oh&3eaIQmzf|)aO3hExc&1WcKfk7KKL1 zRpM(CKGC0&E>HUpVZFWh0zMLa)Kex*f;uXjKhCFdfI>$v@09nOf*vmAzJx zBFFh2Wpnq%ROA0X_iQOQwJNquaN;AEKJ_Ns-I$I8j@3Fm*xUmN1M$2p4z=iN5cCL8 zYk5iBzguZvJz2~|T_A4&wmU%Zf&d2k)kz;-AtrTfH|qYpxKo~q%FeX%`a+MP_qvO6 zwIY}F<{eq{1mk}q2#g6I#K}Q;}aLO>Dx5Ut&9t}o^QiShKI8BaENj%DwM;MSL;dVZ1-yxAvsG1Mv&F&%(b~*i= zIO}whg@weq;_@b?bHG^fJ+=BaT5ZJtOqMz#dn#b9c+YHryGj$Y`LLtAyFP8O@CqmS71*tV4vd$ zy-eN-(6Wo3>Lz~`1O;c#VSNMt#tcbp+6CTz}o^|>#Rfv-uo49EqEi0IL{e+7C7%+@6 zpC88AXVlYIu8wwtTJ8J3uc}KjnfhIWYc|smt@+eX-@$jeezUeCu84BWP9$ZHca+Dv zRBJ2`Hoy`UTvE8(o-Jf0pU>w%e1n#ynW-3b4uw6B`oXwC0yqHCl1)EV7*}#-0*^V# zC=2vrP#FjcfAKbkv1R53Quyc<;CMA?PJz zl*n0gWHZyqax?6*F`fXA`Ln{|{d?kqCD~HmnQI-)Szki!Mj{74^O-;Zz$TM=5AXTX z9@r>=S)Ux4arf}A9cHz{Fxnq~F~f&Ax~O~DRymX?+q>V=wN@p#sS1)e7r{;My(3%Al@tlbDsDwD^|bKGCVbubiBKBBo4mQI0* zG|n%xHX@(q1AeQ18zX!8lR1>Nx-}xO8F!{R%X{7c`%cl+-LJ+{=}^BWmfi}+!?zxV zTXH&Y^d0RJ$U^PHF-5*=C|W&V-=#aE@~OO@7mHM@ zz)&#hCz93w4|VB71X_{(@+KqCix<2ot3x&+hrILgor9Rs7g42P^13?~m~=D{HDrRedS*|Lc? zLzbQyK}Ff{xIjR?Wso3nkQaPXDt7r5hn=8df_yocl%q(?5n!R2UgYKsp#Ei7hi+E) z*9&nsVb+F21W3 zb5C56#knayW?E8BjbVlrOL)8yq%>!Sh%chD7JL1K6)=7rgP4LW;7_4yI|ZPRsE&z^ z)=MuIKv&7J$476pV#=JZ_JBAcAGf7ujh-fxiEkFzk1ctIpGFWM{xwR5h_>2&cMz?C;e9 z^NLwug6BJBEkV#uEbODj(Amq+3a~Ig-s)(pPsqh?kK~u}rl9Z3;_H7W7ZoZ36Vf<^ zQ6#6>ni?8rhn^QG5QQc9WCKh;WA&OI!SfAG$W{UWW!%ov0$F zi0YBKw%@JIDDnvy{soc`v?lLza>2@*amb>u_MPA_K1*SOiVG=9C`mn}%{?mCPRYSu zOO13`I^$X*^Dd+7Tw$Vjr8i@TaHv$w1|vd>y%j%HIDsN+ zOy`1--sIny!L?DrCM%q8^V%f)B1~3w(?yi015C&0Od?xXd8GWPQ0uESTi6 zO+T@!V}w9Gmy?LF4vuW)sro$T-igF#dAgG=nXz6w2TuTornkVS63DSatpGS^_KgF> zz?fPlWiJs}42K4o+ey3KPkvgLA&-A?E;&Lvd5LA0iV)%^bC6yw-3swhhH*a5Yh#?v zkpys!ql|HJ^2QkiA2C&hDn9AzBu_L=+08QhgMsaqvb261zF8$OoNWVcY@lP+z-Fl-JL zhd$I0+s{F+sh5ya@21h&Wen4+V+6EKXe*PO)b=*OR*<;Gy|hMF0Q!R@${ilz*5`^G zwUet2(edH|Djs9*;2PT2U(_Nkq2F z05xy%Ioe{iANU-}#;z>sj*70Np>l_vV_i|>2l1aNnY7_1rHrZF6BkIY z>FHfkaTxVWIz>LlCz->GmA=uDTxI=XqEI@Zz!IQ$#I!zcs&2Mtva3Pq(BqeW*eSwM z$y4Q{3MW7!4iF4Mw8!QoO2#F$KO~ltWlaG(clSfyDP)nIx^heiZL# zTr&=UhBS;!vM-mNTZE$qgz{xPzMR|R0 z;sTiML-UOkJ}KW~8(Wg~3z^MtPsf{8R$^IAY2828SM{qOuAHi~)fzeOy|}ANGdqY2 z>u0Lc&yv}tAgemZsK;boM@%Ipi)z7=oJibE#wp{ZDf*;->BSo<%>)wTO>*+riK>#m zMTnCs@T91K8wx;}|IlIU9~I3J+Bz3swJ(^?EeA60$nsa% zbA5^qpvqq$jN^NqX{x1Kioc~wk0#P0rus4~PR?^+jdMXCPGUNoX*ETP&kCr?prPz( z>0Ss7_4Ba}oQD*GFy5DdkqyLEL|k@UjHZh+Vw3cUFy}7vD(uds4=<_?wavWW*cZ4J zL;1)1mW1bW1jRb1Fn4~t3E9-_39F`!+6MiwARSqRf%-{UJn)}fQW43pO~%+GVH;>C z#)uJ#3N}uj0C>KokYq2rM(jHE6o^~4?DPU8T8ugb&!~H*WQA`$;HT3VANIm zVs$YM6Um=?ew0w~g%`gw2fegJsvbA>GLw}kL&%MYNii~%i!P5B_+L_{FbrjcEAH)Bm zF{KGh%j01@BYFw-&!cqr1`=_YId%;)t~D4jc#dxRdi8P5V>qsj5BV{1@20bsz>cfcsuq`b^GQcc8R`Vs}Ohq+iuXz9`yq*Opu}q0bnz zLVl-{UwlM=!8L{~{hnbz*c1PyCRO5g{nz>g`G*87 zwCr+mdrX*)m{Ork#0E+l!sSDgAu4f_rFkBS3*+q5>>sMjhbb03VH22iT!f~Ut&K2= z2@?vU-z`Z7g55tVg8H)B;-_X&N`#NjWH-J-^t{q3JzM+=p0Rwv_>3o;>_bV9;#3Jr z8hr`J4W&mpwUMh}=PEc0DygzMI=~pC6e$*ZXY^(*BAoi9RNfB)8IzGcEcFzm}vY>T3uIn0=y?HPKhgV#z9u0pj_id0O@Ird8WxkkrDI^q1q{|xf&|i^@}c*UTKo43!_fltJ!p)fTG3~<9woe7;mhNUa3tLi!5Lp z`?lO(wjwjGdz09Mi=jr?%=E`uTRVI!R86@*le<}VOpcP$hT^f88>Me6V{dp{@#Rc4Syr8*=PYkNi(|X>yWD`30AdZWQJw8 zAty)s6H=&J+Nv~;lk^nAgs`(#s&~q!V3F13BcCo3X?)~MdrO_oiaEj5eCSX&VTLvL zCZfeLH`&Zo@NuNi8)Gh+YZ<9hZeSEO?_~)2v9q1Y&2As(G@*uBgL+~MM8tz~9m8SW z5NWCqD1Y@_oVce5SS2o(8((yq^=l<}uZzHu;(qyq=Wk#ajTnt4%Z4FMiUQ#kZA_{-d9ijKbjz~1Sv zqs}`eJgzTwA37NKf|mEjmwO;LjZ#OMZLimzRs~^DbrZ-zi=3H#WT7DrcXQ&0bqXjzW&#!c$?QNL3+{A%0;AsSc0|7r-{<6+c&O8 zn_oBnJ8F!lxM74kATj%x_O{OabP3DZafp`rxy~qp|8+7!us`)am}RJeblj|2PPL{j zgl)+=0V&-4r!W&gcC+QM9|%zML&aJ_wxw|3(=(2wSGJP7{jL>P%>q|mQwa9YS1tN7C)1H*i7dkBA5qdYb*VYbBCom?XQ4oS`OqjMdWGr6dV?EHa zQs>Tn{ibJw!CP7vzQGzNcBis26f@VPp~RhQB`@$i|Af+a&Sk~p*Cr=D+L`&f(yTqN zUfV{z#!^P|W+f|Sy7-S%v3#Sx3S*jw{)z|vtape*C@>`6>K-onDYssZCiS#HamYM$ z0pCUeo&M8?mDua%m*XaHX@m$x!Zm}Oza2(Sk>`HwohM53n8fVQEAuMsGW~lzQPtuC zGpaeJ=vBlQmT_Gpb=_3mapCAW;EY)h&4?W9;2Wfqtalz!CQ%uj)ynya{%wrrHGE^+ zy2OL~A09D~p>025@$*wSlhOIfI+Je1CbI_nY=S{@;8nnYk%(v661oFB1{h~hIf9fG z*B6L$-kqwXt6#@R*ayq)Y9B}9}or{P{8Y6V@eQ?qR2H>5^^aI}6NkHu>T_Ua`m|QA{^%I7sFDMmS?;%?!j$KJF z(7ISjVvC)IcMk5?sP8<~P4!-4bRO2h{i|1ePO__4T}ZO9r-*HCQ#_)sXM%LvLo;B{ z>oRcMCRVA)HCV~!phZVOq=FEcFWz?iQ{RQmaz-9=^;mZ1o(xy;$G=ylkv*r3SWsPG zA!bY>z4(hGFg z9|Egw9i#IaIxV5{^svmY_XZ%vDjHfjWVnk6Fx(LR9htbBz0*p}M%!=;!tQl`tv3kk z1EGe(iWbS(;MRa8VfZ3A+PF{4Qn6ajbwv^P_Z;*RHWoR?bMb9ayVaN-?WJHQk>M*B z#(cSWas5yH1Xy_}z<_TTuch8yRxe6HrCEaxpLaP@|TA>fuag`nn8DE2^klRGO_Y2t(Mc(54m1xC2<&d@A zOw2Z#cFEH3z~|W}Z7}yhSYEAR9|GD-r{vT>#4$^>KzFH?PrKSy4>m|0)l@v7*K8eA>$2<|(sodN3C25cZ zl)IcliF&`ki2{9ZgyH}N9uK6)2GuF^!AUM#6-?=aUX8!7FldhXbJNzg&>PAt+T1IK z-~uHOd8`=FSa+0PC7ll6u^<;D?1`R$%hbg^u^Wz*00N(+KMQIuWUBLqJB=W2q0~Ev zxKurjh8|?(3LtXIfNXLT_l$|fRYK$<^byK`O61Qp+Qp;iVFuYpR|;mrN|M4=G{4rQ zxPTFWwmq|!m9-QMB(#%P=D+o5!&=_STNj}jnvB}>nHfVM@8sIjX_&emYd?l4+ns}-C_R5?i z%9RGfo8(tnn2bJS@a0{egtmNwg=&v5a*Ui=Vgs_1c#s5>@Gz$!VhPNz3DBXEmpl79 z=%_z?f*v4`Kz}yWFl2&zEipS1Cs&%`aNQS(BJzFZwtDU#OGcf|buyf)k0z2^13!+X zP4!lUT3>rZV`Nh=B&-zJzOoZqIty-7;Hj~$4^+fD;ithU4u@%lF<_7D6{~y1UG^Qk z-RzsGxf15XvAC6I0gJ~;E9U|1TcPxdYJ(b5y$=2|%( z^VEw_EdfauKm5+f_E_;6NCSzYBAC_X!f;(fn7JAq{gxiI1aCr7^nI@oSNpWa;wy&p z`$8JdAMb!(MbY9_S_En}lwl3>Y2Uqi^;I%y{;R=Ru$TPVXsZn8u|yH#gObLoldi3= z2x!o2Sh3lUK~E+BTtp0pk?=`qw)?+g?9*3W!nZ#87B7xxc}N}6+nsA2y#ntz1ok0B zC^V*%p(17?n!%{3`5G11eYy_r0}D8z&K=(AzF|Kmc(Nqdt`A_A{7K0#HFI@^8;_c5 zJs7|JyufYVCoe!bS}!!8q#MQGdh|i*AV)t+9uaf5-ieM5C;jxqzmPtKZY7wj2Xlop zDm&wv;zdM7Z}}-jgnN)H(E5t`>-tun;Cwk}BeaSX?N{IId~N{B{}xbR!U#|5S|!(| zpgo*UW_@=ZGh!CPf<0uZ?vRrCW{w8Dr`4AFzwL;JQHpH!x<TDSuk;9GRFlja*pfWv0`d9RxS=6Cga}_n}H%YHbi`+%OT1}gTEaNWrRR8 z4KO%9SkEn>Cx)^`wa@9<_Gp_hR;cA=js=2^@8n?ftvQ5(057{PvanOuSA{FXtihVZ z0Q*T~6!nqUPLUq0`RGGi6xIHZpy~(^vuzV#!@Invet9FprVB~2F8=>&gk(J!4a0w|&omL{i$mI=;IBV1d9O8n0_)JbWTrqeTjxVTRJtGScAOkFo?i~m)^400NP^Kp&p`k#)8 zqFm6<3|202pO}6eL&R5@kL!0#w<7$4`Od+R>KSdn$}l5pAycSi)P@E~Lhb(N^+^yx@us-gY)%UlvNxr8hULx@#_eMjIs)M>CnUbcX&Ee;8Z| zo)#{}fg3*KPh6EuFgWHoFqEA|!K!OI@A2Kbes}!c&e)~3j%o`u#*eX~Q@W`Hh1_b3@7WQ0$Sf7>e{6+>U@qzISNrOOCn*aBz!}co`OJK&Sr@fjNw? zaFa#4Bf2V1I(#h>ImKzU&+EoR$mb1%8E&}iHeEl3=mY>D-)iWRezFI*b&j23rR}pL ze9evd{HBk(__oOok*5DceYwp4E1983Vcw{nVAMn!u%kgUH=_D^P|3{0vb$LMxQ_0{ zN3Q*=>h#OdhnfwxA!%r!!gwR-t4SHduC0=Frpj7!2-Frw=>fdn>}-lT-1T$ny|qO5 z0=w)nxJ|;x3W`Y1lsb*n2Rmn@wr0R!8!)!>d!=B*)t*hpQJu+2cWhcjL7&7ox}Kok z8{Gs)i#2|T)BF*iaq=_YBH|e(64N{Z_5= zYz_A?Q~}g&&-1Z!;LUG)JrWEtv#X8$OasPnC&ShL;N&7A@+wbv4@;gYv%BVwW{)p{ zYfVVuQKqLVFtdPnEkOB9i9wuqO7+TUv~+<1Hx^2Bkc%>WM%85sEeGxBJ=zu*wBB%m z9*PbY$xC_ePBesSA8T(R%eSpDeqs9^TZf7P`6~ulm`^E_2kyi>dT*P|x+iL&oQFz?#g_ z;LaV^JLu!YU((4{CP6)zUHLS}5Vqj$xbHpnj_}3@ZOlUZJ$Q$T4RksZfM_&(=W&`( zD3j;~L;MqX#vTP;MiZ%MPIgtaoH{7$RQyVO&vWUgIJ1xD*<9`Kcz?w8W9nrG`HEfq zGd`^lrOMdcBNc!I12Ic&A7r`_xrnT+cG7!?3{LY`bi&gY@1<{u^67|Z8$z!5d)jxJ z#Ed2>``b*Vqz;Kre=bbrQ!(jlS5;XEVp&buGYqt{v8X#TR|;{+;tV?q0Z{_SLdpq{ z2&?$0Pfzb9EHzt*nB(JS$z;eAdA>sH@!m-Y)ulgO`vGtefeDmJ*BBjkH1=Lne zqaJkVfp9K7!m!M?%a?gLyG6GKx_L052%9)dP6JK8{L?3jxoumSmOkQ}*#?&cwaNnt zy$ODb6Z1~wNhI-FyB^9;I>-89ELgluwpE02(Oe+;e+oA+U{>|+k>{%FRQi63Rv0q; ziM)9SC^nHx6eZqj_cVoMb%_b@9RoX{9Db>CBB}VMiA-W*I9-S~Ll^+6B;mk5Aw6yuY<3 z;W!H|_qEgpB1Y~HeVT^UdPe(L}KEW%84ZxchL-3 zZkuE!oz8|7^BFgDg9cMbyE2(~$67d5L`9^Ix=t8;e0}p>dy;)YDA%qnM4Vqh>|bYN z38xwcEZ&0@Ak5K77(>51R6VaS8GYl^?&ygUZ|cQeSu>m|cvac86LzDn!(SZ?`Lv3b zf(w0d0lTGc4u^~+HH@+;$0tN{6kN6sP3)- zVg$4p%YNb3v6;BO*L>cuGVtdR4KR7}jF0mocJ{`6vDlGr0etsOYd#_VZdzM?Ku^3&@m6zKE_}#qeD0fd6Y^sI7`!ogC0M&(iiWc_R!#+B}4&535nUY zGsfx8dVL-gSv`I3QkTRV;-+u~E){0U&3*@yCAZwJ;=F|TCVM6nYGeGMuYDn;kxFi_bR*?v1BS*&h9a- zL~w*Fh7Xo0K(Arg7}uGgz5yfgVwU+)8o~xwzabR+q5D^Ja{tm566<-#;#ZX+ueF3edko(lz;4tt(jX*FLCY$+9D0B11pS(5eziu+QXVb=EJQix??zn zXK#tIYYadvEBm%gj5QyMP2!y!H{vev%q1Uwgp5u=m2vW!`UNLR)OJv?EUl9kSJO1- zYT$$5+o7q4|8&uyYHxnbg<`>Ij~Qjegc2RYkF|l3gyS6C(btC9-zyIOWl3*P|2HOE z%N}tsXpBe95&MBgEE1;XbF-PJ8R+T#Z(DTMHui@`S(Cxh8ppCDsPNx;A+qk&! zDQA6zqK+a|-)!1bK>g`sMQuS8J&Fuphh+7%-Pz=kLAf*%#^O?I=S9E>T76UTo@>e^ z`j`nO!a$22T56^+D;v<1h;j>-j2n!k2Z@9L!^3^l6t0?qr}f<55Zu$)%qN!HF*GD8 zr3a{Nw81Z;Tt*4djv-;rkHV6@5b#?dCWl-lXTGA_Y7$laBIASG8*>9uUO z?5R)PqkoNO6|Fm+vq6)9!kG=>4|W{2rWeO~=@Ts*Wnnh<=hM~P!)`iT-S$T&$48BC zzRO-)oG|p^m>qcVY=1ySQ4ThQQ0P1SI$K{!o1s8L_;0emM_8;u{tltbS&Gg=i^ zv@47xC?pDUTLtV_Spn-FFr zghQn$iKGl@BeO(!1xw2dHJ<_BnrV#Spnk(1fbl{ZJOLd18@kB212Q>#dS#KVBOP$IvmCxiq!!4dl)KwgPP6W)y=C`w(-~N>1W3eQ-wOdQJPeD^ z0bA^${>1GLD;c#=w%oy7XO!<6n9|*M8#SF=_NO=$n-}&(-ec>v z#2(^9rg^kY~T0_dceawun#1tY92>xa1np!8}FI1^6OD zHs2l8#5Cv#o~$h?0oRF5Kj7C#T4}S|rZ1~@UOu!cE4Wo&B(`p3%(5WSf5Ux%L?t`S z%2Sfp{SM78z<*dMH7Y}FJUTCRi3nKcD07h!^3n94ju#Qf^M|yhC?K-sp@!gJ$v!+F zRb;P!g>R-wUGkL#eL(NcWDgXDco}hdMXxLVV%G2Sw7}I#rO=z+OYkFWV0#WaAQ{fwO-29Ou zRh%pf?a)aYxKt_aF$}*zTjGZ1TI6GIloE3Z#tSew7nkeebC~)JCGBG)u5R#$2J^3R zD}A2Rr!;Dw@`O(v%_p8l;<5x0ve}MNl$Cnwum4Yrwu4Cs6*|5{@DZ|#==N6tm!_E7 z3Q^{SN}=2vY~UCE-m#gt?9}{%7$%oilzixa|3h_QE5s!t3Uij*91+d7nxk=boYx!! zRXdH60%o6WqkxpG{0e#e=JA_K+RRrGXv4hbI97`wV|B9+3og;)GhIFV?R60K#9Trg zm^9&$`G!*QtiT-tD|lKW`70MdJwGij%Y8-F-U@KAkyZ0cn{hM!ZgAkaZr$CX4;_N_ zk0RE2z`s`cmAsn}H% zKBFLwuB;767yAxQLYo~s7AUWT&bK)2eBcT|=U0I`Wl6qpj!+~Ccp9XVxJ%Rh6&pkD zd%=DW^mJuQqXi=?;p#7IK=6UzoYE_3T7zL1TtrxCKduT#g|K=~5wA*wdJs36U(MQSX%y|V9}I3cm$qjxwhCU2>>%X3ZUPy{G)Jv} zgR3PVT;2}4hVUEW^pQ74xT)_%6n*RcK~g(%sPdn!5?_1nPpnA z;k^<(HqKYfxZJ`iaFv+?#wxOhafajrKnJ_;Uo(Iwbqb68nVvX7t^8&G?dEk!4m0Ju z(k(~8Ux-4J!y2#Ej|OL1Ll4bTwSt%}aTa z9Ivil-ihWdYcSx1<(q{CZGklG^31nDtW9;^c$#+`)qEqO6V7r-;0^YQsA>~bCtMmL z@vNZnm=qj<Eow12ecpPv z_Bu0_S@NgaRGeDA0?Yu0RKX4u&_0e&o1#Ei(!__!kPw&_pqMY-j_^VEvIPB^O^CS! z=k2BuNtzzhsljw#a=V&=0j$GayH^vtv6UHQr##^HjgbboHbsJ}p#7)Fdv)9_dGXu| zKl&*IIVh1b_QX%ML9teR$p?t90YlqTbZ)3*g5+{mDoXm;y@%=8?*ouK^%bgckzrX( z@>A9yTh`K$93-0lvFo3rvTA#?SujR6DPhG@!0o4lGwi_Ap4aCC_;1rufXn6oNO}LN z{QzK!!$ZmLY3|4neQUlx=lkG%B>aR9$Rv*V`(P{8Ah zxBPId@#ZAZ3943Mrk&yY_x#z_0C0OsPj7Pkr&h8!XIu*nZtMbMvm{LRM2lF7c7N|{ z>lT}O;7+%BHmcKR48ic^R9U&sIK89=GH6K^bHqa6Q%CVaC)fJdsH%&eRJOv%9zyCu zeh7=DMYMsUeT)MpB2e&9%1y~qBH#rsP&F>dF?V}C0V!jJbSbdIc(-bjhL<`Rq{F|9HNj7acq(W&d=f2BnWwG@DEcOi$dd-uTxMzGV> zkacf#wtP*yrerH0bFq?j29bUWHe$ImwtKVjMckAyAf^#NH8;zot@n58hnrnAG(8f= za{}sHqa3^XpLH4w>H!z=Sg)iWdLOaQ$n|G4_B}q-$a4;2yKc6D_Kx?cT#&;uvE2YB z7FkEL!yVe&s-Pq0Z+#7c_~w9(k^7Gu$c2n>PHWv#Jrb%dxEP?Fq1oEe#U7dp;O`%kERj% z!uIPzBMMUks-&B9V*k62+E#*Q$s$iI`Oygh^?;mjF}hTzn( zUae#8XDvp;x^mcrfq&|V9unIn3XdcpOJ$l z4vY4~hmfF-O-R^Fk(QG}rS@cKh-BJxcNRceJlaM5Dlh&%a8sQA}C-|;E zsk3K!DqK2|w}b}sA$t%t(~=|~z^cJm-wD&g3C_$dfCMi}Qy0H$2zx}?k!zVy)2E_P zv^%Y7eZ>;*tQ{r^$YsHIj>3i0*$57G9iT@yYA6ctCu`{+TM1oyrM{N$w(P+NHFe($ zG!a4|Rm?23_B{&s)Hn>-4X zP>>qw#bBXiy*D6wSrrwifTygWHI2&Z_z2aA5sRfr;SOa%gcua)HYYKh_T7yVZ|9fV zdbI%&01oGja@M3B0p;~Px{B|UN9HTZJ4xPeu`+znb~F4#hW zwTP)EH1y(Fh`_U#3Eq_}K;$-aPtuwi!_*^oNQuto=%38Z43}zLx;p2as~PWu-Q>x= zhQL4KD)5m4UHqG}L%9N*Q0y1&NX5Z5dY6M}!oR8b?(In^JO=74up}mF0SJ3~F(W^m zRfr+S8gIWVWA-FezV!ZcG2LAw*L$pV(ilTf0PJWK51JQG;K}baBDI4tj@8mvA@)ik ztZVW7cxDXc6Q9ls(u<<3yo!{=7dVAT?CZ*S%;?1n#Kg*$RF&8Z3f1zQjG5zZ6wC@q zcS-Rli@FoA9qadZT?NNMZ~|_fzlTuh@-AI9@!}J_V|{3GB~ArTiswglUaENOheZ;v zYuB5ZZ;}gZ|dk1TlW^`g}Qj-tVtBt2xTRFEW^k&{jwpRJGvP zC>cbJF|{2DoJ$8ZBrf=$@nJUNcTdblBvrRYz+3cN|9;QrJFv7E?jz5t7TUB02CeEd z#g6<0M@YRz%lMJb3`N7*Bh`ME~71y@| z#ko{jzlEumJy$U|8g6-W7Tw;4GC5n=q1q4UZQ7Y{C!&VM%NWh2R?z@@S1!a!wI1CA z{DaFId8=D>RvIGG3q)5*ARrDyThKhZYQVszZoE%7R`$ac3hX*Be><|}hooe;*I00C zA|wPT8XRb&ftCz0L8j>)hY-89AhSGnaQSDGaV#I6kqsn5?2Nf%^8*DVy2d#4KdW_+ zSM{a_X)tj`@J+1UjAVrFEgZ_5&Imp&Yj%WT4lzI|0!H{ptuoSk=^8Ep*k(^^aRhbv zYo7L>+>y7|`1*O)AYmgZ#GKr6ntI`0huglXTr!;`tS0d?R;kw5rez7NRH&!cDJxG% zUhk}yhZc5@*_1_Nf%bpFPFM<{Xy}op-n=rCvZ=CJum$Mu@W=8#ru0hl z1NG+qD3!9m!yKAdvau6=4{Wu4F95@N`$2<$GwG~>ConVpHrjaNq6co{q(QpV>;oe3 z=X2r#ThCNrD?@7a*zd$wWQgKx@Q1_EOe3=5!8z~?;93hVHlVi142BJY?&9T~$wkea z$T-8KF<}TJj)7Z@p(>1{Q38PU;b+FU_?o4Eq7?8el9JTjwHzN!Vf;p2muwlrvWHUH zZ9HkXMY~TUkljP?hbq)oA)m``Z1x^FV?8gAwP3?LHy(5P1|amnU1FhIT?3^{lWgSTjzxqq}sPxuEkl;RlE--Vy3k(gBt z-ACyYe`B&B7Y3yAs;hGEwC3F%BhDghx&?iB)@h4%ZcM~MZ-wE7{ogI`88>d$&4KVr7uDvZ-}#W0LbcXN^q zG;=`1|95i{`cW=04P-q~GbNHiaW8n2MO8b^t(ag> z=q@J^Zrk?#q`J10*u5}NA>(3^dVDvU)R{}VOXmQ{IR2ZSt(Z-mO-EY+52?#LO?$b&taEqr2fd0}t!wH?E`U@F(V>3(e}S zQ|1J`ercX3ui4;$=CFvCjb;}n(LA_QRQ`l>4$sOeSXAd1K-i}SAYdch3%%O6f<(C8 z?lP+=E^xFwgmZ5)DGWeP!Yx?NU(bl(z!L-#H3QNJMpA!S?|FBUf@kJXeDr{x^|nJ@ z+&sIhfVi5^O@%y$8zdW-XVfg7meaWn6lt>U=Etp4FKuv_X*x3nef8h(Sb{Z;Mh#gQ zmAV^RNPPux(C!f&q*=v?C)K*kM3&WA3b-?tKCU-<{IZ>QBYgCSi_g^e&bP$Q_NCL2 z!bAiFp{%A%HvWdEbbV7(H)1MO7QqxJd+#*d;|kQ~m6AZc{=pDk$i+x1ex)yfpn? z68UAOrbBlc92blNMC2gr?f}@9gvVS3y?ZhnDt&f_!ONMyx9f<&%+5et2Bc9%5Vawi zV9#fvt>er7)fOCPbS2gY0W?SA6bOp|Evv%LqIo(?miiN&OBdmyd;mU)SvSa=5jsQB&p4I9$HqYWH=XzT1F zfyWY(^<=ban=Tom8%r5@LQ3HHO9k+=Af|_{iQ{5aO+TQJhYbdPF0;}Z-o2P@Bt7Cy zD1C4+``hO#BBBy#iPT?f)fCGHtP)2Ofn@%I3n)fF<%r(nG{yS9H){;egv1MJhB$*f z;|dbo(|4GT)W6E4)^rbZcGV@7n(+CtrTGQUp8qrq1ZAD-oY~8Zc9C{FP1hnTDyH~A zomzXmzY^i{Z*y3t z=fDw)ZYTx>F>$WeTa%0dS>fP4Hz{FHMsx7 z=c>;G=PKt-us_zz&9YlcBoDj4Fbl31OAcjfJqB^kp(*JD@%eHJ-q8}=mlB`TnW7Lo zhp#C9WG%r-W{?a^Ag-p#I%E38X8p4B`$@#vzzNGwoqCnOBgAxXg)I8jxbXkbtBVA)$*CZ_tz+iuhk5BcbF6~PKoTn@2nIWfSec1#>2%!T z#}T0RAOehyjz8r-AuF6CNfd)h1LFcSt@Y)*s$~RQpUq4f#OwMUzscWC1K&~k>>q(KK3W~2U=qida;%+aKN=3(w|ESHnVmU*l%`@nmKGF z`-&*vB_N{J!JJ6N8kv0F;dL+aBn*i{nj+Q9p$|n>0dvr*b!cg)VVh4Sh+gUn0P=$7 zj*QoWhW^+4pHgQ6x&hI3YMFpbOAS9NjjMH$1N3qfpq+x*1u;zJU@)p^({sW7TBR}k z*OsVgz+uUh-S%tN0G*r+Ui%6A>Fj6@+_ zRb#*F_EQN{TL3rZ;gG{wLOWa_yi!Ibb@xboU*;=1O`;Rj0*k;Wr{E?k@86KsrFXJoHkx)_W*1iGj6daz zhq-sKXGwGM8pYX`aj$yLm!*;3~}$&f{2*^pYW9&(e54u@x)OVY-e0+>&U zA!$CqZ-=jI(kpxFB1@V3R^z3*c`c~=snGd17z-tLQ*6{6w!euw*b%biq6&YHxg@QB z+tq+F*iQ5`p%3(>Bsx#!itRB0_9{c}-c@LJ(J_KGy`$r}i^>TAY-Cz~Oc;c78VWxp z*cXQACiu3wZX{g%s@702%C=T#tksFe?A9UF*Q9|t$HzFK+M5zKTAfGwOdf^CCs{73t~Tk{W6(Cx*z0UCF7KpB!Y12Btnz|rDvypl`6`EN}I>CCuFrTS_k93E!9 z4?2MhvM_}XHVpe#xO#&a*5S9L-Ywh&Bn15TvKt{cp#z9wM>SM+?rV}&GgkWerCqcSTa+A5| zw#o+AkgNQe_gOwg0KyUiru%Ry&V(#G8qG>2jQ&_B6w2{EPI08s5aEj96r$OE*$&>a z!uz~|#;lf6ca;p?U5-hsFU{E>8dr`e5dKPkKLq`h2YBo}@Z)f9H*m+jY2#Xg;;L)y z@5o|2KbYD#6IE`ji*HtET_T$zzM8R;hqMD3y%-u!F%Y4x`#9U*lkp!qI`4+9h2=SL zRL``{caO!#n^2`g^Tm^N!}K@9J}oHRHO&+COSf?1);e=*|NC z#aoflYqatq32FJh1!!_HqW^1VHnM=$aRO5q=-;35jYl{OO5H8Z@HzXN(SX0Zf&$XJm zK}<@QNRf7#5FmR?{H^z0OX!rB0D5dBl20Hp}U!Orft;tmtk1gD(2V_6jUQ~IVV zb;yQS`#3W&TP>eXMMd>2r&L_~s}7y_rFPx?Uhd~|H$`I^FG6pEDs0|In>xBT?d8C|F8rfJDFjeh9ck6586-~FCCENN8}5G=xZ?^6K- zo=ffEy&b#t&mb1CG#!IJLzFOC9fEEemG78vp9{Fs{$)++!;>r8K z`UY&RpuFOVj_|tBmUJV)$2yWaA~*=!z9&haWBfhcDm5AyU9^X7Ppl$P{?v}MdGM`< znUYfZ$jQ5U5PR^}KSR{Db^dXb@##(Du9eKv($v+!MDbOh^5mVt6A|h|cC$^n6RZbg z0SXS2tLK z%8y`KSqaTP0@z0AV*7$P^h!W6KII$blEJ&YO-nHDV`%4T+nTBU%ckUM5?R2Ps~ zF5*H^IY9qwjzaXyOc&QT%y}X1DzDm%&U{~dF3UADWrXx2eZ%jr*9!-knxZP(PGx{f zec-tV$fh*X?OW5p6$PHcAaS5_aevI%Um74$=1*Iu2y#=nl`QT?DCl3IH$hMsU;UZ& z7HEY|T|I?xGzkoboeDGj<9+R>OzGU^6c&a@p`RB`m% zyPekm9OSh*=nfszEP|IEh^M28Gvp5y0Z?AHx$P0Z7mWpRYh0fN&l}H$B|6Z^$hcUA zv^%W#nC@K_a0QKAA?s;roWLKTpLqacnjAYIKu&y^Q$w`(%!dEIVCTz6RdFr;}l&lfBLNMNY#e!sLFp(8NJqRjP;4taVl55K-cvD{yP-xPm6L0XtT4sJ#O3gwr9*aZfL$GmfJNU0*<;tc&%VyVXicD{M!E@;M-J zCS>;6;syGD^j?D1RHS?x!z-`VU`K`4CM^02mQD0=Fh=?@bKNgE+bbmW9X1<^U+)*c zyD53(eb2}Cp7AU~*EKNo*bY~TGzJR$|9oDy?jw)abR4}>se8ol<5?bh;wr1!m7u1=={&J3QcM2Kg$h34l1Z-rNR_`0mDX0+_ZrY32^}`TaS@AEZW7?KIjmG&CY7^GfN~ zR2+8?#*4WVMlxJM9?1O0SeU`^H(h1;OST3j4Mk_ZLsfXylD$9a> zTY%$AZk*_%`;Rb({8+|d{rFA@lG@N@c^|G9^lIc#i(&AIEruV`R{`1TFtk7OW_jH< zkJk>SwY0c8sxgVLh$i{$Hbh>oDeg;TGD4MI{>$4gBr4gWlK(!3(J9F*$du=w#?_`} zR3DGVXL)g~vT62RV+C2`Jgkl_oLzNmENVsH1S%ftmu(wF?ws81f2lR6bt6ou24z&L zOrW_%P7$;S%ZqqUl?znxikk+dkByzb?NiRc6MVJY$X$EyjVpGBIVDn}>OuX$bfwsl z%c^xf4fkJErKtMXZ`1=>Wr9Y2AWX3%JzjOj!;sm8-NRy~dj<2EH4`CznjWUP0cE_4 zK&6wwG(_CQ6eV763y}rj$OI*9bPo(4I=PSE-VnSoYJTK?VSfz>LkQ~m^0}!fEsRF+ ze9+Ew-Rt{(a%+?N0e7~VCrNTPIjRFf(QL%}TD@;k&aD+Bzo-oOry}Q@d!?{peZ}2BEa)% zwtAhHTHU5#Bak6qVP@d7%fqG+|2PPsKPZ~iVC?K8+&?4FcpE555ki}``)!2p3x%jp zs3t*TJy(kRZ|_%6cka+U2`zwil!IBUR;NX%TxgI`F3fK!9H26WRj1RwJ`vF%#)RO|fSW->;Vh21ABXqd1x^baTat5xPtXq-#CWZ;*PD=1cm_ zEBFncFXHxd5>^tMOABw$!;+D^ahnozc+ra53n*O5fKW*-{~KhX!l)p>cYUKJcLW46 z2oSLdcPMx{QXwWJ6re7Sp?SakZoFEC@J~zT%E@w*E?Y`07_^3%L$hMnFMxp~!aRce&-vuht)mmXq%9$&~^0 zI?Lhr^Y9F4ST4S5!=C5*9}MJ} zMhnk4o#ygTb6PS1e)^AB0iyJL^wu1Ko3>XP!k2=|QUb}NFVHzX8a??PE#tv=DG~}6 z!}hBI)8l$tp$+9FcNa8rR`;2PQdF@VX{18y_k&-800az-iEMqk0_prjq5q2*cK~Cq%>_`3-& zNJLy$zzb~qo-7LaC)MpXt5Ph9g>%&o=4`E>LtxfxF=>xqupSXw9`J{ZZ@eRZLrD9$ zIuz*(E4g4ckOB2QmC)2nq?vJJ;6ZLj_+)==Bl&%3mKugtn!?E~=jSk+pCbQS$Rkfc z1+XxFYe?(z6r2JGAHTp__3tVLNv9Ls;{(!=K=8NaeW$H1*=GBl4Wr0E?KpXEA@TZ0 z()0>5f{T2I(a;y~y0KU{#sD47Y~tWzA=fHhTwcgd{DszppdV3=`6c`i0CKUM%wBMd zS%rAtS->l^+b$n-%?z_V$2KMcBj7{{Czz~tXeJ0;vehti<(fU?Qf|17saBYla};us z@)(N2&hq1kBGlrJ44^I|n)kjNcDwo%YOxD$W%^7gt;>Mf*T0TVF_Df zLg~wBd2$wh8%|&lkjEdP519$X(Z%yDp_8*@xT#&Vi{p-rtFQbb zZTaFQV0{Gv2n1a=1L7jog0R#e)yjH(E;8B_<}CXr22a~@#n%G$s++8XI8H$Cwb6*r z5Ik||h}j;rq=Am6c2i*ZO3Z6mlS~21-Rk|hFel;w4eHTxF?t>Q`&IwrmH9&hn)}1C z_G(p|tayP5zf~G(K)27QAwVaj>@D4sELrchhc|NarkEPWTDY_h{1I|rF~zXMby7^0 z6M78z=jN-GwOGxedm~-1!GI`gXREi= z2-6s^+H5dKe9NENd|;69+;xrga&}yBn|P*QAvCRNf2$Tv{&;28XqNE%HdoOoT{mzk zizvz?=d#Um8q{az_OOI#Nfw6$!jq*TJSl!jIHZ{2e`~lWf2yFW7ofC~FM0VRyuloW zX!Pd;Ys`d$@cuo^K`30b#0a7OM)DGN<_Zf6EaYxK3@U=48Sk10Pzd=)!m}T@cFLe` z4|NiR``2yQ?HBXTtQtOuF6RGA!&>wlk=6EA!@R3Vn#Fj}SmkCh zGdbJZyT9-1IE=y=D@@Ozyt|pJlCKpsyj7Ja3hn)qxBqt$3U62V# z_Plsh7)aNe94B?U0g(6*b31=4k?-{{>?Ik)Jx=|pANu1%Fr;F>*mC5DiYjRGyFk#- zWt+&_785*>ZE@v@vFI1>tutw|H=NplQ2ZZi{Xa7ot$the?t5S{`>Sh|sLc_bI1Sz; z@iP+0zBL-YtPS9rvgKvq??j4iX-E^G!+I$7g~Rx0UR6{J*3406fXU7K%_bA9w;2iK z2L`dRF|V5Z3&2X*p7#Sqp)&Hh8Xp&Xj0t>K1RM|~J;;@v+X1RAg%x!61JtsvebasN zca@$bmt2iwP-|hq&ERdRlHT>~Jmc%gb2zSX6 zbj!<3uiS~lSHzL^EL{0YdW6&%U5R}><_@d<<#%C%nroWfmuXojrl>1OD7x7f&-~rQ z$~4LN5(X$Jf0gG?j^#vg_DGRHm2O{Fl%}+s??zCo$6vpc?b~cXpg`a}NLFuO%#o?F z&fMC;qacD4luHPJS8>)`oto!*y;b8bF z24K{^N|=$HW1x^-8#c}udj^-+sJ ziD}N7?1Z~xZuH2I*`jK2E5dl$MB8tsLDA%;k?ZXg_QSS^WW@kJ!C8I_N%0gsE6Fx8 zE5h%;`IO3e42Cx3@s>{W}`v2KtvecYNm|TAqciX)_N!sQj6!)*5UEQJy*&e@0 z6LwzF$6fa~yrMuONB93M@nTCAG}z7|3E|Z;;w%q%IN5_@)~C2$STY&7%7@moAI(Yj zu)vsWB97`mFU6cti3tF?T^*eE^_86ypwtKhcNYw?l+tyoBkR>!D&YgowavI27^n-` z@c2H0&LqT>S4qjArPtj1i5^4>SbSr=C0+@}sh~s#f}ZJFgnmH+sfzH^a=>*}t3o$= zRkHARh|S!1xeWyssQoT_uxN)h7ue&jtLY4^#fNbCghFJ8{@^eVub~Bo`q%LIArRC2 zFUs{-oVpL6TL+M__tRT3v3T0M{OW>Hpt$S)5N}E~x$9Ps%AgxhO7z!16-!W@@0Z06 zlf=Sd(0>?e)XT|5FmH8TIt*xl**3H&ushr=Rbh57lf31m7sak55DlknsP46~fAY*- zmEZC~E9AQ_3S}D@)Xd$8qnWf(yne7@ut`?;BJ#j+wS8;iDOdS;TN<6ZQ=Xv#^Q(u9 zw8hXEgF&Lf{gHM*3rUTfs!fcLpYX`oVI{Z&@2WG1XhPAP~G zKVm~;qTGDyIkCGhmI8>pli=FB2P43I8Zw@MR?VL$IX#Q19mJ1#=`E^SuR7xL`;=Oz z2m(Hidp(KGbz0(>{^Hv7*+m!lkk)IrTB7DbkYc+-Ala1E{$eV>TMefYA3(KRB!v1$S!B53#cgrFdMnG$EikInc@6dHFN z;RAtz*S{QCX-OsVg?LZM5o!;4jsIu<0^1U^~MXtWd%XaLjQzo?jf;xnja`)>7>@$7(!3lr?aD= zuk*^V;wS@o0p@?kjoOA3dF_oAoA3d79^d%Xm{eD!*kdiEQ`ZeW7_a{`72I>26Um(Y zPL{R8XDgX!U*HMT&9=7_Y;+N|;^*57IOI)nrY)9r$Y%$(4r%ShK=lcgjt%p!M&wop z<~1Y9y-PK#g`zb#<+LG9ma?Ni=3HnYZ0zdXO-wnx(H(v?jy=e2{YN3iT~*Mc0*j6& z@0a^k$`uH><8E2eaoz({1cWz(0;a!~{trxrsJ% z>q{K)P$qd7%gz6bzYQM{H2(Cs#rtr{1@tR{?J9w4y(6+~o^io=G)G?T^(5|vWHbXB z#a%8Ov^t~YW2MBp`NwpRH>5rF;lwL5Fn$7(t%t|FB&r4syx$HGd)*=s)SbJPI5pk7p=L5qcI8re^A~(#Pc;)2WW||Z6nc_dmBTd z@MobsE2BbMHhdlcRAl<6Qx$rL*P)LYuXuck{6~62Dw90>8aXkGwqYB?0ZOn-AEIvw z_le5m^o8J5jWp5&Dxa&BceNB}SLfFcS2q_=Vz|)ivrD3hgLTulf8<&*VY-L+#XCwJ zVzF)dq#%?Jq@inH&F{K0>;DVb27rdv`VB{Mqu z0v09P4zhcXm~aIacqS$(h@T(8VFR1-#3+XlC)@sZtd!K|jamCD4;^|h7@ z5Qdwc$XDN6i6jMrso8SET`OlFV3eg3Jyj^HSb88H)|XmR)%#8Ti+Dr8cTdyp%glD| z70M7d$a+@is*fC#3gT!x+wX%~55xCz(ODkOAQS;_lg>M{ct7@3`jBcu8mAJ|V z7djefI8V^vyD!b%L)+cGIePS|akAe_Z(a zJZPJL`3fd}bb9 z9OEv-50ekIB0%n;e0#fc*5Ow!+{h&lX@~AmnDtjE&}^D;h{h1>t8Ek==xF6ex;UDi z!L`ks-=i+mjg_PJ*h%-gr1SjJa}NY{%_j%*LQAIMb&DE@ZxFe!)+~|V$%#O8$W;Q! zL=p{>bj`EK)*=f^V6MxfcU!&ZqF>$yo{&Gk=3`51$6oQ5og*l4U)oK53K`n9(Rff3 zQ;92pR&ghv<-0wd+9N?UN}s2xo|)QdY%7%Wi8x|q6@weQ1m2e*FLD=naSrq{f;! z49{GjYY2gikaN{E^i;*1D=O0EfM+ItsVB};3}_|eFK$+~6Aj6=cK-37maN^fIwMCK zTM)3ZpSC;9#<|+`Ct5cF;Sl*ae#IPusA{}Kn;IXd6_FC1(OB}S&&G}a?m+7lMrf2G zQL}uwUMb?#AyK|RQ1^CfOaAcS7t!NU$vPvB;Zrx26RJK>9Gl5c7ZV8 zp$CcnLrSqR2;7wE=-#;UU+gnN7+poaRIDgt<|-7{ck4~$xA>qAdXpK6C^xIz$PFyB zifW1&6G>Y6mb(PFt}#52PeL@PZro`FIhWg|{_yBAF=8A70qumvq74Qtx1)?{M|dVh z-l`=r2 zat5v|0bqv+q+nX5c>X1gh2tJ87&|g!g7Z#l60Tj)b7f0+*qM7=ckxf@u}ZLXg2GZ? zhgZv!*HrvBond)!MR0WH3eGfk9bvRo@9wL5RO27O8`Jgt@k+}6xA@l_>O4Y!q?j3f$sL?ETj3Ba zwSK#FYlm07D~*6&Mwwj-DJJ8j3cgX?1U5ByMnm=Oi0yR@(1Tmdx+{rsy=!?^A*WTm z8~|I4rid9_LyTz_1--2YMBXZw8)d-U={{8=AkOE)-6Tzf&_Tjh#VC=N7>5ew0QMXl z``pFkThdU2ez0<3VUBT21rkYY=?7W&#Y}wTtU6ZWfHI>Jb>U~}2V|?#5R-Ovj8o7b zM28LR^q--YzISp1-l)^;l?4P)7{CWAb;uXNvG5`?H#U%#<+HhoAFPhYAwy{76l?a6 zz{s>$J`#XG@$GzYci(VTXw_`ug2wmFho$mw8&7l~yK{w9DZkx_V`-1D!Sm5bZ*DjV zytV;=s9>>|%*yD|e{dm(f_k|UqHTh?=Q^@Dcu8o@BzN+pydycpkad z+ie2ON)&Q8OlviS7)tjB3pP*5ieu`=uAlD798&jd@_AmF<$~jD@wcQoL??JxKarIb zO9Km1Nq9A!)#y|8`|J(o+RD)bh>L7T2{1U!0eTf(JJnvdi+*8gxlN1AVx|TB`3&Ku zxWe_ax!}kdi0iDjTNRc7DPx)5_yj5Xe%kWa<>CWr0{VAOhT^0pnyxwE7>h3){5XvD zH<8-{+Y$?Fi#Db1a`U(lG#UsBj*+mvg-K8RHy7`9`HCE*nwm(UA%8xO8iFecrGCTn zJG%xvM9Z~|?_^v!t%_{`qbrfyIfvUlRROJ=VF@ z`7*0nxNp>6bnTU8t70FfsVq%(=YLsjt()WOXXqrZ8L|m}QsD3_3CP`MwbwNbgB--A zQgQI-%V{l*VD!)uy`mZ&%K|+Qi}cq1wi!me|I?JcSt3Ub7HSf;TFK8PtLf{ z7;Mca7bLT3}5GWGm!lA z-)Sy!-GZE*FUBqf^BMtIN-%~yh6;dBm-X6qO!D#%Y*uyW$h(J4jfW^$?gz9lLIs{@ z4ecP8f>B1zXnhW?pTA@!k~B5cwF~g-vEncKk12vWbUOt)%TU*!B@V!PzZ*T0 zDI;juOA5?b9ew7DCCuR&VX@QzQ|;c|WAL1A#wl^>Oeqok6JXY_);#ii2H5=|>Lk{^ z$&4&Rk!g9i?2G42S-xdw)4ekog;%b{%zeA7Q>-zpGC%-APw?k(zV? z{f)ER1ibT%^f72CgY^LAkC#!DZEq=#)D8FP9bhLV)LewKz*>;YiAarb{lk?l&ujgI zL?m?sW$>RYUuWTC4|es^E=L8V^l&%b{2U3m(HD0Dca(h46h{vv3srLNrd`wC-ct94 z$Y9?vcr5ShT1^KxNQG0dxK#d}EwMaQZ|iafFcosJDjX%;@d*-~ufk4#)MysV|8DBN zJU)8Lg;=wxInZ~XA2Rtg?h*Gb(f#W@z(RgSbw7+NdGy_QG8$lEa>&*4pm8EPUOLAE z005_xLxscCydV0+9}OSDNDbGUa+AU;As@!P_aaue6@aT?dXa-%>YP-KEYguw(em|A zmI>?l+j?rP8&xM&b=zCwxIbf80?;YjeG*sPud~p5-K`1vT6%019-4^NegkCjdjZj!>H@s{-o!9bPs@x3yO9;m6v)A56VTh<2av^chq-)R0Gh1mO-l21L+( z8WmiAO4ifpCfAXQN3(wxP^@uKV2C9~re+x?{S)0-aT|TWvERJ=lF8Lgx&WT=b9c(v ziA(~32an_=u$aDn#-07OtPpAl7?a`Dhjx#8+5j1BC=cb1y#Dh8UwIn z9lzOY8FmWkYA>gj&S*t%e*CZp0^@l43=c+05+7`0s0N;Lmgup!F`A&nhjsQkQmT9N zhysIKyJ^l5wFVh3l!A~n@aw?KRlKE}Rxv|G0PS^|?}oj55DR68F_cSNjj02oJZRps zy(=&n)AvLh273gPbCAdQaFWv+mkTQCIrwEHLnS7Iu@#t%=-TFUkQpL3&N0?)QrX`E zWfW~~KOwFq1{}&A=Tm-VWM5ok&az_(oS)(4H7;ii7KW+7$OqSc^1yi+Kgt}A16#>7 zm<#e^u;Z;jL`)%S9M#+{s+2Cs*~ziMu~RY!MduR0nb!wSs`Cdf2-HL26tG=Yc{2~v z0Bg1U&oH>%C-L8j-3OL`lzcq_Rici= zr~H%FDcuYXaZ)W@|&j26MnXC!FWeoP84m|#5!Yx$s#K( zKC^T*x?|B%Rr-6uw=I`$c8DbapsRXLmm?jpHR=99~LSG->Ysp_Q z&mO2EV7KPvGGTM4Y`oI9XYFh6*YQLvD!;h3Cnajmz^;suEMBfT%SUzFXyi5B5iTsA zL;^AC1~}sl$bHH>b{rmZ2=bB6r&JuDJ@FRPbZ$}tiP2^ITK63leszyxRq}_^`|2@e z$2sM_ikqrV*+))_nV^ZI5lM2ydKea6^&-zELM<4g*FjcFERVJJeX;6l$x+N>`=II= zXO!4^@RRaf5UhpPWtr;E8bHO8BeLf`kh+-)X3>Yq0w&T;C2tR~ks%3EEjUFgSKWY#GEZQx2tmhC`@E$vYcMI@g1K1S(>+u#rroR7 z3?{T+NxhlX&jf_0LD2jt<{3Fc%_dL_?NlH<4c(_wJSMET8*~2lc1;)JDG9D{ZVh!C zKV0z<*0uEk=bII~_>yOm{r1(ONb|n{%qf-FO(?QUH{Rr=WfCzZP^QIrMe=)Z{}3r* z>h$sUUX(X-sNUoOZ;sNpJBD3&voa0mOXqmc@7J7Q-v;#F^zvx3%mRu{hdAeRe3u~* z0u!LNe2q-FLD~QQ@2kndXA6IYWEn4Do;FYh@=`)R;I$;Vqiy4OcvGa9(5cYLa&Sek zE1vuVjDgD51?7=95QsKG`u8aV&tulpH=6TYe^`(9Nw~oMtRG&nXKBT@KID=RC>%4_ zSF42(P`2{l!o4 zI{O#GB4Tej**?PwxJ-7Ak7|JPi-5P#HuDzR`fUuLZF<`d%ns3xos{YET5gk5q_GTZ zp6sw9SmB?;N;x@x7_Pyl6w>b01RqD>{G&nuLv4Ykim`!>W|yc}F~RXO8`=IAMOLZF#NU^%(8!_bmXC#GtE|ao%=+Lu5vp z0#My@#{(q7uW5vT@_=wUwM#Jd+X3GboUy=p@7t-o9AucneetAvVgp^d$g(Gy-oys`C4kSj(?sLO@-KNSidVNZ1RtDa&~b4@wY9J={vaD|x}Y5g5eCMWV&D%W^D*vDwo6-(YK3V0ee(Y(4yb(4=0ZUs& z{9}efT{!1$d7l~c(FYU~(TOA3fOzR3_hN!3nBV=CBP(e>p0mx=f7Zd;Q;|9>@okp5%UFxh&#+Y&=r7bAb6oDCE)-YD6sL31;F^YNg(M(*fs>%CkW6r zCIG)u+=JxEsX3K{#e4;+roxgakPnsDh~6y$%w~Drl5khnZ3lLE2l_a z^uGVAt95bzCBh|)SOpDUYzmH?;P-Nm9TOKi9Y<8ya#3p}CJ)SYtOY*aYPl7-YtPQ^ zvusy%eS9$V2Tm6O!Vl7MHm%=Wi(K*PBhQLji-0g>9juaQdm$&UZtZ@p80wowz?5Vq zHx#n7CPvO5F|P~@DSWm*I(dgNeVRI}gu~b8g~GbCq)QmcN_x$e!LU0yuS0tamw5p8LYdWOjq4v!7*It;eY7eky z^`*J%nI+GMSKedYzUhmq=7`8-q&PhuUv+huO&pT%lfAEN=XJHIxMPUd9+L4G)I5Fk z$LE})MF`2YXYj&0&X@XNI&L5k&o;wO|2zu;lD22qH9B5G8O)h_mK?P~Wd5a|_?=VQ zBxu^a)v$laztc(mMlxx!hUC|#)xi{Aivzc&l$FQ=ad`}sRcG^qRc3R{lMM*lnc3rd z;}Q*`uSt2y2{a_07E5IQJ%Vlz(EJEK5E3gu-+nm!P}_pNGArlI8?vy>K{e4sWEu2; zJ!T?gYy^5h2Z2AEVm)7bcm?Q;sWoDPvWnvt$J{nR%26gB^Iqksaq-U$UbbpMS`Auv zdvq$RReBud_8kI={ru&7RVhArxa8|*Y$45e>>_Tn6Hdc_B7lmx1XLIMz5)~+Ds`fc z(Q$Hr4Hy8kT@^mwZfX;67|87|1i)Ofc@h2i5EBUW3hZNyDZ7w^_IN+jn#whvMA{+7Y`Dzyg1|+vu3z4 zr#3}LOI`&WciRpvUHSqle1nDMwcwm>S^ErAuI9K(wQ%}} z?ha%D{1a_-H2b3vGZiAM+=Vh-msF1%3Rj-bNlqUCRG@yt6XX|OtT3tc8xQ-G6tl5b z4Se&{$f|H*cTLL*77?^G3D|Z^cz#A@K7_{Q9RaOKX#XIQhSk9Wc0ReB#T#A!!rj^y z!`u?YG9C>H2lRL>ELrogp^QVf8vEow{Wyx>J|8B8T?`X;k16BZEVeSKMr?rmJD`~A z0^V-v{3JAf!^1a=}@C~wG41eqQF;>-HKPbBL>vH0K#NA{|YM*SD26(hgmn}d}! z;xn36#)&o-=KZ)#48Qe!(sP;EF1}&NspclyD`G{kj|GLVg3o-#YB;cM+dVms?qjZm znP-IHo`Lt#B9Ch(K{(P&B!atfAXJs~QN~ky|6*gnk6r{Eh(YSAJ6*Qu7DBi=!$|y& zv;SP{4+H)kE!|I6GdOEE26PBlx2!I`;MK??FM85+ILQu?sxz7ErEHWVv$-TkMFPbr z)HQyO9!10^br|3qdqAke()&NLH*0YOX64!a438wWB_fPBxs!&UU zZAskqxx*WkqqM|%HLV`T7>9jftA$r>d;YV&@J%DH(|P-(bF9IvRi3oM_T`Wvvn|H# z?5YDB`FP@!8nCN&>+m%5@Tngk03!BQ=NRyXXe#A})4*JjA*sCml`oZ&`wkf;GgrIa zt%(xViPm}7bpHs}0r^Pp1PPO~=*9NiU43rF<2k+mEM5T6h>uN zr6-9~MI!tTcdf3B%%;_PR%61=ck#Eb`9?-l4%c~oW`;Onq22>rbtzU62L_8jDVI@> zRPD=Svvs37x6?x=yemYyC=J=ks!JN^OUtQda7TR?2zZ@2K#pjHZ)TS1#oG zfQ2{j+oGuGFL91haPYg^4KO7X0L&;tYmu9F9MID)qC1lU)~Wi+K^m!afe&u}n{$DK z0;6zNC;3vx06##$ztQ-WwPf2N&e>EI;5bjZ(*Uv3=Qu`Z#*8ZD{Q%fdK1D~LI1o!Y z(?kNr(U3id&ex26SNVQM%ec8a+9PBfDE>Q$-j}%xks0rfMO{yq*GScXwN2-;;FM0Q zG{XJkc|n2Fvv<{J$9Jz}pjVSuL@_I13fC+a1NNXgpwJOx_rB}^xWjtxcj-z}$mreN z+V-RAFb4&wl<{yBH}$UMT2o?6kqFS3bPqOi*sEX6iFtM9hFp94q|xS9>WXXH_|cFl z6=dr+6~xx3&IG+W8_n2nWs9-^7#qyl!>w#DSli4r|Eq2uejZcoq3q4nWx9r8Z6yBk z+`P<>6&7r*=~&K(p`nybc11s7>0~6n`r}yINSvqUg~3`vt}GnJK{AcnlQIZdEUSfp z`q+V@u>Ia+m@8;RAR=0^>U|8@pJ65T4nm_TivTUjNp%ht@BZf*{$S0~%AQ?Q5In}j zm8j=X5$o)nUt0%n?s4F6xttxhRw7X>rb|n?7Jx+D0gR`O;9m6#(mL6{-5^+%C|I4Q zO=xzC4MO;@TkLaPTMjp#CCD?sEOB?2EFd9-TM}L)g2YK*pZoN!Jxc`Oe)~G9B#QOs z1L%bI(BHfggo~pSD?!x)tc8at!q6YbuJE`-Ee~d|9|%ak9bMwwLtt<1?-$hbO7v%R z3nyp5zQVX1Rs?9Qt+3NR>~||qh(ZXyVLag;sVG@}_r>;f8OsKupJMIRbkm}@5+j(8 zICW=!5JzS(*z53%Guo6jqqUU6zfon)YEyDzdP%V@oyM7~sJk{ooPT!wFwtT231@DG z!7lvi2n}N4v&nAtmz?ThVvahK1OHZ2dc-G|RMgO?&2-C2pmWTZ@%Yw{Akpj?-?E-_ z_*OUgyz<=W99at@t_WEp0KyS18msr4i5Fbc1X|J+f6bJdkUw1L5@tY^!TVlM+D5+! znGes--;bA5Xuk>TEdk0Jy4isEQ3OLmRrgdkBQYJ0FYY_v1`NoJ?z-LPpgc8y&WACY6XYlB0#~vkA z8ViArUnOJUoK2x8NW;GAPM3LEgZivQ%)C;w2L0r=@*^swr<9hl$1;C=SU%{WK&U;Q zf+wDt#d%Kk!R4Z6!BZe5&<3ebfZ~)9qdF>Uum`|PeD1#H$6+O2u^g1pO@+~ETRfYlRKDKw0T8A66yr*kkeZFtw<8NKIuNOQ1rO&D9jJXZNHa3H=C5A# zSpElO1mAadbp!!M2K^*w0F_qr+g)wh@olk%i9nVHFC0W76cYZ03$ycObf?#X-8*-# z&4Lzk)pcubK{eW$dl+vEG!+yXh?pk8FP5}$eS6qPuG}fZvd8c2!~-`LY)3*Y=H05P zpbH7uwUc2$P?P>HL#B5-#ZwEUn^>>0juw>Jvv1RJ&j70)gBl?Il`Z*6kEB}x)`-w>ImjLMgscY+u^72rp|D+0l4~L_oVQpc@@_a1fl8T7Q)$1ZW zNr}T$;(9(2JkrD}MljVMD~|a3@+`DB=qVMJyw4Be=I_?c4b{bOl6KTKhrZV^X(;7w zd{CJ4sPUe_2DqcQPwguf1vM+T&gXE$y_5Yu!W~i(hI>$DDPBMgo1va%DBF5;KbnNh z4>xcS3lBn|hz5Tf*C80qGog53y?mHx@1VUARneXVrF?jo%W(na5d$JM+&iCixfB8{ zl$@4yWEswdC2^smV5Ab^llU3`1&I? zTn_GBWSOdT!2Z14qX0i8;fh0vu(quQUFq($X7-ntrKVE42J-my*Jq96ZLc39{dOh| zdiqYVBMXL!)UyOmp0bKoUYh$ZnO!2cIw?D9lMFa7|CRpk$axc!T^gGlVfNCPRP49* zo-iRlPgLAyG< ziA+#osWB!P2r=!D{nYRlb|R*<&jA=mDt*B&_}ZKCzMY=03_Zv1T0i z(hZW5p98W-N<9FG(a+D%EsOW62LiAi)6(V&uS2MCWExJvi|3~}Jp_Z5H`*y*XVhk~ zv}3qn0h(KK?7W92&63eoOjStR$t$(y-N(KO3$Av&$N-@Uq zd_}Zikho9oumnhdG8T?u-dQBEZc-=vwbcQo+MOczg-aO8jPC;VF-d`9&dz#?o-!xX zl+lNUZt?6F#|iRwj?_Bzv(BF`4=?>};ec`icr$3qtN3!od}q(&x2nqB=%}DFe=)t6 z&65aWt8Ls8fqmR@LhXQk^ow8kaD0C#r$AN5G8V!xR-#I8&Ss+QEj?h;V#=&B?P3fIZp(-+lOy_ZUD!)Vs+E&CRGlsHO*v~<#>?x6ctp{0=3Dzc&SeviF>)JOjE=MhyQ#q znk-)c#AB@Vc%t<9Rxu{fiAHLnQ|nGoHwLPB9zGVD3>-x&gE=VaGk5Ovp{bdOw&91F z56ts8m~MzLBypHM8M zij&OMc0#>Id!{C!Pcl>>)T;Mx(7kQN3h3OWn7R?MpxNGBQoKU$r+e$qt}2e2(r?Uk zK=wG&fO!GMVf7E7TjHk@78(*Y&;)h;inH%H_{F{C+k-Tvwf!?XQ81_om{8>0NZ%*p zR5Z-)LwhQLdO~{Z$aqs!tT^lg1mX6>_8CF2EEUuk=y!((t3UI>Rf+w=Vu;zg&9*iL z^K>!a^Mrj77plt}Rh_sf`8vrXH$1s;Ri@-qk0cSW`ap$m4|-asF$x9$v;JPw{DVSI z3#_Uo2sJMkp!N1PP6ewz&tyxZj8H*MPN46P96xLQ<@JF?U^d3Lg=rs-BO)&=KVOhqdEbp4p*E}xjXAHA z*%Yt|NWjTNAiNmDii3Pq`UI1g2f`5g1gct1l^ZY{?8rE#R&JHx$93 zAUH+}Jgmk)HQCo;0$h4vr?(H_P7Q&01^3U;1XmUe7>N;|s9zCdUFaXt27deI$ACDe z%|=|T+sKgBpB`qYh2oYU5;5Fg_(qaYw#SJ?g6pQpytJDFzT0FKv*D>dApiA1^6*27 zIVI@|wU?(6p7iA@3KMj5p@9BdT!0}#P%V5)Zhg|8<$&4Jh-b);Tpt&cGk(OT7C=VH@NNNvHZ1?u_E;KaC=~IBmJUS^57apYz zGbgsNdgpOSGDXg$^E17lDtjl2Q?rDM<}+{TrM`)SozIm)hrJgkzQLbJ7q{?)e06)j zfHzB-EX%`@N?ki|k1eXbGV&@*yGtgroXiOjU7>RZmsanp(IMa_I*c|wr5~`hH&cJW z;Q7``(xNVkxKq)fM+nP$nI`;pnsK_Hn6DP$PKqQ1fR`+|d+; z^(})no@yQP0*_B4&ko{LuDQ4dtiIsklVVV7 z1%sh<1LfCLLoarfh>T&$q^lyJ(}i+H;nXDF=U3tgPQ{Z0B7ylLpj*$v!PNOlF5>ud zX^Ws6OPK28lV)UzgV8VfF(%{~kCL0*=oaEae0h$Ip!fzj+nz%&YT51AwfY0nlx zIRCm$Kx}pFr(J>`32tUF*C_0HCcfU5omIOHwsYC!dxxuZpfKqQF!e?;`b2Y!Ny=5u zvhSfY;7X(Gjj}{Nc z&Hqw8^`{Vt-S{xe)0Sd#3@jwE-Wc@RkU0EnTgGJbStjwgoh>wYFjIs47#oMqJcz|c zy}c0c@)`B#bhm~0)Y|6vAos>Ez-{yPZB!3?)q=@yjNHpm{C0$)%%X92rybni54bsB zs|8v`{|PYJ+B`liOj7j^FAaFi1&NPkk_sF1vPNilk;#m`!A5aYI6jz;KSVVTO{RtDkyE}z4C_EE*WeD1?T@Sr@b%mN{!#+>iz+OJ!M z`D)Pxxz`Ed7)Cr^ipUU1GAL%~`ZW zSu}9*23Gy57lV}tcE1u2;ZHOKZ;XVU-e;i!EPk4q0;!#z=HpxyZw7dX$C?GRzM;cJ zV`rZW$oN4K%FNYEx-MC1jBgi*1zz3h?d8fLlNt$RA^JO3*bc`7ps>)+&c9OM$3dM5 zXvvl}<}HrXe=!#J8}p`DCtD%)+zs!G&vl=t+J}J{vBFPan;$TcycLd+f;@AJ9Six+ zJ8adR*DB7y9}x?^SXm^VHqxuL=;=O;=pzSVr&4ZpPXcby_%E`M*BdOiJ9`w8p_BVH zaDF}M&w=N-G zvX~u96*4q>BC2ou7hLb@ftDddL*=MI|IQMa^{WG^VOAQ$jS|+Z>IqAsvDQ-| zwOpAcPNk$22fABb``T4KkZU>ZDCtG~Fkd2?7kDA{xJLlpajJ-?6|M(KIJy}Lf9>%_)t^2YLn(_vZs z5X-Y!OW1eajH5YGa0$|MW6B|oBpQ|^T-qTxDJLdUZw2(m=)tH__Z z7jL*l9(<_aadwhM^AcN|DFFJ4%}niO%4xv#Bl!1+;W&xX@D2k>&gO|TTQ0Ht;TmBZVR z_iXWajnIc{CJk@|97cFZ#JBN(monESSAF(>?15b()g|gb@@iFddmR)Fwb?{{wZI>$bXpAR`~8zKh2-A`Qk82A+fq zRb))weL_z|Ag}d>>spx5cU@h3w?FAnzqFVh6Upg`b6Rx|ipS^Q!nLq&D%KD8nm4b8 zF;4UxpH9#3g(1Lq7cgKd&$i5&`eW2a?gr~(dmUp1p*{>HA(is|NO)=L53j+e5UXsS zb%pXWW`0VTI&dWP!9@)q;7Sp6%x}_Ug%{!0`&?Ht$`=IQkwlV;T3AzY)S%>#fi6xj zfr2VOs?rvF>_TKwtzyp|^&Lr{!MV-%!$1S7UAjr&&v}_TO0-eo&U)vPCnc~ zkhKvd*(B9R20D~!oDdivH9dGz6K|S?9o}L$gy9zk^X9nbd)To*ghd8N=EUsJ3YY=) zv0OeIu^jzjmErvo#ospgkePLwzG9U@zy%u?Iu7v$$YPkRH4xU=VlJs?g|v1vOcm|F zcR2XXv+h9pIrw&c9^~;cB8d}-_J?Vn&zilaF;a7>5Dad*3TZ6B5hgnQn)>_LW3H>=kwu<>_DDccy4bhkg6Uy?&Mtk;y#g&rNTco|lh>n&AKZ5(#LB$Lsnj?V6F0H8{ z7k)F?Xo)F{+J_)Q3(yEk+m6EDqB{Q$4C`D>q39L81hYVt1o~cihYN56E0sg_L!(7v zxKX;Y$e>L%w*1{3-p(>IS#ZcuL5;%J#PPpUXgOSn>OFEEL=9?u>kQv7^I@3K<5Uq! zr-z%3LfeV%Q7RNpE$sPW-TA3iZe4>S^l3c2tFXkBZrfhqrjzwf1I0EZ@FU+b$T=T> z`4{4vaVk9g(^YvK80#PxoaXu(Q8;WQ^bN?~Bb-edr*cQrCng4e1Ax~>##UN5KN@*A8pMW_Vq4l(G`xH zVdqsMyH*v59z6pm;|X!NVZlCEAfK1T>p#5VFsLQ8=;0+zJ$bxC?J#=_i%$2~j_ ziCyfOtQIu0rocq$854e4N2_XO);H*w{+&w7X^NcXUailpc?OPMfl<88RfmAbc4 zK{FJyDF6h7D~oSEszlWGmsl-TGy+E(&}MFu5B=K0sk~G!&zL>V1!3HXR|$FgII&zI zX&xq}sh1JB73HUmUd*6wmD*1BDrvTGc_FUbUiF;lLn%><{QuvB2j|Wq^ca_pmgrJ% z0QqX=&$g#z*J>l#IY&n(75S^U6qpk%-SJV~e)@GccqVp3ctbp{$q|G;%UajXo|KJP zxggZXx)H}g+w!WQTcTQ^#v0Dj_0vQ&4}%|qW6Cof9{R0eGW{93mVe&-RX9bXxeGlG z(o8Dx;GFX073qVyqgGU>j>pf>g4pxSnERitbcm9LCZ%M(J8lvIqq|K98r$X3XHr;_ z25@M!uB|<-EI7otKsuPIyFWySBBF$NZGsn!$&J3O&joA+w#t@Z)1Q|zmPThq3L@3r zV*Q3MQv4x)n8tapMoTMp2ZP+yjJa*J0P6Ia49K@P)2^t1uJ5+A@kdRjL*HJH(Xl5*D@WVJOs?cq=EBm!2l+`2 z2Sk%f#iKt$G0ghM>-^T{X@O4j*6@$zH!P;NWP$x3kuGjqQn&Z?xh2M8pDYGcq9oP+-`Q(KR(DZfM~l# zt416+-}&M`JBTkm|~hnU%%mdCGazzmP0{ zS{wX7jrfGL+zGx;XKE}qMZ#E*#GatFt}I#Zke|v2>y6A^06zds+BE;CMj*v-vw>=} z{lsx6mksWQrkc1n>xB!hYf5s0$QMSHu5$s1&v3e0ejkB6_t-EvBDLwzSB-IYZZsx4 zDExGZi@VHbgLAw7Wi;2>A}BIMC<_{zZarUCg!h*F3>x6nj+)>QK9dw-8y+?*S&a%J zuZOBq;mA+-G!qt(XoxIVuK**JM;4D*lj-Y^P7{}7JJWyzY_15wZj_+&KB9GsnI5i@ z)2K+6lLdLVTCT!f<1%4-ZzT7TM0m(wSK=I}Cj}sY5p+N7V4?jnbP^Z{rwr90As`az z-yg^={s9oyc5`{?W4h`Ye<8%Rlc()zfNr#mqJo7m15GGS)6=RDr7dHU0Q8X2FwvJb z2h}9AbMiXg|F=0gN0*itXnHZwG6~o3urCj@%%2jG8)hafwYNS>#>Q6}&}xJVqnoB( zDRZU*u1nJhuyn^5V_4RrYRaGmw2mXRtVNwAF27z-8{KmbolQ_#N?F>Gl9#nJYcK4@ zX`g1V>(l5`mwucLw-G``C6CBSe1Zl$!N7bH*2zx^S+zYjFEXoV)(jWZAs)F=?`yTb zBL}(Clx-PzUEBCvvQbXhJi*C`z?mCW(quvF_uCBt3n!fC%}NNUAkVIL&aP12%{Uaf zW|`T?n*n4n74R-D=xI%KfhuaGJdjA(y&ndreMe*DxL}gmg83oFIqzxhI?d9oJ#upU zWbwHQ>RJj^Qgyu^{Yp|L=dyz#c46vAeU0^Y7}jC`NN_H3R>gjyd~}!10z{7Bbt}yF z9WRhE?B8$M9d>Am!H_qiaF z!0VLJmp)=)>-~XbxV^W`YpLTGhHPk@wG$`llq$`bUEHM$k9^rWjyhdOt9p-I)2Pv1bU1HS0x|1oNU#_ze zCM#8sT5zDf!?0y35V;h^WVr~Pc%#FnYcOQ}`8b2X7`JBQ+murg4PbyftG4PMN;PM5&?Wxiop4npg`eV9IRuOadawt5qq0krikwtQHBjz zv+VY{r_5@bIA4%x()V}uI$-$Iy|BnGT3n;K4{kP#tGeAV419CFuBPXP34k4M#hkMO zsUMl--v~suMF^IZ4M=0-=;ca(jJ&5lMIGTlr={+#1a&l-fn?tE8NgUVdMa-HxnRTo zsZQf!7}!u1PGCF7%LUq#?CRvfc?f zUyz>_QAyCYYD(~C=!uup8QBQHDyRBMA{C;zfh24P4%nwJUdaJ>?QM-=QzMX=2n@v> zr{B^xd5K59f1M02Dq!g1qDlT7s>UD}o-|R_?PRIG#NM3b3Fvl-Ze61wG(hKRiH3{1 zNLeBkD8D&()C0uNyMC5>z}~bGo@~}AC!5C@=v4S)wcJJY0iF*ZM~@)+M@q2TgxO6T ztrV<&x!M+l^<;EzllwrXDm7G`REt?O+u$lV^NWv<0AFpda((x~S%N6cGuKTGe=gRH zv#*3A&ZItU4(y&=5~h#-$yGbooRWG5VtSbdZHjn?!gldAWcHkk!=NjO!k-BhJtqEo zw7biF!8szy zRSo{;=UC$pOIjY8+m&?G#U6RnIRcGM_mP&D-h9Au|A=ix;@rS7Y>;#t)1Rq2TWy$H zcBa}0y?kzI2z|$lLD7{UTLJ9^-^H9+H;d%&@7BLqbJvcKH_^GBySTsT%W)Wq3ye<= z{u%Zih**0|8nJ6>bL#-?k}}Dg4c{VCuIim1)tqIl?m|-Hax~m?olOg?!7V)?GdPw^ zI1_VO1+SMnx6b`x{!q6T7N5QMIcZmm!%xojkzgEmL|$MG9sx+KwkJ{pxw%UIwPL3X zYk1cE6m)sSg_^qvjOroSy=OL*2XBRgJ&Sb;C?V!MMw2zn@AW$4C4_%anHv1{pumr3 zSv?VJXJdE`&cDXAu@rAt^|bsU3i1BUx5up?bSTIQsd z>M33Ut=W8>BX)_YN&d@DNG+Mq>--6KIbVJ;`kX=&y8`=Q+$NV$QiW~w2Yc#SI|-*H zn4;}j60$&0TQ+)|t4l*nNu@DckVW+7iYc3jf{+V9wm${!)HS}z5<$L(DLVoIX|DkM zj4S6P-uGoHhGq~?Cc@kI^kBvS_ECx>W17zM__p&C&7!Wofx#y0a{rv(n-R-Chq3EE zK_iJ+yr@2Pq%hWlj5}qMFN&gD97w?PnRklYQ7c}LoBwdcV6+?obehN8!KJhVte)!} z8xF#=Gkmj4#<}bX%vl8EC#h97l^>J-98KKC*sR+J2zlQ0v;4eCD%BjhZ+M7qf`)Xa z6P7cEwY&es;4%s`($x#k&VgCz&-_mJe;p#*t$Zg^Ewz(#m63T83N)?Jm)bTjy^xY9 z)suO*Fx5N3$8EJN6&645UD%(^p2Fo&^l%#b$F$W~4vr=%u<-^NP(@v9Rkyhn6GUNBq9r&2K_NP} zI${`bq*yw?xJ32t;a`psMxFk-@cTgdI0D`~a4kBVatA;iiNxrejeEE*&(Jv(`K6Su zLz~Vw_wkmS>cPIy4p}Eh8h4AJHwUg7Rh{B^>-ooARysrey+#eqaduU>6qD4HwD~R8 z$#U@JI$)`H0mP9V2CCKWAG+LwvL|>&$1dnnqF1)N>oSOA39T`mXC$;j^S{xA4$lrQ-s%A&5HJg5f>krfJ1AvM&%EUbq*Yk z)+d@qk9vtS^Iz$TlA+(h6A~eV$J(f}`@QZZtc?=PsaN($+13v|Ko$HK2qL{JFw6%4 zpNWw4IkP4NG~UN-0+l)8ut(=wA;mRj;oKhPu4O!Ii4}PE32a$g2L#oQs3;E3{4aatu2S#&c>ZQn zH-W}V%ghE)*BE5m>HMv_5Oy_AKb-%17=Bh|4P|+_SJ{hV-d8<6_~Tsb`2*d%NFA2- zP2d)Lp`418BVZ1pGTqvBnoydsDn^lSk}!4DrpWLR>YD0LqY@+CWkvQRRp(Y}F5*G> zV}heWsu$c_gj@aoht43iawEVo9W&H+2~AqOhG;#nk1yppQj#9$O09PU1}^mS)`o$v z2(mUWCT(4~5-5R-F>OV?%Z4z`LIWcWLT2>~lU~rDJL9b1k2l3D1??-4W3ZE@&7v51 zzOr8jktsGzKJbpRmwBl{UmneLFrwsmdnNKWlw!7Clyz)<6cSuCl@%d9%$q`xNDTi7 zR9uTlr?ai`83<_xe9;kl!6uOk_fRV;>D7sf-G1BF4-=L@(^2wup>VVo5k2?+1d=DC z6-p}&tR*tbJ03+_^BtV^O2gBw@0d>GGBdj`BjEa?|5$5)s>4a)C7n{>Frju%s+MMV zvS>vE6KV&QpZ|boLb^u4=abS=J2P3|hd}PUDg{$qt-@4#Sq?Gou>U~i8Z?mp*P%sl zfNG%8+BB(iPhv)t8IHm%f6jqzi(}z+S-mNNPTI$d2T>d>x1~2AEhl^wLEVZ%lp-vR zAdH4z?fiFXzOfG0&RutzF&zJA1}2yAGe9!v7xT4_O!T z1sq7x9)&4>rN6_z1c=n^BZ_B9_5|6{~V`q9Db}X3A zP?hj8@~t^(Hcj}mmZ7R&9i$dnd(VFaf^K;CW3GbXaR(!LKHGoK;YSMg+?zsfdS3oJ z1A)?Omx9cBm_}f{`6U7lmLh3HrSUPdLNLO&@{tbZHFa-Ii zqAf`X)-V_NygUCuo1|p$7of=bR}1@kx3B*!%`8Bb?2&qk4rFc;-VB41>6(C>bi*>1$&(yvj+bm=qq)shTCC&&t%(yF0$0FtbqF<1Bi@Yure`ExKD=NHSoT29HxX*ty&CnzT>BY+Vku zRNH=2>kfvtn9_$3^ORQD9J0!*antI7%*6k|pOfrV1;5sJkdMBuweGS$Bb2$Ci_Ws% z8v{v_6O#aQ@7s`XqPlK_1mX3Yx;oBGFqT(MM9ofMc8Edsjk+m`AML%-QUPK}exKFp zq)cTVHW54SOB*-K&#?aB5Y8fRB5?$C$>ciN@K>a|w_@lR>G@Fs5%kbb3T-n9akHwq zh{No{hc{vQ&9E(^CB}C*{A(ZIO~FGWy^bn9gTa=5*SQov-^M%6FjFuP!HR>LC7UY5 zkIYm#;Bv=YA;0Gioz8q@B#eLWj>@SE{lB8I$se8Z9>aqYocs$6M|4~M5exQ;-n(f7~eH{?}c z{;x<$LNIwjgv0hL!yHf&sbttKJMZ=TGC36)JF04kGwYg-ju^CIb_5`;rTWVL(X8zbMNAz;9l!rMyXHGU8FwWKr( zVE&u35#L_5yKfYS2%L+;>QR4&DI-A;unp{OiGQZLtuShA%YpS($cn|y@MauW^%dpw zH3D-qQnHBZidnSW^{&>2De5x>Zq_0xWBNGh-bL7XHY%G}8||6z%eZAhTOo$Sn>f)N zN&9^3oGLWwi`WgVkn23RHiqT8$ez^7;Jdd^_bU=RT{&3#DyZO^tHhd$P)zU!3Otuu zO8$K;kCfjZ3P1>%Sp)y%*@&)ihW%4qb9|1n9&YM0u1TsF;QdaSCT_8? zoZdU05X4`c3q%PjL)hzwj}XQQTSbLHN~`gEu>I|!`#~WORol}n$S+{=jygzW)`D^` zp##FzAw;iMuC_d1#){0cPZ7eERmlHrmy}bfo$lA}#>a2;&V$fUq63QaWnbR#*NV`t zgA@1dSVesZO_1-aML%SLrg}8UW~(t9Bq0xrXx7W755jPC#=V*!XI%s z1$zX*YRJda9QBQOYCQSOg+chl!vF&snuCK5}GOO%l6E=bh|6$P&_z< z1l5RtqyxXwN8Z<*Q=&d&;CIVc|5{aiDJ?TCI9y*Nc;$v#VA&m*Nyb~I?I|K{^kTcH z4(|~^SF~OfZ3uwH@N-rHj6uFG+u)s8@{`%`qXMwzZ2=xBLby_H-`N`H5IQD;Ph)1+ z@DR;K2AYgHy1Smc{Dhu@w!?ByW2nAvCtIT2S-7ujb`o<&u$Fc>8m+g#Lz!!IB)^E> z5-g^IR;sIQl#3#tbXgrdD%qc>eal*(!tsjSYSwPz`s-_VGPyz_oa(nMjWc;Jo|vWf zLz*qN-c=#t+?;Qf2E&2#$n9C!wnjmsZ}r;-^XD)@o#2G75UxPhnjhJDJ*aSU$>1?k zkP)rp(xl1UMQSKVuJB-8b#PO>@7^7gE0}51CENC6QN>HF;mWK+imZ!QSDG7yb?$|7 z6NgSd0Y@|3$(0^(=w4$nT_hGVWQ%?sc@48YIbG^N58VnmH2}=CffI3kCSt(WDuVu_DdLAFiM;HvA`Xv)IWOg$ZNPf$WtsArnypqtAZvo8eNh}) z8#`c+0fs1`h4jPo(S0E{=S%8SeM}o~5za&x*=cX-ZX6NTL7ZX4qvChsSmzdw`r5Qh zXF-U2%oj*$`jZdMM&|VCAB=kj&m$WlW!r(Y9ZlX+u!Ss$~Zi(qg&-w;Sl3Ju^ z@(8F3adGxjUQxuVNy#u#ZesUut}^fc%0yn2sqec!eBuBGpxiTHiWz3T2HeO0uFJMV zSznzj);+?WhPxW`+!fWVc5R0U8;2JIH)Kh+1AtcOrn(r&*gSm}FT;1?^~BoT<2x>4 z#G#O3R^Id87~=^;K1L5?#NG zV#ZbvH$*qa0re#Umrw$;-Q_+NMs~l~(L16c9=Q}Z$hBT)q78(j{-=?@?E!GxpcVwL zM@8U`oHKSVQP$*RcSqGy(<+{Qs*(Mhh`bQ6yQ*`2;M~T|ND!}v2lI{@Y({Wb;YcdA zcyL#)^g&%H)#8dtwi1GR?d7YtTn&Op(bFRM9(4oWX3|D*3P&+lErdQlWYp*)P-+vF zE@Z^;Gv4%z*uIlXmFsvHG={!!=kAo2>%CHI!OKqFfC0=fwA;E zC3LZO5BmVD5Num*HkOh}Lbd;HfR;^Jf0T|ckqB~GvqGvm6laS=-)MmCI#mAoSb!tA znWh)bT;OzLQN}04YuWm_Qkw00kpDdxBUu3eAMA|U(n8mki-qw1nU_Y<)6BL;f~ZGF zq(4(^?kNk>)(lpnRxXE*Ja8pTH;-H&zZF z6IOND;VVDAGfS9)HC1IX8iA$hhF@>HmTr6Cg>XAQ-{HyMghY#?%qSc)x3;2x`{1QG z-I15&)$3m775RoSb*KHB*Hf31Dz9!?FMIV3Gi^egJw}{i+h|Yg^xFs5xPBj=X<=C4BCdxy!ZM z4s$>Hx(Y*3lhX87^*u$ABQj^+!xUp)h4|qeKg&1jZwm0iTA1Zz?~)hXX$Yh56XGJt za^SgGSGgVYq-TZq2hybTIgZa$hQ7>KJ>Jh@jHCyzNM~;z-+Ajgg)9;IwzDrH6=vbu z?a!(&#SwLIjRFYP>tQk`O86xh0hTg^C@D@?TYu>-uE5lx;GAUuML zJrWfYyzBEs$WF=XOIIDcdRbH^^S(@E-}0Jzy3^fWhFP z*#Qt%bab6Q*S&r08PqibCRCOY$Uu(UggUU0wQHyQ{5i@yD%=i0)X zIoa=ln%oPtAhH=fnO0k^L#Dox9FS6APQQfGFH;mW4iLW$?P&rM=MngS322c}Q4baS z(fdVpS)>rDb>8`WcRLB+Axml(939K)2tUo+NaD z_^3&Ll|H7?Z>jsa*-0wvD1ze#b+&Buru}rX!?Dz7mzw$&L0=@_Rw3~-s>6GP@W52u z-PJdZUMh$!|FS?iMCjGOQ-V)#t{n^DUN25;-|Wvgjdg4i{dKeH5@q4rzujL;WZT01 z42=I?w2}w_D9t54%;I9OWyM}h;}D|j{cYF8#_;UT;&OjYsJ%gW(Sqa=lQf)W1`9vcp9m#E)%&cP=MTbNY-PuJKjn#9 za9-{?6%KAQXJ&iD2>phOk*o;Prr_JasV2!3yr41W2-*cdzGvki*b}`mJXVH-%)v9)3=d6P+nq z!-9#|6wS)CncE5J8fG*C#^v$1AsSrzbsVtD1>EFmjO`n&ACQhv+H%PjSzZ^WerS)R ze!}bI6(`e|Uy5WC z!DTZvy-RJ5a?r5LbsUKlPlDD+O{+g0B~bOSg5J(x)|4z}cYGPLvdD5m>LVsQ^JgbL zHG2r_c>?zDF9NdzH^6EUPJ>yQWDJQ&jx6ka&2#b9vOHY|pk%=4pi*6}3$bmm5iC=n zL{y$|)Yc)Qb<0LUZJCIQJ9Q=Rn+Ts+Y9gPvQP}|HAo!S>ag=U`OQxC-Zgi01&R)Es zwKt({e&7d5Qim6NPBQ?hpaU}o2HBBak^%e+J-{i!h(?*cmEWxgPK*=QPJbR#%o6gW zlilatza}H0@%{m6!Drcz^xt(r56h(c&Pbgy&!Sp5(LnrECT)dG_~RPwRarqpitRT> z)ro5UROJzpa8%=yOGiEA_I~DT6W{kq()#=WZUW^Zndp2!IE;@wg_!@ ziJ#r4Bhw9)!>Sw_PY^C0Vi)LTfwhX-HZPYQ2G-kw>-O53&Np+u+RB)m3XL}D?b;Fy zV1k;T-lNU!=YxpSybN&MqWg^-%X&nD-)x?kj;Qh7p0(|xF)E5^Zm;jnlpyk733~dr8WB* zqPR!DXu)qK#9%GR;8I`pwsg6V!CW9WOLq`Q{SRLr4@zmU`iOeF^fGrIx;qS+O1}Hv zRd4SD|2C2#W(4TbY&Zh=fdefN6cwtGlXAw}&9~L65D7W?#_(dL ziOx#gueHfhDfrT{q?h}4_tyPW;qsL*eF8}|VS#53wn%_Rp0<>sdG`$}uOxdo07XE$zXbi0;T&&~xVz#6gQNoX%Qjz= z1IAb{H5gFU4#PPMh*jT6U7P4fqp1WIinKz5`c*O9*e+XRtI&;#)qh*lbHzuPvop2i zan{hqM&+cwQ}*lR$81ZNNPIj!e2Mm}5j9k#b7mCKpw_9 z?yxNu;URHG&-@Pc;?eO_RWp~);JGomPCe4^>Ur|-NXj3M@zm)tpM<^LU+-Od%z8o` z4685j_pA-ga_N6x^FxNu>ZhW_*wiIGtS0=!K#E!^LpkjYhv=id+Fuh%gt!8gV?61; z!_tnUx9!|h_xQ0Rx6>H}yL@|B@m$Zi7eu_b(?O_D5ALv_q)lCE2g$SOhq&ZKE3Hi({0G(fNKN^`u|4z=%$tOZU+}W{mOMoC2l#hvu_wR^9)_!QPyGZK_XG&CZ@d^?eCFi`grNXbr>$PM;rQ{k>G*5&< z+1;Wwi6MxLK>xuIWt{{)NLrAJB>WfJtBu}1=vuot3ZJZLebtuqla_Kf9<$u|e&eFQ z+f~>VnUm+_Ir2nC!B~G(BCzokMJt)s@C0u@g(|?4a;i2>JT62aq;ZhU3n|l;NA(rv zFs!j|TQTHI+FC9Vuj=J&8gzj{Xil+*qL4ysIATeH33kl;!2jSiju-Lhy)3atkQdQT z7FzK1{Ii;A4TLzU z9vMycD(NbamCm6;tQTn?{Vk8;(Dqs5X4nMDy$wnYJI!VJ+5pcWFkK=92HKsQt7L4H z#Mo|lYL|;wP)kwi0B{HZ1yE`LM9E$kd#l?Wy;C8WTcnTdFXXm_hM->h3F3h91VJN} z$uVfCP-H-n^4;9uy4P|YaA)7@t?@0jmj3LBSu`)yvc_1=1H5?|$8=NS?NsCJz(VoX z1->>k4|ts{>z_w|QnOMbm@DghfjNL0+bpTECuTT*%yR**))7U4b4ZGWR25Mn{P-)W zy%5|r2`GeexbF2g4|lA2g+Ki2erYX^7ms&4SeemOY_Y7*GV z+dID8Q}^%q$xXhL;_bWCxIT4OdE5E?YfgosCVf}MxSGO z_U@D(u1(5&J*M>(7}G0pzO@hDUdCgD%{wtx$FE0~k0n#3$pPH8WtT7uYgY3mp^po? zdes;{T`%EgDwre+q()IQ`5huQ8=%8x;zntp_1uJ3go^7*bV?QxYjM!t{eDA|J$|{Y z(n!?$Aa8i@3TD5=FBSrf1NwX_SSU=B!fq9iN;OiuzOkIPa#WIkel4+;sh4Z{KQf@} z#@jF*Xa(;KTOSvYc>*-X+Ddi27eV=DzM~7lT}umk9c|v zIgpnppX3+94;z8hCiHN!N<)V*pxd>2uC)WKR7SB-T|;_#rI&~PH#aHt9fyP3w7j8I#Jys!3Yxm37nVXm9?&8|&wZ!CIhO`rnQ zE&juyz)@NTZ4pNBQ)?z^Ya^}QoXlGw%c}aPQg()(ll~P_rXkIzjWEHMi2@fPq1;tP zjdySv-L(DzQPy%E5Rmby_C9{<7zlihEZEJCU(Ch&{GSKLUo$lT=?nf4|AK{199J>= ztFt2i!8~-4$_Wnk6%Qi#F$>JVFdnDpdnS@aTxRn!s6ksqnDLJ2{>QTlq5^V4dD7EY zx3FEJD(rQY16>g|vswfluK z#_8*~Hok-TcY)<2Dm8h==4lh+*TOFZ<9LUV?m@ z^7ZZ)U}(u#A{ZC+*S>as?o?@~BXym5W!JxwE0IA-8HjO=xeF(JJ@a}QB|Ps_#ILJ6 zn~E?%Csk5FJbBB1y6{mhQu#@S+UOq4psoEw_H7$hc<{1`>GTIFm!^TdHtQ7Bc$xs7 z^=g_k?X}<#tE~pSXrs9aP7mu-T!9V^OEp-g6F?lTB&i)70jv642d%q!Q$oiuYI+sXSxu`oLj-?s4Si0UWtPBBMj5f-}TQw{E~))~2je=sP8)cjV*; zo&?0tbf<34W*eXwI$ee`;bPnoO*G*z2eY%LeczWi>Ma3OB`c4^ygPcm?Nk+ixQ3I? zx`XnwV9@qI*G(bm~p?1X##szJz;6L^~(#nc2bN=>X}^85FERz*pyr7^nl?zGhqB&o)`#4-zbK|u)2HoNq93}<86(%GViYVfADh?e`>$GXAA|Xtvg}UVW|lX*Wz5sDbszwhZMpekhHr>3Vq#hgYemJ0;*nrPTv_t z&_T$(sopYIKsRC9464!AWNMFX9u*+08(teV!kbIODGWctNBc9sp*6 zON4V2qzknxL0Pj)5ggDpz8JK;D~_CMoq4+uFI=x#zDQsbH05vwE1-SR52-@1`N)N_ zx_##5HXh*q`uSivTe5y8+zT#>xj>3rQ(SpvHw6|NA2rW~ zHrsO<*`rN~$91nh{la?EVDy978A@WpZ?X^aq;p(Od`mvmdXC6B*1 zqp=+d(V_qL)DLZw;HPHr=irSnTy>d!EsUu?@SNCcW78Q0T1k8@q0O3(+0&|V9a`uHERCRn_@$(zrmPfr$y22Bi4G6&DR&QJ5SX_!+4G3i zANZ+$XI4fDPRxr~?+m3&^J@J94Sj7LG=|$Qw|yq+Es-R;7l*Y} ziYx11#-x9_Jmfd}^rd(2P`7+8Y($07FR!q9L6;p0Swks|L&X%dTF>SA%QWt>hxt$D zzl7STS)*x(4zTMi?fiM=0b-|=R&A27z&Yh5vLyKAU$%o6R^6%l7$6`GKL9^lyDbO3 zt8UC7Noq=*iBs!9mgYqy`-Yy6b4<6VY74!QqRv@~kdo2VEhHAVNd#jmd(k*J?E5da zO3_(0{q@>T_Xv)zq}a$S)4VLW!n)Jfqv=fX8!Lrlbk6{8jR2KwN{moSihxa39b4&G z@u~and@IH6{&G!MKw@D%jY9-96)On3UB&|87$48ChqxbxdD>@20OIsnc4)gCQ#suL zH_@Pcd$rmOXpEEqMQyu}e3t$=CN?GYpwpC5bzVlg%*!`@0RBm!?E5IFXZLG1ODCuP z+%Q7^g;TJbG$T0a40@e0lh-UA-loDz1Q<_u0-k?1Ik!cIYb?%s4VrWiKJ>`K1B*35 z#l2@%gQ0z8DhQZTP&qwX&q7+Uu+xnUU(}Pv$UOlN0pze)Ek)Q|TC_ScM8rq#cBTS_ zEonvc&8!Q3F=|N{1gN{ZV65{&-JL2(d_meKK;frcTB{9BjYWn6Zcpzf}ATx zoFy%;Ua2OeMhZxyMt`Lmy6)Pfzur$85cl@b1I$TOAqUegL$c4iZB zYdf&R0F`UY!*81_wmPT@wrpjzYyr}i9dYKMsoDi<(`JY-dakn=<1jMVcz-xx{{*D8 zo^k5^&UgKQmnRR?PYRvFAV;T#WG!pxDA&Q(23=EGdiS zpePI29T?SenzW(HKfY)Aj+F}0Apb+V`1s1ac)g3B9%ndb)jE$H5OBlh_Kzc~68aq( z7}F&GqEZ*{hiuPQ;u>RXq;}{#x!XPc@gj~eg)U%}n^Z~$gK#BepfXH6ki222)~SiC zyJSD?7=Hg!+Es0A9o#KtN(!K_diCZh2)W;Km>t-Mezs)etCBOe%ylk2I6CPprq4C= z{7{n(*o75&kYt^vbuY4<4*dEI(n8j>*RcH8h zDob@Fnz%wBY#=Vy{=h{m^LK3~xLO1G>{|z{JdY4_Tu1f5YB6aYj7~20f)>0~r*;>) ztb_HeJDJCwi*6WeZd%FXW`6|=Fd2+6^tXFiJ4|d-;%a)cQuzJLMC>Ife$ z%KK2}X(6@~$wz}ZNx3#?fjDF>x|Z=tpGF_SIN_Ubx}AqfT0_6B*BavIXv zF5bmHW9&xGauO(xs1h>X=IOIsuto>-41+k;oFLoL^fxs=?WLt3j)xT#zRGy^_@FC9+#}z-IK@F-=Q+V~ z)S+N!OaVH$y={dcunc9u3yLFcp^ZPK{Tq1#!4(i_+R=r$t#*y$V3s#O_uwR08S2Qqoee>r_df z{XDjHI^InAiSIn1ta{bwpCW`^fnHvnxB%VVMeBv7Tc--qdAB8T+#8!x6~tldIHZf| z++5Q_hJ5a8Jjlth^7=hPjWU~-KIi(RY2d25KYt!PcI&pl*UCJCiOm(S=t zSD*b$|9)Er3Uq^Vib=2FacRNQ!Qzop++z>U#bTiB8iR(7T6YC;%yjN zEEA$<13if_qBviEOsRnecW`ScyvdD{+NJC6GT^^Z2qr3?vGbs==BVfbLovkc`pA{T zXjAb~c{o_WSBl!nUrj@4IK;o^WcfJ;$$GrhimT}hS^#VlNo^akQ%&L;k$0x>kKrCl zpJSz$a{kfIR431#2I&i$7v5~#b_J`7p=Xtfv-ljO+R5{j1p!dCG5fI-!WxeRPE~>r z2sgnN!WI3J*O~OS=2|7QWfv9mr{p3AL>5);A|pS6#LKpVp}wX(n2Kw;BLOB5&0H6$s~$>zN6C2}a3@rr+X^4>L7Y{xI( z-1%-}P6aRkD3rVj>DK9H>oI-xj;x`RP}sc_f}r-3ryfdYbKO9=QT835-O|F>`_|KW zbBr|#h$5=9Vzcu>;*E2G8?fL?Z0Q!Tgw?A(?Z5{4l4Mym9>WPvXQ;~U)!E6{bzG4oLi@@ zXf(USF-Mo`0kZ=_I2QkIg6T7)wR%Ak(N1m}Xb*iT*eYu;OjGy6yKotQLxY=e)~+>f zEm*mzq8BM2TU^AB$CqGJu0a}B1D?XCfzD4pNa%UNXjHahl5^ClK9M-|6s_`+cuU8U z6W4ZhHsXY77khk&9}J~m>Pa}#t=yB_yjF9)G02lsEzRK>yza>jV~xLDLeBpC20=_0TBYMd{MElJZvHdaw+*(!&BO-r{Gtnu3E3C#CJ&2WCv> z@jlxOdPE9ex4w@L2}a|z?UU`eHO#n;{N4eA3DOs(_|!BjEU!@>44d;fz)FaH$BqINusQ^vS69}&SaE{z)x8x#l}PuT(+Tv9b$Uejk> z17z1h*HK3~A|vk`k!n}j--r)#WjXjL*F04))W+I*qY zY8Absf6z|LY+!;k6lYjF2rjLu0E;9;a>nJK7_E?~WuluG*gka(DqMXwAF5ey5h2oX z)(^Rl()M&8e~`CkClR=;BJikU`@z_hg|9=!OU~dy1ocLRVhtyCmX_7(wbmphKEiYc z8zV*3=m_mgp1?1Q3e4OI#M7sEOFoL@@lEG<13L+tD8*IYLvWdQ( z-{!4P)y85Nu!mF^50wCs%UuLl&8R7Js zE{D;TsKSOj1*V(m?a`iV6V5pEng_b1dfL1G?Qk&Z7?;le&gPZOQ}k`9x}{mD0N}-o z4EewEC+zz9hI=piNLWJLzXdWRKXYQ7na+X7!o7T7db6Hf(fxu8(HI`uE7T=vNn6{y zN|d{P%d=O!c!AP}{av-;?bGHbuAvM56Yd+_?Gj9Z2iEynO%S|L?XI;%vJ{0`uA#!< zLwNUO@uid&_LoR^8O|}+0wvajcTZO3?E`zbkYG+`n$Q@P^m3NZV;b=Jg6Aimi{4K$BN!lwgi?Ke9wDrGS0>DU+btKtJTXklAuhjTgY=XR-0zf0 za#M5ywo-$dmVRv|#g2L`xUmHR9F5DwU`PoMW86BLVl%N03|zh^nO-|wq&Ju@?BZ{_ zlEVQ-q5yEIS^3#lRwqE8rA3%GZ~t?|@w;D;?HLPBmeYHyIVkY@o75D%DJlbOUnx|# zD6Cg^m^OI4QKqAfME|yAt_K|GOD5YXx^Wz{#ROp!*pL|dC)k3cjBJ0YdBTiCx z>=qzLJc7yRGfq)~mI_uFcq$QY%I?%t{Z|ZL?9{3Xp9*K@7x2fTI~#O znlKC6Mj%f~WC;N8dPQmh-*5;Lgfk4$?qEZrq^z&wDa2NpI~Z|vMAs99n3bm(?&Xu) zVZ9;(B~?mkyCWfE|9stwL8#*jIzFN?r%E!9WmG~2MeH1vjtgK^W6{OhhE)+<8&$#$ zRV~Q}I*eIDKv0$ti}F7#KOI@2crk_F{SO$!{w}&JzdV-aS)~-3zQQWCBPZ>pJHav)#{~#us#_`>q#I6r zF$1(#1j`&>ub(^P_M1X$Pt5>lrH*5lN-Bv={{vu94d^U%2l`k?7&Bvme*X}7wr>_P zTgWG&;Hz)KZtMN`w0o|hS>A3$iVrxaUrHvgNgZLY%>sqgAAw_=gGerfhMocRXEfqF z&Q^9hF6@A4q)mX*uL*AI;g0LN&6v&vOH)a~IOc4bndYA)b)oyfx8Y)&a-*>Skjo(E zGcxckA>xRxpr3N*AKLm3mO= zQ|;Zg_?Z@mHyG|5EElp~do6bfk+UH`o8w?)WI0&(@Xunvx(_jQU15LlbD>`IORs6i zrLzUtE2|6yJj*YvI`D~rO_{W zS!6uXeiO7#b~TG{>50n1a{OqS!tdeLo|;%TF&0~_+>B==8DZo*B0v-FpBzRsSlLgp zzPQ&NnMX_T+kDNL6>LC*zy?1$^~E>?&+X^FCvdc7;3nD`k5ximsEOG(fZW;FPZs)J zyYY@{t zUP?A>Ab6yXT80yY$5w4Fxa#*zq7_DYAZDjQ!McW0=Rl;cS0wAtt?1?3OuG(0BWhYp z%f#X#B|)c}RJdfCe~0|qbm6}&yFpMM`=+VM@qHp2Q^{{^^+9?3WOr2ew~^)tI;BEo zfH3(sbhJS!p`v?+(mY7{6xPK=GrW>23sgq3&}oma;0^{9vZ-uoRk(8&J?fqZH?-si z88R{V48O`dA-#0WlCXqfKXDATP{UZhmL`%Uh8JQ)xMH5|We1=W3(}uhc&er1?ti$F zV*oWGs;(=}7~rl}Z$du8&qIE*t1Z%>zlCV=islCsi^=xpypwu1oSzadSYIRJI~OlZ zcqkHS^fvL;8V$1Vpo4=N^E3UD2Ut+Jd!lBt6x6=A<-SlYZ2b9_sh|gI+RmLT3;OCX zM3;cw5Qt&7alrgk77>6AvJIU?e9ZXJT_`A?g_O#E1JA#)5PyYa^5b!vB5y~g=5El+ zT8l03j|BLc0mdza{0n@Wk9En=Q\jDZ`?{DE!mWv`e%Pmi7=n?9uW^bj5(ju-l7 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 hLmiaAhZPky#O+Td-WR3DF>Z^5y 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 XQ&DyTRS|t^At0vxto&iewffmysK6?p literal 0 HcmV?d00001

_FNQDnE^iKQ2@G#>(xPM`e3 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