<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/74774>74774</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Clang][ASTMergeAction] Cast expression of unsupported type!
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
widberg
</td>
</tr>
</table>
<pre>
When running the following on trunk (3d1172813fc640514c6cb421394c34f4b42cb634)
test.sh
```sh
clang++-18 -cc1 -std=c++17 -emit-pch -o qminimalintegration.cpp.oclango qminimalintegration.cpp
clang++-18 -cc1 -x c++ -ast-merge qminimalintegration.cpp.oclango /dev/null -ast-dump-all=json
```
qminimalintegration.cpp
```cpp
__attribute__((__vector_size__(4 * sizeof(float)))) float _mm_set1_ps(float);
__attribute__((__vector_size__(8 * sizeof(_Float16)))) _Float16
_mm_set1_pch(_Float16 _Complex h) {
return _mm_set1_ps(__builtin_bit_cast(float, h));
}
```
The second command crashes with this backtrace
```console
Cast expression of unsupported type!
UNREACHABLE executed at /data/llvm-project/clang/lib/AST/ASTImporter.cpp:7824!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang++-18 -cc1 -x c++ -ast-merge qminimalintegration.cpp.oclango /dev/null -ast-dump-all=json
#0 0x000055555adf59e8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /data/llvm-project/llvm/lib/Support/Unix/Signals.inc:727:0
#1 0x000055555adf3524 llvm::sys::RunSignalHandlers() /data/llvm-project/llvm/lib/Support/Signals.cpp:105:0
#2 0x000055555adf413e SignalHandler(int) /data/llvm-project/llvm/lib/Support/Unix/Signals.inc:403:0
#3 0x00007ffff7bc6980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
#4 0x00007ffff67f4e87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
#5 0x00007ffff67f67f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
#6 0x000055555ad3962a (/data/llvm-project/build/bin/clang-18+0x57e562a)
#7 0x000055555db03abe clang::ASTNodeImporter::VisitExplicitCastExpr(clang::ExplicitCastExpr*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:7824:0
#8 0x000055555daf8e1c clang::StmtVisitorBase<std::add_pointer, clang::ASTNodeImporter, llvm::Expected<clang::Stmt*>>::VisitBuiltinBitCastExpr(clang::BuiltinBitCastExpr*) /data/llvm-project/build/tools/clang/include/clang/AST/StmtNodes.inc:990:0
#9 0x000055555daf8e1c clang::StmtVisitorBase<std::add_pointer, clang::ASTNodeImporter, llvm::Expected<clang::Stmt*>>::Visit(clang::Stmt*) /data/llvm-project/build/tools/clang/include/clang/AST/StmtNodes.inc:990:0
#10 0x000055555daf948f llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#11 0x000055555daf948f clang::ASTImporter::Import(clang::Stmt*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:9499:0
#12 0x000055555daf9712 llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#13 0x000055555daf9712 clang::ASTImporter::Import(clang::Expr*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:9481:0
#14 0x000055555dafa035 llvm::Expected<clang::Expr*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#15 0x000055555dafa035 std::conditional<is_base_of_v<clang::Type, clang::Expr>, llvm::Expected<clang::Expr const*>, llvm::Expected<clang::Expr*>>::type clang::ASTNodeImporter::import<clang::Expr>(clang::Expr*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:205:0
#16 0x000055555db0812b llvm::Expected<clang::Expr*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#17 0x000055555db0812b llvm::Error clang::ASTNodeImporter::ImportArrayChecked<clang::Stmt::CastIterator<clang::Expr, clang::Expr*, clang::Stmt*>, clang::Expr**>(clang::Stmt::CastIterator<clang::Expr, clang::Expr*, clang::Stmt*>, clang::Stmt::CastIterator<clang::Expr, clang::Expr*, clang::Stmt*>, clang::Expr**) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:666:0
#18 0x000055555db09941 llvm::Error::setChecked(bool) /data/llvm-project/llvm/include/llvm/Support/Error.h:307:0
#19 0x000055555db09941 llvm::Error::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:239:0
#20 0x000055555db09941 clang::ASTNodeImporter::VisitCallExpr(clang::CallExpr*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:8492:0
#21 0x000055555daf8e26 clang::StmtVisitorBase<std::add_pointer, clang::ASTNodeImporter, llvm::Expected<clang::Stmt*>>::Visit(clang::Stmt*) /data/llvm-project/build/tools/clang/include/clang/AST/StmtNodes.inc:950:0
#22 0x000055555daf948f llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#23 0x000055555daf948f clang::ASTImporter::Import(clang::Stmt*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:9499:0
#24 0x000055555daf9712 llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#25 0x000055555daf9712 clang::ASTImporter::Import(clang::Expr*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:9481:0
#26 0x000055555dafa035 llvm::Expected<clang::Expr*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#27 0x000055555dafa035 std::conditional<is_base_of_v<clang::Type, clang::Expr>, llvm::Expected<clang::Expr const*>, llvm::Expected<clang::Expr*>>::type clang::ASTNodeImporter::import<clang::Expr>(clang::Expr*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:205:0
#28 0x000055555db178fb llvm::Expected<clang::Expr*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#29 0x000055555db178fb clang::ASTNodeImporter::VisitImplicitCastExpr(clang::ImplicitCastExpr*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:7757:0
#30 0x000055555daf8ee6 clang::StmtVisitorBase<std::add_pointer, clang::ASTNodeImporter, llvm::Expected<clang::Stmt*>>::Visit(clang::Stmt*) /data/llvm-project/build/tools/clang/include/clang/AST/StmtNodes.inc:1056:0
#31 0x000055555daf948f llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#32 0x000055555daf948f clang::ASTImporter::Import(clang::Stmt*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:9499:0
#33 0x000055555daf9712 llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#34 0x000055555daf9712 clang::ASTImporter::Import(clang::Expr*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:9481:0
#35 0x000055555dafa035 llvm::Expected<clang::Expr*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#36 0x000055555dafa035 std::conditional<is_base_of_v<clang::Type, clang::Expr>, llvm::Expected<clang::Expr const*>, llvm::Expected<clang::Expr*>>::type clang::ASTNodeImporter::import<clang::Expr>(clang::Expr*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:205:0
#37 0x000055555dafe63a llvm::Expected<clang::Expr*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#38 0x000055555dafe63a clang::Expr* clang::ASTNodeImporter::importChecked<clang::Expr*>(llvm::Error&, clang::Expr* const&) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:654:0
#39 0x000055555dafeb18 clang::ReturnStmt::getNRVOCandidate() const /data/llvm-project/clang/include/clang/AST/Stmt.h:3054:0
#40 0x000055555dafeb18 clang::ASTNodeImporter::VisitReturnStmt(clang::ReturnStmt*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:6933:0
#41 0x000055555daf9156 clang::StmtVisitorBase<std::add_pointer, clang::ASTNodeImporter, llvm::Expected<clang::Stmt*>>::Visit(clang::Stmt*) /data/llvm-project/build/tools/clang/include/clang/AST/StmtNodes.inc:658:0
#42 0x000055555daf948f llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#43 0x000055555daf948f clang::ASTImporter::Import(clang::Stmt*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:9499:0
#44 0x000055555db1c375 llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#45 0x000055555db1c375 std::conditional<is_base_of_v<clang::Type, clang::Stmt>, llvm::Expected<clang::Stmt const*>, llvm::Expected<clang::Stmt*>>::type clang::ASTNodeImporter::import<clang::Stmt>(clang::Stmt*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:205:0
#46 0x000055555db1c612 llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#47 0x000055555db1c612 llvm::Error clang::ASTNodeImporter::ImportArrayChecked<clang::Stmt**, clang::Stmt**>(clang::Stmt**, clang::Stmt**, clang::Stmt**) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:666:0
#48 0x000055555db1c612 llvm::Error clang::ASTNodeImporter::ImportContainerChecked<llvm::iterator_range<clang::Stmt**>, llvm::SmallVector<clang::Stmt*, 8u>>(llvm::iterator_range<clang::Stmt**> const&, llvm::SmallVector<clang::Stmt*, 8u>&) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:681:0
#49 0x000055555db1c612 clang::ASTNodeImporter::VisitCompoundStmt(clang::CompoundStmt*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:6703:0
#50 0x000055555daf9303 clang::StmtVisitorBase<std::add_pointer, clang::ASTNodeImporter, llvm::Expected<clang::Stmt*>>::Visit(clang::Stmt*) /data/llvm-project/build/tools/clang/include/clang/AST/StmtNodes.inc:74:0
#51 0x000055555daf948f llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#52 0x000055555daf948f clang::ASTImporter::Import(clang::Stmt*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:9499:0
#53 0x000055555db1c375 llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#54 0x000055555db1c375 std::conditional<is_base_of_v<clang::Type, clang::Stmt>, llvm::Expected<clang::Stmt const*>, llvm::Expected<clang::Stmt*>>::type clang::ASTNodeImporter::import<clang::Stmt>(clang::Stmt*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:205:0
#55 0x000055555db1c48f llvm::Expected<clang::Stmt*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#56 0x000055555db1c48f clang::ASTNodeImporter::ImportFunctionDeclBody(clang::FunctionDecl*, clang::FunctionDecl*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:3389:0
#57 0x000055555db22377 llvm::Error::setChecked(bool) /data/llvm-project/llvm/include/llvm/Support/Error.h:307:0
#58 0x000055555db22377 llvm::Error::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:239:0
#59 0x000055555db22377 clang::ASTNodeImporter::VisitFunctionDecl(clang::FunctionDecl*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:3953:0
#60 0x000055555db22fb0 clang::declvisitor::Base<std::add_pointer, clang::ASTNodeImporter, llvm::Expected<clang::Decl*>>::Visit(clang::Decl*) /data/llvm-project/build/tools/clang/include/clang/AST/DeclNodes.inc:428:0
#61 0x000055555db23314 clang::ASTImporter::ImportImpl(clang::Decl*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:8885:0
#62 0x000055555dad9c2e llvm::Expected<clang::Decl*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#63 0x000055555dad9c2e clang::ASTImporter::Import(clang::Decl*) /data/llvm-project/clang/lib/AST/ASTImporter.cpp:9297:0
#64 0x000055555ba24aae llvm::Expected<clang::Decl*>::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:565:0
#65 0x000055555ba24aae clang::ASTMergeAction::ExecuteAction() /data/llvm-project/clang/lib/Frontend/ASTMerge.cpp:70:0
#66 0x000055555bac0b49 clang::FrontendAction::Execute() /data/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1069:0
#67 0x000055555ba4c470 llvm::Error::setChecked(bool) /data/llvm-project/llvm/include/llvm/Support/Error.h:307:0
#68 0x000055555ba4c470 llvm::Error::operator bool() /data/llvm-project/llvm/include/llvm/Support/Error.h:239:0
#69 0x000055555ba4c470 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /data/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1057:0
#70 0x000055555bb515f3 std::__shared_ptr_access<clang::FrontendOptions, (__gnu_cxx::_Lock_policy)2, false, false>::_M_get() const /usr/include/c++/7/bits/shared_ptr_base.h:975:0
#71 0x000055555bb515f3 std::__shared_ptr_access<clang::FrontendOptions, (__gnu_cxx::_Lock_policy)2, false, false>::operator*() const /usr/include/c++/7/bits/shared_ptr_base.h:961:0
#72 0x000055555bb515f3 clang::CompilerInvocation::getFrontendOpts() /data/llvm-project/clang/include/clang/Frontend/CompilerInvocation.h:254:0
#73 0x000055555bb515f3 clang::CompilerInstance::getFrontendOpts() /data/llvm-project/clang/include/clang/Frontend/CompilerInstance.h:291:0
#74 0x000055555bb515f3 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /data/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:273:0
#75 0x000055555956561e cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /data/llvm-project/clang/tools/driver/cc1_main.cpp:294:0
#76 0x000055555955c8f8 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /data/llvm-project/clang/tools/driver/driver.cpp:366:0
#77 0x000055555955fd64 clang_main(int, char**, llvm::ToolContext const&) /data/llvm-project/clang/tools/driver/driver.cpp:407:0
#78 0x0000555559571681 main /data/llvm-project/build/tools/clang/tools/driver/clang-driver.cpp:16:0
#79 0x00007ffff67d7c87 __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:344:0
#80 0x000055555955bc2a _start (/data/llvm-project/build/bin/clang-18+0x4007c2a)
Aborted (core dumped)
```
This only happens with `-ast-merge` and not with `-include-pch`. The following runs fine without crashing.
```sh
clang++-18 -cc1 -std=c++17 -emit-pch -o qminimalintegration.cpp.oclango qminimalintegration.cpp
clang++-18 -cc1 -x c++ /dev/null -include-pch qminimalintegration.cpp.oclango -std=c++17
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsXF1z2yq3_jXKDWOPBPq8yIXjxLN7Zn9Nm90zc240CGGbXVnoAEqd99e_A7JigZXEbp1sd7o7ntRCEjzrYbHWI7DAUrJVTem1F9140e0VbtWai-uvrCyoWF0VvHy8_t81rYFo65rVK6DWFCx5VfGv-ojXQIm2_gI8mKIyCBKYBmhJ4tCPgpDEpAhhgLKQoHAZFiEkRYxCD2aef-v5s-6volJN5XpY5MV-9-mLSYXrlQdvPHgzCVIwISQAE6lKD92SrjhIwIRumJo0ZA0mHPz_htVsgytWK7oSWDFeT0nTTLmp6tnzLzS3BbumwARLNdlQsaKvNuPBRUkfPLio26rqbizbTTPBVeWh278lrx2LhzS8iNG576k8z7FSghWtonnuwdSDaZ4_UKK4yCX7T1cYAg_OgD7kSw-my4pjpbul_wBTAvLNJpdUBXkjh1ehmxOaSu2m8oWuJYit1p4Ku2qfWiXrwR0gn_NNU9EtWOt7vGSHAgBBVStqB22eFy2rFKvzgqmcYKn2JsxNFUNTvOT2hY64X1MgKeF1CQjfbLD-X2C5phJ8ZWoN1JpJUGDyRQlM6Hj_8FryandujqUCdNsIKiXjNeBL0NaybRouFC2BemyoB4Pu2r9-_3g3m_8yu_n1DtAtJa2-AivjWVhhDy6q6mEzaQT_mxLlwcXOeRcVKzy4mH267_5-2JjahfEgNEtSGD618eevd7NPd0C2xYYpgEHRroCg-nqgOFgr1UgPzTy48OBixdS6LaaEb3ZNHyJgUrZUenABNFOsJlVbUhM4DGsDpuAcNII2ghMqJS2B5K3oivWdWEpOGNYGi7YGkgjWqGkH-ZPC5AvQY0kjM0X-1POzPwVfCbwBWKzaDa2VBg7efzwDDyIf-Fvf9_1I_8PlMspoCgxjaOahmXyU3Zc_BauVsee-IyXdXyTw15xLJSjeeDDWxLBaGfd_rvv7LjG9_6nzKQ8u_qrZVhewVY0rOWU10U4AEw_N_D3kwIGMIhiOQf7Y1l1Nv-C6rKiQZvSfjqqH0_lk4Ec2HOjACQNEgdWwB9NzEhL6yEaAdgiS5XK5TAoSZ6kP8lxQqbigudDjMH2qfZvGeRxOKla328mqbrsTjVoLisup5FPfgzf-NoBZ6j9lQd1MOGwmTpYhTRMgMJNU26UDWamHXsUKMpl__p-v_1c8HcIpTDy4kMYODy6mU330KEuqw-Ci7cyUj_LBoKlbfWiqnmqLo8A2OHKQxMkyALjgxtLjkKiyY8PcZRpJnUZiu19RFkO8I3K8D_t2C1b3EW4SpIbMKKFRDLFFZzKsvyx8hAu6CwLGfWef7n_nJe1DYlf4mUmm7rZNxQhTOkLfbRvtX4P7Ds_OXnS9E0KxxU9q4cfLlAZkiP-T2igDl4sbLKmH5kYL6VO4LPOG6_AldLR4wWg4H4zsu21DiaKlh-ZOO9pGdGc-TyzddJn15jmexs6_zFTfwYrzSg6Y2yWPQUnHokamrekHbpb5NoXZhVNoE9Zf9W4U6VjvOxRlYbo8yR59zBsqsOICFJxXR2aBPeJdwT4q3wnBxXStA1Mc2XCDMbh259gDujs6nejjRm0WZpkNELoAkwBeMJ9oDO6pfJ4vCmbhMEtogKEDEPsoepXPHtD78xmNwX0KKvrhgWk5iSsPzZnMCyxpzpf5g43_3mh_K-oYk9DdMdFGXwr0o0bvU0fe40Qo_QDyar5knTsc1qWbfRsfgb7Deewk-jSAxQW7iKtLXLj6zld5745mQuDH-ZqSL6MRxXzTyfeD6owbo-DQy3Qvzd00uXelsctnB_39PgDe3czvd984jm1_SB1_yLIwcP1h9-RFVd_ZMO389ExOivzEBpUdDerNBg5EdmqF_himowT9HFfVoUDdl56jX9MwgzZeV6ukFMY_ufqMbPUJD9TSRatPeKCWLkx9QlctXbb6hK5aujT1CeMfSn3C5F_1-d7qEzrpO0jS5QWrT5iNwT0qiX7YvDQrdnj2LLNiSWQLE-TOV6SU_uRJNfAjW1Gi0UmSi80CaFQEXFBWRaOTJJfL56gIuKCsikYnSS42ZKJREfBvVn3LrIpcJUNjhC_YRdy1GgP3ENmR1I_O6AyMG64Nd0_i3arwWIOdy8TnmLiIQttod3WFFkE6xPDR_CJjP0Wzour3j5__mOO6ZCVWdNcjBuLr4F5Kh7s5DAdg6GoFF-DzWmcA3fL4YflZJoMyhGzMB7k7iH5yfRNHqU3RjzVpEF76pEEYOo8EBCWvp-N_js9oDO450nEXqY5KrfrSU9PxyIj65nT8BPVtfMRNx2Hsch5fsgIOk1fgnm-JZbcqMLqO8NyqyCv3PH_i7GsPoTt58R1EzXmtMKup2JO1r4jtVmZygesVfZZHdyB92uCq-mx-S_rMPXOQtrsRNVRFR7c3EEjf1vB5pJXzhBS6szSmX45b6uCbhrd1eahd7DNncafEt9VLdPBrEuSjn1u9JLYmjX6suZno0udmIvRDiZdoVGv9K17eUrxEB4LxsofcgdY6HHLP5eBFWxPtPreUVDe8fLQpHp49FBoHZ7-7IxBKncHq6DIIUZL80z91iNKjQb3bTx2ibAzTUfnf7sYXu__7OziL7Pwf-y7uZeEPcZeUVA9d_u8K3lQF9Ja-rAKO4eNUFaDrHKqAENpzGHHgEIVQEB6RVz9smup09Mf1ZpqmdiSKneRfZgTSk0h_18AZozG4p2qV8_GZwcyONLGV_AsMQ4wvmc9oDK7N529UrOjMhJXeBvNy2q7oFXQ2jwvBa0XrsiPT1NyvAtu_GopjGxjxizCzUtmuphFg3wzJrvPpXaXYDtxxYkMLSZj4_3SGi9OjQb1bhouzMUzO0yqrqPhQS4VrQsfd6_lOP-m5fNDPbrv7t9JsUhMr1RVFFERLtFfyeS7XWNAyb5TIMSFUSntY903-0Wi4Uqcz877qqm5zst3uavmVky95wytGHj2YQX3VEleS7r_0YSH_LV9R5S6ptFLYWap72dGDi8S8SKV0Mhsg1c8bpr-yxA4GSXBZ5vaOakL1uWyO7VmYBI7ZPOqjD5zgfaxZUTWw99XXIp8XE6N-2bfVjStnzStBR2Mejqu3RbwbSQZv5nAcvoJ3N-JHqD6Y3LLMOimF96jvTdRbPNtm_4SZ2LI3sTJlFsVRHFBASJBvMKutiUkznfyRLvXoWOODJX27DM7BA2flsbb04rQU7EEL5EWPoIedOb4S27Ajki5T0Bs_Dzo20tFZUSNEx2xwJlJ1HXNN7ladthZ9YEz3pX_ycCayk8QxZVnGOz3d94F5Q7hjeD_R_uZAQycXJ6kNNAniNAAa4ukPH4f9rU9MrPYDh6fMfrO3TEiagDyvWEFyqbBQeY_lmLd8iWz7l427r-akqce88otC2-NS3-mmgkAMuoa_9dXf0PcTMnj1d1Z0-yfo-MAFNbsDaI2Vvbi1A5OA19UjWOOmofVuRwcv9ve7Anixb_YjqLnan90FwElD1l7sT8G9tS-KaGsJlqym5gbeqm7rA1avpj_QRifObgcDk19t1gU92gVX5TUqM5ThK3odJH6QpUkC0dX6GoVxGAVphMsIRgWkIS2TMMAoIX6YliS8YtfQhyiAfgIhhD6chlGcwhD6FCckikPfC326wayaaneacrG6MrtSXCdhkoRXFS5oJc2eNxDuSIBedHslro37Fe1KeqFfMankvgbFVGU2ypmbO6JbL7pxnoSiW3Dc5h5Xraiuv31nDWPGfwMAAP__3qatvw">