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

    <tr>
        <th>Summary</th>
        <td>
            Clang crash with c++20 concepts in template parameter declaration
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    Hi!
While using [tuplet::tuple](https://github.com/codeinred/tuplet), I noticed that sometimes clang crashes.
More specifically, this happens when a tuple contains multiple types one of which is another tuple.

I was able to isolate and reduce the problem to this Godbolt example: https://godbolt.org/z/f798578dv
in which I have included a (commented out) workaround that should be equivalent and works.

There seems to be a problem when constraints are provided in the template type-parameter declaration, while in require expressions they are ok.

Here the diagnostic files:
[main-1f6de0..tar.gz](https://github.com/llvm/llvm-project/files/10251591/main-1f6de0.tar.gz)

An the trace output:

```
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: /usr/bin/clang-14 -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name main.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/home/cava/Uni/tmp/clang-crash -resource-dir /usr/lib/clang/14.0.6 -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0 -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/x86_64-pc-linux-gnu -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/backward -internal-isystem /usr/lib/clang/14.0.6/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -std=c++20 -fdeprecated-macro -fdebug-compilation-dir=/home/cava/Uni/tmp/clang-crash -ferror-limit 19 -stack-protector 2 -fgnuc-version=4.2.1 -fno-implicit-modules -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/main-650d17.o -x c++ main.cpp
1. main.cpp:34:40: current parser token ';'
2.      main.cpp:34:12: parsing function body 'main'
3.      main.cpp:34:12: in compound statement ('{}')
4.      main.cpp:25:31: instantiating class definition 'my_tup<int, my_tup<int>>'
5.      main.cpp:8:31: instantiating class definition 'inherit<tup_element<0, int>, tup_element<1, my_tup<int>>>'
6. main.cpp:10:35: instantiating class definition 'tup_element<1, my_tup<int>>'
7.      main.cpp:25:31: instantiating class definition 'my_tup<int>'
 #0 0x00007fb070ed545a (/usr/lib/libLLVM-14.so+0xcd545a)
 #1 0x00007fb070ed2aef llvm::sys::RunSignalHandlers() (/usr/lib/libLLVM-14.so+0xcd2aef)
 #2 0x00007fb070ed2c3d (/usr/lib/libLLVM-14.so+0xcd2c3d)
 #3 0x00007fb06fc51a00 (/usr/lib/libc.so.6+0x38a00)
 #4 0x00007fb077cdd29c (/usr/lib/libclang-cpp.so.14+0x8dd29c)
 #5 0x00007fb077ce1741 clang::desugarForDiagnostic(clang::ASTContext&, clang::QualType, bool&) (/usr/lib/libclang-cpp.so.14+0x8e1741)
 #6 0x00007fb077ce1fe9 (/usr/lib/libclang-cpp.so.14+0x8e1fe9)
 #7 0x00007fb077ce8e33 clang::FormatASTNodeDiagnosticArgument(clang::DiagnosticsEngine::ArgumentKind, long, llvm::StringRef, llvm::StringRef, llvm::ArrayRef<std::pair<clang::DiagnosticsEngine::ArgumentKind, long> >, llvm::SmallVectorImpl<char>&, void*, llvm::ArrayRef<long>) (/usr/lib/libclang-cpp.so.14+0x8e8e33)
 #8 0x00007fb077aebd01 clang::Diagnostic::FormatDiagnostic(char const*, char const*, llvm::SmallVectorImpl<char>&) const (/usr/lib/libclang-cpp.so.14+0x6ebd01)
 #9 0x00007fb0791e3cb2 clang::TextDiagnosticPrinter::HandleDiagnostic(clang::DiagnosticsEngine::Level, clang::Diagnostic const&) (/usr/lib/libclang-cpp.so.14+0x1de3cb2)
#10 0x00007fb077ade4b4 clang::DiagnosticIDs::ProcessDiag(clang::DiagnosticsEngine&) const (/usr/lib/libclang-cpp.so.14+0x6de4b4)
#11 0x00007fb077ade778 clang::DiagnosticsEngine::EmitCurrentDiagnostic(bool) (/usr/lib/libclang-cpp.so.14+0x6de778)
#12 0x00007fb0782c7719 clang::Sema::EmitCurrentDiagnostic(unsigned int) (/usr/lib/libclang-cpp.so.14+0xec7719)
#13 0x00007fb0782b7d53 clang::Sema::SemaDiagnosticBuilder::~SemaDiagnosticBuilder() (/usr/lib/libclang-cpp.so.14+0xeb7d53)
#14 0x00007fb07875ea31 clang::Sema::CheckTemplateArgument(clang::TypeSourceInfo*) (/usr/lib/libclang-cpp.so.14+0x135ea31)
#15 0x00007fb078765816 clang::Sema::CheckTemplateTypeArgument(clang::TemplateTypeParmDecl*, clang::TemplateArgumentLoc&, llvm::SmallVectorImpl<clang::TemplateArgument>&) (/usr/lib/libclang-cpp.so.14+0x1365816)
#16 0x00007fb07876ab5c clang::Sema::CheckTemplateArgumentList(clang::TemplateDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo&, bool, llvm::SmallVectorImpl<clang::TemplateArgument>&, bool, bool*) (/usr/lib/libclang-cpp.so.14+0x136ab5c)
#17 0x00007fb07876db3e clang::Sema::CheckConceptTemplateId(clang::CXXScopeSpec const&, clang::SourceLocation, clang::DeclarationNameInfo const&, clang::NamedDecl*, clang::ConceptDecl*, clang::TemplateArgumentListInfo const*) (/usr/lib/libclang-cpp.so.14+0x136db3e)
#18 0x00007fb07876e961 (/usr/lib/libclang-cpp.so.14+0x136e961)
#19 0x00007fb07876ebe1 clang::Sema::AttachTypeConstraint(clang::NestedNameSpecifierLoc, clang::DeclarationNameInfo, clang::ConceptDecl*, clang::TemplateArgumentListInfo const*, clang::TemplateTypeParmDecl*, clang::SourceLocation) (/usr/lib/libclang-cpp.so.14+0x136ebe1)
#20 0x00007fb078802ca5 clang::Sema::SubstTypeConstraint(clang::TemplateTypeParmDecl*, clang::TypeConstraint const*, clang::MultiLevelTemplateArgumentList const&) (/usr/lib/libclang-cpp.so.14+0x1402ca5)
#21 0x00007fb078834d0b clang::TemplateDeclInstantiator::VisitTemplateTypeParmDecl(clang::TemplateTypeParmDecl*) (/usr/lib/libclang-cpp.so.14+0x1434d0b)
#22 0x00007fb07883c4d3 clang::TemplateDeclInstantiator::SubstTemplateParams(clang::TemplateParameterList*) (/usr/lib/libclang-cpp.so.14+0x143c4d3)
#23 0x00007fb078834633 clang::TemplateDeclInstantiator::VisitFunctionTemplateDecl(clang::FunctionTemplateDecl*) (/usr/lib/libclang-cpp.so.14+0x1434633)
#24 0x00007fb078836b76 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/usr/lib/libclang-cpp.so.14+0x1436b76)
#25 0x00007fb078892e66 (/usr/lib/libclang-cpp.so.14+0x1492e66)
#26 0x00007fb0782a3531 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/lib/libclang-cpp.so.14+0xea3531)
#27 0x00007fb07888e8f3 clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*) (/usr/lib/libclang-cpp.so.14+0x148e8f3)
#28 0x00007fb07888e939 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser&) (/usr/lib/libclang-cpp.so.14+0x148e939)
#29 0x00007fb0784199f9 clang::Sema::CheckFieldDecl(clang::DeclarationName, clang::QualType, clang::TypeSourceInfo*, clang::RecordDecl*, clang::SourceLocation, bool, clang::Expr*, clang::InClassInitStyle, clang::SourceLocation, clang::AccessSpecifier, clang::NamedDecl*, clang::Declarator*) (/usr/lib/libclang-cpp.so.14+0x10199f9)
#30 0x00007fb07882fcf9 clang::TemplateDeclInstantiator::VisitFieldDecl(clang::FieldDecl*) (/usr/lib/libclang-cpp.so.14+0x142fcf9)
#31 0x00007fb078836b76 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/usr/lib/libclang-cpp.so.14+0x1436b76)
#32 0x00007fb078892e66 (/usr/lib/libclang-cpp.so.14+0x1492e66)
#33 0x00007fb0782a3531 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/lib/libclang-cpp.so.14+0xea3531)
#34 0x00007fb07888e8f3 clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*) (/usr/lib/libclang-cpp.so.14+0x148e8f3)
#35 0x00007fb07888e939 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser&) (/usr/lib/libclang-cpp.so.14+0x148e939)
#36 0x00007fb07845887c clang::Sema::CheckBaseSpecifier(clang::CXXRecordDecl*, clang::SourceRange, bool, clang::AccessSpecifier, clang::TypeSourceInfo*, clang::SourceLocation) (/usr/lib/libclang-cpp.so.14+0x105887c)
#37 0x00007fb078803147 clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&) (/usr/lib/libclang-cpp.so.14+0x1403147)
#38 0x00007fb0788369e5 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/usr/lib/libclang-cpp.so.14+0x14369e5)
#39 0x00007fb078892e66 (/usr/lib/libclang-cpp.so.14+0x1492e66)
#40 0x00007fb0782a3531 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/lib/libclang-cpp.so.14+0xea3531)
#41 0x00007fb07888e8f3 clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*) (/usr/lib/libclang-cpp.so.14+0x148e8f3)
#42 0x00007fb07888e939 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser&) (/usr/lib/libclang-cpp.so.14+0x148e939)
#43 0x00007fb07845887c clang::Sema::CheckBaseSpecifier(clang::CXXRecordDecl*, clang::SourceRange, bool, clang::AccessSpecifier, clang::TypeSourceInfo*, clang::SourceLocation) (/usr/lib/libclang-cpp.so.14+0x105887c)
#44 0x00007fb078802ef1 clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&) (/usr/lib/libclang-cpp.so.14+0x1402ef1)
#45 0x00007fb0788369e5 clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*, clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&, clang::TemplateSpecializationKind, bool) (/usr/lib/libclang-cpp.so.14+0x14369e5)
#46 0x00007fb078892e66 (/usr/lib/libclang-cpp.so.14+0x1492e66)
#47 0x00007fb0782a3531 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/lib/libclang-cpp.so.14+0xea3531)
#48 0x00007fb07888e8f3 clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser*) (/usr/lib/libclang-cpp.so.14+0x148e8f3)
#49 0x00007fb07888e939 clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType, clang::Sema::CompleteTypeKind, clang::Sema::TypeDiagnoser&) (/usr/lib/libclang-cpp.so.14+0x148e939)
#50 0x00007fb07992f7f2 (/usr/lib/libclang-cpp.so.14+0x252f7f2)
#51 0x00007fb0783e8dcd clang::Sema::ActOnUninitializedDecl(clang::Decl*) (/usr/lib/libclang-cpp.so.14+0xfe8dcd)
#52 0x00007fb077bef0a1 clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) (/usr/lib/libclang-cpp.so.14+0x7ef0a1)
#53 0x00007fb077c0f00f clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/usr/lib/libclang-cpp.so.14+0x80f00f)
#54 0x00007fb077c138f9 clang::Parser::ParseSimpleDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributesWithRange&, bool, clang::Parser::ForRangeInit*, clang::SourceLocation*) (/usr/lib/libclang-cpp.so.14+0x8138f9)
#55 0x00007fb077c13d88 clang::Parser::ParseDeclaration(clang::DeclaratorContext, clang::SourceLocation&, clang::ParsedAttributesWithRange&, clang::SourceLocation*) (/usr/lib/libclang-cpp.so.14+0x813d88)
#56 0x00007fb077c8331b clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributesWithRange&) (/usr/lib/libclang-cpp.so.14+0x88331b)
#57 0x00007fb077c83db4 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/usr/lib/libclang-cpp.so.14+0x883db4)
#58 0x00007fb077c88b52 clang::Parser::ParseCompoundStatementBody(bool) (/usr/lib/libclang-cpp.so.14+0x888b52)
#59 0x00007fb077c8a60a clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/usr/lib/libclang-cpp.so.14+0x88a60a)
#60 0x00007fb077c8b34b clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/usr/lib/libclang-cpp.so.14+0x88b34b)
#61 0x00007fb077c0f1d9 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/usr/lib/libclang-cpp.so.14+0x80f1d9)
#62 0x00007fb077c7a568 (/usr/lib/libclang-cpp.so.14+0x87a568)
#63 0x00007fb077c8f7be clang::Parser::ParseExternalDeclaration(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) (/usr/lib/libclang-cpp.so.14+0x88f7be)
#64 0x00007fb077c8fb46 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) (/usr/lib/libclang-cpp.so.14+0x88fb46)
#65 0x00007fb077bd9f38 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/libclang-cpp.so.14+0x7d9f38)
#66 0x00007fb0791b3f39 clang::FrontendAction::Execute() (/usr/lib/libclang-cpp.so.14+0x1db3f39)
#67 0x00007fb079153427 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/libclang-cpp.so.14+0x1d53427)
#68 0x00007fb07920ae7a clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/libclang-cpp.so.14+0x1e0ae7a)
#69 0x000055c156b976f1 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang-14+0x176f1)
#70 0x000055c156b99337 (/usr/bin/clang-14+0x19337)
#71 0x000055c156b8d216 main (/usr/bin/clang-14+0xd216)
#72 0x00007fb06fc3c290 (/usr/lib/libc.so.6+0x23290)
#73 0x00007fb06fc3c34a __libc_start_main (/usr/lib/libc.so.6+0x2334a)
#74 0x000055c156b8f655 _start (/usr/bin/clang-14+0xf655)
clang-14: error: unable to execute command: Segmentation fault (core dumped)
clang-14: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 14.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-14: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-14: note: diagnostic msg: /tmp/main-1f6de0.cpp
clang-14: note: diagnostic msg: /tmp/main-1f6de0.sh
clang-14: note: diagnostic msg: 

********************

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsXNty2ziTfhrmBkUVz6QufCHL1sS1nok39hzuXCDQlPCHJPgDoCPPxT77FkDqAOpgMfHuzs4k5VIkEmh8_TXQ3SABYCnZsga4cuJrJ775gFu14uKKRC_Rh5zT16uPzAl8x7txvNnvK1YCaiWrl8iJr1XblKCccOaEM_PdiW-cIFsp1Uh9NVg4wWLJ1KrNJ4RXTrAgnAKrBVAnWPS1g6kTzNEdqrliBChSK6yQ5BUoVoFEpMT1EhGB5QrkpIPxMxeAZAOEFYzgsnzVEtSKSbTCTQO1RF9XUCOMTBOI8FphVktUtaVi-op6bUAiXgPiBfq6YmSFmES45moFoqvVN9V93qGvWCKc66ocMclLrADhmiIBtCWA1ApQI3heQqVLGCw_cZrzUiFY40pzE87QgJmuwISLpRMs_nSCRZFOszjN6EvXLKt7cHdohV8AsZqULQWKMHKCjPCqgloBRbzVNKKvXHzBgrf1hsQVb0uKckDw75a94BJqZUDrgtJS8GkFmlKASmr8OSC81cdwSXgtlcCsVhJhYZR9YRoKq43yCqrGkKKpdRsscAUKBKJASiywYrzWRvpqOhCrkdCQBCBYNwKkZLyWWs6rEc6_WOA-amy6EcrwsuZSMYIKVoJhsisXX1eY1a5fJBS8yURhMVn--WZvLMuXzX9uI_i_gChtBCM6WPheEPvx1HeCxb7wXnYw3Yc461kQmIA2R9OqHbjuM_H6P_Pz4f529niLZJtXTCGM8naJBDRcKM3_aMxMytaANvbt-4mBZEYOyjH5YsBpIzQCGsEJSAkUSd6K7rKuiaXkhGHdqURbI0kEa1RvjEeFyRdE26rZquZN0IPgS4ErhMWy1d1Rw0ZOsGilcIJFzmo96vUYdv0IuYT4yFXCDMJ1ljwnkdsQt2R1u3aXdYtcqJhyef4v5FYCSrx2cVkid_NDQMmJ6UwSuZRJPSLdQgAgl5SAhYulcnMouABXqww13ZUzlL2AYAUDYS4TLKj7gssW3BprZ-MaQ-sOYC4g_XNCmqZD0zftVpxCiRpGkNsw4pbwAiUKuh9Mug0D5FaFHgFuw1mtQDjhjdGjqLBauSBEzZFbFI2rXZPARDnhDa-RW9TcNQOY1UtXl0Vu1Y28liguXFwyLDXOoq2_spq6SmsmnfAmQK7CYgnKJU2rqXWTCLmqrcFcWEINQgOuNAvaBICVKwkuOwrZGqjGpduQ7lcsau3iXQp5u1yC0IJYvXTCmyXNkVsQ_gICL8ElvGpY2dFCmdbTCRYrXoG2On7BTrD4tWba2VfNtiN0XdIV0PU9XXHXY0qWbwrqMRhNvEmCXMNijUuXyVepoBr2sMmkq5pEerwQ4gSLI91LCwwmwcTb1Bh89ONGt-8E1-avr_B_j-C4vL8ELj3SvmJBz4E5Ztad3LM1OcHlZUXfU-PjVQ5BwFp_IftgLirUId4WlYo64U1PbuAht6DQCCDaFbsVJoKbS3m7_K4xV3RjvGQ66vhT3S4mX3QgUaA9jHZjxbJuiXaUOio74U00CSZ-55tY1ZSMMKVdYFsaR0TWaxfWBJreKxfWD8JLLtxd3NbXMKVCsiVyb56ff5rPnz_Ofrt9vvl99nkRPM8Xd8-zx5-d8MZHLkdbJYxfTmKP-umEI3eNeqa2HrqLR_5kdyGchZETziJPByTSCqGznwYLqTM8_gVq5ASpE17rT1M5mCDzbyjBD7QEXVP7xKKtidYO6dxYi9DFtzLCszKYzqOqxmRoUmEFOmDqVE7XT6-d9EZ_2WQW0aGsINYC_U6WVLhWDCuNipRYSkShYDUz6DSw12fVNk44Z7XS8d36Hd7qvw3s-LCpbERLrF6BYMoJ56ptnqE0ejnh3NPN9q3pDN266Z_AtAcrsczpa0uG8WWQLmtr01D6nlTvyUVOEHrIW3ue56VF7qUe0DiKcWdzyzWWLL-__-1n148mkjvBtbcmpui2O2hZ_kBWgKFAJiM0czD5Krsvn9v6kS1rXH7ENS1BSNPe9MJmtVSr2WDYLAnppbJISC1Z4Z6spCCxjz3vuCwykVwHiWtvHWbY8ywx0T6klFAaTMkJMZ3_axotzo-MvMyUtwTGtkDw08jvJp8dpRRku8RiwcXN1pvpSdiuxOzxac5rBWvlBInucHv3_rPF5dNrY_LsnPPSlDhhj6OADR4LcDIEXMA4gQVMLYHpQGAGYbivw4KLCqvZ49MvnMKOhFmf-Ntk7O7L23rJaug56gv_B6up5qLkOh-Y7_XhRyVYvfyse-AFl2dC4Fd9NZybCKqvNVgHxfk3gglvUe-u9hqvcFn-ZgLkXdWUWvgKC1PMGPqFM-oEs5PQesEjLa75twyUWQbCkFPP6qJ7HXPPYHZ3XWHRzeV7vAcXLtV62tW6XKHE4LUUmu4rNPUhJHmwr9ATrPfgP4h-LqVvdY7t1FA8YfB7PVMbjMxd0Q0N40amTw3s3fOAIPQ921AUojw63ubdTe-xH7oJub7zlirfxr4BYaH0hyjTNDuO0iLxtmJq3qVTFv2dWxvBXGJatCBZgSYLSJr6031Ij1Dh8yja2jzNpCbtGIMGTGMWmtBGk6c0Do-j0d92MK5bVtJNR_2v4_fOxOOj6EzjFjorAmZpDDj0j6Obr4B8eeof0B131zo2PZrZ-F1dcOMKxoyB0LRuwYtteEmc-ckF8DSQExD3SjxgUd0AKTdO7LDURsY9J72TPuvYTgvY-bsRdBhtLTqSAR04j8kIa90zeYKO4zR0trzvn1i9xRGTqjN7sstPvpuwnaDu_7FdylBkcZgOOKR5CGc4nPNaz0Q3-O6oTeD8jz8eCW_gsYF91385jTe7R9u_4MoMnFNy9H163FI9ygt7c2-pvYg9jlNNmcVpNuAUpok_SqKuYEmcDiXmcMIvzZTCZKXH83z7dsG20S8gFVDN3mP3tgeEGdBv2eGdOT5a_rwfGvaccWbSnO2TGlgZRZZ5AcHxiVDU5lKd4_RCP2pJOMXFz22pmMmqjrH4jQlVZLSz1Pdt9cOIevkxm2hd7razdd6H4N-YZOq42hcRMwq8wWaBDwbgSUTDy8F39uyLPGCBK3kc9sPmnVsXK0bj1rAs3OGQ9CQcgduQvugfltnBah_98RLjSU9CG3w0AJ_k6Yn0Ywcd5iWWA3bPRoD5H398BsLFKdd-_vbFg-eo-zEOEZfsTwNsM4UdnYT7kaHG4s5O3bJpAEkyRqKpYEm0s58Ah_GpXFW09e9MrR7bomCEQa3MW8fHxry6PG-YXb6yeUb7LMz0W0_PO_zTsbNwMFAtXewsJMsgK07MCj5377jnvGpK6PyKSZ8u72D7j42OJzp7sjd94GhBXaCfhejZx9gBZrS0aMiGNEzDE1O1IzT8FSgYG5WMhhYFdqYT-dNpcYICk48uGJT00AMO0pfL1D8yX7Pun_M7h3RvEvW9QrfrRhxWvauNi7yrmXpUr-WBUc4ZckYISLnN4y7PkDcE8fH91jM22TdaOMikgoLYRrskqh035N7lscPLoLBgDjOeH_Hr4vgVBu8dv8Lw7xO_wuhH_NI0xP_4-GW_QcqiOMvSc8-krrGEPfedXe4pOoI-43oJJ8LN-eDwVrT7nsm2Z9S2eBlkeF7oR-mZybbFixxFzHt52HHTa62PpXA2DDZTOPF04UewmYL1aMJ-h_UewSby_j7BJvJ_BBtNQ_CPDzZR-CPYHAs2UTR8sgvFidH-_zPYaH0sheMfweZbg02UvHuwSf9GwebgkdQ_M9hM__HBJrZSqOk0KNIiuFxiEJsKlkQ7kQkho4SeeKtJ1Kf619qsDtVeAE488xtr6sK0aYGy0oo0h8LD1uB9MKud977vPWucFQrE7tHarKYzpQTLWwXy-ANKLg593kELdPu6_czr8P1aCy5MrL6r2ei3VqnR2KIktBcxeoXnFW9S8pPgbWMr_dAt99Z3tT8_1GHHynbR59k0YRhj3ouDzKhocTBYG-uHmf2I84CDR6YH6s3-Vr3jHeAyVY-ae6976TDS52fJiRTtLDtv8TyGPUOOxV48ZI9m2aWD6n-Xt_dkgWbWSrx4sLo4C0M_P9-HNvsZPomhl7Ecy9FVRfaKokdVbQwdBu1uPdFZv6MrfcdIPEnzGBoNSxaN6ZBGaq8EvZDGvwpv48ig9oLTOBuQkeVxcBbcvN8ssyXlmtPXb1lqmpm2LDDTARicePgsmM1KhSGYY2H9POdm2dn4zqUR7quQeAMV8jA6P0Y3KtxsN6-cDHr_cwH_vlur0g-5b1mskhlNLSr8Ydj36fmQ9zcI-z61AldiZ4MkxXGSjRBoylsCB7lUVqQ5nCX1dt3tdzwZEUdEtANLjO0jGq2lTjRUJ4-Ss-o88cY8BDjM3z81-N8tPKjhPpNNpzLbPuxlsOOw55E1TU_spCSn0yI8TEpmj0-D6ZuelBxbizsmxzZtWWASe9tGHhb2BHMh9NCo6cw4m-7a7RpIq2DsunefGulW86ndfBxGgfV6Zm72x4LoHh8RsAD0mOwX9zbe0RtADAILohXppoGHIcX26goDZof0ZeswsnOajH06AKZlC9om7sUx8eMkn6ZJ4SNC_OduH2t2dAOTvUuo2x51sHNouwvKRmgfAdHh0o3uo0q9AappGKZvStGFLCm-LSWjgZ-YPZ1vidIFLUmBvUsxJMH07V2KQRhMPUtMOBQTRhg9P-tqz1JhoZ4P0B0XHEaWFdNooGmRxDHqRL6lqy66lbW9E86Q2Rquv7T15qQb6PopIryqcE31zUdY6uTH9FZU4LZU3Vk0AszRIEDPyzYXUdGPuI1gVGBWAkW0Nc1Ks3dVy20lIPfFXANAbG-c7DeC-s3qqD9XoDvSxhyHods8tpW_P_VGAKbInOdh9nhzydb9iT96yJUl0BsmDk40OVCv5sqc77N3QE0ll6Zeb7Lv-Ns7RKY_NWb29DSbf0RPH2_R4tP9_aff7375CS3u7m8f0dMnc_n615_Q59uHT5-fnM1ZLQ_HTn3JpB6uJ09-2RYQgMzxJ0AR3p1scyEF1ib-_hSd7Zb975AhV99giXe1x_ZQnw_0KqTTcIo_wJWfpH6QplkQflhdFUUaTv0oSNIUstiHDIo8JBlN4iCkcTj9wK4CLwj8wE99P_aCcOJTLySel0Yp9ZKYZk7kQYVZOdGeecLF8oM57OcqnsZJ8qHEOZRyc3aXuDKH3OTtUjqRVzKp5K6aYqqEq3m5PU8LfWVqhXZnTpBum4Q0ZzptznM6epTTh1aUV99-SJGB_t8BAAD__1ZQWoI">