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

    <tr>
        <th>Summary</th>
        <td>
            clangd crashes when deducing template arguments
        </td>
    </tr>

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

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

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

<pre>
    ```cpp
#include <array>
#include <iostream>

template<typename T>
struct ArrayType {
 template<size_t size>
    using Array = std::array<T, size>;
};

template<ArrayType<int>::Array array>
void test() {
    for (const auto& item : array) {
        std::cout << item << std::endl;
    }
}

void foo() {
 test<{1,2,3}>();
}
```

<details>
<summary>It crashes clangd.</summary>

```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      /home/openvscode-server/latte/source/bug.hpp:18:19: current parser token ')'
1.      /home/openvscode-server/latte/source/bug.hpp:17:12: parsing function body 'foo'
2.      /home/openvscode-server/latte/source/bug.hpp:17:12: in compound statement ('{}')
I[03:30:27.300] ut symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libLLVM.so.19.1 0x00007f1b8c46512f llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 63
1  libLLVM.so.19.1      0x00007f1b8c462e39 llvm::sys::RunSignalHandlers() + 89
2  libLLVM.so.19.1 0x00007f1b8c465880
3  libc.so.6            0x00007f1b8a6c9250
4 libclang-cpp.so.19.1 0x00007f1b94430402 clang::TypeLoc::getLocalAlignmentForType(clang::QualType) + 34
5 libclang-cpp.so.19.1 0x00007f1b94430485 clang::TypeLoc::getFullDataSizeForType(clang::QualType) + 101
6 libclang-cpp.so.19.1 0x00007f1b95005834 clang::TypeLocBuilder::pushTrivial(clang::ASTContext&, clang::QualType, clang::SourceLocation) + 68
7  libclang-cpp.so.19.1 0x00007f1b94f67653
8  libclang-cpp.so.19.1 0x00007f1b94f6734f
9 libclang-cpp.so.19.1 0x00007f1b94f1f71f
10 libclang-cpp.so.19.1 0x00007f1b94f266ab
11 libclang-cpp.so.19.1 0x00007f1b94f5f9a4
12 libclang-cpp.so.19.1 0x00007f1b94f5f2e1
13 libclang-cpp.so.19.1 0x00007f1b94f28716
14 libclang-cpp.so.19.1 0x00007f1b94f565d9
15 libclang-cpp.so.19.1 0x00007f1b94f26732
16 libclang-cpp.so.19.1 0x00007f1b94f5fa46
17 libclang-cpp.so.19.1 0x00007f1b94f5f2e1
18 libclang-cpp.so.19.1 0x00007f1b94f28716
19 libclang-cpp.so.19.1 0x00007f1b94f565d9
20 libclang-cpp.so.19.1 0x00007f1b94f26732
21 libclang-cpp.so.19.1 0x00007f1b94f5f9a4
22 libclang-cpp.so.19.1 0x00007f1b94f66916
23 libclang-cpp.so.19.1 0x00007f1b94f63e48
24 libclang-cpp.so.19.1 0x00007f1b94f1f71f
25 libclang-cpp.so.19.1 0x00007f1b94f266ab
26 libclang-cpp.so.19.1 0x00007f1b94f2652d clang::Sema::SubstTemplateArgument(clang::TemplateArgumentLoc const&, clang::MultiLevelTemplateArgumentList const&, clang::TemplateArgumentLoc&, clang::SourceLocation, clang::DeclarationName const&) + 77
27 libclang-cpp.so.19.1 0x00007f1b94de5599
28 libclang-cpp.so.19.1 0x00007f1b94de5125 clang::Sema::SubstDefaultTemplateArgumentIfAvailable(clang::TemplateDecl*, clang::SourceLocation, clang::SourceLocation, clang::Decl*, llvm::ArrayRef<clang::TemplateArgument>, llvm::ArrayRef<clang::TemplateArgument>, bool&) + 405
29 libclang-cpp.so.19.1 0x00007f1b94e6dc14 clang::Sema::FinishTemplateArgumentDeduction(clang::FunctionTemplateDecl*, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, llvm::SmallVectorImpl<clang::Sema::OriginalCallArg> const*, bool, llvm::function_ref<bool ()>) + 1924
30 libclang-cpp.so.19.1 0x00007f1b94ecb657
31 libclang-cpp.so.19.1 0x00007f1b947042a0 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 64
32 libclang-cpp.so.19.1 0x00007f1b94e6fba0 clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, bool, clang::QualType, clang::Expr::Classification, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>) + 2912
33 libclang-cpp.so.19.1 0x00007f1b94d51906 clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool, clang::CallExpr::ADLCallKind, clang::OverloadCandidateParamOrder, bool) + 774
34 libclang-cpp.so.19.1 0x00007f1b94c23699
35 libclang-cpp.so.19.1 0x00007f1b94c169b4
36 libclang-cpp.so.19.1 0x00007f1b94c15ea4 clang::Sema::DeduceTemplateSpecializationFromInitializer(clang::TypeSourceInfo*, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>) + 1780
37 libclang-cpp.so.19.1 0x00007f1b94de7018 clang::Sema::CheckTemplateArgument(clang::NonTypeTemplateParmDecl*, clang::QualType, clang::Expr*, clang::TemplateArgument&, clang::TemplateArgument&, clang::Sema::CheckTemplateArgumentKind) + 520
38 libclang-cpp.so.19.1 0x00007f1b94de6651 clang::Sema::CheckTemplateArgument(clang::NamedDecl*, clang::TemplateArgumentLoc&, clang::NamedDecl*, clang::SourceLocation, clI[03:30:27.300] Built preamble of size 0 for file /home/openvscode-server/latte/source/Tokenizer.hpp version 123 in ang::SourceLocation, unsigned int, llvm::SmallVectorImpl<clang::TemplateArgument>&, llvm::SmallVectorImpl<clang::TemplateArgument>&, clang::Sema::CheckTemplateArgumentKind) + 2113
0.78 seconds
39 libclang-cpp.so.19.1 0x00007f1b94ddb908 clang::Sema::CheckTemplateArgumentList(clang::TemplateDecl*, clang::SourceLocation, clang::TemplateArgumentListInfo&, bool, llvm::SmallVectorImpl<clang::TemplateArgument>&, llvm::SmallVectorImpl<clang::TemplateArgument>&, bool, bool*, bool) + 1256
I[03:30:27.300] --> workspace/semanticTokens/refresh(1)
I[03:30:27.300] --> textDocument/clangd.fileStatus
40 libclang-cpp.so.19.1 0x00007f1b94e6c736 clang::Sema::SubstituteExplicitTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo&, llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, llvm::SmallVectorImpl<clang::QualType>&, clang::QualType*, clang::sema::TemplateDeductionInfo&) + 374
I[03:30:27.301] <-- reply(1)
41 libclang-cpp.so.19.1 0x00007f1b94ecb5b7
42 libclang-cpp.so.19.1 0x00007f1b947042a0 clang::Sema::runWithSufficientStackSpace(clang::SourceLocation, llvm::function_ref<void ()>) + 64
43 libclang-cpp.so.19.1 0x00007f1b94e6f2e1 clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool, bool, clang::QualType, clang::Expr::Classification, llvm::function_ref<bool (llvm::ArrayRef<clang::QualType>)>) + 673
44 libclang-cpp.so.19.1 0x00007f1b94d51906 clang::Sema::AddTemplateOverloadCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::TemplateArgumentListInfo*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool, bool, bool, clang::CallExpr::ADLCallKind, clang::OverloadCandidateParamOrder, bool) + 774
45 libclang-cpp.so.19.1 0x00007f1b94d61e5d
46 libclang-cpp.so.19.1 0x00007f1b94d61d1e clang::Sema::AddOverloadedCallCandidates(clang::UnresolvedLookupExpr*, llvm::ArrayRef<clang::Expr*>, clang::OverloadCandidateSet&, bool) + 318
I[03:30:27.302] BeginSourceFile() failed when building AST for /home/openvscode-server/latte/source/Tokenizer.hpp
I[03:30:27.302] --> textDocument/publishDiagnostics
I[03:30:27.302] --> textDocument/clangd.fileStatus
47 libclang-cpp.so.19.1 0x00007f1b94d6207c clang::Sema::buildOverloadedCallSet(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::OverloadCandidateSet*, clang::ActionResult<clang::Expr*, true>*) + 156
48 libclang-cpp.so.19.1 0x00007f1b94d6237d clang::Sema::BuildOverloadedCallExpr(clang::Scope*, clang::Expr*, clang::UnresolvedLookupExpr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 365
49 libclang-cpp.so.19.1 0x00007f1b94a032a7 clang::Sema::BuildCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool, bool) + 1527
50 libclang-cpp.so.19.1 0x00007f1b94a173c1 clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef<clang::Expr*>, clang::SourceLocation, clang::Expr*) + 81
51 libclang-cpp.so.19.1 0x00007f1b93dcbd8f clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) + 5439
52 libclang-cpp.so.19.1 0x00007f1b93dcd4bc clang::Parser::ParseCastExpression(clang::Parser::CastParseKind, bool, bool&, clang::Parser::TypeCastState, bool, bool*) + 1900
53 libclang-cpp.so.19.1 0x00007f1b93dc8cbf clang::Parser::ParseAssignmentExpression(clang::Parser::TypeCastState) + 287
54 libclang-cpp.so.19.1 0x00007f1b93dc8b82 clang::Parser::ParseExpression(clang::Parser::TypeCastState) + 18
55 libclang-cpp.so.19.1 0x00007f1b93e31f29 clang::Parser::ParseExprStatement(clang::Parser::ParsedStmtContext) + 73
56 libclang-cpp.so.19.1 0x00007f1b93e3012d clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) + 1085
57 libclang-cpp.so.19.1 0x00007f1b93e2faa6 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) + 358
58 libclang-cpp.so.19.1 0x00007f1b93e38972 clang::Parser::ParseCompoundStatementBody(bool) + 1650
59 libclang-cpp.so.19.1 0x00007f1b93e39aaa clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) + 186
60 libclang-cpp.so.19.1 0x00007f1b93e541d1 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) + 3889
61 libclang-cpp.so.19.1 0x00007f1b93d94547 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::Parser::ParsedTemplateInfo&, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 6279
62 libclang-cpp.so.19.1 0x00007f1b93e530fd clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) + 1133
63 libclang-cpp.so.19.1 0x00007f1b93e52a65 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) + 565
64 libclang-cpp.so.19.1 0x00007f1b93e51c24 clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) + 2164
65 libclang-cpp.so.19.1 0x00007f1b93e4ffb8 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) + 1592
66 libclang-cpp.so.19.1 0x00007f1b93d7c4be clang::ParseAST(clang::Sema&, bool, bool) + 814
67 libclang-cpp.so.19.1 0x00007f1b95ecda0c clang::FrontendAction::Execute() + 92
68 clangd-19            0x00005576b322c533
69 clangd-19 0x00005576b32c7479
70 clangd-19            0x00005576b32c6eda
71 clangd-19            0x00005576b32c3680
72 clangd-19 0x00005576b32c31db
73 clangd-19            0x00005576b342c5d1
74 libc.so.6            0x00007f1b8a725e2e
75 libc.so.6 0x00007f1b8a7b7834 __clone + 68
Signalled during AST worker action: Build AST
  Filename: bug.hpp
  Directory: /home/openvscode-server/latte/source
  Command Line: /usr/lib/llvm-19/bin/clang++ --driver-mode=g++ -std=c++23 -stdlib=libc++ -resource-dir=/usr/lib/llvm-19/lib/clang/19 -- /home/openvscode-server/latte/source/bug.hpp
  Version: 62
[Error - 3:30:27 AM] The Clang Language Server server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.
```
</details>
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW1tz4zpy_jX0C8ouEuBND36QJSvrimfHOXJOKnmZAoGmhJgiGAD0jOfXpwCCupmSaO-c3bNVOzVly2IDfW98DQJUa7GqAW6D5C5I5le0NWupbvXPDVXsJ325KiR_uw3SsPvPmiYI50E4DTARNataDiggM6oUfQvI_dAzIbVRQDe7x-6ngU1TUQMBmZm3Bmq6AfS8pdFGtcygqZ33-a0BFGR33RO0N1CLn_DNIPtrOxIhhFot6lU3GAVkjrThAZkGZOrlnD0HeLYdRvzMQTbffT6WcSuJ1ag2bpydsWNyqP-rFBwZ0CbAeYAne7IjhEqpUIBzJmttEG2NDHCKhIENCsjUT3Q8xv7b6sBka6xdAzLrx7nPWwKoebVVxA61im013FPPyVlK-U5MJzuZBdldFOAZDvCMOOPcd5QHFus-9PGxP31AZhwMFZXeuZ7MdLvZUGWN9WAQU1SvQSNW0XrFbyxPvNhRHMx2yOLp8X66vEe6LTbCIIqKdoUUNFIZZCRaG9Noaw28CPBiJcy6LW6Y3AR4UVWv_a_rRsn_BWYCvBBat6ADvEC05qiPXrOGTkRUUPZiFGVw07FfGspeEG83jeXivgpvgnAS4MVabiDAC9lA_aqZ5HCtQb2CskypMfaZlq1i9kPRrm7WjZ0jyu2PiY0B1ioFtUENVRoUMvIFahTgzFoeZx2z6G9jltkf2DKzTGyylG3NjJA1svluubm48Nzwr-ImasTkppFtzZE21MDGKuqiKrPhl829no7tQ5DchSQgUxIGZIqzGxKGQTJHrUH6bVPICtmqoe14qHWrAL3JFq3pKyDn3o5I_ARlGb_JVqGn6fNfkFRIg3HehfpVKFk7MV6pQkEaPj7-_uXb8r-_3H19fPif-9--2SFBGtqwaqSoXXwJ49Kg9zxClSjsuBstb6LJTYTCH2EYhlkZFTmL0yTCpROpS1D9prsPT0rUxoXSs42tAOc7IkW_f-srJ05tvbJlx6YpvkMp8WHwnrP7d8geA5kMsf-trZdiVdPqL7TmFSjdFwJ8h3LvA3xRtzz3KUkcKbN0Kdr7t0dPUzbBiaePHbnN_GvWNAPTT-KYhHGIu_LQyWxL8KNk3R8rMI-S0WpaiZXz4UIqV6NxvjfkP1padd92qpG445-M458n5_gv2qqaU0OX4ieM4h6FUcc-vcg-CcMkJ_EA-7tWVBxU913T6vWzEq-CVoesp8vnmawN_DA-ggbFOvh66dLXGtUWg2245Z3IGbpssjLN0sSHZz6OnsRlRz8ZQR6VWeTJo3AEPU5TWnj6aAR9Uk6oD5AIj6LH4D0akTHy5FmUevoRGVAmacJ9LkYjIrbEaUawp78cYlZ-GvfyZB_UN_-gvmP8u6cvHuffrb74g_7FY_ybppNefjzGvymB2KcLHuPfvXjG4_y7jWc8xr84TTA_SHHYUP-pLbR59hh3qlatLaGHJeT46aNkyEHX9xXlS1sZ8QivUL0bJLQ5NWqAwXui46p08HAOrKLKPfmrbSJ2jLrilfUgZkR0c0iSSR99I6KbQxLh5Ix151DStnpn5Idy-kpFRYsKhu1tlQrw9CN2uGgkP98OCLje5TcoAzI74xEH-z89rJCy2nNGHCbeuiNqAaScRfGwdReiFnp9zHQOvGWd-vtWXXhwO2DdnVrLDa2q34EZqR42TXWonZsY-KCSLlrb2vXRvENpB7bvuW-5Hoe33mq1E9Dr8VCX0g8YKenORF-VWImaVjNaVVO1Csh9nxvTnWf25-17gG_KOdcSoL7ju9_ilwn25ZOMKM_AijTxCUhGlOcsjDENh12u2vq_hFkv27IUTIBHzsumQ85nM-Gkjq4Ffqdj2ms4YoGAtCxOSdxFzXHQ6NHBea5OCm264BiV1Pc_GmVJu6T89cHZB1P_-zLSdBK5T7OKai1KMcJdfUheUnfL0_l0z7N4EnmwQEYs5jyJJmE67Nsp31aDr6-gKkn5jNZccGrgMw62304ZA62fqFB_J--_k3wJ5oRHBzxrC8vOjdP5o_3i30XNL3F5oopuvirbwWxn7hfrPvVGYCeGSdqv1mQEdmJROin6-UdgJxYlQE-sP4epvWyACVqJny6EF0puHmph3DdWx_yog-sK1J4D957vBvL72gjzdgo5bQkdT2v2A8pdTHxpjQUal0PDF_hs29CPQkxZGOXDNpqtgb2cx5d_lbU1SE_0RNVmOD3OVZGLxfIy7BzAnOfV6MK8s1iCe4ONgoxpmkSfNxjdAB-5RAxB6TPjhwDkqS24u1ZUBjUK6KaoAMnS7aaj0G1vl6IC9MHtwmf5ArXNlpt106BXUFrIGkWYIFGjMyIe466RKOk0kPubJ_hcDOEoIv0-cpYjDUzWXPuwGoGVOS8m4Ufy0C4hv6z3OL0-pcNQ8x_lnMPVbHq8_EQ4Sc_vPV9fWxz9XaoX3QHPhQVItRHMRbAO8EJBqUCvA5xHF7eyu-kM_DBzyXy6L_zbEJtGS0NN68MgHoO3U5aRE4jFNaTCtAbufzSVYOJdW_qLkelHXHaxwRo5zwHyO73peazEGJTrd497hDLg0si6NCCz62ukoKneDkIgHtH-ACuSwrdL8Yjm48_VLsUjIDWkJYYTy9-_2qU_W7uUZn5RikfA8X91S_-wbike0f3wNIKEe_oR3Q9PIx7BSXf2YgK3emyFPcrW_6wVaFm9An-U8qVt9vD6H-cGX6ij_GShxg7DwkrUXfFbCLcRa4eWVFTA0fc11KhoRcXdUZLlsz-48XlQe16YQSDQtEUl9Hou6KqW2gimPzHJKTQxprlLcZix4RBwtjkMAueHg5WFyaHFdrhpGxUqo3vZ8dh1OJyOpZu6ovQb6LYyw1zxDBnVdjV0ugWUPZ6Mx7SGKSbZiXc1d-_N3TH-I-w9Ehz8Ac7YE-KwlPqcTv3rg3hES0RDgml2xpy_wIh_LvNESX9iJxnRK9AoI-wEFJsy87X-J7aPP8TiX1Qnl6E34azgebk_2ZM7f7X3-UlqU4oflgloLWTtsPWPo0MXHyoUfgMpJr5JSC6DfsIZjwt2VtIZ1WYn5qGA-8SWzv3d45DDqDoGt_tDLV60w-2aAoOtdf--KPS7Y8nl9oBwlrPivBem7sSqXdzGaHgkpt9syfs0uQxrrUhFjs-K9GlBeoiSXMZvBEhU4slFOZb9sbrTorjPfGk2Zns8yONJj_aTy_CQAAmjw4MF71hsRfmq9l7ST0sDamqMEkXb4cXB1v7orabZ9Isywe1gc39Bw7NF5LhsdeP3hRzkdkzRn_DK_SqVXMZYBHBJafoJO_5ZDOdX5qQP5ctAhwDJJ9n5lJr5Y6Jb3e8kfwtwfrDcpf1RwuQyHCBAJpTSs0z73vOY6VHjeSJeDlzWLZK7mMg9DkwvL8wEkjji0ShJ51CKWrw_8fDUHevtw0WqMW7v-2bbK59667Q_6rFrTn0edBvKu4DI-yOk6ZjVdxIncXZWPKvLvynZNic1XTYw8MZjZ4PhkB6Z6yctdfm40rloWUj1G61X8FCLfeulOOutNwIRQELC8nwttlb4qvbC5qE2oOrjI6OfLHzvKM56pNu4ce9MS2E7Z58jEfHrTzoCKUCCaZpc1NkXywPVT2bML9f8fRc5qHnStzXpCDwCScRwfAEHdL49XC3-Dsr277L6HeF0DK6Jy7LIz-rzLBt3sLArvvuKfG3o_7XwZNTx2wRfK1xfcfbN3BfJ2woeNo1UPTbbVe1k4k-LpCMQEc9YXMA7RabL56MGyvIe2jbsm5beeJfRQwKM0_CgF1goW-Vq3vUhfecBrDWwd7x_q5c3PL-OJu_P7CdJlhYEY5ZsM3OyR39AxLK4L1lZOGJSlgKnnj4aQ0_S_lxCDx0GhCAR94djM3J50hizhPseMYsv317IcAIYPH2yR39AVGQ5idG3b6ySNRycn-9uW1TAEW9Vv6_4XaoXUIj2_nLv1rl91N_gWojK3Y-zD_trNf7RXCgH-t7ssw_tTvoJZnKzoTVHj6IGP0erHbko-mtS0STAi0LU_WZigO-sVtfXXIlXUNcbySEg8-337ibanHV_YuK-sNORubVYT6Wgk-SaCxWQ-UnG3d-e8SKaoOvrj-7DHhnt9-50gVU39XkQJHf3SkmFrtHeviqafgmSOXpeA5pZ_uiR1quWrgAtHS_UsfTX2DhKkBEb0EjU7nJRRbVBBG1EbSvojZvHj_guqgrV0qACkAJtqDLAb9ASuktnsjVNa9yW80YqQKIupdq4Qn4zfOPO3ZzbXbe74reET8iEXsFtlOFJFod5Tq7Wt5M0L_IYRxOSRSVMcBKGnNMJMEizJCPxlbjFIY6jEMchIXFMbkiSsoLHNE8KyBmeBHEIGyqqG-uiG6lWV-7y3G0UkSTKrypaQKXddVKMa_iO3NMA4yCZX6lb59eiXekgDiuhjd5NY4Sp4LZL2u3NQLcPz4G3zOZLfyET0f7l4FWrqtvPX_fzQr_e4v8PAAD__0RW7rI">