<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54612>54612</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
C++20, consteval, anonymous union: llvm/lib/IR/Instructions.cpp:1491: void llvm::StoreInst::AssertOK(): Assertion `cast<PointerType>(getOperand(1)->getType()) ->isOpaqueOrPointeeTypeMatches(getOperand(0)->getType()) && "Ptr must be a pointer to Val type!"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
stbergmann
</td>
</tr>
</table>
<pre>
At least on recent LLVM/Clang 15 trunk:
```
$ cat test.cc
struct S {
consteval S() { c = 0; }
char * f() { return &c; }
union {
char c;
int i;
};
};
auto x = S().f();
```
```
$ clang++ -std=c++20 -c test.cc
clang++: ~/github.com/llvm/llvm-project/llvm/lib/IR/Instructions.cpp:1491: void llvm::StoreInst::AssertOK(): Assertion `cast<PointerType>(getOperand(1)->getType()) ->isOpaqueOrPointeeTypeMatches(getOperand(0)->getType()) && "Ptr must be a pointer to Val type!"' failed.
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: ~/llvm/inst/bin/clang++ -std=c++20 -c test.cc
1. <eof> parser at end of file
2. test.cc:9:6: LLVM IR generation of declaration 'x'
3. test.cc:9:6: Generating code for declaration 'x'
#0 0x00007fe96290a77a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) ~/github.com/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:11
#1 0x00007fe96290a92b PrintStackTraceSignalHandler(void*) ~/github.com/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:1
#2 0x00007fe962908fc6 llvm::sys::RunSignalHandlers() ~/github.com/llvm/llvm-project/llvm/lib/Support/Signals.cpp:103:5
#3 0x00007fe96290a06e llvm::sys::CleanupOnSignal(unsigned long) ~/github.com/llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:362:1
#4 0x00007fe96276e1de (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) ~/github.com/llvm/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:0:7
#5 0x00007fe96276e593 CrashRecoverySignalHandler(int) ~/github.com/llvm/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:390:1
#6 0x00007fe9620ca750 __restore_rt (/lib64/libc.so.6+0x42750)
#7 0x00007fe96211788c __pthread_kill_implementation (/lib64/libc.so.6+0x8f88c)
#8 0x00007fe9620ca6a6 gsignal (/lib64/libc.so.6+0x426a6)
#9 0x00007fe9620b47d3 abort (/lib64/libc.so.6+0x2c7d3)
#10 0x00007fe9620b46fb _nl_load_domain.cold (/lib64/libc.so.6+0x2c6fb)
#11 0x00007fe9620c3396 (/lib64/libc.so.6+0x3b396)
#12 0x00007fe9637c2390 llvm::StoreInst::AssertOK() ~/github.com/llvm/llvm-project/llvm/lib/IR/Instructions.cpp:1492:1
#13 0x00007fe9637c26f8 llvm::StoreInst::StoreInst(llvm::Value*, llvm::Value*, bool, llvm::Align, llvm::AtomicOrdering, unsigned char, llvm::Instruction*) ~/github.com/llvm/llvm-project/llvm/lib/IR/Instructions.cpp:1534:1
#14 0x00007fe9637c257d llvm::StoreInst::StoreInst(llvm::Value*, llvm::Value*, bool, llvm::Align, llvm::Instruction*) ~/github.com/llvm/llvm-project/llvm/lib/IR/Instructions.cpp:1515:51
#15 0x00007fe9696a868a llvm::IRBuilderBase::CreateAlignedStore(llvm::Value*, llvm::Value*, llvm::MaybeAlign, bool) ~/github.com/llvm/llvm-project/llvm/include/llvm/IR/IRBuilder.h:1687:12
#16 0x00007fe96969f131 clang::CodeGen::CGBuilderTy::CreateStore(llvm::Value*, clang::CodeGen::Address, bool) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGBuilder.h:99:5
#17 0x00007fe9698524ab clang::CodeGen::CodeGenFunction::EmitAggregateStore(llvm::Value*, clang::CodeGen::Address, bool) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGCall.cpp:1325:61
#18 0x00007fe969b02c82 (anonymous namespace)::AggExprEmitter::VisitConstantExpr(clang::ConstantExpr*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExprAgg.cpp:135:7
#19 0x00007fe969afd343 clang::StmtVisitorBase<std::add_pointer, (anonymous namespace)::AggExprEmitter, void>::Visit(clang::Stmt*) ~/llvm/build/tools/clang/include/clang/AST/StmtNodes.inc:1125:1
#20 0x00007fe969afaa75 (anonymous namespace)::AggExprEmitter::Visit(clang::Expr*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExprAgg.cpp:108:3
#21 0x00007fe969afa695 clang::CodeGen::CodeGenFunction::EmitAggExpr(clang::Expr const*, clang::CodeGen::AggValueSlot) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExprAgg.cpp:2003:1
#22 0x00007fe969ac735e clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(clang::Expr const*, clang::CodeGen::Address, clang::Qualifiers, bool) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExpr.cpp:248:5
#23 0x00007fe969ac92aa clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(clang::MaterializeTemporaryExpr const*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExpr.cpp:0:5
#24 0x00007fe969ac6fce clang::CodeGen::CodeGenFunction::EmitLValue(clang::Expr const*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExpr.cpp:1419:12
#25 0x00007fe969b109c9 clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(clang::CallExpr const*, clang::CXXMethodDecl const*, clang::CodeGen::ReturnValueSlot, bool, clang::NestedNameSpecifier*, bool, clang::Expr const*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExprCXX.cpp:278:10
#26 0x00007fe969b0fe68 clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(clang::CXXMemberCallExpr const*, clang::CodeGen::ReturnValueSlot) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExprCXX.cpp:0:10
#27 0x00007fe969ae57ab clang::CodeGen::CodeGenFunction::EmitCallExpr(clang::CallExpr const*, clang::CodeGen::ReturnValueSlot) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExpr.cpp:4920:5
#28 0x00007fe969b6e4f9 (anonymous namespace)::ScalarExprEmitter::VisitCallExpr(clang::CallExpr const*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:578:36
#29 0x00007fe969b6e57d clang::StmtVisitorBase<std::add_pointer, (anonymous namespace)::ScalarExprEmitter, llvm::Value*>::VisitCXXMemberCallExpr(clang::CXXMemberCallExpr*) ~/llvm/build/tools/clang/include/clang/AST/StmtNodes.inc:911:1
#30 0x00007fe969b689e5 clang::StmtVisitorBase<std::add_pointer, (anonymous namespace)::ScalarExprEmitter, llvm::Value*>::Visit(clang::Stmt*) ~/llvm/build/tools/clang/include/clang/AST/StmtNodes.inc:911:1
#31 0x00007fe969b5e1c5 (anonymous namespace)::ScalarExprEmitter::Visit(clang::Expr*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:408:52
#32 0x00007fe969b6f839 (anonymous namespace)::ScalarExprEmitter::VisitExprWithCleanups(clang::ExprWithCleanups*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:2446:10
#33 0x00007fe969b68c79 clang::StmtVisitorBase<std::add_pointer, (anonymous namespace)::ScalarExprEmitter, llvm::Value*>::Visit(clang::Stmt*) ~/llvm/build/tools/clang/include/clang/AST/StmtNodes.inc:1131:1
#34 0x00007fe969b5e1c5 (anonymous namespace)::ScalarExprEmitter::Visit(clang::Expr*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:408:52
#35 0x00007fe969b5e12a clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGExprScalar.cpp:4871:3
#36 0x00007fe969a85c0b clang::CodeGen::CodeGenFunction::EmitScalarInit(clang::Expr const*, clang::ValueDecl const*, clang::CodeGen::LValue, bool) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGDecl.cpp:767:18
#37 0x00007fe969aa0a91 EmitDeclInit(clang::CodeGen::CodeGenFunction&, clang::VarDecl const&, clang::CodeGen::ConstantAddress) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGDeclCXX.cpp:0:11
#38 0x00007fe969aa0532 clang::CodeGen::CodeGenFunction::EmitCXXGlobalVarDeclInit(clang::VarDecl const&, llvm::GlobalVariable*, bool) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGDeclCXX.cpp:0:7
#39 0x00007fe969aa36fb clang::CodeGen::CodeGenFunction::GenerateCXXGlobalVarDeclInitFunc(llvm::Function*, clang::VarDecl const*, llvm::GlobalVariable*, bool) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGDeclCXX.cpp:811:3
#40 0x00007fe969aa2fa6 clang::CodeGen::CodeGenModule::EmitCXXGlobalVarDeclInitFunc(clang::VarDecl const*, llvm::GlobalVariable*, bool) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CGDeclCXX.cpp:542:3
#41 0x00007fe969e33d83 clang::CodeGen::CodeGenModule::EmitGlobalVarDefinition(clang::VarDecl const*, bool) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:0:5
#42 0x00007fe969e29847 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:3346:12
#43 0x00007fe969e2e6fc clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:3084:5
#44 0x00007fe969e36912 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CodeGenModule.cpp:5944:48
#45 0x00007fe96a0085a0 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/ModuleBuilder.cpp:178:73
#46 0x00007fe969defa60 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:230:12
#47 0x00007fe95cd4cc25 clang::ParseAST(clang::Sema&, bool, bool) ~/github.com/llvm/llvm-project/clang/lib/Parse/ParseAST.cpp:166:20
#48 0x00007fe966f1cfac clang::ASTFrontendAction::ExecuteAction() ~/github.com/llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1141:1
#49 0x00007fe969de9f42 clang::CodeGenAction::ExecuteAction() ~/github.com/llvm/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1107:5
#50 0x00007fe966f1c9ac clang::FrontendAction::Execute() ~/github.com/llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1036:7
#51 0x00007fe966e384fc clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) ~/github.com/llvm/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1036:23
#52 0x00007fe96b56dfb7 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) ~/github.com/llvm/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:266:8
#53 0x000000000042c22d cc1_main(llvm::ArrayRef<char const*>, char const*, void*) ~/github.com/llvm/llvm-project/clang/tools/driver/cc1_main.cpp:248:13
#54 0x000000000041f77e ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) ~/github.com/llvm/llvm-project/clang/tools/driver/driver.cpp:317:5
#55 0x00007fe9669702c5 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::$_1::operator()() const ~/github.com/llvm/llvm-project/clang/lib/Driver/Job.cpp:407:34
#56 0x00007fe966970295 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::$_1>(long) ~/github.com/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:45:5
#57 0x00007fe96275bd39 llvm::function_ref<void ()>::operator()() const ~/github.com/llvm/llvm-project/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:5
#58 0x00007fe96276dfea llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) ~/github.com/llvm/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:426:3
#59 0x00007fe96696fa37 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const ~/github.com/llvm/llvm-project/clang/lib/Driver/Job.cpp:407:7
#60 0x00007fe966900832 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const ~/github.com/llvm/llvm-project/clang/lib/Driver/Compilation.cpp:196:15
#61 0x00007fe966900a28 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const ~/github.com/llvm/llvm-project/clang/lib/Driver/Compilation.cpp:249:13
#62 0x00007fe96691dd55 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) ~/github.com/llvm/llvm-project/clang/lib/Driver/Driver.cpp:1622:7
#63 0x000000000041f177 main ~/github.com/llvm/llvm-project/clang/tools/driver/driver.cpp:489:9
#64 0x00007fe9620b5560 __libc_start_call_main (/lib64/libc.so.6+0x2d560)
#65 0x00007fe9620b560c __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x2d60c)
#66 0x000000000041e065 _start (~/llvm/inst/bin/clang+++0x41e065)
clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 15.0.0 (https://github.com/llvm/llvm-project.git 0624d1c9f192a4eee60284c48e3311960c521751)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: ~/llvm/inst/bin
clang-15: note: diagnostic msg:
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztW1t3o7oV_jXOi1a8kAABD3lwnMk0beZkOklPz5uXEMKhg8EVkHH667slwCB8SezY07N6zqxMYoS02d-3L9qSUZhHr1eTEqWCFSXKMyQFF1mJ7u9__TIit9OUZXOEXVTKKvs-sicj62ZkTUbUan7qS-IgzkpUiqIcc143FjCEl-gRjbzrugXBP55nRSleWIoeR8QfkUDdRhyN7BtkjexruLzp9X5mEo3IBMW9zlKUlcygmfKNAVWWAAbjiWs5qrfZnADQxGhVwtrr_mdWlTlaaS0bvceNSl33ASdbKFJkjsg1_KDLooxAGq8viYUuuUlfrzPQDop9AnPMk_K5Csc8X8BFmr60fy6XMv-X4GWvNQnh99039SurTQHMFGO-XII47ARYSX3JkwjpEWBZe_JY5lKo7vXlpCiELB_-1gKdoLpFU0wtzlTH6dccaBTy6XUpRjYo6c9F-bAUkmURXGAYeQnt0Kh71KLAkqoxKR6W7N-VeJC1EKG6fGElfxbFUJC1SxD4AfzAH_K1lGhRgRuHAjG0rPVCYLhfwd1KPQjUISPioZglqYjGNdVf7z9NHj-hogoXSQkjw2oOTrbMZakGP5flslCEkNv3WSApikrpf4tAc_AxnlaRQOWzQFyy4hmFjH8vJeOgzhQt4UEy5wKIjVCRV7JuViNZUeQ8YSXcgOBDBZfJsmxUfixBCIqqxXIdkxbcCr7KfC7ZAjE5rxYQx0XnO42yiTIvuQ2TDH4f5JFYPQAMLvIY7ICWTIIzIAh7AcrmMYqB0ronUT3bsfZEuQ5Viqikgu6-obnIwKzaj2BcJECN5hJss4L_tRh7h5jPzXDITDwHauNc7hYCV7aFrJUF_7xYBJQEFvM81nP74rWoP3yV4DKa2qfaPn7XSbIfsxwCSbCF9ripyh51SjomMh-rpXIw-PSPLFmphmSesbQYg7_A01zqqjDFHQY8xBCQEA0UrmX8BZwnFRK0V-EN2fNsWlKbKC07JclAST_mdBvR36rM0LVYp_ePadmq12Q5y1ZUdurZQw4tKrapN4XZMKuWD42SoFyVFfARIjHNVcCciU-bDvh0DIU9KjC4O6jDsjx7XeRVgTK2EMVSO2vQKK-SzDfB8xchX6c55MBVebdYpvXdmnDdB-RoF56ik6PbpkNjFJjkJ73QdIcI3cBGxvChU58o7PaoaAeWaQZqKAkTn-daaDaTkJpgwpzBPKH9Vz2DOvVfPi7yMaSJa2vlEOiuzLOW5xnyMPZ8n4O8ZfkM6SWafU_SdJaAyYRK4W1O2_0AP4bxxgP8ocKUUTQvNJNv6Ao9DVGBKSp0vMhGLMzfAE049FsLUvnLGgqicYhmWTpLc8Ac5QuWZGDINHpDLgwz5OIBVtsO6F4Rdgg9DBFG2rI9Dqit95ZFp6_MejlAKWcPlaOxv1u57rI_eUEBVAk9E0zR9tYwz1Pz7iQFdxk0lfki4Q8yEjDvzI3MoSpss3MP3IfmoJ1MubZjMuUMmXK9PdXtWZk6P3isCgS3h97IpAFlPvX7Rc7dt-sqScFy16wQ7UwhoLrU2otI03EgFV3rF_YaijUPNUWHY25q5a6hht9qPn5WyKnvqT-kQ05N5EGMoVqqS9saJxSJUDM2F58baU-vfRb2w98lbBJFMAkUR2Fuau_G0K1Y-PS5DzcIuhJGYTWmjsB3icPC3Vjri9sqqz1RN36CRc5kPpdi_juDPWVp2rq3TZR70557G1NaEFqE--StUghgflotpUIMK8EGX1Ik5VTtQrCsVHdBhoGzf-ewyN0NTUkDZdbo3K4IUtiMOTZgcWQ7dp_8x3JRar3zJnqneq2mbrEomjUrXWWOwwiBAXqJAMv2jhuTD_Vog4cGeqh8FP6WYP-ih70L4bZl8vikCi-Q8wsw0pa6GGsLdwYm1oAEBlXW0QY2QZzVmJavSsYOBx7ioIF7VIRuOqdqqXfQ3grQ-VzH8WOaH1Ysvxc1sfTaqmc-YsLmnu2KI2Bnr-pBT_kXsTgWe5ecel3-XrE0iRO91Dxp1lJ6taQ4vpGsiT3gJCCMHc7JF8jTMgH1_yOexAKWL0y-bvrGrl49zk6N1zLROgO0NOZHeMB9MwHtsf2pcWAHB2ZJQcxiKsRWwIPDsUx_-w38OBTyQeqNTMjf9bWa6rbMPU3rTjdX4srnPLoRPH1XLHzTW-W9VNCVr70hv8A6VkS_QHZ9XAquo2RQ6_4EWwC4Now8X-fVzhp0MPfHgvofsMYO9oe3j2P4DIRYAzrMGpAJ1zumBjzSB38O-AY5LIYHSWZQBlLhxMFbVcIjZymTOyrB97JwMmi1Ng1AV_u6TTuAwRCgWsSeoxbcZGX7Os8oDg-NoXOUjgHGRulhbu8DZX4g3N8PZT-nnt4gxSxDQ1dg_mY5vS9Qzl1RG2Hh6KLa7SZk85sFsHHs2x-Ke9X6T9C52eovNuGZd88GlTgONfO7-TWF8mfuBX80f8bYHji08__l0O4GHHLE2qAD-MZq6cQrHhOc7ylbdWtg8wuTgPkut46oUOqH3GXbbLWrPtE---76uF1snJQf9fSGGY_qvUq_Y2ZQuzGLBRgpsGrUJtS9RNVfQxvgZR_68PZAWL3RtV4unwz7oHDthbA_BO9CXj-mjv-c5iFLG7ibrG3joUtr68EJC1Nx-vjY5KDb6rMHW33MVt-CHURB8_aD2EaD6mns5na-shkociNM_lcc-djMH85gL5CRmNG3WPqSR1Uq9rtJw8_vlAbXISYNZg0nbDvy7UNp6HEQJ0CBdoa3GDgdxL5SW7eNHLOyEyTwHe84kLsQtnd5ut267RceZ8ILpYuu8LrJ37EHmAWN-XGYdyM9FxrLd0wDOgMvpQF-M6sPwTzly3vxIhrV-5DqlvNZxw0cR9cwHSCjNGOW5bvMevOtm1p0vck3fN1mP7rPMq-W30R8Eog1tvYbxGZ_U28yeL3EYtZnkYD0avVNds34d5FFqkaoFm3V_NOxNJ8megZrl0u2NYilfkXl8sjhnBir_6_qPUW9yDDWLWLBmsqg3eT8YNLTz2n_wvNa8qkKftIt7xyjCqIx5jEzgh_G3kr1QlIWTfqlz0rwqhRN04HvnpiqtuJ7Hw2SMXbMxZcTDBwmiJ1tMX4mffe7BMaWZ2Qk1xoyHJgM76H3zMRaNjXqQdeY4qmwfWc4EyyWSSrkna7WudjO7W5sysVPAWeohwmIdLnFNebz0KVRHHrmFwha907gS87ZJo4N4B-aA1okTzrGb3fq0GYZHbTdlOC2E3b9zyGckAhxjmfqrTWj4p5IyV5VBrSn9amDtqxS78ZPkdnWfgF_JLZ2cyWSyYvavLltNTK-kMQ94zgmDhx7nkAtG1Nc09ND87hgaforPLWd1LaAOs7DNnSvP7RVBh6EtDEn08CzCDeyfCOmdp0pBssu1LmBQWhvNVPX-LBUPsBSo_GxVC-76a6fUGPF9X7bbMZXK716gZ-QFQmfFbp_w5TRWTXMSskS9Vp-fXsgDshWjpjL7n79yF5Vrl2lNoAeMyLOrFEgb75kbA9H-Ouux8bNTWudv-bheitLmcZ2OtvQDdsE7vBoSdwsRGdSc67vtudKmt1FDujV2YhZnCn4f9p2bVt1qubYV7M33qmb3Oj91qf7dm-ApZ9WoHmh3zdzXDPuzFeVPTeM7OAws57CKY_DQs3XMVzzrWgPZibRf0Ny2xvh9R11XIHFIn013Gw_9vO-ou4QNUH1EntgxiCNme390fPjyZNeV7dRs8QMYJFobmUafOsyg23Umq0RjLpnMFB12LWfu6frpJmWT8NDD0Bb9wV6S6MLLoqHhDDiH0oI8F3sZgPu3ieAZvuu7malsvaaJUuUwzSHXd5LYOtaZ-WROPrNoy6QKTF5xFHk7ix0bnqfjZJ2Sz29i_-fy-NHGbzpF4mYEmJGpT0sb7HnIVUQn7o-dXxlt-4ICTVPalmh61J1REidPIGMx2Q5U-XNrNZl3_mWCAb2D6dQdyiZWtyUrNcgjvX5_u56OiNjMnbfeARIMB5BB7QJC55aC9eS3nN-tD4-pIeuZevbl_qkAhJSqrQ9qf0Gxc2CDPyk9pf6RC76ARZCYpWU9dFObDtKg6oQ6PJFncYthEBJb8nYfxIC-xTqsBR2x9ZYb9kddnh3DB2QRYkTYR7EOCDMEUJQi_gOd3xh2xjynsVdgj0Xr5_9xORcqEoBrXw6o85llX3P8h_ZZZpk1epynlVNP326Cy0Al9odRMu8SFb1Lb3ITQH_TaI52sX4BqtZXqotARQlbJ7lRZlwtCjmWoR5Cv0iurKjwA7YRZmUqbiatsd8dSi3h_Lro8ftLqc-TK9kGfXJn2fK958pv6hkenX8oXHXoZhcPF_FhEU2pBEccmyHLPKxoGGImRM5QRgwcZGyUKTF1cgFO5JM_EBahNLFvblIrohFiGWTAINdLHtsYc-ngjic08jyIxfyhYC8kY6VHuNczi_klVYprOYF3Exhpi26m6zQ57yEfhzIZ1X5nMurogyFnEP8Zhf66Vda-_8CxwFC_A">