<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/140863>140863</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[libc++] Unable to build libc++ for bare matel target
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
neko-para
</td>
</tr>
</table>
<pre>
I'm targetting i686-elf without c library. I'd like to setup libc++, so that headers like `cstdarg` or `cstddef` can be used.
I'd like to just install the headers without building library, but I cannot find a related option in libcxx/CMakeLists.txt. Or I shall just manually copy these headers?
* build command
```shell
cmake runtimes -B build-runtimes -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_RUNTIMES="libcxx" --toolchain /Users/nekosu/Documents/Projects/njos/i686-elf.cmake -DLIBCXX_ENABLE_SHARED=OFF -DLIBCXX_ENABLE_STATIC=OFF -DLIBCXX_ENABLE_EXCEPTIONS=OFF -DLIBCXX_ENABLE_RTTI=OFF -DLIBCXX_ENABLE_FILESYSTEM=OFF -DLIBCXX_INCLUDE_TESTS=OFF -DLIBCXX_ENABLE_RANDOM_DEVICE=OFF -DLIBCXX_ENABLE_LOCALIZATION=OFF -DLIBCXX_ENABLE_UNICODE=OFF -DLIBCXX_HAS_TERMINAL_AVAILABLE=OFF -DLIBCXX_ENABLE_WIDE_CHARACTERS=OFF -DLIBCXX_ENABLE_THREADS=OFF -DLIBCXX_ENABLE_MONOTONIC_CLOCK=OFF -DLIBCXX_INSTALL_LIBRARY=OFF -DLLVM_DEFAULT_TARGET_TRIPLE=i686-elf
```
* toolchain file
```cmake
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR x86)
set(TOOL_PREFIX /opt/llvm-20)
set(CMAKE_C_COMPILER_TARGET i686-elf)
set(CMAKE_C_COMPILER ${TOOL_PREFIX}/bin/clang)
set(CMAKE_CXX_COMPILER_TARGET i686-elf)
set(CMAKE_CXX_COMPILER ${TOOL_PREFIX}/bin/clang++)
set(CMAKE_ASM_COMPILER_TARGET i686-elf)
set(CMAKE_ASM_COMPILER ${TOOL_PREFIX}/bin/clang)
set(CMAKE_C_FLAGS "-ffreestanding -nostdlib")
set(CMAKE_CXX_FLAGS "-ffreestanding -nostdlib -fno-rtti -fno-exceptions")
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
```
* failed output
```shell
[ 92%] Built target generate-cxx-headers
[ 92%] Building CXX object libcxx/src/CMakeFiles/cxx_static.dir/algorithm.cpp.obj
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1854:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/for_each.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__ranges/movable_box.h:21:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/optional:190:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__functional/hash.h:25:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/cstring:66:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/string.h:98:102: error: unknown type name 'size_t'; did you mean 'std::size_t'?
98 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD const void* memchr(const void* __s, int __c, size_t __n) {
| ^~~~~~
| std::size_t
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__cstddef/size_t.h:20:7: note: 'std::size_t' declared here
20 | using size_t = decltype(sizeof(int));
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1854:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/for_each.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__ranges/movable_box.h:21:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/optional:190:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__functional/hash.h:25:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/cstring:66:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/string.h:101:90: error: unknown type name 'size_t'; did you mean 'std::size_t'?
101 | inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_PREFERRED_OVERLOAD void* memchr(void* __s, int __c, size_t __n) {
| ^~~~~~
| std::size_t
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__cstddef/size_t.h:20:7: note: 'std::size_t' declared here
20 | using size_t = decltype(sizeof(int));
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1854:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/for_each.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__ranges/movable_box.h:21:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/optional:190:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__functional/hash.h:36:8: error: reference to unresolved using declaration
36 | std::memcpy(&__r, __p, sizeof(__r));
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/cstring:82:1: note: using declaration annotated with 'using_if_exists' here
82 | using ::memcpy _LIBCPP_USING_IF_EXISTS;
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1908:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/shuffle.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__random/uniform_int_distribution.h:20:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/iosfwd:120:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__std_mbstate_t.h:14:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__mbstate_t.h:51:4: error: "We don't know how to get the definition of mbstate_t without <wchar.h> on your platform."
51 | # error "We don't know how to get the definition of mbstate_t without <wchar.h> on your platform."
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1908:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/shuffle.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__random/uniform_int_distribution.h:20:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/iosfwd:136:14: error: reference to unresolved using declaration
136 | typedef fpos<mbstate_t> streampos;
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__std_mbstate_t.h:25:1: note: using declaration annotated with 'using_if_exists' here
25 | using ::mbstate_t _LIBCPP_USING_IF_EXISTS;
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1908:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/shuffle.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__random/uniform_int_distribution.h:20:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/iosfwd:136:14: error: reference to unresolved using declaration
136 | typedef fpos<mbstate_t> streampos;
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__std_mbstate_t.h:25:1: note: using declaration annotated with 'using_if_exists' here
25 | using ::mbstate_t _LIBCPP_USING_IF_EXISTS;
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1908:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/shuffle.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__random/uniform_int_distribution.h:20:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/iosfwd:141:14: error: reference to unresolved using declaration
141 | typedef fpos<mbstate_t> u8streampos;
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__std_mbstate_t.h:25:1: note: using declaration annotated with 'using_if_exists' here
25 | using ::mbstate_t _LIBCPP_USING_IF_EXISTS;
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1908:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/shuffle.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__random/uniform_int_distribution.h:20:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/iosfwd:141:14: error: reference to unresolved using declaration
141 | typedef fpos<mbstate_t> u8streampos;
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__std_mbstate_t.h:25:1: note: using declaration annotated with 'using_if_exists' here
25 | using ::mbstate_t _LIBCPP_USING_IF_EXISTS;
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1908:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/shuffle.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__random/uniform_int_distribution.h:20:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/iosfwd:143:14: error: reference to unresolved using declaration
143 | typedef fpos<mbstate_t> u16streampos;
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__std_mbstate_t.h:25:1: note: using declaration annotated with 'using_if_exists' here
25 | using ::mbstate_t _LIBCPP_USING_IF_EXISTS;
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1908:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/shuffle.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__random/uniform_int_distribution.h:20:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/iosfwd:143:14: error: reference to unresolved using declaration
143 | typedef fpos<mbstate_t> u16streampos;
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__std_mbstate_t.h:25:1: note: using declaration annotated with 'using_if_exists' here
25 | using ::mbstate_t _LIBCPP_USING_IF_EXISTS;
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1908:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/shuffle.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__random/uniform_int_distribution.h:20:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/iosfwd:144:14: error: reference to unresolved using declaration
144 | typedef fpos<mbstate_t> u32streampos;
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__std_mbstate_t.h:25:1: note: using declaration annotated with 'using_if_exists' here
25 | using ::mbstate_t _LIBCPP_USING_IF_EXISTS;
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1908:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/shuffle.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__random/uniform_int_distribution.h:20:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/iosfwd:144:14: error: reference to unresolved using declaration
144 | typedef fpos<mbstate_t> u32streampos;
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__std_mbstate_t.h:25:1: note: using declaration annotated with 'using_if_exists' here
25 | using ::mbstate_t _LIBCPP_USING_IF_EXISTS;
| ^
In file included from /Users/nekosu/Documents/Projects/llvm-project/libcxx/src/algorithm.cpp:9:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/algorithm:1854:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__algorithm/for_each.h:16:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__ranges/movable_box.h:21:
In file included from /Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/optional:190:
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__functional/hash.h:36:3: error: excess elements in scalar initializer
36 | std::memcpy(&__r, __p, sizeof(__r));
| ^ ~~~~~~~~~~~~~~~~~~
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__functional/hash.h:56:24: note: in instantiation of function template specialization 'std::__loadword<unsigned int>' requested here
56 | _Size __k = std::__loadword<_Size>(__data);
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__functional/hash.h:279:12: note: in instantiation of member function 'std::__murmur2_or_cityhash<unsigned int>::operator()' requested here
279 | return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u));
| ^
/Users/nekosu/Documents/Projects/llvm-project/build-runtimes/include/c++/v1/__functional/hash.h:324:18: note: in instantiation of member function 'std::__scalar_hash<std::_PairT>::operator()' requested here
324 | return _HashT()(__p);
| ^
13 errors generated.
gmake[2]: *** [libcxx/src/CMakeFiles/cxx_static.dir/build.make:79: libcxx/src/CMakeFiles/cxx_static.dir/algorithm.cpp.obj] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:484: libcxx/src/CMakeFiles/cxx_static.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsnF1v4rrWgH-Ne2OBEofwcdGLkI-ZaNNSAZ3deW8skzjgmcTmtZ1puy_2bz-yAxTaotmdnilH5wQhldorXsvLy89ywDFRiq04pZfAHwM_uiC1Xgt5yel30dkQSS6WIn-8TAEaVFATuaJaM76CrD_sd2hZwHum16LWMIMlW0oiH7vQCOewZN8p1AIqquuNqcwAGtt3CJWAek00XFOSU6kaWdB3MqVzIleg70AhdwU5LUxBRjhcUlgrmneBEwAnONbzrVYaMq40KUuo13Tf-M7CZc3K3Ni-NdQYsqw1TE3TXGhYMJ5DAiUtiaY5FBvNBIeMW-MfHgBKwivynU6Y0qqrH3QXTiVMoVobjVZ9RXhNyvIRZmLzaIxQezOAlzRWAxQ0psBMVBXh-ba47zRvtaZlCZwgq8h3CmXNNauogp1xc1XnqSQKr4I_Yjy-TScRXny9iYEXzWhJiaKwE00mX65wfB2MJzGe3V4v0qt4DrwIILTrDoKdjhaizNaEcQhQcquMoSgxg69qgJJIZHVFuTaFN1J8o5n9yL8J82cXA93G1E40Scfh3d1O6fxzMIsj4EXTJHlZuQgWaXiiMr4L45tFOr2enxCYLRbpiaokncTzr_NFfPVcIL0OJ7dRjBfxfHGy4eA6ml7hKP6ShvEJmck0DCbp_wXGwBMit9dpOI1eNPA5mONFPLtKr4MJDr4E6cRIn2jjzzSKcfg5mAXhIp6dMnjxeRYH0anaq-n1dDG9TkMcTqbhHy89Ml8EkwmepONZMPv6VG1CJ4qT4HaywItg9ile4MUsvbG27kb9MGafIvspngpW0mehbeMEOIGiGqBhE73NWOHr4CqGnyinkmUAjV4XuplNw3g-n87gw7DfSO0FF9PpBN_M4iS9M6EsNhqgpCx_VB3kPBNt2gxxOL26SSfxbNvFPdNe6n-ShQD1wGB8oA0MIoCSJeMAJVlJ-OqVy-_u3qLsQPofqWuo-ryZYH71BqWH0v-4jy-8lEyCT3MIEOoUhaRUacItcTtcKJ2XbAkQer3DP70SdgouOlJr1nyiDxm1gFb7Np81u5h93XVpH8Rfb2LYoGcf9M2lLyO5IKw0WaDWm1qfYDTwx3CEAPKBH8FxzUq9zZFwZUKZaNrJHh46uxTwygW2k-HdHRRLQ9enVKNktks4CSup4W328ICVJppl3ZxJgBJSroRkel11s82mK5bfTFJsZh5kPCvrnOawkKJ6C9ztnNk0_5t_jw06Ugm8YAS84DdoPU51Jtc0DRsv7AI--eEeGgS8wB36vXPbg_GTRSgphMSUZOvu2pjXP79xkvCVlanED7IsKV6KB2sccs9tXLPeIqXx1Mg5tzUYFzXPthahZE1UM4jIP7dlmdKS8RXwgv42oD5Ca6PUumA0NEPkIOAFkEoppPlQ8-9c3HOoHzcUclJRCNBAsb8o1gANgDeGOcvho6hhRQm3lTo35nvBgZRZI0MIR0MIBiFkvGScQoPq8OYGfzYromQ2vcLBON2XmgwVz2ZxhKdf4tlkGkQwE1xp-EOw3IC8olW2lgANj4sxVuYOgHENMc7sXYm1A2LMARpBMBg3xkBojQF-_Ld5HRU-78PHjAXGu_silDSKm9A0k2ZgBoMLTc3fV70Mc5qVRNIcrqmkTXeQY7tTK5OOtn4AXmRFzYgCNDSlogBoyLg2SRONgHfsoe0nP27TUJuG2jTUpqHfm4Zcx8SKHaLfk4Zcx31XGnqRgNrU06aeNvW0qectqeecScYzwzU84qukBZWUZ_Yr95pLqkT5g-bb6dtMb2Jaaqan199Ozz0LDAw3jwANAepjLA38MN7sGGhnuS1-bZY38_tjk9vQ3Oa4h2R70VVofz6wvxncM7026LMymBWYPjBlTBkcEG-IDoh36JV9Mrmdp9efcJrg-C61X1a_5of_ac6NnOG57TnmnFrXRVHS_yTM5cIYVnNWCFlhxjXOmYnrZW2i9ilvn9VSJlRxb9jgnt8WjJXOcbVUZjJvVzZu7yM5fKzbN9zpHfEXIPQnhbngAA00NGtduBb3BsYrqu3PnjktGGeWS6KA-wb3P4MCL7zP1kQaDTEU3CyGJdyURJsw6QKEGtb4zeIXIA826j9Qd8u5lnO_hXMfSzS7fnJ771hAudsFlLkRymkBi41QwAv3M8tMI6UlJZWtONdy6TVw2m8o_r0LJ-S_XDjtGdOunVqmtExpmdIypWVKy5Q3MaXnvpspPfenTKmHLVVaqrRUaanSUqWlSkuVliq_RBXv_VTxfk4Vt99ipcVKi5UWKy1WWqy0WGmx8mtY6b0fK72fY8VDLVZarLRYabHSYqXFSrv_uN1__N-z_9g7ohx9yKhSkJbUGgAZhyojJZHQbjwjJfuLyt-x99g-XQD_fvE6s4t84yLUO0Qh480xKFwzstuKt7sYalptSqIpVBuaWXc1MoePa2BcCpLfC5kDL6y5PR8mh4ybpGCgKen_11Tpo6c4_P7Bcxh4zv6iEOPv9kGO19u1MrbBIcY50eSs-71PPmY1GNmtqT_zb0WrJZVPbj52Z1XLqpYIC4kzph9N66941gqLDZVEC2mDdHTC22gw2ntbUl1LDk8p2T56Y_1sG2xiv34W9PW5N9yfRICNbXf4vgFoEIF3PtlX3BAmF2_zvYeahdPO75-JWi_2zrU4OfF00sGr8avrNVxT-9Mi7MlGK3tKij9GwI-aLb9B84bAH7_pfAjr_q5tzgtsJL_3fAk_grHdC-weGOq-ZuhRy-azyWlmHvWGvV8wpHxSjfaqn-vcqdnvk4IvLtwf4XGRX3r5yBuRC3rpDnqDodtDXv9ifYm8zOk7_hINyTIbjFyfFnSIRvkoI9nAo-4Fu0QO8h0fuc7AH7j9rjscOP3-kDj9pes7ox7oObQirOya2dAVcnXBlKrppdtzhn3voiRLWip73lZzFtNuJpgBv5CXdg4t65UCPae0Z03t29FMl_akroPL_AjecrOQMOv-5mCpp1pYCAmXRFJYEU3L7ekkF7UsL9dab5QJfJQAlKyYXtfLbmbveIy-l5PZdsIMz7YfPy7RvwIAAP__DDm43w">