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

    <tr>
        <th>Summary</th>
        <td>
            14.0.3 `libcxx`, `libcxxabi`: circular build dependencies
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Trying to build unpatched `libcxx` it fails because it requires being built in a monorepo layout with libcxxabi:
</details>

```console
+ /usr/bin/cmake -B x86_64-redhat-linux-gnu -D BUILD_SHARED_LIBS=ON -D CMAKE_AR=/usr/bin/gcc-ar -D CMAKE_BUILD_TYPE=RelWithDebInfo -D CMAKE_C_FLAGS_RELEASE=-DNDEBUG -D CMAKE_CXX_FLAGS_RELEASE=-DNDEBUG -D CMAKE_Fortran_FLAGS_RELEASE=-DNDEBUG -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_NM=/usr/bin/gcc-nm -D CMAKE_RANLIB=/usr/bin/gcc-ranlib -D CMAKE_VERBOSE_MAKEFILE=ON -D INCLUDE_INSTALL_DIR=/usr/include -D LIB_INSTALL_DIR=/usr/lib64 -D LIB_SUFFIX=64 -D SHARE_INSTALL_PREFIX=/usr/share -D SYSCONF_INSTALL_DIR=/etc -S . -D CXX_ENABLE_RTTI=ON -D LIBCXXABI_USE_LLVM_UNWINDER=OFF -D LIBCXX_CXX_ABI_INCLUDE_PATHS=/usr/include -D LIBCXX_CXX_ABI=libcxxabi -D LIBCXX_ENABLE_ABI_LINKER_SCRIPT=ON -D LIBCXX_ENABLE_ASSERTIONS=OFF -D LIBCXX_ENABLE_DEBUG_MODE_SUPPORT=OFF -D LIBCXX_ENABLE_EXCEPTIONS=ON -D LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF -D LIBCXX_ENABLE_SHARED=ON -D LIBCXX_ENABLE_STATIC_ABI_LIBRARY=OFF -D LIBCXX_ENABLE_STATIC=OFF -D LIBCXX_ENABLE_STDIN=ON -D LIBCXX_ENABLE_STDOUT=ON -D LIBCXX_ENABLE_THREADS=ON -D LIBCXX_ENABLE_WERROR=OFF -D LIBCXX_INCLUDE_TESTS=OFF -D LIBCXX_INSTALL_HEADERS=ON -D LIBCXX_INSTALL_LIBRARY=ON -D LIBCXX_INSTALL_SHARED_LIBRARY=ON -D LIBCXX_STANDALONE_BUILD=ON -D LIBCXX_USE_COMPILER_RT=OFF -D LLVM_EXTERNAL_LIT=/usr/bin/lit -D PYTHON_EXECUTABLE=/usr/bin/python3 -D PYTHONINTERP_FOUND=ON -D LIBCXX_LIBDIR_SUFFIX=64
CMake Error at CMakeLists.txt:5 (message):
  libc++ now requires being built in a monorepo layout with libcxxabi
  available


-- Configuring incomplete, errors occurred!
```
</details>

I found fedora patch
```patch
>From fc46c464795f965c4cdbc321058f24191af8e40c Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
Date: Tue, 11 Aug 2020 07:55:18 -0700
Subject: [PATCH] [PATCH][libcxx] Remove monorepo requirement

---
 libcxx/CMakeLists.txt | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt
index 9bf1a02..5348a15 100644
--- a/libcxx/CMakeLists.txt
+++ b/libcxx/CMakeLists.txt
@@ -1,10 +1,3 @@
-# See https://libcxx.llvm.org/docs/BuildingLibcxx.html for instructions on how
-# to build libcxx with CMake.
-
-if (NOT IS_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/../libcxxabi")
-  message(FATAL_ERROR "libc++ now requires being built in a monorepo layout with libcxxabi available")
-endif()
-
 #===============================================================================
 # Setup Project
 #===============================================================================
@@ -39,8 +32,6 @@
 include(GNUInstallDirs)

 if (LIBCXX_STANDALONE_BUILD)
-  # Find the LLVM sources and simulate LLVM CMake options.
-  include(HandleOutOfTreeLLVM)

   find_package(Python3 COMPONENTS Interpreter)
   if(NOT Python3_Interpreter_FOUND)
--
1.8.3.1
```
However it did not helped and looks like on building `libcxx` and `libcxxabi` usign non-nomo repo tar balls `libcxx` cmake passes without installed `libcxxabi` devel resources
<details>

