<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/73619>73619</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang crash when using lifetimebound attribute
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
AMDG2
</td>
</tr>
</table>
<pre>
The following code makes clang 17.0 crashes when adding the `[[clang::lifetimebound]]` attribute.
```
template<typename T>
struct Bar {
int* data;
auto operator[](const int index) const [[clang::lifetimebound]] -> decltype(data[index]) {
return data[index];
}
};
int main() {
Bar<int> b;
}
```
Godbolt link: https://godbolt.org/z/jsaxvKsas
<details><summary>Stack dump</summary>
```
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: /opt/compiler-explorer/clang-17.0.1/bin/clang++ -gdwarf-4 -g -o /app/output.s -mllvm --x86-asm-syntax=intel -S --gcc-toolchain=/opt/compiler-explorer/gcc-13.2.0 -fcolor-diagnostics -fno-crash-diagnostics -std=c++20 <source>
1. <source>:12:15: current parser token ';'
2. <source>:11:12: parsing function body 'main'
3. <source>:11:12: in compound statement ('{}')
4. <source>:3:8: instantiating class definition 'Bar<int>'
#0 0x0000000003349f18 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3349f18)
#1 0x0000000003348044 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3348044)
#2 0x000000000329c028 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
#3 0x00007f25e6e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00000000068874ee clang::computeDependence(clang::CXXThisExpr*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x68874ee)
#5 0x0000000005f45260 clang::Sema::BuildCXXThisExpr(clang::SourceLocation, clang::QualType, bool) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x5f45260)
#6 0x000000000639169c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCXXThisExpr(clang::CXXThisExpr*) SemaTemplateInstantiate.cpp:0:0
#7 0x00000000063a9da7 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#8 0x00000000063d42a0 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformMemberExpr(clang::MemberExpr*) SemaTemplateInstantiate.cpp:0:0
#9 0x00000000063a9977 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#10 0x00000000063a9fc5 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#11 0x00000000063aaaf9 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformArraySubscriptExpr(clang::ArraySubscriptExpr*) SemaTemplateInstantiate.cpp:0:0
#12 0x00000000063a9ed2 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) SemaTemplateInstantiate.cpp:0:0
#13 0x00000000063b5bef clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) SemaTemplateInstantiate.cpp:0:0
#14 0x00000000063d1275 clang::QualType clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformFunctionProtoType<clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformFunctionProtoType(clang::TypeLocBuilder&, clang::FunctionProtoTypeLoc)::'lambda'(clang::FunctionProtoType::ExceptionSpecInfo&, bool&)>(clang::TypeLocBuilder&, clang::FunctionProtoTypeLoc, clang::CXXRecordDecl*, clang::Qualifiers, clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformFunctionProtoType(clang::TypeLocBuilder&, clang::FunctionProtoTypeLoc)::'lambda'(clang::FunctionProtoType::ExceptionSpecInfo&, bool&)) (.constprop.0) SemaTemplateInstantiate.cpp:0:0
#15 0x00000000063b549f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) SemaTemplateInstantiate.cpp:0:0
#16 0x00000000063ca95c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformAttributedType(clang::TypeLocBuilder&, clang::AttributedTypeLoc) SemaTemplateInstantiate.cpp:0:0
#17 0x00000000063b5bc7 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&, clang::TypeLoc) SemaTemplateInstantiate.cpp:0:0
#18 0x00000000063d0307 clang::Sema::SubstFunctionDeclType(clang::TypeSourceInfo*, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName, clang::CXXRecordDecl*, clang::Qualifiers, bool) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x63d0307)
#19 0x00000000063e4d9e clang::TemplateDeclInstantiator::SubstFunctionType(clang::FunctionDecl*, llvm::SmallVectorImpl<clang::ParmVarDecl*>&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x63e4d9e)
#20 0x00000000064304d0 clang::TemplateDeclInstantiator::VisitCXXMethodDecl(clang::CXXMethodDecl*, clang::TemplateParameterList*, std::optional<clang::ASTTemplateArgumentListInfo const*>, clang::TemplateDeclInstantiator::RewriteKind) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x64304d0)
#21 0x00000000063c3405 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x63c3405)
#22 0x00000000063df2e5 clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation, clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind, bool) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x63df2e5)
#23 0x000000000645ad1f void llvm::function_ref<void ()>::callback_fn<clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*)::'lambda'()>(long) SemaType.cpp:0:0
#24 0x0000000005a14cc1 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x5a14cc1)
#25 0x000000000645fa3d clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x645fa3d)
#26 0x000000000645fac5 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x645fac5)
#27 0x000000000645fb90 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, unsigned int) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x645fb90)
#28 0x0000000005c24b96 clang::Sema::ActOnUninitializedDecl(clang::Decl*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x5c24b96)
#29 0x00000000058e86d3 clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58e86d3)
#30 0x00000000058fca30 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58fca30)
#31 0x00000000058fddfd clang::Parser::ParseSimpleDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, bool, clang::Parser::ForRangeInit*, clang::SourceLocation*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58fddfd)
#32 0x00000000058fe2df clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, clang::SourceLocation*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58fe2df)
#33 0x00000000059a9a32 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x59a9a32)
#34 0x00000000059aa342 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x59aa342)
#35 0x00000000059ab149 clang::Parser::ParseCompoundStatementBody(bool) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x59ab149)
#36 0x00000000059ac40a clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x59ac40a)
#37 0x00000000058cabc8 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58cabc8)
#38 0x00000000058fcb79 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58fcb79)
#39 0x00000000058c5212 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58c5212)
#40 0x00000000058c632f clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (.part.0) Parser.cpp:0:0
#41 0x00000000058cda8f clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58cda8f)
#42 0x00000000058cef0a clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58cef0a)
#43 0x00000000058be95a clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58be95a)
#44 0x00000000044f8b05 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x44f8b05)
#45 0x0000000003dd5f21 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3dd5f21)
#46 0x0000000003d5b9fb clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3d5b9fb)
#47 0x0000000003eb5c23 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3eb5c23)
#48 0x0000000000bd50c5 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xbd50c5)
#49 0x0000000000bce42d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#50 0x0000000003ba7489 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#51 0x000000000329c453 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x329c453)
#52 0x0000000003ba76a9 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#53 0x0000000003b6f477 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3b6f477)
#54 0x0000000003b6fe2d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3b6fe2d)
#55 0x0000000003b79d0c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3b79d0c)
#56 0x0000000000bd2d31 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xbd2d31)
#57 0x0000000000acf511 main (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xacf511)
#58 0x00007f25e6e29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#59 0x00007f25e6e29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#60 0x0000000000bcdc2e _start (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xbcdc2e)
clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
Compiler returned: 139
```
</details>
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsXN932yib_muUG459JCTZ0kUuHDvpdqbdZuvsbO9yECCHqSQ0gFJn_vo9gGwLWXaSjtKv830zJ5M64tfzPry8PIAwkpJtKkovvfjKi1cXqFEPXFwuPq7ewYuMk6fLuwcKcl4U_BurNgBzQkGJvlIJcIGqDQjmUx9ggeQDleDbA60AIkTnVA8UeDPf1Htl8nrhwgsXBcupYiXNeFMRL17pn5kPkFKCZY2iU89fef6i_T3z2x_zp6JlXSBFvXCpnmpaoZKCOy-8tqlSiQYrcIUE8OZX9hkAALBKeXABCFLIC6-61etU1CgOeE0FUlxYFjyYYF5JpUsCVhG69WAK7KOX2AMmXngNCMWFRunBxDQdX9mqdP1pB6GgqhEV6OcJOxZ481ULe77qmaAhlohVHkzcagHQTHjhUpsfXoPsUHBfm8uu_f2Ok4wXChSs-uqFC_CgVC21qfDGgzcbmzrlYuPBmz89ePO7RNvHXyWSTr-FS0IVYoXUvRMuZVOWSDx54fVaIfwVkKasvXDpwZtDypl-v_1wvVhfA9lkJVMAgazZAEFrLhRQvI-QqYcmm2JeevCmKB53_0xqwX-nWHnwhknZUOnBG4AqAliFi4ZQ47DGkUGG8FclEKYeXIJa0FpwTKWkBEjeCPtYl0RScsyQogSIpgISC1ar1n-7drZG-VPPT28F3whUAiQ2TUkrpYEDD97wWiPDvKxZQcWEbuuCCyr0M-1rEz3OpoEHbzLd1_ahB688eAUmG_INiXwSgckGTLiuDdW1rrNRdaOmEkxKzQCYTLbJbIJkOZFPlUJbL1yxStECTNZgMtlgPFGcF_hBu1O4OgtKZw7CKZz6YJJjXnAxIQxtKi4VwxJM8opPDJnuY6mIF66wBQ59oF3DUrrr_0CT5DwOFwHUv2LNFG6EoJUCNRKSCqD4V1oBD861c8O5rQIOVRHs6jFFdYDKmworxiugw5yuww6jtpLwfCWsApoWPeaBVEhR3ZfADMK5HoPzlf4AU1tZNFBZ6IWLxFYlFaoUQ8oE2AJJCQjNWcUMOg_Ou-N4DxB4MPSBv_V3_4VhlOZBAozPm9Akn6T9cCtYpYxH3lm3Tg6ZBPp2z6USFJUenGnXNvEytcb8Bb_04JW_bUHtmdCogx7qxI-iIdTLgqKqqT9Va7apUOHBpKnMbEVAwXUr42HUEByM0MEIU-zDBCy1Q3-mmD9S8WRB_ReqSKGbSlrWnDxLXim6VVNc6yjgm__3TYRtE_McxnRGIxjrAWEMKljmwZttMrufRZOCVc12sqkam4Cnkk9nBrgp4sCOurBnSTKPKAWdyUpz1Ci6ojWtCK2MK3SSl1--3D0web2thQcXoxHcAnGQxl2kcR7FcOZ3ka5pieynq4YVxEHWhbw2Q-oDx0iPFu2-ncT_aVBxZ6bgJcg4L0azqAXsWDRzuA_TYJbiLpg7QemdQJXMuSjN5JegildPJW8k0FJG1mZspm32Vuu834cHLmzkMHW19Zzk5bgrNaPHldJh55y7xqCUoPmbG3NsxffCT1z4JILIf3P4H2mZUXFsRPf5601J-z2Rzv8uPaFjvd-Hn-P4bwQ_6MFHKE_fHP5CCPS0bjIrKI-NGUp_vWmw3zOUwL9Rz4Qu_CzOaP7m8O1k0oWvn3zg2ExSev6Y9aagNv3V5kW9CBbAeTw0tb25yTetTL4VXHFjf7j88W2-ivOj4rYDbKIH5wUqM4KMQE_OFds5KKa1fr6uKX5f5bxt0AqKman4egyATpblly9aRQqyorgw4-NI2bCcUSH7_vZPf6StzJuaHZta8Hrqv3r8xf3wEqX_TuGlJ1YxSuO3F6uL3R4feb2hbtnvMXl-NGHgtxdSP65H-5LXD_358IJKKwe1G1w6vAyDtCsrO8D64edjUyj2gT7SYodv0e5nfWBS2a3SY9POrtU0ECRMyn-jkv6VcDjqUq-lcr_U01z3NDmNSOpOxC0pGqzrH0f8H3Pf7ZnW0sPmyLpERfEbxYqL92VduHPxLRLlb0jsCupZaTYiD8bMLg_QFfdR6EfEfzkPvzHJ1PLLl49UPfC2Y3tL2G5Sv893ld8igUqqqNCu12Yz-4w6EzczBeoRtVjfDfmt9vWd71r6BhsctuYz_SaYor-yiozHuaXU4by3IsFh5MfD47wTMpYFkvIVGyfPDLdnkr8vOuzy6mmdoYL9aYBZPkcf04Y2h9fecojkkL6Q12Hgr2H7dC3nXf-HUGWYcKhyl15RjEiQg0fOSCdQ7XbX7wXNvXBpUu0Z1X6SxKgoMoS_3ueVOzwPVH-mfzRM0CUv64IqqoOlCXvftwU42ES37h2Dgxl1hpU9zKDtinVQwe4XBLtNajONP9XD8zZ0FnoxCiKMg2EAoqn-j6mHdZPnDDPa7uivrSo5T8hL-2W0_VFrh-M1cc9rchSSYUN_8l4fK7YbBhyKZkcU4RMxaICin4GeEeWGtd6hZ96nJ0tPnBn8C-jZn02NeXzWGumw4Aj9GMMoS2fDMBdYfar-tzIniXqWoAMiaz_BjDXyLSAHsSOX44QmMxICV7dq7zl87qwFFrmiYvc3F4uK7FeC8tgSm-lYWxy1QA7rqoPmO1fqhovPqNrQ9xVTo_Jl6ejy5R7rxkmOUeg_y9c7wZvaZeTWnnTrVK0Ujg08UNaeVA4R4BD-3JKur1R-DIWGIYfCoEchITk5S-Ga6SHdcbxTzjXMVJ-HQVc6y-SJHFbMvZzT53pnPM41pQ7nsMc5hSR_6TD_Sdj-UdxpahzuHEkdpyhFITzvr7uXTj6JfrR0AuTg1kFPbqty5zshbHbbBs_ET13oZZ0zGBJe3zljkW-5dciPeuSjMPoe8n8WtsdjShPhMBX3mMqCKD2LfNm-JLVn7IqTJw8m476NYYE4SGc9pDjy0Vmku223PtIhrXS-t9aYa-04qs9q-I59czfYYpTh5EX2rfavlp0UC2-noj7Y_bp2dO837EYLrIYGh6ekr6Wy-XmP_UdLZXN3KPXkO45hcD48aio-iY7Dva8UFfYVvpFn6We7ZYExldJslOVM8zCer2keukRFPd2OZyF8sQBy-Do5QEenq-9jw3RNaySUPUS1NgxuZUU90Y0JSs7bf721fnFSCL6VzeM5gbbRcYKeCsY0f2biueO12Ss_Xpt_qtEfDb1VPQWxj1CfaT6oHw47AB85aQr6vqy5UGZiG3VassY51rs6NsloGh9bv1jf9XZjNGB3vTOuQLBAHKSO6IuiPMncc5QlJ_QdrRZmTNpH11uKG0XbR-2FizHwtc07-BypFRIS59DZF74RepqpyADAMaG1LTvQZi60OEvzzKXONmYPSjAdZu-0LSP6aIvOge9Ip5BmMYbOdlQL9GDF435KTs5ZOWJgaVE5sB0l42ck9nEMMA7u2-s_h7WHeT_QBIclfkDi6EjTeQaX5uhmTPQWmwM-dcFjGkECdkQvgzsz2oeXT7tz7iNLZu7Jhq6jlV4dKZoCItjjiRkrdi9QZGgeJemYJ1m27dZflsGSlyWqSH-wDvbc0BF2hx8lWLVpJwDbrfsC9_d4uzV3VbxwkSHJ8L002VsWncz6wb0SiCm5S-5Vh4pC-79dx7bpOsviEKYX-_txtshzJ2K_8Gy4P4L-tYsoDjtdMXS5wqZ8bqo1ymnx5ND5Yw67Wpxdf49h37FmyFl2_Mc5Rk9GnvSA0CVulkfu6-4OcabH0NH8t2PTCde9gjrDqRXrmawLR6Z0bBvBjayxjhtFfTYoJK9l4xeeydNU_MKzo5cyzoXhfe_XiO1upb2CvdZF3pJDCp1t6dgVUtk8JT4-hXfV-ezIgIH5_xT3P5DDsQKYJcVhbdZTG5CErfzc6Y0dahM4Fkdvqp2ajkdSGBqPA9hRdT7CeRwE5mb0OC3aCp0WE_cCH0xJ-soLfKaIU2far5NGPri_18XupUJC3XdMenErNHJamfk9NUYwpMDWP1L_mCr3bXaTwwWgQpi35tqvEMhb9Q9w6-k5YgUl4BtTD4BumbLfOhCExnkaScHkESgOJKWAdcR529hOl7cX66kea7rwmTvv9ir64cb6BbkMSRqm6IJeBnM_COIkTPyLh0s_n83CJMoQIRgnGQ7CKEph6GcJjUgaJBfsEvowDAKY-PM4jfxpBKMkin0aIJj7WZB5kU9LxIqpHilTLjYX5jb65TycBelFgTJaSPNlDBC2rEEvXl2IS3OHPWs20ov8gkklDzUopgp6uTRk2hvs5osYGnPN2fl-gsPXLFw0orj8_pvzBu7_BwAA___DAzpG">