diff --git a/.gitignore b/.gitignore index 49ba3cdd..c67bd85b 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,6 @@ driver/*.swp cscope.out .vs +dsneditor/EsOdbcDsnEditor/Debug/ +dsneditor/EsOdbcDsnEditorLauncher/bin/ +dsneditor/EsOdbcDsnEditorLauncher/obj/ diff --git a/CMakeLists.txt b/CMakeLists.txt index d45dc7e7..b4ba77bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,15 +21,16 @@ set(IS_UNICODE 1) #include(GenerateExportHeader) if (${WIN32}) - if (${CMAKE_GENERATOR_PLATFORM} MATCHES x64) + # or: CMAKE_SIZEOF_VOID_P EQUAL 8 + if (${CMAKE_GENERATOR_PLATFORM} MATCHES [Xx]64) set(TARCH x64) # target arch set(BARCH ) # bits architecture (64 is the default, silent) set(PLAT_ARCH windows-x86_64) - else (${CMAKE_GENERATOR_PLATFORM} MATCHES x64) + else (${CMAKE_GENERATOR_PLATFORM} MATCHES [Xx]64) set(TARCH x86) set(BARCH 32) set(PLAT_ARCH windows-x86) - endif (${CMAKE_GENERATOR_PLATFORM} MATCHES x64) + endif (${CMAKE_GENERATOR_PLATFORM} MATCHES [Xx]64) message("Building for Windows, ${TARCH}.") else (${WIN32}) message(FATAL_ERROR "No support for current platform yet") @@ -175,18 +176,20 @@ aux_source_directory(${CTIMESTAMP_PATH_SRC}/ DRV_SRC) # set(LIBCURL_PATH_SRC ${CMAKE_SOURCE_DIR}/libs/curl CACHE PATH "Lib curl source path") -set(LIBCURL_BUILD_TYPE debug CACHE STRING - "Lib curl build type: debug (default) or release") set(LIBCURL_LINK_MODE static CACHE STRING "Lib curl linking mode: static (default) or dll") +set(LIBCURL_BUILD_TYPE debug CACHE STRING + "Lib curl build type: debug (default) or release") -if (${LIBCURL_BUILD_TYPE} MATCHES debug) +if (${LIBCURL_BUILD_TYPE} MATCHES [Dd][Ee][Bb][Uu][Gg]) set(LIBCURL_DEBUG_ENABLED yes) + set(LIBCURL_BUILD_TYPE debug) set(LIBCURL_BUILD_SUFFIX _debug) -else (${LIBCURL_BUILD_TYPE} MATCHES debug) +else (${LIBCURL_BUILD_TYPE} MATCHES [Dd][Ee][Bb][Uu][Gg]) set(LIBCURL_DEBUG_ENABLED no) + set(LIBCURL_BUILD_TYPE release) # empty LIBCURL_BUILD_SUFFIX -endif (${LIBCURL_BUILD_TYPE} MATCHES debug) +endif (${LIBCURL_BUILD_TYPE} MATCHES [Dd][Ee][Bb][Uu][Gg]) set(LIBCURL_LD_PATH # Curl "installs" the .dll and .lib in different directories -> use the @@ -201,7 +204,12 @@ set(LIBCURL_INC_PATH ${LIBCURL_PATH_SRC}/include CACHE PATH # Build libcurl. # Note: this happens at config time as a pre-requisite, for now. This might -# be changed to a build target later (possibly as a CMake subproject). +# be changed to a build target later (possibly as a CMake subproject: re-link +# only if out-of-date, skip building the .exe, allow disabling non-HTTP +# protos, || build, setting output destination). +# Building as a pre-requisite has however the disadvantage of making the +# entire build "single-config", since the build type (rel/dbg) is decided at +# CMake-generation, not along the MSBuild invocation. if (NOT IS_DIRECTORY ${LIBCURL_LD_PATH}) execute_process(COMMAND buildconf.bat RESULT_VARIABLE CMD_RETURN @@ -231,14 +239,14 @@ endif(NOT IS_DIRECTORY ${LIBCURL_LD_PATH}) # add libcurl as dependency if (${WIN32}) - if (${LIBCURL_LINK_MODE} MATCHES dll) + if (${LIBCURL_LINK_MODE} MATCHES [Dd][Ll][Ll]) add_library(libcurl SHARED IMPORTED) set_property(TARGET libcurl PROPERTY IMPORTED_LOCATION ${LIBCURL_LD_PATH}/libcurl${LIBCURL_BUILD_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}) set_property(TARGET libcurl PROPERTY IMPORTED_IMPLIB ${LIBCURL_LD_PATH}/libcurl${LIBCURL_BUILD_SUFFIX}${CMAKE_IMPORT_LIBRARY_SUFFIX}) # empty LIBCURL_WIN_LIBS - else (${LIBCURL_LINK_MODE} MATCHES dll) + else (${LIBCURL_LINK_MODE} MATCHES [Dd][Ll][Ll]) add_library(libcurl STATIC IMPORTED) set_property(TARGET libcurl PROPERTY IMPORTED_LOCATION ${LIBCURL_LD_PATH}/libcurl_a${LIBCURL_BUILD_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}) @@ -246,7 +254,7 @@ if (${WIN32}) # Libraries that libcurl/WinSSL links against. # Removed: wldap32 advapi32 gdi32 user32 (wth current config unused) set(LIBCURL_WIN_LIBS ws2_32 crypt32 normaliz) - endif (${LIBCURL_LINK_MODE} MATCHES dll) + endif (${LIBCURL_LINK_MODE} MATCHES [Dd][Ll][Ll]) else (${WIN32}) set_property(TARGET libcurl PROPERTY IMPORTED_LOCATION ${LIBCURL_LD_PATH}/libcurl${CMAKE_SHARED_LIBRARY_SUFFIX}) @@ -258,41 +266,58 @@ add_custom_target(curlclean WORKING_DIRECTORY "${LIBCURL_PATH_SRC}/winbuild" ) +# +# DSN Config GUI +# +set(DSNBND_LIB_BIN_DIR_BASE ${CMAKE_BINARY_DIR}/dsneditor-${TARCH}) +set(DSNEDITOR_INC_PATH ${CMAKE_SOURCE_DIR}/dsneditor/EsOdbcDsnBinding/) +add_custom_target(dsneditor + COMMAND MSBuild ${CMAKE_SOURCE_DIR}/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.vcxproj + # place all the build items (by- & products) into a single dir + /p:OutputPath=${DSNBND_LIB_BIN_DIR_BASE}-$/ + /p:IntermediateOutputPath=${DSNBND_LIB_BIN_DIR_BASE}-$/ + /p:OutDir=${DSNBND_LIB_BIN_DIR_BASE}-$/ + /p:IntDir=${DSNBND_LIB_BIN_DIR_BASE}-$/ + /p:Configuration=$ + /p:Platform=${TARCH} # make it explicit, for x-arch builds + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMENT "Building the DSN editor libraries.") -message("C flags: ${CMAKE_C_FLAGS} .") -message("Driver source files: ${DRV_SRC} .") -message("Driver include paths: " ${ODBC_INC} ${DRV_SRC_DIR} - ${LIBCURL_INC_PATH} ${UJSON4C_INC} ${CTIMESTAMP_PATH_SRC}) - -# generate resource file -configure_file(${DRV_SRC_DIR}/driver.rc.cmake ${CMAKE_BINARY_DIR}/driver.rc) # # finally, set destination library # +# generate resource file +configure_file(${DRV_SRC_DIR}/driver.rc.cmake ${CMAKE_BINARY_DIR}/driver.rc) add_library(${DRV_NAME} SHARED ${DRV_SRC} ${CMAKE_BINARY_DIR}/${DRV_NAME}.def ${CMAKE_BINARY_DIR}/driver.rc) #generate_export_header(${DRV_NAME}) target_compile_definitions(${DRV_NAME} PRIVATE "DRIVER_BUILD") - +add_dependencies(${DRV_NAME} dsneditor) include_directories(${ODBC_INC} ${DRV_SRC_DIR} ${LIBCURL_INC_PATH} - ${UJSON4C_INC} ${CTIMESTAMP_PATH_SRC}) + ${UJSON4C_INC} ${CTIMESTAMP_PATH_SRC} ${DSNEDITOR_INC_PATH}) +target_link_libraries(${DRV_NAME} odbccp32 legacy_stdio_definitions + ${DSNBND_LIB_BIN_DIR_BASE}-$/esdsnbnd${CMAKE_IMPORT_LIBRARY_SUFFIX} + libcurl ${LIBCURL_WIN_LIBS}) -target_link_libraries(${DRV_NAME} odbccp32 legacy_stdio_definitions libcurl - ${LIBCURL_WIN_LIBS}) -# add testing project/target +# +# Set up the testing project/target +# enable_testing() # ... and testing directory to build add_subdirectory(test) + +# +# Set up the instalation +# set(INSTALL_DIR ${DRIVER_BASE_NAME}-${DRV_VERSION}${VERSION_QUALIFIER}-${PLAT_ARCH} # this must remain a STRING (i.e not PATH), otherwise CPACK won't work CACHE STRING "Directory to install the driver files into") -message("Install target: ${INSTALL_DIR}.") # this will cause the 'install' to no longer depend on 'all', which avoids # building the tests, but this also means that the library must be built # before building the 'install' target. @@ -301,15 +326,24 @@ set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY TRUE) install(FILES LICENSE.rtf LICENSE.txt DESTINATION ${INSTALL_DIR}) -if (${LIBCURL_LINK_MODE} MATCHES dll) +# add libcurl if build dynamically +if (${LIBCURL_LINK_MODE} MATCHES [Dd][Ll][Ll]) install(FILES # need to use FILE : https://public.kitware.com/Bug/view.php?id=14311 ${LIBCURL_LD_PATH}/libcurl${LIBCURL_BUILD_SUFFIX}${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION ${INSTALL_DIR}) -endif (${LIBCURL_LINK_MODE} MATCHES dll) +endif (${LIBCURL_LINK_MODE} MATCHES [Dd][Ll][Ll]) +# add editor DLLs +install(FILES + ${DSNBND_LIB_BIN_DIR_BASE}-$/esdsnedt.dll + ${DSNBND_LIB_BIN_DIR_BASE}-$/esdsnbnd.dll + DESTINATION ${INSTALL_DIR}) install(TARGETS ${DRV_NAME} DESTINATION ${INSTALL_DIR}) +# +# Set up the packaing +# set(CPACK_GENERATOR "ZIP") # don't build ALL (but see CMAKE_SKIP_INSTALL_ALL_DEPENDENCY comment) set(CMAKE_SKIP_PACKAGE_ALL_DEPENDENCY TRUE) @@ -317,4 +351,21 @@ set(CPACK_PACKAGE_FILE_NAME ${DRIVER_BASE_NAME}-${DRV_VERSION}${VERSION_QUALIFIER}-${PLAT_ARCH}) include(CPack) + +# +# Generation summary +# +message(" ***** ") +message("Driver source files: ${DRV_SRC}") +message("Driver compile flags: ${CMAKE_C_FLAGS}") +message("Driver include paths: ${ODBC_INC} ${DRV_SRC_DIR}" + "${LIBCURL_INC_PATH} ${UJSON4C_INC} ${CTIMESTAMP_PATH_SRC}" + "${DSNEDITOR_INC_PATH}") +# there's no var for this +message("Driver link libraries: odbccp32 legacy_stdio_definitions esdsnbnd" + "libcurl ${LIBCURL_WIN_LIBS}") +message("Driver install target: ${INSTALL_DIR}.") +message("Driver packaging target: ${CPACK_PACKAGE_FILE_NAME}.") +message(" ***** ") + # vim: set noet fenc=utf-8 ff=dos sts=0 sw=4 ts=4 : diff --git a/build.bat b/build.bat index bbf03330..5cb4c9a8 100644 --- a/build.bat +++ b/build.bat @@ -204,8 +204,7 @@ REM USAGE function: output a usage message echo building (requires 2017 version or later^). echo clean : remove all the files in the build dir. echo proper : clean libs, builds, project dirs and exit. - echo type:T : selects the build type, T, among one of: - echo Debug/Release/RelWithDebInfo/MinSizeRel. + echo type:T : selects the build type, T: Debug or Release. echo tests : run all the defined tests. echo suites : run all the defined tests, individually. echo suite:S : run one test, S. @@ -355,50 +354,70 @@ REM injected into the project files generated by cmake REM BUILDTYPE function: set the build config to feed MSBuild :BUILDTYPE - if /i not [%ARG:type=%] == [%ARG%] ( - REM cycle through the args, look for 'type:' token and use the - REM follow-up token - for %%a in (%ARG:"=%) do ( - set crr=%%a - if /i ["!crr:~0,5!"] == ["type:"] ( - set BUILD_TYPE=!crr:~5! + if not exist ALL_BUILD.vcxproj ( + if /i not [%ARG:type=%] == [%ARG%] ( + REM cycle through the args, look for 'type:' token and use the + REM follow-up token + for %%a in (%ARG:"=%) do ( + set crr=%%a + if /i ["!crr:~0,5!"] == ["type:"] ( + set BUILD_TYPE=!crr:~5! + ) ) + REM no check against empty val (type:) here ) - REM no check against empty val (type:) here - ) - if [%BUILD_TYPE%] == [] ( - set BUILD_TYPE=Debug + if [!BUILD_TYPE!] == [] ( + set BUILD_TYPE=Debug + ) + echo %~nx0: setting the build type to: !BUILD_TYPE!. + ) else if exist %BUILD_DIR%/Release ( + set BUILD_TYPE=Release + echo %~nx0: previously build type set: !BUILD_TYPE!. + ) else if exist %BUILD_DIR%/Debug ( + set BUILD_TYPE=Debug + echo %~nx0: previously build type set: !BUILD_TYPE!. + ) else ( + REM DSN editor libs only support Debug and Release + echo %~nx0: ERROR: unknown previously set build type. + set ERRORLEVEL=1 + goto END ) set MSBUILD_ARGS=/p:Configuration=!BUILD_TYPE! - echo %~nx0: setting the build type to: !BUILD_TYPE!. goto:eof REM BUILD function: build various targets :BUILD + REM set the wanted or previously set build type. + call:BUILDTYPE + if ERRORLEVEL 1 ( + goto END + ) if not exist ALL_BUILD.vcxproj ( echo %~nx0: generating the project files. REM set the wanted build type. - call:BUILDTYPE + rem call:BUILDTYPE set CMAKE_ARGS=-DDRIVER_BASE_NAME=%DRIVER_BASE_NAME% REM no explicit x86 generator and is the default (MSVC2017 only?). set CMAKE_ARGS=!CMAKE_ARGS! -DCMAKE_GENERATOR_PLATFORM=%TARCH:x86=% + if /i not [%ARG:curldll=%] == [%ARG%] ( set CMAKE_ARGS=!CMAKE_ARGS! -DLIBCURL_LINK_MODE=dll ) + if /i [!BUILD_TYPE!] == [Debug] ( + set CMAKE_ARGS=!CMAKE_ARGS! -DLIBCURL_BUILD_TYPE=debug + ) else ( + set CMAKE_ARGS=!CMAKE_ARGS! -DLIBCURL_BUILD_TYPE=release + ) + if not [!INSTALL_DIR!] == [] ( set CMAKE_ARGS=!CMAKE_ARGS! -DINSTALL_DIR=!INSTALL_DIR! ) if not [!PACKAGE_VER!] == [] ( set CMAKE_ARGS=!CMAKE_ARGS! -DVERSION_QUALIFIER=!PACKAGE_VER! ) - if /i [!BUILD_TYPE!] == [Debug] ( - set CMAKE_ARGS=!CMAKE_ARGS! -DLIBCURL_BUILD_TYPE=debug - ) else ( - set CMAKE_ARGS=!CMAKE_ARGS! -DLIBCURL_BUILD_TYPE=release - ) echo %~nx0: cmake params: !CMAKE_ARGS!. %CMAKE% !CMAKE_ARGS! !SRC_PATH! diff --git a/driver/connect.c b/driver/connect.c index 93f58eda..0a90342a 100644 --- a/driver/connect.c +++ b/driver/connect.c @@ -116,8 +116,8 @@ BOOL connect_init() assert(curl_info); /* these are available from "age" 0. */ INFO("Using libcurl version: %s, features: 0x%x, SSL ver.: %s.", - curl_info->version, curl_info->features, - curl_info->ssl_version ? curl_info->ssl_version : "NONE"); + curl_info->version, curl_info->features, + curl_info->ssl_version ? curl_info->ssl_version : "NONE"); } http_headers = curl_slist_append(http_headers, HTTP_ACCEPT_JSON); @@ -481,9 +481,8 @@ static BOOL dbc_curl_prepare(esodbc_dbc_st *dbc, SQLULEN tout, if (0 < tout) { dbc->curl_err = curl_easy_setopt(dbc->curl, CURLOPT_TIMEOUT, tout); if (dbc->curl_err != CURLE_OK) { - ERRH(dbc, "libcurl: failed to set timeout=%ld: %s (%d).", tout, - curl_easy_strerror(dbc->curl_err), dbc->curl_err); - return FALSE; + ERRH(dbc, "libcurl: failed to set timeout=%ld.", tout); + goto err; } } @@ -511,6 +510,42 @@ static BOOL dbc_curl_prepare(esodbc_dbc_st *dbc, SQLULEN tout, return FALSE; } +/* post cURL error message: include CURLOPT_ERRORBUFFER if available */ +static void dbc_curl_post_diag(esodbc_dbc_st *dbc) +{ + SQLWCHAR buff[SQL_MAX_MESSAGE_LENGTH] = {1}; + SQLWCHAR *fmt; + int n; + + assert(dbc->curl_err != CURLE_OK); + + /* in some cases ([::1]:0) this buffer will be empty, even though cURL + * returns an error code */ + if (dbc->curl_err_buff[0]) { + fmt = WPFCP_DESC " (code:%d; " WPFCP_DESC ")."; + } else { + fmt = WPFCP_DESC " (code:%d)."; + } + + n = swprintf(buff, sizeof(buff)/sizeof(*buff), fmt, + curl_easy_strerror(dbc->curl_err), dbc->curl_err, + /* this param is present even if there's no spec for it in fmt */ + dbc->curl_err_buff); + /* if printing succeeded, OR failed, but buff is 0-term'd => OK */ + if (n < 0 && !buff[sizeof(buff)/sizeof(*buff) - 1]) { + /* else: swprintf will fail if formatted string would overrun the + * available buffer room, but 0-terminate it; if that's the case. + * retry, skipping formatting. */ + ERRH(dbc, "formatting error message failed; skipping formatting."); + post_c_diagnostic(&HDRH(dbc)->diag, SQL_STATE_08S01, + curl_easy_strerror(dbc->curl_err), dbc->curl_err); + } else { + ERRH(dbc, "libcurl failure message: " LWPD ".", buff); + post_diagnostic(&HDRH(dbc)->diag, SQL_STATE_08S01, buff, + dbc->curl_err); + } +} + /* * Sends a POST request with the given JSON object body. */ @@ -553,9 +588,7 @@ SQLRETURN post_json(esodbc_stmt_st *stmt, const cstr_st *u8body) } } } else { - assert (dbc->curl_err != CURLE_OK); - post_c_diagnostic(&stmt->hdr.diag, SQL_STATE_HY000, dbc->curl_err_buff, - dbc->curl_err); + dbc_curl_post_diag(dbc); code = -1; /* make sure that curl's error will surface */ } /* something went wrong */ @@ -586,8 +619,7 @@ static SQLRETURN test_connect(esodbc_dbc_st *dbc) if (! (dbc_curl_prepare(dbc, dbc->timeout, &u8body) && dbc_curl_perform(dbc, &code, &resp))) { - post_c_diagnostic(&dbc->hdr.diag, SQL_STATE_HY000, dbc->curl_err_buff, - dbc->curl_err); + dbc_curl_post_diag(dbc); cleanup_curl(dbc); code = -1; /* make sure that curl's error will surface */ } @@ -613,10 +645,10 @@ static SQLRETURN test_connect(esodbc_dbc_st *dbc) /* * init dbc from configured attributes */ -static SQLRETURN process_config(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) +SQLRETURN config_dbc(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) { - esodbc_state_et state = SQL_STATE_HY000; - int cnt; + SQLRETURN ret; + int cnt, ipv6; SQLBIGINT secure; long long timeout, max_body_size, max_fetch_size; SQLWCHAR buff_url[ESODBC_MAX_URL_LEN]; @@ -627,11 +659,14 @@ static SQLRETURN process_config(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) if (! str2bigint(&attrs->secure, /*wide?*/TRUE, &secure)) { ERRH(dbc, "failed to read secure param `" LWPDL "`.", LWSTR(&attrs->secure)); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "security setting number " + "conversion failure", 0); goto err; } if (secure < ESODBC_SEC_NONE || ESODBC_SEC_MAX <= secure) { ERRH(dbc, "invalid secure param `" LWPDL "` (not within %d - %d).", LWSTR(&attrs->secure), ESODBC_SEC_NONE, ESODBC_SEC_MAX - 1); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "invalid security setting", 0); goto err; } else { dbc->secure = (long)secure; @@ -642,6 +677,8 @@ static SQLRETURN process_config(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) if (! wstr_to_utf8(&attrs->ca_path, &dbc->ca_path)) { ERRNH(dbc, "failed to convert CA path `" LWPDL "` to UTF8.", LWSTR(&attrs->ca_path)); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "reading the CA file path " + "failed", 0); goto err; } INFOH(dbc, "CA path: `%s`.", dbc->ca_path.str); @@ -650,20 +687,30 @@ static SQLRETURN process_config(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) /* * URL of the cluster */ + /* Note: libcurl won't check hostname validity, it'll just try to resolve + * whatever it receives, if it can parse the URL */ + ipv6 = wcsnstr(attrs->server.str, attrs->server.cnt, L':') != NULL; cnt = swprintf(url.str, sizeof(buff_url)/sizeof(*buff_url), - L"http" WPFCP_DESC "://" WPFWP_LDESC ":" WPFWP_LDESC - ELASTIC_SQL_PATH, secure ? "s" : "", LWSTR(&attrs->server), + L"http" WPFCP_DESC "://" + WPFCP_DESC WPFWP_LDESC WPFCP_DESC ":" WPFWP_LDESC + ELASTIC_SQL_PATH, + secure ? "s" : "", + ipv6 ? "[" : "", LWSTR(&attrs->server), ipv6 ? "]" : "", LWSTR(&attrs->port)); if (cnt < 0) { ERRNH(dbc, "failed to print URL out of server: `" LWPDL "` [%zd], " "port: `" LWPDL "` [%zd].", LWSTR(&attrs->server), LWSTR(&attrs->port)); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "assembling server's URL failed", + 0); goto err; } else { url.cnt = (size_t)cnt; } if (! wstr_to_utf8(&url, &dbc->url)) { ERRNH(dbc, "failed to convert URL `" LWPDL "` to UTF8.", LWSTR(&url)); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "server URL's UTF8 conversion " + "failed", 0); goto err; } INFOH(dbc, "connection URL: `%s`.", dbc->url.str); @@ -675,12 +722,16 @@ static SQLRETURN process_config(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) if (! wstr_to_utf8(&attrs->uid, &dbc->uid)) { ERRH(dbc, "failed to convert username [%zd] `" LWPDL "` to UTF8.", attrs->uid.cnt, LWSTR(&attrs->uid)); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "username UTF8 conversion " + "failed", 0); goto err; } if (attrs->pwd.cnt) { if (! wstr_to_utf8(&attrs->pwd, &dbc->pwd)) { - ERRH(dbc, "failed to convert username [%zd] `" LWPDL "` to " - "UTF8.", attrs->pwd.cnt, LWSTR(&attrs->pwd)); + ERRH(dbc, "failed to convert password [%zd] (-not shown-) to " + "UTF8.", attrs->pwd.cnt); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "password UTF8 " + "conversion failed", 0); goto err; } } @@ -696,6 +747,8 @@ static SQLRETURN process_config(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) if (! str2bigint(&attrs->timeout, /*wide?*/TRUE, (SQLBIGINT *)&timeout)) { ERRH(dbc, "failed to convert `" LWPDL "` [%zu] to big int.", LWSTR(&attrs->timeout), attrs->timeout.cnt); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "timeout setting number " + "conversion failure", 0); goto err; } if (timeout < 0) { @@ -710,13 +763,17 @@ static SQLRETURN process_config(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) */ if (! str2bigint(&attrs->max_body_size, /*wide?*/TRUE, (SQLBIGINT *)&max_body_size)) { - ERRH(dbc, "failed to convert `" LWPDL "` [%zu] to long long.", + ERRH(dbc, "failed to convert max body size `" LWPDL "` [%zu] to LL.", LWSTR(&attrs->max_body_size), attrs->max_body_size.cnt); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "max body size setting number " + "conversion failure", 0); goto err; } if (max_body_size < 0) { ERRH(dbc, "'%s' setting can't be negative (%ld).", ESODBC_DSN_MAX_BODY_SIZE_MB, max_body_size); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "invalid max body size setting " + "(negative)", 0); goto err; } else { dbc->amax = (size_t)max_body_size * 1024 * 1024; @@ -728,13 +785,17 @@ static SQLRETURN process_config(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) */ if (! str2bigint(&attrs->max_fetch_size, /*wide?*/TRUE, (SQLBIGINT *)&max_fetch_size)) { - ERRH(dbc, "failed to convert `" LWPDL "` [%zu] to long long.", + ERRH(dbc, "failed to convert max fetch size `" LWPDL "` [%zu] to LL.", LWSTR(&attrs->max_fetch_size), attrs->max_fetch_size.cnt); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "max fetch size setting number " + "conversion failure", 0); goto err; } if (max_fetch_size < 0) { ERRH(dbc, "'%s' setting can't be negative (%ld).", ESODBC_DSN_MAX_FETCH_SIZE, max_fetch_size); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "invalid max fetch size setting " + "(negative)", 0); goto err; } else { dbc->fetch.max = (size_t)max_fetch_size; @@ -764,16 +825,17 @@ static SQLRETURN process_config(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) } else { ERRH(dbc, "unknown packing encoding '" LWPDL "'.", LWSTR(&attrs->packing)); + ret = SET_HDIAG(dbc, SQL_STATE_HY000, "invalid packing encoding " + "setting", 0); goto err; } INFOH(dbc, "pack JSON: %s.", dbc->pack_json ? "true" : "false"); return SQL_SUCCESS; err: - if (state == SQL_STATE_HY000) { - RET_HDIAG(dbc, state, "invalid configuration parameter", 0); - } - RET_HDIAGS(dbc, state); + /* release allocated resources before the failure; not the diag, tho */ + cleanup_dbc(dbc); + RET_STATE(dbc->hdr.diag.state); } @@ -837,7 +899,7 @@ void cleanup_dbc(esodbc_dbc_st *dbc) cleanup_curl(dbc); } -static SQLRETURN do_connect(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) +SQLRETURN do_connect(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) { SQLRETURN ret; @@ -845,7 +907,7 @@ static SQLRETURN do_connect(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs) cleanup_dbc(dbc); /* set the DBC params based on given attributes (but no validation atp) */ - ret = process_config(dbc, attrs); + ret = config_dbc(dbc, attrs); if (! SQL_SUCCEEDED(ret)) { return ret; } @@ -1556,6 +1618,19 @@ static BOOL load_es_types(esodbc_dbc_st *dbc) return ret; } +static int receive_dsn_cb(void *arg, const wchar_t *dsn_str, + wchar_t *err_out, size_t eo_max, unsigned int flags) +{ + assert(arg); + /* The function parses the DSN string into the received attrs, which + * remains assigned past the callback scope */ + return validate_dsn((esodbc_dsn_attrs_st *)arg, dsn_str, err_out, eo_max, + /* Try connect here, to be able to report an error back to the + * user right away: otherwise, the connection will fail later in + * SQLDriverConnect loop, but with no indication as to why. */ + /*connect?*/TRUE); +} + SQLRETURN EsSQLDriverConnectW ( SQLHDBC hdbc, @@ -1586,9 +1661,9 @@ SQLRETURN EsSQLDriverConnectW esodbc_dsn_attrs_st attrs; SQLWCHAR buff_dsn[ESODBC_DSN_MAX_ATTR_LEN]; wstr_st orig_dsn = {buff_dsn, 0}; - BOOL disable_nonconn = FALSE; + BOOL disable_nonconn = TRUE; /* disable non-conn controls by default */ BOOL prompt_user = TRUE; - int res; + long res; size_t cnt; init_dsn_attrs(&attrs); @@ -1671,6 +1746,8 @@ SQLRETURN EsSQLDriverConnectW break; case SQL_DRIVER_COMPLETE_REQUIRED: + /* disable non-connection controls, as per the standard (even if + * changing the above default). */ disable_nonconn = TRUE; /* no break */ case SQL_DRIVER_COMPLETE: @@ -1679,13 +1756,14 @@ SQLRETURN EsSQLDriverConnectW /* no break; */ case SQL_DRIVER_PROMPT: /* prompt user first, then try connect */ do { - res = prompt_user ? - prompt_user_config(hdbc, &attrs, FALSE) : 1; + res = prompt_user ? prompt_user_config(hwnd, disable_nonconn, + &attrs, &receive_dsn_cb) : /*need just > 0*/1; if (res < 0) { - ERRH(dbc, "user interaction failed."); + ERRH(dbc, "user GUI interaction failed."); RET_HDIAGS(dbc, SQL_STATE_IM008); } else if (! res) { /* user canceled */ + DBGH(dbc, "user canceled the GUI interaction."); return SQL_NO_DATA; } /* promt user on next iteration */ @@ -1737,11 +1815,13 @@ SQLRETURN EsSQLDriverConnectW res = assign_dsn_attr(&attrs, &MK_WSTR(ESODBC_DSN_DSN), &orig_dsn, /*overwrite?*/TRUE); assert(0 < res); - if (! write_connection_string(&attrs, szConnStrOut, cchConnStrOutMax, - pcchConnStrOut)) { + res = write_connection_string(&attrs, szConnStrOut, cchConnStrOutMax); + if (res < 0) { ERRH(dbc, "failed to build output connection string."); RET_HDIAG(dbc, SQL_STATE_HY000, "failed to build connection " "string", 0); + } else if (pcchConnStrOut) { + *pcchConnStrOut = (SQLSMALLINT)res; } } diff --git a/driver/connect.h b/driver/connect.h index f2072ca2..210f7427 100644 --- a/driver/connect.h +++ b/driver/connect.h @@ -9,11 +9,15 @@ #include "error.h" #include "handles.h" +#include "dsn.h" BOOL connect_init(); void connect_cleanup(); + SQLRETURN post_json(esodbc_stmt_st *stmt, const cstr_st *u8body); void cleanup_dbc(esodbc_dbc_st *dbc); +SQLRETURN do_connect(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs); +SQLRETURN config_dbc(esodbc_dbc_st *dbc, esodbc_dsn_attrs_st *attrs); SQLRETURN EsSQLDriverConnectW diff --git a/driver/convert.c b/driver/convert.c index a3d4da02..ef91809b 100644 --- a/driver/convert.c +++ b/driver/convert.c @@ -2599,7 +2599,7 @@ static SQLRETURN convert_ts_to_timestamp(esodbc_stmt_st *stmt, tss->hour, tss->minute, tss->second, tss->fraction); if (cnt < 0) { ERRH(stmt, "failed printing timestamp struct: %s.", strerror(errno)); - SET_HDIAG(stmt, SQL_STATE_HY000, "C runtime error", 0); + RET_HDIAG(stmt, SQL_STATE_HY000, "C runtime error", 0); } *len = cnt; diff --git a/driver/defs.h b/driver/defs.h index ea2144be..52cb8e3b 100644 --- a/driver/defs.h +++ b/driver/defs.h @@ -144,6 +144,8 @@ #define ESODBC_DEF_FOLLOW "yes" /* packing of REST bodies (JSON or CBOR) */ #define ESODBC_DEF_PACKING "JSON" +/* default tracing activation */ +#define ESODBC_DEF_TRACE_ENABLED "0" /* default tracing level */ #define ESODBC_DEF_TRACE_LEVEL "WARN" diff --git a/driver/dsn.c b/driver/dsn.c index dfbb83fc..43b6cc35 100644 --- a/driver/dsn.c +++ b/driver/dsn.c @@ -9,13 +9,15 @@ #include "dsn.h" #include "log.h" +#include "connect.h" +#include "info.h" #define ODBC_REG_SUBKEY_PATH "SOFTWARE\\ODBC\\ODBC.INI" #define REG_HKLM "HKEY_LOCAL_MACHINE" #define REG_HKCU "HKEY_CURRENT_USER" -void init_dsn_attrs(esodbc_dsn_attrs_st *attrs) +void TEST_API init_dsn_attrs(esodbc_dsn_attrs_st *attrs) { size_t i; wstr_st *wstr; @@ -65,12 +67,16 @@ int assign_dsn_attr(esodbc_dsn_attrs_st *attrs, {&MK_WSTR(ESODBC_DSN_PACKING), &attrs->packing}, {&MK_WSTR(ESODBC_DSN_MAX_FETCH_SIZE), &attrs->max_fetch_size}, {&MK_WSTR(ESODBC_DSN_MAX_BODY_SIZE_MB), &attrs->max_body_size}, + {&MK_WSTR(ESODBC_DSN_TRACE_ENABLED), &attrs->trace_enabled}, {&MK_WSTR(ESODBC_DSN_TRACE_FILE), &attrs->trace_file}, {&MK_WSTR(ESODBC_DSN_TRACE_LEVEL), &attrs->trace_level}, {NULL, NULL} }; int ret; + assert(sizeof(map)/sizeof(*iter) - /* {NULL,NULL} terminator */1 == + ESODBC_DSN_ATTRS_COUNT); + if (ESODBC_DSN_MAX_ATTR_LEN < value->cnt) { ERR("attribute value lenght too large: %zu; max=%zu.", value->cnt, ESODBC_DSN_MAX_ATTR_LEN); @@ -272,7 +278,7 @@ static SQLWCHAR *parse_separator(SQLWCHAR **pos, SQLWCHAR *end) * * `{` and `}` allowed within {} * * brances need to be returned to out-str; */ -BOOL parse_connection_string(esodbc_dsn_attrs_st *attrs, +BOOL TEST_API parse_connection_string(esodbc_dsn_attrs_st *attrs, SQLWCHAR *szConnStrIn, SQLSMALLINT cchConnStrIn) { @@ -302,7 +308,7 @@ BOOL parse_connection_string(esodbc_dsn_attrs_st *attrs, } if (! skip_ws(&pos, end, FALSE)) { - return FALSE; + continue; /* empty values are acceptable */ } if (! parse_token(TRUE, &pos, end, &value)) { @@ -323,7 +329,7 @@ BOOL parse_connection_string(esodbc_dsn_attrs_st *attrs, return TRUE; } -BOOL parse_00_list(esodbc_dsn_attrs_st *attrs, SQLWCHAR *list00) +BOOL TEST_API parse_00_list(esodbc_dsn_attrs_st *attrs, SQLWCHAR *list00) { SQLWCHAR *pos; size_t cnt; @@ -343,6 +349,98 @@ BOOL parse_00_list(esodbc_dsn_attrs_st *attrs, SQLWCHAR *list00) return TRUE; } +static inline BOOL needs_braces(wstr_st *token) +{ + size_t i; + + for (i = 0; i < token->cnt; i ++) { + switch(token->str[i]) { + case ' ': + case '\t': + case '\r': + case '\n': + case '=': + case ';': + return TRUE; + } + } + return FALSE; +} + +long TEST_API write_00_list(esodbc_dsn_attrs_st *attrs, + SQLWCHAR *list00, size_t cnt00) +{ + struct { + wstr_st *kw; + wstr_st *val; + } *iter, map[] = { + {&MK_WSTR(ESODBC_DSN_DRIVER), &attrs->driver}, + {&MK_WSTR(ESODBC_DSN_DESCRIPTION), &attrs->description}, + {&MK_WSTR(ESODBC_DSN_DSN), &attrs->dsn}, + {&MK_WSTR(ESODBC_DSN_PWD), &attrs->pwd}, + {&MK_WSTR(ESODBC_DSN_UID), &attrs->uid}, + {&MK_WSTR(ESODBC_DSN_SAVEFILE), &attrs->savefile}, + {&MK_WSTR(ESODBC_DSN_FILEDSN), &attrs->filedsn}, + {&MK_WSTR(ESODBC_DSN_SERVER), &attrs->server}, + {&MK_WSTR(ESODBC_DSN_PORT), &attrs->port}, + {&MK_WSTR(ESODBC_DSN_SECURE), &attrs->secure}, + {&MK_WSTR(ESODBC_DSN_CA_PATH), &attrs->ca_path}, + {&MK_WSTR(ESODBC_DSN_TIMEOUT), &attrs->timeout}, + {&MK_WSTR(ESODBC_DSN_FOLLOW), &attrs->follow}, + {&MK_WSTR(ESODBC_DSN_CATALOG), &attrs->catalog}, + {&MK_WSTR(ESODBC_DSN_PACKING), &attrs->packing}, + {&MK_WSTR(ESODBC_DSN_MAX_FETCH_SIZE), &attrs->max_fetch_size}, + {&MK_WSTR(ESODBC_DSN_MAX_BODY_SIZE_MB), &attrs->max_body_size}, + {&MK_WSTR(ESODBC_DSN_TRACE_ENABLED), &attrs->trace_enabled}, + {&MK_WSTR(ESODBC_DSN_TRACE_FILE), &attrs->trace_file}, + {&MK_WSTR(ESODBC_DSN_TRACE_LEVEL), &attrs->trace_level}, + {NULL, NULL} + }; + size_t pos; + BOOL add_braces; + + /* check that the esodbc_dsn_attrs_st stays in sync with the above */ + assert(sizeof(map)/sizeof(*iter) - /* {NULL,NULL} terminator */1 == + ESODBC_DSN_ATTRS_COUNT); + + + for (iter = &map[0], pos = 0; iter->val; iter ++) { + if (! iter->val->cnt) { + continue; + } + /* the braces aren't really needed in a doubly-null-terminated list, + * but would make a conversion to a "normal" (`;` or `|` separated) + * connection string easy */ + add_braces = needs_braces(iter->val); + if (cnt00 - /*final \0*/1 < pos + iter->kw->cnt + /*`=`*/1 + + (add_braces ? 2 : 0) + iter->val->cnt) { + ERR("not enough room in destination buffer."); + return -1; + } + /* copy keyword */ + memcpy(list00 + pos, iter->kw->str, iter->kw->cnt * sizeof(*list00)); + pos += iter->kw->cnt; + /* copy attribute value separator (`=`) and brace if needed */ + list00[pos ++] = L'='; + if (add_braces) { + list00[pos ++] = L'{'; + } + /* copy value */ + memcpy(list00 + pos, iter->val->str, iter->val->cnt * sizeof(*list00)); + pos += iter->val->cnt; + /* close any open brace */ + if (add_braces) { + list00[pos ++] = L'}'; + } + /* close current attribute */ + list00[pos ++] = L'\0'; + } + assert(pos < cnt00); + list00[pos ++] = L'\0'; + + return (long)pos; +} + static void log_installer_err() { DWORD ecode; @@ -352,8 +450,47 @@ static void log_installer_err() while (SQL_SUCCEEDED(SQLInstallerError(++ i, &ecode, buff, sizeof(buff)/sizeof(buff[0]), &msg_len))) { - ERR("#%i: errcode=%d: " LWPDL ".", i, ecode, msg_len, buff); + ERR("#%i: errcode=%d: " LWPDL ".", i, ecode, + msg_len/sizeof(*buff), buff); + } +} + +size_t copy_installer_errors(wchar_t *err_buff, size_t eb_max) +{ + DWORD ecode; + SQLWCHAR buff[SQL_MAX_MESSAGE_LENGTH]; + WORD msg_len; + int i, res; + size_t pos; + + i = 0; + pos = 0; + while (SQL_SUCCEEDED(SQLInstallerError(++ i, &ecode, buff, + sizeof(buff)/sizeof(buff[0]), &msg_len))) { + /* Note: msg_len is actually count of chars, current doc is wrong */ + /* if message is larger than buffer, the untruncated size is returned*/ + if (sizeof(buff)/sizeof(buff[0]) <= msg_len) { + msg_len = sizeof(buff)/sizeof(buff[0]) ; + } + + assert(pos <= eb_max); + DBG("error #%d: " LWPD " [%d].", i, buff, msg_len); + res = swprintf(err_buff + pos, eb_max - pos, L"%.*s. (code: %d)\n", + msg_len, buff, ecode); + if (res < 0) { + ERR("failed to copy: #%i: `" LWPDL "` (%d).", i, msg_len, buff, + ecode); + /* allow execution to continue, though */ + } else { + pos += (size_t)res; + if (pos <= msg_len) { + WARN("reached error buffer end (%zu) before copying all " + "errors.", eb_max); + break; + } + } } + return pos; } /* @@ -384,13 +521,10 @@ int system_dsn_exists(wstr_st *dsn) * Reads the system entries for a DSN given into a doubly null-terminated * attributes list. * - * The defaults are always filled in. - * - * The list - as received by ConfigDSN() - seems to only contain the 'DSN' - * keyword, though the documentation mentions a full list. However, if a full - * is provided, the values are going to be taken into account, but possibly - * overwritten by registry entries (which theoretically should be the same - * anyways). + * The list - as received by ConfigDSN() - only contains the 'DSN' keyword, + * though it could contain other attributes too. These are going to be taken + * into account, but possibly overwritten by registry entries (which + * theoretically should be the same anyways). */ BOOL load_system_dsn(esodbc_dsn_attrs_st *attrs, SQLWCHAR *list00) { @@ -455,222 +589,245 @@ BOOL load_system_dsn(esodbc_dsn_attrs_st *attrs, SQLWCHAR *list00) } } - if (! assign_dsn_defaults(attrs)) { - ERR("OOM assigning defaults"); - return FALSE; - } + /* Provide the user no defaults atp. (i.e. start from empty config). The + * GUI will provide some defaults (ex. 9200) and config is validated + * before saving. => no assign_dsn_defaults(attrs); */ return TRUE; } -BOOL write_system_dsn(esodbc_dsn_attrs_st *attrs, BOOL create_new) +BOOL write_system_dsn(esodbc_dsn_attrs_st *new_attrs, + esodbc_dsn_attrs_st *old_attrs) { struct { wstr_st *kw; - wstr_st *val; + wstr_st *new; + wstr_st *old; } *iter, map[] = { /* Driver */ - {&MK_WSTR(ESODBC_DSN_DESCRIPTION), &attrs->description}, + { + &MK_WSTR(ESODBC_DSN_DESCRIPTION), &new_attrs->description, + old_attrs ? &old_attrs->description : NULL + }, /* DSN */ - {&MK_WSTR(ESODBC_DSN_PWD), &attrs->pwd}, - {&MK_WSTR(ESODBC_DSN_UID), &attrs->uid}, + { + &MK_WSTR(ESODBC_DSN_PWD), &new_attrs->pwd, + old_attrs ? &old_attrs->pwd : NULL + }, + { + &MK_WSTR(ESODBC_DSN_UID), &new_attrs->uid, + old_attrs ? &old_attrs->uid : NULL + }, /* SAVEILE */ /* FILEDSN */ - {&MK_WSTR(ESODBC_DSN_SERVER), &attrs->server}, - {&MK_WSTR(ESODBC_DSN_PORT), &attrs->port}, - {&MK_WSTR(ESODBC_DSN_SECURE), &attrs->secure}, - {&MK_WSTR(ESODBC_DSN_CA_PATH), &attrs->ca_path}, - {&MK_WSTR(ESODBC_DSN_TIMEOUT), &attrs->timeout}, - {&MK_WSTR(ESODBC_DSN_FOLLOW), &attrs->follow}, - {&MK_WSTR(ESODBC_DSN_CATALOG), &attrs->catalog}, - {&MK_WSTR(ESODBC_DSN_PACKING), &attrs->packing}, - {&MK_WSTR(ESODBC_DSN_MAX_FETCH_SIZE), &attrs->max_fetch_size}, - {&MK_WSTR(ESODBC_DSN_MAX_BODY_SIZE_MB), &attrs->max_body_size}, - {&MK_WSTR(ESODBC_DSN_TRACE_FILE), &attrs->trace_file}, - {&MK_WSTR(ESODBC_DSN_TRACE_LEVEL), &attrs->trace_level}, - {NULL, NULL} + { + &MK_WSTR(ESODBC_DSN_SERVER), &new_attrs->server, + old_attrs ? &old_attrs->server : NULL + }, + { + &MK_WSTR(ESODBC_DSN_PORT), &new_attrs->port, + old_attrs ? &old_attrs->port : NULL + }, + { + &MK_WSTR(ESODBC_DSN_SECURE), &new_attrs->secure, + old_attrs ? &old_attrs->secure : NULL + }, + { + &MK_WSTR(ESODBC_DSN_CA_PATH), &new_attrs->ca_path, + old_attrs ? &old_attrs->ca_path : NULL + }, + { + &MK_WSTR(ESODBC_DSN_TIMEOUT), &new_attrs->timeout, + old_attrs ? &old_attrs->timeout : NULL + }, + { + &MK_WSTR(ESODBC_DSN_FOLLOW), &new_attrs->follow, + old_attrs ? &old_attrs->follow : NULL + }, + { + &MK_WSTR(ESODBC_DSN_CATALOG), &new_attrs->catalog, + old_attrs ? &old_attrs->catalog : NULL + }, + { + &MK_WSTR(ESODBC_DSN_PACKING), &new_attrs->packing, + old_attrs ? &old_attrs->packing : NULL + }, + { + &MK_WSTR(ESODBC_DSN_MAX_FETCH_SIZE), &new_attrs->max_fetch_size, + old_attrs ? &old_attrs->max_fetch_size : NULL + }, + { + &MK_WSTR(ESODBC_DSN_MAX_BODY_SIZE_MB), &new_attrs->max_body_size, + old_attrs ? &old_attrs->max_body_size : NULL + }, + { + &MK_WSTR(ESODBC_DSN_TRACE_ENABLED), &new_attrs->trace_enabled, + old_attrs ? &old_attrs->trace_enabled : NULL + }, + { + &MK_WSTR(ESODBC_DSN_TRACE_FILE), &new_attrs->trace_file, + old_attrs ? &old_attrs->trace_file : NULL + }, + { + &MK_WSTR(ESODBC_DSN_TRACE_LEVEL), &new_attrs->trace_level, + old_attrs ? &old_attrs->trace_level : NULL + }, + {NULL, NULL, NULL} }; - if (create_new) { - if (! SQLValidDSNW(attrs->dsn.str)) { - ERR("invalid DSN value `" LWPDL "`.", LWSTR(&attrs->dsn)); - return FALSE; - } - INFO("creating new DSN `" LWPDL "` for driver ` " LWPDL " `.", - LWSTR(&attrs->dsn), LWSTR(&attrs->driver)); - if (! SQLWriteDSNToIniW(attrs->dsn.str, attrs->driver.str)) { - ERR("failed to add DSN `" LWPDL "` for driver ` " LWPDL " ` to " - ".INI.", LWSTR(&attrs->dsn), LWSTR(&attrs->driver)); - return FALSE; - } - } + /* check that the esodbc_dsn_attrs_st stays in sync with the above */ + assert(sizeof(map)/sizeof(map[0]) /* {NULL,NULL, NULL} terminator */- 1 + /*Driver,DSN,SAVEFILE,FILEDSN*/+ 4 == ESODBC_DSN_ATTRS_COUNT); for (iter = &map[0]; iter->kw; iter ++) { - if (! iter->val->cnt) { - DBG("value `" LWPDL "` not provisioned.", LWSTR(iter->kw)); - continue; - } - if (! SQLWritePrivateProfileStringW(attrs->dsn.str, - iter->kw->str, iter->val->str, MK_WPTR(SUBKEY_ODBC))) { - ERR("failed to write key `" LWPDL "` with value `" LWPDL "`.", - LWSTR(iter->kw), LWSTR(iter->val)); - return FALSE; + if (iter->old) { + if (EQ_WSTR(iter->new, iter->old)) { + DBG("DSN `" LWPDL "` attribute " LWPDL " maintained " + "value `" LWPDL "`.", LWSTR(&new_attrs->dsn), + LWSTR(iter->kw), LWSTR(iter->new)); + continue; + } + if (! SQLWritePrivateProfileStringW(new_attrs->dsn.str, + iter->kw->str, + /* "If this argument is NULL, the key pointed to by the + * lpszEntry argument is deleted." */ + iter->new->cnt ? iter->new->str : NULL, + MK_WPTR(SUBKEY_ODBC))) { + ERR("failed to write key `" LWPDL "` with value `" LWPDL "`.", + LWSTR(iter->kw), LWSTR(iter->new)); + return FALSE; + } + INFO("DSN `" LWPDL "` attribute " LWPDL " set to `" LWPDL "`%s.", + LWSTR(&new_attrs->dsn), LWSTR(iter->kw), LWSTR(iter->new), + iter->new->cnt ? "" : " (deleted)"); + } else if (iter->new->cnt) { + if (! SQLWritePrivateProfileStringW(new_attrs->dsn.str, + iter->kw->str, iter->new->str, MK_WPTR(SUBKEY_ODBC))) { + ERR("failed to write key `" LWPDL "` with value `" LWPDL "`.", + LWSTR(iter->kw), LWSTR(iter->new)); + return FALSE; + } + INFO("DSN `" LWPDL "` attribute " LWPDL " set to `" LWPDL "`.", + LWSTR(&new_attrs->dsn), LWSTR(iter->kw), LWSTR(iter->new)); } - DBG("key `" LWPDL "` with value `" LWPDL "` written to " SUBKEY_ODBC - ".", LWSTR(iter->kw), LWSTR(iter->val)); } return TRUE; } -static inline BOOL needs_braces(wstr_st *token) -{ - size_t i; - - for (i = 0; i < token->cnt; i ++) { - switch(token->str[i]) { - case ' ': - case '\t': - case '\r': - case '\n': - case '=': - case ';': - return TRUE; - } - } - return FALSE; -} - /* build a connection string to be written in the DSN files */ -BOOL write_connection_string(esodbc_dsn_attrs_st *attrs, - SQLWCHAR *szConnStrOut, SQLSMALLINT cchConnStrOutMax, - SQLSMALLINT *pcchConnStrOut) +long TEST_API write_connection_string(esodbc_dsn_attrs_st *attrs, + SQLWCHAR *szConnStrOut, SQLSMALLINT cchConnStrOutMax) { int n, braces; size_t pos; wchar_t *format; struct { wstr_st *val; - char *kw; + wstr_st *kw; } *iter, map[] = { - {&attrs->driver, ESODBC_DSN_DRIVER}, - /* Description */ - {&attrs->dsn, ESODBC_DSN_DSN}, - {&attrs->pwd, ESODBC_DSN_PWD}, - {&attrs->uid, ESODBC_DSN_UID}, - {&attrs->savefile, ESODBC_DSN_SAVEFILE}, - {&attrs->filedsn, ESODBC_DSN_FILEDSN}, - {&attrs->server, ESODBC_DSN_SERVER}, - {&attrs->port, ESODBC_DSN_PORT}, - {&attrs->secure, ESODBC_DSN_SECURE}, - {&attrs->ca_path, ESODBC_DSN_CA_PATH}, - {&attrs->timeout, ESODBC_DSN_TIMEOUT}, - {&attrs->follow, ESODBC_DSN_FOLLOW}, - {&attrs->catalog, ESODBC_DSN_CATALOG}, - {&attrs->packing, ESODBC_DSN_PACKING}, - {&attrs->max_fetch_size, ESODBC_DSN_MAX_FETCH_SIZE}, - {&attrs->max_body_size, ESODBC_DSN_MAX_BODY_SIZE_MB}, - {&attrs->trace_file, ESODBC_DSN_TRACE_FILE}, - {&attrs->trace_level, ESODBC_DSN_TRACE_LEVEL}, + {&attrs->driver, &MK_WSTR(ESODBC_DSN_DRIVER)}, + {&attrs->description, &MK_WSTR(ESODBC_DSN_DESCRIPTION)}, + {&attrs->dsn, &MK_WSTR(ESODBC_DSN_DSN)}, + {&attrs->pwd, &MK_WSTR(ESODBC_DSN_PWD)}, + {&attrs->uid, &MK_WSTR(ESODBC_DSN_UID)}, + {&attrs->savefile, &MK_WSTR(ESODBC_DSN_SAVEFILE)}, + {&attrs->filedsn, &MK_WSTR(ESODBC_DSN_FILEDSN)}, + {&attrs->server, &MK_WSTR(ESODBC_DSN_SERVER)}, + {&attrs->port, &MK_WSTR(ESODBC_DSN_PORT)}, + {&attrs->secure, &MK_WSTR(ESODBC_DSN_SECURE)}, + {&attrs->ca_path, &MK_WSTR(ESODBC_DSN_CA_PATH)}, + {&attrs->timeout, &MK_WSTR(ESODBC_DSN_TIMEOUT)}, + {&attrs->follow, &MK_WSTR(ESODBC_DSN_FOLLOW)}, + {&attrs->catalog, &MK_WSTR(ESODBC_DSN_CATALOG)}, + {&attrs->packing, &MK_WSTR(ESODBC_DSN_PACKING)}, + {&attrs->max_fetch_size, &MK_WSTR(ESODBC_DSN_MAX_FETCH_SIZE)}, + {&attrs->max_body_size, &MK_WSTR(ESODBC_DSN_MAX_BODY_SIZE_MB)}, + {&attrs->trace_enabled, &MK_WSTR(ESODBC_DSN_TRACE_ENABLED)}, + {&attrs->trace_file, &MK_WSTR(ESODBC_DSN_TRACE_FILE)}, + {&attrs->trace_level, &MK_WSTR(ESODBC_DSN_TRACE_LEVEL)}, {NULL, NULL} }; + /* check that the esodbc_dsn_attrs_st stays in sync with the above */ + assert(sizeof(map)/sizeof(*iter) - /* {NULL,NULL} terminator */1 == + ESODBC_DSN_ATTRS_COUNT); + assert(0 <= cchConnStrOutMax); + for (iter = &map[0], pos = 0; iter->val; iter ++) { if (iter->val->cnt) { braces = needs_braces(iter->val) ? 2 : 0; if (cchConnStrOutMax && szConnStrOut) { - /* swprintf will fail if formated string would overrun the - * buffer size */ - if (cchConnStrOutMax - pos < iter->val->cnt + braces) { - /* indicate that we've reached buffer limits: only account - * for how long the string would be */ - cchConnStrOutMax = 0; - pos += iter->val->cnt + braces; - continue; - } - if (braces) { - format = WPFCP_DESC "={" WPFWP_LDESC "};"; - } else { - format = WPFCP_DESC "=" WPFWP_LDESC ";"; - } - n = swprintf(szConnStrOut + pos, cchConnStrOutMax - pos, - format, iter->kw, LWSTR(iter->val)); - if (n < 0) { - ERRN("failed to outprint connection string (space " - "left: %d; needed: %d).", cchConnStrOutMax - pos, - iter->val->cnt); - return FALSE; - } else { - pos += n; + /* is there still room in the buffer? */ + if ((SQLSMALLINT)pos < cchConnStrOutMax) { + if (braces) { + format = WPFWP_LDESC "={" WPFWP_LDESC "};"; + } else { + format = WPFWP_LDESC "=" WPFWP_LDESC ";"; + } + n = swprintf(szConnStrOut + pos, cchConnStrOutMax - pos, + format, LWSTR(iter->kw), LWSTR(iter->val)); + if (n < 0) { + ERRN("failed to outprint connection string (keyword: " + LWPDL ", room: %hd, position: %zu).", + LWSTR(iter->kw), cchConnStrOutMax, pos); + return -1; + } } - } else { - /* simply increment the counter, since the untruncated length - * need to be returned to the app */ - pos += iter->val->cnt + braces; } + /* update the write position with what would be written (not what + * has been), since the untruncated length needs to always be + * returned to the app */ + pos += iter->kw->cnt + /*`=`*/1 + + iter->val->cnt + braces + /*`;`*/1; } } - *pcchConnStrOut = (SQLSMALLINT)pos; - - DBG("Output connection string: `" LWPD "`; out len: %d.", - szConnStrOut, pos); - return TRUE; + DBG("new connection string: `" LWPD "`; out len: %zu.", szConnStrOut, pos); + assert(pos < LONG_MAX); + return (long)pos; } -BOOL assign_dsn_defaults(esodbc_dsn_attrs_st *attrs) +/* assign defaults where not assigned and applicable */ +void assign_dsn_defaults(esodbc_dsn_attrs_st *attrs) { - /* assign defaults where not assigned and applicable */ - if (assign_dsn_attr(attrs, + int res = 0; + + res |= assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_SERVER), &MK_WSTR(ESODBC_DEF_SERVER), - /*overwrite?*/FALSE) < 0) { - return FALSE; - } - if (assign_dsn_attr(attrs, + /*overwrite?*/FALSE); + res |= assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_PORT), &MK_WSTR(ESODBC_DEF_PORT), - /*overwrite?*/FALSE) < 0) { - return FALSE; - } - if (assign_dsn_attr(attrs, + /*overwrite?*/FALSE); + res |= assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_SECURE), &MK_WSTR(ESODBC_DEF_SECURE), - /*overwrite?*/FALSE) < 0) { - return FALSE; - } - if (assign_dsn_attr(attrs, + /*overwrite?*/FALSE); + res |= assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_TIMEOUT), &MK_WSTR(ESODBC_DEF_TIMEOUT), - /*overwrite?*/FALSE) < 0) { - return FALSE; - } - if (assign_dsn_attr(attrs, + /*overwrite?*/FALSE); + res |= assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_FOLLOW), &MK_WSTR(ESODBC_DEF_FOLLOW), - /*overwrite?*/FALSE) < 0) { - return FALSE; - } + /*overwrite?*/FALSE); - if (assign_dsn_attr(attrs, + res |= assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_PACKING), &MK_WSTR(ESODBC_DEF_PACKING), - /*overwrite?*/FALSE) < 0) { - return FALSE; - } - if (assign_dsn_attr(attrs, + /*overwrite?*/FALSE); + res |= assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_MAX_FETCH_SIZE), &MK_WSTR(ESODBC_DEF_FETCH_SIZE), - /*overwrite?*/FALSE) < 0) { - return FALSE; - } - if (assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_MAX_BODY_SIZE_MB), + /*overwrite?*/FALSE); + res |= assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_MAX_BODY_SIZE_MB), &MK_WSTR(ESODBC_DEF_MAX_BODY_SIZE_MB), - /*overwrite?*/FALSE) < 0) { - return FALSE; - } + /*overwrite?*/FALSE); /* default: no trace file */ - if (assign_dsn_attr(attrs, - &MK_WSTR(ESODBC_DSN_TRACE_LEVEL), &MK_WSTR(ESODBC_DEF_TRACE_LEVEL), - /*overwrite?*/FALSE) < 0) { - return FALSE; - } - - return TRUE; + res |= assign_dsn_attr(attrs, + &MK_WSTR(ESODBC_DSN_TRACE_ENABLED), + &MK_WSTR(ESODBC_DEF_TRACE_ENABLED), /*overwrite?*/FALSE); + res |= assign_dsn_attr(attrs, + &MK_WSTR(ESODBC_DSN_TRACE_LEVEL), + &MK_WSTR(ESODBC_DEF_TRACE_LEVEL), /*overwrite?*/FALSE); + + assert(0 <= res); } @@ -792,60 +949,107 @@ BOOL read_system_info(esodbc_dsn_attrs_st *attrs) #error "unsupported platform" /* TODO */ #endif /* defined(_WIN32) || defined (WIN32) */ - -// asks user for the config data -// returns: -// . negative: on failure -// . 0: user canceled -// . positive: user provided input -int prompt_user_config(HWND hwndParent, esodbc_dsn_attrs_st *attrs, - /* disable non-connect-related controls? */ - BOOL disable_nonconn) +int validate_dsn(esodbc_dsn_attrs_st *attrs, const wchar_t *dsn_str, + wchar_t *err_out, size_t eo_max, BOOL on_connect) { - static int attempts = 0; + int ret; + esodbc_dbc_st dbc; - if (! hwndParent) { - INFO("no window handler provided -- configuration skipped."); - return 1; + if (! dsn_str) { + ERR("invalid NULL DSN string received."); + /* internal error, no user-relevant message */ + return ESODBC_DSN_ISNULL_ERROR; } - TRACE; - - if (assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_DSN), - &MK_WSTR("My Elasticsearch ODBC DSN"), FALSE) <= 0) { - //&MK_WSTR("My Elasticsearch ODBC DSN"), TRUE, TRUE) <= 0) { - return -1; +#ifdef ESODBC_DSN_API_WITH_00_LIST + /* this won't be "complete" if using 00-list */ + DBG("received DSN string starting with: `" LWPD "`.", dsn_str); + if (! parse_00_list(attrs, (SQLWCHAR *)dsn_str)) { +#else + DBG("received DSN string: `" LWPD "`.", dsn_str); + if (! parse_connection_string(attrs, (SQLWCHAR *)dsn_str, SQL_NTS)) { +#endif /* ESODBC_DSN_API_WITH_00_LIST */ + ERR("failed to parse received DSN string."); + swprintf(err_out, eo_max, L"DSN string parsing error."); + return ESODBC_DSN_INVALID_ERROR; } -#if 1 - if (assign_dsn_attr(attrs, &MK_WSTR(ESODBC_DSN_TRACE_LEVEL), - &MK_WSTR("INFO"), FALSE) <= 0) { - return -1; + + /* + * check on the minimum DSN set requirements + */ + if (! attrs->server.cnt) { + ERR("received empty server name"); + swprintf(err_out, eo_max, L"Server hostname cannot be empty."); + return ESODBC_DSN_INVALID_ERROR; } -#endif - if (1 < attempts ++) { - /* prevent infinite loops */ - return 0; + if (!on_connect && !attrs->dsn.cnt) { + ERR("received empty DSN name"); + swprintf(err_out, eo_max, L"DSN name cannot be empty."); + return ESODBC_DSN_INVALID_ERROR; } - if (SQL_MAX_DSN_LENGTH < attrs->dsn.cnt) { - ERR("DSN name longer than max (%d).", SQL_MAX_DSN_LENGTH); + /* fill in whatever's missing */ + assign_dsn_defaults(attrs); + + init_dbc(&dbc, NULL); + ret = on_connect ? do_connect(&dbc, attrs) : config_dbc(&dbc, attrs); + + if (! SQL_SUCCEEDED(ret)) { + ret = EsSQLGetDiagFieldW(SQL_HANDLE_DBC, &dbc, /*rec#*/1, + SQL_DIAG_MESSAGE_TEXT, err_out, (SQLSMALLINT)eo_max, + /*written len*/NULL/*err_out is 0-term'd*/); + /* function should not fail with given params. */ + assert(SQL_SUCCEEDED(ret)); + ERR("test DBC %s failed: " LWPD ".", + on_connect ? "connection" : "configuration", err_out); + ret = ESODBC_DSN_GENERIC_ERROR; + } else { + ret = ESODBC_DSN_NO_ERROR; // 0 } - return 1; + cleanup_dbc(&dbc); + return ret; } -// asks user if we should overwrite the existing DSN -// returns: -// . negative on failure -// . 0 on false -// . positive on true -int prompt_user_overwrite(HWND hwndParent, wstr_st *dsn) +static int test_connect(void *arg, const wchar_t *dsn_str, + wchar_t *err_out, size_t eo_max, unsigned int _) { - if (! hwndParent) { - INFO("no window handler provided -- forcing overwrite."); - return 1; + esodbc_dsn_attrs_st attrs; + + assert(! arg); /* change santinel */ + init_dsn_attrs(&attrs); + return validate_dsn(&attrs, dsn_str, err_out, eo_max, /*on conn*/TRUE); +} + +/* + * Return: + * < 0: error + * ==0: user cancels + * > 0: success + */ +int prompt_user_config(HWND hwnd, BOOL on_conn, esodbc_dsn_attrs_st *attrs, + driver_callback_ft save_cb) +{ + int ret; + wchar_t dsn_str[sizeof(attrs->buff)/sizeof(*attrs->buff)]; + +#if 0 + if (write_00_list(attrs, (SQLWCHAR *)dsn_str, + sizeof(dsn_str)/sizeof(*dsn_str)) <= 0) { +#else + if (write_connection_string(attrs, (SQLWCHAR *)dsn_str, + sizeof(dsn_str)/sizeof(*dsn_str)) <= 0) { +#endif + ERR("failed to serialize attributes into a DSN string."); + return FALSE; } - TRACE; - return 1; + + ret = EsOdbcDsnEdit(hwnd, on_conn, dsn_str, &test_connect, NULL, + save_cb, attrs); + DBG("DSN editor returned: %d.", ret); + if (ret < 0) { + ERR("failed to bring up the GUI; code:%d.", ret); + } + return ret; } diff --git a/driver/dsn.h b/driver/dsn.h index f7da7617..a985f61a 100644 --- a/driver/dsn.h +++ b/driver/dsn.h @@ -7,6 +7,7 @@ #ifndef __DSN_H__ #define __DSN_H__ +#include "EsOdbcDsnBinding.h" #include "util.h" #include "defs.h" @@ -31,6 +32,7 @@ #define ESODBC_DSN_PACKING "Packing" #define ESODBC_DSN_MAX_FETCH_SIZE "MaxFetchSize" #define ESODBC_DSN_MAX_BODY_SIZE_MB "MaxBodySizeMB" +#define ESODBC_DSN_TRACE_ENABLED "TraceEnabled" #define ESODBC_DSN_TRACE_FILE "TraceFile" #define ESODBC_DSN_TRACE_LEVEL "TraceLevel" @@ -53,31 +55,45 @@ typedef struct { wstr_st packing; wstr_st max_fetch_size; wstr_st max_body_size; + wstr_st trace_enabled; wstr_st trace_file; wstr_st trace_level; -#define ESODBC_DSN_ATTRS_COUNT 19 +#define ESODBC_DSN_ATTRS_COUNT 20 SQLWCHAR buff[ESODBC_DSN_ATTRS_COUNT * ESODBC_DSN_MAX_ATTR_LEN]; } esodbc_dsn_attrs_st; -void init_dsn_attrs(esodbc_dsn_attrs_st *attrs); -BOOL assign_dsn_defaults(esodbc_dsn_attrs_st *attrs); +void TEST_API init_dsn_attrs(esodbc_dsn_attrs_st *attrs); +void assign_dsn_defaults(esodbc_dsn_attrs_st *attrs); BOOL assign_dsn_attr(esodbc_dsn_attrs_st *attrs, wstr_st *keyword, wstr_st *value, BOOL overwrite); +BOOL TEST_API parse_00_list(esodbc_dsn_attrs_st *attrs, SQLWCHAR *list00); +long TEST_API write_00_list(esodbc_dsn_attrs_st *attrs, + SQLWCHAR *list00, size_t cnt00); + +/* "system" from "system information" (cf. SQLDriverConnect), not as + * in User/System DSN */ BOOL read_system_info(esodbc_dsn_attrs_st *attrs); int system_dsn_exists(wstr_st *dsn); BOOL load_system_dsn(esodbc_dsn_attrs_st *attrs, SQLWCHAR *list00); -BOOL write_system_dsn(esodbc_dsn_attrs_st *attrs, BOOL create_new); +BOOL write_system_dsn(esodbc_dsn_attrs_st *crr, esodbc_dsn_attrs_st *old); -BOOL parse_connection_string(esodbc_dsn_attrs_st *attrs, +BOOL TEST_API parse_connection_string(esodbc_dsn_attrs_st *attrs, SQLWCHAR *szConnStrIn, SQLSMALLINT cchConnStrIn); -BOOL write_connection_string(esodbc_dsn_attrs_st *attrs, - SQLWCHAR *szConnStrOut, SQLSMALLINT cchConnStrOutMax, - SQLSMALLINT *pcchConnStrOut); +long TEST_API write_connection_string(esodbc_dsn_attrs_st *attrs, + SQLWCHAR *szConnStrOut, SQLSMALLINT cchConnStrOutMax); + +size_t copy_installer_errors(wchar_t *err_buff, size_t eb_max); +int validate_dsn(esodbc_dsn_attrs_st *attrs, const wchar_t *dsn_str, + wchar_t *err_out, size_t eo_max, BOOL try_connect); +int prompt_user_config(HWND hwnd, BOOL on_conn, esodbc_dsn_attrs_st *attrs, + driver_callback_ft save_cb); -BOOL prompt_user_config(HWND hwndParent, esodbc_dsn_attrs_st *attrs, - BOOL disable_nonconn); -int prompt_user_overwrite(HWND hwndParent, wstr_st *dsn); +/* Uncomment to enable 00-list format (vs. connection string, + * `;`/`|`-separated) at the interface with the GUI API. + * The .NET framework has an ODBC connection string parser, so the that format + * will be used on Windows. */ +//#define ESODBC_DSN_API_WITH_00_LIST #endif /* __DSN_H__ */ diff --git a/driver/error.c b/driver/error.c index 0e1f3834..61e62b99 100644 --- a/driver/error.c +++ b/driver/error.c @@ -18,7 +18,7 @@ void init_diagnostic(esodbc_diag_st *dest) /* TODO: must the diagnostic be "cleared" after a succesful invokation?? */ SQLRETURN post_diagnostic(esodbc_diag_st *dest, esodbc_state_et state, - SQLWCHAR *text, SQLINTEGER code) + const SQLWCHAR *text, SQLINTEGER code) { size_t pos, tcnt, ebufsz; @@ -53,7 +53,7 @@ SQLRETURN post_diagnostic(esodbc_diag_st *dest, esodbc_state_et state, } SQLRETURN post_c_diagnostic(esodbc_diag_st *dest, esodbc_state_et state, - SQLCHAR *text, SQLINTEGER code) + const SQLCHAR *text, SQLINTEGER code) { SQLWCHAR wtext[sizeof(dest->text)/sizeof(*dest->text)], *ptr; if (text) { diff --git a/driver/error.h b/driver/error.h index 71d0f5d2..5b7f85a1 100644 --- a/driver/error.h +++ b/driver/error.h @@ -444,11 +444,11 @@ typedef struct { void init_diagnostic(esodbc_diag_st *dest); SQLRETURN post_diagnostic(esodbc_diag_st *dest, esodbc_state_et state, - SQLWCHAR *text, SQLINTEGER code); + const SQLWCHAR *text, SQLINTEGER code); SQLRETURN post_c_diagnostic(esodbc_diag_st *dest, esodbc_state_et state, - SQLCHAR *text, SQLINTEGER code); + const SQLCHAR *text, SQLINTEGER code); /* post state into the diagnostic and return state's return code */ -#define RET_DIAG(_d/*est*/, _s/*tate*/, _t/*ext*/, _c/*ode*/) \ +#define RET_DIAG(_d/*iag dest*/, _s/*tate*/, _t/*ext*/, _c/*ode*/) \ return post_diagnostic(_d, _s, _t, _c) /* same as above, but take C-strings as messages */ #define RET_CDIAG(_d/*est*/, _s/*tate*/, _t/*char text*/, _c/*ode*/) \ diff --git a/driver/handles.c b/driver/handles.c index 7e790432..ab4ceb98 100644 --- a/driver/handles.c +++ b/driver/handles.c @@ -55,6 +55,25 @@ static void init_hheader(esodbc_hhdr_st *hdr, SQLSMALLINT type, void *parent) hdr->parent = parent; } +/* + * "un-static" the initializers as needed + */ +static inline void init_env(esodbc_env_st *env) +{ + memset(env, 0, sizeof(*env)); + init_hheader(HDRH(env), SQL_HANDLE_ENV, NULL); +} + +void init_dbc(esodbc_dbc_st *dbc, SQLHANDLE InputHandle) +{ + memset(dbc, 0, sizeof(*dbc)); + init_hheader(HDRH(dbc), SQL_HANDLE_DBC, InputHandle); + + dbc->metadata_id = SQL_FALSE; + ESODBC_MUX_INIT(&dbc->curl_mux); + /* rest of initialization done at connect time */ +} + static void init_desc(esodbc_desc_st *desc, esodbc_stmt_st *stmt, desc_type_et type, SQLSMALLINT alloc_type) { @@ -72,6 +91,7 @@ static void init_desc(esodbc_desc_st *desc, esodbc_stmt_st *stmt, if (DESC_TYPE_IS_APPLICATION(type)) { desc->bind_type = SQL_BIND_BY_COLUMN; } + // XXX: assign/chain to statement? } static void clear_desc(esodbc_desc_st *desc, BOOL reinit) @@ -101,6 +121,33 @@ static void clear_desc(esodbc_desc_st *desc, BOOL reinit) } } +static void init_stmt(esodbc_stmt_st *stmt, SQLHANDLE InputHandle) +{ + memset(stmt, 0, sizeof(*stmt)); + init_hheader(HDRH(stmt), SQL_HANDLE_STMT, InputHandle); + + init_desc(&stmt->i_ard, stmt, DESC_TYPE_ARD, SQL_DESC_ALLOC_AUTO); + init_desc(&stmt->i_ird, stmt, DESC_TYPE_IRD, SQL_DESC_ALLOC_AUTO); + init_desc(&stmt->i_apd, stmt, DESC_TYPE_APD, SQL_DESC_ALLOC_AUTO); + init_desc(&stmt->i_ipd, stmt, DESC_TYPE_IPD, SQL_DESC_ALLOC_AUTO); + + /* "When a statement is allocated, four descriptor handles are + * automatically allocated and associated with the statement." */ + stmt->ard = &stmt->i_ard; + stmt->ird = &stmt->i_ird; + stmt->apd = &stmt->i_apd; + stmt->ipd = &stmt->i_ipd; + + /* set option defaults */ + /* TODO: change to SQL_UB_DEFAULT when supporting bookmarks */ + stmt->bookmarks = SQL_UB_OFF; + /* inherit this connection-statement attributes + * Note: these attributes won't propagate at statement level when + * set at connection level. */ + stmt->metadata_id = DBCH(InputHandle)->metadata_id; + stmt->sql2c_conversion = CONVERSION_UNCHECKED; +} + void dump_record(esodbc_rec_st *rec) { DBGH(rec->desc, "Dumping REC@0x%p", rec); @@ -145,7 +192,6 @@ void dump_record(esodbc_rec_st *rec) #undef DUMP_FIELD } - /* * The Driver Manager does not call the driver-level environment handle * allocation function until the application calls SQLConnect, @@ -167,10 +213,22 @@ void dump_record(esodbc_rec_st *rec) SQLRETURN EsSQLAllocHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle, _Out_ SQLHANDLE *OutputHandle) { - esodbc_env_st *env; - esodbc_dbc_st *dbc; - esodbc_stmt_st *stmt; - esodbc_hhdr_st *hdr; + if (! OutputHandle) { + ERR("null output handle provided."); + RET_STATE(SQL_STATE_HY009); + } + + if (HandleType != SQL_HANDLE_ENV) { + if (! InputHandle) { + ERR("null input handle provided"); + RET_STATE(SQL_STATE_HY009); + } + } else { + if (InputHandle) { + ERR("not null (@0x%p) input handle for Environment.", InputHandle); + /* not fatal a.t.p., tho it'll likely fail (->error level) */ + } + } switch(HandleType) { /* @@ -186,21 +244,11 @@ SQLRETURN EsSQLAllocHandle(SQLSMALLINT HandleType, * """ */ case SQL_HANDLE_ENV: /* Environment Handle */ - if (InputHandle != SQL_NULL_HANDLE) { - WARN("passed InputHandle not null (=0x%p).",InputHandle); - /* not fatal a.t.p. */ - } - if (! OutputHandle) { - ERR("null output handle provided."); - RET_STATE(SQL_STATE_HY009); + *OutputHandle = (SQLHANDLE)malloc(sizeof(esodbc_env_st)); + if (*OutputHandle) { + init_env(*OutputHandle); + DBG("new Environment handle @0x%p.", *OutputHandle); } - *OutputHandle = (SQLHANDLE *)calloc(1, sizeof(esodbc_env_st)); - if (! *OutputHandle) { - ERRN("failed to callocate env handle."); - RET_STATE(SQL_STATE_HY001); - } - - DBG("new Environment handle allocated @0x%p.",*OutputHandle); break; case SQL_HANDLE_DBC: /* Connection Handle */ @@ -212,90 +260,57 @@ SQLRETURN EsSQLAllocHandle(SQLSMALLINT HandleType, * return SQLSTATE HY010 (Function sequence error). * """ */ - env = ENVH(InputHandle); - if (! env->version) { - ERRH(env, "no version set in env when allocating DBC."); - RET_HDIAG(env, SQL_STATE_HY010, - "enviornment has no version set yet", 0); + if (! ENVH(InputHandle)->version) { + ERRH(InputHandle, "no version set in ENV."); + RET_HDIAG(InputHandle, SQL_STATE_HY010, + "enviornment has no version set", 0); } - dbc = (esodbc_dbc_st *)calloc(1, sizeof(esodbc_dbc_st)); - *OutputHandle = (SQLHANDLE *)dbc; - if (! dbc) { - ERRNH(env, "failed to callocate connection handle."); - RET_HDIAGS(env, SQL_STATE_HY001); + *OutputHandle = (SQLHANDLE)malloc(sizeof(esodbc_dbc_st)); + if (*OutputHandle) { + init_dbc(*OutputHandle, InputHandle); + DBGH(InputHandle, "new Connection @0x%p.", *OutputHandle); } - dbc->metadata_id = SQL_FALSE; - - /* rest of initialization done at connect time */ - - DBGH(env, "new Connection handle allocated @0x%p.", *OutputHandle); break; case SQL_HANDLE_STMT: /* Statement Handle */ - dbc = DBCH(InputHandle); - stmt = (esodbc_stmt_st *)calloc(1, sizeof(esodbc_stmt_st)); - *OutputHandle = stmt; - if (! stmt) { - ERRNH(dbc, "failed to callocate statement handle."); - RET_HDIAGS(dbc, SQL_STATE_HY001); + *OutputHandle = (SQLHANDLE)malloc(sizeof(esodbc_stmt_st)); + if (*OutputHandle) { + init_stmt(*OutputHandle, InputHandle); + DBGH(InputHandle, "new Statement @0x%p.", *OutputHandle); } - - init_desc(&stmt->i_ard, stmt, DESC_TYPE_ARD, SQL_DESC_ALLOC_AUTO); - init_desc(&stmt->i_ird, stmt, DESC_TYPE_IRD, SQL_DESC_ALLOC_AUTO); - init_desc(&stmt->i_apd, stmt, DESC_TYPE_APD, SQL_DESC_ALLOC_AUTO); - init_desc(&stmt->i_ipd, stmt, DESC_TYPE_IPD, SQL_DESC_ALLOC_AUTO); - - /* "When a statement is allocated, four descriptor handles are - * automatically allocated and associated with the statement." */ - stmt->ard = &stmt->i_ard; - stmt->ird = &stmt->i_ird; - stmt->apd = &stmt->i_apd; - stmt->ipd = &stmt->i_ipd; - - /* set option defaults */ - /* TODO: change to SQL_UB_DEFAULT when supporting bookmarks */ - stmt->bookmarks = SQL_UB_OFF; - /* inherit this connection-statement attributes - * Note: these attributes won't propagate at statement level when - * set at connection level. */ - stmt->metadata_id = dbc->metadata_id; - stmt->sql2c_conversion = CONVERSION_UNCHECKED; - - ESODBC_MUX_INIT(&dbc->curl_mux); - - DBGH(dbc, "new Statement handle allocated @0x%p.", *OutputHandle); break; - case SQL_HANDLE_DESC: - stmt = STMH(InputHandle); - *OutputHandle = (SQLHANDLE *)calloc(1, sizeof(esodbc_desc_st)); - if (! *OutputHandle) { - ERRNH(stmt, "failed to callocate descriptor handle."); - RET_HDIAGS(stmt, SQL_STATE_HY001); + case SQL_HANDLE_DESC: /* Descriptor Handle */ + *OutputHandle = (SQLHANDLE)malloc(sizeof(esodbc_desc_st)); + if (*OutputHandle) { + init_desc(*OutputHandle, InputHandle, DESC_TYPE_ANON, + SQL_DESC_ALLOC_USER); + DBGH(InputHandle, "new Statement @0x%p.", *OutputHandle); } - init_desc(*OutputHandle, InputHandle, DESC_TYPE_ANON, - SQL_DESC_ALLOC_USER); - DBGH(stmt, "new Descriptor handle allocated @0x%p.",*OutputHandle); - // FIXME: assign/chain to statement? break; case SQL_HANDLE_SENV: /* Shared Environment Handle */ - FIXME; // FIXME - //break; -#if 0 - case SQL_HANDLE_DBC_INFO_TOKEN: - //break; -#endif + // case SQL_HANDLE_DBC_INFO_TOKEN: + ERR("handle type %hd not implemented.", HandleType); + RET_STATE(SQL_STATE_HYC00); // optional feature + default: ERR("unknown HandleType: %d.", HandleType); return SQL_INVALID_HANDLE; } - /* - * Initialize new handle's header. - */ - hdr = HDRH(*OutputHandle); - init_hheader(hdr, HandleType, InputHandle); + if (! *OutputHandle) { + ERRN("OOM for handle type %hd, on input handle@0x%p.", HandleType, + InputHandle); + if (InputHandle) { + RET_DIAG(&HDRH(InputHandle)->diag, SQL_STATE_HY001, NULL, 0); + } else { + RET_STATE(SQL_STATE_HY001); + } + } else { + /* new handle has been init'ed */ + assert(HDRH(*OutputHandle)->type); + } return SQL_SUCCESS; } @@ -845,6 +860,14 @@ SQLRETURN EsSQLSetStmtAttrW( } break; + /* SQL Server non-standard attributes */ + case 1226: + case 1227: + case 1228: + ERRH(stmt, "non-standard attribute: %d.", Attribute); + /* "Invalid attribute/option identifier" */ + RET_HDIAGS(stmt, SQL_STATE_HY092); + default: // FIXME BUGH(stmt, "unknown Attribute: %d.", Attribute); diff --git a/driver/handles.h b/driver/handles.h index c57233c3..126497ef 100644 --- a/driver/handles.h +++ b/driver/handles.h @@ -358,6 +358,8 @@ SQLRETURN update_rec_count(esodbc_desc_st *desc, SQLSMALLINT new_count); esodbc_rec_st *get_record(esodbc_desc_st *desc, SQLSMALLINT rec_no, BOOL grow); void dump_record(esodbc_rec_st *rec); +void init_dbc(esodbc_dbc_st *dbc, SQLHANDLE InputHandle); + esodbc_desc_st *getdata_set_ard(esodbc_stmt_st *stmt, esodbc_desc_st *gd_ard, SQLUSMALLINT colno, esodbc_rec_st *recs, SQLUSMALLINT count); void getdata_reset_ard(esodbc_stmt_st *stmt, esodbc_desc_st *ard, @@ -467,15 +469,15 @@ SQLRETURN EsSQLSetDescRec( /* wraper of RET_CDIAG, compatible with any defined handle */ #define RET_HDIAG(_hp/*handle ptr*/, _s/*tate*/, _t/*char text*/, _c/*ode*/) \ - RET_CDIAG(&(_hp)->hdr.diag, _s, _t, _c) + RET_CDIAG(&HDRH(_hp)->diag, _s, _t, _c) /* similar to RET_HDIAG, but only post the state */ #define RET_HDIAGS(_hp/*handle ptr*/, _s/*tate*/) \ - RET_DIAG(&(_hp)->hdr.diag, _s, NULL, 0) + RET_DIAG(&HDRH(_hp)->diag, _s, NULL, 0) /* copy the diagnostics from one handle to the other */ #define HDIAG_COPY(_s, _d) (_d)->hdr.diag = (_s)->hdr.diag /* set a diagnostic to a(ny) handle */ #define SET_HDIAG(_hp/*handle ptr*/, _s/*tate*/, _t/*char text*/, _c/*ode*/) \ - post_diagnostic(&(_hp)->hdr.diag, _s, MK_WPTR(_t), _c) + post_diagnostic(&HDRH(_hp)->diag, _s, MK_WPTR(_t), _c) /* return the code associated with the given state (and debug-log) */ #define RET_STATE(_s) \ diff --git a/driver/info.c b/driver/info.c index 66b7f6da..8ee84fe8 100644 --- a/driver/info.c +++ b/driver/info.c @@ -885,6 +885,7 @@ SQLRETURN EsSQLGetDiagFieldW( esodbc_env_st dummy; SQLSMALLINT used; size_t len; + void *srcptr; wstr_st *wstrp, wstr; SQLRETURN ret; @@ -1035,11 +1036,37 @@ SQLRETURN EsSQLGetDiagFieldW( dbc->hdr.diag = bak; return ret; - case SQL_DIAG_MESSAGE_TEXT: //break; - case SQL_DIAG_NATIVE: //break; - case SQL_DIAG_COLUMN_NUMBER: //break; - case SQL_DIAG_ROW_NUMBER: //break; - FIXME; // FIXME + case SQL_DIAG_MESSAGE_TEXT: + wstr.str = diag->text; + wstr.cnt = diag->text_len; + return write_wstr(Handle, DiagInfoPtr, &wstr, + BufferLength * sizeof(*diag->text), StringLengthPtr); + + do { + case SQL_DIAG_NATIVE: + len = sizeof(diag->native_code); + srcptr = &diag->native_code; + break; + case SQL_DIAG_COLUMN_NUMBER: + len = sizeof(diag->column_number); + srcptr = &diag->column_number; + break; + case SQL_DIAG_ROW_NUMBER: + len = sizeof(diag->row_number); + srcptr = &diag->row_number; + break; + } while (0); + if (BufferLength != SQL_IS_POINTER) { + WARNH(Handle, "BufferLength param not indicating a ptr type."); + } + if (! DiagInfoPtr) { + ERRH(Handle, "integer diagnostic field %hd asked for, but " + "NULL destination provided."); + RET_HDIAGS(Handle, SQL_STATE_HY009); + } else { + memcpy(DiagInfoPtr, srcptr, len); + } + return SQL_SUCCESS; case SQL_DIAG_SQLSTATE: if (diag->state == SQL_STATE_00000) { @@ -1143,7 +1170,7 @@ SQLRETURN EsSQLGetDiagRecW } wstr.str = diag->text; - wstr.cnt = wcslen(wstr.str); + wstr.cnt = diag->text_len; *HDRH(&dummy) = *HDRH(Handle); /* need a valid hhdr struct */ ret = write_wstr(&dummy, MessageText, &wstr, BufferLength * sizeof(*MessageText), &used); diff --git a/driver/queries.c b/driver/queries.c index d2fc84ee..79e1ebf2 100644 --- a/driver/queries.c +++ b/driver/queries.c @@ -359,8 +359,9 @@ static BOOL attach_sql_error(SQLHANDLE hnd, cstr_st *body) LWPDL "`, status: %d.", tlen, tlen, wtype, rlen, rlen, wreason, UJNumericInt(o_status)); - /* swprintf will fail if formated string would overrun the buffer size (as - * opposed to write up to its limit) => find out the limit first.*/ + /* swprintf will always append the 0-term, but fail if formated string + * would overrun the buffer size (in an equivocal way: overrun encoding + * error) => find out the limit first. */ n = swprintf(NULL, 0, MK_WPTR("%.*s: %.*s"), (int)tlen, wtype, (int)rlen, wreason); if (0 < n) { diff --git a/driver/setup.c b/driver/setup.c index ef6623f9..e43089cf 100644 --- a/driver/setup.c +++ b/driver/setup.c @@ -11,6 +11,7 @@ #include "log.h" #include "info.h" #include "dsn.h" +#include "connect.h" #define VAL_NAME_APILEVEL "APILevel" #define VAL_NAME_CONNECTFN "ConnectFunctions" @@ -29,7 +30,6 @@ static BOOL add_subkey_values(LPCWSTR lpszDriver) SQLSMALLINT supported; assert(ESODBC_ODBC_INTERFACE_CONFORMANCE <= 9); - memset(buff, 0, sizeof(buff)); buff[0] = MK_WPTR('0') + ESODBC_ODBC_INTERFACE_CONFORMANCE; if (! SQLWritePrivateProfileStringW(lpszDriver, MK_WPTR(VAL_NAME_APILEVEL), @@ -39,8 +39,7 @@ static BOOL add_subkey_values(LPCWSTR lpszDriver) } memset(buff, 0, sizeof(buff)); - memset(&dbc, 0, sizeof(dbc)); - dbc.hdr.type = SQL_HANDLE_DBC; + init_dbc(&dbc, NULL); ret |= EsSQLGetFunctions(&dbc, SQL_API_SQLCONNECT, &supported); buff[0] = supported ? MK_WPTR('Y') : MK_WPTR('N'); ret |= EsSQLGetFunctions(&dbc, SQL_API_SQLDRIVERCONNECT, &supported); @@ -118,6 +117,105 @@ BOOL SQL_API ConfigDriverW( # undef _DSN_END_MARKER } +static int save_dsn_cb(void *arg, const wchar_t *dsn_str, + wchar_t *err_out, size_t eo_max, unsigned int flags) +{ + size_t cnt; + int res; + esodbc_dsn_attrs_st attrs; + BOOL remove_old; + esodbc_dsn_attrs_st *old_attrs = (esodbc_dsn_attrs_st *)arg; + wstr_st old_dsn = old_attrs->dsn; + + init_dsn_attrs(&attrs); + res = validate_dsn(&attrs, dsn_str, err_out, eo_max, /*connect?*/FALSE); + if (res < 0) { + return res; + } + + /* There are the following cases possible: + * - new DSN, name not yet used; + * - new DSN, name already used; + * - old DSN renamed to a name not yet used; + * - old DSN renamed to a name already used */ + + /* is it a brand new DSN name or has the DSN name changed? */ + DBG("old DSN name: `" LWPDL "`, new DSN name: `" LWPDL "`.", + LWSTR(&old_dsn), LWSTR(&attrs.dsn)); + if (! EQ_CASE_WSTR(&old_dsn, &attrs.dsn)) { /* new DSN or name changed */ + /* check if DSN name already exists */ + res = system_dsn_exists(&attrs.dsn); + if (res < 0) { + cnt = copy_installer_errors(err_out, eo_max); + ERR("failed to check if DSN `" LWPDL "` already exists: " + LWPDL ".", LWSTR(&attrs.dsn), cnt, err_out); + return ESODBC_DSN_GENERIC_ERROR; + } else if (res) { /* name already in use */ + DBG("overwrite confirmed? %s!", flags & ESODBC_DSN_OVERWRITE_FLAG + ? "yes" : "no"); + if (! (flags & ESODBC_DSN_OVERWRITE_FLAG)) { + return ESODBC_DSN_EXISTS_ERROR; + } else { + /* need to delete old entry now to make sure no attribute set + * in old one persists in new one */ + if (! SQLRemoveDSNFromIniW(attrs.dsn.str)) { + cnt = copy_installer_errors(err_out, eo_max); + ERR("failed to remove old DSN with same name` " LWPDL "`:" + " " LWPDL ".", LWSTR(&old_dsn), cnt, err_out); + } else { + DBG("removed DSN to be overwritten."); + } + } + } else { /* name not yet used */ + /* new DSN to be added: check name validity */ + if (! SQLValidDSNW(attrs.dsn.str)) { + SQLPostInstallerError(ODBC_ERROR_INVALID_DSN, NULL); + ERR("invalid DSN value `" LWPDL "`.", LWSTR(&attrs.dsn)); + return ESODBC_DSN_NAME_INVALID_ERROR; + } else { + INFO("creating new DSN `" LWPDL "` for driver ` " LWPDL " `.", + LWSTR(&attrs.dsn), LWSTR(&attrs.driver)); + } + } + /* create new entry for the new DSN */ + if (! SQLWriteDSNToIniW(attrs.dsn.str, attrs.driver.str)) { + ERR("failed to add DSN `" LWPDL "` for driver ` " LWPDL " ` to " + ".INI.", LWSTR(&attrs.dsn), LWSTR(&attrs.driver)); + cnt = copy_installer_errors(err_out, eo_max); + return ESODBC_DSN_GENERIC_ERROR; + } + + /* if an old DSN exists, it'll need to be deleted */ + remove_old = !!old_dsn.cnt; + /* a new entry is created, force writing all new values */ + old_attrs = NULL; + } else { + remove_old = FALSE; + } + + /* update/create the DSN with user values */ + if (! write_system_dsn(&attrs, old_attrs)) { + cnt = copy_installer_errors(err_out, eo_max); + ERR("failed to add DSN to the system: " LWPDL ".", cnt, err_out); + return ESODBC_DSN_GENERIC_ERROR; + } + + /* only remove old if new is succesfully created */ + if (remove_old) { + assert(old_dsn.cnt); + if (! SQLRemoveDSNFromIniW(old_dsn.str)) { + cnt = copy_installer_errors(err_out, eo_max); + ERR("failed to remove old DSN ` " LWPDL "`: " LWPDL ".", + LWSTR(&old_dsn), cnt, err_out); + } else { + DBG("removed now renamed DSN `" LWPDL "`.", LWSTR(&old_dsn)); + } + } + + return 0; +} + + BOOL SQL_API ConfigDSNW( HWND hwndParent, WORD fRequest, @@ -126,23 +224,13 @@ BOOL SQL_API ConfigDSNW( { esodbc_dsn_attrs_st attrs; wstr_st driver; - SQLWCHAR buff[ESODBC_DSN_MAX_ATTR_LEN] = {0}; - wstr_st old_dsn = {buff, 0}; - BOOL create_new; int res; - BOOL ret = FALSE; + DWORD ierror = 0; TRACE4(_IN, "phWW", hwndParent, fRequest, lpszDriver, lpszAttributes); init_dsn_attrs(&attrs); - /* If there's a DSN in reveived attributes, load the config from the - * registry. Otherwise, populate a new config with defaults. */ - if (! load_system_dsn(&attrs, (SQLWCHAR *)lpszAttributes)) { - ERR("failed to load system DSN for driver ` " LWPD " ` and " - "attributes `" LWPD "`.", lpszDriver, lpszAttributes); - return FALSE;; - } /* assign the Driver name; this is not the value of the Driver key in the * registry (i.e. the path to the DLL), which is actually skipped when * loading the config. */ @@ -150,100 +238,51 @@ BOOL SQL_API ConfigDSNW( (SQLWCHAR *)lpszDriver, wcslen(lpszDriver) }; + + /* If there's a DSN in reveived attributes, load the config from the + * registry. */ + if (! load_system_dsn(&attrs, (SQLWCHAR *)lpszAttributes)) { + ERR("failed to load system DSN for driver ` " LWPD " ` and " + "attributes `" LWPDL "`.", LWSTR(&driver), lpszAttributes); + return FALSE; + } res = assign_dsn_attr(&attrs, &MK_WSTR(ESODBC_DSN_DRIVER), &driver, /*overwrite?*/FALSE); assert(0 < res); switch (fRequest) { case ODBC_CONFIG_DSN: - /* save the DSN naming, since this might be changed by the user */ - if (attrs.dsn.cnt) { - /* attrs.dsn.cnt < ESODBC_DSN_MAX_ATTR_LEN due to - * load_sys_dsn() */ - wcscpy(old_dsn.str, attrs.dsn.str); - old_dsn.cnt = attrs.dsn.cnt; - } case ODBC_ADD_DSN: - /* user-interraction loop */ - while (TRUE) { - res = prompt_user_config(hwndParent, &attrs, FALSE); - if (res < 0) { - ERR("failed getting user values."); - goto err; - } else if (! res) { - INFO("user canceled the dialog."); - goto end; - } - /* is it a brand new DSN or has the DSN name changed? */ - DBG("old DSN: `" LWPDL "`, new DSN: `" LWPDL "`.", - LWSTR(&old_dsn), LWSTR(&attrs.dsn)); - if ((! old_dsn.cnt) || - (! EQ_CASE_WSTR(&old_dsn, &attrs.dsn))) { - /* check if target DSN (new or old) already exists */ - res = system_dsn_exists(&attrs.dsn); - if (res < 0) { - ERR("failed to check if DSN `" LWPDL "` already " - "exists.", LWSTR(&attrs.dsn)); - goto err; - } else if (res) { - res = prompt_user_overwrite(hwndParent, &attrs.dsn); - if (res < 0) { - ERR("failed to get user input."); - goto err; - } else if (! res) { - /* let user chose a different DSN name */ - continue; - } - } - /* if an old DSN exists, delete it */ - if (old_dsn.cnt) { - if (! SQLRemoveDSNFromIniW(old_dsn.str)) { - ERR("failed to remove old DSN ` " LWPDL " `.", - LWSTR(&old_dsn)); - goto err; - } - DBG("removed now renamed DSN `" LWPDL "`.", - LWSTR(&old_dsn)); - } - create_new = TRUE; - } else { - create_new = FALSE; - } - break; - } - /* create or update the DSN */ - if (! write_system_dsn(&attrs, create_new)) { - ERR("failed to add DSN to the system."); - } else { - ret = TRUE; + res = prompt_user_config(hwndParent, FALSE, &attrs, save_dsn_cb); + if (res < 0) { + ierror = ODBC_ERROR_REQUEST_FAILED; + ERR("failed getting user values."); } break; case ODBC_REMOVE_DSN: if (! SQLRemoveDSNFromIniW(attrs.dsn.str)) { + ierror = ODBC_ERROR_REQUEST_FAILED; ERR("failed to remove driver ` " LWPD " ` with " - "attributes `" LWPD "`.", lpszDriver, lpszAttributes); + "attributes `" LWPDL "`.", LWSTR(&driver), lpszAttributes); } else { INFO("removed DSN `" LWPDL "` from the system.", LWSTR(&attrs.dsn)); - ret = TRUE; } break; default: ERR("unexpected configuration request type: %hd.", fRequest); - SQLPostInstallerError(ODBC_ERROR_INVALID_REQUEST_TYPE, NULL); - goto end; + ierror = ODBC_ERROR_INVALID_REQUEST_TYPE; } -err: - if (! ret) { + if (ierror) { SQLPostInstallerError(ODBC_ERROR_REQUEST_FAILED, NULL); } -end: - TRACE5(_OUT, "dphWW", ret, hwndParent, fRequest, lpszDriver, + + TRACE5(_OUT, "dphWW", ierror, hwndParent, fRequest, lpszDriver, lpszAttributes); - return ret; + return ierror == 0; } /* vim: set noet fenc=utf-8 ff=dos sts=0 sw=4 ts=4 : */ diff --git a/driver/util.c b/driver/util.c index 2e6b094a..52653b3d 100644 --- a/driver/util.c +++ b/driver/util.c @@ -262,7 +262,7 @@ void trim_ws(cstr_st *cstr) * Returns negative if conversion fails, OR number of converted wchars, * including/plus the 0-term. */ -int TEST_API ascii_w2c(SQLWCHAR *src, SQLCHAR *dst, size_t chars) +int TEST_API ascii_w2c(const SQLWCHAR *src, SQLCHAR *dst, size_t chars) { size_t i = 0; @@ -288,7 +288,7 @@ int TEST_API ascii_w2c(SQLWCHAR *src, SQLCHAR *dst, size_t chars) /* * This is the inverse of ascii_w2c(). */ -int TEST_API ascii_c2w(SQLCHAR *src, SQLWCHAR *dst, size_t chars) +int TEST_API ascii_c2w(const SQLCHAR *src, SQLWCHAR *dst, size_t chars) { size_t i = 0; diff --git a/driver/util.h b/driver/util.h index e08f2efb..a5534147 100644 --- a/driver/util.h +++ b/driver/util.h @@ -79,8 +79,8 @@ typedef struct cstr { * Returns negative if conversion fails, OR number of converted wchars, * including/plus the 0-term. */ -int TEST_API ascii_w2c(SQLWCHAR *src, SQLCHAR *dst, size_t chars); -int TEST_API ascii_c2w(SQLCHAR *src, SQLWCHAR *dst, size_t chars); +int TEST_API ascii_w2c(const SQLWCHAR *src, SQLCHAR *dst, size_t chars); +int TEST_API ascii_c2w(const SQLCHAR *src, SQLWCHAR *dst, size_t chars); /* * Compare two SQLWCHAR object, case INsensitive. */ diff --git a/dsneditor/EsOdbcDsn.sln b/dsneditor/EsOdbcDsn.sln new file mode 100644 index 00000000..66f2340e --- /dev/null +++ b/dsneditor/EsOdbcDsn.sln @@ -0,0 +1,63 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27004.2009 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EsOdbcDsnEditor", "EsOdbcDsnEditor\EsOdbcDsnEditor.csproj", "{FAC0512C-E595-4BF4-ACB7-617611DF5715}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EsOdbcDsnBinding", "EsOdbcDsnBinding\EsOdbcDsnBinding.vcxproj", "{47824E02-6B1A-4B43-9D20-3CB2F5479F6B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EsOdbcDsnEditorLauncher", "EsOdbcDsnEditorLauncher\EsOdbcDsnEditorLauncher.csproj", "{71BEBFF7-652E-4B26-9EC3-CAEF947D368C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Debug|x64.ActiveCfg = Debug|x64 + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Debug|x64.Build.0 = Debug|x64 + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Debug|x86.ActiveCfg = Debug|Any CPU + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Debug|x86.Build.0 = Debug|Any CPU + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Release|Any CPU.Build.0 = Release|Any CPU + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Release|x64.ActiveCfg = Release|Any CPU + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Release|x64.Build.0 = Release|Any CPU + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Release|x86.ActiveCfg = Release|Any CPU + {FAC0512C-E595-4BF4-ACB7-617611DF5715}.Release|x86.Build.0 = Release|Any CPU + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B}.Debug|Any CPU.ActiveCfg = Debug|Win32 + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B}.Debug|x64.ActiveCfg = Debug|x64 + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B}.Debug|x64.Build.0 = Debug|x64 + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B}.Debug|x86.ActiveCfg = Debug|Win32 + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B}.Debug|x86.Build.0 = Debug|Win32 + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B}.Release|Any CPU.ActiveCfg = Release|Win32 + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B}.Release|x64.ActiveCfg = Release|x64 + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B}.Release|x64.Build.0 = Release|x64 + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B}.Release|x86.ActiveCfg = Release|Win32 + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B}.Release|x86.Build.0 = Release|Win32 + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Debug|x64.ActiveCfg = Debug|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Debug|x64.Build.0 = Debug|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Debug|x86.ActiveCfg = Debug|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Debug|x86.Build.0 = Debug|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Release|Any CPU.Build.0 = Release|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Release|x64.ActiveCfg = Release|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Release|x64.Build.0 = Release|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Release|x86.ActiveCfg = Release|Any CPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {208F0E95-4408-4AEB-BE40-8230AF03964B} + EndGlobalSection +EndGlobal diff --git a/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.cc b/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.cc new file mode 100644 index 00000000..908c96da --- /dev/null +++ b/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.cc @@ -0,0 +1,228 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +#include +#include +#include +#include + +#include "EsOdbcDsnBinding.h" + +/* ODBC's unprefixed define is 512 */ +#define _SQL_MAX_MESSAGE_LENGTH 1024 + +using namespace System; +using namespace System::Reflection; +using namespace System::Text; +using namespace System::Runtime::InteropServices; +using namespace System::Threading; + +using namespace EsOdbcDsnEditor; + + +namespace EsOdbcDsnBinding { + + /* + * Proxy/Bridge class for the C# actual implementation. + */ + public ref class EsOdbcDsnBinding + { + bool onConnect; + String ^dsnInStr; + int dsnOutLen; + + driver_callback_ft cbConnectionTest; + void *argConnectionTest; + + driver_callback_ft cbSaveDsn; + void *argSaveDsn; + + public:static HWND hwnd; + + + private:int cbImplementation(driver_callback_ft cbFunction, void *cbArgument, + String ^connString, String ^%errorMessage, unsigned int flags) + { + assert(cbFunction); + if (connString->Length <= 0) { + // this should not happen, but if it does, shortcut it here. + return 0; + } + + // the callback understands wchar_t* only, so need to convert the input String + pin_ptr wch = PtrToStringChars(connString); + //buffer to hold the (possible) error message + wchar_t errorMessageW[_SQL_MAX_MESSAGE_LENGTH] = { 0 }; + + int ret = cbFunction(cbArgument, (const wchar_t *)wch, + errorMessageW, sizeof(errorMessageW) / sizeof(*errorMessageW), flags); + + // if there was an error/warning, let the caller know of it + if (0 < wcslen(errorMessageW)) { + // The driver should only return errors that are actionable by the user. + // Error message usage is dictated by error code: might be discarded for some "expected" errors. + errorMessage = gcnew String(errorMessageW); + } + + return ret; + } + /* + * proxy method for the connection test call back + */ + private:int proxyConnectionTest(String ^connString, String ^%errorMessage, unsigned int flags) + { + return cbImplementation(cbConnectionTest, argConnectionTest, connString, errorMessage, flags); + } + + /* + * proxy method for the connection test call back + */ + private:int proxySaveDsn(String ^connString, String ^%errorMessage, unsigned int flags) + { + return cbImplementation(cbSaveDsn, argSaveDsn, connString, errorMessage, flags); + } + + /* + * The constructor merely saves the input parameters and registers an assembly resolve handler + */ + public: EsOdbcDsnBinding(HWND hwnd, bool onConnect, wchar_t *dsnInW, + driver_callback_ft cbConnectionTest, void *argConnectionTest, + driver_callback_ft cbSaveDsn, void *argSaveDsn) + { + /* there should(?) be one window handler in use for one application through the driver */ + assert(this->hwnd == NULL); + this->hwnd = hwnd; + + this->onConnect = onConnect; + dsnInStr = dsnInW != NULL ? gcnew String(dsnInW) : ""; + + this->cbConnectionTest = cbConnectionTest; + this->argConnectionTest = argConnectionTest; + + this->cbSaveDsn = cbSaveDsn; + this->argSaveDsn = argSaveDsn; + + // register an event handler for failed assembly loading + AppDomain::CurrentDomain->AssemblyResolve += gcnew ResolveEventHandler(resolveEventHandler); + } + + public: ~EsOdbcDsnBinding() + { + hwnd = NULL; + } + + /* + * Handler called if loading an assembly fails. + */ + static Assembly^ resolveEventHandler(Object^ sender, ResolveEventArgs^ args) + { + Assembly^ assembly; + try { + // TODO: check if this is safe "enough" ('args' always there, with proper format) + String^ loadingAssembleyName = args->Name->Split(',')[0]; + + if (loadingAssembleyName->EndsWith("resources")) { + // no resources available to load + assembly = nullptr; + } else { + // Get the bridging assembley, its location and based on that build the loading assembly path. + // Note: this assumes that the two libraries are always going to be collocated. + assembly = Assembly::GetExecutingAssembly(); + int lastBackSlash = assembly->Location->LastIndexOf('\\'); + String ^loadingAssemblyPath = assembly->Location->Substring(0, lastBackSlash + 1) + + loadingAssembleyName + ".dll"; + + if (!System::IO::File::Exists(loadingAssemblyPath)) { + throw gcnew Exception("Failed to load assembly '" + loadingAssemblyPath + "'."); + } + + // then load the assembley + assembly = Assembly::LoadFrom(loadingAssemblyPath); + } + + return assembly; + } catch (Exception ^e) { + if (hwnd) { + pin_ptr wch = PtrToStringChars(e->Message); + MessageBox(hwnd, wch, L"Loading Exception", MB_OK | MB_ICONERROR); + } + assembly = nullptr; + } + + return assembly; + } + + public:int EsOdbcDsnEditor() + { + Thread ^ t; + /* (Re)set the threading model; "Multiple calls to CoInitializeEx by the same + thread are allowed as long as they pass the same concurrency flag". + For neutral/MTAs create a new thread, for STAs just run the worker. */ + switch (CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_SPEED_OVER_MEMORY)) { + case S_OK: + case S_FALSE: + DsnEditorWorker(); + break; + case RPC_E_CHANGED_MODE: + t = gcnew Thread(gcnew ThreadStart(this, &EsOdbcDsnBinding::DsnEditorWorker)); + t->ApartmentState = ApartmentState::STA; + t->Start(); + t->Join(); + break; + default: + throw gcnew Exception("setting threading model failed."); + } + + return dsnOutLen; + } + + private:void DsnEditorWorker() + { + EsOdbcDsnEditor::DriverCallbackDelegate ^delegConnectionTest; + EsOdbcDsnEditor::DriverCallbackDelegate ^delegSaveDsn; + + delegConnectionTest = gcnew DriverCallbackDelegate(this, &EsOdbcDsnBinding::proxyConnectionTest); + delegSaveDsn = gcnew DriverCallbackDelegate(this, &EsOdbcDsnBinding::proxySaveDsn); + + dsnOutLen = DsnEditorFactory::DsnEditor(onConnect, dsnInStr, delegConnectionTest, delegSaveDsn); + } + + + }; +} + +#ifdef __cplusplus +extern "C" +#endif /* __cpluplus */ +#ifndef DRIVER_BUILD +__declspec(dllexport) +#else /* DRIVER_BUILD */ +__declspec(dllimport) +#endif /* DRIVER_BUILD */ +int EsOdbcDsnEdit(HWND hwnd, BOOL onConnect, wchar_t *dsnInW, + driver_callback_ft cbConnectionTest, void *argConnectionTest, + driver_callback_ft cbSaveDsn, void *argSaveDsn) +{ + try { + EsOdbcDsnBinding::EsOdbcDsnBinding binding(hwnd, onConnect, dsnInW, + cbConnectionTest, argConnectionTest, + cbSaveDsn, argSaveDsn); + return binding.EsOdbcDsnEditor(); + } catch (Exception^ e) { + if (hwnd) { + pin_ptr wch = PtrToStringChars(e->Message); + if (! MessageBox(hwnd, wch, L"Loading Exception", MB_OK | MB_ICONERROR)) { + // failed to display failure error + return -3; + } + // failure error presented to user + return -1; + } + // no window hander available + return -2; + } +} + diff --git a/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.h b/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.h new file mode 100644 index 00000000..5741400b --- /dev/null +++ b/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.h @@ -0,0 +1,76 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +#pragma once + +/* needed for HWND definition (just a void*) */ +#include + +/* flag passed to callback to indicate that an overwrite of existing DSN + * is desired by user. */ +#define ESODBC_DSN_OVERWRITE_FLAG (1<<0) + +#define ESODBC_DSN_NO_ERROR 0 +/* Code returned by callback to signal that given DSN name already exists. */ +#define ESODBC_DSN_EXISTS_ERROR -1 +/* The receivd DSN string (connection/00-list) is NULL. */ +#define ESODBC_DSN_ISNULL_ERROR -2 +/* The receivd DSN string couldn't be parsed. */ +#define ESODBC_DSN_INVALID_ERROR -3 +/* The receivd DSN name is invalid. */ +#define ESODBC_DSN_NAME_INVALID_ERROR -4 +/* Non charachteristic (system?) error. */ +#define ESODBC_DSN_GENERIC_ERROR -127 + +/* + * Callback into the driver definition. + * + * Arguments: + * - arg: opaque value provided back to the function (from and back into the + * driver); + * - connectionString: serialized form of the DSN set. + * - connStrLength: the lenght of the connectionString (excluding null + * terminator); + * - errorMessage: out parameter, conveying the failure message (on failure); + * - messageMaxLength: size of the errorMessage buffer (i.e. how much can the + * driver write into 'errorMessage'); + */ +typedef int(*driver_callback_ft)(void *arg, const wchar_t *connectionString, + wchar_t *errorMessage, size_t messageMaxLength, unsigned flags); + +/* + * Main entry point into the GUI. + * + * Arguments: + * - hwnd: window handler passed through the driver; currently only used when + * there's an exception loading or in the assembley; + * - onConnect: if true, the GUI must disable all controls + * non-connection-related (like DSN name, details, log file etc); + * - dsnInW: connection string input parameter; could be empty/NULL. + * - cbConnectionTest: callback from the GUI into the driver when the user + * wants to test the input parameters. + * - argConnectionTest: argument to be passed back to cbConnectionTest; + * - cbSaveDsn: callback from the GUI itno the driver when the user wants to + * save a connection string (here called also 'DSN'); + * - argSaveDsn: argument to be passed back to cbSaveDsn. + * + * Return: + * - success: lenght of output connection string; + * - non-failure: 0 (user canceled); + * - failure: negative. + */ + +#ifdef __cplusplus +extern "C" +#endif /* __cpluplus */ +#ifndef DRIVER_BUILD +__declspec(dllexport) +#else /* DRIVER_BUILD */ +__declspec(dllimport) +#endif /* DRIVER_BUILD */ +int EsOdbcDsnEdit(HWND hwnd, BOOL onConnect, wchar_t *dsnInW, + driver_callback_ft cbConnectionTest, void *argConnectionTest, + driver_callback_ft cbSaveDsn, void *argSaveDsn); diff --git a/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.vcxproj b/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.vcxproj new file mode 100644 index 00000000..45458646 --- /dev/null +++ b/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.vcxproj @@ -0,0 +1,195 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {47824E02-6B1A-4B43-9D20-3CB2F5479F6B} + Win32Proj + EsOdbcDsnBinding + 10.0.17134.0 + + + + DynamicLibrary + true + v141 + Unicode + true + + + DynamicLibrary + false + v141 + true + Unicode + true + + + DynamicLibrary + true + v141 + Unicode + true + + + DynamicLibrary + false + v141 + true + Unicode + true + + + + + + + + + + + + + + + + + + + + + true + esdsnbnd + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + + + true + esdsnbnd + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + + + false + esdsnbnd + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + + + false + esdsnbnd + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + + + + NotUsing + Level3 + Disabled + true + WIN32;_DEBUG;ESODBCDSNBINDING_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + /Zc:twoPhase- %(AdditionalOptions) + + + Windows + true + + + $(Configuration)\$(Platform)\$(MSBuildProjectName).log + + + + + NotUsing + Level3 + Disabled + true + _DEBUG;ESODBCDSNBINDING_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + /Zc:twoPhase- %(AdditionalOptions) + + + Windows + true + + + $(Configuration)\$(Platform)\$(MSBuildProjectName).log + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + WIN32;NDEBUG;ESODBCDSNBINDING_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + /Zc:twoPhase- %(AdditionalOptions) + + + Windows + true + true + true + + + $(Configuration)\$(Platform)\$(MSBuildProjectName).log + + + + + NotUsing + Level3 + MaxSpeed + true + true + true + NDEBUG;ESODBCDSNBINDING_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + /Zc:twoPhase- %(AdditionalOptions) + + + Windows + true + true + true + + + $(Configuration)\$(Platform)\$(MSBuildProjectName).log + + + + + + + + {fac0512c-e595-4bf4-acb7-617611df5715} + + + + + + + + + diff --git a/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.vcxproj.filters b/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.vcxproj.filters new file mode 100644 index 00000000..c03e342e --- /dev/null +++ b/dsneditor/EsOdbcDsnBinding/EsOdbcDsnBinding.vcxproj.filters @@ -0,0 +1,27 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + + + Header Files + + + diff --git a/dsneditor/EsOdbcDsnEditor/App.config b/dsneditor/EsOdbcDsnEditor/App.config new file mode 100644 index 00000000..160269e9 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditor/App.config @@ -0,0 +1,4 @@ + + + + diff --git a/dsneditor/EsOdbcDsnEditor/DSNEditorForm.Designer.cs b/dsneditor/EsOdbcDsnEditor/DSNEditorForm.Designer.cs new file mode 100644 index 00000000..ed568caf --- /dev/null +++ b/dsneditor/EsOdbcDsnEditor/DSNEditorForm.Designer.cs @@ -0,0 +1,557 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +namespace EsOdbcDsnEditor +{ + partial class DsnEditorForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DsnEditorForm)); + this.saveButton = new System.Windows.Forms.Button(); + this.cancelButton = new System.Windows.Forms.Button(); + this.testButton = new System.Windows.Forms.Button(); + this.header = new System.Windows.Forms.PictureBox(); + this.certificatePathButton = new System.Windows.Forms.Button(); + this.textCertificatePath = new System.Windows.Forms.TextBox(); + this.labelCertificatePath = new System.Windows.Forms.Label(); + this.groupSSL = new System.Windows.Forms.GroupBox(); + this.radioEnabledFull = new System.Windows.Forms.RadioButton(); + this.radioEnabledHostname = new System.Windows.Forms.RadioButton(); + this.radioEnabledNoHostname = new System.Windows.Forms.RadioButton(); + this.radioEnabledNoValidation = new System.Windows.Forms.RadioButton(); + this.radioButtonDisabled = new System.Windows.Forms.RadioButton(); + this.numericUpDownPort = new System.Windows.Forms.NumericUpDown(); + this.textPassword = new System.Windows.Forms.TextBox(); + this.labelPassword = new System.Windows.Forms.Label(); + this.textUsername = new System.Windows.Forms.TextBox(); + this.labelUsername = new System.Windows.Forms.Label(); + this.textHostname = new System.Windows.Forms.TextBox(); + this.labelPort = new System.Windows.Forms.Label(); + this.labelHostname = new System.Windows.Forms.Label(); + this.certificateFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.tabConfiguration = new System.Windows.Forms.TabControl(); + this.pageBasic = new System.Windows.Forms.TabPage(); + this.textDescription = new System.Windows.Forms.TextBox(); + this.labelDescription = new System.Windows.Forms.Label(); + this.textName = new System.Windows.Forms.TextBox(); + this.labelName = new System.Windows.Forms.Label(); + this.pageSecurity = new System.Windows.Forms.TabPage(); + this.pageLogging = new System.Windows.Forms.TabPage(); + this.checkLoggingEnabled = new System.Windows.Forms.CheckBox(); + this.comboLogLevel = new System.Windows.Forms.ComboBox(); + this.labelLogLevel = new System.Windows.Forms.Label(); + this.logDirectoryPathButton = new System.Windows.Forms.Button(); + this.textLogDirectoryPath = new System.Windows.Forms.TextBox(); + this.labelLogDirectory = new System.Windows.Forms.Label(); + this.folderLogDirectoryDialog = new System.Windows.Forms.FolderBrowserDialog(); + ((System.ComponentModel.ISupportInitialize)(this.header)).BeginInit(); + this.groupSSL.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownPort)).BeginInit(); + this.tabConfiguration.SuspendLayout(); + this.pageBasic.SuspendLayout(); + this.pageSecurity.SuspendLayout(); + this.pageLogging.SuspendLayout(); + this.SuspendLayout(); + // + // saveButton + // + this.saveButton.Location = new System.Drawing.Point(514, 676); + this.saveButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.saveButton.Name = "saveButton"; + this.saveButton.Size = new System.Drawing.Size(112, 35); + this.saveButton.TabIndex = 17; + this.saveButton.Text = "Save"; + this.saveButton.UseVisualStyleBackColor = true; + this.saveButton.Click += new System.EventHandler(this.SaveButton_Click); + // + // cancelButton + // + this.cancelButton.Location = new System.Drawing.Point(630, 676); + this.cancelButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(112, 35); + this.cancelButton.TabIndex = 18; + this.cancelButton.Text = "Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.CancelButton_Click); + // + // testButton + // + this.testButton.Location = new System.Drawing.Point(19, 676); + this.testButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.testButton.Name = "testButton"; + this.testButton.Size = new System.Drawing.Size(176, 35); + this.testButton.TabIndex = 16; + this.testButton.Text = "Test Connection"; + this.testButton.UseVisualStyleBackColor = true; + this.testButton.Click += new System.EventHandler(this.TestConnectionButton_Click); + // + // header + // + this.header.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("header.BackgroundImage"))); + this.header.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.header.InitialImage = null; + this.header.Location = new System.Drawing.Point(0, 0); + this.header.Margin = new System.Windows.Forms.Padding(0); + this.header.Name = "header"; + this.header.Size = new System.Drawing.Size(765, 72); + this.header.TabIndex = 5; + this.header.TabStop = false; + // + // certificatePathButton + // + this.certificatePathButton.Location = new System.Drawing.Point(590, 258); + this.certificatePathButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.certificatePathButton.Name = "certificatePathButton"; + this.certificatePathButton.Size = new System.Drawing.Size(112, 35); + this.certificatePathButton.TabIndex = 15; + this.certificatePathButton.Text = "Browse..."; + this.certificatePathButton.UseVisualStyleBackColor = true; + this.certificatePathButton.Click += new System.EventHandler(this.CertificatePathButton_Click); + // + // textCertificatePath + // + this.textCertificatePath.Location = new System.Drawing.Point(140, 261); + this.textCertificatePath.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.textCertificatePath.Name = "textCertificatePath"; + this.textCertificatePath.Size = new System.Drawing.Size(440, 26); + this.textCertificatePath.TabIndex = 14; + // + // labelCertificatePath + // + this.labelCertificatePath.AutoSize = true; + this.labelCertificatePath.Location = new System.Drawing.Point(18, 265); + this.labelCertificatePath.Name = "labelCertificatePath"; + this.labelCertificatePath.Size = new System.Drawing.Size(114, 20); + this.labelCertificatePath.TabIndex = 11; + this.labelCertificatePath.Text = "Certificate File:"; + // + // groupSSL + // + this.groupSSL.Controls.Add(this.radioEnabledFull); + this.groupSSL.Controls.Add(this.radioEnabledHostname); + this.groupSSL.Controls.Add(this.radioEnabledNoHostname); + this.groupSSL.Controls.Add(this.radioEnabledNoValidation); + this.groupSSL.Controls.Add(this.radioButtonDisabled); + this.groupSSL.Location = new System.Drawing.Point(18, 20); + this.groupSSL.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.groupSSL.Name = "groupSSL"; + this.groupSSL.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.groupSSL.Size = new System.Drawing.Size(684, 220); + this.groupSSL.TabIndex = 10; + this.groupSSL.TabStop = false; + this.groupSSL.Text = "Secure Sockets Layer (SSL):"; + // + // radioEnabledFull + // + this.radioEnabledFull.AutoSize = true; + this.radioEnabledFull.Location = new System.Drawing.Point(18, 174); + this.radioEnabledFull.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.radioEnabledFull.Name = "radioEnabledFull"; + this.radioEnabledFull.Size = new System.Drawing.Size(340, 24); + this.radioEnabledFull.TabIndex = 13; + this.radioEnabledFull.TabStop = true; + this.radioEnabledFull.Text = "Enabled. Certificate identity chain validated."; + this.radioEnabledFull.UseVisualStyleBackColor = true; + // + // radioEnabledHostname + // + this.radioEnabledHostname.AutoSize = true; + this.radioEnabledHostname.Location = new System.Drawing.Point(18, 140); + this.radioEnabledHostname.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.radioEnabledHostname.Name = "radioEnabledHostname"; + this.radioEnabledHostname.Size = new System.Drawing.Size(405, 24); + this.radioEnabledHostname.TabIndex = 12; + this.radioEnabledHostname.TabStop = true; + this.radioEnabledHostname.Text = "Enabled. Certificate is validated; hostname validated."; + this.radioEnabledHostname.UseVisualStyleBackColor = true; + // + // radioEnabledNoHostname + // + this.radioEnabledNoHostname.AutoSize = true; + this.radioEnabledNoHostname.Location = new System.Drawing.Point(18, 106); + this.radioEnabledNoHostname.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.radioEnabledNoHostname.Name = "radioEnabledNoHostname"; + this.radioEnabledNoHostname.Size = new System.Drawing.Size(432, 24); + this.radioEnabledNoHostname.TabIndex = 11; + this.radioEnabledNoHostname.TabStop = true; + this.radioEnabledNoHostname.Text = "Enabled. Certificate is validated; hostname not validated."; + this.radioEnabledNoHostname.UseVisualStyleBackColor = true; + // + // radioEnabledNoValidation + // + this.radioEnabledNoValidation.AutoSize = true; + this.radioEnabledNoValidation.Location = new System.Drawing.Point(18, 72); + this.radioEnabledNoValidation.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.radioEnabledNoValidation.Name = "radioEnabledNoValidation"; + this.radioEnabledNoValidation.Size = new System.Drawing.Size(271, 24); + this.radioEnabledNoValidation.TabIndex = 10; + this.radioEnabledNoValidation.TabStop = true; + this.radioEnabledNoValidation.Text = "Enabled. Certificate not validated."; + this.radioEnabledNoValidation.UseVisualStyleBackColor = true; + // + // radioButtonDisabled + // + this.radioButtonDisabled.AutoSize = true; + this.radioButtonDisabled.Location = new System.Drawing.Point(18, 39); + this.radioButtonDisabled.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.radioButtonDisabled.Name = "radioButtonDisabled"; + this.radioButtonDisabled.Size = new System.Drawing.Size(336, 24); + this.radioButtonDisabled.TabIndex = 9; + this.radioButtonDisabled.TabStop = true; + this.radioButtonDisabled.Text = "Disabled. All communications unencrypted."; + this.radioButtonDisabled.UseVisualStyleBackColor = true; + // + // numericUpDownPort + // + this.numericUpDownPort.Location = new System.Drawing.Point(126, 308); + this.numericUpDownPort.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.numericUpDownPort.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.numericUpDownPort.Name = "numericUpDownPort"; + this.numericUpDownPort.Size = new System.Drawing.Size(117, 26); + this.numericUpDownPort.TabIndex = 5; + this.numericUpDownPort.Value = new decimal(new int[] { + 9200, + 0, + 0, + 0}); + this.numericUpDownPort.ValueChanged += new System.EventHandler(this.NumericUpDownPort_ValueChanged); + // + // textPassword + // + this.textPassword.Location = new System.Drawing.Point(126, 405); + this.textPassword.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.textPassword.Name = "textPassword"; + this.textPassword.PasswordChar = '*'; + this.textPassword.Size = new System.Drawing.Size(257, 26); + this.textPassword.TabIndex = 7; + // + // labelPassword + // + this.labelPassword.AutoSize = true; + this.labelPassword.Location = new System.Drawing.Point(18, 409); + this.labelPassword.Name = "labelPassword"; + this.labelPassword.Size = new System.Drawing.Size(82, 20); + this.labelPassword.TabIndex = 6; + this.labelPassword.Text = "Password:"; + // + // textUsername + // + this.textUsername.Location = new System.Drawing.Point(126, 355); + this.textUsername.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.textUsername.Name = "textUsername"; + this.textUsername.Size = new System.Drawing.Size(257, 26); + this.textUsername.TabIndex = 6; + // + // labelUsername + // + this.labelUsername.AutoSize = true; + this.labelUsername.Location = new System.Drawing.Point(18, 359); + this.labelUsername.Name = "labelUsername"; + this.labelUsername.Size = new System.Drawing.Size(87, 20); + this.labelUsername.TabIndex = 4; + this.labelUsername.Text = "Username:"; + // + // textHostname + // + this.textHostname.Location = new System.Drawing.Point(126, 260); + this.textHostname.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.textHostname.Name = "textHostname"; + this.textHostname.Size = new System.Drawing.Size(569, 26); + this.textHostname.TabIndex = 4; + this.textHostname.TextChanged += new System.EventHandler(this.TextHostname_TextChanged); + // + // labelPort + // + this.labelPort.AutoSize = true; + this.labelPort.Location = new System.Drawing.Point(18, 310); + this.labelPort.Name = "labelPort"; + this.labelPort.Size = new System.Drawing.Size(42, 20); + this.labelPort.TabIndex = 2; + this.labelPort.Text = "Port:"; + // + // labelHostname + // + this.labelHostname.AutoSize = true; + this.labelHostname.Location = new System.Drawing.Point(18, 264); + this.labelHostname.Name = "labelHostname"; + this.labelHostname.Size = new System.Drawing.Size(87, 20); + this.labelHostname.TabIndex = 0; + this.labelHostname.Text = "Hostname:"; + // + // certificateFileDialog + // + this.certificateFileDialog.Filter = "X509 Certificate|*.pem;*.der|All Files|*.*"; + // + // tabConfiguration + // + this.tabConfiguration.Controls.Add(this.pageBasic); + this.tabConfiguration.Controls.Add(this.pageSecurity); + this.tabConfiguration.Controls.Add(this.pageLogging); + this.tabConfiguration.Location = new System.Drawing.Point(18, 92); + this.tabConfiguration.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.tabConfiguration.Name = "tabConfiguration"; + this.tabConfiguration.SelectedIndex = 0; + this.tabConfiguration.Size = new System.Drawing.Size(729, 575); + this.tabConfiguration.TabIndex = 8; + // + // pageBasic + // + this.pageBasic.Controls.Add(this.textDescription); + this.pageBasic.Controls.Add(this.labelDescription); + this.pageBasic.Controls.Add(this.textName); + this.pageBasic.Controls.Add(this.labelName); + this.pageBasic.Controls.Add(this.textHostname); + this.pageBasic.Controls.Add(this.labelHostname); + this.pageBasic.Controls.Add(this.labelPort); + this.pageBasic.Controls.Add(this.labelUsername); + this.pageBasic.Controls.Add(this.textUsername); + this.pageBasic.Controls.Add(this.numericUpDownPort); + this.pageBasic.Controls.Add(this.labelPassword); + this.pageBasic.Controls.Add(this.textPassword); + this.pageBasic.Location = new System.Drawing.Point(4, 29); + this.pageBasic.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.pageBasic.Name = "pageBasic"; + this.pageBasic.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.pageBasic.Size = new System.Drawing.Size(721, 542); + this.pageBasic.TabIndex = 0; + this.pageBasic.Text = "Basic"; + this.pageBasic.UseVisualStyleBackColor = true; + // + // textDescription + // + this.textDescription.Location = new System.Drawing.Point(126, 70); + this.textDescription.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.textDescription.Multiline = true; + this.textDescription.Name = "textDescription"; + this.textDescription.Size = new System.Drawing.Size(569, 164); + this.textDescription.TabIndex = 3; + // + // labelDescription + // + this.labelDescription.AutoSize = true; + this.labelDescription.Location = new System.Drawing.Point(18, 74); + this.labelDescription.Name = "labelDescription"; + this.labelDescription.Size = new System.Drawing.Size(93, 20); + this.labelDescription.TabIndex = 10; + this.labelDescription.Text = "Description:"; + // + // textName + // + this.textName.Location = new System.Drawing.Point(126, 20); + this.textName.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.textName.Name = "textName"; + this.textName.Size = new System.Drawing.Size(569, 26); + this.textName.TabIndex = 2; + this.textName.TextChanged += new System.EventHandler(this.TextName_TextChanged); + // + // labelName + // + this.labelName.AutoSize = true; + this.labelName.Location = new System.Drawing.Point(18, 26); + this.labelName.Name = "labelName"; + this.labelName.Size = new System.Drawing.Size(55, 20); + this.labelName.TabIndex = 8; + this.labelName.Text = "Name:"; + // + // pageSecurity + // + this.pageSecurity.Controls.Add(this.certificatePathButton); + this.pageSecurity.Controls.Add(this.groupSSL); + this.pageSecurity.Controls.Add(this.textCertificatePath); + this.pageSecurity.Controls.Add(this.labelCertificatePath); + this.pageSecurity.Location = new System.Drawing.Point(4, 29); + this.pageSecurity.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.pageSecurity.Name = "pageSecurity"; + this.pageSecurity.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.pageSecurity.Size = new System.Drawing.Size(721, 542); + this.pageSecurity.TabIndex = 1; + this.pageSecurity.Text = "Security"; + this.pageSecurity.UseVisualStyleBackColor = true; + // + // pageLogging + // + this.pageLogging.Controls.Add(this.checkLoggingEnabled); + this.pageLogging.Controls.Add(this.comboLogLevel); + this.pageLogging.Controls.Add(this.labelLogLevel); + this.pageLogging.Controls.Add(this.logDirectoryPathButton); + this.pageLogging.Controls.Add(this.textLogDirectoryPath); + this.pageLogging.Controls.Add(this.labelLogDirectory); + this.pageLogging.Location = new System.Drawing.Point(4, 29); + this.pageLogging.Name = "pageLogging"; + this.pageLogging.Padding = new System.Windows.Forms.Padding(3); + this.pageLogging.Size = new System.Drawing.Size(721, 542); + this.pageLogging.TabIndex = 2; + this.pageLogging.Text = "Logging"; + this.pageLogging.UseVisualStyleBackColor = true; + // + // checkLoggingEnabled + // + this.checkLoggingEnabled.AutoSize = true; + this.checkLoggingEnabled.Checked = true; + this.checkLoggingEnabled.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkLoggingEnabled.Location = new System.Drawing.Point(18, 26); + this.checkLoggingEnabled.Name = "checkLoggingEnabled"; + this.checkLoggingEnabled.Size = new System.Drawing.Size(155, 24); + this.checkLoggingEnabled.TabIndex = 22; + this.checkLoggingEnabled.Text = "Enable Logging?"; + this.checkLoggingEnabled.UseVisualStyleBackColor = true; + this.checkLoggingEnabled.CheckedChanged += new System.EventHandler(this.CheckLoggingEnabled_CheckedChanged); + // + // comboLogLevel + // + this.comboLogLevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboLogLevel.FormattingEnabled = true; + this.comboLogLevel.Items.AddRange(new object[] { + "DEBUG", + "INFO", + "WARN", + "ERROR"}); + this.comboLogLevel.Location = new System.Drawing.Point(139, 123); + this.comboLogLevel.Name = "comboLogLevel"; + this.comboLogLevel.Size = new System.Drawing.Size(121, 28); + this.comboLogLevel.TabIndex = 21; + // + // labelLogLevel + // + this.labelLogLevel.AutoSize = true; + this.labelLogLevel.Location = new System.Drawing.Point(18, 126); + this.labelLogLevel.Name = "labelLogLevel"; + this.labelLogLevel.Size = new System.Drawing.Size(81, 20); + this.labelLogLevel.TabIndex = 20; + this.labelLogLevel.Text = "Log Level:"; + // + // logDirectoryPathButton + // + this.logDirectoryPathButton.Location = new System.Drawing.Point(592, 69); + this.logDirectoryPathButton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.logDirectoryPathButton.Name = "logDirectoryPathButton"; + this.logDirectoryPathButton.Size = new System.Drawing.Size(112, 35); + this.logDirectoryPathButton.TabIndex = 18; + this.logDirectoryPathButton.Text = "Browse..."; + this.logDirectoryPathButton.UseVisualStyleBackColor = true; + this.logDirectoryPathButton.Click += new System.EventHandler(this.LogDirectoryPathButton_Click); + // + // textLogDirectoryPath + // + this.textLogDirectoryPath.Location = new System.Drawing.Point(139, 71); + this.textLogDirectoryPath.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.textLogDirectoryPath.Name = "textLogDirectoryPath"; + this.textLogDirectoryPath.Size = new System.Drawing.Size(440, 26); + this.textLogDirectoryPath.TabIndex = 17; + // + // labelLogDirectory + // + this.labelLogDirectory.AutoSize = true; + this.labelLogDirectory.Location = new System.Drawing.Point(18, 77); + this.labelLogDirectory.Name = "labelLogDirectory"; + this.labelLogDirectory.Size = new System.Drawing.Size(107, 20); + this.labelLogDirectory.TabIndex = 16; + this.labelLogDirectory.Text = "Log Directory:"; + // + // DsnEditorForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(767, 735); + this.Controls.Add(this.tabConfiguration); + this.Controls.Add(this.header); + this.Controls.Add(this.testButton); + this.Controls.Add(this.cancelButton); + this.Controls.Add(this.saveButton); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "DsnEditorForm"; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.Text = "Elasticsearch ODBC DSN Configuration"; + ((System.ComponentModel.ISupportInitialize)(this.header)).EndInit(); + this.groupSSL.ResumeLayout(false); + this.groupSSL.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDownPort)).EndInit(); + this.tabConfiguration.ResumeLayout(false); + this.pageBasic.ResumeLayout(false); + this.pageBasic.PerformLayout(); + this.pageSecurity.ResumeLayout(false); + this.pageSecurity.PerformLayout(); + this.pageLogging.ResumeLayout(false); + this.pageLogging.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button saveButton; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button testButton; + private System.Windows.Forms.PictureBox header; + private System.Windows.Forms.TextBox textHostname; + private System.Windows.Forms.Label labelPort; + private System.Windows.Forms.Label labelHostname; + private System.Windows.Forms.TextBox textPassword; + private System.Windows.Forms.Label labelPassword; + private System.Windows.Forms.TextBox textUsername; + private System.Windows.Forms.Label labelUsername; + private System.Windows.Forms.NumericUpDown numericUpDownPort; + private System.Windows.Forms.RadioButton radioButtonDisabled; + private System.Windows.Forms.GroupBox groupSSL; + private System.Windows.Forms.RadioButton radioEnabledFull; + private System.Windows.Forms.RadioButton radioEnabledHostname; + private System.Windows.Forms.RadioButton radioEnabledNoHostname; + private System.Windows.Forms.RadioButton radioEnabledNoValidation; + private System.Windows.Forms.Button certificatePathButton; + private System.Windows.Forms.TextBox textCertificatePath; + private System.Windows.Forms.Label labelCertificatePath; + private System.Windows.Forms.OpenFileDialog certificateFileDialog; + private System.Windows.Forms.TabControl tabConfiguration; + private System.Windows.Forms.TabPage pageBasic; + private System.Windows.Forms.TabPage pageSecurity; + private System.Windows.Forms.TextBox textDescription; + private System.Windows.Forms.Label labelDescription; + private System.Windows.Forms.TextBox textName; + private System.Windows.Forms.Label labelName; + private System.Windows.Forms.TabPage pageLogging; + private System.Windows.Forms.Label labelLogLevel; + private System.Windows.Forms.Button logDirectoryPathButton; + private System.Windows.Forms.TextBox textLogDirectoryPath; + private System.Windows.Forms.Label labelLogDirectory; + private System.Windows.Forms.FolderBrowserDialog folderLogDirectoryDialog; + private System.Windows.Forms.ComboBox comboLogLevel; + private System.Windows.Forms.CheckBox checkLoggingEnabled; + } +} + diff --git a/dsneditor/EsOdbcDsnEditor/DSNEditorForm.cs b/dsneditor/EsOdbcDsnEditor/DSNEditorForm.cs new file mode 100644 index 00000000..2033e262 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditor/DSNEditorForm.cs @@ -0,0 +1,353 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +using System; +using System.Data.Odbc; +using System.Windows.Forms; +using System.IO; + +// uncomment to have the assembly loading to ask for (various) resources; various solutions: +// https://stackoverflow.com/questions/4368201/appdomain-currentdomain-assemblyresolve-asking-for-a-appname-resources-assembl +// [assembly: NeutralResourcesLanguageAttribute("en-GB", UltimateResourceFallbackLocation.MainAssembly)] + +namespace EsOdbcDsnEditor +{ + /// + /// Delegate for the driver callbacks. + /// + public delegate int DriverCallbackDelegate(string connectionString, ref string errorMessage, uint flags); + + public partial class DsnEditorForm : Form + { + private const int ESODBC_DSN_EXISTS_ERROR = -1; + + private DriverCallbackDelegate testConnection; + private DriverCallbackDelegate saveDsn; + + private readonly bool isConnecting; + + public OdbcConnectionStringBuilder Builder { get; set; } = new OdbcConnectionStringBuilder(); + + public DsnEditorForm( + bool onConnect, + string dsn, + DriverCallbackDelegate connectionTest, + DriverCallbackDelegate dsnSave) + { + InitializeComponent(); + + // Wire up default button behaviours + AcceptButton = saveButton; + CancelButton = cancelButton; + + isConnecting = onConnect; + testConnection = connectionTest; + saveDsn = dsnSave; + + // If connecting then disable some user inputs + if (isConnecting) + { + textName.ReadOnly = textDescription.ReadOnly = true; + textName.Enabled = textDescription.Enabled = false; + } + + // If this is a call serving a connect request, name the button "Connect", otherwise it's a DSN editing, so it's going to be a "Save". + saveButton.Text = onConnect ? "Connect" : "Save"; + + // Parse DSN into the builder + Builder.ConnectionString = dsn; + + // Basic Panel + textName.Text = Builder.ContainsKey("dsn") ? Builder["dsn"].ToString().StripBraces() : string.Empty; + textDescription.Text = Builder.ContainsKey("description") ? Builder["description"].ToString().StripBraces() : string.Empty; + textUsername.Text = Builder.ContainsKey("uid") ? Builder["uid"].ToString().StripBraces() : string.Empty; + textPassword.Text = Builder.ContainsKey("pwd") ? Builder["pwd"].ToString().StripBraces() : string.Empty; + textHostname.Text = Builder.ContainsKey("server") ? Builder["server"].ToString().StripBraces() : string.Empty; + numericUpDownPort.Text = Builder.ContainsKey("port") ? Builder["port"].ToString().StripBraces() : string.Empty; + + // Security Panel + textCertificatePath.Text = Builder.ContainsKey("capath") ? Builder["capath"].ToString().StripBraces() : string.Empty; + radioEnabledNoValidation.Checked = true; // Default setting + if (Builder.ContainsKey("secure")) + { + var result = int.TryParse(Builder["secure"].ToString(), out int val); + if (result) + { + switch(val) + { + case 0: radioButtonDisabled.Checked = true; break; + case 1: radioEnabledNoValidation.Checked = true; break; + case 2: radioEnabledNoHostname.Checked = true; break; + case 3: radioEnabledHostname.Checked = true; break; + case 4: radioEnabledFull.Checked = true; break; + } + } + } + + // Logging Panel + textLogDirectoryPath.Text = Builder.ContainsKey("tracefile") ? Builder["tracefile"].ToString().StripBraces() : string.Empty; + comboLogLevel.Text = "DEBUG"; // Default setting + checkLoggingEnabled.Checked = true; // Default setting + if (Builder.ContainsKey("tracelevel")) + { + switch (Builder["tracelevel"].ToString().ToUpperInvariant()) + { + case "DEBUG": comboLogLevel.Text = "DEBUG"; break; + case "INFO": comboLogLevel.Text = "INFO"; break; + case "WARN": comboLogLevel.Text = "WARN"; break; + case "ERROR": comboLogLevel.Text = "ERROR"; break; + } + } + if (Builder.ContainsKey("traceenabled")) + { + var result = int.TryParse(Builder["traceenabled"].ToString(), out int val); + if (result) + { + switch (val) + { + case 0: checkLoggingEnabled.Checked = false; break; + default: checkLoggingEnabled.Checked = true; break; + } + } + } + else + { + checkLoggingEnabled.Checked = false; + } + + // Set initial state of action buttons. + EnableDisableActionButtons(); + } + + /// + /// On save, call the driver's callback. If operation succeeds, close the window. + /// On failure, display the error received from the driver and keep editing. + /// + private void SaveButton_Click(object sender, EventArgs e) + { + SaveDsn(false); + } + + private void SaveDsn(bool forceOverwrite) + { + var errorMessage = string.Empty; + + var dsnResult = RebuildAndValidateDsn(); + if (!dsnResult) return; + + var dsn = Builder.ToString(); + var flag = forceOverwrite ? 1u : 0; + + int result = saveDsn(dsn, ref errorMessage, flag); + if (result >= 0 || (forceOverwrite + && result == ESODBC_DSN_EXISTS_ERROR)) + { + Close(); + return; + } + + // Specific handling for prompting the user if result is an overwrite action + if (forceOverwrite == false + && result == ESODBC_DSN_EXISTS_ERROR) + { + var dialogResult = MessageBox.Show("The DSN already exists, are you sure you wish to overwrite it?", "Overwrite", MessageBoxButtons.YesNo); + if (dialogResult == DialogResult.Yes) + { + SaveDsn(true); + } + + return; + } + + if (errorMessage.Length <= 0) + { + errorMessage = "Saving the DSN failed"; + } + + MessageBox.Show(errorMessage, "Operation failure", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + /// + /// With the Test button the user checks if the input data leads to a connection. + /// The function calls the driver callback and displays the result of the operation. + /// + private void TestConnectionButton_Click(object sender, EventArgs e) + { + var errorMessage = string.Empty; + + var dsnResult = RebuildAndValidateDsn(); + if (!dsnResult) return; + + var dsn = Builder.ToString(); + + // Wrap slow operation in a wait cursor + Cursor = Cursors.WaitCursor; + int result = testConnection(dsn, ref errorMessage, 0); + Cursor = Cursors.Arrow; + + if (result >= 0) + { + MessageBox.Show("Connection Success", "Connection Test", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + else + { + var message = "Connection Failed"; + if (0 < errorMessage.Length) + { + message += ": " + errorMessage; + } + MessageBox.Show(message, "Connection Test", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private bool RebuildAndValidateDsn() + { + // Basic Panel + Builder["dsn"] = textName.Text; + Builder["description"] = textDescription.Text; + Builder["uid"] = textUsername.Text; + Builder["pwd"] = textPassword.Text; + Builder["server"] = textHostname.Text; + Builder["port"] = numericUpDownPort.Text; + + // Security Panel + Builder["capath"] = textCertificatePath.Text; + if (radioButtonDisabled.Checked) Builder["secure"] = 0; + if (radioEnabledNoValidation.Checked) Builder["secure"] = 1; + if (radioEnabledNoHostname.Checked) Builder["secure"] = 2; + if (radioEnabledHostname.Checked) Builder["secure"] = 3; + if (radioEnabledFull.Checked) Builder["secure"] = 4; + + // Logging Panel + Builder["tracefile"] = textLogDirectoryPath.Text; + Builder["tracelevel"] = comboLogLevel.Text; + Builder["traceenabled"] = checkLoggingEnabled.Checked ? "1" : "0"; + + // Validations + var certificateFileOK = true; + var logDirectoryOK = true; + + if (!string.IsNullOrEmpty(textCertificatePath.Text)) + { + certificateFileOK = ValidateCertificateFile(textCertificatePath.Text); + } + + if (!string.IsNullOrEmpty(textLogDirectoryPath.Text)) + { + logDirectoryOK = ValidateLogFolderPath(textLogDirectoryPath.Text); + } + + return certificateFileOK && logDirectoryOK; + } + + private void LogDirectoryPathButton_Click(object sender, EventArgs e) + { + var result = folderLogDirectoryDialog.ShowDialog(); + if (result == DialogResult.OK) + { + string path = folderLogDirectoryDialog.SelectedPath; + if (ValidateLogFolderPath(path)) + { + textLogDirectoryPath.Text = path; + } + } + } + + private bool ValidateLogFolderPath(string path) + { + if (string.IsNullOrEmpty(path) || Directory.Exists(path)) + { + return true; + } + + MessageBox.Show("Log directory invalid, path does not exist", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + + private void CertificatePathButton_Click(object sender, EventArgs e) + { + var result = certificateFileDialog.ShowDialog(); + if (result == DialogResult.OK) + { + string file = certificateFileDialog.FileName; + if (ValidateCertificateFile(file)) + { + textCertificatePath.Text = file; + } + } + } + + private bool ValidateCertificateFile(string file) + { + if (string.IsNullOrEmpty(file)) + { + return true; + } + + var info = new FileInfo(file); + if (info.Exists && info.Length > 0) + { + return true; + } + + MessageBox.Show("Certificate file invalid", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return false; + } + + private void TextName_TextChanged(object sender, EventArgs e) + { + EnableDisableActionButtons(); + } + + private void TextHostname_TextChanged(object sender, EventArgs e) + { + EnableDisableActionButtons(); + } + + private void NumericUpDownPort_ValueChanged(object sender, EventArgs e) + { + EnableDisableActionButtons(); + } + + private void EnableDisableActionButtons() + { + saveButton.Enabled = string.IsNullOrEmpty(textName.Text) == false + && string.IsNullOrEmpty(textHostname.Text) == false; + testButton.Enabled = string.IsNullOrEmpty(textHostname.Text) == false; + } + + private void CheckLoggingEnabled_CheckedChanged(object sender, EventArgs e) + { + EnableDisableLoggingControls(); + } + + private void EnableDisableLoggingControls() + { + textLogDirectoryPath.Enabled = checkLoggingEnabled.Checked; + comboLogLevel.Enabled = checkLoggingEnabled.Checked; + logDirectoryPathButton.Enabled = checkLoggingEnabled.Checked; + } + + private void CancelButton_Click(object sender, EventArgs e) + { + // Clear the builder so that the resulting int returned to the caller is 0. + Builder.Clear(); + Close(); + } + + // Remove the [X] close button in top right to force user to use the cancel button. + protected override CreateParams CreateParams + { + get + { + const int WS_SYSMENU = 0x80000; + CreateParams cp = base.CreateParams; + cp.Style &= ~WS_SYSMENU; + return cp; + } + } + } +} diff --git a/dsneditor/EsOdbcDsnEditor/DSNEditorForm.resx b/dsneditor/EsOdbcDsnEditor/DSNEditorForm.resx new file mode 100644 index 00000000..2a42dcab --- /dev/null +++ b/dsneditor/EsOdbcDsnEditor/DSNEditorForm.resx @@ -0,0 +1,3120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk12aAIAAAAAADYAAAAoAAAAqAIAADoAAAABACAAAAAAAAAAAAASCwAAEgsAAAAAAAAAAAAAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABIPjsAjIaEAMrH + xgDy8fEA////AP///wDp5+cAvbm4AHpzcQBCODUAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAgHl3AO3s7AD9/vsA6u3EANXaiwDM03IAzNJwANbbjADq7cQA/v79ANrZ2ABmXVsAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AKSfngD///8A4+exALjBOgCvuSAAr7kgAK+5IACvuSAAr7kgAK+5 + IAC7w0AA5+q9APn5+QB7dHIAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NACcl5UA/v78AM3TdACvuSAAr7kgAK+5 + IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAA1tuMAPv7+wB0bGoAlI6MAODe3gD+/f0A9/b2AMnG + xQBtZWMAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAaWFfAP79 + /QDR1n4Ar7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAA2t+YAP7+ + /gDq+fMAluDEAHbXsgCI3LwAzvHjAP79/QCLhYMAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NADQzs0A6+7IAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5 + IACvuSAAr7kgAK+5IACwuiMA/f35AG7VrQA8xpEAPMaRADzGkQA8xpEAn+PJAPz8/ABlXVoAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAYFhVAP///wDByVMAr7kgAK+5IACvuSAAr7kgAK+5 + IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IADv8dMAkN/AADzGkQA8xpEAPMaRADzG + kQA8xpEA0/LmALm1tABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NACalZQA9vfmAK+5 + IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAODk + qQC06dUAPMaRADzGkQA8xpEAPMaRADzGkQCN3r8A6OfmAEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0ALy4twDi5a4Ar7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5 + IACvuSAAr7kgAK+5IACvuSAA0teAANn06QA8xpEAPMaRADzGkQA8xpEAPMaRAHjYswDy8fEAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAzsvKANnelgCvuSAAr7kgAK+5IACvuSAAr7kgAK+5 + IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IADCylYA+v38AD7HkgA8xpEAPMaRADzG + kQA8xpEAj97AANjW1gBBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NADHxMMA2d6UAK+5 + IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgALO9 + LAD///8AXtCkAFHMnQB/2bcAr+jSAN317AD+//8A9PPzAJ6ZmABGPDoAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AMC8uwDi5a0Ar7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5 + IACvuSAAr7kgAK+5IACvuSAAr7kgAPX25ADw+/cA////APj17QDi1rIAy7V1ALSVOADFrWYA9vPoANbU + 0wBPRkMAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AGBYVQDY1dUA/vz4AP7++wDO1HcAr7kgAK+5IACvuSAAr7kgAK+5 + IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IAC6wz8A/v78AMy2eACwjy4AoHkEAKB4 + AwCgeAMAoHgDAKB4AwCqhh4A8OrYAM3KygBCODUAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABnX10A9fT0APXjtgDhrikA6sVmAP79 + +ADT2YUAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAOPn + sQDk2bgAoHgDAKB4AwCgeAMAoHgDAKB4AwCgeAMAoHgDAKB4AwCwjy0A/v37AIJ7eQBBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQASD88AOnn + 5wD04a8A3qcVAN6mEwDephMA6MFZAP789gDZ3pQAr7kgAK+5IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5 + IACvuSAAr7kgAK+5IAC8xEQA/v38ALSVOQCgeAMAoHgDAKB4AwCgeAMAoHgDAKB4AwCgeAMAoHgDAKB4 + AwDdz6YAz83MAEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NACWkI8A/fnuAOCsIgDephMA3qYTAN6mEwDephMA5rxNAP368QDe4qMAsLoiAK+5 + IACvuSAAr7kgAK+5IACvuSAAr7kgAK+5IACxuiQAzdR1APT14AD08OIAo30MAKB4AwCgeAMAoHgDAKB4 + AwCgeAMAoHgDAKB4AwCgeAMAoHgDAMGnWwD7+voARDo3AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0ANfV1ADx2ZsA3qYTAN6mEwDephMA3qYTAN6m + EwDephMA5bhCAPz47ADj5rAAsbokAK+5IACvuSAAr7kgAK+5IACyvCoA0tiCAPb35gDy/f8Aj+r/ANz5 + /wDq4ccAp4IWAKB4AwCgeAMAoHgDAKB4AwCgeAMAoHgDAKB4AwCgeAMAt5lBAP///wBPRkMAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQA+/r6AOrF + ZgDephMA3qYTAN6mEwDephMA3qYTAN6mEwDephMA47Q3APv15QDn6r0AsrsoAK+5IAC1vjEA19yQAPn6 + 7gDp+/8AfOf/ABTU/wAF0f8AGtX/AM72/wDw6tcAq4cgAKB4AwCgeAMAoHgDAKB4AwCgeAMAoHgDAKB4 + AwC7nkoA////AEg+OwBBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NAD///8A6MJcAN6mEwDephMA3qYTAN6mEwDephMA3qYTAN6mEwDephMA4rAuAPry + 3gDs7skA3OGeAPv89QDg+f8AbeT/AA3S/wAF0f8ABdH/AAXR/wAF0f8AEtP/ALzz/wD18OMAsI8uAKB4 + AwCgeAMAoHgDAKB4AwCgeAMAoHgDANG9hADj4uIAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0APDv7wDsy3YA3qYTAN6mEwDephMA3qYTAN6m + EwDephMA3qYTAN6mEwDephMA4a0mAP789wDX+P8AXuH/AAjS/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR + /wAF0f8ACtL/AKrv/wD59+8Atpg+AKB4AwCgeAMAoHgDAKB4AwCjfQwA9fHkAKKdmwBBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAw8C/APbm + uwDephMA3qYTAN6mEwDephMA3qYTAN6mEwDephMA3qYTAN6mEwDnvlIA+f7/AB/W/wAF0f8ABdH/AAXR + /wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AJLr/wD8+vYAvqJSAKB4AwCgeAMAoHgDANvM + oADu7e0ATkRCAEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NAB0bWsA///+AOa6SQDephMA3qYTAN6mEwDephMA3qYTAN6mEwDephMA3qYTAPbn + vgCk7v8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AHrm + /wD9/fwAxq1nAKeCFgDe0KgA+Pf3AG5nZQBBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NADBvr0A/PbmAOOyMwDephMA3qYTAN6m + EwDephMA3qYUAOS1OwDtzn0A/v/+ADHZ/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR + /wAF0f8ABdH/AAXR/wAF0f8ABdH/AGPi/wD7/v8A/Pr2ANrZ2ABjW1kAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEpA + PgDNysoA/fnwAOzMeADluUUA7c59APXjtQD9+e4A////APXv/QD3/v8AB9H/AAXR/wAF0f8ABdH/AAXR + /wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AJfs/wDPzcwAQjg1AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEQ6NwCXkpAA8O/vAP/+/wDu4/wA1Lf3ALqM8wCgYu4An2DuAP// + /wAr2P8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR + /wAF0f8Ae+f/ANjV1QBBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NADMyskAyaX1AJVP + 7ACVT+wAlU/sAJVP7ACVT+wA9vD9AFrh/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR + /wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wB/5/8A3NraAEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AOXk4wC8kfMAlU/sAJVP7ACVT+wAlU/sAJVP7ADiz/oAien/AAXR/wAF0f8ABdH/AAXR + /wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AJrs/wDOy8oAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQA2tnYAMml9QCVT+wAlU/sAJVP7ACVT+wAlU/sAM6u + 9gC48v8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR + /wAF0f8A2vj/AKmlowBBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NACsqKcA7uL8AJZQ + 7ACVT+wAlU/sAJVP7ACVT+wAuo3zAOb6/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR + /wAF0f8ABdH/AAXR/wAF0f8ABdH/ADXa/wD///8AcWlnAEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AFpSTwD5+fkA0rT3AJVP7ACVT+wAlU/sAJVP7ACpb/AA////ABzV/wAF0f8ABdH/AAXR + /wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8AuvL/AODe3gBCODUAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AIB6eAD7+/sA6dr7AMCW9AC1hfIAxJ30APDl + /AD///8Ap+//AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAF0f8ABdH/AGrk + /wD///8Adm9tAEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AGZd + WwDBvr0A9fT0AP7+/gDj4eEAm5aUAG5mZAD4+PgAm+3/AAjS/wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR + /wAF0f8ABdH/AAXR/wBj4v8A/P7/AKqmpABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AHJraQD39vYAyvX/ADvb + /wAF0f8ABdH/AAXR/wAF0f8ABdH/AAXR/wAk1/8Aqu//AP///wCyrq0AQzk2AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AGBXVQDV0tIA////AND2/wCM6v8Aa+T/AGrk/wCF6f8Aw/T/AP3//wDx8PAAiYOBAEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NAB0bWsAura1AObl5QD+/v4A////APPy + 8gDNysoAkYyKAEpAPgBBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3NABBNzQAQTc0AEE3 + NABBNzQAQTc0AEE3NAA= + + + + 17, 17 + + + 239, 17 + + + + AAABAAIAICAAAAEAIACoEAAAJgAAAEBAAAABACAAKEIAAM4QAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs74AALO+ + AACzvgAJs74ANbO+AHmzvgCxs74A2rO+APSzvgD/s74A/bO+AO6zvgDPs74AobO+AGOzvgAjs74ABLO+ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALO+ + AACzvgAIs74ARbO+AKKzvgDjs74A+7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A9rO+ + ANSzvgCFs74AKrO+AAGzvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALO+ + AACzvgAAs74AJbO+AJazvgDts74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP6zvgDZs74AbrO+AA+zvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACzvgAAs74AAbO+AEKzvgDJs74A/rO+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD3s74AobO+AB+zvgAAs74AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAs74AALO+AAGzvgBOs74A3bO+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD+s74AtrO+ACWzvgAAs74AAAAA + AAAAAAAAAAAAALO+AACzvgAAs74AQLO+AN2zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74ApLO+ + AAqzvgAAAAAAAAAAAAAAAAAAs74AALO+ACOzvgDGs74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AO+zvgBqs74AA7O+AAAAAAAAAAAAALO+AACzvgAGs74AkrO+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgDns74AZ7O+AAazvgAAAAAAAAAAAAAAAAAAs74AALO+AC+zvgDIs74A37O+AN2zvgDds74A3bO+ + AN2zvgDds74A3bO+AN2zvgDds74A3bO+AN2zvgDds74A3bO+AN2zvgDds74A3bO+AN2zvgDds74A3bO+ + AN6zvgDbs74As7O+AEmzvgADs74AAAAAAAAAAAAAAAAAAAAAAACzvgAAs74ACrO+ABqzvgAas74AGrO+ + ABqzvgAas74AGrO+ABqzvgAas74AGrO+ABqzvgAas74AGrO+ABqzvgAas74AGrO+ABqzvgAas74AGrO+ + ABqzvgAas74AGrO+ABmzvgANs74AALO+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEE3NABBNzQAQTc0PUE3 + NIFBNzSAQTc0f0E3NH9BNzR/QTc0f0E3NH9BNzR/QTc0f0E3NH9BNzR/QTc0f0E3NH9BNzR/QTc0f0E3 + NH9BNzSAQTc0gEE3NHpBNzRYQTc0HEE3NAFBNzQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQTc0AEE3 + NANBNzSZQTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NPhBNzTHQTc0Q0E3NABBNzQAAAAAAAAAAAAAAAAAAAAAAAAA + AABBNzQAQTc0EEE3NL5BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzTSQTc0KkE3NAAAAAAAAAAAAAAA + AAAAAAAAAAAAAEE3NABBNzQYQTc010E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzR8QTc0AEE3 + NAAAAAAAAAAAAAAAAAAAAAAAQTc0AEE3NBtBNzTiQTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NKlBNzQJQTc0AAAAAAAAAAAAAAAAAAAAAABBNzQAQTc0G0E3NOJBNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0qUE3NAlBNzQAAAAAAAAAAAAAAAAAAAAAAEE3NABBNzQYQTc010E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzR8QTc0AEE3NAAAAAAAAAAAAAAAAAAAAAAAQTc0AEE3NBBBNzS+QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc00kE3NCpBNzQAAAAAAAAAAAAAAAAAAAAAAAAAAABBNzQAQTc0A0E3 + NJlBNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0+EE3NMhBNzRDQTc0AEE3NAAAAAAAAAAAAAAAAAAAAAAAAAAAAEE3 + NABBNzQAQTc0PUE3NIFBNzSAQTc0f0E3NH9BNzR/QTc0f0E3NH9BNzR/QTc0f0E3NH9BNzR/QTc0f0E3 + NH9BNzR/QTc0f0E3NH9BNzSAQTc0gEE3NHpBNzRZQTc0HEE3NAFBNzQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnR/QAJ0f0KCdH9GgnR/RoJ0f0aCdH9GgnR/RoJ0f0aCdH9GgnR + /RoJ0f0aCdH9GgnR/RoJ0f0aCdH9GgnR/RoJ0f0aCdH9GgnR/RoJ0f0aCdH9GgnR/RoJ0f0aCdH9GQnR + /Q0J0f0ACdH9AAAAAAAAAAAAAAAAAAAAAAAAAAAACdH9AAnR/S8J0f3ICdH93wnR/d0J0f3dCdH93QnR + /d0J0f3dCdH93QnR/d0J0f3dCdH93QnR/d0J0f3dCdH93QnR/d0J0f3dCdH93QnR/d0J0f3dCdH93QnR + /d4J0f3bCdH9swnR/UkJ0f0DCdH9AAAAAAAAAAAAAAAAAAAAAAAJ0f0ACdH9BgnR/ZIJ0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH95wnR/WcJ0f0GCdH9AAAAAAAAAAAAAAAAAAAAAAAJ0f0ACdH9IwnR + /cYJ0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH97wnR/WoJ0f0DCdH9AAAAAAAAAAAAAAAAAAnR + /QAJ0f0ACdH9QAnR/d0J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9pAnR/QoJ0f0AAAAAAAAA + AAAAAAAAAAAAAAnR/QAJ0f0BCdH9TgnR/d0J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/gnR/bYJ0f0lCdH9AAnR + /QAAAAAAAAAAAAAAAAAAAAAAAAAAAAnR/QAJ0f0BCdH9QgnR/ckJ0f3+CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/fcJ0f2hCdH9HwnR + /QAJ0f0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnR/QAJ0f0ACdH9JQnR/ZYJ0f3tCdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f4J0f3ZCdH9bgnR + /Q8J0f0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ0f0ACdH9CAnR + /UUJ0f2iCdH94wnR/fsJ0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/fYJ0f3UCdH9hQnR + /SoJ0f0BCdH9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAJ0f0ACdH9AAnR/QkJ0f01CdH9eQnR/bEJ0f3aCdH99AnR/f8J0f39CdH97gnR/c8J0f2hCdH9YwnR + /SMJ0f0ECdH9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/gAH//gAAf/wAAD/wAAAf4AAAD+AAAAfAA + AAHgAAAD4AAAB+AAAB//////wAAAf4AAAH+AAAA/gAAAP4AAAB+AAAAfgAAAP4AAAD+AAAB/wAAAf/// + ///gAAAf4AAAB+AAAAPwAAAB+AAAAfgAAAP8AAAH/wAAD/+AAB//4AB/KAAAAEAAAACAAAAAAQAgAAAA + AAAAQAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALO+AAOzvgA0s74AarO+AJmzvgC/s74A27O+APGzvgD/s74A/7O+AP+zvgD6s74A5rO+ + AMyzvgCos74Ae7O+AEizvgAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACzvgAJs74AVrO+AKyzvgDus74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/LO+AMWzvgB1s74AHwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP// + /wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALO+ACizvgCSs74A8rO+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP6zvgC6s74ATLO+AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP// + /wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs74AKLO+AKizvgD+s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgDVs74AULO+AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzvgANs74Ai7O+APuzvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgDBs74AKwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzvgA/s74A4LO+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+APqzvgB/s74AAwAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP// + /wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALO+ + AAGzvgCAs74A/rO+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AMGzvgAZAAAAAAAAAAAAAAAAAAAAAP// + /wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALO+AAqzvgCys74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A5LO+ + ADIAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALO+ABOzvgDIs74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgDys74AQgAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP// + /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALO+AA+zvgDSs74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+APazvgBCAAAAAP///wD///8A////AP// + /wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALO+AAqzvgDJs74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A9rO+ + ADb///8A////AP///wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALO+ + AAGzvgCps74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgDW////AP///wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACzvgB5s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD3s74APP///wD///8A////AP///wD///8A////AP// + /wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAACzvgA2s74A+7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD6s74ATgAAAAD///8A////AP// + /wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAACzvgAHs74A2LO+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD2s74ASgAA + AAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAs74AfbO+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgDos74ANwAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAA + AAAAAAAAs74AGbO+APezvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+AP+zvgD/s74A/7O+ + AP+zvgD/s74A/7O+AP+zvgDGs74AGwAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP// + /wD///8A////AAAAAAAAAAAAAAAAALO+AIqzvgDws74A8LO+APCzvgDws74A8LO+APCzvgDws74A8LO+ + APCzvgDws74A8LO+APCzvgDws74A8LO+APCzvgDws74A8LO+APCzvgDws74A8LO+APCzvgDws74A8LO+ + APCzvgDws74A8LO+APCzvgDws74A8LO+APCzvgDws74A8LO+APCzvgDws74A8LO+APCzvgDws74A8LO+ + APCzvgDws74A8LO+APCzvgDws74A57O+ALizvgBds74AAgAAAAAAAAAAAAAAAAAAAAAAAAAA////AP// + /wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP// + /wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AAAAAABBNzTkQTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/kE3NOhBNzTGQTc0e0E3NB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP// + /wBBNzQkQTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT6QTc0h0E3 + NAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP// + /wD///8A////AP///wD///8AQTc0XkE3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzS9QTc0CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8A////AP///wD///8A////AP///wD///8A////AEE3NI1BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NK0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wBBNzS2QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0WAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP// + /wD///8AQTc01EE3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NNMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP// + /wD///8A////AP///wD///8A////AEE3NOxBNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0JgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wBBNzT9QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NGMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8AQTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzR8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP// + /wD///8A////AEE3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP// + /wD///8A////AP///wD///8A////AP///wBBNzT9QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NGMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8AQTc07EE3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzQnAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AEE3 + NNRBNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzTTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP// + /wD///8A////AP///wBBNzS2QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wD///8A////AP///wD///8A////AP///wD///8AQTc0jUE3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0rQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AEE3NF5BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0vUE3NAoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP// + /wBBNzQkQTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT6QTc0iEE3 + NAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP// + /wD///8A////AP///wD///8AAAAAAEE3NORBNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3 + NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT/QTc0/0E3NP9BNzT+QTc06EE3 + NMZBNzR8QTc0HgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8A////AP///wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP// + /wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP// + /wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAA + AAAAAAAACdH9iQnR/fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR + /fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR + /fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR/fAJ0f3wCdH98AnR + /fAJ0f3nCdH9uAnR/V0J0f0CAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP// + /wD///8A////AAAAAAAAAAAAAAAAAAnR/RkJ0f33CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9xgnR/RsAAAAAAAAAAAAAAAAAAAAA////AP// + /wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAACdH9fQnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3oCdH9NwAA + AAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAnR + /QcJ0f3YCdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/fYJ0f1KAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AAAA + AAAAAAAAAAAAAAAAAAAAAAAACdH9NgnR/fsJ0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9+gnR/U4AAAAA////AP///wD///8A////AP// + /wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ0f14CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f33CdH9PP// + /wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdH9AQnR + /akJ0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/db///8A////AP///wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAJ0f0KCdH9yQnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/fYJ0f02////AP///wD///8A////AP///wD///8A////AP// + /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnR/Q8J0f3RCdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/fYJ0f1CAAAAAP///wD///8A////AP// + /wD///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdH9EwnR + /cgJ0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/fIJ0f1CAAAAAAAA + AAD///8A////AP///wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAJ0f0KCdH9sgnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /eQJ0f0yAAAAAAAAAAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnR/QEJ0f2ACdH9/gnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/cEJ0f0ZAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP// + /wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnR + /T8J0f3gCdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9+gnR/X8J0f0DAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP// + /wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAACdH9DQnR/YsJ0f37CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9wQnR/SsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////AP///wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdH9KAnR/agJ0f3+CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3VCdH9UAnR/QEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wD///8A////AP///wD///8A////AP///wD///8AAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAACdH9KAnR/ZIJ0f3yCdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/gnR/boJ0f1MCdH9AQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP// + /wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdH9CQnR/VYJ0f2sCdH97gnR/f8J0f3/CdH9/wnR + /f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/f8J0f3/CdH9/wnR/fwJ0f3FCdH9dQnR + /R8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AP// + /wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnR + /QMJ0f00CdH9agnR/ZkJ0f2/CdH92wnR/fEJ0f3/CdH9/wnR/f8J0f36CdH95gnR/cwJ0f2oCdH9ewnR + /UgJ0f0PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wD///8A////AP///wD////gAA///////wAAAf/////8AAAAP/////AAAAAP//// + wAAAAAf///+AAAAAAf///gAAAAAA///8AAAAAAB///gAAAAAAD//8AAAAAAAH//gAAAAAAAP/8AAAAAA + AA//wAAAAAAAD/+AAAAAAAAf/wAAAAAAAD//AAAAAAAAf/4AAAAAAAD//gAAAAAAAf////////////// + ////////////////////////////////////////+AAAAAAB///wAAAAAAB///AAAAAAAD//8AAAAAAA + P//wAAAAAAAf//AAAAAAAB//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AA + AAAAAA//8AAAAAAAH//wAAAAAAAf//AAAAAAAD//8AAAAAAAP//wAAAAAAB///gAAAAAAf////////// + //////////////////////////////////////////////4AAAAAAAH//gAAAAAAAP//AAAAAAAAf/8A + AAAAAAA//4AAAAAAAB//wAAAAAAAD//AAAAAAAAP/+AAAAAAAA//8AAAAAAAH//4AAAAAAA///wAAAAA + AH///gAAAAAA////gAAAAAH////AAAAAB/////AAAAAP/////AAAAD//////AAAB///////gAA///w== + + + \ No newline at end of file diff --git a/dsneditor/EsOdbcDsnEditor/DsnEditorFactory.cs b/dsneditor/EsOdbcDsnEditor/DsnEditorFactory.cs new file mode 100644 index 00000000..90eb44d5 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditor/DsnEditorFactory.cs @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +using System.Windows.Forms; +using System; + +// uncomment to have the assembly loading to ask for (various) resources; various solutions: +// https://stackoverflow.com/questions/4368201/appdomain-currentdomain-assemblyresolve-asking-for-a-appname-resources-assembl +// [assembly: NeutralResourcesLanguageAttribute("en-GB", UltimateResourceFallbackLocation.MainAssembly)] + +namespace EsOdbcDsnEditor +{ + public static class DsnEditorFactory + { + public static int DsnEditor( + bool onConnect, + string dsnIn, + DriverCallbackDelegate delegConnectionTest, + DriverCallbackDelegate delegSaveDsn) + { + Application.EnableVisualStyles(); + DsnEditorForm form = new DsnEditorForm(onConnect, dsnIn, delegConnectionTest, delegSaveDsn); + // instead of Application.Run(form): prevent STA apps from launching a new editor within the same thread + form.ShowDialog(); + var dsn = form.Builder.ToString(); + return dsn.Length; + } + } +} diff --git a/dsneditor/EsOdbcDsnEditor/EsOdbcDsnEditor.csproj b/dsneditor/EsOdbcDsnEditor/EsOdbcDsnEditor.csproj new file mode 100644 index 00000000..32fd350f --- /dev/null +++ b/dsneditor/EsOdbcDsnEditor/EsOdbcDsnEditor.csproj @@ -0,0 +1,99 @@ + + + + + Debug + AnyCPU + {FAC0512C-E595-4BF4-ACB7-617611DF5715} + Library + EsOdbcDsnEditor + esdsnedt + v4.0 + 512 + true + + + + AnyCPU + true + full + false + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + TRACE + prompt + 4 + + + + + + true + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + + + $(Configuration)\$(Platform)\ + $(Configuration)\$(Platform)\ + TRACE + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + + + false + + + + + + + + + + + Form + + + DSNEditorForm.cs + + + + + True + True + Resources.resx + + + DSNEditorForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + \ No newline at end of file diff --git a/dsneditor/EsOdbcDsnEditor/ExtensionMethods.cs b/dsneditor/EsOdbcDsnEditor/ExtensionMethods.cs new file mode 100644 index 00000000..ce4c1190 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditor/ExtensionMethods.cs @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +// uncomment to have the assembly loading to ask for (various) resources; various solutions: +// https://stackoverflow.com/questions/4368201/appdomain-currentdomain-assemblyresolve-asking-for-a-appname-resources-assembl +// [assembly: NeutralResourcesLanguageAttribute("en-GB", UltimateResourceFallbackLocation.MainAssembly)] + +namespace EsOdbcDsnEditor +{ + public static class ExtensionMethods + { + public static string StripBraces(this string input) + { + if (input.StartsWith("{") && input.EndsWith("}")) + { + return input.Substring(1, input.Length - 2); + } + + return input; + } + } +} diff --git a/dsneditor/EsOdbcDsnEditor/ODBC.ico b/dsneditor/EsOdbcDsnEditor/ODBC.ico new file mode 100644 index 00000000..a3c48809 Binary files /dev/null and b/dsneditor/EsOdbcDsnEditor/ODBC.ico differ diff --git a/dsneditor/EsOdbcDsnEditor/Properties/AssemblyInfo.cs b/dsneditor/EsOdbcDsnEditor/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..5bd7a64f --- /dev/null +++ b/dsneditor/EsOdbcDsnEditor/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Elasticsearch DSN Editor")] +[assembly: AssemblyDescription("Elasticsearch DSN Editor for managing ODBC connection strings.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Elasticsearch B.V.")] +[assembly: AssemblyProduct("Elasticsearch ODBC Driver")] +[assembly: AssemblyCopyright("Copyright Elasticsearch B.V. ©")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("fac0512c-e595-4bf4-acb7-617611df5715")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.2")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/dsneditor/EsOdbcDsnEditor/Properties/Resources.Designer.cs b/dsneditor/EsOdbcDsnEditor/Properties/Resources.Designer.cs new file mode 100644 index 00000000..3c3f83dc --- /dev/null +++ b/dsneditor/EsOdbcDsnEditor/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace EsOdbcDsnEditor.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EsOdbcDsnEditor.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/dsneditor/EsOdbcDsnEditor/Properties/Resources.resx b/dsneditor/EsOdbcDsnEditor/Properties/Resources.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditor/Properties/Resources.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/dsneditor/EsOdbcDsnEditor/header.bmp b/dsneditor/EsOdbcDsnEditor/header.bmp new file mode 100644 index 00000000..e4e15c28 Binary files /dev/null and b/dsneditor/EsOdbcDsnEditor/header.bmp differ diff --git a/dsneditor/EsOdbcDsnEditorLauncher/EsOdbcDsnEditorLauncher.csproj b/dsneditor/EsOdbcDsnEditorLauncher/EsOdbcDsnEditorLauncher.csproj new file mode 100644 index 00000000..ea18a2d3 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/EsOdbcDsnEditorLauncher.csproj @@ -0,0 +1,79 @@ + + + + + Debug + AnyCPU + {71BEBFF7-652E-4B26-9EC3-CAEF947D368C} + WinExe + EsOdbcDsnEditorLauncher + EsOdbcDsnEditorLauncher + v4.0 + 512 + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + Form + + + Launcher.cs + + + + + Launcher.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {fac0512c-e595-4bf4-acb7-617611df5715} + EsOdbcDsnEditor + + + + \ No newline at end of file diff --git a/dsneditor/EsOdbcDsnEditorLauncher/Launcher.Designer.cs b/dsneditor/EsOdbcDsnEditorLauncher/Launcher.Designer.cs new file mode 100644 index 00000000..f359a7db --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/Launcher.Designer.cs @@ -0,0 +1,79 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +namespace EsOdbcDsnEditorLauncher +{ + partial class Launcher + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.LaunchButton = new System.Windows.Forms.Button(); + this.textLog = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // LaunchButton + // + this.LaunchButton.Location = new System.Drawing.Point(12, 12); + this.LaunchButton.Name = "LaunchButton"; + this.LaunchButton.Size = new System.Drawing.Size(619, 52); + this.LaunchButton.TabIndex = 0; + this.LaunchButton.Text = "Launch"; + this.LaunchButton.UseVisualStyleBackColor = true; + this.LaunchButton.Click += new System.EventHandler(this.LaunchButton_Click); + // + // textLog + // + this.textLog.Location = new System.Drawing.Point(12, 70); + this.textLog.Multiline = true; + this.textLog.Name = "textLog"; + this.textLog.Size = new System.Drawing.Size(619, 409); + this.textLog.TabIndex = 1; + // + // Launcher + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(643, 491); + this.Controls.Add(this.textLog); + this.Controls.Add(this.LaunchButton); + this.Name = "Launcher"; + this.Text = "DSN Launcher"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button LaunchButton; + private System.Windows.Forms.TextBox textLog; + } +} + diff --git a/dsneditor/EsOdbcDsnEditorLauncher/Launcher.cs b/dsneditor/EsOdbcDsnEditorLauncher/Launcher.cs new file mode 100644 index 00000000..4bacfb02 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/Launcher.cs @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +using System; +using System.Threading; +using System.Windows.Forms; + +namespace EsOdbcDsnEditorLauncher +{ + public partial class Launcher : Form + { + public Launcher() + { + InitializeComponent(); + } + + private void LaunchButton_Click(object sender, EventArgs e) + { + bool onConnect = false; + string dsn = "driver={Elasticsearch Driver};Database=localhost;hostname=localhost;uid=elastic;pwd=pass!word1;secure=4"; + var form = new EsOdbcDsnEditor.DsnEditorForm(onConnect, dsn, ConnectTest, SaveDsn); + form.Show(); + } + + private int ConnectTest(string connectionString, ref string errorMessage, uint flags) + { + Thread.Sleep(5000); // Simulate a slow connection test + textLog.Text += "CONNECT. Connection String:" + connectionString + Environment.NewLine; + return 0; + } + + private int SaveDsn(string connectionString, ref string errorMessage, uint flags) + { + textLog.Text += "SAVE. Connection String:" + connectionString + Environment.NewLine; + //errorMessage = "ESODBC_DSN_EXISTS_ERROR"; + //return -1; + return 0; + } + } +} diff --git a/dsneditor/EsOdbcDsnEditorLauncher/Launcher.resx b/dsneditor/EsOdbcDsnEditorLauncher/Launcher.resx new file mode 100644 index 00000000..7080a7d1 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/Launcher.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/dsneditor/EsOdbcDsnEditorLauncher/Program.cs b/dsneditor/EsOdbcDsnEditorLauncher/Program.cs new file mode 100644 index 00000000..3f9b6f76 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/Program.cs @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +using System; +using System.Windows.Forms; + +namespace EsOdbcDsnEditorLauncher +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Launcher()); + } + } +} diff --git a/dsneditor/EsOdbcDsnEditorLauncher/Properties/AssemblyInfo.cs b/dsneditor/EsOdbcDsnEditorLauncher/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..62de8362 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Elasticsearch DSN Editor Launcher")] +[assembly: AssemblyDescription("Elasticsearch DSN Editor Launcher.")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Elasticsearch B.V.")] +[assembly: AssemblyProduct("Elasticsearch ODBC Driver")] +[assembly: AssemblyCopyright("Copyright Elasticsearch B.V. ©")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("71bebff7-652e-4b26-9ec3-caef947d368c")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/dsneditor/EsOdbcDsnEditorLauncher/Properties/Resources.Designer.cs b/dsneditor/EsOdbcDsnEditorLauncher/Properties/Resources.Designer.cs new file mode 100644 index 00000000..e2ff9e97 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace EsOdbcDsnEditorLauncher.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EsOdbcDsnEditorLauncher.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/dsneditor/EsOdbcDsnEditorLauncher/Properties/Resources.resx b/dsneditor/EsOdbcDsnEditorLauncher/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/dsneditor/EsOdbcDsnEditorLauncher/Properties/Settings.Designer.cs b/dsneditor/EsOdbcDsnEditorLauncher/Properties/Settings.Designer.cs new file mode 100644 index 00000000..bf4ecf9d --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace EsOdbcDsnEditorLauncher.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.3.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/dsneditor/EsOdbcDsnEditorLauncher/Properties/Settings.settings b/dsneditor/EsOdbcDsnEditorLauncher/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/dsneditor/EsOdbcDsnEditorLauncher/app.config b/dsneditor/EsOdbcDsnEditorLauncher/app.config new file mode 100644 index 00000000..fcd0c937 --- /dev/null +++ b/dsneditor/EsOdbcDsnEditorLauncher/app.config @@ -0,0 +1,3 @@ + + + diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f0c0a3a8..ee4268fc 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -54,7 +54,7 @@ include_directories(${CMAKE_SOURCE_DIR}/test ${GTEST_INC_PATH}) # find all test case source files file(GLOB TEST_CASES LIST_DIRECTORIES false RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} test_*.cc) -message("Test cases: ${TEST_CASES}") +message("Driver test cases: ${TEST_CASES}") set(EXTRA_SRC connected_dbc.cc) @@ -67,6 +67,9 @@ if (${LIBCURL_LINK_MODE} MATCHES dll) ${LIBCURL_LD_PATH}/libcurl${CMAKE_SHARED_LIBRARY_SUFFIX} SRC_PATH_CURL_DLL) endif (${LIBCURL_LINK_MODE} MATCHES dll) +file(TO_NATIVE_PATH + ${DSNBND_LIB_BIN_DIR_BASE}-$/*${CMAKE_SHARED_LIBRARY_SUFFIX} + SRC_PATH_DSNBND_DLL) file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR}/test/${CMAKE_CFG_INTDIR}/ DST_PATH_DLL) @@ -86,15 +89,21 @@ file(TO_NATIVE_PATH ${GTEST_LD_PATH}/gtest_maind${CMAKE_STATIC_LIBRARY_SUFFIX} add_custom_target(install_shared # dir's otherwise created only later on test target execution COMMAND if not exist ${DST_PATH_DLL} mkdir ${DST_PATH_DLL} - COMMAND xcopy /E /Y ${SRC_PATH_ESODBC_DLL} ${DST_PATH_DLL} - COMMAND if exist ${SRC_PATH_CURL_DLL} xcopy /E /Y ${SRC_PATH_CURL_DLL} ${DST_PATH_DLL} + COMMAND xcopy /E/Y/F ${SRC_PATH_ESODBC_DLL} ${DST_PATH_DLL} + COMMAND if exist ${SRC_PATH_CURL_DLL} + xcopy /E/Y/F ${SRC_PATH_CURL_DLL} ${DST_PATH_DLL} + COMMAND xcopy /E/Y/F ${SRC_PATH_DSNBND_DLL} ${DST_PATH_DLL} # gtest->gtestd hack # if googletest just built (i.e. not OS'es) AND the -d version exists COMMAND if exist ${GTEST_NATIVE_PREFIX} if exist ${GTEST_LIBD} - cd ${GTEST_LD_PATH} && copy gtestd${CMAKE_STATIC_LIBRARY_SUFFIX} gtest${CMAKE_STATIC_LIBRARY_SUFFIX} + cd ${GTEST_LD_PATH} && + copy /Y gtestd${CMAKE_STATIC_LIBRARY_SUFFIX} + gtest${CMAKE_STATIC_LIBRARY_SUFFIX} # (same checks as above) COMMAND if exist ${GTEST_NATIVE_PREFIX} if exist ${GTEST_MAIND} - cd ${GTEST_LD_PATH} && copy gtest_maind${CMAKE_STATIC_LIBRARY_SUFFIX} gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX} + cd ${GTEST_LD_PATH} && + copy /Y gtest_maind${CMAKE_STATIC_LIBRARY_SUFFIX} + gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX} ) foreach (TSRC ${TEST_CASES}) diff --git a/test/test_dsn.cc b/test/test_dsn.cc new file mode 100644 index 00000000..f9903b0a --- /dev/null +++ b/test/test_dsn.cc @@ -0,0 +1,139 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +extern "C" { +#include "dsn.h" +} // extern C + +#include + + +namespace test { + +class Dsn : public ::testing::Test { +}; + +TEST_F(Dsn, parse_write_00_list) { +#undef SRC_STR +#define SRC_STR \ + "Driver={Elasticsearch Driver}\0" \ + "Description={Some description}\0" \ + "DSN=Data_Source_Name\0" \ + "PWD=password\0" \ + "UID=user_id\0" \ + "SAVEFILE=C:\\Temp\\Data_Source_Name.dsn\0" \ + "FILEDSN=C:\\Temp\\Data_Source_Name.dsn\0" \ + "Server=::1\0" \ + "Port=9200\0" \ + "Secure=4\0" \ + "CAPath=C:\\Temp\\Data_Source_Name.pem\0" \ + "Timeout=1000\0" \ + "Follow=1\0" \ + "Catalog=\0" \ + "Packing=JSON\0" \ + "MaxFetchSize=10000\0" \ + "MaxBodySizeMB=100\0" \ + "TraceFile=C:\\Temp\\Data_Source_Name.log\0" \ + "TraceLevel=DEBUG\0" \ + "\0" + + + esodbc_dsn_attrs_st attrs; + SQLWCHAR *src = MK_WPTR(SRC_STR); + SQLWCHAR dst[2 * sizeof(attrs.buff)/sizeof(*attrs.buff)]; + long written; + + init_dsn_attrs(&attrs); + ASSERT_TRUE(parse_00_list(&attrs, src)); + written = write_00_list(&attrs, dst, sizeof(dst)/sizeof(*dst)); + ASSERT_TRUE(0 < written); + + ASSERT_TRUE(memcmp(src, dst, written) == 0); +} + + +TEST_F(Dsn, parse_write_connection_string) { +#undef SRC_STR +#define SRC_STR \ + "Driver={Elasticsearch Driver};" \ + "Description={Some description};" \ + "DSN=Data_Source_Name;" \ + "PWD=password;" \ + "UID=user_id;" \ + "SAVEFILE=C:\\Temp\\Data_Source_Name.dsn;" \ + "FILEDSN=C:\\Temp\\Data_Source_Name.dsn;" \ + "Server=::1;" \ + "Port=9200;" \ + "Secure=4;" \ + "CAPath=C:\\Temp\\Data_Source_Name.pem;" \ + "Timeout=;" \ + "Follow=;" \ + "Catalog=;" \ + "Packing=JSON;" \ + "MaxFetchSize=10000;" \ + "MaxBodySizeMB=100;" \ + "TraceFile=C:\\Temp\\Data_Source_Name.log;" \ + "TraceLevel=DEBUG;" + + + esodbc_dsn_attrs_st attrs; + wstr_st src = WSTR_INIT(SRC_STR); + SQLWCHAR dst[2 * sizeof(attrs.buff)/sizeof(*attrs.buff)]; + long written; + + init_dsn_attrs(&attrs); + ASSERT_TRUE(parse_connection_string(&attrs, src.str, + (SQLSMALLINT)src.cnt)); + written = write_connection_string(&attrs, dst, + (SQLSMALLINT)sizeof(dst)/sizeof(*dst)); + ASSERT_TRUE(0 < written); + + ASSERT_TRUE(memcmp(src.str, dst, written) == 0); +} + +TEST_F(Dsn, write_connection_string_null_str_out) { +#undef SRC_STR +#define SRC_STR \ + "Driver={Elasticsearch Driver};" \ + "Description={Some description};" \ + "DSN=Data_Source_Name;" \ + "PWD=password;" \ + "UID=user_id;" \ + "SAVEFILE=C:\\Temp\\Data_Source_Name.dsn;" \ + "FILEDSN=C:\\Temp\\Data_Source_Name.dsn;" \ + "Server=::1;" \ + "Port=9200;" \ + "Secure=4;" \ + "CAPath=C:\\Temp\\Data_Source_Name.pem;" \ + "Timeout=;" \ + "Follow=;" \ + "Catalog=;" \ + "Packing=JSON;" \ + "MaxFetchSize=10000;" \ + "MaxBodySizeMB=100;" \ + "TraceFile=C:\\Temp\\Data_Source_Name.log;" \ + "TraceLevel=DEBUG;" + + + esodbc_dsn_attrs_st attrs; + wstr_st src = WSTR_INIT(SRC_STR); + SQLWCHAR dst[2 * sizeof(attrs.buff)/sizeof(*attrs.buff)]; + long written, counted; + + init_dsn_attrs(&attrs); + ASSERT_TRUE(parse_connection_string(&attrs, src.str, + (SQLSMALLINT)src.cnt)); + written = write_connection_string(&attrs, dst, + (SQLSMALLINT)sizeof(dst)/sizeof(*dst)); + ASSERT_TRUE(0 < written); + counted = write_connection_string(&attrs, NULL, 0); + ASSERT_EQ(written, counted); +} + + +} // test namespace + +/* vim: set noet fenc=utf-8 ff=dos sts=0 sw=4 ts=4 : */