<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/76739>76739</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            mlir build linkage error from linux to windows
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            mlir
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          trcrsired
      </td>
    </tr>
</table>

<pre>
    ```
[2/737] Linking CXX executable bin/mlir-tblgen.exe
FAILED: bin/mlir-tblgen.exe
: && /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/bin/x86_64-w64-mingw32-g++ --sysroot=/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32 -Wno-array-bounds -Wno-cast-function-type -Wno-uninitialized -Wno-cast-function-type -Wa,-mbig-obj -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -ffunction-sections -fdata-sections  -O2 -DNDEBUG -fno-pie -Wl,--stack,16777216 -Wl,--gc-sections tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/AttrOrTypeDefGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/AttrOrTypeFormatGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/BytecodeDialectGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/DialectGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/DirectiveCommonGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/EnumsGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/EnumPythonBindingGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/FormatGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/LLVMIRConversionGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/LLVMIRIntrinsicGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/mlir-tblgen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/OpClass.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/OpDefinitionsGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/OpDocGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/OpFormatGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/OpGenHelpers.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/OpInterfacesGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/OpPythonBindingGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/PassCAPIGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/PassDocGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/PassGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/RewriterGen.cpp.obj tools/mlir/tools/mlir-tblgen/CMakeFiles/mlir-tblgen.dir/SPIRVUtilsGen.cpp.obj -o bin/mlir-tblgen.exe -Wl,--out-implib,lib/libmlir-tblgen.dll.a -Wl,--major-image-version,0,--minor-image-version,0 lib/libLLVMCodeGenTypes.dll.a  lib/libMLIRTblgenLib.a lib/libLLVMTableGen.dll.a  lib/libLLVMSupport.dll.a lib/libLLVMDemangle.dll.a  lib/libMLIRTableGen.a  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && :
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Class.cpp.obj):Class.cpp:(.text$_ZNK4mlir6tblgen6Method11writeDeclToERNS_20raw_indented_ostreamE+0x219): undefined reference to `llvm::raw_ostream::write_escaped(llvm::StringRef, bool)'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Predicate.cpp.obj):Predicate.cpp:(.text$_ZL20propagateGroundTruthPN12_GLOBAL__N_18PredNodeERKN4llvm15SmallPtrSetImplIPN4mlir6tblgen4PredEEESA_+0x3b): undefined reference to `llvm::SmallPtrSetImplBase::FindBucketFor(void const*) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Predicate.cpp.obj):Predicate.cpp:(.text$_ZL20propagateGroundTruthPN12_GLOBAL__N_18PredNodeERKN4llvm15SmallPtrSetImplIPN4mlir6tblgen4PredEEESA_+0x6a): undefined reference to `llvm::SmallPtrSetImplBase::FindBucketFor(void const*) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Predicate.cpp.obj):Predicate.cpp:(.text$_ZL20propagateGroundTruthPN12_GLOBAL__N_18PredNodeERKN4llvm15SmallPtrSetImplIPN4mlir6tblgen4PredEEESA_+0x233): undefined reference to `llvm::SmallPtrSetImplBase::FindBucketFor(void const*) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Predicate.cpp.obj):Predicate.cpp:(.text$_ZL20propagateGroundTruthPN12_GLOBAL__N_18PredNodeERKN4llvm15SmallPtrSetImplIPN4mlir6tblgen4PredEEESA_+0x278): undefined reference to `llvm::SmallPtrSetImplBase::FindBucketFor(void const*) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Constraint.cpp.obj):Constraint.cpp:(.text$_ZN4mlir6tblgen10ConstraintC2EPKN4llvm6RecordE+0x610): undefined reference to `llvm::operator<<(llvm::raw_ostream&, llvm::Record const&)'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Constraint.cpp.obj):Constraint.cpp:(.text$_ZN4llvm12hash_combineIJN4mlir6tblgen4PredENS_9StringRefEEEENS_9hash_codeEDpRKT_[_ZN4llvm12hash_combineIJN4mlir6tblgen4PredENS_9StringRefEEEENS_9hash_codeEDpRKT_]+0x93): undefined reference to `llvm::hash_value(llvm::StringRef)'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(GenInfo.cpp.obj):GenInfo.cpp:(.text$_ZN4mlir15GenRegistrationC2EN4llvm9StringRefES2_RKSt8functionIFbRKNS1_12RecordKeeperERNS1_11raw_ostreamEEE+0x156): undefined reference to `llvm::ManagedStaticBase::RegisterManagedStatic(void* (*)(), void (*)(void*)) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(GenInfo.cpp.obj):GenInfo.cpp:(.text$_ZN4mlir13GenNameParserC2ERN4llvm2cl6OptionE+0x216): undefined reference to `llvm::ManagedStaticBase::RegisterManagedStatic(void* (*)(), void (*)(void*)) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Operator.cpp.obj):Operator.cpp:(.text$_ZNSt17_Function_handlerIFvPN4llvm8ListInitEEZN4mlir6tblgen8Operator19populateOpStructureEvEUlS2_E_E9_M_invokeERKSt9_Any_dataOS2_+0x396): undefined reference to `llvm::SmallPtrSetImplBase::FindBucketFor(void const*) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Operator.cpp.obj):Operator.cpp:(.text$_ZN4mlir6tblgen8Operator19populateOpStructureEv+0xbb1): undefined reference to `llvm::RecordRecTy::isSubClassOf(llvm::Record*) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Operator.cpp.obj):Operator.cpp:(.text$_ZN4mlir6tblgen8Operator19populateOpStructureEv+0xbc4): undefined reference to `llvm::RecordRecTy::isSubClassOf(llvm::Record*) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(AttrOrTypeDef.cpp.obj):AttrOrTypeDef.cpp:(.text$_ZNK4mlir6tblgen19AttrOrTypeParameter10getCppTypeEv.part.0+0x109): undefined reference to `llvm::report_fatal_error(llvm::Twine const&, bool)'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(CodeGenHelpers.cpp.obj):CodeGenHelpers.cpp:(.text$_ZN4mlir6tblgen29StaticVerifierFunctionEmitterC2ERN4llvm11raw_ostreamERKNS2_12RecordKeeperE+0x7b): undefined reference to `llvm::sys::path::filename(llvm::StringRef, llvm::sys::path::Style)'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(CodeGenHelpers.cpp.obj):CodeGenHelpers.cpp:(.text$_ZN4mlir6tblgen12escapeStringB5cxx11EN4llvm9StringRefE+0xb8): undefined reference to `llvm::raw_ostream::write_escaped(llvm::StringRef, bool)'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Pattern.cpp.obj):Pattern.cpp:(.text$_ZN4mlir6tblgen13SymbolInfoMap16getValuePackNameEN4llvm9StringRefEPi+0x3d): undefined reference to `llvm::StringRef::rfind(llvm::StringRef) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Pattern.cpp.obj):Pattern.cpp:(.text$_ZN4mlir6tblgen13SymbolInfoMap16getValuePackNameEN4llvm9StringRefEPi+0x91): undefined reference to `llvm::consumeSignedInteger(llvm::StringRef&, unsigned int, long long&)'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Pattern.cpp.obj):Pattern.cpp:(.text$_ZNK4mlir6tblgen7Pattern10getBenefitEv+0xa7): undefined reference to `llvm::PrintFatalError(llvm::Record const*, llvm::Twine const&)'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Pattern.cpp.obj):Pattern.cpp:(.text$_ZNK4mlir6tblgen7Pattern11getLocationEv+0x152): undefined reference to `llvm::SourceMgr::getLineAndColumn(llvm::SMLoc, unsigned int) const'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Pattern.cpp.obj):Pattern.cpp:(.text$_ZNK4mlir6tblgen7Pattern14getConstraintsEv+0x5a3): undefined reference to `llvm::PrintFatalError(llvm::Record const*, llvm::Twine const&)'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Pattern.cpp.obj):Pattern.cpp:(.text$_ZN4mlir6tblgen7Pattern19collectBoundSymbolsENS0_7DagNodeERNS0_13SymbolInfoMapEb+0x45f): undefined reference to `llvm::PrintFatalError(llvm::Record const*, llvm::Twine const&)'
/home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-w64-mingw32/lib/gcc/x86_64-w64-mingw32/14.0.0/../../../../x86_64-w64-mingw32/bin/ld: lib/libMLIRTableGen.a(Pattern.cpp.obj):Pattern.cpp:(.text$_ZN4mlir6tblgen7Pattern19collectBoundSymbolsENS0_7DagNodeERNS0_13SymbolInfoMapEb+0x7a1): undefined reference to `llvm::PrintFatalError(llvm::Record const*, llvm::Twine const&)'
collect2: error: ld returned 1 exit status
```