```console
+ /usr/bin/cmake -B x86_64-redhat-linux-gnu -D BUILD_SHARED_LIBS=ON -D CMAKE_AR=/usr/bin/gcc-ar -D CMAKE_BUILD_TYPE=RelWithDebInfo -D CMAKE_C_FLAGS_RELEASE=-DNDEBUG -D CMAKE_CXX_FLAGS_RELEASE=-DNDEBUG -D CMAKE_Fortran_FLAGS_RELEASE=-DNDEBUG -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_NM=/usr/bin/gcc-nm -D CMAKE_RANLIB=/usr/bin/gcc-ranlib -D CMAKE_VERBOSE_MAKEFILE=ON -D INCLUDE_INSTALL_DIR=/usr/include -D LIB_INSTALL_DIR=/usr/lib64 -D LIB_SUFFIX=64 -D SHARE_INSTALL_PREFIX=/usr/share -D SYSCONF_INSTALL_DIR=/etc -S . -D CXX_ENABLE_RTTI=ON -D LIBCXXABI_USE_LLVM_UNWINDER=OFF -D LIBCXX_CXX_ABI_INCLUDE_PATHS=/usr/include -D LIBCXX_CXX_ABI=libcxxabi -D LIBCXX_ENABLE_ABI_LINKER_SCRIPT=ON -D LIBCXX_ENABLE_ASSERTIONS=OFF -D LIBCXX_ENABLE_DEBUG_MODE_SUPPORT=OFF -D LIBCXX_ENABLE_EXCEPTIONS=ON -D LIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF -D LIBCXX_ENABLE_SHARED=ON -D LIBCXX_ENABLE_STATIC_ABI_LIBRARY=OFF -D LIBCXX_ENABLE_STATIC=OFF -D LIBCXX_ENABLE_STDIN=ON -D LIBCXX_ENABLE_STDOUT=ON -D LIBCXX_ENABLE_THREADS=ON -D LIBCXX_ENABLE_WERROR=OFF -D LIBCXX_INCLUDE_TESTS=OFF -D LIBCXX_INSTALL_HEADERS=ON -D LIBCXX_INSTALL_LIBRARY=ON -D LIBCXX_INSTALL_SHARED_LIBRARY=ON -D LIBCXX_STANDALONE_BUILD=ON -D LIBCXX_USE_COMPILER_RT=OFF -D LLVM_EXTERNAL_LIT=/usr/bin/lit -D PYTHON_EXECUTABLE=/usr/bin/python3 -D PYTHONINTERP_FOUND=ON -D LIBCXX_LIBDIR_SUFFIX=64
CMake Warning at CMakeLists.txt:24 (message):
  The Standalone build is deprecated in this release.  Please use one of the
  ways described at https://libcxx.llvm.org/BuildingLibcxx.html for building
  libc++.


-- The CXX compiler identification is GNU 12.1.1
-- The C compiler identification is GNU 12.1.1
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Could NOT find FFI (missing: FFI_LIBRARIES HAVE_FFI_CALL)
-- Could NOT find Terminfo (missing: Terminfo_LIBRARIES Terminfo_LINKABLE)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)
-- Found Python3: /usr/bin/python3.8 (found version "3.8.13") found components: Interpreter
-- Performing Test LIBCXX_SUPPORTS_UNWINDLIB_NONE_FLAG
-- Performing Test LIBCXX_SUPPORTS_UNWINDLIB_NONE_FLAG - Failed
-- Looking for fopen in c
-- Looking for fopen in c - found
-- Looking for __gcc_personality_v0 in gcc_s
-- Looking for __gcc_personality_v0 in gcc_s - found
-- Performing Test LIBCXX_SUPPORTS_NOSTDLIBXX_FLAG
-- Performing Test LIBCXX_SUPPORTS_NOSTDLIBXX_FLAG - Failed
-- Performing Test LIBCXX_SUPPORTS_NODEFAULTLIBS_FLAG
-- Performing Test LIBCXX_SUPPORTS_NODEFAULTLIBS_FLAG - Success
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Looking for ccos in m
-- Looking for ccos in m - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Looking for __atomic_fetch_add_8 in atomic
-- Looking for __atomic_fetch_add_8 in atomic - found
-- Looking for cxxabi.h in /usr/include
-- Looking for cxxabi.h in /usr/include - not found
CMake Warning at cmake/Modules/HandleLibCXXABI.cmake:77 (message):
  Failed to find cxxabi.h in /usr/include
Call Stack (most recent call first):
  cmake/Modules/HandleLibCXXABI.cmake:118 (setup_abi_lib)
  CMakeLists.txt:511 (include)


-- Looking for __cxxabi_config.h in /usr/include
-- Looking for __cxxabi_config.h in /usr/include - not found
CMake Warning at cmake/Modules/HandleLibCXXABI.cmake:77 (message):
  Failed to find __cxxabi_config.h in /usr/include
Call Stack (most recent call first):
  cmake/Modules/HandleLibCXXABI.cmake:118 (setup_abi_lib)
  CMakeLists.txt:511 (include)


-- Performing Test LIBCXX_SUPPORTS_FALIGNED_ALLOCATION_FLAG
-- Performing Test LIBCXX_SUPPORTS_FALIGNED_ALLOCATION_FLAG - Failed
-- Performing Test LIBCXX_SUPPORTS_NOSTDINCXX_FLAG
-- Performing Test LIBCXX_SUPPORTS_NOSTDINCXX_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG
-- Performing Test LIBCXX_SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WALL_FLAG
-- Performing Test LIBCXX_SUPPORTS_WALL_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WEXTRA_FLAG
-- Performing Test LIBCXX_SUPPORTS_WEXTRA_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_W_FLAG
-- Performing Test LIBCXX_SUPPORTS_W_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WWRITE_STRINGS_FLAG
-- Performing Test LIBCXX_SUPPORTS_WWRITE_STRINGS_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WNO_UNUSED_PARAMETER_FLAG
-- Performing Test LIBCXX_SUPPORTS_WNO_UNUSED_PARAMETER_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WNO_LONG_LONG_FLAG
-- Performing Test LIBCXX_SUPPORTS_WNO_LONG_LONG_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WERROR_EQ_RETURN_TYPE_FLAG
-- Performing Test LIBCXX_SUPPORTS_WERROR_EQ_RETURN_TYPE_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WEXTRA_SEMI_FLAG
-- Performing Test LIBCXX_SUPPORTS_WEXTRA_SEMI_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WUNDEF_FLAG
-- Performing Test LIBCXX_SUPPORTS_WUNDEF_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WFORMAT_NONLITERAL_FLAG
-- Performing Test LIBCXX_SUPPORTS_WFORMAT_NONLITERAL_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WNO_LITERAL_SUFFIX_FLAG
-- Performing Test LIBCXX_SUPPORTS_WNO_LITERAL_SUFFIX_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WNO_CXX14_COMPAT_FLAG
-- Performing Test LIBCXX_SUPPORTS_WNO_CXX14_COMPAT_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WNO_NOEXCEPT_TYPE_FLAG
-- Performing Test LIBCXX_SUPPORTS_WNO_NOEXCEPT_TYPE_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WNO_SUGGEST_OVERRIDE_FLAG
-- Performing Test LIBCXX_SUPPORTS_WNO_SUGGEST_OVERRIDE_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_WNO_ERROR_FLAG
-- Performing Test LIBCXX_SUPPORTS_WNO_ERROR_FLAG - Success
-- Performing Test LIBCXX_SUPPORTS_EHSC_FLAG
-- Performing Test LIBCXX_SUPPORTS_EHSC_FLAG - Failed
-- Performing Test LIBCXX_SUPPORTS_ZL_FLAG
-- Performing Test LIBCXX_SUPPORTS_ZL_FLAG - Failed
-- Performing Test LIBCXX_SUPPORTS_NODEFAULTLIB_FLAG
-- Performing Test LIBCXX_SUPPORTS_NODEFAULTLIB_FLAG - Failed
CMake Warning at benchmarks/CMakeLists.txt:7 (message):
  The libc++ benchmarks are not available in a standalone build.  Please
  migrate to an official build as documented in
  https://libcxx.llvm.org/BuildingLibcxx.html.


-- Configuring done
-- Generating done
```
</details>

