From 01edca858be6d9fbf622edad86e47835c32d8887 Mon Sep 17 00:00:00 2001 From: David Robson Date: Wed, 30 Nov 2016 15:47:40 -0800 Subject: [PATCH 01/17] All gateway public functions have been declared for export, gateway library is created as a DLL. All tests pass and samples run. Pulled in latest submodules, now I can build shared DLLs for iothub and C-shared. Gateway app can build with a relatively simple cmake file. Install the files in the binary dir, rather than making it a function. --- .gitignore | 3 +- .gitmodules | 6 +- CMakeLists.txt | 58 ++++++++++++++++--- bindings/dotnet/CMakeLists.txt | 2 +- .../dotnet/tests/dotnet_e2e/CMakeLists.txt | 1 + bindings/java/CMakeLists.txt | 2 +- bindings/nodejs/CMakeLists.txt | 2 +- .../nodejs/tests/nodejs_int/CMakeLists.txt | 5 ++ core/CMakeLists.txt | 21 ++++++- core/azure_iot_gateway_sdkConfig.cmake | 17 ++++++ core/inc/broker.h | 19 +++--- core/inc/experimental/event_system.h | 15 ++--- core/inc/gateway.h | 21 +++---- core/inc/gateway_export.h | 19 ++++++ core/inc/message.h | 19 +++--- core/inc/module_loaders/dotnet_loader.h | 3 +- core/inc/module_loaders/dynamic_loader.h | 3 +- core/inc/module_loaders/java_loader.h | 3 +- core/inc/module_loaders/node_loader.h | 3 +- core/tests/gateway_e2e/CMakeLists.txt | 15 ++--- core/tests/gateway_e2e/dependencies.cmake | 14 ++--- .../gateway_e2e/e2e_module/CMakeLists.txt | 1 + dependencies-test.cmake | 2 +- dependencies.cmake | 4 +- deps/CMakeLists.txt | 2 +- deps/c-utility | 2 +- deps/iot-sdk | 1 - deps/iot-sdk-c | 1 + deps/uamqp | 2 +- deps/umqtt | 2 +- jenkins/linux_c.sh | 2 +- jenkins/ubuntu1510_c.sh | 2 +- jenkins/windows_c.cmd | 2 +- modules/azure_functions/CMakeLists.txt | 2 +- modules/ble/CMakeLists.txt | 2 +- modules/ble/tests/ble_ut/CMakeLists.txt | 2 + modules/dependencies.cmake | 16 ++--- modules/identitymap/CMakeLists.txt | 2 +- modules/iothub/CMakeLists.txt | 2 +- modules/logger/CMakeLists.txt | 2 +- samples/azure_functions_sample/CMakeLists.txt | 2 + samples/ble_gateway/CMakeLists.txt | 2 + samples/dotnet_binding_sample/CMakeLists.txt | 1 + .../experimental/events_sample/CMakeLists.txt | 2 + samples/hello_world/CMakeLists.txt | 1 + samples/java_sample/CMakeLists.txt | 2 + samples/nodejs_simple_sample/CMakeLists.txt | 1 + .../CMakeLists.txt | 2 + .../src/azure-iot-field-gateway-sdk.bb | 4 +- tools/Dockerfile | 2 +- tools/build.cmd | 16 ++--- tools/build.sh | 10 ++-- tools/inteledison_c.sh | 2 +- tools/windriver_linux_c.sh | 2 +- 54 files changed, 239 insertions(+), 112 deletions(-) create mode 100644 core/inc/gateway_export.h delete mode 160000 deps/iot-sdk create mode 160000 deps/iot-sdk-c diff --git a/.gitignore b/.gitignore index ba7956db..679b9cb6 100644 --- a/.gitignore +++ b/.gitignore @@ -220,4 +220,5 @@ browse.VC.db api_reference/ # install prefix -install-deps/ \ No newline at end of file +install-deps/ +Testing/Temporary/CTestCostData.txt diff --git a/.gitmodules b/.gitmodules index 7bc6be6d..646468ff 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,6 @@ [submodule "deps/azure-c-shared-utility"] path = deps/c-utility url = https://github.com/Azure/azure-c-shared-utility -[submodule "deps/azure-iot-sdks"] - path = deps/iot-sdk - url = https://github.com/azure/azure-iot-sdks [submodule "deps/parson"] path = deps/parson url = https://github.com/kgabis/parson @@ -25,3 +22,6 @@ [submodule "deps/umqtt"] path = deps/umqtt url = https://github.com/azure/azure-umqtt-c +[submodule "deps/iot-sdk-c"] + path = deps/iot-sdk-c + url = https://github.com/Azure/azure-iot-sdk-c.git diff --git a/CMakeLists.txt b/CMakeLists.txt index b5b6b7dd..4dbd1fbf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,9 +37,13 @@ else() set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) endif() +# tests and samples should use pre-install path to gateway.so +set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} ${CMAKE_CURRENT_BINARY_DIR}/core/) + #the following variables are project-wide and can be used with cmake-gui -option(skip_unittests "set skip_unittests to ON to skip unittests (default is OFF)[if possible, they are always built]" OFF) -option(run_e2e_tests "set run_e2e_tests to ON to run e2e tests (default is OFF) [if possible, they are always built]" OFF) +option(run_unittests "set run_unittests to ON to run unittests (default is OFF)" OFF) +option(run_e2e_tests "set run_e2e_tests to ON to run e2e tests (default is OFF) " OFF) +option(nuget_e2e_tests "" OFF) option(install_executables "should cmake run cmake's install function (that includes dynamic link libraries) [it does for yocto]" OFF) option(install_modules "should cmake install the default gateway modules" OFF) option(enable_java_binding "set enable_java_binding to ON to enable building of Java binding (default is OFF)" OFF) @@ -51,6 +55,7 @@ option(use_amqp "set use_amqp to ON if amqp is to be used, set to OFF to not use option(use_http "set use_http to ON if http is to be used, set to OFF to not use http" ON) option(use_mqtt "set use_mqtt to ON if mqtt is to be used, set to OFF to not use mqtt" ON) + SET(use_condition ON CACHE BOOL "Build C shared utility with condition code" FORCE) set_property(GLOBAL PROPERTY USE_FOLDERS ON) @@ -120,11 +125,9 @@ endfunction() function(add_sample_to_solution sampleName) set_target_properties(${sampleName} PROPERTIES FOLDER "Samples") - #if(DEFINED ${dependency_install_prefix}) - set_target_properties(${sampleName} PROPERTIES - BUILD_WITH_INSTALL_RPATH TRUE - ) - #endif() + set_target_properties(${sampleName} PROPERTIES + BUILD_WITH_INSTALL_RPATH TRUE + ) endfunction() @@ -184,6 +187,46 @@ function(install_broker whatIsBuilding whatIsBuildingLocation) endif() endfunction(install_broker) +set(preinstall_gateway_library_dll ${CMAKE_CURRENT_BINARY_DIR}/core/$(Configuration)/gateway.dll) + +function(copy_gateway_dll whatIsBuilding whatIsBuildingLocation) + if(WIN32) + add_custom_command(TARGET ${whatIsBuilding} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + ${preinstall_gateway_library_dll} + ${whatIsBuildingLocation}) + if(EXISTS "${azure_c_shared_utility_DIR}/../bin/${SHARED_UTIL_LIB}.dll") + add_custom_command(TARGET ${whatIsBuilding} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${azure_c_shared_utility_DIR}/../bin/${SHARED_UTIL_LIB}.dll" + ${whatIsBuildingLocation}) + endif() + + + endif() +endfunction(copy_gateway_dll) + +function(copy_iothub_client_dll whatIsBuilding whatIsBuildingLocation) + if(WIN32) + if(EXISTS "${azure_iot_sdks_DIR}/../bin/iothub_client.dll") + add_custom_command(TARGET ${whatIsBuilding} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${azure_iot_sdks_DIR}/../bin/iothub_client.dll" + ${whatIsBuildingLocation}) + endif() + endif() +endfunction(copy_iothub_client_dll) + +function(copy_iothub_service_dll whatIsBuilding whatIsBuildingLocation) + if(WIN32) + if(EXISTS "${azure_iot_sdks_DIR}/../bin/iothub_service_client.dll") + add_custom_command(TARGET ${whatIsBuilding} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + "${azure_iot_sdks_DIR}/../bin/iothub_service_client.dll" + ${whatIsBuildingLocation}) + endif() + endif() +endfunction(copy_iothub_service_dll) if(${ARCHITECTURE} STREQUAL "x86_64") set(dotnet_managed_binding_dll ${CMAKE_CURRENT_BINARY_DIR}/../bindings/dotnet/dotnet-binding/Microsoft.Azure.IoT.Gateway/bin/x64/$(Configuration)/Microsoft.Azure.IoT.Gateway.dll CACHE INTERNAL "The location of the Microsoft.Azure.IoT.Gateway.dll (windows)" FORCE) @@ -193,6 +236,7 @@ if(${ARCHITECTURE} STREQUAL "x86_64") set(dotnet_sensor_module_dll ${CMAKE_CURRENT_BINARY_DIR}/../bindings/dotnet/dotnet-binding/SensorModule/bin/x64/$(Configuration)/SensorModule.dll CACHE INTERNAL "The location of the SensorModule.dll (windows)" FORCE) set(dotnet_printer_module_dll ${CMAKE_CURRENT_BINARY_DIR}/../bindings/dotnet/dotnet-binding/PrinterModule/bin/x64/$(Configuration)/PrinterModule.dll CACHE INTERNAL "The location of the PrinterModule.dll (windows)" FORCE) + elseif(${ARCHITECTURE} STREQUAL "x86") set(dotnet_managed_binding_dll ${CMAKE_CURRENT_BINARY_DIR}/../bindings/dotnet/dotnet-binding/Microsoft.Azure.IoT.Gateway/bin/x86/$(Configuration)/Microsoft.Azure.IoT.Gateway.dll CACHE INTERNAL "The location of the Microsoft.Azure.IoT.Gateway.dll (windows)" FORCE) diff --git a/bindings/dotnet/CMakeLists.txt b/bindings/dotnet/CMakeLists.txt index 3411da7c..b3f968be 100644 --- a/bindings/dotnet/CMakeLists.txt +++ b/bindings/dotnet/CMakeLists.txt @@ -34,7 +34,7 @@ target_link_libraries(dotnet_static gateway mscoree) linkSharedUtil(dotnet) linkSharedUtil(dotnet_static) -if(NOT ${skip_unittests}) +if(${run_unittests}) add_subdirectory(tests) endif() diff --git a/bindings/dotnet/tests/dotnet_e2e/CMakeLists.txt b/bindings/dotnet/tests/dotnet_e2e/CMakeLists.txt index 7652fffb..995fe042 100644 --- a/bindings/dotnet/tests/dotnet_e2e/CMakeLists.txt +++ b/bindings/dotnet/tests/dotnet_e2e/CMakeLists.txt @@ -45,6 +45,7 @@ if(TARGET ${theseTestsName}_exe) add_dependencies(${theseTestsName}_exe dotnet) install_broker(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) + copy_gateway_dll(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) install_binaries(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ${dotnet_managed_binding_dll} ) install_binaries(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ${dotnet_e2etest_module_dll} ) install_binaries(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ${dotnet_host_binding_dll} ) diff --git a/bindings/java/CMakeLists.txt b/bindings/java/CMakeLists.txt index 0c2b6fee..df24e1f2 100644 --- a/bindings/java/CMakeLists.txt +++ b/bindings/java/CMakeLists.txt @@ -89,7 +89,7 @@ linkSharedUtil(java_module_host_static) add_binding_to_solution(java_module_host) add_binding_to_solution(java_module_host_static) -if(NOT ${skip_unittests}) +if(${run_unittests}) add_subdirectory(tests) endif() diff --git a/bindings/nodejs/CMakeLists.txt b/bindings/nodejs/CMakeLists.txt index 74f2b042..96c49842 100644 --- a/bindings/nodejs/CMakeLists.txt +++ b/bindings/nodejs/CMakeLists.txt @@ -132,7 +132,7 @@ target_include_directories(nodejs_binding_static PUBLIC $ENV{NODE_INCLUDE}) add_binding_to_solution(nodejs_binding) add_binding_to_solution(nodejs_binding_static) -if(NOT ${skip_unittests}) +if(${run_unittests}) add_subdirectory(tests) endif() diff --git a/bindings/nodejs/tests/nodejs_int/CMakeLists.txt b/bindings/nodejs/tests/nodejs_int/CMakeLists.txt index a1152ed2..12287f86 100644 --- a/bindings/nodejs/tests/nodejs_int/CMakeLists.txt +++ b/bindings/nodejs/tests/nodejs_int/CMakeLists.txt @@ -37,6 +37,11 @@ target_link_libraries(${theseTestsName}_exe ${LIBS}) target_include_directories(nodejs_binding_static PUBLIC $ENV{NODE_INCLUDE}) install_broker(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) copy_node_dll(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_gateway_dll(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) + +set_target_properties(${theseTestsName}_exe PROPERTIES + BUILD_WITH_INSTALL_RPATH TRUE +) if(WIN32) target_include_directories( diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index d9745275..b76bbcf1 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -77,10 +77,12 @@ set(gateway_h_sources ./inc/module_access.h ./inc/experimental/event_system.h ./inc/gateway.h + ./inc/gateway_export.h ./inc/gateway_version.h ./inc/module_loader.h ./inc/dynamic_library.h ./src/gateway_internal.h + ../deps/parson/parson.h ) # Add the module loaders @@ -140,31 +142,44 @@ endif() include_directories(./inc) -add_library(gateway +add_library(gateway SHARED + ${gateway_c_sources} + ${gateway_h_sources} +) + +add_library(gateway_static STATIC ${gateway_c_sources} ${gateway_h_sources} ) if(WIN32) target_link_libraries(gateway parson nanomsg aziotsharedutil ${dynamic_loader_library}) + target_link_libraries(gateway_static parson nanomsg aziotsharedutil ${dynamic_loader_library}) else() target_link_libraries(gateway parson nanomsg aziotsharedutil ${dynamic_loader_library}) target_link_libraries(gateway ${NN_REQUIRED_LIBRARIES}) target_link_libraries(gateway m) + + target_link_libraries(gateway_static parson nanomsg aziotsharedutil ${dynamic_loader_library}) + + target_link_libraries(gateway_static ${NN_REQUIRED_LIBRARIES}) + target_link_libraries(gateway_static m) endif() if(WIN32) target_link_libraries(gateway rpcrt4.lib) + target_link_libraries(gateway_static rpcrt4.lib) else() find_package(PkgConfig REQUIRED) pkg_search_module(UIDLINUX REQUIRED uuid) target_link_libraries(gateway uuid) + target_link_libraries(gateway_static uuid) endif() #this adds the tests to the build process -if(NOT ${skip_unittests}) +if(${run_unittests}) add_subdirectory(tests) endif() @@ -197,7 +212,7 @@ else() set(AIG_INCLUDE_DIRS ${AIG_HEADER_INSTALL_PREFIX}) endif() -install(TARGETS gateway EXPORT gatewayTargets +install(TARGETS gateway gateway_static EXPORT gatewayTargets LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION ${LIB_INSTALL_DIR}/../bin diff --git a/core/azure_iot_gateway_sdkConfig.cmake b/core/azure_iot_gateway_sdkConfig.cmake index 60e7649e..94ee3fc3 100644 --- a/core/azure_iot_gateway_sdkConfig.cmake +++ b/core/azure_iot_gateway_sdkConfig.cmake @@ -36,6 +36,23 @@ else() link_directories("${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") endif() +# install required gateway DLLs to current project +if (WIN32) + file( + INSTALL + "${azure_iot_gateway_sdk_DIR}/../bin/gateway.dll" + DESTINATION + "${CMAKE_CURRENT_BINARY_DIR}" + ) + + file( + INSTALL + "${azure_c_shared_utility_DIR}/../bin/aziotsharedutil.dll" + DESTINATION + "${CMAKE_CURRENT_BINARY_DIR}" + ) +endif() + link_directories("${CMAKE_CURRENT_LIST_DIR}/../lib") include("${CMAKE_CURRENT_LIST_DIR}/azure_iot_gateway_sdkTargets.cmake") \ No newline at end of file diff --git a/core/inc/broker.h b/core/inc/broker.h index 618038f7..799ff821 100644 --- a/core/inc/broker.h +++ b/core/inc/broker.h @@ -20,6 +20,7 @@ typedef struct BROKER_HANDLE_DATA_TAG* BROKER_HANDLE; #include "azure_c_shared_utility/macro_utils.h" #include "message.h" #include "module.h" +#include "gateway_export.h" #ifdef __cplusplus #include @@ -56,7 +57,7 @@ DEFINE_ENUM(BROKER_RESULT, BROKER_RESULT_VALUES); * * @return A valid #BROKER_HANDLE upon success, or @c NULL upon failure. */ -extern BROKER_HANDLE Broker_Create(void); +GATEWAY_EXPORT BROKER_HANDLE Broker_Create(void); /** @brief Increments the reference count of a message broker. * @@ -65,7 +66,7 @@ extern BROKER_HANDLE Broker_Create(void); * * @param broker The #BROKER_HANDLE to be cloned. */ -extern void Broker_IncRef(BROKER_HANDLE broker); +GATEWAY_EXPORT void Broker_IncRef(BROKER_HANDLE broker); /** @brief Decrements the reference count of a message broker. * @@ -75,7 +76,7 @@ extern void Broker_IncRef(BROKER_HANDLE broker); * * @param broker The #BROKER_HANDLE whose ref count will be decremented. */ -extern void Broker_DecRef(BROKER_HANDLE broker); +GATEWAY_EXPORT void Broker_DecRef(BROKER_HANDLE broker); /** @brief Publishes a message to the message broker. * @@ -93,7 +94,7 @@ extern void Broker_DecRef(BROKER_HANDLE broker); * * @return A #BROKER_RESULT describing the result of the function. */ -extern BROKER_RESULT Broker_Publish(BROKER_HANDLE broker, MODULE_HANDLE source, MESSAGE_HANDLE message); +GATEWAY_EXPORT BROKER_RESULT Broker_Publish(BROKER_HANDLE broker, MODULE_HANDLE source, MESSAGE_HANDLE message); /** @brief Adds a module to the message broker. * @@ -108,7 +109,7 @@ extern BROKER_RESULT Broker_Publish(BROKER_HANDLE broker, MODULE_HANDLE source, * * @return A #BROKER_RESULT describing the result of the function. */ -extern BROKER_RESULT Broker_AddModule(BROKER_HANDLE broker, const MODULE* module); +GATEWAY_EXPORT BROKER_RESULT Broker_AddModule(BROKER_HANDLE broker, const MODULE* module); /** @brief Removes a module from the message broker. * @@ -117,7 +118,7 @@ extern BROKER_RESULT Broker_AddModule(BROKER_HANDLE broker, const MODULE* module * * @return A #BROKER_RESULT describing the result of the function. */ -extern BROKER_RESULT Broker_RemoveModule(BROKER_HANDLE broker, const MODULE* module); +GATEWAY_EXPORT BROKER_RESULT Broker_RemoveModule(BROKER_HANDLE broker, const MODULE* module); /** @brief Adds a route to the message broker. * @@ -132,7 +133,7 @@ extern BROKER_RESULT Broker_RemoveModule(BROKER_HANDLE broker, const MODULE* mod * * @return A #BROKER_RESULT describing the result of the function. */ -extern BROKER_RESULT Broker_AddLink(BROKER_HANDLE broker, const BROKER_LINK_DATA* link); +GATEWAY_EXPORT BROKER_RESULT Broker_AddLink(BROKER_HANDLE broker, const BROKER_LINK_DATA* link); /** @brief Removes a route from the message broker. * @@ -141,13 +142,13 @@ extern BROKER_RESULT Broker_AddLink(BROKER_HANDLE broker, const BROKER_LINK_DATA * * @return A #BROKER_RESULT describing the result of the function. */ -extern BROKER_RESULT Broker_RemoveLink(BROKER_HANDLE broker, const BROKER_LINK_DATA* link); +GATEWAY_EXPORT BROKER_RESULT Broker_RemoveLink(BROKER_HANDLE broker, const BROKER_LINK_DATA* link); /** @brief Disposes of resources allocated by a message broker. * * @param broker The #BROKER_HANDLE to be destroyed. */ -extern void Broker_Destroy(BROKER_HANDLE broker); +GATEWAY_EXPORT void Broker_Destroy(BROKER_HANDLE broker); #ifdef __cplusplus } diff --git a/core/inc/experimental/event_system.h b/core/inc/experimental/event_system.h index 39cca52a..7d15cfb3 100644 --- a/core/inc/experimental/event_system.h +++ b/core/inc/experimental/event_system.h @@ -9,6 +9,7 @@ #define EVENT_SYSTEM_H #include "gateway.h" +#include "gateway_export.h" #ifdef __cplusplus extern "C" @@ -72,10 +73,10 @@ typedef void* GATEWAY_EVENT_CTX; */ typedef void(*GATEWAY_CALLBACK)(GATEWAY_HANDLE gateway, GATEWAY_EVENT event_type, GATEWAY_EVENT_CTX context, void* user_param); -extern EVENTSYSTEM_HANDLE EventSystem_Init(void); -extern void EventSystem_AddEventCallback(EVENTSYSTEM_HANDLE event_system, GATEWAY_EVENT event_type, GATEWAY_CALLBACK callback, void* user_param); -extern void EventSystem_ReportEvent(EVENTSYSTEM_HANDLE event_system, GATEWAY_HANDLE gw, GATEWAY_EVENT event_type); -extern void EventSystem_Destroy(EVENTSYSTEM_HANDLE event_system); +GATEWAY_EXPORT EVENTSYSTEM_HANDLE EventSystem_Init(void); +GATEWAY_EXPORT void EventSystem_AddEventCallback(EVENTSYSTEM_HANDLE event_system, GATEWAY_EVENT event_type, GATEWAY_CALLBACK callback, void* user_param); +GATEWAY_EXPORT void EventSystem_ReportEvent(EVENTSYSTEM_HANDLE event_system, GATEWAY_HANDLE gw, GATEWAY_EVENT event_type); +GATEWAY_EXPORT void EventSystem_Destroy(EVENTSYSTEM_HANDLE event_system); /** @brief Registers a function to be called on a callback thread when_all * #GATEWAY_EVENT happens @@ -89,7 +90,7 @@ extern void EventSystem_Destroy(EVENTSYSTEM_HANDLE event_system); * @param user_param User defined parameter that will be later provided * to the called callback */ -extern void Gateway_AddEventCallback(GATEWAY_HANDLE gw, GATEWAY_EVENT event_type, GATEWAY_CALLBACK callback, void* user_param); +GATEWAY_EXPORT void Gateway_AddEventCallback(GATEWAY_HANDLE gw, GATEWAY_EVENT event_type, GATEWAY_CALLBACK callback, void* user_param); /** @brief Returns a snapshot copy of information about running modules. * @@ -103,14 +104,14 @@ extern void Gateway_AddEventCallback(GATEWAY_HANDLE gw, GATEWAY_EVENT event_type * @return A #VECTOR_HANDLE of pointers to #GATEWAY_MODULE_INFO on success. * NULL on failure. */ -extern VECTOR_HANDLE Gateway_GetModuleList(GATEWAY_HANDLE gw); +GATEWAY_EXPORT VECTOR_HANDLE Gateway_GetModuleList(GATEWAY_HANDLE gw); /** @brief Destroys the list returned by @c Gateway_GetModuleList * * @param module_list A vector handle as returned from * @c Gateway_GetModuleList */ -extern void Gateway_DestroyModuleList(VECTOR_HANDLE module_list); +GATEWAY_EXPORT void Gateway_DestroyModuleList(VECTOR_HANDLE module_list); #ifdef __cplusplus } diff --git a/core/inc/gateway.h b/core/inc/gateway.h index 45f80f38..822d8264 100644 --- a/core/inc/gateway.h +++ b/core/inc/gateway.h @@ -15,6 +15,7 @@ #include "azure_c_shared_utility/vector.h" #include "module.h" #include "module_loader.h" +#include "gateway_export.h" #ifdef __cplusplus extern "C" @@ -143,7 +144,7 @@ typedef struct GATEWAY_PROPERTIES_DATA_TAG * @return A non-NULL #GATEWAY_HANDLE that can be used to manage the * gateway or @c NULL on failure. */ -extern GATEWAY_HANDLE Gateway_CreateFromJson(const char* file_path); +GATEWAY_EXPORT GATEWAY_HANDLE Gateway_CreateFromJson(const char* file_path); /** @brief Creates a new gateway using the provided #GATEWAY_PROPERTIES. * @@ -153,7 +154,7 @@ extern GATEWAY_HANDLE Gateway_CreateFromJson(const char* file_path); * @return A non-NULL #GATEWAY_HANDLE that can be used to manage the * gateway or @c NULL on failure. */ -extern GATEWAY_HANDLE Gateway_Create(const GATEWAY_PROPERTIES* properties); +GATEWAY_EXPORT GATEWAY_HANDLE Gateway_Create(const GATEWAY_PROPERTIES* properties); /** @brief Tell the Gateway it's ready to start. * @@ -161,13 +162,13 @@ extern GATEWAY_HANDLE Gateway_Create(const GATEWAY_PROPERTIES* properties); * * @return A #GATEWAY_START_RESULT to report the result of the start */ -extern GATEWAY_START_RESULT Gateway_Start(GATEWAY_HANDLE gw); +GATEWAY_EXPORT GATEWAY_START_RESULT Gateway_Start(GATEWAY_HANDLE gw); /** @brief Destroys the gateway and disposes of all associated data. * * @param gw #GATEWAY_HANDLE to be destroyed. */ -extern void Gateway_Destroy(GATEWAY_HANDLE gw); +GATEWAY_EXPORT void Gateway_Destroy(GATEWAY_HANDLE gw); /** @brief Creates a new module based on the GATEWAY_MODULES_ENTRY*. * @@ -178,7 +179,7 @@ extern void Gateway_Destroy(GATEWAY_HANDLE gw); * @return A non-NULL #MODULE_HANDLE to the newly created and added * Module, or @c NULL on failure. */ -extern MODULE_HANDLE Gateway_AddModule(GATEWAY_HANDLE gw, const GATEWAY_MODULES_ENTRY* entry); +GATEWAY_EXPORT MODULE_HANDLE Gateway_AddModule(GATEWAY_HANDLE gw, const GATEWAY_MODULES_ENTRY* entry); /** @brief Tells a module that the gateway is ready for it to start. * @@ -186,7 +187,7 @@ extern MODULE_HANDLE Gateway_AddModule(GATEWAY_HANDLE gw, const GATEWAY_MODULES_ * Module. * @param module Pointer to a #MODULE_HANDLE that needs to be removed. */ -extern void Gateway_StartModule(GATEWAY_HANDLE gw, MODULE_HANDLE module); +GATEWAY_EXPORT void Gateway_StartModule(GATEWAY_HANDLE gw, MODULE_HANDLE module); /** @brief Removes the provided module from the gateway and all links that @@ -196,7 +197,7 @@ extern void Gateway_StartModule(GATEWAY_HANDLE gw, MODULE_HANDLE module); * Module. * @param module Pointer to a #MODULE_HANDLE that needs to be removed. */ -extern void Gateway_RemoveModule(GATEWAY_HANDLE gw, MODULE_HANDLE module); +GATEWAY_EXPORT void Gateway_RemoveModule(GATEWAY_HANDLE gw, MODULE_HANDLE module); /** @brief Removes module by its unique name * @@ -207,7 +208,7 @@ extern void Gateway_RemoveModule(GATEWAY_HANDLE gw, MODULE_HANDLE module); * * @return 0 on success and a non-zero value when an error occurs. */ -extern int Gateway_RemoveModuleByName(GATEWAY_HANDLE gw, const char *module_name); +GATEWAY_EXPORT int Gateway_RemoveModuleByName(GATEWAY_HANDLE gw, const char *module_name); /** @brief Adds a link to a gateway message broker. * @@ -218,7 +219,7 @@ extern int Gateway_RemoveModuleByName(GATEWAY_HANDLE gw, const char *module_name * * @return A GATEWAY_ADD_LINK_RESULT with the operation result. */ -extern GATEWAY_ADD_LINK_RESULT Gateway_AddLink(GATEWAY_HANDLE gw, const GATEWAY_LINK_ENTRY* entryLink); +GATEWAY_EXPORT GATEWAY_ADD_LINK_RESULT Gateway_AddLink(GATEWAY_HANDLE gw, const GATEWAY_LINK_ENTRY* entryLink); /** @brief Remove a link from a gateway message broker. * @@ -227,7 +228,7 @@ extern GATEWAY_ADD_LINK_RESULT Gateway_AddLink(GATEWAY_HANDLE gw, const GATEWAY_ * * @param entryLink Pointer to a #GATEWAY_LINK_ENTRY to be removed. */ -extern void Gateway_RemoveLink(GATEWAY_HANDLE gw, const GATEWAY_LINK_ENTRY* entryLink); +GATEWAY_EXPORT void Gateway_RemoveLink(GATEWAY_HANDLE gw, const GATEWAY_LINK_ENTRY* entryLink); #ifdef __cplusplus } diff --git a/core/inc/gateway_export.h b/core/inc/gateway_export.h new file mode 100644 index 00000000..2be543a6 --- /dev/null +++ b/core/inc/gateway_export.h @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +/** @file gateway_export.h + * @brief Defines the appropriate function export. + * + * @details Architecture dependent function declarations. + */ + +#ifndef GATEWAY_EXPORT_H +#define GATEWAY_EXPORT_H + +#ifdef _WIN32 +#define GATEWAY_EXPORT __declspec(dllexport) +#else +#define GATEWAY_EXPORT extern +#endif // _WIN32 + +#endif // GATEWAY_EXPORT_H diff --git a/core/inc/message.h b/core/inc/message.h index e305a2c0..9ec12768 100644 --- a/core/inc/message.h +++ b/core/inc/message.h @@ -30,6 +30,7 @@ #include "azure_c_shared_utility/map.h" #include "azure_c_shared_utility/constmap.h" #include "azure_c_shared_utility/constbuffer.h" +#include "gateway_export.h" #ifdef __cplusplus #include @@ -98,7 +99,7 @@ typedef struct MESSAGE_BUFFER_CONFIG_TAG * @return A non-NULL #MESSAGE_HANDLE for the newly created message, or * NULL upon failure. */ -extern MESSAGE_HANDLE Message_Create(const MESSAGE_CONFIG* cfg); +GATEWAY_EXPORT MESSAGE_HANDLE Message_Create(const MESSAGE_CONFIG* cfg); /** @brief Creates a new reference counted message from a byte array * containing the serialized form of a message. @@ -112,7 +113,7 @@ extern MESSAGE_HANDLE Message_Create(const MESSAGE_CONFIG* cfg); * @return A non-NULL #MESSAGE_HANDLE for the newly created message, or * NULL upon failure. */ -extern MESSAGE_HANDLE Message_CreateFromByteArray(const unsigned char* source, int32_t size); +GATEWAY_EXPORT MESSAGE_HANDLE Message_CreateFromByteArray(const unsigned char* source, int32_t size); /** @brief Creates a byte array representation of a MESSAGE_HANDLE. * @@ -129,7 +130,7 @@ extern MESSAGE_HANDLE Message_CreateFromByteArray(const unsigned char* source, i * size required for a full successful serialization. Returns a * negative value when an error occurs. */ -extern int32_t Message_ToByteArray(MESSAGE_HANDLE messageHandle, unsigned char* buf, int32_t size); +GATEWAY_EXPORT int32_t Message_ToByteArray(MESSAGE_HANDLE messageHandle, unsigned char* buf, int32_t size); /** @brief Creates a new message from a @c CONSTBUFFER source and * @c MAP_HANDLE. @@ -146,7 +147,7 @@ extern int32_t Message_ToByteArray(MESSAGE_HANDLE messageHandle, unsigned char* * @return A non-NULL #MESSAGE_HANDLE for the newly created message, or * @c NULL upon failure. */ -extern MESSAGE_HANDLE Message_CreateFromBuffer(const MESSAGE_BUFFER_CONFIG* cfg); +GATEWAY_EXPORT MESSAGE_HANDLE Message_CreateFromBuffer(const MESSAGE_BUFFER_CONFIG* cfg); /** @brief Creates a clone of the message. * @@ -158,7 +159,7 @@ extern MESSAGE_HANDLE Message_CreateFromBuffer(const MESSAGE_BUFFER_CONFIG* cfg) * @return A non-NULL #MESSAGE_HANDLE cloned from @c message, or @c NULL * upon failure. */ -extern MESSAGE_HANDLE Message_Clone(MESSAGE_HANDLE message); +GATEWAY_EXPORT MESSAGE_HANDLE Message_Clone(MESSAGE_HANDLE message); /** @brief Gets the properties of a message. * @@ -172,7 +173,7 @@ extern MESSAGE_HANDLE Message_Clone(MESSAGE_HANDLE message); * message, or @c NULL upon failure. * */ -extern CONSTMAP_HANDLE Message_GetProperties(MESSAGE_HANDLE message); +GATEWAY_EXPORT CONSTMAP_HANDLE Message_GetProperties(MESSAGE_HANDLE message); /** @brief Gets the content of a message. * @@ -184,7 +185,7 @@ extern CONSTMAP_HANDLE Message_GetProperties(MESSAGE_HANDLE message); * @return A non-NULL pointer to a @c CONSTBUFFER representing the content * of the message, or @c NULL upon failure. */ -extern const CONSTBUFFER* Message_GetContent(MESSAGE_HANDLE message); +GATEWAY_EXPORT const CONSTBUFFER* Message_GetContent(MESSAGE_HANDLE message); /** @brief Gets the @c CONSTBUFFER handle that may be used to access the * message content. @@ -197,13 +198,13 @@ extern const CONSTBUFFER* Message_GetContent(MESSAGE_HANDLE message); * @return A non-NULL @c CONSTBUFFER_HANDLE representing the message * content, or @c NULL upon failure. */ -extern CONSTBUFFER_HANDLE Message_GetContentHandle(MESSAGE_HANDLE message); +GATEWAY_EXPORT CONSTBUFFER_HANDLE Message_GetContentHandle(MESSAGE_HANDLE message); /** @brief Disposes of resources allocated by the message. * * @param message The #MESSAGE_HANDLE to be destroyed. */ -extern void Message_Destroy(MESSAGE_HANDLE message); +GATEWAY_EXPORT void Message_Destroy(MESSAGE_HANDLE message); #ifdef __cplusplus } diff --git a/core/inc/module_loaders/dotnet_loader.h b/core/inc/module_loaders/dotnet_loader.h index d10a5f78..0d0ecf8a 100644 --- a/core/inc/module_loaders/dotnet_loader.h +++ b/core/inc/module_loaders/dotnet_loader.h @@ -9,6 +9,7 @@ #include "module.h" #include "module_loader.h" +#include "gateway_export.h" #ifdef __cplusplus extern "C" @@ -31,7 +32,7 @@ typedef struct DOTNET_LOADER_ENTRYPOINT_TAG STRING_HANDLE dotnetModuleEntryClass; } DOTNET_LOADER_ENTRYPOINT; -MOCKABLE_FUNCTION(, const MODULE_LOADER*, DotnetLoader_Get); +MOCKABLE_FUNCTION(, GATEWAY_EXPORT const MODULE_LOADER*, DotnetLoader_Get); #ifdef __cplusplus } diff --git a/core/inc/module_loaders/dynamic_loader.h b/core/inc/module_loaders/dynamic_loader.h index 2a0490e2..a4d47fc6 100644 --- a/core/inc/module_loaders/dynamic_loader.h +++ b/core/inc/module_loaders/dynamic_loader.h @@ -17,6 +17,7 @@ #include "module.h" #include "module_loader.h" +#include "gateway_export.h" #ifdef __cplusplus extern "C" @@ -33,7 +34,7 @@ typedef struct DYNAMIC_LOADER_ENTRYPOINT_TAG } DYNAMIC_LOADER_ENTRYPOINT; /** @brief The API for the dynamically linked module loader. */ -MOCKABLE_FUNCTION(, const MODULE_LOADER*, DynamicLoader_Get); +MOCKABLE_FUNCTION(, GATEWAY_EXPORT const MODULE_LOADER*, DynamicLoader_Get); #ifdef __cplusplus } diff --git a/core/inc/module_loaders/java_loader.h b/core/inc/module_loaders/java_loader.h index a04dd42d..fcc11e91 100644 --- a/core/inc/module_loaders/java_loader.h +++ b/core/inc/module_loaders/java_loader.h @@ -11,6 +11,7 @@ #include "module_loader.h" #include "java_module_host.h" #include "gateway_version.h" +#include "gateway_export.h" #ifdef __cplusplus extern "C" @@ -74,7 +75,7 @@ typedef struct JAVA_LOADER_ENTRYPOINT_TAG STRING_HANDLE classPath; } JAVA_LOADER_ENTRYPOINT; -MOCKABLE_FUNCTION(, const MODULE_LOADER*, JavaLoader_Get); +MOCKABLE_FUNCTION(, GATEWAY_EXPORT const MODULE_LOADER*, JavaLoader_Get); #ifdef __cplusplus } diff --git a/core/inc/module_loaders/node_loader.h b/core/inc/module_loaders/node_loader.h index 5cc0034b..f9a6e549 100644 --- a/core/inc/module_loaders/node_loader.h +++ b/core/inc/module_loaders/node_loader.h @@ -9,6 +9,7 @@ #include "module.h" #include "module_loader.h" +#include "gateway_export.h" #ifdef __cplusplus extern "C" @@ -28,7 +29,7 @@ typedef struct NODE_LOADER_ENTRYPOINT_TAG STRING_HANDLE mainPath; } NODE_LOADER_ENTRYPOINT; -MOCKABLE_FUNCTION(, const MODULE_LOADER*, NodeLoader_Get); +MOCKABLE_FUNCTION(, GATEWAY_EXPORT const MODULE_LOADER*, NodeLoader_Get); #ifdef __cplusplus } diff --git a/core/tests/gateway_e2e/CMakeLists.txt b/core/tests/gateway_e2e/CMakeLists.txt index ebc7e5e0..a24db80d 100644 --- a/core/tests/gateway_e2e/CMakeLists.txt +++ b/core/tests/gateway_e2e/CMakeLists.txt @@ -26,7 +26,7 @@ set(${theseTestsName}_c_files ) include_directories(../../../samples/protocol_encapsulation/inc ${IOTHUB_CLIENT_INC_FOLDER} e2e_module/inc/) -include_directories(../../../deps/iot-sdk/c/testtools/iothub_test/inc) +include_directories(../../../deps/iot-sdk-c/testtools/iothub_test/inc) include_directories(../../../deps/c-utility/inc/azure_c_shared_utility) include_directories(../../../modules/common) include_directories(../../../modules/iothub/inc) @@ -36,12 +36,10 @@ include_directories(${IOTHUB_SERVICE_CLIENT_INC_FOLDER}) include_directories(${GW_INC}) build_test_artifacts(${theseTestsName} ON) -if(DEFINED ${dependency_install_prefix}) - set_target_properties( - ${theseTestsName}_exe PROPERTIES - BUILD_WITH_INSTALL_RPATH TRUE - ) -endif() +set_target_properties( + ${theseTestsName}_exe PROPERTIES + BUILD_WITH_INSTALL_RPATH TRUE +) if(WIN32) if(TARGET ${theseTestsName}_dll) @@ -61,6 +59,9 @@ if(WIN32) iothub_client_http_transport ) install_broker(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) + copy_gateway_dll(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) + copy_iothub_client_dll(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration)) + copy_iothub_service_dll(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration)) endif() else() if(TARGET ${theseTestsName}_exe) diff --git a/core/tests/gateway_e2e/dependencies.cmake b/core/tests/gateway_e2e/dependencies.cmake index 623a017d..699684cf 100644 --- a/core/tests/gateway_e2e/dependencies.cmake +++ b/core/tests/gateway_e2e/dependencies.cmake @@ -6,18 +6,18 @@ include("../../../gatewayFunctions.cmake") ############################################################################### ###########################Find/Install/Build uamqp############################ ############################################################################### -findAndInstall(uamqp ${PROJECT_SOURCE_DIR}/deps/uamqp ${PROJECT_SOURCE_DIR}/deps/uamqp -Duse_installed_dependencies=ON -Dskip_unittests=ON -G "${CMAKE_GENERATOR}") +findAndInstall(uamqp ${PROJECT_SOURCE_DIR}/deps/uamqp ${PROJECT_SOURCE_DIR}/deps/uamqp -Duse_installed_dependencies=ON -G "${CMAKE_GENERATOR}") ############################################################################### ###########################Find/Install/Build umqtt############################ ############################################################################### -findAndInstall(umqtt ${PROJECT_SOURCE_DIR}/deps/umqtt ${PROJECT_SOURCE_DIR}/deps/umqtt -Duse_installed_dependencies=ON -Dskip_unittests=ON -G "${CMAKE_GENERATOR}") +findAndInstall(umqtt ${PROJECT_SOURCE_DIR}/deps/umqtt ${PROJECT_SOURCE_DIR}/deps/umqtt -Duse_installed_dependencies=ON -G "${CMAKE_GENERATOR}") ############################################################################### #######################Find/Install/Build azure_iot_sdks####################### ############################################################################### #The azure_iot_sdks repo requires special treatment. Parson submodule must be initialized. -if(NOT EXISTS ${PROJECT_SOURCE_DIR}/deps/iot-sdk/c/parson/README.md) +if(NOT EXISTS ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c/parson/README.md) execute_process( COMMAND git submodule update --init ${PROJECT_SOURCE_DIR}/deps/iot-sdk WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} @@ -25,15 +25,15 @@ if(NOT EXISTS ${PROJECT_SOURCE_DIR}/deps/iot-sdk/c/parson/README.md) ) if(${res}) - message(FATAL_ERROR "Error pulling iot-sdk submodule: ${res}") + message(FATAL_ERROR "Error pulling iot-sdk-c submodule: ${res}") endif() execute_process( - COMMAND git submodule update --init c/parson - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/deps/iot-sdk + COMMAND git submodule update --init parson + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c RESULT_VARIABLE res ) if(${res}) message(FATAL_ERROR "Error pulling parson submodule: ${res}") endif() endif() -findAndInstall(azure_iot_sdks ${PROJECT_SOURCE_DIR}/deps/iot-sdk ${PROJECT_SOURCE_DIR}/deps/iot-sdk/c -Duse_installed_dependencies=ON -Drun_e2e_tests=ON -Duse_openssl=OFF -Dskip_unittests=ON -G "${CMAKE_GENERATOR}") +findAndInstall(azure_iot_sdks ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c -Duse_installed_dependencies=ON -Dbuild_as_shared=ON -Drun_e2e_tests=ON -Duse_openssl=OFF -G "${CMAKE_GENERATOR}") diff --git a/core/tests/gateway_e2e/e2e_module/CMakeLists.txt b/core/tests/gateway_e2e/e2e_module/CMakeLists.txt index 3982e7a9..3391bd3a 100644 --- a/core/tests/gateway_e2e/e2e_module/CMakeLists.txt +++ b/core/tests/gateway_e2e/e2e_module/CMakeLists.txt @@ -19,3 +19,4 @@ add_library(e2e_module MODULE ${e2e_module_sources} ${e2e_module_headers}) target_link_libraries(e2e_module gateway) linkSharedUtil(e2e_module) + diff --git a/dependencies-test.cmake b/dependencies-test.cmake index 08b5d892..6b16d4dc 100644 --- a/dependencies-test.cmake +++ b/dependencies-test.cmake @@ -16,4 +16,4 @@ findAndInstall(testrunnerswitcher ${PROJECT_SOURCE_DIR}/deps/testrunner ${PROJEC ############################################################################### ###########################Find/Install/Build umock############################ ############################################################################### -findAndInstall(umock_c ${PROJECT_SOURCE_DIR}/deps/umock-c ${PROJECT_SOURCE_DIR}/deps/umock-c -Duse_installed_dependencies=ON -Dskip_unittests=ON -G "${CMAKE_GENERATOR}") \ No newline at end of file +findAndInstall(umock_c ${PROJECT_SOURCE_DIR}/deps/umock-c ${PROJECT_SOURCE_DIR}/deps/umock-c -Duse_installed_dependencies=ON -G "${CMAKE_GENERATOR}") \ No newline at end of file diff --git a/dependencies.cmake b/dependencies.cmake index 27f4dc1c..afcba14a 100644 --- a/dependencies.cmake +++ b/dependencies.cmake @@ -10,7 +10,7 @@ include("gatewayFunctions.cmake") ############################################################################### ###################Find/Install/Build azure_c_shared_utility################### ############################################################################### -findAndInstall(azure_c_shared_utility ${PROJECT_SOURCE_DIR}/deps/c-utility ${PROJECT_SOURCE_DIR}/deps/c-utility -Duse_installed_dependencies=ON -G "${CMAKE_GENERATOR}") +findAndInstall(azure_c_shared_utility ${PROJECT_SOURCE_DIR}/deps/c-utility ${PROJECT_SOURCE_DIR}/deps/c-utility -Duse_installed_dependencies=ON -Drun_unittests=${run_unittests} -Dbuild_as_dynamic=ON -G "${CMAKE_GENERATOR}") set(SHARED_UTIL_INC_FOLDER ${AZURE_C_SHARED_UTILITY_INCLUDE_DIR} CACHE INTERNAL "this is what needs to be included if using sharedLib lib" FORCE) set(SHARED_UTIL_LIB_FOLDER ${AZURE_C_SHARED_LIBRARY_DIR} CACHE INTERNAL "this is what needs to be included if using sharedLib lib" FORCE) set(SHARED_UTIL_LIB aziotsharedutil CACHE INTERNAL "this is what needs to be included if using sharedLib lib" FORCE) @@ -92,4 +92,4 @@ if(NOT EXISTS ${PROJECT_SOURCE_DIR}/deps/parson/parson.c) if(${res}) message(FATAL_ERROR "Error pulling parson submodule: ${res}") endif() -endif() \ No newline at end of file +endif() diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 753e3b5a..0f19693a 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -7,4 +7,4 @@ cmake_minimum_required(VERSION 2.8.11) set(run_valgrind OFF) add_subdirectory(./c-utility) -add_subdirectory(./iot-sdk/c) +add_subdirectory(./iot-sdk-c) diff --git a/deps/c-utility b/deps/c-utility index e8f4077b..555a5ba5 160000 --- a/deps/c-utility +++ b/deps/c-utility @@ -1 +1 @@ -Subproject commit e8f4077bdb7c8fbdfe2df7c9e90297e22a9c6708 +Subproject commit 555a5ba578bd7452c1272e9615a97c398c6e64be diff --git a/deps/iot-sdk b/deps/iot-sdk deleted file mode 160000 index 5b3a502b..00000000 --- a/deps/iot-sdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5b3a502b9c0f15df138e9402d9a0505663ac795f diff --git a/deps/iot-sdk-c b/deps/iot-sdk-c new file mode 160000 index 00000000..a08640f4 --- /dev/null +++ b/deps/iot-sdk-c @@ -0,0 +1 @@ +Subproject commit a08640f4390f65cd8d51d8f435aaed7fd2cc401e diff --git a/deps/uamqp b/deps/uamqp index 6f1288aa..b9df6c69 160000 --- a/deps/uamqp +++ b/deps/uamqp @@ -1 +1 @@ -Subproject commit 6f1288aaaf53c601c75e6ab084065b3e65ded1fe +Subproject commit b9df6c6928b12964fecd54bb318801ad9348eb1f diff --git a/deps/umqtt b/deps/umqtt index 08d8e081..44fafa85 160000 --- a/deps/umqtt +++ b/deps/umqtt @@ -1 +1 @@ -Subproject commit 08d8e081aecb3c33d5ed20447c38dabe81f64e26 +Subproject commit 44fafa85c0cec778315aa896994bf2630de198bb diff --git a/jenkins/linux_c.sh b/jenkins/linux_c.sh index 90565ced..93c245fe 100755 --- a/jenkins/linux_c.sh +++ b/jenkins/linux_c.sh @@ -6,6 +6,6 @@ build_root=$(cd "$(dirname "$0")/.." && pwd) cd $build_root # -- C -- -./tools/build.sh --enable-nodejs-binding --enable-java-binding "$@" #-x +./tools/build.sh --run-unittests --enable-nodejs-binding --enable-java-binding "$@" #-x [ $? -eq 0 ] || exit $? \ No newline at end of file diff --git a/jenkins/ubuntu1510_c.sh b/jenkins/ubuntu1510_c.sh index 90565ced..93c245fe 100755 --- a/jenkins/ubuntu1510_c.sh +++ b/jenkins/ubuntu1510_c.sh @@ -6,6 +6,6 @@ build_root=$(cd "$(dirname "$0")/.." && pwd) cd $build_root # -- C -- -./tools/build.sh --enable-nodejs-binding --enable-java-binding "$@" #-x +./tools/build.sh --run-unittests --enable-nodejs-binding --enable-java-binding "$@" #-x [ $? -eq 0 ] || exit $? \ No newline at end of file diff --git a/jenkins/windows_c.cmd b/jenkins/windows_c.cmd index 06717745..b02492c1 100644 --- a/jenkins/windows_c.cmd +++ b/jenkins/windows_c.cmd @@ -44,7 +44,7 @@ REM -- Build first dotnet binding for End2End Test. call build_dotnet.cmd %* if errorlevel 1 goto :reset-java -call build.cmd --run-e2e-tests --enable-nodejs-binding --enable-dotnet-binding --enable-java-binding %* +call build.cmd --run-unittests --run-e2e-tests --enable-nodejs-binding --enable-dotnet-binding --enable-java-binding %* if errorlevel 1 goto :reset-java cd %build-root% diff --git a/modules/azure_functions/CMakeLists.txt b/modules/azure_functions/CMakeLists.txt index 001cb688..8ad1abfe 100644 --- a/modules/azure_functions/CMakeLists.txt +++ b/modules/azure_functions/CMakeLists.txt @@ -32,6 +32,6 @@ if(install_executables) install(TARGETS azure_functions LIBRARY DESTINATION lib) endif() -if(NOT ${skip_unittests}) +if(${run_unittests}) add_subdirectory(tests) endif() \ No newline at end of file diff --git a/modules/ble/CMakeLists.txt b/modules/ble/CMakeLists.txt index 9e284e53..f6d40135 100644 --- a/modules/ble/CMakeLists.txt +++ b/modules/ble/CMakeLists.txt @@ -115,7 +115,7 @@ linkSharedUtil(ble_c2d_static) add_module_to_solution(ble) add_module_to_solution(ble_c2d) -if(NOT ${skip_unittests}) +if(${run_unittests}) add_subdirectory(tests) endif() diff --git a/modules/ble/tests/ble_ut/CMakeLists.txt b/modules/ble/tests/ble_ut/CMakeLists.txt index bef2798e..4d682233 100644 --- a/modules/ble/tests/ble_ut/CMakeLists.txt +++ b/modules/ble/tests/ble_ut/CMakeLists.txt @@ -79,5 +79,7 @@ if(WIN32) rpcrt4 ) install_broker(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) + copy_gateway_dll(${theseTestsName}_exe ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) + endif() endif() diff --git a/modules/dependencies.cmake b/modules/dependencies.cmake index c71749dd..9d1cdac4 100644 --- a/modules/dependencies.cmake +++ b/modules/dependencies.cmake @@ -6,34 +6,34 @@ include("../gatewayFunctions.cmake") ############################################################################### ###########################Find/Install/Build uamqp############################ ############################################################################### -findAndInstall(uamqp ${PROJECT_SOURCE_DIR}/deps/uamqp ${PROJECT_SOURCE_DIR}/deps/uamqp -Duse_installed_dependencies=ON -Dskip_unittests=ON -G "${CMAKE_GENERATOR}") +findAndInstall(uamqp ${PROJECT_SOURCE_DIR}/deps/uamqp ${PROJECT_SOURCE_DIR}/deps/uamqp -Duse_installed_dependencies=ON -G "${CMAKE_GENERATOR}") ############################################################################### ###########################Find/Install/Build umqtt############################ ############################################################################### -findAndInstall(umqtt ${PROJECT_SOURCE_DIR}/deps/umqtt ${PROJECT_SOURCE_DIR}/deps/umqtt -Duse_installed_dependencies=ON -Dskip_unittests=ON -G "${CMAKE_GENERATOR}") +findAndInstall(umqtt ${PROJECT_SOURCE_DIR}/deps/umqtt ${PROJECT_SOURCE_DIR}/deps/umqtt -Duse_installed_dependencies=ON -G "${CMAKE_GENERATOR}") ############################################################################### #######################Find/Install/Build azure_iot_sdks####################### ############################################################################### #The azure_iot_sdks repo requires special treatment. Parson submodule must be initialized. -if(NOT EXISTS ${PROJECT_SOURCE_DIR}/deps/iot-sdk/c/parson/README.md) +if(NOT EXISTS ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c/parson/README.md) execute_process( - COMMAND git submodule update --init ${PROJECT_SOURCE_DIR}/deps/iot-sdk + COMMAND git submodule update --init ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} RESULT_VARIABLE res ) if(${res}) - message(FATAL_ERROR "Error pulling iot-sdk submodule: ${res}") + message(FATAL_ERROR "Error pulling iot-sdk-c submodule: ${res}") endif() execute_process( - COMMAND git submodule update --init c/parson - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/deps/iot-sdk + COMMAND git submodule update --init parson + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c RESULT_VARIABLE res ) if(${res}) message(FATAL_ERROR "Error pulling parson submodule: ${res}") endif() endif() -findAndInstall(azure_iot_sdks ${PROJECT_SOURCE_DIR}/deps/iot-sdk ${PROJECT_SOURCE_DIR}/deps/iot-sdk/c -Duse_installed_dependencies=ON -Duse_openssl=OFF -Dskip_unittests=ON -G "${CMAKE_GENERATOR}") +findAndInstall(azure_iot_sdks ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c -Duse_installed_dependencies=ON -Duse_openssl=OFF -Dbuild_as_shared=ON -Drun_e2e_tests=ON -G "${CMAKE_GENERATOR}") diff --git a/modules/identitymap/CMakeLists.txt b/modules/identitymap/CMakeLists.txt index e28034c4..772d82eb 100644 --- a/modules/identitymap/CMakeLists.txt +++ b/modules/identitymap/CMakeLists.txt @@ -32,6 +32,6 @@ if(install_modules) install(TARGETS identity_map LIBRARY DESTINATION "${LIB_INSTALL_DIR}/modules") endif() -if(NOT ${skip_unittests}) +if(${run_unittests}) add_subdirectory(tests) endif() diff --git a/modules/iothub/CMakeLists.txt b/modules/iothub/CMakeLists.txt index 6a5aadbd..692e0f19 100644 --- a/modules/iothub/CMakeLists.txt +++ b/modules/iothub/CMakeLists.txt @@ -69,7 +69,7 @@ linkSharedUtil(iothub_static) add_module_to_solution(iothub) -if(NOT ${skip_unittests}) +if(${run_unittests}) add_subdirectory(tests) endif() diff --git a/modules/logger/CMakeLists.txt b/modules/logger/CMakeLists.txt index 128ecd03..7a85135d 100644 --- a/modules/logger/CMakeLists.txt +++ b/modules/logger/CMakeLists.txt @@ -36,7 +36,7 @@ linkSharedUtil(logger_static) add_module_to_solution(logger) -if(NOT ${skip_unittests}) +if(${run_unittests}) add_subdirectory(tests) endif() diff --git a/samples/azure_functions_sample/CMakeLists.txt b/samples/azure_functions_sample/CMakeLists.txt index 821c3283..c9aa33ee 100644 --- a/samples/azure_functions_sample/CMakeLists.txt +++ b/samples/azure_functions_sample/CMakeLists.txt @@ -34,5 +34,7 @@ add_dependencies(azure_functions_sample hello_world azure_functions) target_link_libraries(azure_functions_sample gateway) linkSharedUtil(azure_functions_sample) install_broker(azure_functions_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_gateway_dll(azure_functions_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_iothub_client_dll(azure_functions_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) add_sample_to_solution(azure_functions_sample) \ No newline at end of file diff --git a/samples/ble_gateway/CMakeLists.txt b/samples/ble_gateway/CMakeLists.txt index fcd60ba6..f060fc21 100644 --- a/samples/ble_gateway/CMakeLists.txt +++ b/samples/ble_gateway/CMakeLists.txt @@ -34,6 +34,8 @@ add_dependencies(ble_gateway ble ble_printer identity_map logger iothub) linkSharedUtil(ble_gateway) install_broker(ble_gateway ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_gateway_dll(ble_gateway ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) + add_sample_to_solution(ble_gateway) diff --git a/samples/dotnet_binding_sample/CMakeLists.txt b/samples/dotnet_binding_sample/CMakeLists.txt index abe7ad53..5b42828f 100644 --- a/samples/dotnet_binding_sample/CMakeLists.txt +++ b/samples/dotnet_binding_sample/CMakeLists.txt @@ -24,6 +24,7 @@ add_dependencies(dotnet_binding_sample dotnet logger) target_link_libraries(dotnet_binding_sample gateway) linkSharedUtil(dotnet_binding_sample) install_broker(dotnet_binding_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_gateway_dll(dotnet_binding_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) install_binaries(dotnet_binding_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ${dotnet_managed_binding_dll} ) install_binaries(dotnet_binding_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ${dotnet_host_binding_dll} ) install_binaries(dotnet_binding_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ${dotnet_sensor_module_dll} ) diff --git a/samples/experimental/events_sample/CMakeLists.txt b/samples/experimental/events_sample/CMakeLists.txt index 3be07e5e..632897a0 100644 --- a/samples/experimental/events_sample/CMakeLists.txt +++ b/samples/experimental/events_sample/CMakeLists.txt @@ -19,6 +19,8 @@ linkSharedUtil(events_sample) add_dependencies(events_sample hello_world) install_broker(events_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_gateway_dll(events_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_iothub_client_dll(events_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) # add events_sample to non-standard "Experimental" VS project folder for now #add_sample_to_solution(events_sample) diff --git a/samples/hello_world/CMakeLists.txt b/samples/hello_world/CMakeLists.txt index 4a492dea..42397bdc 100644 --- a/samples/hello_world/CMakeLists.txt +++ b/samples/hello_world/CMakeLists.txt @@ -31,5 +31,6 @@ add_dependencies(hello_world_sample hello_world logger) target_link_libraries(hello_world_sample gateway nanomsg) linkSharedUtil(hello_world_sample) install_broker(hello_world_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_gateway_dll(hello_world_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) add_sample_to_solution(hello_world_sample) \ No newline at end of file diff --git a/samples/java_sample/CMakeLists.txt b/samples/java_sample/CMakeLists.txt index 6ddf6089..98457dd8 100644 --- a/samples/java_sample/CMakeLists.txt +++ b/samples/java_sample/CMakeLists.txt @@ -33,6 +33,8 @@ target_link_libraries(java_sample gateway) add_dependencies(java_sample java_module_host logger) linkSharedUtil(java_sample) install_broker(java_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_gateway_dll(java_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_iothub_client_dll(java_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) add_sample_to_solution(java_sample) \ No newline at end of file diff --git a/samples/nodejs_simple_sample/CMakeLists.txt b/samples/nodejs_simple_sample/CMakeLists.txt index 8dccea3b..13828d29 100644 --- a/samples/nodejs_simple_sample/CMakeLists.txt +++ b/samples/nodejs_simple_sample/CMakeLists.txt @@ -36,6 +36,7 @@ add_dependencies(nodejs_simple_sample nodejs_binding logger) linkSharedUtil(nodejs_simple_sample) install_broker(nodejs_simple_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) copy_node_dll(nodejs_simple_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_gateway_dll(nodejs_simple_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) add_sample_to_solution(nodejs_simple_sample) diff --git a/samples/simulated_device_cloud_upload/CMakeLists.txt b/samples/simulated_device_cloud_upload/CMakeLists.txt index 76604e1c..0a7304fa 100644 --- a/samples/simulated_device_cloud_upload/CMakeLists.txt +++ b/samples/simulated_device_cloud_upload/CMakeLists.txt @@ -39,6 +39,8 @@ target_link_libraries(simulated_device_cloud_upload_sample gateway) linkSharedUtil(simulated_device_cloud_upload_sample) linkHttp(simulated_device_cloud_upload_sample) install_broker(simulated_device_cloud_upload_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_gateway_dll(simulated_device_cloud_upload_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) +copy_iothub_client_dll(simulated_device_cloud_upload_sample ${CMAKE_CURRENT_BINARY_DIR}/$(Configuration) ) add_sample_to_solution(simulated_device_cloud_upload_sample) diff --git a/samples/simulated_device_cloud_upload/src/azure-iot-field-gateway-sdk.bb b/samples/simulated_device_cloud_upload/src/azure-iot-field-gateway-sdk.bb index c0b3cb15..f4555458 100644 --- a/samples/simulated_device_cloud_upload/src/azure-iot-field-gateway-sdk.bb +++ b/samples/simulated_device_cloud_upload/src/azure-iot-field-gateway-sdk.bb @@ -2,13 +2,13 @@ DESCRIPTION = "" LICENSE = "MI" SRC_URI = "file:///home/<>/azure-iot-gateway-sdk" -LIC_FILES_CHKSUM = "file:///home/<>/azure-iot-gateway-sdk/deps/iot-sdk/LICENSE;md5=4283671594edec4c13aeb073c219237a" +LIC_FILES_CHKSUM = "file:///home/<>/azure-iot-gateway-sdk/deps/iot-sdk-c/LICENSE;md5=4283671594edec4c13aeb073c219237a" PROVIDES = "azure-iot-gateway-sdk" DEPENDS = "glib-2.0 curl" -EXTRA_OECMAKE = "-Dinstall_executables:BOOL=ON -Drun_as_a_service:BOOL=ON -Dskip_unittests:BOOL=ON" +EXTRA_OECMAKE = "-Dinstall_executables:BOOL=ON -Drun_as_a_service:BOOL=ON -Drun_unittests:BOOL=OFF" S = "${WORKDIR}/home/azure-iot-gateway-sdk" diff --git a/tools/Dockerfile b/tools/Dockerfile index 393758a2..306b9633 100644 --- a/tools/Dockerfile +++ b/tools/Dockerfile @@ -38,5 +38,5 @@ ENTRYPOINT rm -rf /gateway && \ git clone ${GATEWAY_REPO} /gateway && \ git -C /gateway checkout ${COMMIT_ID} && \ git -C /gateway submodule update --init && \ - /gateway/tools/build.sh -rv --enable-java-binding --enable-nodejs-binding && \ + /gateway/tools/build.sh --run-unittests -rv --enable-java-binding --enable-nodejs-binding && \ bash diff --git a/tools/build.cmd b/tools/build.cmd index 1bed4d0c..ed755975 100644 --- a/tools/build.cmd +++ b/tools/build.cmd @@ -22,7 +22,7 @@ rem ---------------------------------------------------------------------------- rem // default build options set build-config=Debug set build-platform=Win32 -set CMAKE_skip_unittests=OFF +set CMAKE_run_unittests=OFF set CMAKE_run_e2e_tests=OFF set CMAKE_enable_dotnet_binding=OFF set enable-java-binding=OFF @@ -34,7 +34,7 @@ set dependency_install_prefix="-Ddependency_install_prefix=%local-install%" if "%1" equ "" goto args-done if "%1" equ "--config" goto arg-build-config if "%1" equ "--platform" goto arg-build-platform -if "%1" equ "--skip-unittests" goto arg-skip-unittests +if "%1" equ "--run-unittests" goto arg-run-unittests if "%1" equ "--run-e2e-tests" goto arg-run-e2e-tests if "%1" equ "--enable-dotnet-binding" goto arg-enable-dotnet-binding if "%1" equ "--enable-java-binding" goto arg-enable-java-binding @@ -56,8 +56,8 @@ if "%1" equ "" call :usage && exit /b 1 set build-platform=%1 goto args-continue -:arg-skip-unittests -set CMAKE_skip_unittests=ON +:arg-run-unittests +set CMAKE_run_unittests=ON goto args-continue :arg-run-e2e-tests @@ -112,18 +112,18 @@ if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL! pushd %cmake-root% if %build-platform% == x64 ( echo ***Running CMAKE for Win64*** - cmake %dependency_install_prefix% -Dskip_unittests:BOOL=%CMAKE_skip_unittests% -Drun_e2e_tests:BOOL=%CMAKE_run_e2e_tests% -Denable_dotnet_binding:BOOL=%CMAKE_enable_dotnet_binding% -Denable_java_binding:BOOL=%enable-java-binding% -Denable_nodejs_binding:BOOL=%enable_nodejs_binding% -Denable_ble_module:BOOL=%CMAKE_enable_ble_module% "%build-root%" -G "Visual Studio 14 Win64" + cmake %dependency_install_prefix% -Drun_unittests:BOOL=%CMAKE_run_unittests% -Drun_e2e_tests:BOOL=%CMAKE_run_e2e_tests% -Denable_dotnet_binding:BOOL=%CMAKE_enable_dotnet_binding% -Denable_java_binding:BOOL=%enable-java-binding% -Denable_nodejs_binding:BOOL=%enable_nodejs_binding% -Denable_ble_module:BOOL=%CMAKE_enable_ble_module% "%build-root%" -G "Visual Studio 14 Win64" if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL! ) else ( echo ***Running CMAKE for Win32*** - cmake %dependency_install_prefix% -Dskip_unittests:BOOL=%CMAKE_skip_unittests% -Drun_e2e_tests:BOOL=%CMAKE_run_e2e_tests% -Denable_dotnet_binding:BOOL=%CMAKE_enable_dotnet_binding% -Denable_java_binding:BOOL=%enable-java-binding% -Denable_nodejs_binding:BOOL=%enable_nodejs_binding% -Denable_ble_module:BOOL=%CMAKE_enable_ble_module% "%build-root%" + cmake %dependency_install_prefix% -Drun_unittests:BOOL=%CMAKE_run_unittests% -Drun_e2e_tests:BOOL=%CMAKE_run_e2e_tests% -Denable_dotnet_binding:BOOL=%CMAKE_enable_dotnet_binding% -Denable_java_binding:BOOL=%enable-java-binding% -Denable_nodejs_binding:BOOL=%enable_nodejs_binding% -Denable_ble_module:BOOL=%CMAKE_enable_ble_module% "%build-root%" if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL! ) msbuild /m /p:Configuration="%build-config%" /p:Platform="%build-platform%" azure_iot_gateway_sdk.sln if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL! -if "%CMAKE_skip_unittests%"=="ON" if "%CMAKE_run_e2e_tests%"=="OFF" goto skip-tests +if "%CMAKE_run_unittests%"=="OFF" if "%CMAKE_run_e2e_tests%"=="OFF" goto skip-tests ctest -C "debug" -V if not !ERRORLEVEL!==0 exit /b !ERRORLEVEL! @@ -141,7 +141,7 @@ echo build.cmd [options] echo options: echo --config value Build configuration (e.g. [Debug], Release) echo --platform value Build platform (e.g. [Win32], x64, ...) -echo --skip-unittests Do not build/run unit tests +echo --run-unittests Build/run unit tests echo --run-e2e-tests Build/run end-to-end tests echo --enable-dotnet-binding Build the .NET binding echo --enable-java-binding Build the Java binding diff --git a/tools/build.sh b/tools/build.sh index 9adcdc84..6ae0306e 100755 --- a/tools/build.sh +++ b/tools/build.sh @@ -8,7 +8,7 @@ build_clean= build_root=$(cd "$(dirname "$0")/.." && pwd) local_install=$build_root/install-deps log_dir=$build_root -skip_unittests=OFF +run_unittests=OFF run_e2e_tests=OFF run_valgrind=0 enable_java_binding=OFF @@ -28,7 +28,7 @@ usage () echo " Example: -cl -O1 -cl ..." echo " -rv, --run-valgrind Execute ctest with valgrind" echo " --toolchain-file Pass CMake a toolchain file for cross-compiling" - echo " --skip-unittests Do not build/run unit tests" + echo " --run-unittests Build/run unit tests" echo " --run-e2e-tests Build/run end-to-end tests" echo " --enable-java-binding Build the Java binding" echo " (JAVA_HOME must be defined in your environment)" @@ -63,7 +63,7 @@ process_args () case "$arg" in "-x" | "--xtrace" ) set -x;; "-c" | "--clean" ) build_clean=1;; - "--skip-unittests" ) skip_unittests=ON;; + "--run-unittests" ) run_unittests=ON;; "--run-e2e-tests" ) run_e2e_tests=ON;; "-cl" | "--compileoption" ) save_next_arg=1;; "-rv" | "--run-valgrind" ) run_valgrind=1;; @@ -124,7 +124,7 @@ cmake $toolchainfile \ $dependency_install_prefix \ -DcompileOption_C:STRING="$extracloptions" \ -DCMAKE_BUILD_TYPE=Debug \ - -Dskip_unittests:BOOL=$skip_unittests \ + -Drun_unittests:BOOL=$run_unittests \ -Drun_e2e_tests:BOOL=$run_e2e_tests \ -Denable_java_binding:BOOL=$enable_java_binding \ -Denable_nodejs_binding:BOOL=$enable_nodejs_binding \ @@ -135,7 +135,7 @@ cmake $toolchainfile \ make --jobs=$CORES -if [[ "$skip_unittests" == "OFF" || "$run_e2e_tests" == "ON" ]] +if [[ "$run_unittests" == "ON" || "$run_e2e_tests" == "ON" ]] then if [[ $run_valgrind == 1 ]] then diff --git a/tools/inteledison_c.sh b/tools/inteledison_c.sh index a0931273..41a116c4 100755 --- a/tools/inteledison_c.sh +++ b/tools/inteledison_c.sh @@ -110,7 +110,7 @@ cmake_root="$build_root"/build rm -r -f "$cmake_root" mkdir -p "$cmake_root" pushd "$cmake_root" -cmake $dependency_install_prefix -DCMAKE_TOOLCHAIN_FILE=$FILE -DCMAKE_BUILD_TYPE=Debug -Drun_e2e_tests:BOOL=OFF -Dskip_unittests:BOOL=ON -Drun_valgrind:BOOL=OFF "$build_root" +cmake $dependency_install_prefix -DCMAKE_TOOLCHAIN_FILE=$FILE -DCMAKE_BUILD_TYPE=Debug -Drun_e2e_tests:BOOL=OFF -Drun_unittests:BOOL=OFF -Drun_valgrind:BOOL=OFF "$build_root" [ $? -eq 0 ] || exit $? make --jobs=$(nproc) diff --git a/tools/windriver_linux_c.sh b/tools/windriver_linux_c.sh index 7c2c70af..38efbd5d 100755 --- a/tools/windriver_linux_c.sh +++ b/tools/windriver_linux_c.sh @@ -107,7 +107,7 @@ cmake_root="$build_root"/build rm -r -f "$cmake_root" mkdir -p "$cmake_root" pushd "$cmake_root" -cmake -Ddependency_install_prefix=$local_install -DCMAKE_BUILD_TYPE=Debug -Dskip_unittests:BOOL=ON -Drun_e2e_tests:BOOL=OFF -Drun_valgrind:BOOL=OFF "$build_root" +cmake -Ddependency_install_prefix=$local_install -DCMAKE_BUILD_TYPE=Debug -Drun_unittests:BOOL=OFF -Drun_e2e_tests:BOOL=OFF -Drun_valgrind:BOOL=OFF "$build_root" [ $? -eq 0 ] || exit $? make --jobs=$(nproc) From fac49ca24c1d67c4a5b8309dd0d4f48a8459dcb8 Mon Sep 17 00:00:00 2001 From: David Robson Date: Tue, 20 Dec 2016 11:00:32 -0800 Subject: [PATCH 02/17] Hide experimental functions from public in DLL. Add comment about linking static lib. --- core/inc/experimental/event_system.h | 14 +++++++------- samples/experimental/events_sample/CMakeLists.txt | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/core/inc/experimental/event_system.h b/core/inc/experimental/event_system.h index 7d15cfb3..01429d64 100644 --- a/core/inc/experimental/event_system.h +++ b/core/inc/experimental/event_system.h @@ -73,10 +73,10 @@ typedef void* GATEWAY_EVENT_CTX; */ typedef void(*GATEWAY_CALLBACK)(GATEWAY_HANDLE gateway, GATEWAY_EVENT event_type, GATEWAY_EVENT_CTX context, void* user_param); -GATEWAY_EXPORT EVENTSYSTEM_HANDLE EventSystem_Init(void); -GATEWAY_EXPORT void EventSystem_AddEventCallback(EVENTSYSTEM_HANDLE event_system, GATEWAY_EVENT event_type, GATEWAY_CALLBACK callback, void* user_param); -GATEWAY_EXPORT void EventSystem_ReportEvent(EVENTSYSTEM_HANDLE event_system, GATEWAY_HANDLE gw, GATEWAY_EVENT event_type); -GATEWAY_EXPORT void EventSystem_Destroy(EVENTSYSTEM_HANDLE event_system); +EVENTSYSTEM_HANDLE EventSystem_Init(void); +void EventSystem_AddEventCallback(EVENTSYSTEM_HANDLE event_system, GATEWAY_EVENT event_type, GATEWAY_CALLBACK callback, void* user_param); +void EventSystem_ReportEvent(EVENTSYSTEM_HANDLE event_system, GATEWAY_HANDLE gw, GATEWAY_EVENT event_type); +void EventSystem_Destroy(EVENTSYSTEM_HANDLE event_system); /** @brief Registers a function to be called on a callback thread when_all * #GATEWAY_EVENT happens @@ -90,7 +90,7 @@ GATEWAY_EXPORT void EventSystem_Destroy(EVENTSYSTEM_HANDLE event_system); * @param user_param User defined parameter that will be later provided * to the called callback */ -GATEWAY_EXPORT void Gateway_AddEventCallback(GATEWAY_HANDLE gw, GATEWAY_EVENT event_type, GATEWAY_CALLBACK callback, void* user_param); +void Gateway_AddEventCallback(GATEWAY_HANDLE gw, GATEWAY_EVENT event_type, GATEWAY_CALLBACK callback, void* user_param); /** @brief Returns a snapshot copy of information about running modules. * @@ -104,14 +104,14 @@ GATEWAY_EXPORT void Gateway_AddEventCallback(GATEWAY_HANDLE gw, GATEWAY_EVENT ev * @return A #VECTOR_HANDLE of pointers to #GATEWAY_MODULE_INFO on success. * NULL on failure. */ -GATEWAY_EXPORT VECTOR_HANDLE Gateway_GetModuleList(GATEWAY_HANDLE gw); +VECTOR_HANDLE Gateway_GetModuleList(GATEWAY_HANDLE gw); /** @brief Destroys the list returned by @c Gateway_GetModuleList * * @param module_list A vector handle as returned from * @c Gateway_GetModuleList */ -GATEWAY_EXPORT void Gateway_DestroyModuleList(VECTOR_HANDLE module_list); +void Gateway_DestroyModuleList(VECTOR_HANDLE module_list); #ifdef __cplusplus } diff --git a/samples/experimental/events_sample/CMakeLists.txt b/samples/experimental/events_sample/CMakeLists.txt index 632897a0..78cc16eb 100644 --- a/samples/experimental/events_sample/CMakeLists.txt +++ b/samples/experimental/events_sample/CMakeLists.txt @@ -14,7 +14,8 @@ include_directories(${IOTHUB_CLIENT_INC_FOLDER} ${GW_INC} ${GW_INC}/experimental add_executable(events_sample ${events_headers} ${events_sources}) -target_link_libraries(events_sample gateway) +#use static library because functions aren't public. +target_link_libraries(events_sample gateway_static) linkSharedUtil(events_sample) add_dependencies(events_sample hello_world) From bc07d072d31ed51262169c93cf539b2affe6e967 Mon Sep 17 00:00:00 2001 From: anhashia Date: Wed, 21 Dec 2016 15:33:25 -0800 Subject: [PATCH 03/17] Added loaders for Linux --- samples/nodejs_simple_sample/README.md | 36 ++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/samples/nodejs_simple_sample/README.md b/samples/nodejs_simple_sample/README.md index 0eb0750d..843aee4b 100644 --- a/samples/nodejs_simple_sample/README.md +++ b/samples/nodejs_simple_sample/README.md @@ -123,12 +123,22 @@ On a terminal windows follow these steps: Here is a sample of the gateway_sample.json file filled: ``` { +"loaders": [ + { + "type": "node", + "name": "node", + "configuration": { + "binding.path": "../../../build/bindings/nodejs/libnodejs_binding.so" + } + } + ], + "modules": [ { "name": "node_printer", "loader": { "name": "node", - "main.path": "./samples/nodejs_simple_sample/nodejs_modules/printer.js" + "main.path": "../../../samples/nodejs_simple_sample/nodejs_modules/printer.js" }, "args": null }, @@ -137,7 +147,7 @@ Here is a sample of the gateway_sample.json file filled: "loader": { "name": "node", "entrypoint": { - "main.path": "./samples/nodejs_simple_sample/nodejs_modules/sensor.js" + "main.path": "../../../samples/nodejs_simple_sample/nodejs_modules/sensor.js" } }, "args": null @@ -147,7 +157,7 @@ Here is a sample of the gateway_sample.json file filled: "loader": { "name": "node", "entrypoint": { - "main.path": "./samples/nodejs_simple_sample/nodejs_modules/iothub_writer.js" + "main.path": "../../../samples/nodejs_simple_sample/nodejs_modules/iothub_writer.js" } }, "args": { @@ -159,7 +169,7 @@ Here is a sample of the gateway_sample.json file filled: "loader": { "name": "native", "entrypoint": { - "module.path": "../../modules/logger/liblogger.so" + "module.path": "../../../build/modules/logger/liblogger.so" } }, "args": { @@ -182,4 +192,20 @@ Here is a sample of the gateway_sample.json file filled: } ] } -``` \ No newline at end of file +``` + +On successful run you should see **sample** output like this + +````` +Gateway is running. Press return to quit. +printer.receive - 47, 33 +printer.receive - 11, 12 +printer.receive - 39, 30 +printer.receive - 30, 21 +printer.receive - 12, 0 + +Gateway is quitting +printer.destroy +sensor.destroy +iothub_writer.destroy +````` From 709238242c2b8c042c14aec7385095b1f65e99c2 Mon Sep 17 00:00:00 2001 From: anhashia Date: Tue, 27 Dec 2016 14:34:53 -0800 Subject: [PATCH 04/17] Update README.md --- samples/nodejs_simple_sample/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/samples/nodejs_simple_sample/README.md b/samples/nodejs_simple_sample/README.md index 843aee4b..cc48b05c 100644 --- a/samples/nodejs_simple_sample/README.md +++ b/samples/nodejs_simple_sample/README.md @@ -138,7 +138,10 @@ Here is a sample of the gateway_sample.json file filled: "name": "node_printer", "loader": { "name": "node", + "entrypoint": { "main.path": "../../../samples/nodejs_simple_sample/nodejs_modules/printer.js" + } + }, "args": null }, From d57265305d8e8a92adc2701de3d7b31820269063 Mon Sep 17 00:00:00 2001 From: anhashia Date: Tue, 27 Dec 2016 14:43:40 -0800 Subject: [PATCH 05/17] Update to gateway_sample_lin.json --- samples/nodejs_simple_sample/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/nodejs_simple_sample/README.md b/samples/nodejs_simple_sample/README.md index cc48b05c..adfcecd6 100644 --- a/samples/nodejs_simple_sample/README.md +++ b/samples/nodejs_simple_sample/README.md @@ -35,7 +35,7 @@ In order to run a gateway with a Node.js module do the following: - Edit file under <\>\samples\nodejs_simple_sample\src\gateway_sample.json - Copy the configuration values from the sample given below. - On folder <\>\build\samples\nodejs_simple_sample\Debug run the following command: -- nodejs_simple_sample ..\..\..\..\samples\nodejs_simple_sample\src\gateway_sample.json +- nodejs_simple_sample ..\..\..\..\samples\nodejs_simple_sample\src\gateway_sample_lin.json ``` { From 17f1c87b07565e805ac575af1c3e64786809f920 Mon Sep 17 00:00:00 2001 From: anhashia Date: Tue, 27 Dec 2016 14:46:16 -0800 Subject: [PATCH 06/17] typo --- samples/nodejs_simple_sample/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/nodejs_simple_sample/README.md b/samples/nodejs_simple_sample/README.md index adfcecd6..fb418973 100644 --- a/samples/nodejs_simple_sample/README.md +++ b/samples/nodejs_simple_sample/README.md @@ -35,7 +35,7 @@ In order to run a gateway with a Node.js module do the following: - Edit file under <\>\samples\nodejs_simple_sample\src\gateway_sample.json - Copy the configuration values from the sample given below. - On folder <\>\build\samples\nodejs_simple_sample\Debug run the following command: -- nodejs_simple_sample ..\..\..\..\samples\nodejs_simple_sample\src\gateway_sample_lin.json +- nodejs_simple_sample ..\..\..\..\samples\nodejs_simple_sample\src\gateway_sample_win.json ``` { @@ -118,7 +118,7 @@ On a terminal windows follow these steps: - Edit file under ~/azure-iot-gateway-sdk/samples/nodejs_simple_sample/src/gateway_sample.json - Copy the configuration values from the sample given below. - On folder ~/azure-iot-gateway-sdk/build/samples/nodejs_simple_sample run the following command: -- ./nodejs_simple_sample ../../../samples/nodejs_simple_sample/src/gateway_sample.json +- ./nodejs_simple_sample ../../../samples/nodejs_simple_sample/src/gateway_sample_lin.json Here is a sample of the gateway_sample.json file filled: ``` From 3059c7e81b73bc9d5fa411be53bb02ba4474a4af Mon Sep 17 00:00:00 2001 From: anhashia Date: Tue, 27 Dec 2016 14:47:49 -0800 Subject: [PATCH 07/17] minor edit --- samples/nodejs_simple_sample/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/samples/nodejs_simple_sample/README.md b/samples/nodejs_simple_sample/README.md index fb418973..e472aeaa 100644 --- a/samples/nodejs_simple_sample/README.md +++ b/samples/nodejs_simple_sample/README.md @@ -141,8 +141,7 @@ Here is a sample of the gateway_sample.json file filled: "entrypoint": { "main.path": "../../../samples/nodejs_simple_sample/nodejs_modules/printer.js" } - - }, + }, "args": null }, { From 664d0d86343cbfb3beb7ce621a20909c926ada00 Mon Sep 17 00:00:00 2001 From: David Robson Date: Tue, 3 Jan 2017 10:26:13 -0800 Subject: [PATCH 08/17] Both dependent submodules now use "build_as_dynamic" as the option to create a shared library. --- core/tests/gateway_e2e/dependencies.cmake | 2 +- deps/iot-sdk-c | 2 +- modules/dependencies.cmake | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/tests/gateway_e2e/dependencies.cmake b/core/tests/gateway_e2e/dependencies.cmake index 699684cf..46805baf 100644 --- a/core/tests/gateway_e2e/dependencies.cmake +++ b/core/tests/gateway_e2e/dependencies.cmake @@ -36,4 +36,4 @@ if(NOT EXISTS ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c/parson/README.md) message(FATAL_ERROR "Error pulling parson submodule: ${res}") endif() endif() -findAndInstall(azure_iot_sdks ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c -Duse_installed_dependencies=ON -Dbuild_as_shared=ON -Drun_e2e_tests=ON -Duse_openssl=OFF -G "${CMAKE_GENERATOR}") +findAndInstall(azure_iot_sdks ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c -Duse_installed_dependencies=ON -Dbuild_as_dynamic=ON -Drun_e2e_tests=ON -Duse_openssl=OFF -G "${CMAKE_GENERATOR}") diff --git a/deps/iot-sdk-c b/deps/iot-sdk-c index a08640f4..9c315d29 160000 --- a/deps/iot-sdk-c +++ b/deps/iot-sdk-c @@ -1 +1 @@ -Subproject commit a08640f4390f65cd8d51d8f435aaed7fd2cc401e +Subproject commit 9c315d29cd16e8391f158cc4221dda7f572cd07a diff --git a/modules/dependencies.cmake b/modules/dependencies.cmake index 9d1cdac4..b7aae45f 100644 --- a/modules/dependencies.cmake +++ b/modules/dependencies.cmake @@ -36,4 +36,4 @@ if(NOT EXISTS ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c/parson/README.md) message(FATAL_ERROR "Error pulling parson submodule: ${res}") endif() endif() -findAndInstall(azure_iot_sdks ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c -Duse_installed_dependencies=ON -Duse_openssl=OFF -Dbuild_as_shared=ON -Drun_e2e_tests=ON -G "${CMAKE_GENERATOR}") +findAndInstall(azure_iot_sdks ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c ${PROJECT_SOURCE_DIR}/deps/iot-sdk-c -Duse_installed_dependencies=ON -Duse_openssl=OFF -Dbuild_as_dynamic=ON -Drun_e2e_tests=ON -G "${CMAKE_GENERATOR}") From 08f073f0874ee1845dfd08269dddc3483a18bad9 Mon Sep 17 00:00:00 2001 From: Rajasekharan Vengalil Date: Tue, 3 Jan 2017 11:42:31 -0800 Subject: [PATCH 09/17] Shallow clone Node.js source from build script --- tools/build_nodejs.cmd | 2 +- tools/build_nodejs.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/build_nodejs.cmd b/tools/build_nodejs.cmd index 4957e20b..4707cc86 100644 --- a/tools/build_nodejs.cmd +++ b/tools/build_nodejs.cmd @@ -21,7 +21,7 @@ mkdir %build-root% pushd %build-root% rem Clone Node.js -git clone -b shared-691 https://github.com/avranju/node.git +git clone -b shared-691 --depth 1 https://github.com/avranju/node.git pushd node rem Build Node.js diff --git a/tools/build_nodejs.sh b/tools/build_nodejs.sh index 0f5b093a..115c066f 100755 --- a/tools/build_nodejs.sh +++ b/tools/build_nodejs.sh @@ -13,7 +13,7 @@ mkdir -p $build_root # build Node.js pushd $build_root -git clone -b shared-691 https://github.com/avranju/node.git +git clone -b shared-691 --depth 1 https://github.com/avranju/node.git pushd node ./configure --shared make -j $(nproc) From 1fc89fc022dba221995d68b58e34771d1246d96d Mon Sep 17 00:00:00 2001 From: Damon Barry Date: Wed, 4 Jan 2017 14:34:37 -0800 Subject: [PATCH 10/17] Document that JSON config file must be ASCII or UTF-8 --- samples/azure_functions_sample/README.md | 2 +- samples/ble_gateway/README.md | 11 ++++++----- samples/hello_world/README.md | 6 +++--- samples/java_sample/README.md | 2 +- samples/simulated_device_cloud_upload/README.md | 4 ++-- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/samples/azure_functions_sample/README.md b/samples/azure_functions_sample/README.md index bb2ab589..f3993565 100644 --- a/samples/azure_functions_sample/README.md +++ b/samples/azure_functions_sample/README.md @@ -42,7 +42,7 @@ Running the sample ------------------ In order to run the sample you'll need to configure the Azure Functions module. -This configuration is provided as JSON. There is a sample JSON file +This configuration is provided as a JSON file, which must be encoded either as ASCII or UTF-8. There is a sample JSON file provided in the repo called `azure_functions_lin.json` for linux or `azure_functions_win.json` for windows. Edit this file and provice the 3 parameters `hostname`, `relativePath` and `key`(optional). diff --git a/samples/ble_gateway/README.md b/samples/ble_gateway/README.md index 74e5063f..1cc81bbd 100644 --- a/samples/ble_gateway/README.md +++ b/samples/ble_gateway/README.md @@ -85,11 +85,12 @@ Running the sample ------------------ In order to bootstrap and run the sample, you'll need to configure each module -that participates in the gateway. This configuration is provided as JSON. All -5 participating modules will need to be configured. There is a sample JSON file -provided in the repo called `gateway_sample.json` which you can use as a -starting point for building your own configuration file. You should find the -file at the path `samples/ble_gateway/src` relative to the root of the repo. +that participates in the gateway. This configuration is provided as a JSON file, +which must be encoded either as ASCII or UTF-8. All 5 participating modules will need +to be configured. There is a sample JSON file provided in the repo called +`gateway_sample.json` which you can use as a starting point for building your +own configuration file. You should find the file at the path +`samples/ble_gateway/src` relative to the root of the repo. In order to run the sample you'll run the `ble_gateway` binary passing the path to the configuration JSON file. The following command assumes that you are diff --git a/samples/hello_world/README.md b/samples/hello_world/README.md index 3aa6c61a..82180efc 100644 --- a/samples/hello_world/README.md +++ b/samples/hello_world/README.md @@ -119,7 +119,7 @@ Linux - build.sh produces its outputs in `azure-iot-gateway-sdk/build`. This is where the two module SOs and executable used in this sample are built. > Note: The logger module is built as `/modules/logger/logger.so`. The hello world module is built as `/modules/hello_world/hello_world.so`. The sample executable is built as `/samples/hello_world/hello_world_sample`. -- The hello_world_sample process takes the path to a JSON configuration file as an argument in the command line. An example JSON file has been provided as part of the repo at `azure-iot-gateway-sdk/samples/hello_world/src/hello_world_win.json' and is copied below. It will work as is unless you have modified the build script to place modules or sample executables in non-default locations. +- The hello_world_sample process takes the path to a JSON configuration file as an argument in the command line. The file must be encoded either as ASCII or UTF-8. An example JSON file has been provided as part of the repo at `azure-iot-gateway-sdk/samples/hello_world/src/hello_world_win.json' and is copied below. It will work as is unless you have modified the build script to place modules or sample executables in non-default locations. > Note: The module paths are relative to the current working directory from where the hello_world_sample executable is launched, not the directory where the executable is located. The sample JSON configuration file is defaults to writing 'log.txt' in your current working directory. ```json @@ -167,7 +167,7 @@ Windows - `build.cmd` produces a folder called `build` in the root repo folder. This is where the two module dlls and executable used in this sample are built. > Note: The logger module is built as `\modules\logger\Debug\logger.dll`. The hello world module is built as `\modules\hello_world\Debug\hello_world.dll`. The sample exe is built as `\samples\hello_world\Debug\hello_world_sample.exe`. -- The hello_world_sample process takes the path to a JSON configuration file as an argument in the command line. An example JSON file has been provided as part of the repo at `azure-iot-gateway-sdk\samples\hello_world\src\hello_world_win.json' and is copied below. It will work as is unless you have modified the build script to place modules or sample executables in non-default locations. +- The hello_world_sample process takes the path to a JSON configuration file as an argument in the command line. The file must be encoded either as ASCII or UTF-8. An example JSON file has been provided as part of the repo at `azure-iot-gateway-sdk\samples\hello_world\src\hello_world_win.json' and is copied below. It will work as is unless you have modified the build script to place modules or sample executables in non-default locations. > Note: The module paths are relative to the directory where the hello_world_sample.exe is located. The sample JSON configuration file is defaults to writing 'log.txt' in your current working directory. ```json @@ -245,7 +245,7 @@ Below is an example of typical output that is written to the log file when the H The gateway process needs to be written by the developer. This a program which creates internal infrastructure (e.g. the broker), loads the correct modules, and sets everything up to function correctly. The SDK provides the `Gateway_CreateFromJson` function which allows developers to bootstrap a gateway from a JSON file. -`Gateway_CreateFromJson` deals with creating internal infrastructure (e.g. the broker), loading modules, and setting everything up to function correctly. All the developer needs to do is provide this function with the path to a JSON file specifying what modules they want loaded and links to guide the broker to send messages to the correct module. +`Gateway_CreateFromJson` deals with creating internal infrastructure (e.g. the broker), loading modules, and setting everything up to function correctly. All the developer needs to do is provide this function with the path to a JSON file specifying what modules they want loaded and links to guide the broker to send messages to the correct module. The configuration file must be encoded either as ASCII or UTF-8. The code for the Hello World sample's gateway process is contained in [`samples/hello_world/main.c`](./src/main.c) A slightly abbreviated version of that code is copied below. This very short program just creates a gateway and then waits for the ENTER key to be pressed before it tears down the gateway. diff --git a/samples/java_sample/README.md b/samples/java_sample/README.md index 87196896..e4342329 100644 --- a/samples/java_sample/README.md +++ b/samples/java_sample/README.md @@ -59,7 +59,7 @@ Creating a Java module is easy: - **JSON Configuration** - A gateway is configured using a JSON configuration file. As a reference, you can see the JSON configuration file located [here](./src/java_sample_win.json). + A gateway is configured using a JSON configuration file. The file must be encoded either as ASCII or UTF-8. As a reference, you can see the JSON configuration file located [here](./src/java_sample_win.json). ```json { diff --git a/samples/simulated_device_cloud_upload/README.md b/samples/simulated_device_cloud_upload/README.md index 8757495a..b671a0a1 100644 --- a/samples/simulated_device_cloud_upload/README.md +++ b/samples/simulated_device_cloud_upload/README.md @@ -84,7 +84,7 @@ match the ids of the two devices you added to your IoT hub, and that the `device - Run `$ ./samples/simulated_device_cloud_upload/simulated_device_cloud_upload_sample ` ->Note: The simulated device cloud upload process takes the path to a JSON configuration file as an argument in the command line. An example JSON file has been provided as part of the repo at `azure-iot-gateway-sdk/samples/simulated_device_cloud_upload/src/simulated_device_cloud_upload_lin.json'. +>Note: The simulated device cloud upload process takes the path to a JSON configuration file as an argument in the command line. The file must be encoded either as ASCII or UTF-8. An example JSON file has been provided as part of the repo at `azure-iot-gateway-sdk/samples/simulated_device_cloud_upload/src/simulated_device_cloud_upload_lin.json'. Windows @@ -110,5 +110,5 @@ match the ids of the two devices you added to your IoT hub, and that the `device - Run `.\simulated_device_cloud_upload_sample.exe ` ->Note: The simulated device cloud upload process takes the path to a JSON configuration file as an argument in the command line. An example JSON file has been provided as part of the repo at `azure-iot-gateway-sdk\samples\simulated_device_cloud_upload\src\simulated_device_cloud_upload_win.json'. +>Note: The simulated device cloud upload process takes the path to a JSON configuration file as an argument in the command line. The file must be encoded either as ASCII or UTF-8. An example JSON file has been provided as part of the repo at `azure-iot-gateway-sdk\samples\simulated_device_cloud_upload\src\simulated_device_cloud_upload_win.json'. From b38f2a7091062d066f62c7b526089b7ebe3b7804 Mon Sep 17 00:00:00 2001 From: Rajasekharan Vengalil Date: Fri, 6 Jan 2017 14:40:17 -0800 Subject: [PATCH 11/17] Fix leak in Node.js binding while copying message contents --- bindings/nodejs/src/nodejs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bindings/nodejs/src/nodejs.cpp b/bindings/nodejs/src/nodejs.cpp index ce2def6a..779e4a5c 100644 --- a/bindings/nodejs/src/nodejs.cpp +++ b/bindings/nodejs/src/nodejs.cpp @@ -467,9 +467,9 @@ static unsigned char* copy_contents( if (copied != *psize) { LogError("CopyContents failed"); + free((void*)result); result = NULL; *psize = 0; - free((void*)result); } } } From bd41ae3d57af7d1274cbd8f8e5747f96edda7095 Mon Sep 17 00:00:00 2001 From: andrew-buckley Date: Tue, 10 Jan 2017 10:13:33 -0800 Subject: [PATCH 12/17] Updates documentation to address #89. --- samples/java_sample/README.md | 76 ++++++++++++++++-------- samples/java_sample/java_devbox_setup.md | 21 +------ 2 files changed, 53 insertions(+), 44 deletions(-) diff --git a/samples/java_sample/README.md b/samples/java_sample/README.md index e4342329..994db768 100644 --- a/samples/java_sample/README.md +++ b/samples/java_sample/README.md @@ -63,24 +63,38 @@ Creating a Java module is easy: ```json { - "module name": "<>", - "module path": "<>", - "args": { - "class_path": "<>", - "library_path": "<>", - "class_name": "<>", - "args": <>, - "jvm_options": { - "version": <>, - "debug": [true | false], - "debug_port": <>, - "verbose": [true | false], - "additional_options": [ - "<>" - ] + "loaders": [ + { + "type": "java", + "name": "java", + "configuration":{ + "jvm.options":{ + "library.path": "<>", + "version": <>, + "debug": [true | false], + "debug_port": <>, + "verbose": [true | false], + "additional_options": [ + "<>" + ] + } + } + } - } - } + ], + "modules": [ + { + "name": "<>", + "loader":{ + "name": "java", + "entrypoint": { + "class.name": "<>", + "class.path": "<>" + } + }, + "args": <> + } + } ``` According to [Java documentation](https://docs.oracle.com/javase/tutorial/essential/environment/paths.html) one may also set the CLASSPATH environment @@ -92,16 +106,30 @@ Creating a Java module is easy: ```json { - "jvm_options": { - "version": 4, - "debug": false, - "debug_port": 9876, - "verbose": false, - "additional_options": null - } + ... + "jvm.options": { + "library.path": "<>", + "version": 5, + "debug": false, + "debug_port": 9876, + "verbose": false, + "additional_options": null + } + ... } ``` + **Note:** The default search locations are as follows: + + On Windows: + + %PROGRAMFILES%\azure_iot_gateway_sdk-{version}\lib\modules\java_module_host.dll + %PROGRAMFILES(x86)%\azure_iot_gateway_sdk-{version}\lib\modules\java_module_host.dll + + On Linux: + + /usr/local/lib/modules/java_module_host.so + **Note:** Since the JVM is only loaded once, the full classpath must be set and be the same across all module in a configuration. Similar to the "jvm_options" section, if the classpath differs across configuration, creation will fail. diff --git a/samples/java_sample/java_devbox_setup.md b/samples/java_sample/java_devbox_setup.md index 0080a4b4..9aeb8898 100644 --- a/samples/java_sample/java_devbox_setup.md +++ b/samples/java_sample/java_devbox_setup.md @@ -6,7 +6,6 @@ This document describes how to prepare your development environment to use the * - [Maven 3](#installmaven) - [Azure IoT Gateway SDK for Java](#installgw) - [Build from source](#installgwsource) - - [Include using Maven](#installgwmaven) - [Application Samples](#samplecode) @@ -112,29 +111,11 @@ Open a command prompt and use the following commands for the steps above: The compiled JAR file with all dependencies bundled in can then be found at: ``` -{IoT gateway SDK root}/bindings/java/gateway-java-binding/target/gateway-java-binding-{version}-with-deps.jar +{IoT gateway SDK root}/bindings/java/gateway-java-binding/target/gateway-java-binding-{version}.jar ``` When you're ready to build your own module in Java, include this JAR file in your project to get the interfaces and classes that you need. - -### Get the Java binding for the Azure IoT Gateway SDK from Maven (as a dependency) -_This is the recommended method of including the Azure IoT Gateway SDK in your project, however this method will only work if your project is a Maven project_ - -_For a guide on creating a maven project, see here: https://maven.apache.org/guides/getting-started/ _ - -- Navigate to http://search.maven.org, search for **com.microsoft.azure.gateway** and take note of the latest version number (or the version number of whichever version of the sdk you desire to use). - -In your main pom.xml file, add the Azure IoT Gateway SDK Java binding as a dependency using your desired version as follows: -``` - - com.microsoft.azure.gateway - gateway-java-binding - 1.0.0 - - -``` - ## Sample applications From 899eb5bdd334234b7e8e882159392585c0aa9a36 Mon Sep 17 00:00:00 2001 From: David Robson Date: Tue, 10 Jan 2017 15:25:36 -0800 Subject: [PATCH 13/17] Fixes to possibly improve cross-compile. CMake: don't create an imported target if the compiler can find it in /usr/lib. The cross compile hates this. --- dependencies.cmake | 28 +++++++++++++++++++++------- gatewayFunctions.cmake | 6 ++++++ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/dependencies.cmake b/dependencies.cmake index afcba14a..7b85541e 100644 --- a/dependencies.cmake +++ b/dependencies.cmake @@ -55,6 +55,7 @@ else() #If earlier cmake if("${CMAKE_VERSION}" VERSION_GREATER 3.0.2) pkg_search_module(NANOMSG REQUIRED nanomsg) + set (NANOMSG_LIB_LOCATION "${NANOMSG_LIBDIR}/lib${NANOMSG_LIBRARIES}.so") else() if(DEFINED ${dependency_install_prefix}) set(NANOMSG_INCLUDEDIR "${dependency_install_prefix}/include") @@ -65,19 +66,32 @@ else() pkg_search_module(NANOMSG REQUIRED nanomsg) set(NANOMSG_LIBRARY_DIRS "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") endif() + set (NANOMSG_LIB_LOCATION "${NANOMSG_LIBRARY_DIRS}/lib${NANOMSG_LIBRARIES}.so") + endif() - add_library(nanomsg STATIC IMPORTED) - set(NANOMSG_INCLUDES "${NANOMSG_INCLUDEDIR}" CACHE INTERNAL "") - message(STATUS "NANOMSG LIBRARIES: ${NANOMSG_LIBRARIES}") - message(STATUS "NANOMSG LDFLAGS: ${NANOMSG_LDFLAGS}") - message(STATUS "NANOMSG CFLAGS: ${NANOMSG_CFLAGS}") - set_target_properties(nanomsg PROPERTIES + if (NOT NANOMSG_LIBDIR STREQUAL "/usr/lib") + # There seems to be a problem in CMake if nanomsg is found in the system + # default location when cross compiling. If it's anywhere + # else, we can create a imported target for it. (Actually, this might + # fail for any cross compile where nanomsg points to a system directory, + # so this might need to be refined as we find edge cases) + add_library(nanomsg SHARED IMPORTED) + + set_target_properties(nanomsg PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${NANOMSG_INCLUDEDIR}" INTERFACE_LINK_LIBRARIES "${NANOMSG_LIBRARIES}" INTERFACE_COMPILE_OPTIONS "${NANOMSG_LDFLAGS}" - IMPORTED_LOCATION "${NANOMSG_LIBRARY_DIRS}/lib${NANOMSG_LIBRARIES}.so" + IMPORTED_LOCATION "${NANOMSG_LIB_LOCATION}" ) + message(STATUS "NANOMSG LIBRARIES: ${NANOMSG_LIBRARIES}") + message(STATUS "NANOMSG LDFLAGS: ${NANOMSG_LDFLAGS}") + message(STATUS "NANOMSG CFLAGS: ${NANOMSG_CFLAGS}") + message(STATUS "NANOMSG LOCATION: ${NANOMSG_LIB_LOCATION}") + endif() + set(NANOMSG_INCLUDES "${NANOMSG_INCLUDEDIR}" CACHE INTERNAL "") + + endif() ############################################################################### diff --git a/gatewayFunctions.cmake b/gatewayFunctions.cmake index 2df949ad..aea1fbf4 100644 --- a/gatewayFunctions.cmake +++ b/gatewayFunctions.cmake @@ -34,6 +34,9 @@ function(findAndInstallNonFindPkg libraryName submoduleRootDirectory cmakeRootDi if(DEFINED ${dependency_install_prefix}) set(CMD ${CMD} -DCMAKE_INSTALL_PREFIX=${dependency_install_prefix}) endif() + if(CMAKE_TOOLCHAIN_FILE) + set( CMD ${CMD} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) + endif() set(CMD ${CMD} ../) file(MAKE_DIRECTORY ${cmakeRootDirectory}/build) @@ -92,6 +95,9 @@ function(findAndInstall libraryName submoduleRootDirectory cmakeRootDirectory) if(DEFINED ${dependency_install_prefix}) set(CMD ${CMD} -DCMAKE_INSTALL_PREFIX=${dependency_install_prefix}) endif() + if(CMAKE_TOOLCHAIN_FILE) + set( CMD ${CMD} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}) + endif() set(CMD ${CMD} ../) file(MAKE_DIRECTORY ${cmakeRootDirectory}/build) From 9a0bbf45869a144835b5f4df29993ee7e72d7c39 Mon Sep 17 00:00:00 2001 From: Angelo Ribeiro Date: Tue, 10 Jan 2017 15:45:45 -0800 Subject: [PATCH 14/17] Creating High Level Design for .NET Core Binding. --- bindings/dotnet/devdoc/dotnet_binding_hld.md | 7 +- bindings/dotnet/devdoc/images/flow_chart.png | Bin 57592 -> 51412 bytes .../dotnet/devdoc/images/overall-design.png | Bin 43561 -> 46461 bytes .../devdoc/resources/dotnetbiding-hld.vsdx | Bin 47055 -> 46782 bytes .../devdoc/dotnet_core_binding_hld.md | 218 ++++++++++++++++++ .../dotnetcore/devdoc/images/flow_chart.png | Bin 0 -> 71831 bytes .../devdoc/images/overall-design.png | Bin 0 -> 45065 bytes .../resources/dotnet-core-biding-hld.vsdx | Bin 0 -> 49535 bytes 8 files changed, 222 insertions(+), 3 deletions(-) create mode 100644 bindings/dotnetcore/devdoc/dotnet_core_binding_hld.md create mode 100644 bindings/dotnetcore/devdoc/images/flow_chart.png create mode 100644 bindings/dotnetcore/devdoc/images/overall-design.png create mode 100644 bindings/dotnetcore/devdoc/resources/dotnet-core-biding-hld.vsdx diff --git a/bindings/dotnet/devdoc/dotnet_binding_hld.md b/bindings/dotnet/devdoc/dotnet_binding_hld.md index 85f65dd0..317199b6 100644 --- a/bindings/dotnet/devdoc/dotnet_binding_hld.md +++ b/bindings/dotnet/devdoc/dotnet_binding_hld.md @@ -46,12 +46,13 @@ The JSON configuration for .NET Module will be similar to the configuration for } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -1. `loader->name` is the name of the module created (.NET Module) that will be stored by the gateway and used internally; +1. `name` is the name of the module created (.NET Module) that will be stored by the gateway and used internally; 2. `loader` is the configuration specifically for the .NET Loader. - 2.1 `loader->assembly_name`: place where the .NET module is located; - 2.2 `loader->entry_type`: class that implements `IGatewayModule`; + 2.1 `loader->assembly.name`: Name of the managed assembly that contains the module implementation; + + 2.2 `loader->entry.type`: Fully qualified name of the managed class that implements `IGatewayModule`; 3. `args` The value of this property is used to supply configuration information specific to a given .NET module. The value is passed as a byte[] to .NET module and it shall be converted as a UTF-8 String; diff --git a/bindings/dotnet/devdoc/images/flow_chart.png b/bindings/dotnet/devdoc/images/flow_chart.png index 2bd5dd456e23142d8c641a319039c0aaf5802ec9..22ca1703650e389bcbe534db02afde11dac61e5f 100644 GIT binary patch literal 51412 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