```cmake
cmake_minimum_required(VERSION 3.15)

set(CMAKE_BUILD_TYPE Release)
set(CMAKE_HOST_SYSTEM_NAME "Windows")
set(TOOLCHAIN_TRIPLE x86_64-w64-mingw32)
set(LLVM_HOST_TRIPLE x86_64-windows-gnu)
set(LLVM_DEFAULT_TARGET_TRIPLE ${LLVM_HOST_TRIPLE})

execute_process(
  COMMAND which ${TOOLCHAIN_TRIPLE}-gcc
  OUTPUT_VARIABLE BINUTILS_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)

get_filename_component(TOOLCHAIN_BIN ${BINUTILS_PATH} DIRECTORY)

execute_process(
  COMMAND which clang
  OUTPUT_VARIABLE CLANGBIN_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)
get_filename_component(LLVM_NATIVE_TOOL_DIR_PATH ${CLANGBIN_PATH} DIRECTORY)

set(LLVM_NATIVE_TOOL_DIR ${LLVM_NATIVE_TOOL_DIR_PATH})


set(TOOLCHAIN_COMMON_FLAGS "-Wno-array-bounds -Wno-cast-function-type -Wno-uninitialized -Wno-cast-function-type")
set(CMAKE_C_FLAGS ${TOOLCHAIN_COMMON_FLAGS})
set(CMAKE_CXX_FLAGS ${TOOLCHAIN_COMMON_FLAGS})

set(CMAKE_C_COMPILER ${TOOLCHAIN_TRIPLE}-gcc)
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_TRIPLE}-g++)
set(CMAKE_AR ${TOOLCHAIN_TRIPLE}-ar)
set(CMAKE_RANLIB ${TOOLCHAIN_TRIPLE}-ranlib)

set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT})
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

set(ZLIB_LIBRARY ${CMAKE_SYSROOT}/${TOOLCHAIN_TRIPLE}/lib/libzlibstatic.a)
set(ZLIB_INCLUDE_DIR ${CMAKE_SYSROOT}/${TOOLCHAIN_TRIPLE}/include)

unset(linux)
unset(unix)
unset(Linux)
unset(Unix)
set(MINGW 1)
set(WIN32 1)

set(LLVM_ENABLE_PROJECTS "clang;lld;clang-tools-extra;lldb;mlir")

set(HAVE_CXX_FLAG_WTHREAD_SAFETY Off)
set(HAVE_STEADY_CLOCK Off)

set(BENCHMARK_ENABLE_TESTING Off)

set(LLVM_OPTIMIZED_TABLEGEN On)
set(LLVM_INCLUDE_BENCHMARKS Off)
set(LLVM_ENABLE_PIC Off)
set(LLVM_ENABLE_ASSERTIONS Off)
set(LLVM_ENABLE_UNWIND_TABLES Off)
set(LLVM_INCLUDE_EXAMPLES Off)
set(LLVM_ENABLE_BACKTRACES Off)
set(LLVM_INCLUDE_TESTS Off)

set(BUILD_SHARED_LIBS On)

set(LLVM_ENABLE_RUNTIMES "")

execute_process(
  COMMAND which llvm-tblgen
 OUTPUT_VARIABLE LLVM_TABLEGEN_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(LLVM_TABLEGEN ${LLVM_TABLEGEN_PATH})

execute_process(
  COMMAND which clang-tblgen
  OUTPUT_VARIABLE CLANG_TABLEGEN_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(CLANG_TABLEGEN ${CLANG_TABLEGEN_PATH})

set(CLANG_TBLGEN ${CLANG_TABLEGEN})

execute_process(
  COMMAND which clang-pseudo-gen
  OUTPUT_VARIABLE CLANG_PSEUDO_GEN_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(CLANG_PSEUDO_GEN ${CLANG_PSEUDO_GEN_PATH})

execute_process(
  COMMAND which llvm-profgen
  OUTPUT_VARIABLE LLVM_PROFGEN_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(LLVM_PROFGEN ${LLVM_PROFGEN_PATH})

execute_process(
  COMMAND which lldb-tblgen
  OUTPUT_VARIABLE LLDB_TBLGEN_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(LLDB_TABLEGEN_EXE ${LLDB_TBLGEN_PATH})

execute_process(
  COMMAND which mlir-tblgen
  OUTPUT_VARIABLE MLIR_TBLGEN_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(MLIR_TABLEGEN ${MLIR_TBLGEN_PATH})

execute_process(
  COMMAND which clang-ast-dump
  OUTPUT_VARIABLE CLANG_AST_DUMP_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(CLANG_AST_DUMP ${CLANG_AST_DUMP_PATH})

execute_process(
  COMMAND which clang-tidy-confusable-chars-gen
  OUTPUT_VARIABLE CLANG_TIDY_CONFUSABLE_CHARS_GEN_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(CLANG_TIDY_CONFUSABLE_CHARS_GEN ${CLANG_TIDY_CONFUSABLE_CHARS_GEN_PATH})
set(clang_tidy_confusable_chars_gen ${CLANG_TIDY_CONFUSABLE_CHARS_GEN})

execute_process(
  COMMAND which mlir-linalg-ods-yaml-gen
  OUTPUT_VARIABLE MLIR_LINALG_ODS_YAML_GEN_EXE_PATH
 OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(MLIR_LINALG_ODS_YAML_GEN_EXE ${MLIR_LINALG_ODS_YAML_GEN_EXE_PATH})

set(HAVE_CXX_ATOMICS64_WITHOUT_LIB On)
set(HAVE_CXX_ATOMICS_WITHOUT_LIB On)
set(LLDB_INCLUDE_TESTS Off)
set(CMAKE_CROSSCOMPILING On)
set(LLVM_HOST_EXECUTABLE_SUFFIX "")
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsXN9zojz3_2vYG4aOoNV60QtUbHmL4ADd7r43TIQj5tmQ8ITQbZ-__jsBtOKvfdy173em05kdq8n5mc85yTlRFhUFTinArXI9Uq4nX1ApVozfCh7zAnNIvixY8nqr9DvNv85E6ZjK9chQjOmgO1CuJ6qD6Q9MU3X87ZsKLxCXAi0IqAtMFWOaEcw1sSAp0Ct4gZp_atqONVG65ikiOa0YfcXoq4oxXbEMFGMa__2TCyi5YkwFYyReIUwLxZi-3PSjfk_LY41gWr5oKS3fRn_2e1qGafqzK62uVe5PaalijBRjpGpa8VpwxoTSnVxOs6o9UaYhztGrtmAlTYp6JEaF0JYljQVmVBOvOdTjJcUUC4wI_geSE6RIMcZatsCpxhZ_qdoTcM640p0kSIAmcAaqtqRMI3gJ8pOWFBUXIZL2RXC0VlcWkGg54igDAVzVnn5yLEArBMc0lcZW6v8uEak5MlwUmKbaEgNJtDdjeaFqOSSIChzXlITRtHpRtSec5QTHWGhLRIhYcVamq0Yeel3AIbcpo7QkjdaYoKLQMshQHEPRrCGHpKRSo5ax52b9cigKnOF_pIlvo5TBSwy5WK9eAgQESBXaM-aiRERLBJPeF2WaQiE09gyc46Thj1mWARWbFSCAEqkB0wSoQBIYuVICJRt_ijLPGRfSm-UGvAKqv4WqLRMk0NtnVfMMVZu4E2v0eFdDl2OpnEictUKg-IdijPX-YDAw9P5mIo3fZMj4LJq0asK1aGeZYkzHM_QDppjAztRVUjGZQnCPh685TGB5B_QqzvMrGWGXFT5lPEPi0vJHrwJilsAEIwLxxcW_m1guEXyGMcsyRi8t3qJlVryH0PmrWDE6wlRmwqUVvE-AOM7Xme2PGX0GXuDLr3Ut36Zy7yxwfGnx2yOXlOvlY7m9XljmBJbVns7oxcPPyyfs4qvr5e8TdF5-B_QeSA780ktsUwF8iWJ4hxV-1_Seo6IYm3P7PeS-Q2hIsZeW6UNVaPFLyw3mtv_1UWDSslhjh2vuTSHBSqFVRdpCMcbV65TgRUs8IVdoQ5-hvxjXcIZS0JrdVDHGnXoO00Nz6kas3CfHLIE7oLIaKBrZbwQzx_bDSq2DF1eozRnKPuNuY1F7MqjLrmauNTWBDNGUwGFta6FIVTXyAzgFIqt3UhbAqzdpgqu_PzEtcsaIqpFiBaSmYgTWf1EpasYSJ6pGYpYlJK1GUPKMcilk3d90zabnuWSjU7uVxvExAr131bnqKMb06mr_5UTvRBLZmx1ZNcW4aR0iijFUuuZmSLpq3FwJeBGK0Yv-6z70ZGz169jqz0CsWKLrVUpMICYhs3w3iIwORz-jusqGJGKF4IAySzFGnRdDH9ZK1JIm8qyBROWwBA40BlUwVel3CHnOpOquKeU07PVApSqCIkY5JIpx80YaVK2PD0vFGKsLxohUYww-ElRzDgmOkYA2XK3hXcgco5NzlqMUCbjjspUNeSlWc1c3ojvHG5lOFLmRXsl2WQKW_-D25Krq10GGCJkLHoCws5zYc3cb_Z7ksCwrMKMK2O7iDFx3RI9QAfXEFNNkVMY_QEwZV4ybZ4YTNWa0EIphKsZw_f4T1_8Vrn30ietHxNXodj-B_ZDADm4-gf3dYkj6xBGmYqciao3vlUXbcOidN-KxYc0bFPs-xIwndRHU1ztnQMRy4EgwrnTH8t920bNdH8nqdKy-zdUK1zD1P1459LtgVUllrFCximKWLTAF-z8HMsoNouGmqLQsqxpouBKwJrn_EEbK9ejyIidVkAzP2Z8rIc-IlHCsKP5o6N8BtemStaHfGjycpPr1HVAfUiwjRGBGx4ZVw7cFTGBE_kMgbtZfANjThf_gBnqkG3VSPQDkwGWvo0e6vpWEllUnuH7dPwO8GaIohSQQSOD4bQeuzQTemm52YsUwVcW4qbfi6s1QZn-1SW-PN7TVh4-5Zf9mHHTvgLoogzniBfCxYfl1GBgx6Xu5RH3dr34i-T9C0mvOuTaU26N7WAZCH0TTJk2jFaIJAW5Pn-c1mDcOLoRNsbCs9iG90aUPc5aXBAnw8kDwMhYlB-vZeiSBEVmRNYxmEabP7IesxwIxjEz6GiVIIC8wmr53eE6AfJZbf4j4OShW-CwW-hn41Pu7D3H4Wg_gIigX1YWYt2wdrTXlJzh_Bk7c-wTnd8BpfePfRmhv6vQtrj58Y5ivf1Cid1IQ4zyXg9bzVY64kF7IyqZz1v0t5IyLaIkEIlH9Y5dtmMKfmMJWh_JRL26bb012vk5cdyu7cyfTyhjW1cNX4HiJga8PPyvDQmwXMu26VNavxm79WgE6OOfetngt6jc5Eqv63RIToCg72ndst6QH2APxSuAT8VMXCkb9dUe9pqPr-OVF1_eblno_Pefq5_PLldadHpL5Q3du9N4GT2PUDV6zBSOy6ZihXO-nIL7KbnyO4h-yzdjHa47r8jE5p3rcwFADuMT0KE4f89z7f0JpeE4NKde9zCDAKYXEpgJS4MdQqg69klY_601UTEW1YTKaVi8f8trubAhb5cqgoawqlBFQWGLRFJNocAZIc46pmMq6xNorS9o3p2b7DNutWT7hOQiPnoJwWFzdsTX46NfGOXsdK3kMs5TXH6U4TMGkyZiRMqPthJo5LN7PpM8t8ARAPVnhb27Kiwaja3TOrfNnEr3HMbWBaBgzQiAWI1bSpD66CssNOtFggtL6O0L5aedYsxYVkr3r5SeSHwLJATqn-ngHJBvjDWlC88SKqRJphCi5tEZX4QULtRBIlEWD_s5DSNuv66k4Qz-a54eqt1GGKc7KLOLwd4l51YN8tfzA9ly1e6VfS5u25BQgZKc1Mx-saPRoO5Mo_D63VB8IoAI2xNtk914QRsH3ILRmkWvOLFUxjCdME_azUAxjhyX0PGd8b9puFPr23LHUQ2HU4nCcr7Naxw5HraIO8H2OiTU1H50wCk3_ztrwKkZPGYx2RSqDyc4y1E9xQZRzFkNRKMZNPa6qY282M92J-nOF41Ujb9cpZTDRZFo1LN5jOH8Mo6-mb5sjx1JHtvsY2k4Qzc3wviFqaAIpIAp903Zs9y56urdDK5ibY2ud_i0rUxDR-qogilmWMwq0vcoj222MbGsdTNSJ7Vvj0PO__6bvMUE0Pebj2DHdu5Ht_oGPR72r4HPN0P5qRdLTaGL7lZ7G07buE55uhcuOuO1AOaRpP2IOB7lcMc-Npo55F8i8eI9H4PaTrM7L8UZtO0a3bdr2o8X77duZ3If0j73Z3HYs_xdpcsgAM5jtsu9KPWX7v9FcP-x4WPspRsQP8vim69ijE3wc0epIPLpgU9udRL7nha1grqaC74GcOOZymzOaeRMrcuyRb_rfVc91vv9rJtsdO48Tq820zfpfxx5tRB-zcHp0ETZVB8GLfwheFNW96xXaMbDS0tiylY5nasI0JmUCO36UtNZRlUebufVoSfH-oHOQ9HGbtB6a2e7dk6rvjD7ZbtfYGt3bfCxX7pnR3Pf-Y43DaqOoN9fuiMhaalR90qqHILTqkdV6ZqF0R_UDEsZB4ffm17dUjp7Ce98yJ1FgTq3wu-otlzt2VuRBaJmT79HY8cYPLZptypHlju9npv-wNj20gtB2744yVG5689Ce2f-1JlEome4sV_XoobN7jfxGTXDA2tbK2eNfUJhBYPmh7bm_EvXoPsm8qCw8Srs20PpmzuYn6BqZI3P8EPrm-NcC5ToGx5e9KsiCe9O3JjIJg-31O6bcf3RDe2ZVUbUfKP_2sJcl7frBm9ZpvjnxK51rYP_g2N_yYBMmW6dxW8NvF25NRm07dLiGuZxLbXHbtcqvnGrxj5xj3H-6GnkBZcK0X67IPLAeJ150uTV5E9jya1fPb7tXBW_O2fKEa1VwzX1verHobYRtB29L_h-4kyx-EbqOMxk1oXIBZ6SsdYRa3966qB0dv-3Q9lN9RxyaObZ_KYdqWe083JP_h7kkq_SkzPLTmWQGYTR5nM0vlEdrca0sauv40w0TJ69azOiyLNCCgBavEC9-vWOEtiwpPHf6GFRn0vje9IMLbiBH5bf3ydNW7NXWlcuRdDl6czmqXI5SoP9O9h9mBcEUkVRjSaG9ooycWuoqhB3bNZ27yJsE0Xdz5kRNyl4mZ44I306hk_qPHGybMtUMvZk9Dvq96MkO773HUBY5-zXiLv1p6mqbOl5ftTpH3wuCunWsitmDxWl1b2R9s8aP1RYSBY_Tqf1tr7pa38d9SW67ybA7RF_gVh90eobe14e9L6tb1Bvo_f6ye42uB9DVex29hxYwWPaGRmex6PS_4FujY_Q6esfQB0ZX71wZoMedbqd3bSAjXvZ0pdeBDGFyJc-3K8bTL7goSrgd9Afd4ReCFkCK6n81Mox1l3A9-cJvq-NwUaaF0usQXIjiTYDAgsCtpFYXJSaJSjD9gVKoryjVJWeZWjVOqmBqcwP3peTkdiVEXv0ORbZk0xSLVbm4ilkmWz3yvP4jD-G_IBayOZOmFooxraz9vwAAAP__CqnbZA">