However after that build fails on
<details>

```console
[ 92%] Building CXX object src/CMakeFiles/cxx_shared.dir/exception.cpp.o
cd /home/tkloczko/rpmbuild/BUILD/libcxx-14.0.3.src/x86_64-redhat-linux-gnu/src && /usr/bin/g++ -DNDEBUG -D_LIBCPP_BUILDING_LIBRARY -D_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -I/home/tkloczko/rpmbuild/BUILD/libcxx-14.0.3.src/x86_64-redhat-linux-gnu/include/c++build -I/home/tkloczko/rpmbuild/BUILD/libcxx-14.0.3.src/src -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -flto=auto -flto-partition=none -DNDEBUG -fPIC -DLIBCXX_BUILDING_LIBCXXABI -nostdinc++ -fvisibility-inlines-hidden -Wall -Wextra -W -Wwrite-strings -Wno-unused-parameter -Wno-long-long -Werror=return-type -Wextra-semi -Wundef -Wformat-nonliteral -Wno-literal-suffix -Wno-c++14-compat -Wno-noexcept-type -Wno-suggest-override -Wno-error -I/home/tkloczko/rpmbuild/BUILD/libcxx-14.0.3.src/x86_64-redhat-linux-gnu/include/c++/v1 -std=c++20 -MD -MT src/CMakeFiles/cxx_shared.dir/exception.cpp.o -MF CMakeFiles/cxx_shared.dir/exception.cpp.o.d -o CMakeFiles/cxx_shared.dir/exception.cpp.o -c /home/tkloczko/rpmbuild/BUILD/libcxx-14.0.3.src/src/exception.cpp
/home/tkloczko/rpmbuild/BUILD/libcxx-14.0.3.src/src/exception.cpp:14:12: fatal error: cxxabi.h: No such file or directory
   14 |   #include <cxxabi.h>
      |            ^~~~~~~~~~
compilation terminated.
```
</details>