-Gl>fgM+w{T=4Z1`QLc%eU}Ie_0?w9;Uz(H3EHhgP zdFPu^&-(cIp_&axaq2!X?z)!*Db+Y>RSPFkO8F9)i)G1A9k`A1+amVqUrg6MC2w_V!s4LC#!t{ zX^}{#{;JRk3GTkRKXzk5F}0w}SYae*j|7C_Q<@XM%NeUPzTlbsy4ZQ2Q(#(F^Ao=J zWuNH5)d3-Us>n!Y4}}*)VJ7(sq^t9c6HN6#?93x7#q`;!BNRw!>Kr>UB;fz2MBe+p zE1jnEeVe6Q^5Hb8*hJbC{yI+u)SSNfDvkI8wJ(!n;O1zeEw8SxQYtkCBpGy=&(gnG zXbh`Pt{OWXCruuPdOLOkHkSC4zokhh#V(KAVa^1X+(4ozNvxjitwcdyJ)QChg~L3H zAL*Fok_@#PEzw4>Wy#wFLB_iP!x14nrn0%49@Ie$pSy`c7C(|H3SvNldT!5;O^j2f zX|FN}yGO#(a*Sq;tC1Dt5j>OrXY@a_P$B+i?izn3*(lTTzDjtvd`p15B=@@;Y8Hg- zhGmTY=gKNw2orbPDqhMpTI{sRksBLRx`gD_IbnX#xjYT{^Dfkdm#!cA`R1mM;=9AE!C{;;qk5f7W1NgAmD0!0@T8Zlz9wKa()jWTlydB zeBT>}zBra@#8ZTEPEO^OH_>{*=OA`-@>sn*d=+2$up1Hr zyuv3hiWd6~%1=pWc7H-nBtNN>`Qz^nfA<~6UxpK&G!m-+b!6!{L#hOQ$aZ<<7$Wb{ zR5%J-Gd~mJRAp~}Z&jQoWiQ3O@UUVk1?ViP{z>`Dqeng5j=5xj@5d9C-Bx-Jt`}im z)t5}L(pEmU-jf5U#C1`(pj;L|t#Mjt5sMp^7~(+-I@8vrmv959i*cfWJ-q+u{6F*4LcHmtU99VEM=&+@S?>!5u?WeKJ+agA zVY&&?831Z(98nWd_DF#=&FH6;u5&^R<1`z7T^^X;0HQQW0Qo&~vk8Hcq7NBhcaMk3 zx`(qWbFy*uxOqtoL&~B;(+W1&2v@P9>8518cV4K21=7>Enqh_Ux0>FTZoBjb%zHEF zhe4d~wN{TBF0$c8iP$5y$O3`Q)lmU3i?E9R2KC~!Mn#?>*)0(bX74HCYC{Y}lGeIw z5;yqXZ-)9%|FL=E$-Ys-sp0wlji#9DJiuyc?Q>m)M*r7f)}}%C#%=BgrEKWjqzz@P zUvP#eRTRc&X^QRLG~kRRI$|o02&!^^Tb&FUT$3^rQZckBQb;eH;|I=F1=HWFG1T5N zrAsts=#-0guei1fto{~(1rF~pG}fSzeiB%uIqUThQ~8RigI_rJ^qa!TlNoz&US3A! z@~Y#@bx8}PJrh8_(B(vx%;nCE!@c?@WufS&d5?p_?4~mEkKvu|12TVf&{t=|Q64ayH7EZ)~s4rqDMv*Eke-karn#~q;B^8FdX z5a-movowvUGzn8Mm%$w4#JdQ#Ze`A)HR{msKmmLCx!s$J5usf@^_CZw-kron?$Pw| zM8sTObB`c`!+E4xZmc)Xoa!=Mjp`O(j+%!>MO0LuTc{NC7QG(oHD^ua8 zhY|H2uX72+05lr$S~9L^*ECr=zpw`FYAQ&5_Jmt)qYJhOWT!XDaXa^L1KdurK@YEx zOk6JFT1%hER3Upqd@23wF-DmG6F`=H%Xc$B!S0*q{k_W%KKB=6z*PPP6k65s+RB<9 z@`B9GM(Kj5Ul(byfTYHO-I8XC*<1`eZgZ1e*3;f3L!?ogd~5 z>9#f#N|!af*VcD*o7^K?i;>F{e)*IAKBYX8wkfQ)fXGOgZrEDVb$2>RdmtDtWQHl< z`pd!P)35#m$aMiw6#=Lpu(jlM)V1THmTi8EWii4D_$3l`%TC zvJCgVlI2v_qbUuSlJPx9<2skY!kcLquWt$_dt!Ta!$af)2mLNa$IjI6DzxkB-9&?w z@QF5o>saSMTC47_Opuyh*`+%(AHGLNp2e#K9j`rqT~fZQZu>3Z3^eu3%B|!@W4+>+ zwQui}>Wy?TNQ#i8+t|D)U^*3Bm<}mRXy;~?7 z&u=Uo_B&Z_olgo?-rcIE5w=N7SocrOW6wLk0}rALRDwR}658 zc(h^jFu8*p7UpvfdFOMyA4s6atT6I)4+@8r|%1GM?=!=?AzQ-Xt|v!@VQ-7^0C`4Y1MVT%7AYB`#{gfz)hz^9Y3$| z@$>X;Qh8YT>{pxD=$7N}O-}CB@Rz-ePZlb=t0abH<^Z+_l8+UXd82ny0_ii`p8WVj zWFv$v17qWU(pOu!AydP$ZREq3av}*s0-u2mQWkT^AH9Wnxu8PZ^@Fy(o}3p7!1M(M zKcTGY?7SbSu*_}xa4)y)vppjEAdmOo_X@v3e}^mwh`_SOp|%YqOv#r-SXt5=C-Zz@y=`T` zVvz+Gi+PVUrwI;mky=qqEi{^C)VE&se zz`qUHs!9KB)kuqyV=o0C`s=)Hx6^#=fZ{lF)_|X{Ru5#RJQzlj*F}@n@(aCrS7MWo zlo^?V%ArVqx3EU3v*-o+r0H3L;{de+R*3IAuUMt>t7#*3z}0hryKygezH;*NZrBsZ zad7>aGRA;B(Z+kn1uNCRax?_&W>SM=lFhVkwO|DCxkb`c3CD2 zFsbW|iypD>M&t}^v_DW{8Xj_${w9;p|euy zVzy$+r!~_VZPSBd_)l%lIF<-qJy-+8S=crxD0DzkbGl?A)Nozu!~~Am%aj}D;H(yQ zhh8zidbQ=UhTH}@mkhy0_PPtwsF!}?@^zt0s2?3}uM91xeI1JK#{EeJ&3ivB1YTsC zYt}}zvEPp`Iik+(V0=C7tkp&!?^hiL!u3&d*1gGo-SUBeJcyFE zxm&qFt*&jCmUoonC)#T=+?{rg7rwik6id&}6^W3?_1EpI$HiY#4~Q;y!nQ5oa1c3+ zKcDvxO*9DBoByU0EIcu~r)C;ggb;Jh%%`X))wUXy&{bzBBh5hve?|XA@*U^C& zdV@X%7lL2)eOy%?;>}BEU&VU++TSXZ09OH3Fus6!_@ID32ishPAwv8OL&Vcr7?5#q zLD>D)6S+$nWT2IS8X1*%w>V#M==CHO#pMX$Eh%?(3dfj^catQiS2SRpFxOzFD$EQg zUP%kw)esUQRufFMMWOql`+XY~=2Po>$%Q%%w=Ejy)Mhd+{+%QWZAp5g^9PMOa^eqK zvntZ?^8&aayKEm}D~d4o8O~oKd#BbFlo1MzZ;z)~y?vgMw7DDpcx8#!)`9s?YfBh` z)*8(^FpH4na0nR%)kO~P^J!lnw1-2YIOug?Qz(P`IP|S5Uq?^df!v*vo^u_9@#0lo zxZ98jTf#8v+_^VZ(s8k&RPKnkN-C{T5W>^h;&GDb^uqJKneZ3?et*e;0hl>a&08WH zdIk`hP!Ta{vk``k2ai6BL`W51d5WJ7gMZPS&+eTfz6zi0m$<`qt)AO(tO>G~4|(?O zvl#W)&tf41BkZhaDU01%TWDafGSGJ7XZ$C+o%t8D0cWi`|Q#NGaHM<&C!-zRnSSOBP zrG7P!@t}k0w4`?N&F$V_6X}+-lw2W6L_We-hm>cS{*TcwbI}jrvU5l!%&|zUBNUOMvw@GfBeS|D_q!YJf^{l z_?*I(ExNlxop?EKo!ChCPJ8dG$&H)lFNpVZN#Yce<|1&C<^ey@JyU&75?0g4yYpP8 zTJztxW}Tj4nT~1FcgfgQN_>%MdO+Idq#P$TN0Z(k!(y{J#!UjnE>gcv&Mk*WL=TSm zV z1{ZpJx}Ptu86Kq*${B`oU9O-g^99!AaAe{wI?JQ<*t0)1(vmqb^oufebVumV)K2n^I%^p0Y@Ji#y}Ifc z7EE=smZRZ*&EuA3R|;|y-2O{HN4SMFGZLfAFx}^Q=*pVYCX9Q7rcu z*w14j2#({ZF+`BH1wK}Xow1FDJSB1SbL7YX_5N+-<{vPRQPi*lL{a-1KQ|bxNbmiM z@ScX5qH9hBye*0Zyc3)e89EV@5b#ijcD=p5*{5cqkeX2MkuY>%R#SgXkp*VRSRm8ueP^@m7JS75FZSjxXi&!A;#U8DTxso|Yr&?t|r=Yn4 z9?q*43#oqo_t*Ju=gup(?&yFO>)pMWb?MPJ-q{R@wtA};wKA7znO_$t=J+fX zYqx4QvZ*!tPOH4&-olqJUH-J&vL{F&)}aSFnehLHIGaXZV1Lvdne4QjW6xr2=yP$G za<&JObCfGBEK?7B3Uue6_vB*Jz(jSF`jX&Dw-p_8Iys}4_rYbt@_?6Yc} zURYHbX{zAWmBB`l=46@8pjI=d$A$A94iAn{F-Lnph{Y;rE_W3z4bQ{s2_jWtIN1wfy!R)%@U>2GHAo40dDuQC( z$Wi6o{352}Lpp67*73A|w-MOWGx2Tfke*b{R8nOV1o;N@hTyyyn{U zD~2r!gt18Ec(PX#JDYqt;`$qfvPYOdFc$nvYTngley20FeNuNtXBVG?(t$bkh?(Gl z@jg&jS6@(u;!1RCV&XkafN$3?-38CA&;m(6zt>uNn*_@;+CY9tV^PepBV#^e)Qo56 zw1nhsd2NBZ&S-bkyYyK_(!2?X30{^c>ldx%b(x>VP##x^$H1*N)VDKNf(|HYhQV*0 zLR*S(@-s2R3dUS_h1v-Kqia37n4L&o>iqGL_tn=s$6{3FG0$Huw&y0|M&}F8qqsOy z*khKnO(E!T^d6}5T5z{9zs6~fDPT8_B7~SncgAEfapF%^^37X~r}f3|vf zo}aYH<2k8I^TEX#z`#Y~;KB_BP`y;m>o6pB#tnStc`k<5K+iUc$QN-e4E;KZekajs|@AH)(7LXca`uVHsgMd}Be=?rOFZ=Z4N_SR?CWFb+J3V)M_o z#>l!1`(dp|R1qGG2)XuH-J$uKF!|Sma7SGK>Qg3pz7PkZz3JY`>B-rRDHxMRVXOOv zTG{0D3H4xv?8L0^mX2cAp~ZxD1q5$Oel}!8hSKutUws;m#JHs`{$Z zCdkEy>zBLilro7S?JMj*AKHumvMX*&0U>zhojaRM1{t43s}iQ6z-w5JduKv;|8q3h z38tWHoe^WHu9L9a<{2*dV43C{?WfYF$8QsCkQ!Hz-qV>G@H4ja?WG8MchVvaYix-E z(76Mc#IN35$7!NqoexFEjng5YfoE?>efH1;JBG4}FOsIqL^hBrK_nwG#I4Z$C^8GElLMzBMVDum1Xhh0|v zlhuMDW;=^co?|!?;i~?$U%@CSmGQpMV1;KE@KMQaFXWyrGOT26j+tR-- zItkzK`wl7EZ)C3knwKPK_8o1AovE;-S{hB|vF}1;*?R!|Q*&6idQ6-u+vaX6b5O=LL&)V;Q>NQ7r7_E+xF>PnU z7y3Q3#m#l*)FxY{r~)2$b|f?Ap#WCfMgge)$&dQg@#Tv!&=WpJRv0g&i_M&LiTO8L zT!>YxhT9bK(Yc)FQH?o^aC-qburmaScUUC+eTr(hdAt8kN*|S2W)TLi`z%`cHDvWHG%?s3$Fq&0jHVvz? z!hplcRuxn5i9DG}pqP}f7Pn`>q(!M7;JCZC6|MiKW_%#4=?bq6t2*69p_+PxJ^{Sg$k;1Ea z587N{CkENyP%ltbgdXo7JRrb9Kc=kWv{zkPNp5W1;~8@Zp#UqZ(MMx2Ltu#iyw&37 zFH@HFBv|s$KA|Xh~8=m8^W-en@K)%Z5FrWoh1A9Y_3A22!^$e zttnD1!|H1v2cevnI~=%jhm1kTN;_;B=`P|<_yc0oO`!PrOp_^?=D~TUfuC1wFDhC7 zmiQQ#d#-0TTiA~oG;ayJwCeHJl`Fv(9o4LP?A*K8qFar4VfS->&mZd2s1w_I)iI0B)#Yc-_{ujz!v1wTHo!uQ6 zsAykZk*|1=J7>tk{$Cgsz{t_v>tR_0K~f5JPbmfd1z;claZIbh(TyGqazdjR^Zyr0 zj$d@Fx3JQ;YpH$B<)+Z;N-MG(ZHq0`H9GkG5w661Y~69UpPaAh);vS2+afsMf(;NS z#bFi-dEG$t&&YiD7{9>0LLblq(CKOSwBg#?nYj7b*}GH#Z~}-H`yIFcAJl2x@XIOX z9oJ?dwCR0HVk#(&akFS zVW0HZD@brE(DBU3$6fvLG;_G**gW!PQpo&#;79kFaCZ^+X4zt)mqX(vhK^c2&>5DC z4c-?Hob+pV3egjY_+Ri?7>a%^r1nQ**Ugp2v!4>s*{KQuAr{??lPiFU|cm=|1Q?VDo$d)b|xx-hVNRr!fHB16Oj ze&cWS{`<%#03Y!=*X248ONvgA)N9i}Ne%OP4#Q{K{vzd`z66C&YvbLar`txxj)lCu zfzvh$nIqi-RRBPKREb->-1-(wHdn4MJYgn9O!u{{469WAXu&jL#UHtyt{$zw-NA6) z;fAyx!p2$AN$|fz*>uhEqLr&Q*rbSv>+OrJynQ1jHG6#J_gA6Z~a*y=fI?OWB zb$AoEnfq(lv}_Lk1Fo%E!JM}VgEHEZ@DK^4j85j4uJ%67d5}FoWay%-!^6R@3r!BH zK%i7;q;IHRBx+*=Bn|Ss zRAdPFoFE~hq&E}l6y+bzemaN`Sn$f3&waO83vf8;GXW`qS{s3&8Qd7P+90@8{XB+3 z@i?s>L(uuhtEN8#Uk)J0B!0! zeT^nOpiiOIb~u(*Xv+yAi6oU|Km^qTu_r|MpT;X_YAwv@dj0YrYiGZ?m={)=s0n1i z(18!NTt-E3CJarOb`+wFyIW)elUA7_#Ow@dkfj*Nel*s4Oe22eX!CoUfHe?h2{L-I z(v`;%Z|z_pr8(eaMs{! zSkfPMMTRg9>cMF^M9E*~K%K<|_>3Cr(oZ^h?)_DzuGy4t&i!EpmBHO*Xb^E_zvuHX zbl%~dL`V^B?*d`-?__QoM9uWC{=%Fm&kfBdA-7 zS>u>9>$`+Ub^DDk?O~{}xCrIovTO`8d0?05+QhB-XBbknuuECPFGb*>n+R<@$qUJK zxB~{%UC8hQR>wU1n~HMgmyhpx;;&O=ot(0)_7CXknj=J)PlSn;)sAK|L&d24^L7bR4vGx30fdgI^E_;PD4 z2~b{E{>(2%Yh&UHlzeQc-{;NlW|ezvQwoINko}#cc(JiNvdJ>PqC0ebMrmFtZqn7w z0`6I1aszH+HO7Q9NqCoI3d(l0;OKetap+00!z1SHcZV@{oG{Z9nr%dsd3UR#p^pjg zm)~U6du{V&EP5pbj?Qe(nYAYs=1;?J@!V*iThu*2K1#bDMt?g{&T4-N@+M@hYu_qQ z0f2bIo7lMzADH`Msy!@u z0@~TSJPlxiMp0(g@wbzTR%#AQ*(%MWt=eFSkMygF|ev5L)+(iXB_xB#;>HUVilxm`_P-z7Z$hA)zLEu^*HlbyRh$EQy)X;CTK z>)xdGzd#_?I9h#eM&=5*P5?4N>Dw<_-OX;tzjfT43?m(VM#EiH$s8dk@l`~YZ_Z5* zY+nxu?UJkj3HodO$YT@KM-vQI6=eFNFeK-hPF#qIt^(!q-dUJ2H5FsYU|u9Oj2bHx zR65E?Te3GI+0b>7g!n6)8V}TdZ5&i0xAK82#7xMvrVw%e7g&4)$xTU1 zBkcqBc}lN;gHZ4B!Qo*!Y3T|zlo-l?0o;-E+;ONFl?W*2U%1nnm*SN_ndx7T-p<9P zWZ$;K{|lV{-~6YxpC>*uGA_33{XZB3#3|eXT>9S>GOL;<eO%4Qw9_2y=CLC6SC zDEq0v(Eq?&Ubri5Wn7_blK=d$5Lki(o(iE*1cmcT|)2|F3q~stlDXOQ3atI0#{H>O_%Iz_3RlG7L+=AcO$5Du}EqdqzP(5+Ljy zs04z{hy(&bKxQBbkN^n~61Y!nzqa1r_x^MLyXWQ{kB1zd=kxx&_jtXD`Nhmg_<+=b zJ$v>D-?)Coa?hTx8GH8Z<$k{p_$H@|paA^0H^|cH(w?&Z$kwq`|n=23)-_s1TXlvx6}Xi?LB*Hj@-C%@m7fQ5}%IsA&2M2a3`6b4|cz8rDyGp zFt~oG`nZHzoSD>1>HY7noxJvB@CxOk)G;&etEJ6L3VMFJwF@_o=*p-bx!|nnf8tI| zvX^D*^`}QxHcb6sxondC%DlgDf;I+LYF7s#KIAV$f)ci0qrsiJov+a-$t#~ewQtQM z5hr$(WOvt1JgMgEqg|24z77hzPy3zIG+l}mc9-@DH$4%2e6pf%XmfMtI?Z_A;!VUk zuaT>QV{e~4FVsIesW}l66ha$a$xeT16t#=oh2nQv3g$w)Jki|a5nF~x?|T0IT-hC$ zU2>K2(&G^Q)y7%&7Ir1vjfDvR_|nKsh&L%@xYK1GC5_4{C7@b*HJ?T~eY%#1!ZrR< z-K3;!D6e>`6*)t>OO-PK^YD|1Lht9v6i+^{i_UT3O(o$YxdbTwWTL)yGi%tv0lX{~ zd|2?wh=2S*duwHejuJ|Yr29v0%hqe~XmWa^>KBb=@*?IoQ1;DbsLkOje6*aCoEdU^ zTAk<}>8HjxA^4~q+&pU16SmUYy6MQp?skdcCwGNyNJB$|liTs0(JtGRq*!88E5E-9 zAFqlxsPiP3#|n7-w&2Zcrs)`PCuzKk;rarzmA6yZc+IF7^C}WSv;w}{TwtzZuor6I zf?9lc)-Qk${!MSg4`4brC!OuDxA~T7II)!Wws>X$#9tnay|9|jG57EFrl|i#TcE4k z@MQQ3zoWa+!$~GTf(5X6*)Wvfx;3m@l^OiEv>l&_nOD9ul5=rErjmV`wDbrl*2dI-jM&2Noxrz%I_3YpqO(@i4QzNA1*D_Bxj#DeQ2qdx*xv?~rQim0li{y^F zL4IJR2R%AmlxAIQjXXRKH8)UoYz^Q}eAEw={F`Hy8Y71y`e}W2lg`M9jdv}=J96V| zJSNXuZbEILXMMeA<^EbjNnp}%(qH55!fmI=W_D4nEgH?7BtXCXkijsDdG2Iv-rqFU zytSS*H}8FWGSLuzx3y}AzPt1tp1u+pI2Z@b1g}K07}EF^119Z~-n^p|oQeds_M8cI z30oZZtJl%vSB2$D$+mFXnNw`(*p2HGAn}WMrB8D8ez5WD+#jgB+r-KGVf72!XRU`P z`I`jOeBOI$xeNX5=@V_rgA(_Jo9rQx9Cl}vTnm>%b(k^For!(%nKT+#jEMBCUlSFj zSJC0pdWm5Hi0L4P6=5gO*h!6Hb90xz%O^2MtcXH#5v!wp5YFd^Q{LP!ciS9bn@4{q z7jb(tx)rX4a_YR-`D0bLLG)hFp&VjeV)z{y2l|*A(pjHHXzz~95*gU%r$%!63b^V@ z59^E}ixB)hDI$Y=UVrH)kx2R$68YoQVRoJjF3?-<{8+=!vRzp5mPGD%ty{g!KQAW= ztwh`nua8)@uU|OZ^tW|c%TEgJ&X6aicGmcb@V@Sr15lZy5!LtN7OPp7P0u4O@Xmer z%|D#-8iVw0j)+r-xXjTV=i`2U>#J{ksJ!GtntILP%T(Q?{&H;3$q?k`8w^%hE6*;GZo=Z-WxfFv#@G~;S6fqq zNEupsWG)%p>l5eSB!d$#a*8R_J%}DnIC888Gj*mgSA|lpXezlZHGEFYsrp0sJ3}0` zcxpf)S9U@-6z8-%*t{LD-gPryNKv1DRg;O` zRoQc@Tjr7+m`@SyHwy(bZ@(K!>r0-bs)8J~VsC%C_7v3BYWmuxZoe^GJVI{o>nW(F z9>=bAy~$iu)PTFmTsG1?#_tS^t}Ve|6Vg4$UmSUCW|mDm&$#0A-7m(zHUe)ykw%@s zDC~Bn{K`7MrrEvLx24K7^ z4@L?hgdNz|I$EBB0OOFH+*%my2#eYfS$PRh?<)uC1O`k=M%7J*dWLMJ*hEoVHl~@g zs(?R_;5pzQChBSEt-rf$T&#a+#b_d}*)SB!3EAX8*Ig#jX*yo2NGW~s#YgprrwWS+q11pSAFMw!WCo-^$7Jt?m}TEyE-ts zy=kO6!46Wi13%qTh;^U^l^wkkqX{89OE>KOgBi>=^w{~MMW*HGN>ZIcd$|jPIip;m(mwYCx;MU+zt$NQ$*xg2hVpjB^u8Pqx1ybm-8i{&a{|?D z9@@IvGRNQU?b_aCYfeZQ=!d#YW~-HHm%ruQJ#I}?p3^!XeE@s4MK2aKpmPPE3v#)< z1Y1s5F1stMw8_%oS68FAoa zQM)KwRyet>Jd(NC2g-H0uh;sAtINF)H*Uzew6<&pUr*iI7X<<=tR@1G2fjARaUdX8zC-_!Z#t?Wmw64FreOgTfh`Iun?Ym~Y3K#Bu9 z-`O%-GL-C!bxpTl^=W;n?-8bipE&3O={iZ!)s&_k2R16Oo!Xrz=GrT)GpxJBmYC#aMBv9u^U3d!Ai6o3o3=Ftv_eg+UdL%Mm{OnBQodc(Z; z!%tG2#%@PbT5_RK7@x;ZFV4o7lLHY`n6q26sx&Z_XPTWJawQ9(aLM>BZSz*7Jl|HD zZp~}&vgTJLf{s58K{W@w-#4MUb*BzaV5SJ`hDLBk&7*B1)+x+C@rfcEJaVT~hXw8X zM~8VEyD9r;^6{e15$t(S|6vKw+w#YwQ*_Lt1IDtiHLuR$rD)_FYYuPKwNs7QwW4tzF7VEv3ml4?(@t zm{4uLA0pZZ8xa?Ol(buq+1{+nmDw32V`V-NHO~|%VRsidfGmnZPZTESA`zR+8G2Fc z$xs!I64j4yI{+m!{;AV-RK0oFPm1&P_>n~0zCN^aTlI!@LOw)DcZ7{CZsG(3;~+wafS7r;#P$b{$4mQMifZ*LRdC!{Gy__=wfqjB&t_ z7iU{H40&E5n-np8>oze_G;&3gd(^_%DV(*lYq-mcnR;m?Cp`fqB!iRBuM}O5^4Zhr zT5u}`klPVwZ!lveoVWN!D)`Z}vcjCs^eg?)?!$@NHZwI*xJ(o4JScL@!Bjy?wHn@} z8>Qi1H=jDwj^9&@I;tSU{>djLg^_6^U6gvXrqBRJN9kCgV4GqSg^9GjM^Bo=0z_{# zn~xkJhIv@yTNYj=?M@)*OH)~*`Z^!BqRsD}dy%YTzz0&kP!%OT72YgclV}}c)+v-B z4$wzRKOXHa&eUl-8zocmenP5S@o=5f(pw#PPbBcUpd)x%d4uNrAL3B+ZojNShEKDvZNXl7p1Y`zB|o${A2h&-a67*{~0x z*+cUZv&BPh);(kEP!y!7rDTG-Mm-EKkm)g)F>@#k7QRwr&=VIN`~wMKiNvx5t5|yf z>xt$U2{^6j!ck$}JCe*vBz>vl>c_MQGDywRn9UZAq-RXg6=vEKBUcNPIwS)CLQ2m9 zdLy46hw&O2+WCHlC=pe^_g!p|SLP5Pcd9_{n_d1iKv(AS zu*AbxZvt!;YsvsNIxs2k%Q2>CKe9`$)yH4dvRqw+mKCNQp2#(F9-&fh8JC_nxViQ2 zWTNm&pAU%_)gRZt?l7y^=l{W0PmID7zdm_$b2q1y*OfE{L}MbMmyDy(SzOb zVr{qV-2TH7<^=ZREp~0PrYHG#H)jc+Md$Q{lq-)U;EjuWx&v%A;-j2=E!mz-Ld*9n zhv0YcX1DM02c_{}iyG?iDp6^-jGcbj-2^O9He})16hG0xuH*+#SIXr27p**&LwhI#SNQONzdRWcSx;?k{MJelu076AGZ&hS*m>OHnRpDN+y6t_ zG;o7Vs|0+dVu+%vh8n}TwCtvI@Db!Di!D%M72fp9=HNwu#u$`@n_eg#Cki|ldvVd{ z&u5@ZlUgF@3g!Xt?Q=l5$&yZgAC;qvja>V%5f!=S86jO^36tg14MW|40%tM+?)hzH z$negf0-qgV*CZ3t3IVmd;Vb=4R^4^#zr(!lB`W^q> z4@A?m1seG-yGaViS}*LpVM}Y)LAw=4MRxgeEqVgBYn<+M%@F&W?R=N;zQ3Mm+F9tD zD)u)tY>rg1Xnwl~4taUdb}`R9H+;wcJAun7oYguXl;>wNTF@2(k!RAyBGyt8gy z-8L6a1o#0YdPQF+qfmN}4eA3{PW$} zq4E`Lso(+<5LYaCAFWzn*58GVL?YfR2)>*LGOeHhlPEr0>|uw?qrEE~OEE+2R~QUK ziZhcE<)m0c2F_f&o%dGrhbnY0F+)bT$Z(M}nr99uX|ZWffbINrx{z*Um1Tcgds$Tc7i|hd}nIW zhA6`DCL~@Z0K5s8Hpu%_gr`_a+>d9=s=Y^2EW<7+Jf#Y_So?{KP&LNuvR@K?&536<<+Z7W zK>qUUFZ*X!Mh+mH^!jDCE9kaa9AmHX|O`eO7p4+JMDPgEQ-v{Jxs){Bw`z_|GFyM1dbt=w~zQA~gNDV*Oxvg9J8ondmy7VpUngks4 za_T1)3(O0V6^LN$lNx*A4crmX`LU%BR(A@8?qVvC)_qX4>~V#-5cLvTUKFm-0pcqg zEpT%%?A#TWp5Q9ApA@+_DxA?nr3G&ddzHD3j0GZeMG-f6=lwy`~pm2wwa_pKU z2hkE?fOIj$JNpNc);dr97qS>pGD9F#tgGx8LEk+Yyt#iSi{x#4bW2`#zAmaXvy)WU zPUejfKa#cXXu|MCLSdyRHT7U471srf_13n~OBArl7s#L;y+(*xOt0PrGf7UPPU4i@ zc2^aw)&cLZ_UA8kn!;LT80PEJ@4Ee8Z20Nj<#D?-F8IH{Q2L!$ zuMbe!--=8XuIdG|4xJl>Lz`esJHVhUF{`%vjrVeu|Ap;fN4y)M)4JM%zuHhtbf>P3m6#=#ww*Llnj1O_ zmksjk-DBfg4<-%WTdR*K(?2&0WnY(FLPvCCeeVoD_k4feTVcL6^+A2{Z!cTXr~oox zIvjhmABg#Ylkx>Zw2HVhKH1*oGyU0&Gk@9EL9DBBDd@9E&4QEvQiR83<$~d~&&sO+ z7`U&%hT6Q-E$KHui!BMr0zYZyl)6bV`?JAxb|w6+>`bXb68HUo$eFoq^tYHpgsouV zcm8AQ0hRfG8(4FcVol3u25F62{69jz#>>_aPW*$qqg?hb=b>MA&l5e(j8;mCz-j!C zJ7vAANt?jkc^$d&z@{lc>E!B%+dHr-fo~W|^B%$OEXLwH72qG;8K&+0_f2w>wt65C zj%A^VG_lztl>bL4x#8*zEK1Kv@4^Dmlf6H4>q1lca2H8sF3)+*(FQ}(MsVjghy`=? z;{L|fprj-1Gm-a*Yvc7}?;sisK`ZxaLv!xJhI2NW>axxB;5l!Cfy8&-&85s$a!n#E zYzlUNI`kslF>L_S0xtO!?Eqis=_0Iae&cA;OXp^<(Z@AWAS)#r{neeC{`TMMeYx6p1H17uVg3n4(K8n^0(FU(rTl$HdsC zjg8%A`UqCtPr}<&iVZ$j=R%WY?S6qTVc^wEB0M`Qb4(@J>D!7&08n6_`l{Yv1NfNfA0U>mn zG}kfi#(&I)*diUQ#2aG9l{$g|nK8A6j92aNfA!9a(m82wE+2^7ELC}fFCoXgS5lD3 zDl=Lt@~sORuN@)_xM`d-A7WT?PQXhi7kqt1_f2tA-)Jm``N1)V@;C*u>69>)W+8Jj zY--G!R=LbZq>(dBKU*yECkYN>;CRzVr7sQ^a$0@5*JZ9JmUiloQWhrj#JLbkQg;iQ9! zN^9ANu4QMYQXd{|h6z2fT3fy|dUopgC;eutmn6J_%4ctQ$~-LWMYM<99RS0~Xy|Pa za?IE%Fy0A*arP9k`0S`e-joL&UyIsVV97=Pv{QM|Ti84|&EhX^0YswV8$FR_TQzrzNKO6kKsDweA22gIWR@eSI1+>u z`>bd|XQFZr2KKX+V7P;H+szhf4rREwOGXUU-t)*cBV*RXs4c@0+;vhGreLxjH{~6CDem^eou!482TI%7B(Cy} z-cX8(?F#?*=N>fekz|1v3Jw>J4ei++w+a_^nU((u4V4Y8p0B?UIU28bCDR?sOFz@< zd()vPm!g(dtUzO5h4}W6f=E_NL4@gIL@k*H!Om2Br-TIkqe?F&f^UJEhtgjlT;~FW zz3~la0zX*AjjNo-!WH)DKQqd*ae676_4=Ji8|EiW_?0jiaO@a}b)JNYO*U zF^d)sq6uQd^DZe77X|6%i7m30NjoBdKxz@`@-~J)C(o;Q20iD+SP?;kwh?202y&D% ztZTE+0BIW(5R$mjW^)*Nqc6JE?y857H#SC6{K-vQ0`0@wo6fkD(6)xM+sK~K)sK$v z6P$KoJ2)n~hg6k-dP4ni#xG3f65Sc=jUwwU__w|GztAdklRkn9t~r5iUtE&?ko-9c z9e?hM75Cg3KKLuHd{v7YHf81Z6{&DZkwwngv;G6rehrN&GdTc5UKtZ}-hOR%mlE+> z>|wB*1!T?7#?xCChq%g)y6lk1bu<||$^V^Fo@ta7DGzJDM%%Kkjt{{YP%V~b;6s9o z1`Y(5ST27m2`hTMN6tbeHK&eHRmidS!?!|TCs-_Pj>J~c;%Tolrw}p;unAw=A$PhR zKEx6KOB1)nZx{QX%HHzDYQvG#0O8ocQpaFiro%tB)K#93xZgSvfE6E}cno;lggda5 zS7%uu)xEK9CS%QR?e-6&2=ZVya!j;G-VRc1C7otK+$z2?aZ8^TG?2CDYK;gWr2IZZ zel4RxlD^@N_I0rFbq>-~P#2}uo=3edTzu?rDabaq-9|e7ejV1LC#XZ{vsK-udW4l( zP54?(5#n-#OeEl*#>&w>!>Wr#z02-?=_CV`lmcDCarGB33%=uBxMo z1B#?RxUVchW@_xM({!wBTn7MV_W^q2lM+Jb?4rY+{eP|Y?K+?X^Di7G6DwH=zkj0F z6}&SjufZE9h$v~MBGwkGjlJKTe|pDz4K0?b^HYZX_zPdCD|BvME!BMWXY~k7vA|!M zq(IiZ)`(k>8so@YrZuHS#lfe1QglpGdajh0tzMbc)i`XDT}=H|P+T{R%&GgNRJ=%l z2)O)-UV;Mz%AU5z*IOFKj-zeTC?H?kd!vZq^&UdGGZ%8JXQ4(l6EK0!F}L}KDSM*- z<$si8p!}p#a}2&CaP%>p_B-P6X>58rBRMO4v&Z?S5s$rde(m2*)Zp5Hll2B~nA^&SEf0T=2CXTAPH4M0jQp zouNGP=pS=LyLOhJ5)q$r7aw*PC&5#i=anCWeR0i{(qQ(9$?Xq61ss{+T<*TOG~8^h z?x*i!6A&h^oQdv46FY2Wei7(zQoeI!|I6Z9w%SmFc5V`w#l6m(pq>=dU?2A}7U*wN zbJWnr2+8&r{}-n5Syq{!2##&3qub)sCsXT6l;Ckb_`IIspq%xXx@C1&JKcPD_+t3R z&G041b@c$rfAruMJ^`pL#U4#OhUdg?pEY)-o9#h#&w8E5ns7F=G@!;|`~1;zv~OG) z(%u$MhheQ}JcsmX{lC@9sz*|+@UU#1E?+!-ZFJtH$Jyg|P@X%s#u~ml7S+efHc<>8 z3G+SO>Ki$F_-}nENx0mc78dYJSShW;uCN%4MNjm$T(?u_k8C!7Cc0{(Sr+4&4DcCi zv$R(1yYiYm%=q;+W_j!%lXEf&u75|k9+&ZL+dI`F7yDv!SKB zdlwX={LW)_wqgkKXVm@1MB%?*js(ZNp0ZGHHn{?`?R!WqS8qQ~?oy=b%dtc0a|3>z zB~z~rP`*3tSY)c{tWsXF!LlL|1jEmVm=z{REVD1S1%qAh2{ci$|>gK_t zQ(8+Nm!3;2dik8LGc!wn#6&*NZM}i&+D{wGA5K#1dbpPHXbuDul!!PU=0>56x`^2I zggd(K8}H5U*vZwQ;fs%5=C!Bbf2gt5-*^{h@|^X(wR}&A5Wh|ws}B;CQEq8bGOWt0 zJ$@p?8`3i~$#v%MTG^PdIJ5r!(aOtjw@yLK6p0+>nn- z-8kXqQ%tUcxzV@bqxF~VhF(AS54)TgsMvZRchi1nSce&sLid$P^9rI|4+Un%?(`cW z@AD8=FTa{#njQ_ulXHn$CCn8h&ijuq-R;p z*Z?BW*-26N&UNBe#cJo3maatTD!oQAywao#JKu25NfMtcZm$!ZF>mX>s0cdX>;ph{ zz%>us(w}sCzf6nPG5Mm8!{ACq#mp4M+IB5&oLG@sdmqq)x7wpY}zA%fJzjKHQ_> zQ()iWG7UmZjgj5}Eid7SoTUTJ7d0#3I`DyVB1X`!**mh+s`EwXZY0`UVr}>Q>gHkV zAuGPf?@s>FM&J34&^-^581{~rxR-L4DNIO9-g)*QJdUE zPm}(E1&~~ zBNWS(Y<8|qd+7UD{bz{8v$|>sBFLef&>j1>=|bAQYA8B#{|wvK@WgX&0`AzESf>3k zJ`N-f{-S{j6y0+@aTzDsZ9@UEpJcp0iq9c;DEH4a1{h4OT4sJ^&Okc$!6+h9WVGGK03edCuAp zQbAgo$PxX3fW?dzclbP;RA^`28LqtaMH6Z}P#Ajg^ueRszrH0!C?53f#Q;_6@I`43 z%nTTOmz`a0Q+7R1KcKm~pRx;JDMY&!MV|Hjef(d*26tcVACSR?#+kU2+py%f;@Vkz7fMQLL*Z${5@>SEz?a>(8EgM zLeF*#!MfXf*DS+xwQMUX>U^kK-lj)KQzO@>nD6OwBB0hS7Bm08 zfuytUK;opn*+4M&x0V;?3n=GSMPQU;4?lj)F6z?=tw1d`@5N^~*6u5t*LA<%nOu$2aMReIFY7ykj;bz#jTET`f9+NRawx5g zJ%PrItNYh%R%Dk|AxF$>)yvpM@*C{X z!1rsGsx?_)c1@|euL%G!IkX6VX$4=ZsVLK_!_+SJ6ho+B)1imT-8qzD9NM)ACFW1l zjyqDvalhc5lR|%GXQZxAjC2-%vQvmHqW$7>@(FpLroK|(Nl&Y3x8(!dRG5P9E|D+j z(Pj-r?r=}y@sZmc=E%mRWDEP@{b*0KvIb)AYtQ$oi&L%PMczMv@(e>)6`Z~fJIr^P zT#%;6zV_sRPRy(0vJQz4fOaN=#;MkdHM;^o(AS0DmoHVB>xvzFRHWt+EM`#T+8I)_ zgdu2MQ+McJ6i)!dVvdiBYHtGx<6LO0#HIuXR(SN$*$(*Bl zKkn!vOru!AqYP*F2eU%M<6A>bkwasvV?p$V%J5orOc}rNsjKM+ZpA};Yiwd?vKkay z3U3c0(DS4MOg3+Ydxd#(=%#5-UH_gGed==4UkHa;Cl8>nl}o9}lFQSL)jWLMj(3_s z-kWFO?9D((hij$=UVY^Xi0fP$30Btpt3$}uCQ(i$k!>QG;s?j;ZlbIdS4X6>Y*0+G1NmhptBA5jiDD-o$eSe<_sUe>h;_* zy$5QBrDPp@Le&Z#UYcjCYp^q4q0o|Lnt}5gT@4wkY)ToLII5#5qwy0EF#fkTJP=%M z#GWc&xAO2jiZ_eE>7ipJRSk-JMhs=1AI@=48OT3(E`UUffE^Teri z6*d^P-dPFZ1F`}@Vuf&_FyEQAXcNaZJls^0AA5#vr#^|WTFle5 zn|}@j>i@0d|DFHH;cG=wr(~ffT8WBA0NOR44B*i$l{3I+d8d8b-le}R#k@+dNFL7| zgZ&8hTk`C<9F#qBHA+v01*gW; z554*^0sI!X`MsFfnriS%!l9Z)!nEgCjV4yt>N3HPUi!@3T6=P)E?%r-b7&K?ZvF{N zq=D)wAq`V&#am4162a9aa)+jHI|=sCNf<-jc1))L)*JdE*6M0F%x=lM=;#v0onZ_F z+@QE5nF;Yw!@$eM;+`&7!;3d6S<~ss70;v-(;Ac*#-t2xK0<8$te_IPgfAm;8&#t8 zyARyt)5Sh_Xzxb=$bpUe&^lfZ=S4d|?lPWd%BUj?NDxqDTaVKfUx~Znj@6Dws zBT_$K2~!=t+9NN~?oYoGu40iekk$C?H}s8M8WxhQve@IisWKOuFNc`YpR0M-lDeux zW5dsJGaJb})R2tDADc}(XOhQN-`}u8X}-T(wvoN2w=r>!&7LS6eGCj6s1gdg(3MGq zYT#&n)T+G#s+j(BdsvapvJQF$G+~3&>MUIU&VDX*>{XzXf9J&nNx4pEg_y~S?{VnA zM1Z;6dZ+22lQzDLV`OJ{sYeKH2?bKRTxd39R{mC#?(2ziAH2P5?-B6}O;b;lY3;a$ z_)EzFe>5XBe$6F5<8X%Ytl9oc$#?v4`=e z)(?NpSBF$Wop^a_4A{x;aqw(#2wd`$9-9VNc54UE_zzXcZ<&;4TDu?l85jvU2D()` zRj4@Ey}<^mMoC}9Ik~YLnrKaL1%(dqj*Mod2%uYEbJ*RoxBcxBlcw^Cy_pPBj*jD> zX&tUvacmaD3+XlZuZuv9gaL(2c+EXQa)MWq< z+WR=l>4H_+MWC`TaCH$DZsPt0 z0TG&s@S}z#)LYNNZ>^;x!X2-DZrCMsm6K!MkRB)BxHZj|*KoYDf9Cfw!pfWjeoQ$T zG1T=fwf?stFjhXYx7-MtgvwQMy{=2Rl4YqWf4IhA-8|>E$@m|ym-0o64OwG1jI$y# z3Mr1;=jH~TyHA%GXnN7$16J?jP3MOprBDzLEkLEXC6UW@B9!~rr(eVsycUMWl|WrE zVAZjvP=~9zP)$iIIa)Ry0$HI{l)3%V>36G6KBPA!VVv1tZ{~mqw?HLUc>j5;)reG8 z>TQk#N0d=t<3u0>pe*I3e_zVn6pf~xDy>65k1@un=5FF*gXB*^#j12hf3`|0wzmdN zjI(xwIWx|4%K<%?N@m7NyxhvqI8xxfV zju0z;NQwY!Rk0GK?;3}K_j>St)uTCy*S}2XU3clc(iUj?6LG?nVDGV`vTSKEe|KCu zNq{e_-GAFt4y|FXoX=!OG^?!9)$#@q%zYn;VG; za%qq8=Q$r(Dp)BF7&=(&-NR9WiC|$vtfQjL=6^ zG&nUU`bOAA;zgQeL)=6DjB9lFYM;%ZM>SWg?qa;2ihC@Um^ z!XdBoN?n6K!zGAdNlrAafHK zzewK1ifvzD#wP4xg#{4QQg$nMo(_llUQu6xzc-DEaav_Ob~*Z~r(Wgi!jAGBBJ~l` zaYyx4ZRo1%%TCtdWSn%4q9J^7NvazjG}>R{PJUGE{pZ;!Nbw3O-GCZ&WyDq%j^W+X z7Jv461OQcG==FKgE*&2_7&wkd+kZ{>qGZ!=)Zg`MIzn^0+Eu>R*=TixV#vAb+G9-qCU8Is}x=9j2Tu8fbEv%74y>AHr2*1)oARqVrdn+ zR}OXM4*{$PP{|ydu8~8lJ2yY_P7e2KfyF#^P9+>T2_%#E!{*u)#*=a zZaRslq~mH^V-|B6@bBq`t1iPX182hrto+`-sMx=$gFa`CV`5Hxn$>GEo_Jr37pt&z zuqm_vO(fTs#m`kNht!tQOm9-2uQeR=FuF*nag?^OE-sGjhm<15f9{zsOCp~QuPdc` z4bjP0U;PI+Kus44Q~Coc_Q;xjB2lu3O766_qEq|owGzW8a6>vtF#zxyFoZjJ+fav68@KrU9!%u0ipxqxlPe0-lLap9-rQ5>jcabEtU(BH;1D6Z~GF9 z$;XKM`C7w-W`dGs;^j|$TY0Q&Tx|3CfsuIoX;LC#eR}5T}M;+uq#%J)}Cn^nT90U;L*Jx8`^aseqH$p?&8tXJ-epkR_Cs_Maj^NE53q z5FP84(lwYK5}_&?zkpxY&r5(?PBz6@^}V@zU-kG?K^meFF5F|Pwo?lYUBS8Fi*9w& zbYyRRZ8FhQCZ}JjnhQ27XpYS!uJ4T;bXk%}ON=|5yXmM3%SOY?Vtc0h!%v1e5C_oz zwrqhn)VXLs^uutM5PFPE6z0e#=eG?ar<`Q5Snn=q=hhT&6fWa zQws{P4)+6$+$M)vqWWejrlmv-rx>5XvM1-hY&90B!^k?2CxGI1n>9nRfd)`F8EJ3( zvhQ9^`Qy57aMP{d*G6GeZ|Id>Ru@_9N-CcSY3L8J?xD@qJar>rC>leo3z7!EN7 z>6!MMz7~8T$ckvOq$;~H?Re|o>XL6#Vy*7s_#3@@p)$o>X$QVq`;^uF&4YVDB+_Ah z3;>D1Jp!L0nD>27Kh#4HyefqzX;7|hXZ&``U^;!(%Uk!xW#BgK(|<_-``+bDxbm<$ z=4{fRwTU4(3u17fEkxlrD^}U>e{&yd;yp=(G*5O4K?#M5@lGcZ^7Tak`A;R|VB=(& zuza2V6I_fq2#O>%IbVT>QwGll3@Vh`pESv#Ag-y)Qr3e6enO`7Q(h~in{+PMk95!m zX7f~0B8%aCS`bWpW`KS&{)geLI=k@GdW2@&o$ESn%I-toJQpSBxoge`eqEj#`&P8- zE!qz>uA})QU7e+(d4O&z%tea>b6myzrvz?w5oCJR@!hbVC{Kotg8SX}U)8o}N3H$K zO98-Jar0b1wcwv1urW8446?hw`aD`Ny__B?a|K`|y3nXwPNtt{OWK4kv*q$2n`ZGc zQf)`At#i@>8t4jt%HBD#=N!5cU2PI|{sGu^YK?ZCa!)A@Huk;jgPK)u=sq@#`4Moo z2Zgsg+Gz+sXCiLgeyQ~z?=*9}$nR^%xtmkTlvlPEM0&t7=orQ3uT&mXh+N*5F!(*c z<;>@)Pp8gkSK8$H?P=)(jZ(&@Rv|g>uk85$Ykc1S9lTJ0R^xLcx8E>XH)KL2KkX79 zFW>;x9soE00$VIV&86RSZu<+0_j-$Ml(@U;(Hew*1mND$X%m}Xhfx6HqR1s;*CV&5 zJznblDPrsbfUsvDgpX8zmi9kD+!jZ?qw8cmE&fP*5HoQ(v_)ETI_f|`r(ek_q5KKH3B z%*o}*sGL%wudT_iZOZ=a*zO5ntJ-aQ{c4?2lAOaEMFsZHdh;J#^tP{Q$~-NO>vD%@ zHlC8(Ig$#p#pLNLdT0D(8g|DU#5;kGN}qw%cG8lxcsU0E{FfjtEKvIK%MnLo6zj;f z^lFXs@_&>U`~MWlpA8Q+!)fU*s#-PoP=HFXk1|9wT(LI!ieq{dTYWdzbci@-l|r)`qR|4@yHfOrR$2>a^Lb zj;r4Hzp7sJ-hpaLdqJm5RtLQ?Xm!SuMyjK~=YxN-=ChcNX95{V3M|e~eNCNFiN<`y z`Tv3~JYt&RNE*gvvYhRI7&HVDfhZj3w59|l>wBQ}W5P*C+;I@N9oko4%%rr`@Dr+Z zi}ACD$EbPTXG4gutgW;?>g|r2XLD4!@TM?>?+lN%Fciqc5Mp^9b&Lv?!5b7na`Wv) z0heK1dgco*0!SOE{NbS#T0`IXtu1I_9lGrO2F0eXukIYB#wlp>i3CO${wq9Z?Zc^J zIWb#~<0)hYEEg)kw~@Y`{Q|0<+z%3S|wR0@7JZ&M}ZqwhnON<`tc@V}Oj-A)V zZ1?2GW)_OKB*6H92`Sd(0RiM6u)Z3DI#}^EKGeU?+dQSUcl}z7sz)>3lW7&f&*4C7 z|G)~~5}s5G3R5~_kV@70FSmH-fMojD zlndN7Pr&$3CS$7(evWXT*DwU4knFQw&s9cm9p5Mv)&>6Dh*8?8h+&$m5u32jzM~vu zwJjE03gee0yS4&<<73&QB-t|UuYF@pxt7}ca$F=oN~}YSc01Z2^y90@&zn|V20;1w zkz?X$!XUwd`0s0Z-;AQ$s-Ys704mTpiM3lwK`GNFqada=0HP(tHkGQbX1PX50bBjC0>@DDT?A(T}A0}Ns~f?HNsDrrz`lD$ZoU> zH@`FTLwtTP2H3C@ER8ox0tVyGZsiXo;l+pshRs`V6f|vuvlVhh-lKBkhS$3WC$}a9 z>x>iuc+*Ucv0a2*=2ebO4b9*Cw2{WE_?sFoN)L?O4g+0~e=6tbnYWn%FnHl>`M&k8 zgOj^&zIa6eR~uP}U%`I42Uq2%R-w?V<~fQ=`|famH`o#^$o=~^ zE@;D(b>@>#%lZK%Dj!%$tlZo;;5-j7#)8lD*H_gGQEA~VEF~Tj>j36DKJ`;q0``Xg z?1J3vil15%HIV!ya{-JqJ}SI5d5MX<91e0^iUvs9avW^sK@AOylQV60r$teY$d?rJ zi6(>Q?Sc3XPmG`P&pE)#nh@}^cmHj(uXVTEJj!sl5rw*C+=toSv`G{tM(z$xu{R`M z_z98CJz`>0a;n}?(_e}%9OORw*G3@_3Wv#n&PcC>>mk?PM2n9VBK}!?6kbcIGdMqK z(z|C)?Xa1GUXkGvXNN8QX~)eENWXRdF0QEQTVSxO!hgSFfRixVS!QoUqnbCm+2*+Ayy`;E=|By5IA96Hp?w6q=qE_cL4J2ek zW-F#_1jhZqSaFCJxyAPv7S-b|FsBnIWg^!5*@Hxr+&IO!3uQEu%byl(l>qGh=)S*| zM)w(@ww=Jtfxj>~#ZKyN*`v>lb zZGP|UsMpDS!QQCSN#JeAnp1%oP+HU@%}Lt5UOn}J7l^BgRWG*m8BYRL1 zz{YmR=H1D!$x$oK>on$S*QsX}GxrY8FRt*F_PrXcxF#=fVotY!ja*ZauJT<$;yPWE z81f-DU&Q>wlUZ&4_;=1rQ7icZWAkU3b|}P@p?Di_x^A=jL=EhGinv+g5z4%cq^`Vk zdd9`pB@4*!Sm5clrIE*Xw!xUeAAuneRE@bIxaZf8L+>*{<=E+x^xN zc^1wLKLS4rZyDe4?dJ}U;A3=*egau7g3vbe0QmX{BQ?eIE;-q2K;1_ot;cAjZiIDI zv*YQ2Zlf()bw5Dv8!e`Baes*ziZJwz*SmCP+4yc#pc5X<#J^ItPT}s;`6nzbXWLzw zGvGu<7kLC&c+MqH(8q0_r&`PqAaa|SPqBf_Ur#38*Zb)6W)v`sb)UBX_N}ph1oUBV zmW~~)*y?WUtKZ|V-aKnnH}HK+uny_+w)ycgLo5YOoH?tF|Mp#&@!Aa;5)#L?nQhbw zMQ*t-)j01w zai1Z?BI!H2@kJBE1#@2*PN7P2i*Si^$#5y1_3xUA66XBO*mt4~5e85nVXyzNf}?wY zn7Yo+5PZM2)^tb9xaRY=-9NyG=Lqa0n@`-QYeog@Ku8?11c}iq{r% zt;X_5-MfG=X=CNRD^ody$kCmr?puYCL5ukP{iV&aQU1-AbU&X(4uaaIj#$_|bLev2 zenqiLwL3;_zkP*pqPSLWcQ{4xYSS-Ghns$FLTR7YJ%WL12qpm;j!TROGD}LrY{C2- zrm9r}5X(UF;JU!mCfd6J$EE$2-+;we8)znBxO_**0$FT^IKP8NK~;raBHq)Rp|yh2#CW=Gj)*(4f(EFs<0>RC4CGbm zE6D58vDLD-IdD{aDCjjNih;LmTlChF#%B}h#7pyut@R zwze?#B__1(rw-XqsW5ZD)yXAs{6X)M?*3jS=&nbIMcrEnbyuU;P3~>sQyH2u`-A<0 z7C1kKKGYb9X;#4NSMxrY-0Sc{ZzwK$)V)spd-7i-WhqyH(Kgos4oK+Fma5C3rlDW2 zT?tO2R~Q0{Ge8Ta_5^dn&BI>iM zT?UH(EI*PyIzzjpX8OElJmQCvpzkO5_nW(q3_S<3*T!2im#LC_&)m1GIe|A*lT%(A zkO8V?^oFI5prWgn^J6KsjCpu}TedyBsISV=va=p2h*!g{ZU=>KNMj;3sFL0EyhecnBMfslbutvcoO&J*zFS{Cc%{t3x zRcDVy(Yn7bW!u|x_(oU$glfn}iw3LG6$xgs1El2>>Y0~+R6ky-&VAYG>lVCV?5#f| zF2)(3pxY40jI`a{5#!gT;oY4Nc`mye{;B%t-ohQ+5f4dv+GK5u*R@5Xks4f(hvdQL zq)LZZ$}!=^wUm4XG5F`1^UHs{zeokAF*hHWb%jUnwW+vOzyZLV&X%_G60aq*WQ?pY z+uK9lL&G+Y&5;YIEjs>)EotLgzob)vM?KVFRj(M$*|u))>X)xg;s5&4dHt>_WZv@Y zC9#8H`K?H$nm?{_MmF9fwFE2|#+*3*@|7QbWabTNCXbZ+-Cg2l!7t0!m+s{bKU)?s z(>|)^=Qq9A>Xm>wGG5yruQfu&5j~0}4PEY!?1UY12!lw=fGxyd#}_p9V638_$IZ9# zovj{--@o@k3oeQ`;&iDcfTh|loKFbRH%fn~V?okvn@uZ$4Zm;Wa=X^IZ?Fv=D@-r8 z!7s$*d8%jB4xS==t~&C~$6)OTggB4wJAZv#u!{cOOe}mcO`B&+I<~Uv8(Nz$_nhwb zoEWFjzB5Gc-h#$jZL?R*#>GX0kuu!Nxyh)Fb*l@s$y(Ux&PSloGzRpD#sK`rb_V8^ z$O=nXw7^4@mzFBVIQ?idMRx})3?cFQ^&j54C0RNV-si@Bx1LELt5~L7n};u0WLa>G zV7&%A|9loF9bdS*7`j>a)+r6A%eCl1S{fNsDesi8!&&hRFLPJ=_oIu!KE^AQcnPE#bR} zW8QkJ?yC{StHloUvfsoU5P;O5b-xLDwX{3*(iF4txRH5pNk&7GbWv|QDm~dxQrR*A zI?rk62W_n#{;gt^x@3}LKwdW|Uq-qW`t5oFxi97I1}mT}mDGdzX0|w?%_%z{ciT4g zOnYEp&1bWxRU+D1(yu202FVqxS94~uQTwPzq=cbUSBqD|hScIzqu2K8Rf!|Nkihu# zf`0BxAe=N4p8Yd0&G%b+3M9Ww+CcMvhdw31ve-hA*y>Pdu_s*tQLnqgM^@|{_U$~S z!JBs}2VEYD2O4D#sfGr{KOTQ=^z;zeuT4iUtAI}2{LB!vPQl(-c?DJ z7rxxsc;u>t#=YFs*~!r)RX>c4RWn@S`B@Teyci5;Cojg&76cK5Kl{bxk_Pzc?JlFd z`{ddn+W`lz8kkh-!aX-_J5ouf5}ct zqy6XQqT*kW&xi5JuCp9mYQhI;i^kqpD0R$MiD%~x9 z5d`PprBBvzQH#bur9cj5cq3iITZ;^I>>SwUbc5Eg=nNg6^-N;yN>%a(npbA-B2vWG5w-F%uuH>*QSa!{~o&Uf#_l= zPY0Jbi?bx3fxfEkPS1KSApGW!*J9d$3fR_^#&yZgqO}dbi6r1{Hi+U*K2@7~5C4*m zD)j$H*Y9xt7oy_k+grZ(SHI=}5vfMOAEVe!p!Trn()Yo)uEthd(qRBXK@;603pI4@ zTEjBj+P2XPx+9qjakbiZI|JA)11QaYFMCxSPoni>fLz;;wMMVN4VFdzSsdHHvU=^z z*-V5+Ndep{-GPAd^Etpa!pECf%%NV1qlq^ASeus|s8sS)Kt+9nzUUg4%=-$2GW#S+ zA1Q`TqHMjF@Zg%zNyQ1sV;qj24N6jcQh~=cuZdXzeZgM6!>1EFTG_ z#cmv5Apb3|+4MwC(jvau7P)0tFE@f$Ro?v05lU`Ivm1=dgFI&yXO^V4deuL+KI6rK z;*WN!&k1<#*z>;cvC&toeSzHI{-uXa1IK-9)1^dbyRyT({qzM-3}kIq6OIV_>}IA3 zO4hxI*tl0Gj1KF8@xU%A5V};S{qmx{5&L$ zTtx>0nbv1M+469pW}XxBtnP(akl>GF>I!-DI}#V{zY`7f6-N8ikaA>S`n?*8XLLjg z)0$2F0P7J-%Vm$Nf=F#1x+orIQhw#Yd`|LUyL4;|zw>p8GU&G1Nb5H?&*^sfM;tTm zi_4HaQh=*+L$wZq+aFnLbkaGX^sldojjZ2I?1G3`7)-1gR=>;|x|3+KrvW+=C3mIs zYL0;HpiFBIe=re4P>=L+_<95<=N`FaMo&xcocs5?E#sE{Fx{QGykjcpEsfi4+5yp9 zo$PLp*SdqlZe2*+L}JJG;6fVRW7P*VFvz(&8TFfz4M4DK9ZM>P|LHYW)2p_%G0Fpi z+YG|!{`bN$%|$bdpHG5SH@mra{k@VVOFfUgU-zw*8LZ2V96WVjCd&owfYf(0Yt-kH zgH7+2q<4x5e~~FA$8fwd*CZzwV-0_K-BI?6X$U^}?M59U=pb;^*JiWHKa!2K_bT$5 zH_lym$=U^{dDcSq<*7=tR8Mm@zOnnQA#n*Ypr#19Ji1R6 zlrW?W3yc~KpH;iizO0(0cgx3F#`0b@_t&-w=~lxXpKUWW>NjI!zv+g814b&gcxdDV zPV8*{T!PfxzY3(5L6WVDA8j3!F~dG%adIdp)jtrMqre=(e7tt+g5y?4Dl>Z`6CWB5 zZrEAZzVUpB-)?k1MSEs643)~!>l_l_;5=g?MYQe1?9>RdtGUljG&*25K6gka@62b` ziJj5ly#2RcD(7LrdN&K-k8cW>3yu@Z@v9W2P^Y&2ww+?ugLbl;Yhc4-!9k;ig(R*QMRjT3K*@ zCkPndz0xtiJv@eI|BI7q4-n{GDBIt6QkL0ez;C+@OTey5A6QyQfbrKIG--zR%NMT& z8moCMtO&^O4Q=Ymv~Zd(sTk&89co^eI&=?7E#XTU^t|7Ydw?^sPC^XbsQ1= zDWu1KKzGoUFdR8pUR0^w>@G^Xt7p$SzScbVwqLBcr+5#T^&#icN#d*8Ng2~)ZF zV6tK8iSy&Q-7(X|jmWdiN0+^Z3ry-Zw>80WoK(+p6NUNX&U)xfuK}`4;Udm$3xLg6 zmI~R`%yC$c@D&ppR1Itm(|?qZdAZJ><*>sB3zLUS` zjXOCi(V2HaW8XTTi}N6TW*5^9{JNdm&QG1twN+25bs?JO7~b zFvfLyd3&;=)giwB2TfydwW3xC;|qkm7|PAT&tth>8VbQj)M}C2g>=ZWHyf9JW^YlW z17sTAf3cWM(%BxI^H^>j0UA9F-Q-h)JP;)e@20-U?;^#$MXvNk?VRGT1(_L$jK7tF zQ=RSK+-Hr}Q|fQ=dnWjg;p=p#rM^VrH$(A{gNXuO^UE~iKVQh5c>2`Lzn}hc?|ty< z*T2nWC-`{SzrPxbcaKK?BS9+zewg^@1=vxtToN@|9-n;2q(AZ-v?Vs zogg6{@%KJ*Ycd!;eLybub*);!Qad9irMn_mX?bRWb^pj(cMfD(9<&Y3Y@K#qf%I|?<3USt#VjL>r!;~?r6!cb<)1|-2dio z0NM;N>u3I1<*?GL%Qe#T&;zdP?dIq1Lu&$zdXA#o?2*uL2o;ihQsl0e<*?!-eLkt$ z%-4Mlhwb#mKDe?>h8!w(UARG+#5n64u^_e8wsOLhD-k2HL9dq9QHN$6Mo;Ff`%wER zMb>-e#q%#0ewv)gdopX>ZY+YRJo}{AWCga`GHSLEE?MK78R#B^Y^{~ImjGNj zm^yvthNMp+2hdbeE8EsKsn^5D#|la{qP40aixr)&_Q$E=CY#6YXF^{`^e z@!=vqBhML!)ORXHT>^%+#QM9YE40MzC+l-=z@GKyR@SFo3#b&IANri@qmHI*AWR)< z;@5iWocEJB{yNLTHM{)l_QJ1;Bq{X|8<2qZNq2W;^9Wfku%oERJP92Ev zS%Cdc>8&;@2E7im{&`77uFUN+TiLi?A-nG)<57ah?&1okw@0EPCQK42os4&f_M86s z?rve5CH#VFq3@MpjaP{0Z)!hnw}LJ{&=Gl}dRKQS??trY1K7^;Yx}3v)mlZQSq~X^ zl$Uy1FvDDkeLJH&Uxs+ef4iUmcZ6D2XN6O9#=4hj0yb5j@qk6+pRr^MT6AEnLiD@ni2lNEI_gQC(oW*u`LT5xLVJn$U2NIVM++14Lc6FH(G9R`D?17Tf zC;7?J`E8+b@mseh?|eaHMNbnVs)v5(n)HDbl~<%*{JK6={@7-~L2Zqm2ke%|i0l?$ zNbvI%AL;q$k+zLHzLj z0#XU7d1zXU{c$(J;Co(|qYh2Jfkjh)&9RNk-`#b`i=9$>i6GF^G1^-(eMBKruiujm zNGf?$tWBHk;3`}TefqPDJw#4LD-6nk-qHXGj12MDpmq7_s-ggRD}?&`MZ0^TG6hm$ zu0wjGu&TOp-@E)C|D@D%p1APGpmOG8;Yq+!@^lJZl0)%YZRZV6$TO!XJJcn9Hd!1w z?$z$uYS$s@Q(91T-I)A6hHdSeH?&6OqDujZx-Wt+t?HV-y-RUI;Pom?x1+HO?44v< zz(;#edXbN|X9N?{VehCe_hk4@>e*A#Z69?_$32FM?#aOJbGwbZNO%Yt*38LMvtL69 zX;&AI5;`otH?rsVg0;ciI2EmO9#v$2Kjs#!aK<6M-Tqa&?RkYFRMBY}0eMI24GLBQ zt)-wW(B}8%65M!25Pn&OHs@022&<(#_;JV@Y*>@{XB;qOoRHj6t8dh$s1&h~BMYo& zz%ZQ8uqZVpyBN4$!09mYxzwG`=y;;?=;>#Fvwu`ToB`gK4t$Bg?w0KV$Sd+TXW^S2wn2ULp2dTNuipzkw_ zr(O&te@i>W56>GR-vV+6A8*b=t@m@fE3LmyGZv`gjU_w6+-r}lYBX6}WVskO+{AHe z@K->z*$Pvl1*fcV(a@o@wqsP~cK`w!DM&OTuw4o=*t{tIqwVi^0S@UotSCnYr%dy0 zJQP{z@mvURe+v@cz<$>v9k)KjmFYCc*POvK2-~@g7=E>ys}@P@cBzX$1EM{yp}pvwMN8`sq{A;&-(j9)%k_&=1q>lX)aHr0Q3fEB`#C z?S2QB_q^JXM0|=Zr&gNA4EeA3T_aDf&&Ix>gTNtxyc&mG|%G(0QeQW1N~HV4xTOjqtz^P5*|4FSKy~ z72)x?{a08BKJ}jn@BcRW=1w8Bjn>7giHI_h!E3;LExrIjX&V1k+tkfn**&8=dR$pX zKJXcT`HQ9^Rwd@ee2cx=!LKFmLo&gT^~zy4>dgkPsW_v~o9w(4jg;(miKZm^m!m!# zgGr$`@X@5a0^WmoQ%B?8wY+~4*VIyAjk$hcwvsRkwm3*o;f;n59PDLps%wDSBBs{s8rv&dqBn&#NA1OR42SodVZ_<%VDVZjFyF> z5?GdM5S|jzAB9crSiRb>WLH?Ho^hj}FZMZ)XlMKLtmC60&$&X2?%M z%FGq!;Ru~e6ST|J&ye5-t?f^G9gwXTF7H?;klj!2!>=jm?pDTK%+*Gwwvh0oA-K35LH_NW{meqUE?$jX+PdBd5>W5#QdCTc@T|Vl_7Rn@&B6l5^=+Sy!cf9GmeX2U|L@i%zk-+COMtsLe0K6Lb( zB=HRWoOltL zY%pL8xOG{|8i^0<4@mO?TRFa?a~A=i9_sRsQ! zw_9hW#;3lTzEj}vt*PW$I_;zo3oU781_+t33iVr0M+c_j-L)MY=B*AhAwOD~3Gq){ zX_&N%heRB8Fm;vQTF;6P&_YlOrDE@oV-T;Sd&fE^j!;%wh?BU${jG zz)qtl*3H=IH=vGyb@*sS$wtGaF1f#NR|0;;X||u|fWi(LibI=b&C5D=q^uNLf+iIB z!pT#Ea&CLv0PzoWAwOukX5@c@JlS-|<^m4~b%f;{sSmeKM+mWPoky_9Wy_lmrFY<= z^HEsxr<;fqlV!9ISD9`&>h;Qsns;ZiLDr7x3OrajC$KPXcCH{Ce-A_U6qKd`XMRe7 z$1}e?-S+6Q$gR0RxJ3Rj%zNlp6>w6FT~7gT!*1UD{cRC+zM`Wd%n;$@S&mX6Zsl8Y zM(4MJpt(}K`GJnz=W_UGZlhxaDR76w3mV^8!;}-W41`&cV_~l^T%~0k7e&jHUpa@( z&braXin%-^#3#R0n>amVRmxO}!}_*JuF;UShi>k@WglBTVZA}Wvt2G%j`A_akW+s( zdc8t=1vc|4-Nn}ZXbG`E`m#bM6df`$$qSO3mZ07+g_5R!9$l?`#q9K1ef$l&_E1d?3sj9VJ zLSW=nX?qFNOg#5YRLc2FL3loW-#g|}|5yd~usAu^D`-9oGCtH``^-2$-NJB*8mYi1 zZCl83DjNQt=SDBj5|CxFqMyo++a%)*t?p;^Z8jB%NQu#rTsX-VTN z;~`Zn4oSRX%CXD+3H~&%Gft3v8^S*R+Rbb>3`>I`>%0`E34yrWw=-}qbRueJ$+%5|$*lBxV5 z!Sj;9&ietcf3;~i^ke(e#hv3yh+;Vow~BgIH@N@y^X?MTS6Ye&h$Ni@9=UA(OmS4$ zQISh+$utDddasAzI{}dJw6F1LsF*dCjJl9iLbq4U03MfY&a-FC#*l zRG&-^++)jZTxwj67F@o|DIf8$;pl0(DLUu@dTSJ@e2n-aMpNfR>}?hOvncs3q0S2` zks%mmCcB5&&KN%mo4)mRH>s1Trgo=s?Hhcp>2*g9FJTmW)IP+^*bG!F+`z4#*y@*c z;w^3v7S_B2RAIg}er{?Pd~1n6y7OdUaH{0~u0hoYOI`CP`aUAUdV^V(wzzzaQ%ud( z1>W%Sqr~3d+D#4JIW#_9-wt3RLgo{j`gXGl4Cr}Lx?$o^^x&$m|EL&wb)$pz@CR3a zAP*uw3Mm^zmK20xaggRRRd$u&p6QAL?^)xWn3aGdtp&vEUJiI{amY`=Q{kr70KC&g z|7=E|42dsB)V^n0^cP`F-$ksQUeNQ7#kjkwP!gm$LH@P3o^Q7c%caW8mL&zLR}p6W zhD>QL(EE$Z$Bm~PNle6w`v|q}_*DaHe6DH%$;gNAgMRF;JsO9l%iXKJb<2bixi9BJ z-;hg|xq5;WBDO?y3}1MmA}5l?mf>%xC9Rh|44NyU(NNV$7rrU8pL20)bE3)^Ft3TI z65;uC*U?yXJhrH$!26pA?}@hR<5N#vRr2I+Vi}mpwyJPzQu#bC zJ9jx9nv6(F)aneB#l597E!%tK>dqdSw3uVc%(pIIcrFylqc)X|?iEL9r*Mo2Ff9~J zRk+&E^{m68^IbBdD)xSv!z~;iIBCt2FVM7$cJ_mJMTEQIqaY=e&c|-GwO+}u4j`X# z2905iiCE8vT53Xd3VGWt2dL6jEzxmHZZB_~i~N)~oKYx#MI1v5|6_N`dpro8e-b#x zi#5lw;YPZrqD3-!O8c%@&05uM^2YSbI7yvVE7yot&JMFFZf||8a;{0f_fsH->bPGpnlglB=Ro5Omli4Yaetz zKlT&_C%$^fvhb3Pn7SLd=qJ#6Dki&Vo&&!QK{)idXyYIs*k@)9cXYZJA*W7Ncb8{h zo-T#@kkM=He7*85Io&+B>5s`J#8(@!n{f^7wcF*)wJNZz)VQ=8zjZdg(_Q%1Z z7!Q*5)rP!KCPxCir#B~_lkDxecU|SQZQTCJQ@J3eg1ei>uyDB=2IMP{61kX;aaCH2 zrd$JKpOQyz^14*rgT*D9QLYR0a$ZnHonA>&esAyTF#HZm2C03rwe^#Dmk9Slg`zH0 zdC=zWlzVH5q&Q|}hJy}3=9?6)L60Jr36Zs6y~xbLzBi1E_9l?15}36L~MY?$uV#8Uh2S5@TCOw)x$-wqSWkFi@%q+5bk zjLm}#==OJ2S|Yuvn+lrf4?H>%4#V#4)m`Fv9T@`+71D%tl+!k9bCO@)sEt*Bs$Xh5 zc@?4Z%%WbsP&4+^QdRQ44x`$jaMLsU4g3+SsY9of^_u)vLvS>9I%NWk50M7dF%`8W zSKW`MAKn7)m%5u!Q5LvafiAza+=B1R&$4}{P_!nj`+NKv9Qw6Opt9V@NXQ(>USl2C zJ|1FM25c~M&_AtqX2DK29@pI(bRC;TzY zoOk`X-`PRUpZ@ftH1PUKDd01lgD?NXpqG~4tHT7Q0w@^{q7OoKdDw~v#V<04ME?SZDed?gvBpS&P|x zuibue9D+g=jZ&sjpAD*yNm&Db<@0i`uu@|DYtS=Z1hGJW-7Gs5hut%s)BiVI0q>mn z!Dv%wy;_@>xw7NnL6Y>mN>6*oNtWI0vFxL+DGuU0{4a+}yXqL3yTVO+k7?ohSWeXk zBFMU3-OhtFCKU`~k=yNa$r@Gze&;J=oNm)Dr_c7Z&Ps1RF;Pe$+jLJuXr>u=AA6-; zYpJ{m+A@=Ilx=5Kn*FfJQLXAZ9=CDlq6;4D+b56Ck;Qx-v>k1cM4C{1lUqX(%e9`1 z;9euJ6}oo{=RxhpRHEi6%$$IY<6TA=Zf)uztF$Vg;9I zR26!HODZHplgIGAkoCFxI|*^H)(_S#vlkv}>@_G$ zMyz;*EzjLZmOYppPPS+b&OM@iez{ptsu!|xa$=Cl1*UV+&Oyb>5Pr|aUzixHKOyFw zWSLW>e1A9(nKr9_XZyMd<$CJTHkU)a#p}0OF|#=a^fzCMk!}naaPla(%=~AMFt4h; zbt)(A{ip3z@7c3El0Gw9p(T=jTWxYA^6o3;(EnpAG6ah^jn}> z`y{USzi7SXsTv(0&f^8vpQBqZK&mju1sB*P4ud4;c?dp!HLs$l!H zWIiE^_i!+d_>Of_Q#Dt;U1kZm7mj%85A18>0J%(anF-BR4WR7D-Zi1L!?!cC^QY^s zD#;zaW3*!zhm#jYG(-GezLpUH0l?GtlKzD`l`@tDb4xJ$-~&^aN~#W~i%v#sY~^z{3#jc6i5 zDa16~VfL-;TKBKBgV{&A`>w%#j+Tr0G%2*QT3bNH%t|7;SQK`H3?saI10*3)FBq+nY0EyS8`mZvf+;JVR zjA>2vf7=`@PoM|MFVzLT->!Hb18Qw7ZUG83r^o#zw5le?Cciy{r(Z3abJMp8x$ThK*+|%OG`@M8TceA0uWfh z!6*DQzkgJu7b?pM3kNj-i~?>0{}lraWLX);|E`72?~?wgy;y_UW|t`1`y+A|r+tlA zaE<~lu?heH2IaFa&CbywQX~0N36`U%q&|@B%**Mc_CN*8G*O{QA+eNE;=1xwpjoMY zsiNeQ@5b;;$yT*qgIR<2r6S|32<0P;;@!AY4fS>ZG1`h5s3+W-{PyJueCaaRqCtBh z$_MtnMq%~?fKb$*+G}}ZGmOmLYFsYZ@H5>R;ljT<)TXd+sNNFpZ&DdxZR+MQBHvHd z(^YI`&pqLHm!NZ;o+rLn(A@9o95H+ds#9C~Wy@rPhZC9cz9UjvUjS)m)Gj@a45XhH zB-5Kim8E*1q}ZfuwdHXE4=uWlhw1RcN9kYtP{&h{*i57nxl`dbjRt$7A&ssMR6z?F<33<_AqX@ut!Dy2IPz8XTyxzxjc;Y!y)Z?UZxUu z9|HwsG~6SO<>#**D;9;6+e8r?!oLvAoWsV>`#2tb;>$$L%x8{qsV=?oc=otKEymg<28%oZVfrzq^~w z#naAtJP@T_M)*)Sd&Sn;SYMfpx-t^dc_DIvrc3gDmhsDShwQhY`#@e4sk6h#r32A9 z$#&x>H}-cH)e_Fy`&I~k(A2h15d}!r)U68hOErD3SFi6l7eN~lTTt{zcr&=SATL`T zTpzg|{pmv3ZVxA8BMroFa+Mjjg@GbB&ZULU+ibKAocSM$xza2(8>%YcUEM)kW^LC?-kLfS`xFHat z?$dpwV*ir(+TxlI%xJeTQXI|Se z9i8mgA(kvXk4USCfJbSL_ofJEhI{B5=N>$+3+c({?Nz3Hx|!k>PMSz#m;s}s?T?kZ zj9lD|^X{6*C1*n;8Stax?T#|&r|XaDteGK~5OaqvsWE?w|JoMm((qdLY8TcXo8A|* z`_>O!X3@K=&Kd+0Kv?`j>t5fM@2vyo;rDD+f`EEcV$hAwydP#!FQIT{o7-6P3t78; zSDN14@Ctj~u*6Ym{Q#70ZcxOD?4nwoM2VV+*dn8`M!`U)^i(JH^LG`+GQ^L%RS;%O3q z5NZ|6HIi`6G7X#WbDi^&(%MSIFlm-K61heOENiz}l;9xLY*#&CLhw%*bUbdCudn(o0^TK6%SSvvEstXTXcDPV)Kv7>b~{v9?kb8-VS=P` zJ?hNbhmv|7>?;zMDDjMim`u7l1J%juN6G4H`$ah5jqH=6-1@xr3}?GX%+mK(4Ri=D zx3*$amS6&_lE^A<0LaSsi5wnpDoKwM+lbq?V`g^CqRJ)mcK6 zvqwX*Go7oP3wyl|TrpnRS4FSlxj{c4c^r9B?c{x)FtNydk04pydaHXGviQFyV!vG$ z^KLq63C2rN&eiXZ9M(QpfH*>%wRdaHTPXJNcXyoAc})>)m>Yf-d{#E6Fefk`qdGZ80qMM3nb8L!V^SXtBQ|y3*#OOD25NTq)b4L zF0Q$B#B5^$Xz|RB;GwP3v~6;vR}gZn{4ohyCS>6g7GRcEtU&J?b-kI$80~BX3WK)vLUqn zbr~PS8#2yO5Rkrj%4e$pGBsi0k1|E$fS3Y=H$xflZS((T$L)Lppkn3b@Fvx<2I0;q zS$4J-{aZn00KdL&3ykV!eWsP+BA}m@MJ=eS{J^brmSrrsv|X)ac{zk6zGnxW+5Zsj z0jY*{r?7J5(@8wM(M6?{I$lK5d`Rvo7O=shTe?p*-^jBG~{i^Q7u%^coV*;i`##t41`#}iVP|8UOL(+5E9=)V>l^4&{+hv9iQWc;l_m(S zrEH}A8*=+~;p!#9W{gXVQ$)&f;!moZ%@|!#(U3zGx9lxd;Y%q;*_=DvF(W-S<*VNpfWY*ao0D zI(Cvpi39bCKTXlak;=$PRBik5gox-c?xyCZ&6}iWeJ?&BH`|a7t!3jXw@D@a3 zc{$wT4$7|%FTEfT>4KJ5a7>b}5}KA>O8g@ZtGWPLhJcJHPkbN2^R22-ZVJ9`Tp^|` zcj=Y$(YYJw=W)fY$8iNjP757S6Po&R9gB*duxEpxV~WgA`nA&_hB7@Uo>OEWlbw3* z7dxxWxrqlx16$O#j4UHOY~*UKd@r8I`J4NE(~WIuIdxB0V>!mC>Wi=qG?}5-XRO;D zYwBSW4JU&NTH$wI<7*xCQi_gf$f3C0ac?Y(*R*^nSGVG1*}s!(I(RwKwlDZz6{Bt# z$K@0*#CukAwb{xuM)mpCdb>lr9JrL_>m*Y5ZjVfQt#ck^A?vmMtOIvCkJ~q-DJC9f zT!Dt%>EUtf&cfx{7kMGGS#~aaya_hD?PfgyN#W88IAz@q3Vz93dJ3IzJ>WbuE#s1i zkk2X;C+=$QmXe%f1dl7jYzC;?heVZV@3)ONe~xQfhd19cNEU|;B_jCqwi3t;bHgVD zK#y-oFt?ecF3^*6RU}GOw7QVmS@u&|G6LyXp$RU9`7%w9h5Sav)Un(8!k|<3T z{2R;2Q-$_A4jl=~`RR^x*Q}or>#552dl!MO{z-pxgOwuMUD7C}2wVK*GHF%cY2#IJ zvryR_#+75xmT~5suRUqc=T;_0$>jq)WlEB%Z&U8eK2c;|8!D=p7&Yj1m&9R#9ZUSAS?uD>tV=8}hf9~2Y70hnd=cE6di&O`hEWgB z=v2V^=(Ja4&i}I|pBaMm)HvINy*#OqV2tLSz0F%K^zbF`uapo#7nl|xIv^oh(Snk zYXsS5nchh9jfgpgu*=JaLe!>*=GIg4s01Q;*OpufFy(dBFUVQPS8k0}j?`j153_Lb z%%aa0MaI<%UmZnsYpHdIW?$XVNkW)JaNJLMtNX2L-GG`cs~Wb(J@w!q+2WjloXAmK zid3J|b;a2I*3nX0*+%jwmYCM>xp_u)LX|_+%{t%F8 zI5l{NQ4lvf)7kjKvXiSVUx=3}Bff9|g1Rebvm_PNAaa$qQib|W`x)yI7JIBW$9?Wt z^EQ93!Q;!19|py;W{UXU5sdO%;Jw4|kkl)dor(|089r9*aT2zZK+HW6Rb*sSOu85; zE#EIQqC!w5J4MkINN{@LGDzG=$if5bBuOz4t8o1U3nd-OHwH^0EA|G!=4>uvgcwCf zxC)MoUO`<2wT-6_p;#ze11>1B=D3FuJc%xq2B|UTF4llN(3pL-d`l>Qs%tuKB37pk zFk)Uu-+r)@4LEw56s~9ceYm4E(Hrz%=pTF%RFC%Ngsb)0ejepoDXogj_4QxX31_OM zad=vrp|+d>FUsGtwH)L(Lk!LoQXJm)18h3Di*7Inh+1|b8o{s#Q$!~O# zgDwZ9t$uoley&efQKx=FGFETy{^P4xNihR~1tDdZOS1 z+{)o`>u>Zs{CXO*`a7a)PG2&`*!{T)?Hs55m3bDLBF-JhG@y z?nOjNe5tfVtG7Z(aPt=cbLY1-d@!8gis5n}N;VBvDBhx(>9DtyHD$FYYR>A-MR|Kp zt)Fv*wnCkPk*tW(a-ZwFtL$6l9^@+J`+%m7?1_j~AM)gQA8wJZ0&cWo?k2nC=**O@ zdPH!j8m0v|iw=S{YpUz}!?M9deNe^*Epp{aCcOJAK>1qjAx(tkNKBqjVNb^KPVY$uk&P5%?@tjr{({(f-LmS)9Aq-5-AOVHyidFR(Xq7O?7`wSNhH zb3KiWvsqK5_IjOXn^w-BXb_VOv&ItCI|I4C9-mH8d{KwZ!T$C(eiOkxlTy&of0fo- znGL>S^H`3>+au*3<*sA$%L!}Tv=ENdYHKYkk0!3nRhodXaiQbrvpGNG>9)H7azkB` zY4!*+Z@1MYf1WmjegzzSl0s|ID$7djp(&)pr<`+`Nzy2mjc?--tCy+m9e%HSyY>U= z0{w0|Fcq?DK^Hq5>EIV=0+TcY_Nc~+QRK2O%uf4V=}0rT(;}vNS!kpx6EScW9;*tsD`+yfd-cXK5+pK4 zj7U!GUz%j^bvm^;zbPt4Y`EZUsi!nnUWu>(JRMHa@|e10{RrwdW@0kYQ@=l;M-s8c zCx+e(B}$#f_a)%vcIGGDxM( zq>D#6_-+w12UBHUNWQ3)O}z8XMZO0xQ_gm4(u?<4)rN^(u1Ry&my|TmD_Wzd7^Cgr z6@-d-K>xnBU{tmaaf|2Wn{^MNVoFdz#g=};s(RX718F&rR1w^a1~f@;L$mxbMFphw zK~n%mW@SHhK~j#%UFE7{QG0{&5AbHS8_KbH*$Pj_Dei#Wmpqbq=hjdnnQQ7^c&JI) zF~~aEn+cf{W+SQNP)?;kTnMEcK`1E{&DhIFnsTH8lJkR=8*P*`Sx$z~`3F>O@A~Xk zz%2e9*#FPi&28@K-^Ab(3PsHj(=VKuK+Gk4iaTzTV84T=j-_7$JN2nr%jFj*Xr9wX zVAuKs4;}P;P?edoK$Vt!o{FjQW3(hWpIkKzH#UX={5UvxUJS5!gm=OismFR+?!qeg z{Qw9jaLua!1|I*TH3D#lRyb@!N44?4cv}veSxC!j!ZIy3#2SNjcR1D7+yc7xU3Z?R z{HHtz0+ms8-DYmtiIP^5d!eVylL*YOA}U)2$MJ2QFB{JDXZs|K3hP>!uTHnz9!nW! zbXJvR?17f9pV_ezydSjAppdmk+q7k;In;4)jtvJ|itU4t!^7seoDpX-ZpUv~;BVFu3E+nM*a(X65e@e_9f&7XPH! zOm;AxiXH|{DkI5H!(3}F@cp0GzB8(+?Cp0PECT`-#-WHoL_|eO)KCNg1yqoL4o#$q zp(cii2pS+TDpDi@QX^HQcZ4JqDGHb)sFVy7_!o za&pc-=XsuA+wr#ggO0Xdr~vv{P%eB|LU)F&r+$v!5s_lw$PRmC`0k&^o?b3jX_QmHBcZrFW?9+X+U)J>gChokO))##* z?BjRTswZc0?{x=C8nhLSp@rCnj^FC0%BoJ~->yeG@&doF0ewDJP^Cq^VNalUw^V^S z?d`%TS{l_XZr34IDzx@ZEmGXhgzGTup@>baKQ47;@@jQl_H|o!Qe_0ynb-1$b@IM! zcW3PzEbr3wW_IG&S113vvp1z4ke!0 z8Y3U`Hl{FCCR#qXL+biQ-Wt&HT!}%RDO8?|cNRsfL{%0aD;qn9M;#1dLlja^-l;Fa zvu!P7Rr4Bf=6?kc$B!zEollLfNB%V6G#coomE&Hi34SwrcgGpYJl1_mtc`Vi)H52^ zEaXyM$xS6k$i-u7bI@;y98l$VjE&}*8bkG z6?^~Dg%J^wBigBAnhTorMu86pUsbxN^##S%eZPjg`jN!b(D@uR+y$i?2{zN|Av|zY zEEicOyEjs(CluPEJuOtSSz>=n7Qp^u+r1)bgVr|Xk@2TVnUs|++39z%1IRQo`i&3T zIae}d(_SfijG(V--mp{B1zPmLm-!`LmHSF&y^UddW}I{K*X=|Z=4d7l5K90qbKRu4h@UlniOdvKQ?J-*!{?Ba7osmI%o*4>sI?B~{SE&U; zM}GJ15b^EW;#IsQjOFm>1^gGnTqwBqj3C3OG{j`vV9~3(b0|;F(nqp~opkFvM!a_- z)BlV1HJg}{_xWZJ3z8Un(K=x6$Ae%rfWSPz{Q9`47cJ%%gEXb$6{rYF%BzzU-pdlH zL8%E-F^pGBoL&*Soapxf8X|d+~k{3^mlwj+|OS&4@#U+k|lf03Da;!XXcCPlr$0X*TQ`<|kW)hvd zOa8p@-hbtfNylokA(R?&f+|(_;dB$Er zIxg>Gx#%UQ!pjB4?S+_J#}8$@HEed#ty;Pe!#25&4RwmM8RyxibqpvvtNwa$TS3uG z(ZU#X49vkN!JGQ5kXT8Dtq_5xg@`CNIh=Ms@z{t|%O$Otg zk)=po6C1Vbo1{Ih_+ztG;{@RNpHZ@J-6O=xY$6$v#L|@ zwI!6jz(M25e=8feYdkWQIR?ZxS-@)@Jj$WuJ50iX{>J)W{Y|oai70(s)@QQwp@^Ra zgqW)muV;Fn$HlBX3qA-3we>nJcATu2EVUFQdUJ3ShLx9U5Xq}ZF^5pEoj1FQazNY# zG>4Lvubp(1oO;385m|-TWiC6KO)NRvm=)FQv8U0mQ4O5Bg-iOaIYQX#u?3!Koru>* zt3YET@y9?_SyB@%ZK5r%K1JC0`#l}n`uzg)^m(zEw@*!oRL292T7A== zwp?(MiJ;v4qqeEE?h%Q0NsfXp%z@fr2+GQTn_4Jk03`koRqp@G{<41i%l?J+#JHK8 zn13+iP2l&@y0Y_fTkogwKHQIf9a!En`Zi-j@BZrRxoR+-ch>AdKdFUC3{6!&aZyU! zh{p=<$NLKc7b0t=b3r>eI~|kNgdBWnp7}AE!>t@N4S7yHbVnAH{OmtO=T0K(Op1EF zLlhce)2()kI>WxDcuaQ%&3fFB3fT>$CF)lkw(bcl*};w7)Wh!g2T(eV@@WJ9+%-5{ zk9O|#B4-lXi7oRSBzLU3iLKVrnj&Q7fa!Sd`xI-w2$lY{i4 zJ*L4A8fHbZZ&hn43R?%Bcv!Od8IA=go0 z8nXL3zRb|Dlv`1{?akcSVlyJq#fLk!nyeia_`&=6w)@Io2&AfJzvq?Td(~nF#HuMS z`DZ0z$($Uph@3yosby{#+8gEEIU08M2ZZbQ88nS@_Kt?}zqAmv=KzPh6`5~_R~(Ossoe(oTxSf;DcP!| zW)@;ol)R^^&G|)8G_)x7-XQt@=C3hIaTjTJkf+*dZi zOS+f9?lKSBWLtMzQHFQm-OgTwFkAE1Mmfq=CvA2e97IBZsZlRUZsIy3E%+fTjXXrm zhJBIuDn>RLl$%|vc3RMWDAUBtVOU|Pn%KM?=s&h%wpP_tvlQdu;W%slzaoAPx2EoaGO!BkoQ5GJb zwRR`j;(>bTnEEw`(VLAozuxS+6Z{+-CX){f`B7akX9d05Y3#yAT@3`GCKZx&91t{0TG7K zs+tLy<{H4JXFMwM-;ciybkzy4`4;G&u;L?*Zmtm0-0JDPa>&p8Y@EgLLH~1%)cpcV zUJ2*OSHfJ%ysf%W$oO8|!SjF{8I{R0W6y~?qDqRe-rZZ95yAEfqJU35ho89I*l^NT zai-vQ8LXip;QVCVN+}8-N%Kh{o(=FrPdxVm*E3dY9$jkNsm!Qju1%a8wq;iaGRCcp za@;^`sUA!)qMQodg6<4x-pxHtk(vBs=BV?Pi+yRSZ28^%=RwpCPf_pnU+c-Yti(>o z?ix>iRigGjydF9lX(^_6yKKOKFez7nz3Mb$@11j46zO2qUR(5EkD8%mylCx`^`jmc zm5%FY&Gn$SpaCB=sW7n^jxH*NY}TBI$K-x4dv#_}REJSBB{dRSZVG#M7CE3Y#Zdm} z)Vj>pAMMUi_&INp8nP(1i52KY0n;w^2Ixf#+mE}EhxRoetD>`n#cWnQZ~Zbj$2zJqO;A&)%Smv;{ggHU&2*DSN48l zKF0Vofjp13r}IMpIU1&C$`>D56j<4jw}8E(%Q$UqUd*Qf{s0qKZTu}U;H6(y zIx)GiSJMeQmT25B$j_)c)je7}6%|O@VP5jam+EoNe=`LHDFcW_^~yCd!mBm< z#j|qi<-#$A<7!l32>Fe@Uxesu9e;U6P-$uede*M#U0A(4d{=4W^O^{aPh{Dcg&lcm zHNSP6J8V#D%G=K1AOc#T(oc0|b=3Fm>_h(Qm$TyQnjZ^SuW`T>{>)Lv-^>!I zZ?N_kl~I1htU!P`!<(GYMIzdcIZD?Urt57uxjqh#{}^V?q0^_5Az1kQ*M5fd$e{&> zfR8ywuu+x$d32xpDuH~fGkRzQ(_hx_t)Gt{4WAVIm6xrOreqFd zre&8AA5%leWR)psCzU?NLCBTuMX`;?K~x#;ypwQvVPnC}^OLoqpOR!e?3}j)Cf%QX zZo?AyJF=EEFcD?FTK^y8Y~Jsd?`zv{9}P?QH&4t3lDA$}K{wq((N0JlLk1%#e^ul> z^%9jbimt-R@c-z(v{EtP@JF zDbBpfb2!T%3DzT^A3b{~V?@MdLZ2`h1(bdtMj*$OhT2yu&o39wN`=M;@AJI8lJHq% zqJUP1a}rQn)5i#^+x_p_o$7z+lCDGZ14bE*EQdBZFgUH&SqY$k-vsvA&!Maem*Jbo zp;*F6_6YjlikRD{`px#vj^p0hGHZnoK(|V6*jc zcZ0`kwb0labmlKUNS#33Rm_vEEBPKZ@?$wF;MBnF{i7MBQ+XZ2oG%qFUwF89f1h9l z{gZnjT4kPrC?@x6K&*W;tvQ5m1kOO)!Zk>#OSzYXjkTCRN7HYi25#Sd&R%t%P7F)0 zV`{Zu`gwtrncsXgeDSKD3qx_;afF1s(o*C?;}i5u8?T~0hA%8EKTIL#N$jaT0k&vE zY=;IA7|4excI!@E$SL>I503`43zm0xLGx;4xK4J!VYqC;gywY23%B_wYW_Z{F-sOV z2!^S|Z~}aygSnUl!G%W4JEbZyv|LVjD=NoCkWp z7qb6m0rgVG*`u%X(433fB)yO1XFR@xL8?-WM8@L$N{(cCl6}iECotH^h4W|SvPYLzGS6N}nqqdZV0#6usDX$$QVB8aOkTqF(NC3=93QOt zs(K;q1DCDn`VHR)uwA+E`EwcJv1`Z!$I;HL4XI)jiWjNBkjAe`l0S4(>GcM{t-cir zKMD$yvF?8F)8W)%cM#V<352mj3MH^e+4x59LigN1TKckOM#+uPkA6F`x#2p(ELgUjp4`BDFkUvWHR~w} zZ?HlP4?;?#S09XI%w;wgmq)yZ?0salPl7Cbb4C3=p_Y8>cfN-ELHq7>-C}we%N6+8 zX!Yb}V-n_0narOD%>&D9RsB#LwuH+J--xZ@$llHGv!pMu`=)@omb>S-%ORi}R?}}Q z!5WjAkoK0&Ady2b+2F5<+7=uURS(AFW;{x@C95R6rPNUbO(T#>BCh2PKjd~85)!ZB zwbYIcoj|v+E0^rWl&R?F(5%pRRy?UKN2)zqvt(}YF7*~HO3VR&v+(7OHzOG?WfL!@ z`se*7`ygsl?IJ@BJQGgFIDzk_9D=GZX;sptSx#-_f zdbDqRyoCB+(86|6yJmX{d-y#w*Wtr({7uwJ;EDYpO3G+IsQNHrFphsrnMx9cC}l<& ztn?jy@zjz+s34axj^TP);ipOH&=_fd`a&CK)#b_P^A*rJB!L-t2ZiXHxrIiUbpGi* zGP~C%N)i0x6De+ij8(*g;wQql#9Tc)4^mCqu|zPRn$wM$FIYhelXO-sIr20t##ANd z^l10u4k`j$O7hu&>>WHfaYDPp7$M&+rhYdm4{y4rI<Dag?gqe zR{Yjdc^H&!dw+C~@uKv9)8H5|&ujKpi7I+9^3F{o>A zeqr5y^SvJ+`cc%-s^(5p4eXrO_SpL{wS$o2;bg_I^ri+~;iy-oes4PNq^;1SiQ7Dt zsG;(_@II;c%gCfii{-TZnbxSQWw>-^@Gyno8?C3H;`18@qZeA(xE+$s$o$UMm^9jG zEgXWy;LZuShKq1i!o4k&w8)m7YW27M1two=i>jCo0u4)pHc8bH>If8qQ-|Z5Q5VV< z32DAClq}%2ulv8iA0t_{WKautEax}oz;VA+;fKV~2c||u^2h_kf>wqhuf3KqawW!> z|6)Y-G_Zb zXTD%_$rcnd+1AX=oCnY2W($Ghwszj?B_a10u@OX9F+fj5QMmW z#C{3k59LYDEyrGS0dsBEM^xfs_pyU4W3FouXJQKBpf$>%%{!gCcE;LI00D-`fbjD3@9@4mYHE?lhq23iSyTN-JGm4f3} zdyX&E9Udfny48fSEiJSx-4$c`xv1p4kXNCS4+=LS*Op~L-_fe*1hn{C3#K8l7LfcC z!{o37S1-i4;Yv4M7~AOOj1nM6BZ>RW*QUM)86z!^Mr z$oEyT%AB42EP7Qu@(~D%*P4U+6Izi+eN|hnY}9k1ZNb|&E~)4kgS5%=zz1H~ zkJMkJmjXMa|Mp>0Si_91)a6}im=>)g@LX2>?KW?wvb~Y3_~OLn@s}cblD@W`SPBJs z#w59Z_x9Kk5$x@@9yw zNY&+>Y3;B91_G<6;{@!?vmg}b_^2h^k9NP>ZzpqYk#4OZTIzy{QAT4M*0M@N98tbPHw4=W+=Q}i` z4is3z3U$9p+eLgTT}Xe)<(H9EJ|S#2A#A*rk0T@_63Gwv(mFyrlOD`3;$fs z)%v)Ng0Xq9?{-x#B?dTkda`hOpRDA7)G!Pbdgt3GDd~tu)F@hlT2#n3mu;yi6Y`7f zTZYMAWgEqY;Lk_1dd_z_CMFIJh=Ef=xQ>V6qHb9AY6RmeUUnt%r4|ckzVWoX06yV5 z`}KKmTI%(ydWWw~l<5FiDmpP;fT#Ozu8L%a%FrikJ4aBjY5$va&c_VcpjiK=@ckbF zq5XSlw8SyZ&halEA&VZg_2?Se9fH~lKE2YQC6l^=_dA_0&wXvnU3)s0xmufPzxI2I zEZErozm5TUK(j9qCCj+m2~=P8Y8NH_QCijk!2!<{LNPaf(vutS`k$7wovEf98@ci~ zO{zPB71F1qfNIZ9!=-1_Nj18eAT28|_}*SgKsEqq{f*x=fHU-T&a9s}bAx+T(SDM{ z|0v@RskZ;79nPlJ#mkMy>Bq`x?p;!*KBAFapscz0uuAf?X;jV zt-tvl==9oHb4<~Ln7Kv}Rq7oU9w3erByj9pe(3@rlpNvK@(E=|7Pov(a!>8bbhk&( zmhSY#yI%qrGOk@D=M9#(?Kt#8dVSFx*WG{~kFjdcGG~4?eG?zK5!pD z!NtISL?%}jSBlUOVy^{yz|r3((2+6H;r_Y0v0=nSr@Fq~1r$A(2H#`($xWbrMS~ji z!=^0|SWFo~+_ZfQv3GmFWuO-cynsGLM}>!9BkLkRm?QuXfJ?9?W1o-b)4K=Z{R84A z7gKVginJ~2H~llzc7SOiDxnQW-5XNeqU|ly5`Bjyl1A#{oVv#@k5|IkB+0Vp(tP9{f^~ObXCVIS`+b>;%&8Z01*$4teOEPCmDi!paoSI4xXbswnDM99h zsee`H)xt0KA)5o;cGygD0&a^b;vC<3kTQtDs5PeGnYa^r<4NuJ>P#2f9Kpq+4q2B^ z-(#a+SQO_v4r?wa{uYnG~!0QU^ zOT%5XtQi(g^Vz)lax#m|rQXc--ggThne!t8EvDcDQZVg@cSQ;wq}Aqe_Soiq1dq}) z5W?v!X7hP$>ARhz;L&=P{{K4-IP8CDhjenqyDa?_a+4~FI}#)@`3v}%7@HfFoxkz$ Fe*t+iia`JX literal 43561 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

Object that represents a message passed between modules. + public class Message + { + public byte[] Content { set; get; }; + + public Dictionary Properties { set; get; }; + + public Message(); + + public Message(byte[] msgInByteArray); + + public Message(string content, Dictionary properties); + + public Message(Message message); + + public byte[] ToByteArray(); + } + } +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +### Broker +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C# + + namespace Microsoft.Azure.IoT.Gateway + { + /// Object that represents the message broker, to which messsages will be published. + public class Broker + { + /// + /// Publish a message to the message broker. + /// + /// Object representing the message to be published to the broker. + /// + public void Publish(Message message); + } + } +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +### IGatewayModule +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C# + + /// Interface to be implemented by the .NET Module + public interface IGatewayModule + { + /// + /// Creates a module using the specified configuration connecting to the specified message broker. + /// + /// The broker to which this module will connect. + /// A byte[] with user-defined configuration for this module. This parameter shall be enconded to a UTF-8 String. + /// + void Create(Broker broker, byte[] configuration); + + /// + /// Disposes of the resources allocated by/for this module. + /// + /// + void Destroy(); + + /// + /// The module's callback function that is called upon message receipt. + /// + /// The message being sent to the module. + /// + void Receive(Message received_message); + } + + /// Optional Start Interface to be implemented by the .NET Module + public interface IGatewayModuleStart + { + + /// + /// Informs module the gateway is ready to send and receive messages. + /// + /// + void Start(); + + } +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +Flow Diagram +------------ + +Following is the flow diagram of a lifecycle of the [.NET Core](https://github.com/dotnet/) module: +![](images/flow_chart.png) + + + diff --git a/bindings/dotnetcore/devdoc/images/flow_chart.png b/bindings/dotnetcore/devdoc/images/flow_chart.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f1be62d2bc03ba578cbf7f2cf18914ba5851ed GIT binary patch literal 71831 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 literal 0 HcmV?d00001 diff --git a/bindings/dotnetcore/devdoc/resources/dotnet-core-biding-hld.vsdx b/bindings/dotnetcore/devdoc/resources/dotnet-core-biding-hld.vsdx new file mode 100644 index 0000000000000000000000000000000000000000..fcabf92782528c6f6ca538f670db6cec96867f8c GIT binary patch literal 49535 zcmeFZgOe`NmgZfyPx+K>yXur}+qP}nwr$%sPuaHZukP({ZgfxIo_}EG%{LN}85yyk z$luy~uV-b-N&tf(1AqZQ0002s12o^O(PjVw01Sfz0Q>@g0MZb!v34}FcGOXHvo&(i zqH(pd#LEW(BFhB;`nmr9{r)djpfPF8x}OeN=sD>PKCVScKbN|k0w@A*A{q1(fYKYV z;uddR(r5b^!IV!@IY}yiu=`n4W+q@xTzL$r@|XHyVTO|^Q2DH8shM;)$@S?ku}qWj z264*KF-$BBSQ{I#geJh0T=llh$xhap#CCnK_%_MkvMciDlxZU}oJGMX+m=v`%cl=! zc}d`h3bff4Z)N0wo|enxpxHv+ZGA z-Kl;pIn#`u@7#PKl8YiqQ>9%8E*_&_;$s@hcsy5}F$@Zv7@dcLa{%5*mh9$D+phzw9mTXNoWy1M7uMu)i}cu` zF^CTc6okLs7aA8y4KK@Bk2w&v>|lH>MKL-gno7=r9=5TQ3c)GBttIyzGBKwEMv8Gn zVe$r@Iv}DtPm+VMnS(g9S^HqWDuU@*cXqz!Q{}wQ+Z@G(ap_lENAVm|PWKea9-4jV z!6eTrmb*0mrZy6!OQ3Qd2Q26oZrI?7iek=>Q2(7Oj1G#X4Rini#|8iZq@OFC%^b{Z zXbo))oUDHO%YSr~7g`z)>#gzL+vT6|JAJ0D6n(qJ@K@E?8G)S1qnj+!PBZ$;K>pOnWpk8c6xLkdz zArJ3b)iXk0y9}&r_zXMa*6vtW%voM;d3@E=jDI1i6%C+h@OQQ7IbIXrN~3QUDH&Gr z6GwGzhJtDXZ45*Epxm!{hpB8uVlSy6MyNgXp4q_F6DTAT%_g-vqg2y$asoJ=H6eC9 zF7eq9brUTd(EEm1z1|G!Fr4oW!ULV}t~c?_SEr^%<& zW1L%fk=oZ?_QX4dwi$wHca5Es>0$$9o}(DeHVo}6={VE`FNF84QnV@rfD6_`;5XX) z-Zw(}vlPvPv!p@CkzxZL@_5_@`L&c+f>qAfj#0>Y0xzruRiDDgLHJRG*9F6{F`@$n zluqlK7D;*|!1spa4*@kF3`uN$`ta-lj5MDZJNEUZ%gglF+6ck2crF(&cOXBn>$A%X zlb~qb6b4hP9+iAkxM0&t-rh{&G+Lxfu0!mWpa|Oc6Ks``d=uq5Gj}vuR}J}aHnDu*zT|*x zVJDilyfoIY_$HCVaH%?yb3eUJDK|7PpI$ziOC2-h zR4zcQfa)>h*5j3CVJ{8sg?9i^WwdT<5@I`z0_?!aLG(@y1G<90j}k>jD_88qEz>HJ zR^euR^?q~+5twpD85b;UDDd!~GBc@=wdX_A`Uzn@?Re7C3_Kz|dv>h2vh#%J-`xNG z&ax{{NC3kVMY z@i(rOx-E{f6C~KKwXA;GX(wXUn&df8!lWjUOKIc#yJF`ka(9qxVa179TR|9^Jc|76 zN|dv`HB9wt`ur#4r3%9C*UNX0@rEF|uat>)uPzIz-k{tt+2|2ipL#58oYZikc+YOi6&^t#3z3_pu!0IO}vOH_q*H(V_Hf*pun`*Bx$5xYuA9lj;)T#;}!GzP^1bnxtG4_SBEe z=rN&voG4z5zanjdde-bIp?4rpM#QDKp0c$Q!?8(WY_#42k2*U3f&tbs7lC}+KVZsC zVZftMJ{J`$D%nA~t$Qv)=`rYoVv+J0j%&XO-aSJ^W?)uv8V`FO%~x>tNjNK)es^ty zQ)S|R79oh-c_>W23hGIk6?%0rO&y2D&SvRnU;qsCG6bSIfxVu8uhaL5Lnt?@td3m<9tR@<&I1!MB<@T-KP^Mqu#Py*;BH@O%f zx@j`m4!A0)l-17&%PAF3VMZPs51%m7S*&Pcw@ zuoZ3y8z6#;-rGMkmzs<$2${_>2nYyu%L$E2q0Bd+3s($E`CW(N)M{&?%hD|WCo(Ku z4*Novl>wp(iyb5nTlI^AD_}L@Y)M+dwVlBv8mO@7-j@%+nEs8V9%}L~J`;s?Or&;Z zfY?vDbCWUJ6Dn3I78nBTwg&^)5FR0Rkr%)=I{cTba)do;Uk_DGe7{K&>VC}8ckn%Q zw!CGK&=SZeMPr#}-AP#l=;l2txXzSJzP@5kribnb7Ix(x!!|VHm+ZMEy*vL&0&{fs3I7rCp_V|DERn=TZkWyPtb98ab7pzhE-l@}Wzh zqNNo>G}ebXZ&qB4V8M_*uyumxqd#Uz589G3b)C47DdC5QyE$MLe^RMe0!cx`b+nji zM-R?|w2_FjL|gqZU7kM>1iswr-;h<@DlhHA47kUc4meM_$7miN$2z&Ig`y#b4`N(m zdxe^BTR;wCD^eE#-PU0nJi+TZ;^I5J!vO`vqn!&q?5bcL4?l3zC zkP`E!3iwmY)pJx@g>5h3{{C01qzk+Lobi0hp?+ZC04~(MuY*4|8KJw5DAvOmEMOfKFrEDIGDEcR-#9I|XgOWw$v>gb^GK zvg^b!x$q?|r~8G_S1k5+O z*`R3apP5DIFv3a)-CLFptbIIwU>}Dsv~5SID_p>Y*xM5gS>p=I6u!g8U)~}1oa$n? z%9OoQUD4{!j1_d)Su^_!+0;8xL79ulNIrOTg5UM^cyNo0cC%{RFbQNQG2W<5Z$gH&ee&7vW@=}l2Flb^SmiOK(8wWAC z2{iB{o@$r+F7|_jnI-qY&#EAv6Y!EASpzu6+mW01*Y5O!_*G@b_gywu7lBf_q6Lu%d^Nac9a@Uv@;@4 z*vP+rYRTrzhrLLTRDb~2ZV_aSjM}T^9q<y`5;P`U+UNA8iF)ZPA zsl+fOZ8V@vLU((a5|GEU$;xJ!j>$^3eGS$XdYmQdR)@#V;ZL z^~l(kbw_UyWqlRWy59sB!>J^GD4movzA`c;K2+Ms%)fYuG3OQeadkXTfPE>7eMoC! zTS3M*Z9#U@QJi;^Qk-XXgK1Kcrs{5YO7`HPuN4H~o%jM4EvG79nF{Qn=DpQ1q~q1J zdtrf5UDYhTsXo-s)U0f`X=PoIZljf*h(QQ@jeCB#p+1D*b)!|e*Xgp_MgNQQ8VnUg zj>AOkq$0(N?nH5&hVE+6N7w^zJtWLgm!Dw=gK^$J3VO6*Rven7V#no!;!kRCtXV$@ zO$v=9-bJGxP@)7b34$Rez27^|>7ZakZAp2fzQ1%K+AlJOsnlLR&*T&tRuWz1HG03X zBHUjPlpjI8H(h;_A|$eo>I{Gfi-+?lutKbW{oslKvZvu-q2elzb_p}T9e3@=3~10* z3ym=gpiPNe5qU%Xs(Q84*;6HK3M&L0F#SGw&$&6xl*}=#hLnJ0BhgMN5rH!#d>mCq zhuD(MVnJe6N=pP#^&c8VfkX>M%*igREmWB~X01XgT4FF%qpsg6?Jz75128>SxeExu zAqn2h6;~+TjEHO!F<&?M30z}M3D5*Z@eE6M)~ejEa{2T5Ia^}^?EF$Th%@?vg#tu` zaFhon02fr8h0bqDT0hnTS8lXl)VHO&B1O#F{Xpey1r`N0Ira><_`#?0*rU1u%8(PZ@~i?HleQjaVtsAX-}MHm%rPessX+dKVC>k`*j`C1AejRKMf zSt@&mtNdp}RXVKH$J=onohU3S@IWdHP5m?q3yDw=l;sPFXew94_?M#`7$Xb`3=&TC zO9j;E2|CL=XThvasm@q~i`4TN+vNJfqfy&ajOgVZ%cxwGwF8o#XejgK>nYIY>>J9H z5U$k1w%S4OgJ(pT2M zF&<(`)u8}&4k*$>DW`!`5((A0-1rC!%XUZV=6jCX*qWDKdF?(Fx?}GR zq=|4`k5Xol6P$pr9)+mxQ=h&8E83CGEP_^{3YvH#DN?lbWny~m?a+zygGJxPQE$#D zhpj}Tvg=bSOXWj97@q>ooax>=cU})R z2$+6s)~&spf89crZ)KRgu!kN*LEH;paPd%gT>Y~ZM!|cLK_QI!RO2lzvW2Xe22bnF0@FJf;9~9$A%pxa2m-k!y89!7v10zCg&Z- zo3|dY?I0&>q?<^{)-k zZBbi!Xv*Vsrl=^;EJ4pl0_z(B(3dFGi%W98)rR#4v9Gdst2e{mLtRp9*7f%{86FKF z=KbWGa7D5tiN9NBiev(Ad=$v<6xZNwxu0|~U^uQ=VdU%+fN>OrMXO3zza{0|gAKbE z8ne61oujD1#1@;;sS^qYqsc`@@L!}oRE@GyHY0Oy*t3n8&)qY5p>iT@Qpcb9}qOu+S4q5|} z>gB2undTp9viGu|c#FWD7iJSlQBD3%uu=~7{82cG*4^5w3@7nE1#TsyYi_LD5KxF7iX08PronQK1 z_=h8%B!N$2yY;dc32$wmvrip(EmtR#k4A;&AB9(@w#<<&L$*;c#Tm zsb>Qt+WE;RgtYQt4)d#JFKAEly}5H5mSEs~R*lLaaJjNO*|P5@7Um*SY7VH+B)o4| z&6#zY)IDm{qpl?GzZBj)Uem7GJG!jur;VLj-fPscD}8cG-_NnOXE;B#eMsQg>nUe; zB2$S!dGx{n0aqqG+N9K0=YYIkt|xES$A4>-a1{zYQI6yO$W zN$V-5xF2eED;n3W-a4&b;4NN@)~*XZdbQ2Pb7--uwrFk@pq&f^9#*km?v|nGsV{Ps z+xtgUBD}fhgH}j@z8zv4p}4n@hV$SLtnbM6sExQi?C3!a%x}L+poilx!a=HUciT9l zQu2>$gluE{5O}*!Z=_&s01kC1j9)ynDwo0#9Sej4@?X6W>%eooq?yGCai)%Myk2C^ zlcd^%foL!tqiWCkCRo{cc;-|{N0(r_oa#p%Q+*4aqLwH_4SmU|9NAHO7pgxjU~{Cz zaIBgY-W*Y@>&+X#^bKy##`h6vN0V!|W#Y7~^anD$3ml~fmea2GLr&j}QGyszM@qCa zZS|ckTrNQ^=0=GFW%;^Z{(ztCJ)Fs-0SQWP)(i@cjGSp1{)0-V&%OPhYI#eC9vyd3fTTQ8(CCRPgQ$6*ZoDGI>;mlyIMKI4CO zME>bH7RL9P|9DM;*Fj$aD<0IG)J2J-ZHc_q#Ge58HCA#Gltjd4U)>UC@vW_G2Sm<+ z$Cs{+nqF;u7xW|&+I&ihc(cFFE3c6~EtlbG@#L4f=YZW5Z3jUr-oC6~qXVWt4*2K)H{?_SJpu3>Q#H94I(!$>_oxw!8ZweUiy+`~CKwqDlrBhi01 zlIW!9HMf666Z^4eiT)*?m7as6k-Y=$e~9@1AN|8s`lp7C3tj)vu=lnr)&-$u#Dp`9 zoY=mZe<_yRHw;Gk*YA+W%EIwsY}>x5Yp7!v+_teSMecx^LCCt4 zO+NYN&ozZM^o>s)HGZ>&z5>7H(qMJqN>x}0(w?5wMhe0+4*?A~?>ET56KK)CS*`y^ z7`Gq!@ct!`t)7X||B~mQ`~MQBGIj#0{~u?IEKopL0JL)7Yom@8uk4)OtO88wjvt6ui{?c% z+iAZ9Q@fx)xgT<5QDIf0q3}a`c`Dt_0aC+qkU=wpnZqKgk;bw`8V|qo2Q3LPLK$=}+ta z`vZa|TT9jb^Kjh20|21>Z|(nA%P*9r9M)M7x?GCC{aCXl!|RPWaTL;2!_}wAl0_0X z5B~a*#}0ykr~)KbeY{ci!Uq%;a{O`Hc)^1o3)vhRSodo6{?1e|i3lRf46@#V)dX)y zwSkZjXi*#+D?0DQ{eGKx#1^k}1eh{BF&0Nr>89O>ITm$i4+Bl%lGC1a$RULctLq^~ zSiptz&&wg~-!Q*SI;lDWHAZ0FB@hvJ*DQ1jC6AfFVg%&_JMQj9CNGsYE{r8vOQMpE z6lg(E)vp`6T2VZmEXngY;%FfodCuzy+{71`DOQa~9#5SRBS)DzpWy?ww43I}qTA54wMEU$=!t0WCL2&?hwis6bmqXc zZQD!bB^-RxbUxE2#4R8e=X38;3v<=BB$ znJusBh3ZeF(IQvG+%d-Q|3+pOK8*P2|weAez$p5`myXa<- z85ma;X7B1?;g{MJ)6;OG0tI3-%NW727jDU~GRaDk@@oG2+f~>~*L@YzwGUq>LoT+L zNC1efj=m}a`=PO6VfRMMLVNgI-GcLR3pQXP0x{D@a%l19VFKOtJN#FRRX;A3*8$4 z>zIb7Z?73dvm?~fgKjYuPAWfG{;j!3=hW#dno9?I_i zfK-K7o442B^s7>xb<1cpB@jpPT{DTHX=i5j~xV28E zHb1Y<-=Feo7Bdx`x=>`NI79t%!8^;hJ)}NK@pBdU+=wtiLcaQ~803w#9sH~dDjH9gIaHe7g1XWApSTETgQXG?GE_EK&?rr_gjA3A>1S_Kg&jmx6Nlr=Vo5 zS=f;5bgcL^(s2DO#>k*B=525>jM1L=Yi&Yre$Vb;N_V=~KY|W|Op-}30`jv{jX`5( zraF(a#X;O**8qKC-SZb8;AqqU*;+C80?$2%llRdq8B#SEf%2CI`hkPoixXaY{*4iy zbhTg+xgFoYD%Uk~TNe1a%z~NleT}5>pE<{f@pPsx42%H^xfGBM5w}&{J(s)Oe z39^UXF*m`di31ha{i}YmN!CjiyBp_>@!&_A{*X9iTFA((aScBt%faF798z+H>RX^g z*Nxdo-1^|r%MFeBoKxehLcq?h*}<%opzcJyZl;1U|D#i3b&@&b`*mZqjV;+Cna({?)ts*V=GDtEp9YaHJ~32(LY8eC+V(#3E&J0sODs(Pbapi5y9 z(@dr7gtw~f9?&J3#E&a>ZZ~jnU?x!Sf|;AMqN3X&eY}#Sfbaa|L-H%VaJ7L+5W7z? zNh$p%EzoQi6yGuVU?YOPz1AMG0rcFLt7~P{=SQ=#Q{8}f$?SVm8FaAXGn znQdz?eKEgSWd~}tM=F%Kd}D0(e~%(P-O4?uf69J9S}Z;}OelY%nUFyR+sn%fW-*1|LtA6P^o+krO*z+lobG0qB{@IgjZ!T%(~)-{-L{M2`Qb`#b z#bOKwCWG^^M103s8DL<>^Emt5K4*sx*q+YUj;=IKtlPYc(Ix-lK9btO2)6IhipA&{ zda-I*Ei!q2`tDUsv>c)CEajyo$a$PwpGC&0%`l{v?ACux9_#l4%s?#hZei~|Ad(Y{ zJyA~R9Pjc}LcoQ!4zgom)*CWwmmX-vo519P0wnZ16$C2E1Ai@aww~f)cJvHY4hj~g zS-%Pjsj z6Y^>P!EqvqZtF`_t5A9qBs+woZKA3>r$0o-vO`1VIFRY< z3&aRUZ*s&^M5Vd0-4=z1`R=huYC8)#V~20|gJo+PO)Zg^KG`^@ zJ*b(bemVbItyt~~RF-s7nVp~61lSXty>EXeCgUDvv;MOc=s12A`m@s-F26ddPM#+V z4HHFdaImE(8Hy}q;cq5L)p{LXiqX;<8rPxZb*;ikFuDR^Rn{>IFdS9a@zv@5eAqzH z^Q!F_t;Mt-1GL$xy4&^r9Sf0jUKM3LFA#xFEO?{>8RUAKb2lnqQFc zt_qSQ?=vp%|VB+KoI59M4_?x*UUZ8T)F$Yb| zYP=-Ug@e%dmN0>^(jQ?j9r0H8^$~rtM+P{{t&k;n+mpQhK_nuNr6dI+!pi8UR<@p(bP{u;;6Z7KlxYGBU&)R_S%@kD)&k`^F z&L;V&m{s1)+Bc)r<3gxG(u1M1M{$D@`{Jop4H4iM(pzctgZ;W2jdz(VpOf>z(v|(O zS6Unts;V*PXkbGZpLDS5J)!J3LVoG^QsD~ZPqybz0eRF*yVR*heq8e=Yg`jZIfK4D z@SLS@5HAR)z-}MJw*a}a8*Cu23l8Ax)k#7*(83YqHX;F{2Dl1?(n|R)L-9X!1~#2n zsZw=qI|L^)^CORcWIVHxvsa&;>~ED>p2O9u3O4x;+4uFh8OGJ^mOr(!dV?W*-5c~b zOV9(w4x8y|7(VCi8rZ|aA2;I>a%YFK<&Zf86x)DH_H0!Wq_;CoQ|MS;CWdHiKPCEn z#s&lGblDZZU(U_r0)(%Y@aaFZKLX*M+(dxlwSFiA$S!Gu6~F~WsVUzB&Dc zpST=tteyH8UbeDGpwJRfU&X8D@`4@V?&`rhG-mkC0C@JcGReHfHXdEH$!v_ueAB(? zTc)J~O~{Z(vogq?z-&oDxcd6LO%7MGa>sl_ zM~t)6+hNBsg-mKt;2Z4XUl^snZYk2i9Ol2FG8H1_cZV0tI?~`|2dPbEGj%fppvkX# z0#0o3(vE)`u`lvu??b0dMN2dr%1Rba6IWDy2y!)lin^qp5pEX^FCjJ5q<}91w#bce z_VR>Rsg(5OIPZF?$mro5gS7_rI`Rbk>6V<4z($8*nRVF)FCZ&SN(jM0*(7_!x6Mo6 z%Ner4@la&S#zAjyLua(m{TQ9Y&X0TyKC+H|Sh-(0`}s$DhPB^oyIouro1!NJ&br++ zYnnMmgcsS^td}_H*3Zzt{a#s|wTxC|YeIcWC|Y2fiYZuOn|Kr-`wu?X#%c`vvs{;E z;m(OGX6Vz{J%#vBS^jQG-LI9yq`RQhHS>Hp0@s>KwAqhs^ZP#h)a2W$^V<#%6WdZJ*cq)-&VoE%HS0n?e zTxVw|k!UrcNiCBw7j!EmBkZNSs`QUnV0p3Y_N6xCZ`Mc8)YC6ralI>k7rT+|&lUG& zQuiC)mMC6e3lSAEj3OzUDWJ-tk|r0ENkMG8>XjCU;~R@VWJ% z>Zt`n#^Ecq_wvR?BnP6NEkQwg#}QO$DlqOfhAgB4?WvjEhRe~4%2LG517>33H-O~T zJ5s-#Dw(~(@s=m~J|M|Y*irzc3(Et}xd6;>QHWxki&fH^2!qWaC8`yp(1zxq=LO#O7aqjwsU{e*k)C;zfx% z;QeS!gj)_v9LdACdRT8xdn|ktfdXq=N?nXJ?2 zuc}xR<)7vQQcA{VBC=;-3-}gVp`8ld4@85IXePf|2rM^#NL{dTYNs(k#zJg zVfM{LX?}+kYZf-XD>!KTmSZOmYa9b0=BIS#*+yQ$8*8$O{dmqqE6Q+uDQ){*7>c<5j@eNGS?n|>x5gqp8_v08Xq{8kg!2(ipDl{nKzS`bk+ ze!3x$phNCoq_}wKyHuRrLMKgJots-QvdMmKxZJw+fjbq6Qn4{_H&;47^p;KBgu6zs zF1$+<&FdBd%l?(#kZNM1XUKP<%SPq&!N0`3^RU(6h9PVg_yQX*h!AzH717(^q)5iaUK<4gZU0bB6R=8Hw>5#W3NiXCmO5{ zD%)dfhE-HNdo&uLDeS~-5`-J@s8D34^;in^F}P>K6xdOU$3+%zwt2FO8XN`kH!j3R zCf{XldA!SI#@k>?UJc7ht&|C{6F0n9J@>hDn>SNHuZoe*n>#A`l&m-8V0u{&{%Tzf z7v2OtZ-_Ho798u~%OsB3H|~j)QxaWG74A+++|xU6!*;{VJ)GQ3v~M7&!YzE}flG<&n~b z*Y=Ul`YiLE)swnFzJ=e18G%jPT)p9LOl2MsEEGJ!;9Y*S$&fniF=$NY!!Mba#Dy<@ zfG}#LE)}A>3H_#pld3=SI*0U3M<*5nb;OnQ{klyMPDXc*O!T%CF_ zxbQvy^(!bvxe-vIF@vCrDcP6uU3kro+%c!1gJS(3kc6TSD4e7$h1W%e>dNu4`2#5m6_OJ+tV;ybVJ1)c9Cs*u=dm zaoj?Vfm@k?0r?@zc7--AX4raw#Tta=uSduCU;hqp4=r;-lOMpbVE$*o8U6wIUu6xO zH9B;!oW}1RCwS`;W;D~~2vN$xA|Z;%q{R6Wa@b&1sl8FS#*5|a3D`^osLMjBePW`o z>XBnk=gYexhq+8!zBC(MtvNb^?y2FwIhd}f(r_~L?VT?#c}q=#qOJk2__qRny;Epl z&i!<3DoT2sgAIXuav6+$BzgLbGDZoIO<^1*2%1%7YWAH>_h#WJJ4C?$ zM!P;`bKFzX^5b91tbxqp*rfzxozym7PE0U@`O9L9^$`K)S7eVAQkb7F5MOm7_gq2~ zCINuN8#J|)gjIVvk9Vp~=`Gzbnqw1|+asD1)e!nRpM6Gv=e$;Xv7A1@&5FAjEOA*< ziGFhH(X+^?L3rQ2u+9^UT^;s2l`7ZSlB;mCXa=zce3dK^Q<9O3lSkk z?{A-R2e*lK>;->V5)@u#?Cf%EY_LO65Y6%}4HeusFdc=3F0xXAqH+CaB6?z31k8Fo zD*L7CT^>x1k8s3U4xXH@Y`9P~zeX(?@q`YzfRqtY38{;1I}lr3yl;DN8@D749FnfU zL>94r;c;|<)=@o^$v|DJ(ZC|1lxAWrAQod71)2M!;#ZbYJyd=wjJKITWj`0v9jLa# z2u_4GXxV}2u}X~4e5X>lyX8*pvDTy~IX?n@o%ewD0BZ`%=`?k6U!mw={cKYpv^Or|W z3^gaCM%dA$QvpkLEI{V&#$MAwnO2I5SIVy;n}3^7zurDJPhzE;u*+ZL z#01=Q0Q2XMHikaHDPUuBO`C^Ip`D&G{BIeND+KpsMoZhhLQmNn)e@IFYP_Q7>xDcl z?+*8RY~0*&S(`|#bZWd-dRzs&Gp7kfE78xp`)cQ%i?LQ6R4aE_V;_*%>!f5Pc$h{Y zLR!PX!=Q1OX~scz^u0JD@{q0Ag0zs4bjL^Q8tvzLpJ0S^A^4osuh;g;cQ?V-j0HmwN5?{ zmqX3w)jg!E<|jW5myNw~HofbH@`tOvdb^_?$ z!UA`xe-X~V{=oX*N74Ge$)w{yfT#Q)3jzKK@_$rG#7>0+(Zl#&`(Ml2x1`Cbq1NqN z^_}O#%W~Kivwh}~*LQy&ig07&_C9lWsSw@Z;@tCZ!x?*H`|aG%8RVaG8@!+Gf4qA9zZXRObGY#zI>b$x z1M&Un0J^O=x;a)YPd=n(FR{#(?^h1m)qyPOpSCGlfW2&2u67QU;pL&Mw6KaD(_Xx z;x8=f&cA9P-u?<)6Ii&k>8>o$o_{-GeO((ao7bj-&;(gLo{jRmq70A$H!-A9wUas6 z+IES8S9EB6sS)g4G9aP4UZyLD=g+8poj+CpLJ3%GG|U8?j5pJSWwl?}v~;yJ z96LW>6xW}3wO6cPT{ya^Yq>3V>~Lh5HTl~>o@7#8 zAgjxn24fgzX{b2C`93EVN=B(-%nTKfN?!iwNbztJjSRLsSHaUNS1|IUT6WY))1~9V zM8l@9UV-B9;biAwr{1StiBh|gS+k_efxBvg>suY{OC%hjFVTE9c^TfiPb(O=pAX`_ z)qfDiZo zv2Ew{+4s9oci*@9v|i>|^Q%!~R2406>M|r|5#zrN+M%Ho4{vcek-3L{xhLxDKN{S<}iU7)!3& z_%eUoMP{$>ETXu|K<(&tYJ^3XoD;cF@JbPoN;TOZzr;T8{{Y*HQV4mM)!_YABcSK< zO=3`O(S^7kH8lhWG>ad&TvKZK@v-T2nE37+J<%Y;9|L0bck(t3!lLF@e^V1UY@c6% zlDluu;z3kT%0TH(%z_U#-vuf|G*L7s-lg{k#9siZB-`G**ML0>z~52Nq1ET)5@&8i zmia~&l1~d=2G3hb9FLYsjn}9rr9nC$`iZT2>m@p474L-2H8}-zT{Kd4E&k<>l~RMW zpD#(BGAG;yn>P$htMB1}xw&P*oeG*G8eQtd_JWmAB5s>v!HdZsC;~ewfmUb`L{5t1 z(_q2QR{#-DLHB#WxFf6^CCRFyZn0<}6&I1$G5U2+syNXVvjMIzv3lCEQie>zKAgv< zNddVyzd}60Fc+P7fYR-0?9EZFsVwy)8=o2}g04J_*#lb4=AmlHGmO@;R@kYk_{7dy z;Xz(ct?3*Hp&Qjqh^v`PSK&}nHjoR)SP^S&x$IAWBCK#Kk)Lv!l8}<->;AhuPJ_7f zSApr+LdJQeG>N0XcImpt1-XIqR)Y)5mT%=QE^xu8JE&nT+8Ie%;%`3ePp5>XMM7sN z0q>XsUbO??Kl#U1?2{O6KBT4e~Ud)Yy&E6negp_p7A=O#P{zkSQH7DQIaAR5x??OVsfmoEIx zuJx$tZ0H@X&7R!h_fvO=DBRf*y+%GN`2zCU{iRX$9pXc#!k`-7VK)&#is!a)(8z>t z8lt!z=gM)fF&-&sT2H2$*4n=s+8fD#ieBFk-m#qSuy6~Y*L2(Ms`we zIOM+)1&_l{03F%IriTl=Q*EJG2Yn-f0L>ab-@8nDI~MkDdN?X1VFi5yIz>v5C^@7av&0K|^_p1^_a1xeQa0VerOfi9kh0oMOvU+`3L-EMc zFJn)X%qd<>4CaC@JFcERu=aX#P6bdVR+(C=78Nx;Q;{guX7K~wy^*P3*;@fyDZ8%E z{EQl4{UL0nhROU(tQtQ^`+DY28YZmA1pO+h!%x5#;b}|flR4YYZDhRPKQblQVcX7p zb=#C2YEomCQ|L27v%W~H{^%0zeF3z(TxUooiTUijRr5jkFfW|njooViJ`JWe85U?d z-n)JyHml@aY^oKIabtZA^+$V;(dbFo%o}OjZ$18a!{nMg7cuRrujA0mshy2@8kricv9jYaQo|nd0TteU^53<=>%QZkE#dbNrR>-e}R;^UgZG zj~{bI6BM=ZpvgRMU#AUW*kr*vwJWVa`rmEGV2C@lDnHirMVyjwovDfK^fg$}yjI61 zU9c`ac+Dt|tL)Rw&FZP5?Xcp4DN}-NH5AX3ms;cxP{K!+zeh0Am6+eMpG!FnLme_X zB$<=>P&g5I?$x07CJ#}N4`9$SEbU>CQ9~^$w+2^ItFUOPt9CQ4A?R}`78Gnz5gV8i z@~5Q-prcLqMXJ?Q*pRF5*2(+=R__v}R)?Jh{Elo?)!E7a;`zf_0;Yc;eIhNTi+=j# zq+Z|Q?QdYgEd`I>7paT14g|1c2e9A;lZp@8Lh)jVPytneumh9_nuy3nD>S8eTB{+O znva7NZ&SAKFBnw2T4N!b;rjC+kpDQO;&wb1rJaJwc;2g0_`W?#hIq2&W6^#;6t(a~9qgJm<8ZUG zwUXLi^AN}0lC9wJ)$WfExhg*OgYT)Sa88|X{qae;>w(i~bM*I)=k4FyiY0{)TND#R zGeJzGw>`R)-C8_5fc0o}I1hofm8yf!S^v1p>9 zFEUfltX9wyWb%?IGX4ZV?;LwbHq_~M_|j2pr=Z=OyLd9&wqZwz_LNtv**G6ZdTd!< zK+XhNkLnTZ*{;mAQZwq6UAqX2k%+lPfv&uC3;tpl^gW0@z&^m_mbhW8R*opEWLoy> z&14*V!td+}y5OIWb{or?F`|)L#nDaveM0>wH5UeLh}UXRpuJsWR(FxznL3e)$y6&g zR`3a_(Vszk^c+rp{t-mXs1Uk;RBLq(6~mf35Vr)Al4992t`!R zu-3nOR3m3nUpfsVn!%b9?hXJS{QHr^gicNs!)Crq3}vc#$a+zNh@w*BC=>T65lmWc zOkP6xoc9nM13@=z!Ju?+a zGYg$GFg`INx1+CiwixMO1UlaALX)`g3W>%$z*XY$=Yf5(kdm`@15}x5QJ?d{+IRXT z$au~RtV7TWt@6^$C6|j}qf~^EGL7;jhsqNr>Mi$%9G8D-U53?J7PSp-`%HX;my6)j z=+dh>>U+V`O6Rv$-WA*XLx;2W27g1&2Q`|r-_|ezg4>He7Mler6Ye``c`yDuZD6E# zgkS>h?NdJz%p>+armD_MJ3pen2bV~sX(z$5Cks^!-WaEOscTG&(hff&68Qu5w4Dd% zU^6W_yoy3e<0H;fweT6%aGC`P)DA7;Ed8A}%0dqD2|+!&p>n7uwosI=dkfZfE^fl% znw)#Ys@nNREp+SnU9Oom@3=%nt@IV<`xUr}t4K z0)G5!Pb)T4pV%mpTwF_uJi^OQB2Y=;>eKFruLwT3>Yr4SDk7(Mz2_@*< z-deXl-s|lG_17|dKc^23hUf7hM>0v?(nm2w^#nv^TZdGv>6Cdx#+P@!A$yDSrq<&)sU9E zq-P`*?@ib%OJe$de{~)HLBz3vDI;Xq298_?O13_iyP<4)7?(hFEq|?6IaQRjb{Q3m zNIdQ)gyI2(O0f{yzciEXL~yo2?;B=Mz;PL+GD##GceZ^`mxE=&Qe@6B2!^;VAtP33HKp+-WwsP{Hv_8y?u)aI= zI~4(5x?}kHmb`4BKX1UN4bDr|zVpA=$oMH@FsvO$2bKFF!pN+>c!dQjW~~|O_!kM*5&Aeb zBjA7a`HmNi&Dr7p1^cL$U6M0IdhP;xa*Cy{Mh|XZY7o2qSfFL^VQ0a4V=k3_5g1(3 z5t>wIZVFxn4Co@(1iv)z-CXCQ8GVP1Ak-AabAw;d~Z%B3D-g^&u4%xoG* zu9024kcd@Tnh8{{RN*u-_A(fHqQqOSkiVRFxg=;t9J9MAKhTgn`>9Rlny?3zer9+0 zqPO<7gj$Bj%Gx)m3=YYYlIRs62yVM4fMxXv71F-h@JW=imZ~6mY)eg$kE!Vs@235| zg*Fp-x^(hV?7~Y^YE9KJ5a2u5C9=+Lik_sP6f)Cfk zmV=Q@yf+#!DNilfjnSs)X(nn^c!|2-Qzz|Qrm z=Xn`b!ukgd@WUPyxN_c&w>+K$TqIZHcQU-b3&lr!;)3V*P#FEM*`km2Q7R1|(-XK5 zM}Im0h81J0MBVF?6GYuPqoU> z8)af^wQj31?69e2{3gpN*>+iGhoV0u(vd8+ZP*t0{o|NwBBv)Z&D2?XW>I5Y_f<2< zOqyePw?LgXTK#QAfsh|)RbkyZ)?l-}B0ue-)Jl%K$9S72f+xSsHrV9)Y)PH>J5{1# zo{-R&R7H-RI1uhGoem>o^;aEN9b3?Ch&N8iq&1(sfC7M7VfVuOS_7woq#?TI45wqd#;gaL<0!Q{p|47xQ(@Oz8VsiyLTO$y&^KXA06R@D?(qV@vT^xqU1s;Qil8hi3!XW{AXaRXv&Y1@=&xI+;hk^?nY+)}h>X5nd z=M18Zd8WiN37=|bCCe3ZLWZAVu?}w95zYY?hB-%?zZ*t(4uRquHD(`i2QZfOYOSQA^HGoU<%=CQQEjk87NG9qMCEmpEc;# zlDQw%6o??T)g7)5Mp$=6ce_LBaaB!zdO?1bLr)K~>a4*LUChu0+iji@74@c25M{j< zUgbg2nAfmk3D(o=QN!B3mEcRO>S~7AjdT)313IQiP@xsXh&qCe2=h{TU3M3YVG!4O z9T>JQ>igchDRb^l-nu91yG^!dtDp?tH|k2k?ANh5N32E3jNdwV+Ta4iyKK=;A}?Ks zn(5k}-FRflp>ej}qXs)`=PBYf-f4)e<;7K@;2FD!U1|#|$G@W#a1I{ye4eKlv$CgQ za7vcLJ=*UhQ7lTYn+*dJ!2rIZea7US@62??+BoROk^rj!Z)r zy~(;Y&4g)SlIMB67ThGzB{kBgCgN>NQp^Qc8$kicGS~GmXNL!VImkl=c9|sqko>9b zb*sL=)Zk+ZSb^A^GB6IJg)JpBG&B8E>zg1tI-&*o{rM9xB5NIwL zr*9{WX~ynU!+fUCR)c-mHylWg6WWlTQ^bmcDk$2e^TU=hgEYoeQ;sT?!VPlaU&A#b z6u(s7roHa&O&zoDMn`M z@3_*c5a%|x!m76y6z^?7pz1%eU*%N`~d$l`;bj^?a*%2YUzl-H_?mvr@yP$ z4)41IjiW&62judq6#=;r>rN)QYSpb=i(@Ugp&sq2c?53sfF6~EZ*~n=CWg8J7oX(j zySV7#L87xQC`PkSR&Gd&f(O}k)WD(_lqNwqTPZSHcwdKRvHE143y*xDMEEKcI?f%v0dg(!?Yb0U?uL)C!0HZdtljM= zFipNxO#O%*N&1S?p`d`7tphJ`)N}2}4ItH z(*Es|X7I7jgm+8OT*~VPR>6}QRF18}ws7%dyR5CmS#dp-UN^UR_)IH37j)V;C*N5J zs$2{+FdW3&kW-Q;5N5Dhd}g2q1;qn@(C&Z(bVn7EuB!V7l7f5jix-D#o~S%m*IvAc zmD-9t*dt4s;|&hF3J6g#cZanlR5bH6tg3d5{2V?|rl^~dPw2R{e}tnV!xs^iKtdbQ z$51F1ZEe3Q@aP_iQrLp~;eZDfjLDMx~IP}RVXCl zFA-|jof*PF{oOdfS*!%n+q>)iKQ4}f?+d-Q&auQ=bG(QRR!YYZB@1x^x?8%6ljV-v zp&gdSfgx+gWAumX~&_$r6OGjr3g6Cfr`~0TT z{IUN$qk-KL=)P|d6Ke!1b+fltb~8a)I@}?K-|kW~KJA`YRpa*w;(#pIq3~~b)BX)L ziBhE3da@U7Xlu9$V_o@RJcYyDQC<<$t8vzhEKI0^&{cqUs5>@AP$xMyaa4p>4KI7E zL`9ME1x3d|I+On8bD^t41MAwVwW*jW-t~2KTS$!ld@L5oGth+w?CR zCSMATz$BOXpbl-#4%lYPXFR|9X?U><2gU^f+G%6$4|Awa@tG)zNU;QCVrPfhg|?sW=&-{1tkShb@YcMT*q}+gwQ@F(mjDsqt$T_SDop{XP9OBoC_FIL`Vau+qb%>(9HG#|SFt zYYE1OsU5!-_Ln!J^!9>8rZcadw#n4MvUlq94h}Dg+C9N>{jXF`>eSI1Um+uY!XR(CbqRrl*{qEq9Oy>;m`$L>xkgPhFntAz4 zLv5f+ikG_ywwQhB4%FaHxyf1KKI0KeR{@(fm@L#dS2+7F?EVcw>*+Mn8yvA3$dv;( zJ51EfndC-_tZ4r~HRDvM(4$Bp**k|ke&eTA^Y4@UE#(RnyK*#c&PZovyTibidMmZ5 z%!(0aol2ZH!>qals~jU>-b=*y>`%=9Mv4|W2$gmJYkD4NLH?`4{Xe7ZOCM`zT+WuO zm-5V?z6@189)L~9-?(-q1?t4Aw%E&48JYbpMrv&<*=)t)$l`1Z-!Cm7oYNSHj&*sZ z2AiN78JmXAJB#1FD?6}%zg`Sh7yCzz>a(ZJc}4vW;UR}Fy?vQ8^seFTH3;=h2K)W| zeqMTg-1vIvo{t;Vn04qO+bmnQu=T6eIe$FgoIHHhbmP*BF2>)Cdb0gAV`ffP8BYiW z*j!!2FUKvbg-Feirc4?ta8r{`n`TlI5Ex(p(rv4Ci?Tn6v2DKhs?4RW9 z_1my(ZNpD6p7zdO+udUM-ZKdPb-)OfV4`k2Xd@?GY>+_%4O@~pmYO+BZyo0Na zv{#{bdiCxqy1k4Tg;-b7ApM+k z>jhh24dhD~3BTL2^={RBA{f>PH$w!we>k%)DvAKZ++F~iz?Yhls5|abf+Sy-ALrZm z?U^}JM*qh{(K}#59Z*2hPdLDfR50$8G8J@q(=+1apx5+3lfD@9VO{RCvH;f!xv2~1 z&Yc?~FIsrZh5?A>?R`4Hu~G1Ri$$-e(A4JM3cPu0z>v9@K|QLoz!TPn&760T^C50{ zUDw+dVe0<%zK4{K+#`>>G!`}R`OJB0&-OWcEd9XlAiQ%+gTA40zjpcMZ_eLjmG}FP z!R^K%12;chyu8mQHwRA`r4MD@heTNtnjsL;@R*5O8s?FnGxD(k>CgQ?+Hk(vj2eDFn~kk?s{$B7 z-S(SeIu?;F_p~G%xAKhhsd0%!&$oArRFOes#S+NKw$#N2nI83dBbLXIj}@`c8*xh= z6Z1xBW*#V}N>C4RR63Rt&#gCY!c->poRLfwK&kQ=LcdvI7gvHCp(4b;$>>Dho+nqO z{$|?UWN@fe%By(UUEI&%vY2XA8fw{>nU-8!rAuU*=`QDOw)7CL=~ufBf5%<}fH^D& zvitOD3m2m*Vyt3>b#aF+k|H<1~iz4my=Fh2gL0VZ2?L-TgS*#Itwb zc4vo8LL5eZv*1RXyMfm9#Evvh>WJ}ZyQ&qtEPrp?M3;^3>b6BqiJK{f<`f)3{xju5 z6~gnifG=(7qIt4ZHx0w{G3NeB_%lu~3uLa~-fpehItTX3x&du7_AAW(B(Gc$ zS6^sdwY_6l`mdhsA=xTM9#RC1w}|J0?V-y{28;(mkDu433*f?KBY}{c*-w(8>hxJ( zJ_7|!yvb;&I@^52Ksb#Hj<;|8;&6+tuI+|VzofJ*)LS4Pm65!KAw=(BH;>l_<#%>H zqYdoyZV1CvGt1mJm+MJt=3&HAKs|C*^q0|uQTHVc`U>j-l_s7k(^~wZ%?oF^!?TJT zF#++|gkX5tD>IzyW`iy2e)wpQuXU$oR701Qs0AoR5`kQ?M$B>xdBUX`QzZT4!FH1Q zsQs*rBgQ8vNOANGgXGQUiO9s6!OyW@Wkg3ua4k<`NSN_PaGwSveg%tkks_*>jnm}S zXCH{*D;h{IK&rL+a#lD}rx=aZfNi-3)^1ZuFs2FtMQ}o-RAh6=BB}~v3jHG@&02GL zaN@jJTs^H9(3 zpXpJVkc#~9?{kPVoO70VS0Pz|QrtL;9t24Wv!EeR9^aEQi%);1#|vjMAsH?TwS=o2GvG ziPj5>3OWzLSJUO~J5q~r(rTW}^Ooq^iGHF`G4S#17oCEWT_juPjCw|1h-GA*$GNF5 zn&$?DGD|N*%?6sR`3GK9Y18Z%=0^~@lTvyb^_0_lO#E$F)Z0}|YMn5t#zX>~g!Blw zNM@-P7Wqm_d9gPOiZFWVm53avjh~8`x-tPGCUP`dQjBG*p8P%y-8o5D(8AH`6eNz2 zaApM1dm~radyAmf7ST?`eI*|<0*shq{`#SM1f5Mzv0-sPp_pP8t4K=-O2>r%uYn~| z6A7=!aw?(eLM`hIU1|ymZrY1!ItVZ z|J@-Jt#&^U@%?f%h!e8+l7N2^uc|`y@6gS|3#Jilnf1^3KIvzspMW6u=U&DOo}UY5 z_4&v9$cQXdumRY0S)n0RZ@NJPa&~TV>yq9diAv@zT^ z1+?2^7UkAl%>}(mh?nPVYKJ6)6Sj%n;%Dd%=|V?~o0VrRH~hq$*Dvt<(Z6r5X?81np%pYqq*6Zr3zu2+cXSblU;! zLPhE9`)_oN%pgk|ZEBGfnj6VEi#XfS$$D6M#ETgu({S8N!VHw^L~0Xt&kN&n>TIhJ z^J`V>lu}a6&~}2#bR)`T&ss>+&{(_ae%-(8R;%fmYom?yK)PqU3pG?~Q*@yM%8h`5 z@+Np|NMOe+Qc!`RzQhHwha+#oGHe0t->k*eeKGb3;)ystxuT1p9b>Q$AY#?XKnjg` z5l6N$Bs}7HNGgIh!hKqq_PX61zYA6`(`0*oWtH~MJ;YSnwtSm%B4qR6Zn_gZk*!Qe zv@;Jwh=WZur~o5jS->`Q%Jqf#t;0HxOHg$P1z1BNkq%FkWNO$kHpe6-5RwS?BOdU{ zG)zV6sAh3t0gv3((*kXqOQY$0DcD|+u&4Sd|JL%TNIP0FVjSz7zKt;YEf|0J$t9IeMr4}qFaJCT^{{|Mo(W1^U&@FQPs!l!r+F<*tZsEY~RN$u|X5v|YZMd=Zs;rl% znNZ8h0ZiUfg>PBdBn}{bWr;=b{Gy?;{%UGnUpsuB%V@6FcwgVQ9FVkLsc_NHR+mrY zFhGec`HL2T+hK!F9qlOj>jBh_Pp{hQz0yY{hCQq~2jpTB)Pg{2aS)2*aQpy>%@))u zxlo~bLrnR=#mA>YEkeUs&CTC~ii~6`@Q;g`EpBxt)_VJNX8IrT@{EssR{ZQXnbpVW zWosHpQFMZGecl5?2)C|I0&3NAFj1c>i zCqYU3T|n6T5B+CWU77)I=OCC2{bbIZ6&2!i2}xC@;AFh)`0&UN(SMM3S>`sO#;;fI z?Z~f-l#ZFBDMaqPFiN;D(wt^}|zH;&rJpkkXlDCq{qf6#k z&j1$5{ASB>-ehGevq~Oz7drBiYqDg}sR*r&Q6tf*`%7izUGmc8dt6+U;pa%~QP^;BfR z4q^=Wsf6H% z<^YWR?igO^D~sP|tN6t62lGU^Tyv=(O6}Z6zmH+>qku|1jj_iS@4is4XCfo1A_az$ zJ2)?#dYM-Y(zXJl?%Z(;XULWatbeXtZDWJf)@;12ybL1}vUy>EbtK;SGQG!!QH`?lUhTjUO8Ja&IUclz|IY2Hr ze&=N!pS~j7Zg~w04R$d^mx?gRlt7hH0x3KH>5BtpFdATmt#^ z_Zs}~(ubs}Ts=)}@vYh4MqTq2#1!$jniZ9Az1DcyOHljIk@7FfgOG>;YQ~+BngYjo z@tg_`P({eGqya=iSnxI&8M(G)aCs|$J(~KoA|)tgSwU%GKM+yY#idbHc5j@ML~UN9 z5pJx_5jjg7HZi~ptCm>n7%eKR%>`7u)H-!ck@85yl{BJBHWcy_AIY|i$R2Ofc#P91 zn|5Yi)g;d0c?&-lf+VNRc)tEk-;fb{#sww-maK%ajJdz72zyLMEC4qNmQ4^|F&e2v zJGvT0zU-^`JbH{6s(RrY2pfS#tm&c*C=i&6Og0TkkF1WpSmLmqY`~G3Cw1+>$R)CT zc=+`7PO!AOSo}lAcnwLBK>`3$BtojHUWi<@sRxfBOYyqO8qXT{kG{AabJl627uqti z&WB~}F;Bz+H!d4Tf|0~|lF1xAL|NF9JPQrG$NZNA!)C5dFn^uNcLUY2n=B}yIl<O;cO@n>8n4hkE>Ry-vRq!$Q;B4`ULA6eLkW4A3ef{m2gmSna- z$PN_<7{ai6VFk!irn;&{$V%c%W6tIl#nQ#G9HX}xP`jGwfYdcj%f47IX?L2q360&= zkh_{de+r^DCCt{QrSXrEAp0+WAp`%^nnoQGh)2b1yq9GK|E+K$aTMp?i_0&j>Y6U^ zU6DtQdHs_`zBTV$=pfli(mI8Hea5eMPSD=aS>}q-zNIc6Tk*j2|83ha zyD<1;Oj$NsA9JGQs3Bm_YZ?K(3zfvC>DJI~VK!gvAIAWOC zLV4lUG%cD85}?W=0^&h5CiW(Up#MEK_`7;587#uEDH#Gj0f$AS430%$?{%cius=j8_T7pF6DDPEHqwa6+|xI;Kad17gTp>-EixPCPh(LG z*iMBhG&P6dT1_m6at%5UZ7hdV8z<%GKOgILeVvD!;F@Y9Aqd-IF*6gR{$?qrSLEi5 z#r@5i6A$LpU9-iMb3@aP_aX!sV`H!8n$s%nCcXKDwSq16CBCbrpKq97Lm?(r)q`l; zyz#|4U@H+KxZNi(FORtlu5k_D|3Y!N!b?>S+Zdqn#0Hb%r#GPI7zT9Z6a{B4Ihowo z=(O5}bb_p7Vq?#2n>jXK@y?l`6XvC_$7foxcVldo4H-5snGJP%6!wcFO|%oUu1GO7N%P%?kn==|XGEEi z%tdIRG0w{3^(GW5u+Apo?exT%U!Ci(o=yUNhEI+A-s}d^hjCm8i|<+F$;%FOK5+MF z&%&4MlI1+KIc&>a4b6Kw&9LfEGY1!BW5i`2@Z9PCCK_X z&;cXbmcpCeP#OY|J|;6H0YR>zf9bT+#r?!MASx8OWRB4feJ+7mA$=~SxPx?2XtLP= z2pGm3&C>`cJAd)0TDV(CAOTryD~lS^ZQ^-u5*!Rv)`2{*O-)-DFtnr%146{L4=Sfp z3qBtC$rwR z1Ho3$_ys#G(}sSkBWk4ay2LQWYGv!2RNPXUTo-mNV0xQC=672o(-=ivn8`78te#se;yIEm7s8o zuPHm%r6nqiXAgu!$ab-Cu>GcyaL1+U6o`KxB*zmCb&9kRI)pLFRnWK0TaPX3LEO`n z&#J}$vrcYn%o@Q^4t5o6e4#Th?GHBWs)r$iTWN%6yq=$FI@HlXJs#Hrml6QB)4%W= z>2Om!Qrr{^Jo_q2E-zGpn*d6(NAKk7&*A3NP)4h>WDk8@md@nvZxCB;lte`;>pY`O zvQ)rr?fJkO(K9!_5HTW4o{=Jj4cyLO_?gkgGm}4WwZa)wcOUDYVV!Eg5_@-gxU67U zFvYcUESN{F+B~Em%BTLZXVGQY2XcvZ=kY7yqFc7HF^NCGMGAF#!lr&&!5IEn{jegm zjE$v;aAOHn2>jv&CZR&_reK6kQIK22f&p!Vk=P`C9(7|WOLT9f6HMdITWOS6s3}Gl@>!tX%3!)4@UB%DH4J?c2n$El72Zzs$|n$n*-Vlo>cF@? zW>am=*9_7B-+m7QyaR5u1g|4mbcxtyZ=@cHZA}?rvO%rRhaAdajqZ25Kx-Px{Fa$< z-}qw?8l_kkH^awHODoQ1aiOjmC7YX`4BmRN;U{YQ{8}+~xmq$3{?43)C7jvra}tvX zlUs#W<${N!cJnIna-R&g+}6I92@=ufg@gyL2ybWDrWZp1%VrzM~#plh?-(N+6hl8(uUg zMB|CY%xWO5Sj?0lHlXmPk%;97X4dBjLJF`zxz})p>w&Rw;_VVkfLUy-&TN`Z1`rfw zh9T}q@b)YiiWN(_xIic~-{$*aX&uDoFh?Nzok`;f#$t;WH3^{Jjqt9j=P;Rsz=#jl ze~;6qoAJI6`~}gROOQMx&OqKea!JKQVKp5E<|c#SO(JCfp1e-*RqqfrD*o*(HDyf1 zj1qVT+G8{HQm0Q&CBH)G-QG&mSSEun?~as0Q7C}oeKt4LJt&4x0b|=#=`*Rjm%FoA za;;>i1xeZ$z=+_z&hVOO#(imhh!SuQJifpyYBO!R|Gte9Axtz+l98@W94cUf>C1^t*da7kT*|Qsd%RoH8clxjhx==jno| zO`W9r-F$bdwj1MuxDw$h;(|zEFc$OAr$O*cWsct^ANzJ#=&<8m`;?%C+X|-=In*lW zI$)wJ)OLR6(r~2e+y*h*N32KO3s=Wyd5H`o2x1d-aH5fHYHxdQEy62qW8!(2lFOPn zjG@0gvR(q$p;k$dW^)i{ub#XGlH*52C<8)0WeJ1XU4` zaVivmQgCw+Udj}Fl1iM#*s3RI>W49yJO&~NuAB9`0yg@*1kQ5uBI z?<$69(cE9|1ezEvo-2|Sl3#M)jpr)lfuaK#NvwxrA;W_>rp(kU@>mow%c_t)5+OBZ z7E7eO1}_j#G#nWN+pTay^haU@w}#V_}CkTMAFx@m>K z`S@A(S*w|zZGCxf)1>0fSDxy22k0hlXDu2B2o!)P4xx1fnG0Fy(?! zQ_25A@N+-rAI-C8H-hm@Rg*rZ;>I^UMUw5Xn@^18=kV9KiF7<(sCrd_IWs3B(L!%r ze(1k5@>QWzPcj<6ztxY-YU7V}H#bdVMbRXVeRCTW#@qnKOKDYTq7LX1KHl~bZy?XQ zL>6m=s)bgYx?f&ZNFa#2Ao==7c5R37ZY-yn);RpSIa7W~{xe!O=^&tVoP#>gJ9rg- zI+_}MKYisGGGCwH%^(m#=GQ=TT*s(Whs29-E~ZelRheZfonCJ)A$cA2hhq{8S1a{@ zGq~8T)DxRIXm+|wNTwhAZ?m5~CI9rucl<-}o;KA!wY??PC1#KA(zvFo=}L$2t4HrE zn=r^A~c(~PQL*`!FE*vR1Qt)o*k-=X4wY-gDQ*CNN~$aGxlYF`bK zv(XW*Mnk;AM3+|CYBl=L#CQrbB zBGJ(TCEFTJvJ|%myHzHSL!QyQkwa3bW&tRV>b6e?1)A>Qb*c$!rR`QmV&}kPiJviV zm5Z{p*jAc6wm(3V0AI3y{$2+kZ#Ydv#;tfTE&+bHiiVI1SFsz9L#*n*gVw(Z(h z!$Qf_uw)onAzapnc2UMlDg!96nTzFyCU#!fNX-nA)>U{D!z>|)^tP0wag_T4XuR)K zu0v#3-dvjL8Y-&?jDjts9TG1cD%=Q3uDU1#Irb=Lw6mCQ*%`DMn!yc_?skB zi~rlZd_tRW`3ZsxUR%+L*k0_P5R(krtwpbnC4QgK115#yTJIT4Due^?e74M;yDmVW zqZ4r|1VLEpu~TT?%u*v18RqzbK?|Sn|bDGr2Eo4OUBwJiALqF=U>wo2`^~o?fDx>y4JKo^1DaIK@X3)Y zx&3hOk&3)TdXImah?QyH&oyc98jWi3JiyhcbXvmIGA>ze9NY^;Uc(lbZHp3x31Art zpE2>kYjoC|o@_>P2H_wVL==8P0{l@Zd46RP#=a0X9T88agpOaDiY$H}<*l6f=c{;& zIx`fm9L+8vvE2`AokA@vgDhN93a4$Dgfn%tEwESx zL-P1k{=BPEjMM=`L22R22W~DyAih*1243Isd;Jkyi%+k+K2PrsczlliqWQn}OuS;l=GyCv-j>mBt$X^Zub7-NZABv7 z@y}NI6LPJ6H#~+s+GzZAg=Mh#Dz&Zoa@C!gADC>%7JI4r1(6bD1dmj5UgEjW zh-uzTlVj=htrvI-wa)FhXrVN1cUq8`l9w54dAiRA8~^R}#wX8&fC^Uu1sP56GLh1=DWen{7CFe#5HpiNc#D%x zTS%MH*lV+%uwHEg8H)r5n7`uhCJKuU0(maCf(ZyGw8l?(Xh(&&<4YXWra=f5H8lwa)53 zbUnSRtNL{HuHE}*N|9CY5e0fQD`0$!Y&ME&f=QYKHZQScLUA^7S1*_eqssDyrufw2 zE_F4dhZ#TWfy_<{qr~F{fh7d1x>An&2dm?FMcC1%zm4ly#?$aAP)VBEWy^4Nc14K^ zq|!#e6;0J#X@B5~{4D#H{OIoBq0ti{lDHhXs2YZp=6-&4oTDaH{{8l&m*wM*V_nj- zd|3rXgYn+&-n#Ta6UGku)zUESRZgxxg!cZ<=>0N_G5>-|_{9jz^~#PR@6pw2g-t=9 zPLXcvav4XfwDbY2RY5c`h-B``)AY~DQj6GLf|jo`Nz%$+8zETUw7PfBY!b)c&kYaT zbntXga}E!mEfvL0tE`0uKWB#uv*DGPx3Q49w}ewHm!LG5df_9UPQ1MiY4%2XNKLkZ zjpCQ#*G^iWtL^^B1;EDI-0B#T$@8pv$lPR&=RJm?cW~kfTU|pev+!Y$FYQhj?Mevh zn-9)jF(PF@iPnd<{eBVYv$nd){=ND0D}+s@zwSNa@x`t>z`M^`MES-ZpZ1hH_|w7W zURg<7GE@G$k7v5rT*JmzWZR_;mLo-BJrnrBr%c!5ctU5{+?+MVX>OUDSS`x@e&?tPdHCR-2+A*p)Nx~1U#?0BN>>)Y)%)2Mu`N}CD{Pk zzMoqzU zzgjCtV8Y_z@+X(?ULq}aJ->9=J)aeU%F@U3)foT@xIRrv&}%3n z;=_bkB`aivur|f;h!}kok7p?ibX3om_VW?+{M3-S$z&dBtz#!p%RdZv>m@*~#8)D% zY!6iL)gCL{BKKleevGWQX~H(7NGuA3PisJb{9X~9iXGp$Ai*#9%c?aPo z&gjdz%-faQH1={P3+v$AM;5RII=e*dJZ)ooMn zOknKXY>mY$Vt?5ryJ}HAKjn8~Sv6W~NGsMqYSt_Qi1#QH+2`6Njf%-6Qk=nWL&>-5 zz0N%Tq_vsZ{9KRH{>QVh6Mc(P2leA&UCBW+{{t_2j+;9Oe;eCk;q0|eC-O9jY)<&P za|wEghD&C}xO|;Njc!{)?RM-`FL-t?gzg2=fMj8E#H9VXHJ2-^c20ljn}LZ~OU?{j z4c6n=kw~qT43N^@K_{*(l||c`Z8jCUkg9v-+mmvQd^4E05{lA_T5i}iQ9 zuLZ=}PG?9c5cIB$P!1sLeFjhM=sdY{`_}gGC_m-pb;oIah*yD~GObCV3m$B)Z)(czOk9 zl91nKtoi^miQF4iJVYZ9#6we+c>m^hs8_({W=R0gKK@;F`bVtXuB=b*=_J5}T3>%X7t441G}L=)k3&sI^do#V@H zQ}wKAK%`H23Em$xCgwMX{<<3=k5f=g2$_+&Rg^WKQbU2cZycH8c2XY6;jeByM4C~v zdKH&$v!wNh1GT*?5Ic$j86UWAYaYPC83x6V?0j1m&lw^UFRen34&=LXl^*N0Zq|V_GefG=O&z^7T5MLj0W=jF0 z8JeX;`AP62<9`#j$M0TdDWXazQM>2nemC#Nc`hyfeRRuZZ47+(*si@ z6@MpVn<;(6=uo!?T~ok_iT@eZz!|dqZ2r*eD zIrCm!?II;nCKPs=A`#&VY2xXu_|EO>F~GAsT+&TKABSeN$B9~GMe>De!wrM0;M%%8QQ zrmcE_IW4SYX=5;1DzGxr$fMc<65$t~9?MS(ByikwFRT9vADxo0g*JU4i3hNXil|4K z(=7(Of)1a$6QlIk4#@q0neOGsvWq!C(hiKhBa-za$q%j4IR*n50+eC=%Xj}1teBCm zjot?nwoe$JryjNXFkZg)N3dd~-*#92`ULS+OZ-6THFv>QBkK2c-87448+enyWkz$#^ z8sZu@kL1BQwXjYow-o{&f{0^Gaw=wG!957(*jk5e(<9YT@*wrGWX3c%I|2yxvK_j+ zm^iJS<>1Yjp?cTA&rbC$oyU-ecrDF&_6T+(Q`53-;EUYXpKUDqIHmUSqZiCR2?9(V z^oF>a^obMyioqq5#~t5aRRc}QB|VdFWi#MSDU*wx^o%u%r=d3ERm#k>3L6QQ&k~?0 zBKlD_7*Eamf~@nNxQM%(cNEkr)Wyco#g2iyU8)CPCQ^+@KFvQ4hF9)LCj{%OCSi-F zbafu7R>&?>uwKw9VO`XsKcU<6xiP+}f`o_^jd?-%TzCcy6kdMej=E2u zjz+9aX4uX?UsGZGO~VjQaQm;qAfE$0c2b?c&v{s$Q&1lnpI5bszv6AU( zz$K`7w(oZ{4GOuUc;e2GXZOAD?;PzBsk!`8UJ~v_O;^;@_k1goV19{3xbir35h;p% zn28I2o%mMyQFkRDQ<6E{OD!l!E0#VNHZ)Kn ztq50THTJ$`hW2nm^sPR4-s;)AwXByt=IMtl=qTeQiB?{RrEAh~yrwEyJ`?f?ncLCK z{uCFbnuSbk4)C8Zv96)Y5}mM{xjA7IZa!KvO0X3j5ADW3arXV&0VY=Qq z!S5qY$*~m>EW?)h0PWJQbP;6`o&JG(ZpgTg)i~{)F*7FnSI!{s*zBscKjSH}T}`cO zC&#n-dw2+3_YJ3q#~My5`Z38wN`c&GjL~W#pVpmjuYF6dEO`I7namq|E86dkZ3P zis{naUm(onv;>Xq`_tU5x?D_owWX7)0i{^FxqSM;lXb_GO&-k+^4xdEWt;=n7C(U# zloGf+6@2liWul(=a|As7FaX@p{ovzz3RllcV+E{L5Nx|c(>yOaS+@F4zQ&89f$aJj zz6{Z}&_CTCH_6LMn{O%=e7p6@MG?;`LPqn6so5;lG_L-G-Uu-)_&oX1*KD{;xy<03 z`}qEocc!T@al>I*EXWvSZ@$QkwoZFEm!dV7F1>uBlSCtno*oHD8_eC zhj~dwm>yL^V*B}U1IZqyN-^wAWBu?-4ld>lNKiql{^Z{xCB0(tYu+pLmO z?!~PtOm7sI!d|#+s=m@=Lr>3}l-X-d{M*ec%(U;m25{G)&;5gql2%n<-I1swUip>e zbsO65DWC*KVkyA@qsCkh-10>%cE8a@V1VC46M~2QS3iO|r}^+6?b_Pq6MaS_WacXR zx4u_h?qn^QaCvQS3(qF(+gQ>O81MH<`|;w85K%B%L9sL02~dl04QjB_nID$BX%euM zgz%X_8_v~Dh1GKCL}w#SMAZ%(QVWW~l<|r-KgD0T$=m6R$@dO7k6~;rOg&q@HxY1w$Y|b zYRQCM>0eftI5lZ&-wLPzIKt!HVTU%4(U#>7e-P6msGAizISqyhso()vl=QIdC``WO zH;1v*qQNvzM0Y`5n0RsnlSOvJWVXF>C>t;>pSAR_&zmQH^eVmkY z^f5))u~V{9u*iHVfwENL*GfA!;7>&#al`{ZE5#CO zFsa#0jv6hi7Yjj~i+^yxTC zGIT7bA#law&AMOqu*%$WNdIgiD{Re&LQHMKd})cP9%$q#us|b%Tlb7YazyuVPu!eu z+0`(Gv-_RNNfOf>{y_i=0`gI0-@IIZ<_grXt4yljv|MSy1uwZ=+%I2iLdy0>;?S7u z#`#XHaj#omRsB{=#u-`?K+8&}wPcrEkLfHn9F*3~p?Xo8d2^w_SGtSLdL1g(0K#%R zB>|99&M27{gB9;DMnV8B;cQtpEFaE z?fI{-NskifA96Sfr0mZ}lt3}*lTA;_avPQWa0?RM@)T0YLEEQ`)81~y5~c1jLcQ_8 zpWotF=wr-4(_5@zF{_jACQ!}r?OErQzVzP+Nu#SJu*sTa_ZAyYqd{^X zGTL0My8WoOomAtgm%TeNs$Njl5V3nx&51E(Vq6mG_WGgnGHNcuW%Xidr8%oQYDq}t z8g00)(`fG7NY)VVIk8!@0R#cLWj_k<4afl7>90As;4NgF5NfV#YL`)Inp}T8n%#CC zI&hgL9%9b~IitpO}_lv7#&TWtn{t*%q$s{{!)vfG*r}wvA9TP6?;c2ZRw;T^_0RUZlDl3 ziKLK`$wS%Hl+1bMnaue^>bh-YIqk_{jPK6FdszoxqFAd{vSW@2MiTpV&80ZROf3l_iN7OZ;PRLFL1Q!A1vphs3L+B{oel?spqIBP?2_v;Lcy;%9p+eM`_b z(k_?g{P>3i3e<>Dv>Q*ijP&50?DQ&D{6ydAGrY@Hs2Vf&zBOBCuQ#?IS(>&PhVKOj zGbr3!Ui9*#-(ss#h#WR%pgvRC<6G61bVjRJtk3c)z*w;JYb<4oL9jGNY&Aw5{d_j& z8O0c{>m!Ffwc?+%?$^+XSi?Y#KP(cpFIaxZcWX1sMncX;c-D4Ij;dJx0N?qP#_ zpBrl9yXi@sf5w?XW{ADu}_ODspAOkYwGyVzR>K7p3o*@s|&WC%NLFIPW*67yD*QhDNAhn&B>osTn!iyYERJ_#^754}N zUVH^=LBb8_V~rVXdZqfpTP@pNz#(syzL=U7`nIX_AqPdluGvZ5ha}>j1$>1B>~g;^ zSW0Lctn1p4Y!43HSGVxTGdQ&X(HC9^EA!C6VGP-7aCIMd_DtwBhb>*35OgNW{hOLH z+3TjMSa>p=eHwm^+HwC=oZLJEEx0%byI2hxx@^x-2DGuKOkq9_F^ z2k8gmN1H%{4+b*o8)o2x#MyVL`!Q}>I?jzCx@CzBN3`Vv)zGeeG%Szn^ zn_Qk??FAav-tI2LoBM%g6JwV{ox72@xAuMQ1$am*r_F7~0fSeK$9m_NY!mm!>!m&d zMND%X zKg1;9opvVH*~jU44Hv)dHon5rp2SVtaN0XYxcCmw@pUj25Gq97%ZNMgE}>9E@wdih zn?)hCj#aI475I$!&4r;ZeCGfqQ`c^8do(qh>ZAE}$|Z$^K_=|wE6szDfH@IS5}rs} zxD9CQU_HEdtAO1Ld1PyvqDsPZQ#ew2Y)DR>FNyroE+}Mrs=bH#8-` zZrekWWpxTu)`cF)=G8~ZBjF94U|9;@RTpSM=Y2<$$HGIah)!)9-l>o(#M_6`DGH_F zyMtVvkF+68zhkI4FfCHaT<<)Lw;9^s7y1p@ayO(b|W z*cGS)cl{EKH`zlk*pPF*(PGGPO}$0gd9%o{1izkQvD7LFe0G<{%c$LR=-i{tg^>S- zCKz6@ujKfd^*{qK!A6AcN*l5k-Row$R__O9BciJQ#2*;5A;y>&`7uT#A#0TFi*?Q2 z!)12*@B;a}L&;vFi0C9pJ69Mq7I4%SGFq6Ncj^V)*hGy2a$@CvlfL3E<@1Htf-bfq z>b62;tbvf9S$sl>z1VeeO8~e78_;xYsLw}rx>zv26idFQ5VA477(E5Jjwx8O%+T_g zjkv`pB}p)dLA-2R$jqDPmPCet5|wkQpQJkE{itQ&Bwg?tty7IOX z$TwBCI9@{SnDN;LP^NA5vv9cAb?lMBmejh_5w46ob@ssq*zxtpS7ONW1cws{xlSRg zu<`MY<|}A?Y!ucg;G>$@z2+|`80haOIa4_%AT_I?Xv$*4h*BJ;8Pop3DnGP2S|%** z0R>8-hq`;~WoM}K79xm$5oU6M#(>lmw9%dJ;cPuG{+5D6JWRS^5r4J~1C*^-<@YIc ze4d#2B=2j!Wd;W+`woMl9_sVlKxL#-NH%%USC28o1WHOu_&AOX$S@_S^VWbnYweeo zaMkIz-;RfL*+X^gfX@eppZ*#T{Uu}JXli6-1RN3pKmST-h__(BG~ZH2Lk2`s4IT?s>Dwj-|<88m4q)KfVERDM_S{SBDORkNkCS1 zZN))%?e)?q1_seip2E$UjK;=L{%egLzc^qa#?=E=yq@Yi`Va-xXwAKtXN2TMqKnV# z^cP39(Jf)R&igXn&!U^HB?%$#-|t{G%Rf-)^kcWC?)HHyPtX~^j|26BYz@Eu6mN8; z>lZ79#!?GXn>cO864mEIzsLl!tggHnWv3CrH027#)1=DuS$*X6xfY2)&Yf&%Tb9@L z?iK`}1H_CyFuWV;6{itW*S-?r{Gd5I)jA{^BySdpp;nNUjmHxlByym$&(^xfp|#Ug zmpbb)CV;03R9bJH`gzgUc&_se%N0~$g}E4r6-Qc=O;D6^TXqy`V>KOw2So%Ywu1Uj&kYX zZTAKv5}=%uSJ?{l5fOmC3YBq=sDzWsPcPnHoS1=t&+gI;qj>MX6nfox^x#!>*^}~U znDS)PCPx{7a@te5$%E6GRiHMV@2P9_jIO-Ur5+CreNvte!l48Wjp6>f22Ta={|Vl5 zI>wVdf^0>>SAoZ#Ty%0}aMp0iB`0|5y%JfGzbiO{77xFvoy(A4JF&4|jES2tNveVc zzV0*cXgFnhegAB?e0lbfMlk9FzdRAFXk9Qu8EwKQoX9&ocJuvyZKT2M=}g%5B6%Sb zgt@Mupj-{vW;Wn%W!Y_kT3LD<2#3b97xX*0&0ip{SwPTVio`!KQ=E}Mp8|KSie#m;yQ zse%BLZwrT>f21{}zftsaBDbiw?+-ggFM{6N&J<;fdZp%c7tz8~9cN9n(MW7TpK%Kd zYnu4T$Y+lm?5js>sPcZt%DAFRAD(jvW67;Z$=-Dz%jJ#4)X9)T)A7s8@f%7ooPTUM zIfOC7b1rmKv7$-E+@EXx3IYOF@XdlX+g-C?ku6wZS=7v4m5ht4i|(ttqD$nk0A>bk zNg9c|V5H-wcEo3x?T>HIPaSVJ(e9Rn=fRM?Hl@@XFT7*Mly*X3totwV9$j!a(5eG& z?6UpO*imNdTgoYPT(+lmN0YV;XhhWSPsy$;8vI(g?PSfkJ~C23qcCiajTtBz&EJ8LDt&T^9bZEW({T2E+MzA zjLb>Uk3zF)qTBn^b+SD{M#`PXb}6tMWDJt4NyA67a7~0nEa$V{-nR#7{jcxPmF>rS z+;+9Kr@jezpN&uI{|LZO*G`+LD%|nPC=_cPq9wS0AU`77bK?Nx%d*UE{+JOQ(QFed ztf|k5UU3C6#HHfo;Xd-Mw!UP^kV6MOjd);#+@K?Oz%fkUAFrDeH4Iby7ALV-=@KVV zT*NzaxY91UqDp(q{>!?v@ZRed3w~JkPXbFa_Y}r2_3*gcQD>6Pgs!m`YJOxrVLzim z=Ty+o_EyCVF%cVwD&}B6H-<-shnU3{LXcWc!&}DRllq`}|@Z(Z!M0Z*SEv)rXQejlop*AodcC}k5qy~^}sRA?H8i@LCO6#oK8JHrF zn>QA->bdwZ7i|8=fpZs+Eg+Md)?$QRP$=20$Hhr}Wl+ zqMw(yh(=fQV{z?BH6OMT({n0aO4_D$dV*K8veZbe=FioJ2uCKJSLx6t^Wv0dT{N4P zy7wge5N!Un8_SO;-X|!e4@IhQ#F#yMTmuSYies#2-(CH?vhR?a716e`!HQWh@@WuD z)Jgkb>zeWFQcMB$&jxDPfoK9fNajlsiE_fY`OC}Z!#EMR7oS8nTj`(ZTL)+)Y$s_- zh!`>}f!}msgPs!Le28^c; z&m%XPbI6-HlNDB{HGfEx{(?~v6=*NhmmJUcD=@y02*&s$@VO zXGL6fV;IrN)JOjV&Fn}!p*BIFDoCcTmso8|tolWYD|?8uMtCW1X&UxjR`wSIM{+Le zwfE#WkSD+th1ca6%>^e4u(017rj*$5G4Mplif!XTR8pdd7rc?gD^TyVarVPbN=7A6 zZ6Dkc1o(d}@hINBl-YE&vNUGSGSYR#EqTRNB0%ar+;)SfdL7v-`dJ8kYY`*YG>ofc z40?~6+jCOVjG6RM-Fw4PI2cU!(ybZrLG3~jx-9fa3DFKp0l%w7qkFlbN2;BcX+nJT zI>j#d3wb4W;ezI4j}cxYfJq9~$!eiP8%s?D?VyB$n?^HcMp-mQlMjZxPtj?mp1o1f zj6FF-(+MxeUYAkz=8z0Ak?|-bolzEa4lUHvS$P-{j%R{gvVMbud^!C)@9YiPFnpVw zvg1e@O{vDg-v&m{B-bAPPRdSvyhHG7-OvA5~wyj{OJ!73uh0f zKH1SbUzK(cIK^3Zcvn?A*i+D_6tD&pfrF}O#?p!{+U8m4EP9fmwj$g)GF9RBKrDY6 zHSw*|J1zl(wP$GUjZ{&s1*J1?M272>_9Jct*N|fkT|NR{w_pSDU~|ZVlH`Q5gUFjt zk$7=pb9pz_QNE^4 zSv==fu$W$%JevyH_TPjNU;)q`A@OA1QygPZRZu*LkhO%JaHlMI?+A{0UD#Q>X>OP9 zXiqIQt^|BN&t?(O-s3R+X;#^r&b1u-%KW;%`QwGmeB5|CnFJgFiHNMlGyAsHs|F%_ zplcGpeslA>^Ws&7(xP$3)E@XyOL_Z*Hi_7^;I3f7WSI&Ml&&o2X(kkWpo0i|mtTi| zA8Qa;Z-`rv9b9peqB5@(vLdQ(7)!Bw@)W=b(}2Wyy2&Oz#QoZhmgr6P83Y?#tTX8B zU>i2=ODJf??c$!hP?6O})dKIF(~~W)=fPZLh>1BbP^e8q@eXmI$IOP4AfxzV;;=ui zlDBIjc&o$TyG-?yoR6{akCOP2bzz;aN6~xkf`Q%52B4S=hCICEra#gFMQtKceHp+5a&%3H02Usy$#j;bmJPsSGnRj-$Hy{-XMPG zs+S34hPDGLnb-go`A|Wi-u+*vrGb-!qm9)c&U&I8@OM;MAi$me|6a=CWNrMJu=>v= zZ}G*>#KPADK_DSefA+tF z73YF|cPOB%t8yM&Wd)@TDCPzaR^q0;N@2zGCr!{rTUmpU?82o(>zbNCkqXu=RNDHI zK9M^cxdTw@$1HMx4^m3Z@)_ceE>?(U`UtNexM*+GAlW4+a zM*>cW*KpRIJ*_d3-r0=2`T&ucuuZw*H-@ypS=fT_MX{#_t&m1)!&R9}Q%PdC z8XN=!>EAt7&(`*TyXildW}1?g#S(CCjqvy*)JH4C(5?DF6tqMR?R{PHY`bm(IH8(K zd}j4avOdYjBNrn^nW^ON-NGkgLi}_OGWP~Xh++ZUitQQLVA5z`Ddm16=9`}vp0-EG z2FW8yawr9>?;>0<+kHe6HI%dH-wPoLrW7~S)u-IIi#N!zu=dvX%2YW1petxTSI)RX zBZ)ti`1Z2{C$gXan0^orATayRoqjW~{tY&zc;QSPHl424KC;v1jnTD1EQSC5?QS+7Qh(;x*h0BM|T|JL>2A-vLa^SW2 z6X9gK2GJmx#%$yb%b7yJ<}fILw08~OrI6zU7aekI1FB<}2H#@lW1Gmv?=_U|%)T-w z0e|CBfHwlx}@u8xJ z>3)3W^Kma>uG%o_5=|I6{Cvfw4u`fRGQJcxIfABM%Td|;O*wKOb{65wHNYxbTSo21 zRNYp4=&fIYo%Sysws)ZPAZQ?vAiz0T5Mq$}D|NW9?{U?Wm*V zW^3f2^+yMnll*T$p;~txIS`-?ydr>Z%zrI2z;ATyjVv7)|J2|8wIFs2P2DmU2#8}1 z@N)WBF%S?Mpe=v7L4o5eCoACbe|O-r=x@@Xzyk*Y?{@hARi1->FXYK3NyMZJ(pn*VZ{-K# zEpt*6AO`P0iuV6hii_v>m_Ku9|5~YI!5gn{Kuq`lgZat-d(59c`Cl==3UmKsO}gOU zm|xrcPtb4M{8xGFe`xta{}b&WvFl%L`&AwKA6o6_ziIz{!vEBY{uT49ZsR`~J?YSie@{ z*Fctkifg9-Phl;;GJc)>`G;Xy@V5!SP6hqS`0r=ae+a+<3gBOM{PU#xE8xE$8U77u ssr?t=KMxSUmj3S%(Z5UMH2$mf-{T`WNeIY4cESSw`2yDtn*Z4PKgHFS$p8QV literal 0 HcmV?d00001 From 87e22ffdaf7167be0c561149d5a1d553b95dd770 Mon Sep 17 00:00:00 2001 From: andrew-buckley Date: Thu, 12 Jan 2017 10:51:17 -0800 Subject: [PATCH 15/17] Fixes bump_version to bump the CMake Gateway Version. --- CMakeLists.txt | 2 +- tools/release/bump_version/inputs.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4dbd1fbf..394da734 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 2.8.12) project(azure_iot_gateway_sdk) -set(GATEWAY_VERSION 1.0.0 CACHE INTERNAL "") +set(GATEWAY_VERSION 1.0.1 CACHE INTERNAL "") set(COMPANY_NAME "Microsoft") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) diff --git a/tools/release/bump_version/inputs.js b/tools/release/bump_version/inputs.js index c94eccf0..180925c8 100644 --- a/tools/release/bump_version/inputs.js +++ b/tools/release/bump_version/inputs.js @@ -10,6 +10,14 @@ module.exports = [ return '$1' + '$2' + versions.gateway.core; } }, + { + "taskType": "regexReplaceTask", + "filePath": "CMakeLists.txt", + "search": "(set\\(GATEWAY\\_VERSION[\\s]+)(\\d+.\\d+.\\d+)([\\s]+.*)", + "replaceString": function(versions){ + return '$1' + versions.gateway.core + '$3'; + } + }, /////////////////////////////////////////////////// // Azure IoT Gateway SDK - DotNET binding /////////////////////////////////////////////////// From 812261b92ec2e14dd84a32d29d8c8f06fee2a774 Mon Sep 17 00:00:00 2001 From: andrew-buckley Date: Fri, 13 Jan 2017 14:52:33 -0800 Subject: [PATCH 16/17] Updates Java sample JSON files to include a binding.path. --- samples/java_sample/src/java_sample_lin.json | 3 ++- samples/java_sample/src/java_sample_win.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/samples/java_sample/src/java_sample_lin.json b/samples/java_sample/src/java_sample_lin.json index 04b4e02a..06bee9ff 100644 --- a/samples/java_sample/src/java_sample_lin.json +++ b/samples/java_sample/src/java_sample_lin.json @@ -6,7 +6,8 @@ "configuration":{ "jvm.options":{ "library.path": "../../bindings/java" - } + }, + "binding.path": "../../bindings/java/libjava_module_host.so" } } diff --git a/samples/java_sample/src/java_sample_win.json b/samples/java_sample/src/java_sample_win.json index 01691702..96057e6b 100644 --- a/samples/java_sample/src/java_sample_win.json +++ b/samples/java_sample/src/java_sample_win.json @@ -6,7 +6,8 @@ "configuration":{ "jvm.options":{ "library.path": "..\\..\\bindings\\java\\Debug" - } + }, + "binding.path": "..\\..\\bindings\\java\\Debug\\java_module_host.dll" } } From c4ab1580490f56484cb47687cadfb18ac58595e1 Mon Sep 17 00:00:00 2001 From: Damon Barry Date: Fri, 13 Jan 2017 13:02:42 -0800 Subject: [PATCH 17/17] Update submodule references to fix GitHub issue #69 --- deps/c-utility | 2 +- deps/ctest | 2 +- deps/iot-sdk-c | 2 +- deps/uamqp | 2 +- deps/umock-c | 2 +- deps/umqtt | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/deps/c-utility b/deps/c-utility index 555a5ba5..4f1ae336 160000 --- a/deps/c-utility +++ b/deps/c-utility @@ -1 +1 @@ -Subproject commit 555a5ba578bd7452c1272e9615a97c398c6e64be +Subproject commit 4f1ae336aca29f766d109facc704dad1a15149a2 diff --git a/deps/ctest b/deps/ctest index c06affbd..c7dafa78 160000 --- a/deps/ctest +++ b/deps/ctest @@ -1 +1 @@ -Subproject commit c06affbd946f071e42cfd14bcebe4255a67d8df3 +Subproject commit c7dafa78ded94c4934fe038a6e53eef71d865a47 diff --git a/deps/iot-sdk-c b/deps/iot-sdk-c index 9c315d29..2118d865 160000 --- a/deps/iot-sdk-c +++ b/deps/iot-sdk-c @@ -1 +1 @@ -Subproject commit 9c315d29cd16e8391f158cc4221dda7f572cd07a +Subproject commit 2118d86528dc34b12cf70b1b359f1acc91fd9ee5 diff --git a/deps/uamqp b/deps/uamqp index b9df6c69..6e6690fe 160000 --- a/deps/uamqp +++ b/deps/uamqp @@ -1 +1 @@ -Subproject commit b9df6c6928b12964fecd54bb318801ad9348eb1f +Subproject commit 6e6690fe9362206f91bbd33eb4cbdbc7a5689ce3 diff --git a/deps/umock-c b/deps/umock-c index feeec3d1..8e7f281d 160000 --- a/deps/umock-c +++ b/deps/umock-c @@ -1 +1 @@ -Subproject commit feeec3d14a9f03014d15c7eadbad0201544f9a6f +Subproject commit 8e7f281d66d8cdbfc8d60fb0753d3c7a6c40b9d7 diff --git a/deps/umqtt b/deps/umqtt index 44fafa85..6c85ba9a 160000 --- a/deps/umqtt +++ b/deps/umqtt @@ -1 +1 @@ -Subproject commit 44fafa85c0cec778315aa896994bf2630de198bb +Subproject commit 6c85ba9a56cf4def0107c290105090f082cadeab

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 delta 27160 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 qwxBassembly.name`: Name of the managed assembly that contains the module implementation; + + 2.2 `loader->entry.type`: Fully qualified name of the managed class that implements `IGatewayModule`; + +3. `args` The value of this property is used to supply configuration information specific to a given [.NET Core](https://github.com/dotnet/) module. The value is passed as a byte[] to .NET module and it shall be converted as a UTF-8 String; + +##Native methods description +### Module\_Create + +When the **.NET Core Module Host**’s `Module_Create` function is invoked by the +gateway process, it: + +- Creates a CLR instance by calling `coreclr_initialize; + +- Creates [.NET Core](https://github.com/dotnet/) Delegates for Create, Receive, Start and Destroy; + +- Calls Create Delegate, which will call the Create method on the user [.NET Core](https://github.com/dotnet/) Module (Module that implemented `IGatewayModule`); + +### Module\_Start + +When the **.NET Core Module Host**’s `Module_Start` function is invoked by the +gateway, it: + +- Call the `Start` Delegate; +- Managed implementation of Start delegate checks if [.NET Core](https://github.com/dotnet/) module has implemented the `Start` method; +- If defined, invokes the `Start` method implemented by the [.NET Core](https://github.com/dotnet/) module. + +### Module\_Receive + +When the **.NET Core Module Host**’s `Module_Receive` function is invoked by the +gateway process, it: + +- Serializes (by calling `Message_ToByteArray`) the message content and properties and invokes the `Receive` method implemented by the .NET module (`IGatewayInterface` below). The .NET module will deserialize this byte array into a Message object. +- Calls the `Receive` delegate; + +### Module\_Destroy + +When the **.NET Module Host**’s `Module_Destroy` function is invoked by the +gateway, it: + +- Calls the `Destroy` delegate (which is going to call `Destroy` method implemented by the [.NET Core](https://github.com/dotnet/) Module); +- Releases resources allocated; +- Calls the `coreclr_shutdown` method; + +.NET Wrappers and objects +------------------------- + +This is going to be a layer written in .NET that will wrap a method in our host that is responsible to publish a given message. +For [.NET Core](https://github.com/dotnet/) Modules the following wrappers will be provided: + +1. `Message` - Object that represents a message; + +2. `Broker` - Object that represents the broker, which passes messages between modules; + +3. `IGatewayModule` - interface that has to be implemented by the [.NET Core](https://github.com/dotnet/) Module; + +4. `nativeDotNetHostWrapper` - Uses DLLImport to marshal call to dotnetHost_PublishMessage. This will be transparent to the .NET User, it will be called by the Broker Class when the user calls Publish. + +The high level design of these objects and interfaces is documented below: + +### Message +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C# + + namespace Microsoft.Azure.IoT.Gateway + { + ///