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

    <tr>
        <th>Summary</th>
        <td>
            Segfault during template instantiation
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    As per title. Notes:
- GCC works fine
- It reports an error of BufferType not being a type if I remove the decltype wrapping it, GCC works fine in this case too

Expanded source and reproduction script:
[example_crash-4d4720.zip](https://github.com/llvm/llvm-project/files/8840114/example_crash-4d4720.zip)

Simplified source (aka my code)
```cpp
#include <stddef.h>

#include <type_traits>

template<typename T, typename... Ts>
struct Tuple {
    T elem;
    Tuple<Ts...> next;
};

template<>
struct Tuple<void> {};

template<typename T>
struct Tuple<T> {
    T elem;
    Tuple<void> next;
};

template<typename T>
static constexpr T&& rvalue_cast(T& val) {
    return static_cast<T&&>(val);
}

template<typename T>
static consteval bool is_cstring_type() {
    return std::is_same_v<char*,
        std::add_pointer_t<std::remove_cv_t<std::remove_pointer_t<std::decay_t<T>>>>>;
}

template<typename T>
inline constexpr bool is_really_pointer = std::is_pointer_v<std::remove_reference_t<T>>;

// string types

template<size_t size>
struct Buffer {
    char data[size];
};

struct BufferView {
    size_t size;
    char* data;
};

namespace buffer {
    template<size_t n>
    consteval size_t size(Buffer<n>&) {
        return n;
    }

    constexpr size_t size(BufferView& buf) {
        return buf.size;
    }
} // namespace buffer

// actual code

template<bool is_really_pointer>
struct CStringHelper;

template<>
struct CStringHelper<true> {
    template<typename>
    using BufferType = BufferView;
};

template<>
struct CStringHelper<false> {
    template<size_t n>
    static consteval size_t length(const char (&)[n]) {
        return n;
    }

    template<typename T>
    using BufferType = Buffer<length(T{})>;
};

// transform into buffer

template<typename T>
using BufferType = decltype(CStringHelper<
    is_really_pointer<std::remove_reference_t<T>>
>::template BufferType<std::remove_reference_t<T>>);

template<typename ...Ts>
using TupleOfBuffersType = Tuple<BufferType<Ts>...>;


template<typename ...Ts>
static auto print(const Ts&... srcs) {
    // transform everything into a buffer/bufferview
    auto buffers = TupleOfBuffersType<Ts...>();


    return buffers;
}

int main(int argc, char** argv) {
    // clang-format off

    print(
        "afaifjiaogjrtogjoajrgoapgrjgjotjpasjgsfghshjspjhghjoghsjohijspjgsptjsjpgtoistghsòjòas"
        , 
        "aiogjgjhowrtjhòoijtyhoejyojhjyeiohjojyjheyjhjsfogsgòsfglksògksàòkà"
    );

    // clang-format on

    return 0;
}
```

Command:
```bash
clang -ffreestanding -nostdlib -nostdlib++ -std=gnu++20 -O2 example_crash.cpp
```

Stack dump and other info:

```
Stack dump:
0.      Program arguments: /usr/bin/clang-13 -cc1 -triple x86_64-pc-linux-gnu -emit-obj --mrelax-relocations -disable-free -disable-llvm-verifier -discard-value-names -main-file-name example_crash.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -fno-rounding-math -mconstructor-aliases -ffreestanding -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/Projects/utter2 -resource-dir /usr/lib/clang/13.0.1 -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.1.0/../../../../include/c++/12.1.0 -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.1.0/../../../../include/c++/12.1.0/x86_64-pc-linux-gnu -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.1.0/../../../../include/c++/12.1.0/backward -internal-isystem /usr/lib/clang/13.0.1/include -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.1.0/../../../../x86_64-pc-linux-gnu/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -std=gnu++20 -fdeprecated-macro -fdebug-compilation-dir=/Projects/utter2 -ferror-limit 19 -stack-protector 2 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/example_crash-e67e49.o -x c++ example_crash.cpp
1.      example_crash.cpp:106:5: current parser token ')'
2.      example_crash.cpp:99:33: parsing function body 'main'
3.      example_crash.cpp:99:33: in compound statement ('{}')
4.      example_crash.cpp:91:13: instantiating function definition 'print<char [88], char [73]>'
 #0 0x00007f89e959ffda (/usr/lib/libLLVM-13.so+0xb97fda)
 #1 0x00007f89e959d65f llvm::sys::RunSignalHandlers() (/usr/lib/libLLVM-13.so+0xb9565f)
 #2 0x00007f89e959d7ad (/usr/lib/libLLVM-13.so+0xb957ad)
 #3 0x00007f89e86028e0 (/usr/lib/libc.so.6+0x3e8e0)
 #4 0x00007f89f08c8272 clang::Sema::SubstituteExplicitTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo&, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, llvm::SmallVectorImpl<clang::QualType>&, clang::QualType*, clang::sema::TemplateDeductionInfo&) (/usr/lib/libclang-cpp.so.13+0x15e6272)
 #5 0x00007f89f08c8c65 (/usr/lib/libclang-cpp.so.13+0x15e6c65)
 #6 0x00007f89f03832a0 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/lib/libclang-cpp.so.13+0x10a12a0)
 #7 0x00007f89f08d4826 clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, clang::QualType, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool) (/usr/lib/libclang-cpp.so.13+0x15f2826)
 #8 0x00007f89f0806f23 (/usr/lib/libclang-cpp.so.13+0x1524f23)
 #9 0x00007f89f0807746 clang::Sema::ResolveAndFixSingleFunctionTemplateSpecialization(clang::ActionResult<clang::Expr*, true>&, bool, bool, clang::SourceRange, clang::QualType, unsigned int) (/usr/lib/libclang-cpp.so.13+0x1525746)
#10 0x00007f89f060a1a5 clang::Sema::CheckPlaceholderExpr(clang::Expr*) (/usr/lib/libclang-cpp.so.13+0x13281a5)
#11 0x00007f89f067cb4a clang::Sema::ActOnDecltypeExpression(clang::Expr*) (/usr/lib/libclang-cpp.so.13+0x139ab4a)
#12 0x00007f89f0904e85 (/usr/lib/libclang-cpp.so.13+0x1622e85)
#13 0x00007f89f0908178 (/usr/lib/libclang-cpp.so.13+0x1626178)
#14 0x00007f89f09082d7 (/usr/lib/libclang-cpp.so.13+0x16262d7)
#15 0x00007f89f090838f clang::Sema::SubstType(clang::QualType, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName) (/usr/lib/libclang-cpp.so.13+0x162638f)
#16 0x00007f89f0861e74 clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation, clang::TemplateArgumentListInfo&) (/usr/lib/libclang-cpp.so.13+0x157fe74)
#17 0x00007f89f0921145 (/usr/lib/libclang-cpp.so.13+0x163f145)
#18 0x00007f89f0905f4b (/usr/lib/libclang-cpp.so.13+0x1623f4b)
#19 0x00007f89f0908178 (/usr/lib/libclang-cpp.so.13+0x1626178)
#20 0x00007f89f091ea8e (/usr/lib/libclang-cpp.so.13+0x163ca8e)
#21 0x00007f89f092128c (/usr/lib/libclang-cpp.so.13+0x163f28c)
#22 0x00007f89f0905f4b (/usr/lib/libclang-cpp.so.13+0x1623f4b)
#23 0x00007f89f0908178 (/usr/lib/libclang-cpp.so.13+0x1626178)
#24 0x00007f89f09082d7 (/usr/lib/libclang-cpp.so.13+0x16262d7)
#25 0x00007f89f090838f clang::Sema::SubstType(clang::QualType, clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation, clang::DeclarationName) (/usr/lib/libclang-cpp.so.13+0x162638f)
#26 0x00007f89f0861e74 clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation, clang::TemplateArgumentListInfo&) (/usr/lib/libclang-cpp.so.13+0x157fe74)
#27 0x00007f89f0921145 (/usr/lib/libclang-cpp.so.13+0x163f145)
#28 0x00007f89f0905f4b (/usr/lib/libclang-cpp.so.13+0x1623f4b)
#29 0x00007f89f0908178 (/usr/lib/libclang-cpp.so.13+0x1626178)
#30 0x00007f89f0911760 (/usr/lib/libclang-cpp.so.13+0x162f760)
#31 0x00007f89f090e4b9 clang::Sema::SubstInitializer(clang::Expr*, clang::MultiLevelTemplateArgumentList const&, bool) (/usr/lib/libclang-cpp.so.13+0x162c4b9)
#32 0x00007f89f0933a39 clang::Sema::InstantiateVariableInitializer(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&) (/usr/lib/libclang-cpp.so.13+0x1651a39)
#33 0x00007f89f0944472 clang::Sema::BuildVariableInstantiation(clang::VarDecl*, clang::VarDecl*, clang::MultiLevelTemplateArgumentList const&, llvm::SmallVector<clang::Sema::LateInstantiatedAttribute, 16u>*, clang::DeclContext*, clang::LocalInstantiationScope*, bool, clang::VarTemplateSpecializationDecl*) (/usr/lib/libclang-cpp.so.13+0x1662472)
#34 0x00007f89f09449af clang::TemplateDeclInstantiator::VisitVarDecl(clang::VarDecl*, bool, llvm::ArrayRef<clang::BindingDecl*>*) (/usr/lib/libclang-cpp.so.13+0x16629af)
#35 0x00007f89f0917668 (/usr/lib/libclang-cpp.so.13+0x1635668)
#36 0x00007f89f091d9c1 (/usr/lib/libclang-cpp.so.13+0x163b9c1)
#37 0x00007f89f0920329 (/usr/lib/libclang-cpp.so.13+0x163e329)
#38 0x00007f89f093d51d clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation, clang::FunctionDecl*, bool, bool, bool) (/usr/lib/libclang-cpp.so.13+0x165b51d)
#39 0x00007f89f03832a0 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) (/usr/lib/libclang-cpp.so.13+0x10a12a0)
#40 0x00007f89f08cc7b4 clang::Sema::DeduceReturnType(clang::FunctionDecl*, clang::SourceLocation, bool) (/usr/lib/libclang-cpp.so.13+0x15ea7b4)
#41 0x00007f89f05bb64f clang::Sema::DiagnoseUseOfDecl(clang::NamedDecl*, llvm::ArrayRef<clang::SourceLocation>, clang::ObjCInterfaceDecl const*, bool, bool, clang::ObjCInterfaceDecl*) (/usr/lib/libclang-cpp.so.13+0x12d964f)
#42 0x00007f89f0811b7e (/usr/lib/libclang-cpp.so.13+0x152fb7e)
#43 0x00007f89f0812312 clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/usr/lib/libclang-cpp.so.13+0x1530312)
#44 0x00007f89f05fd8d5 clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) (/usr/lib/libclang-cpp.so.13+0x131b8d5)
#45 0x00007f89f05fdee2 clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) (/usr/lib/libclang-cpp.so.13+0x131bee2)
#46 0x00007f89efcfa3ed clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) (/usr/lib/libclang-cpp.so.13+0xa183ed)
#47 0x00007f89efcfd2b1 clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) (/usr/lib/libclang-cpp.so.13+0xa1b2b1)
#48 0x00007f89f1938ade (/usr/lib/libclang-cpp.so.13+0x2656ade)
#49 0x00007f89f1938c57 (/usr/lib/libclang-cpp.so.13+0x2656c57)
#50 0x00007f89f1938dad (/usr/lib/libclang-cpp.so.13+0x2656dad)
#51 0x00007f89efd7b45e clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) (/usr/lib/libclang-cpp.so.13+0xa9945e)
#52 0x00007f89efd799e3 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributesWithRange&) (/usr/lib/libclang-cpp.so.13+0xa979e3)
#53 0x00007f89efd79c11 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/usr/lib/libclang-cpp.so.13+0xa97c11)
#54 0x00007f89efd7e5c2 clang::Parser::ParseCompoundStatementBody(bool) (/usr/lib/libclang-cpp.so.13+0xa9c5c2)
#55 0x00007f89efd7ff1a clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/usr/lib/libclang-cpp.so.13+0xa9df1a)
#56 0x00007f89efd80f8b clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/usr/lib/libclang-cpp.so.13+0xa9ef8b)
#57 0x00007f89efd02a9b clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/usr/lib/libclang-cpp.so.13+0xa20a9b)
#58 0x00007f89efd6ee7a (/usr/lib/libclang-cpp.so.13+0xa8ce7a)
#59 0x00007f89efd852dd clang::Parser::ParseExternalDeclaration(clang::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) (/usr/lib/libclang-cpp.so.13+0xaa32dd)
#60 0x00007f89efd855f8 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) (/usr/lib/libclang-cpp.so.13+0xaa35f8)
#61 0x00007f89efcd0139 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/libclang-cpp.so.13+0x9ee139)
#62 0x00007f89f1259f79 clang::FrontendAction::Execute() (/usr/lib/libclang-cpp.so.13+0x1f77f79)
#63 0x00007f89f12002cf clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/libclang-cpp.so.13+0x1f1e2cf)
#64 0x00007f89f12a55f0 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/libclang-cpp.so.13+0x1fc35f0)
#65 0x0000563fe92be84c cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang-13+0x1684c)
#66 0x0000563fe92c0c2d (/usr/bin/clang-13+0x18c2d)
#67 0x0000563fe92b5185 main (/usr/bin/clang-13+0xd185)
#68 0x00007f89e85ed290 (/usr/lib/libc.so.6+0x29290)
#69 0x00007f89e85ed34a __libc_start_main (/usr/lib/libc.so.6+0x2934a)
#70 0x0000563fe92b7485 _start (/usr/bin/clang-13+0xf485)
clang-13: error: unable to execute command: Segmentation fault (core dumped)
clang-13: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 13.0.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-13: note: diagnostic msg: 
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzlXN1zozgS_2s8LypcID4MD3lwnGR36mZv5sa5uUeXjISNByNOQMbZv_5aAgzC4JjsXN3t3VTGwaBu_fpDre4GsuX09W6Zo4wJVMRFwubor7xg-cxezsyHmbk00C-rFfrBxfccRXHKmrMfCyRYxkWRI5IiJgQXiEfovowiJp5fM4ZSXqAti9MdIqiQJ-IIfQSiI39hqNgzRFmYqAs_BMkyOTAuZnjVmxDFKYyOcxSSHOg4rxBUn4-njKSUUZTzUoQMoFAJS3BahkXMU5SHIs6KszQz956dyDFL2CYUJN8bDnUW2Jz_Hmcz92GG_X1RZEp4_AQ_u7jYl9t5yI_wJUleml8GzHBgIaB9iuIEtIWffN8xLcuBo9EJcNCFvo5hVBzFLXiYnnwn6PiKQk5ZO9wzq58wy-oz2I7TMCkp0NirvKCURfP9zH7s8tcHST1vCkHiIu-NKxjgIAWrB6XkyNCzNEPzbT6fo-eWKi8E6BY9lyAjmi3uq7MI_j0jlrDjzO6ekqOA83MOXIAFStmpOI-YLR7a4z6YwQnh_AuPqeQkp75G3xFmhNNzw-YWCZppbxdgEAAp4hDMm-YFO2VCKtqDHyReSFKCy5AcfMqXZxGcARfQ8QlWlAKcWrGpRksxFA85CfYrKg3g-9ABI7TlPEFxvglBcbA8N5IG5hiHReXKsZdAkgPrzQvME-6JmGHwxlU7Xv47DyaUbjIepwUTm6Jy5-pCFSk24cvg6UESiCjkdVPUttV_3qOROE1kBGrt1WhEMJIkrw0IWGAPmvQNuJcB4IJBgGRpyHSc9_raldEHVWpXCzEfAZ3HvwMjJH_13bwKxbqlpDUQJQWBQKho3Icrzqwx-hazHzozbe7eJGDyap5x7lLXeUYg8G0HkF7KmJ4FVJOcvbQLA_sVWKBSw-XK6Dlrx2FTDXbPM9pJpOGHJpEakSsV4F-bBS7PL3TUTrZ4QLW5-woZ8AgSFiWIrPaHYYcY9tC-b6zWyrV-ZUkmL94ag3tkKzjLLoLowJLSLFfm0qk7iYJcPR2Nvmt36COLSJJfhTboVBcRsB6VsHRX7MHw6kq1ilQglO4FSylVycMfcLTrYegNrQHRGeBzvS3KPeDxiiprf4KMIM0jLo6QZRV8wO-uAxsE1aR1gKZvlVacAQ-9MVJW4OSxHNrg64C4mVN3nxwVFvKWTvJTCaxygs9RNWV-FrxJFTQoirhKfvomuHHO2ilJCQbKQJ3F2Q9hEPZkepaLML_wvwsTsxcmXiGVlom2tDZp7I2fqoMXufzO9GrC6kLeyqeJ3cnsqrxgUEQ9Fkrasd0YYKEjiVNgJg-J2IUyEz3nEEt56mVM0jAh6c6QopICapGoj6FRnr5EZxiTiMTRISZ8dxAFfHByEDtOsp04wJfikJH8sMuj3T7fH_LssN_tDxy-HPg-lt93eVYc8kO2K3icF3BhtrJn9_hQ_SJgGdyfcoUuQcQw8-6w5z9EcdhXtDw-FK97zg6v_LA_vLKYw8yH18Oewf8DWHWX76qRgC75Xk-8qw6WZvX1e_2li-LSVKN6TEdMaQ4YsalUuiQrfjxCWdaWYM2gLZRH1Sk1ITKiSDAG3p5S6aJGymEZJ_G2PZrhe_hBhlreD7u0rE5gExmfMdLqrnlbLA2BWhck_I5oecxUycihHBWwKCLewhwibsnO48x5ZcEvgu8EOUoHLY8slWXWUiq0zNX6kj79VCnWspERhhYyIDbKGurkexvPMbLQgGSzPBkgFzLYMS4Mvj0gwzgKlpCTAZ88JLKozZFB45xsE2ZIjbXfVGkKi1xWlUKdDomghqotDJVdIEMuL0MWrerEpdKQmq-eyThCopGgDMKPAR9GAiEkQbj6EufwC2Y_RiA3M85x_CHlkDMbEXjP3mBCpBy-pNwQvFSWNeQFIFMxTG7eXBgkiaG6zy98oAB1ssIIs1KqyfAcOFWmTJ3YsRREBWSUbcvdjgl5Caika1DwmiiE0C_IDkbzYxYnlUQ0lhDBGF-qEl7W7mUBwEEqwapKXA5qbaccr7Id_LbsuTkH4ylhU5KAGl4hWTj2bQ1BUZF6siWwCyGOPQ0YWjLEc2tuNhS9j7qCl_NXvn4m-M8jGOb3X4FrC8v0B7j-NTBDZm35XqWE1ZHcNvRnSjxMcgmCneRB2AVz06AK8XkoRNShQBtRlgkoswtGYSGHgqtTsABvXmWRahaCEBDikBXIWcBcsqVWMBkMZHyJYM5QhrIcuAEnZ47loovC0wmghyyr42CkfQl5AoxpTHZyx4hDOPeiWEIWbyScZ9qJPIFgFxFKYRIINQ-bzS-r1ebX5bfHzcM_ll-f8Gb19HGzXP8G88PcXOqogMjf7_Axb8GcYA6KOKHaF8f2IqveLC4v20vL9ODTldtGWArIVguUEZHLviz_zlKYfSF3bfhUrPAVVgFs7kvblqwkCxlJozKtGqJbTl8lryrNqpnZtzGLUySNLOO4KpWY3OiqQmjR1B2Lc9_SucbUkhLXTGW4L2JwnC5OyqI4jdUhMK1St6qbhKDg8n1Vca1Qc2Jhq1bG41kkoLJNZJ5M-LeI_IAFbhBFlFRwtRgAn58-ffsNNuZ5zsF65mkbLGDoWRLJy-rxop4bIdUSVoUGLKPq4GuZruMdLLFfYQ9LZK5bN8xumtYFrtq0uD_tgtBbecFQjZfd5eV7JvaZOcwrBC5zT_GxGYzS2DgdNpHphz5e4CpnrDSwZkdSH5VbWIZFWbDHU5bEYVw819XO8pwlQS3Tkj7V1m-GPUApWTUPuxP0mXyCrPujzN1kOb7qGGV9hArzm1rwH4FE-k_L5YHRMmS0z6zpGt3M528lSapaqCEcunghRH7WUitsfdPiLMuI11RpJCwkaSVYRNJMlss8sINmKLdvqNBzp3EEAo2jp3G0fRsTc9j0okz_ERf7NdR7YHfQq0qd17K7pZt8rTKuT3XCqeu9CQayfq9b8KipMx-nqcckFmDVhFno6qGOj71hYSpX-Tf7bn9k6zra6WaaM_u-y93iWCvVyJ7oYBH2q37XWYO-rkHTi7A9hSN2gEDjGPQ4LhbOiE2-Qq6evLBlSp_i0xq2joT1LbDOWBhDZfF77Vpday3VSGBSJoW-niFU1TcsUN3e1FTW_r5w4q_wvW-urhXLFBKNlFGk2hCTdI9dUER7RxC2I1PTlAf-TdxhTa32LPz-JYGVt-cJZaIS0B8SeQomG_swpYbJ0jEtwq1DhjGB-j8rF5Y9Lzk9y_MLG70PVkBgVg0W1mAFpsP8KXHQwxgINI52j6NvLfxJHD0g0Dg6fY6YLqZxBAKNo9vnaPvRlW26clL_7QD0G6yY-JNsBAzFsqp3fhmVLsO8thXDF6Gu_FXeLZhkcBAdJNNE17cp37PYwrmyNho5PtJLJTTXKly3i3Q1R5m09BcRoNfE0zeuAFuWM8mf7QgINI5-z1fcyNlOMoENBBrH4GevEKwHvMBixGeTpA6BQONo9fUIlp-mRyDQOPYjzR_WI_7pkQb_9EiD_38jDf7fjjT4p0ca_NMjDf7pkcbuRxpr4Y3VycMcIyDQOPYijcmcbXBlhXyUjQ-ZuLKxRO2962R62u_hEMBq0vSinG0Te0Saj-feDvtGRCxvUozKBgOGS6bRCzfLPUle1wJxNHl7MdhxnLGGx30ZJ7SV9NzY6me2_0ZZR_oWeo3TIv4ko1FrJbosChFvy0KFIMsrVfnTByMhrnhayEfhLi7KMJVosq9Dfu6ADBRPIPNwxXbWxCT7edjp9EGk_Zy-_QISDUVQOV8LXOpMwYvzuDjbZdyKjWSt-pdCkNevqnXRobqP1b2thrLW70QRQQJNxN4WDBHLmxQEbRcINI5ejyMNQmsSxy0QaBz7m4lpT5PaZjbWF2ZvM7Gpa9E3A1HbQGkazG81pK51Xy7bAu8Ise4WgGuS6Zvan7jRJvvF-n7qh-FiO5IkVY22r-oBg8sMaUD5V-V7R4-LEcCmgde3bne79ZyR5Pahuu_E_p6zz9FltJB5He1AfytO9OSRdtDk_bw9rD7K23kRmFrybTaBQa-8Rjg5AGEagBY0Nek5gW9Z28WU6szFERBoHO0eR9XIGd91P78wkXBCGV3BpnfZ4-puQm9mVH9PRdVepJ84_15mw6OurajfykLmAMOmbdhd2PRq7OmAeH-scW0T9KgpWt8e3Yj6dKSTqBT9E9T7Z1ScbW1BL5ri3L7iGBvxUNXu_BMrbqKiQA-aorq5BIvCiNhM26e_qPvcneMvPC-i-NQ2htX2dvojLfwJIhDLB4CaBIueBBRvrasSrEhejPW1u4PlOPX9L5AWXnpov7nRJZUbpCRfyzvxl6TTzEasLYikyaxlV1Zg-4ROCOnYcz1C9ZAe9DmG7oTWk-QIBF2OrtnnSMduj49xpESztKvd548opAMuu2ppaeV18zDEuKHVMV0Xx-JcOU0xTxAADg0o7gENAmZfBXoG-Vl02mDLCDKBc9Un72neUj-CGPUCs3E5eOf7DdmvBqF-2KvoW5Ay4a1vtk2r7kmwAC1parT7agyt6yt7WI3_LXqbpgyQVVOG01MGc0N8PczVjwOdlXLP6SsgmLy_kiCEuTQwbg9MFFnkKpimPuiD6XUuRvxLs3G1KU91LgoINRH0jY_6ZuRvbxJhrDj9Uj3O1Tge-NcNDnTuOqcRH-uad6lkT6hdcrK_NN21GEiqqULfQamJSXBdFVLGXwQvs1ENyG7RpSStbv5AsKmBPHGh4oxsWk7WATZBRE0Hvq4Dj7HFyPNogwz9EMZrDIOef7mYXk-sHk_V85965Lo51F4oSrPERP0QG9B2xfHMvjhu5F8V55lnqid6WW1_zsg_S_alEP2HvmqnUhny43u74oAdoGnY9bwhpKalN8UV3uX6uZf9yxJh6PGSCWACxiy9Y-1p1biF3SBaaGCehFwaKa1S6CZpZqHq-44_rjiY70eLBXDXprf16U0Th1rPZKWeFGai6sqFTANQY9I7PzreqT39yGKAQIPo6BAJuJqplz4KTIv05Rww_GuSTK2WohA8SWuXec2-53p2xAK8Zb4TojC0NvWbUcONI_kc7LkBVJd52jk4od5hv0Sov5xS9yRhUg2Vp6MKzRDTN7n4MEjjsujJ5lq-q974eosVtfRHcDwtlvouozh4-2FWHMAojU3QZ2M7BG02kmwDJhXF5gLdMGNbf-hoYfYkXTggacXyLVkjpyPr-Yq9rP7KhjwoU1nqo4IjVvmpfC67fssKrdlOJj_KW1FEoDpG6o1BwdSbS53KdpC3OomiesU1jIER-DkFDmraXD3iLPmWOUPGizrH5N_qaNdJdxJUP8qP6vcs1JVn9XKPnHPo1YZqyF4wqOjUa0hyYMbz-FRdUksuAUwPscKtafRCvJTLVyyXqH05AB3znaIbetHrA72zaWAH5IP6oyh3oNNKk7SsXslvXjuNuze6PpQiuZv8F0TiPC_VnxBxXd93PuzvAt_1TJeaxPEI5AihExDL2vph5JmMRE7wISFbluR3M_d-hnHKfiDFQr7g5z58iO-wibEJHCzHsix3bi08PyTMx5AeBKa3mDkm7DpxMpc45lzsPog7BWlb7nK4mEDCl7cXSa6eWmRqOuBPymLPxV24F5wX8Qc19Z2C_i8XhgKg">