On building `libcxxabi` cmake requires `-D LIBCXXABI_LIBCXX_INCLUDES` so in that case that requires to have installed `libcxx` devel resources.
In other words there is circular dependency between those two when 

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWllz6jq2_jXkRWUKDGR4yAMBk7gOMbRtdpLz4jK2DL4xFtdDhv71_S3ZmDkJnL63q-vsXWwH5DVKa5Q0Ff7nrZ18hvGMZYJN8zDyWR4v3cybc5_VLhtROPU-PvCFhRkL3DBK2ZR7bp5yGkj4_-ZhwmmMSBB-xsKYuWwhYpHwpWCR-ynyjL2H2ZwVxNxpWGt1a41-rdGttXo1deDzjCjXWlo5WjwvG8XHE3EqIl6OqncMKHma4DkNYzy9hfvKmXLHPq4vncu2knB_7mZKFMb5hzKLc6b02d1EH_Yd66Fran1nqN9ZtVZ_ZNCb3mP3D83pmhjYoTvzPMVN1jAFDftlrAHW5NETdOrzqR4HYg3UcwbD7r3lmNpQ61oEqfSNvnY3ud-AeX7-AdRAJFnixj-A1A3L7g6HztjUBvpzpcgawHg8rF28WMOYXQPzchgOYmDt1rC_NPNuZGkO_RjoQ62aTN3oDSf9tUR9fWtew9iLcp8TJHgdgwKry_YKxpoMCp2KIbmCxxTGM527iaRvvVi9kTHY58EzjykWq0ttsBCa0b0bQn3b1is1wBivune6M4GWw-GvR2diPOmYdyIyGgzWQHIxCXKl-rhrP1jHld5AAVDlERtvS4GI5lA3_tBMx-qZ-tjeka6CsyzNtPWRYe2JVkJIa3EeRxDOmozHI9M-Bqk997RxResAM-15rJn6o2ZgTsmNzK75coxY4WxHCGFRbL1XKvk1GQl5_G1fN47y6I8mx6bNfjC1bv-Ynk-aaY7213q1xrZm2fvTvTK1BxDWzD3Sq9cb-h56vY5Rh6AAY_S7w5FRhqPd92SvvdHjGE5pOlsLTUasPduaacils_c9PUJEB-T4xX4YGYDVehObZmMfcvmZzUXcWkPrBgiPncFoYuyJhD9wvk1HLiJ575HCtpYkImFuxuTPYZhmaT37yJAhOojz1wuepu6M19SbKmcwmUeQBygVxOL9_CxUknPfkH3caZVhNp6KwnoiDsJZnhBpuLJYLCOeQaAe4yR6yoTn5QlyTk1t7iSu73OczgKRxz4LuC8Sl8nEu0NkY2yQiAULvPYlPu2rm05wc9nx2p4_9Vpqs9G5DtR286bpBte83fDYo4iZxZesecUaDcxe-WBqo9Fc08MYs0HWyngUuQmSfquXpcWPWrtR5NK6R4Cl5H0X6hNWLmeh2WTdfAaqaoM1rmjdOng0r5nSuGqUU2Dl0__hHi0qq3XuECF7D7VOf_M7vpalBsZNvhBvfL165QIveJxtL45SLmGJqg62jYjVrnrshimrfyV0kwVhxJk3d-MZLRvB-ByrGqLQgM0pZG0bfPwwCEBkBvdwi_R0kNn0-LuCThj7_IPdTIOm21Dr9U6rfe02O6zZaFy225VKX_GoSqDS-r9liRXEhylNaNlswKHu6FuLFeMlz5ragqFwNs-yZUpupg4quvUoelvURTIjExYepmdwR1UivGFYAMyzRQQrTuAcaZbknpxFBtubi_cNBlV5WdAtXFGKXF9BFX_CgPzeGNlMtyhraz17ZL5gTK2p7drVXVlCTUwTWQjBxbJlbr-iGFWvV4KTfxNKuZIKY1UouR50KX3JEE90_03hZCOObDLmMewHTNcjpRliViiy_n0-ldqwtixfsnEiZFT4O0_HykFbN_DLa3LQFmynd7nloawsIWFF98ZEh5-5UdQPk3QnULHCd46VChu-QIuAwtRn2ZzL0oClIk88GL2LwTRc5BGifPGmyNNiKR27XpFYy_QAnIiP8mwU2AnnhLQrGEPIjX1n6XqvhQuOywqCahVIaNgW0-OMJ8sEyTWp0IEonYfCQYnibMCVBUelWOlazfp1vVU_nI0fxDt_4wl1r37ow-EzNufREt0uaR4J8ZrCpUnhuAhYFAO2GmGCqwYozGAsT8NZDGKxEosFJSwEiQy94xQLlW6jF93q0k1TzDZFEIokYbGmfJ-yD2kjECzXpyopfvfMv3vm1u-e-XfP_Ltn_tv1zE9uElNaOtQ1q-2jbbONXG9lSF9uJGJeluNhihSDbOoh3_tU5mZzDCVoh9yU1xkbyy-MNnwJSQRUMqwovrufhJ56STilDJp920Mcax5WqXa_xa8f7MpJF0wUo34czRzyuY_uMAxC6IE6hdRCqcSaar25KgRWWCfi9FFooKnBdG_xgxditgLxUzimMB8TuN5WmHPvVar-LpLXXTTZKe_klLJFUVj6Gi5RsHzNmQXczfJkVTF8C7Yr3wb0z5Q-S-UvFfa8r5X9karfKtoTOdyACkwqURkcTjpQmKZkjhALI2Vk0TWLPXR_oczAUA-BZ6Py3KVj82QhJ2Gb2Gp4g-LGkPGHjB3Hqf4JtB2KNLSKfMWPVcSl9H2cFDzweRGpO9SA__w4VCuCq99HaA7k7lVZmR9YwzLo1amzuS62ulB8p-RtaJIxXm-2im653Aij1cLqxBkFka2WYMVyzBOY0IIW1-ZpVgX5IktbZdFB82BQxKdK8K_gwlwGKLQ3LHCIHoEokCEHYsljipreN69BRip4EMxxYOvOEhMjYhcZ5dN5axAWjaanY-zx-k5tY4S0Tyv9fNp07eDtT9X3BPraoDsZ2tRdnMp7FxXsrdxDj3R4ypbZPOGu73h4orXFZJUjp0F_uZCeJ1KCXXz99msakfBenRnPsnAhGSfZT-G-MTI3E4vQcwJU83PH9X3nWm5rydEzUL7WQlbo9TmB71b1JyOAE_XpG9z26iDZzwLjUfh5xGmbstiVQJQrupJ6AdHqXl0dLZAK66WtShkhv9ehh56dSiqkNaIpUjoS9xC9mEdvgjBJs20WP5ez2ZRBM6WtMgdyOCiJNvZF9o9Lmk2Cr7ZltjZgjixvoaHjySOOExbrR5j_oVU7Qav_vuX7LioOukP93kArhOJk1OtSW3paWD1G4JzYLvvM3llJZY13IKp_q8Mv3dLvdPRrL6hbUFVplvOg9_vaqXPxNZ0zJHuiZvUkGSqMc7ihdTW7J_Jb45zD8URmZ_N5MnWbNitM3bg_sXA4gHuOBMYI1eLEgqeMu2b3UUMvf6IcxyicKc1wZNwXj5PF2EY9y9Jo68fR_uGYmj0xDbnhe6rhHSNxvuVb2qN-lvlXiOfwnhioTE9ku8Y5h-NgZD52bepZEKs0s3tqjDmMf64dliSKvaszjHEf_0xJMNBsy509KHeyHHvYZ0phjIod4nN84iD6mXJYk_t7zbKd0S94mt4_Q5SDFM6UpvD2k0VYo53BV3uweqexrDBOL3_-PNEJ_xyeyWizET6_hT7EfK9cn_LYmy_c5DXdv26CEv3LjeeNSxZrMowOnqhJqK5OFBct0p1d6mofekVxEc4S6stR9LsxE0EQeqEblVvabsp84eV0XUhuaa-QztibPrz5vHklbGsv8Z7HHHJtj59wHWx1OO0GGZ7ZnOZcqlTcvBbxece_nTt2o9bUDt2tWikpN4GFvJbF0sRbLeggLNoaTIAjzwX9uh9S48Q_PC6vANS95bJe7gB7PnVWc7Ggnih7jYT3z1eBr8lyIeWmSS2uHpTTrTTb9Ua9VS84Hjl7piPJxAPlS3yOboOvT3Rps7I3HheHOzqVMuXm5fpVX7fkGZWhPTl9bYhaC38GuqHLg7sNwIcu-YUzNrv3j6gDXixbeywPp5ii_98oW_V8g9JDijX_a-xoBpWRypQZPuhqReIrdCydvod0uT9lyjJcokd_ok5XeZJ3GWutPgUMiJdyD-adfeLNsqb2MD-oEWx98OJYo4nZo-Mtdf3uvows62NVpqRL7qU7J9SF9PSUk1B9UWBoPlzHVzyvyZQgpZZcWSaCdvFFoqRZImCxp9F041jAZAqSCzoJX2Q5fLLVn5GX0v5V4KafCEUgLvJUyeP3MPaVjMJQWknhRW46X8lC-9ZK4AXbv303c2nGiptvShDksfy-ORZlApzdHAFL_lCWbpKF9BbDMQW6tUEHY72Hn-Wkblp1scfAlFikGZx4FVCV4C1Mw2lIG8FKGMO2eKrMQx9zul7gjyxx8Refd6wsp0lFGIBsT7GA7nmK6YdQ7oJ224tRBOCZfGwYSMKzPImV7FMaj6QKPRchfuSxzwP8LW0IWkEgxMOopFb8UNIc4fqjGCs1aLYV2vhHuJOjsSiizYoLhtJ8NkMOUwTCYxL65agU6v_PL_HtDcaEucdElGNqgymPffy3zwmjwBuwkzDqCAziNBSmeH8pTBfPLaKre0X_XqKtbrNND5XOfgJ4VcRKs-tWm7H03RAszb15cY0XBgCtZaD4rC6NNdvy7q-86LbajkTWXBPRKlACkqDVv1pHq10d_xSZT54qFufGmTzAo_Pz-skZf3Tolll59au4o1VdR8XQ1jWb7fsVFmGkojjBp61VOrWX3yoCiD1z940fumx24KZZqYuO8iqbc3lm66d0-I-SLUyZFyZeHrkJ3R7gcPzY-0Rhl71zTgIIYv4u2PscPwtCF_5ty79p3bgXiHsRvy2sYUsEuoq9Mwly6VesirxYMQx5epEn0e12XTcLs3k-lTfWYXmo7so_FLPldVM4dprm0nM6ncuWejG_9ZpX7Y7b8NXWpXs9bblBhwc3rtpu3LRbHh4XqE15lN6ikqqpaszfmSRBJ5ed_kV4qzZUtdFR1abauOqodTe45Dcd7gbTqzZvXvFau8EXWPyq2LxIbqVI03yW4mUkq-jqpZvSbULOJTvQR9aYi-RWuhh_vZCsb6Xo_wL7P_F1">