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

    <tr>
        <th>Summary</th>
        <td>
            clangd crashes when trying to index file
        </td>
    </tr>

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

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

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

<pre>
    Here's the file:

```c++

#include <optional>

extern "C" {

struct Dst {
    int max_cpus;
 int min_cpus;
    int default_cpus;

    unsigned int n1 : 1, n2 : 1, n3 : 1, n4 : 1, n5 : 1;
};
}

struct Src {
 std::optional<bool> n1;
    std::optional<bool> n2;
};

void do_something(Src *s, Dst *d)
{
#define STORE_ARG(n) \
    { \
        const auto v = s->n; \
        if (v.has_value()) { \
 d->n = v.value(); \
        } \
    }

    // STORE_ARG(max_cpus)
    // STORE_ARG(min_cpus)
    // STORE_ARG(default_cpus)

    STORE_ARG(n1)
 STORE_ARG(n2)
}
```

---

Compiled clang/etc from source tarball on Ubuntu 18.04:

```
$ clangd --version
clangd version 15.0.6
Features: linux
Platform: x86_64-unknown-linux-gnu
```

Here's the stack trace:

```
munmap_chunk(): invalid pointer
I[22:38:39.137] <-- textDocument/semanticTokens/full(5)
 #0 0x00005586f91e02cf PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x00005586f91de29c SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f58e4cb8980 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x12980)
 #3 0x00007f58e390ee87 raise /build/glibc-CVJwZb/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #4 0x00007f58e39107f1 abort /build/glibc-CVJwZb/glibc-2.27/stdlib/abort.c:81:0
 #5 0x00007f58e3959837 __libc_message /build/glibc-CVJwZb/glibc-2.27/libio/../sysdeps/posix/libc_fatal.c:181:0
 #6 0x00007f58e39608ba /build/glibc-CVJwZb/glibc-2.27/malloc/malloc.c:5342:0
 #7 0x00007f58e3967e9c munmap_chunk /build/glibc-CVJwZb/glibc-2.27/malloc/malloc.c:2846:0
 #8 0x00007f58e3967e9c free /build/glibc-CVJwZb/glibc-2.27/malloc/malloc.c:3127:0
 #9 0x00005586fa617ea2 clang::dataflow::buildBooleanFormula(llvm::DenseSet<clang::dataflow::BoolValue*, llvm::DenseMapInfo<clang::dataflow::BoolValue*, void>> const&) (/disk2/dustin/llvm/prefix/bin/clangd+0x1acbea2)
#10 0x00005586fa618458 clang::dataflow::WatchedLiteralsSolver::solve(llvm::DenseSet<clang::dataflow::BoolValue*, llvm::DenseMapInfo<clang::dataflow::BoolValue*, void>>) (/disk2/dustin/llvm/prefix/bin/clangd+0x1acc458)
#11 0x00005586fa6024cd clang::dataflow::DataflowAnalysisContext::flowConditionImplies(clang::dataflow::AtomicBoolValue&, clang::dataflow::BoolValue&) (/disk2/dustin/llvm/prefix/bin/clangd+0x1ab64cd)
#12 0x00005586fa5eab15 std::_Function_handler<std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation>> (clang::CXXMemberCallExpr const*, clang::ast_matchers::MatchFinder::MatchResult const&, clang::dataflow::Environment const&), clang::dataflow::(anonymous namespace)::buildDiagnoseMatchSwitch(clang::dataflow::UncheckedOptionalAccessModelOptions const&)::'lambda'(clang::CXXMemberCallExpr const*, clang::ast_matchers::MatchFinder::MatchResult const&, clang::dataflow::Environment const&)>::_M_invoke(std::_Any_data const&, clang::CXXMemberCallExpr const*&&, clang::ast_matchers::MatchFinder::MatchResult const&, clang::dataflow::Environment const&) UncheckedOptionalAccessModel.cpp:0:0
#13 0x00005586fa5e9473 std::_Function_handler<std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation>> (clang::Stmt const*, clang::ast_matchers::MatchFinder::MatchResult const&, clang::dataflow::Environment const&), clang::dataflow::MatchSwitchBuilder<clang::dataflow::Environment const, std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation>>>&& clang::dataflow::MatchSwitchBuilder<clang::dataflow::Environment const, std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation>>>::CaseOf<clang::CXXMemberCallExpr>(clang::ast_matchers::internal::Matcher<clang::Stmt>, std::function<std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation>> (clang::CXXMemberCallExpr const*, clang::ast_matchers::MatchFinder::MatchResult const&, clang::dataflow::Environment const&)>) &&::'lambda'(clang::Stmt const*, clang::ast_matchers::MatchFinder::MatchResult const&, clang::dataflow::Environment const&)>::_M_invoke(std::_Any_data const&, clang::Stmt const*&&, clang::ast_matchers::MatchFinder::MatchResult const&, clang::dataflow::Environment const&) (/disk2/dustin/llvm/prefix/bin/clangd+0x1a9d473)
#14 0x00005586fa5ed853 std::_Function_handler<std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation>> (clang::Stmt const&, clang::ASTContext&, clang::dataflow::Environment const&), clang::dataflow::MatchSwitchBuilder<clang::dataflow::Environment const, std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation>>>::Build() &&::'lambda'(clang::Stmt const&, clang::ASTContext&, clang::dataflow::Environment const&)>::_M_invoke(std::_Any_data const&, clang::Stmt const&, clang::ASTContext&, clang::dataflow::Environment const&) (/disk2/dustin/llvm/prefix/bin/clangd+0x1aa1853)
#15 0x00005586fa5ea4cb clang::dataflow::UncheckedOptionalAccessDiagnoser::diagnose(clang::ASTContext&, clang::Stmt const*, clang::dataflow::Environment const&) (/disk2/dustin/llvm/prefix/bin/clangd+0x1a9e4cb)
#16 0x00005586fa5b43d9 std::_Function_handler<void (clang::Stmt const*, clang::dataflow::DataflowAnalysisState<clang::dataflow::NoopLattice> const&), clang::tidy::bugprone::analyzeFunction(clang::FunctionDecl const&, clang::ASTContext&)::'lambda'(clang::Stmt const*, clang::dataflow::DataflowAnalysisState<clang::dataflow::NoopLattice> const&)>::_M_invoke(std::_Any_data const&, clang::Stmt const*&&, clang::dataflow::DataflowAnalysisState<clang::dataflow::NoopLattice> const&) UncheckedOptionalAccessCheck.cpp:0:0
#17 0x00005586fa5b4886 std::_Function_handler<void (clang::Stmt const*, clang::dataflow::TypeErasedDataflowAnalysisState const&), llvm::Expected<std::vector<llvm::Optional<clang::dataflow::DataflowAnalysisState<clang::dataflow::UncheckedOptionalAccessModel::Lattice>>, std::allocator<llvm::Optional<clang::dataflow::DataflowAnalysisState<clang::dataflow::UncheckedOptionalAccessModel::Lattice>>>>> clang::dataflow::runDataflowAnalysis<clang::dataflow::UncheckedOptionalAccessModel>(clang::dataflow::ControlFlowContext const&, clang::dataflow::UncheckedOptionalAccessModel&, clang::dataflow::Environment const&, std::function<void (clang::Stmt const*, clang::dataflow::DataflowAnalysisState<clang::dataflow::UncheckedOptionalAccessModel::Lattice> const&)>)::'lambda'(clang::Stmt const*, clang::dataflow::TypeErasedDataflowAnalysisState const&)>::_M_invoke(std::_Any_data const&, clang::Stmt const*&&, clang::dataflow::TypeErasedDataflowAnalysisState const&) (/disk2/dustin/llvm/prefix/bin/clangd+0x1a68886)
#18 0x00005586fa60f622 std::_Function_handler<void (clang::CFGStmt const&, clang::dataflow::TypeErasedDataflowAnalysisState const&), clang::dataflow::runTypeErasedDataflowAnalysis(clang::dataflow::ControlFlowContext const&, clang::dataflow::TypeErasedDataflowAnalysis&, clang::dataflow::Environment const&, std::function<void (clang::Stmt const*, clang::dataflow::TypeErasedDataflowAnalysisState const&)>)::'lambda'(clang::CFGStmt const&, clang::dataflow::TypeErasedDataflowAnalysisState const&)>::_M_invoke(std::_Any_data const&, clang::CFGStmt const&, clang::dataflow::TypeErasedDataflowAnalysisState const&) TypeErasedDataflowAnalysis.cpp:0:0
#19 0x00005586fa6110bb clang::dataflow::transferBlock(clang::dataflow::ControlFlowContext const&, std::vector<llvm::Optional<clang::dataflow::TypeErasedDataflowAnalysisState>, std::allocator<llvm::Optional<clang::dataflow::TypeErasedDataflowAnalysisState>>>&, clang::CFGBlock const&, clang::dataflow::Environment const&, clang::dataflow::TypeErasedDataflowAnalysis&, std::function<void (clang::CFGStmt const&, clang::dataflow::TypeErasedDataflowAnalysisState const&)>) (/disk2/dustin/llvm/prefix/bin/clangd+0x1ac50bb)
#20 0x00005586fa613653 clang::dataflow::runTypeErasedDataflowAnalysis(clang::dataflow::ControlFlowContext const&, clang::dataflow::TypeErasedDataflowAnalysis&, clang::dataflow::Environment const&, std::function<void (clang::Stmt const*, clang::dataflow::TypeErasedDataflowAnalysisState const&)>) (/disk2/dustin/llvm/prefix/bin/clangd+0x1ac7653)
#21 0x00005586fa5b5ff1 llvm::Expected<std::vector<llvm::Optional<clang::dataflow::DataflowAnalysisState<clang::dataflow::UncheckedOptionalAccessModel::Lattice>>, std::allocator<llvm::Optional<clang::dataflow::DataflowAnalysisState<clang::dataflow::UncheckedOptionalAccessModel::Lattice>>>>> clang::dataflow::runDataflowAnalysis<clang::dataflow::UncheckedOptionalAccessModel>(clang::dataflow::ControlFlowContext const&, clang::dataflow::UncheckedOptionalAccessModel&, clang::dataflow::Environment const&, std::function<void (clang::Stmt const*, clang::dataflow::DataflowAnalysisState<clang::dataflow::UncheckedOptionalAccessModel::Lattice> const&)>) (/disk2/dustin/llvm/prefix/bin/clangd+0x1a69ff1)
#22 0x00005586fa5b6e0d clang::tidy::bugprone::analyzeFunction(clang::FunctionDecl const&, clang::ASTContext&) UncheckedOptionalAccessCheck.cpp:0:0
#23 0x00005586fa5b7502 clang::tidy::bugprone::UncheckedOptionalAccessCheck::check(clang::ast_matchers::MatchFinder::MatchResult const&) (/disk2/dustin/llvm/prefix/bin/clangd+0x1a6b502)
#24 0x00005586fb0038f9 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::MatchVisitor::visitMatch(clang::ast_matchers::BoundNodes const&) ASTMatchFinder.cpp:0:0
#25 0x00005586fb048118 clang::ast_matchers::internal::BoundNodesTreeBuilder::visitMatches(clang::ast_matchers::internal::BoundNodesTreeBuilder::Visitor*) (/disk2/dustin/llvm/prefix/bin/clangd+0x24fc118)
#26 0x00005586fb006034 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::matchWithFilter(clang::DynTypedNode const&) ASTMatchFinder.cpp:0:0
#27 0x00005586fb027bd8 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0
#28 0x00005586fb042633 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor>::TraverseTranslationUnitDecl(clang::TranslationUnitDecl*) ASTMatchFinder.cpp:0:0
#29 0x00005586fb027c19 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0
#30 0x00005586fb029db9 clang::ast_matchers::MatchFinder::matchAST(clang::ASTContext&) (/disk2/dustin/llvm/prefix/bin/clangd+0x24dddb9)
#31 0x00005586fa1c3e48 clang::clangd::ParsedAST::build(llvm::StringRef, clang::clangd::ParseInputs const&, std::unique_ptr<clang::CompilerInvocation, std::default_delete<clang::CompilerInvocation>>, llvm::ArrayRef<clang::clangd::Diag>, std::shared_ptr<clang::clangd::PreambleData const>) (/disk2/dustin/llvm/prefix/bin/clangd+0x1677e48)
#32 0x00005586fa23858a clang::clangd::(anonymous namespace)::ASTWorker::updatePreamble(std::unique_ptr<clang::CompilerInvocation, std::default_delete<clang::CompilerInvocation>>, clang::clangd::ParseInputs, std::shared_ptr<clang::clangd::PreambleData const>, std::vector<clang::clangd::Diag, std::allocator<clang::clangd::Diag>>, clang::clangd::WantDiagnostics)::'lambda'()::operator()() (.part.746) TUScheduler.cpp:0:0
#33 0x00005586fa239999 clang::clangd::(anonymous namespace)::ASTWorker::updatePreamble(std::unique_ptr<clang::CompilerInvocation, std::default_delete<clang::CompilerInvocation>>, clang::clangd::ParseInputs, std::shared_ptr<clang::clangd::PreambleData const>, std::vector<clang::clangd::Diag, std::allocator<clang::clangd::Diag>>, clang::clangd::WantDiagnostics)::'lambda'()::operator()() TUScheduler.cpp:0:0
#34 0x00005586fa22fda9 clang::clangd::(anonymous namespace)::ASTWorker::runTask(llvm::StringRef, llvm::function_ref<void ()>) (.constprop.758) TUScheduler.cpp:0:0
#35 0x00005586fa2372ec clang::clangd::(anonymous namespace)::ASTWorker::run() TUScheduler.cpp:0:0
#36 0x00005586fa3ed382 void* llvm::thread::ThreadProxy<std::tuple<clang::clangd::AsyncTaskRunner::runAsync(llvm::Twine const&, llvm::unique_function<void ()>)::'lambda0'()>>(void*) Threading.cpp:0:0
#37 0x00007f58e4cad6db start_thread /build/glibc-CVJwZb/glibc-2.27/nptl/pthread_create.c:463:0
#38 0x00007f58e39f161f __clone /build/glibc-CVJwZb/glibc-2.27/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:97:0
Signalled during AST worker action: Build AST
```

If it's not obvious or reproducible, I'm happy to rebuild using debug symbols or whatever to help out. When I was trying to get it down to a more minimal reproducer it seems to be something about the bitfields that it doesn't like.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsPFlz4zaav4Z-QVlFgqce_CBL1kxvpSeplpOe2hcVSHyUsKYALgDK9v76LYA6CFqS5ZaduCadctwkju--ABAmSrEFB7jx4lsvnlyRRi-FvFkzqRtS0atc0Oebf4IED6cK6SWgklXghSPPn3j-9nfitz-Fh2_NT7cPh4wXVUMBeeFY1JoJTiovvOsOgicNkiMP47GHMfJSB4TSsik0mii970EIIcY1WpGneVE3ygu3HbaV8V7rZjiFkjSVdjv3QxpupUHtWB4gLxyhwMNjxHHnOew8R53nePO8g5tOnOeXLM1k0WFJaWoEG472UhrnQhhhIR44vJwcig9TYH-vBaOIirkSK9BLxhceziwVeKQME1bIeEQ9PNyCuN0pkkLJOKDZ_a_f7uajb__wcMY9PERePN6T5qW3boP5rxBcaUQaLdAaeeEEqWsvvONeeGAsK5GHs_VgSdR8TaoGPJwZcgwiBza1MCy49aA78hBUL5306Zz01e_hqYenDn87-9rK49i4rcW9Ms4xwJ2MdzMc0QZ7YE477ihn0vPALsDr6-vu61isalYBRUVFjN6noAtUSrFCSjSyAKSJzElVIcHR73nDdYOCbOBHx5x9axZRC5Ci6-s1SMUEb3s2rZs2FMQDf5C0XVMgupGgjL9UjDdPbfNvFdGlkCvT_JQl8yS6bvgDF4_82o66XvDmBL9OmFKaFA9IS1IcjVbt66rhK1LPi2XDH7b2Y6LImlSMolowrkG2Q7948S3GXjgKM_NrOAjC1IsnJrBdXyMNT3oiimYFXHt4qmBFuGbFvXgArjw8LZuq8nAW77Xq4dBH_pPv-34cZ0k5DMDHRYl-k4zrmWHg3tA_YwtOqn8STiuQxjUEox4eGYdou9SgqGsvHPn2_x3swIVNAQ8L1AfGDLGvAMIbQGkZZxAVeTbMfDSfS1BaSJhLEzIyD08rlnt4utHcXmO2o9ZLCYQOlBj4Hr71nwI8zHxHFmEXTTj0AbIUScIUGE_KG1ZRD08XFcuL6_Ef__X43_nuFQ9wamRuufDwdDAwb8-KQm1E33D21DasLTXG4vDUgh4UXjiKA5fhyKUk8NMyQCQXltPzKNG0lYadZZFkPSSxiyQeZmGK5nMDZb4CpcjibL4rljPxku1aKMu3BVkSTSpLSNCnJHEpSfwsJ-eiXpGqEsXuoRVnGGEXQ9rDkMKwQF3PuwQdzqLERZcdQldKOFugh9CEAU5dNMOug5EkSIHgTXS1yZkSTcpKPLZvFu-tEBUQPhVy1VTEw1lVrVdt_wS4ghloLxwfhWGm_9FmupFJ173ZX0n9hZfiLRBsMAnvTOFgk7SHE5tprUNTph6w-bdRmnFjSQYfntYSSmtZuW1tI33r1aTIgXQyFA4DvyemLIqz42L6TnSxBPoL0yBJpWaiWoNsu5R5_lQyu1BURRRnjqgCV1Q-jgp6XFSTzduIk-pZMTUW3CShttN0jAWnzBSIX1Z1xUB5ODsKbKTFihUdVhPD6jkyudBg8iQqqCMF7EghBpIH8b7knU8bXhim5stNFgvHu841FFpIV5kzW978IgpiZhmudsOtd5PXZrTu4Qpv_O9_f4VVDnJMquruqZZb9xn1xEaUnq-sTUvVtnw1b1PG6daubcM3UE2lO054Qvh3fM2k4KbS6HrtyTkezggX_HklGoU4WYGqTW1ky51tdJowsuDC-IQulrNHpovlKZP5nRdLKB6A_rpZhYyKApT6KihUbZNyyNvQkVZklVPimUj76UVqdG-t7uuc8bV4MPFnb4oj_jw3cI7hOMVS8nL4n8gYOqW8l2Wgccuw55bDKA0_m1vO9Ep_BrM5NafjXbfG60CeSj4HMHQk9XGCtdnN2Oh_AiOtMxIFv5buhBcOatnOTlqNXRHaPZedEPqcGzO0kDoklxv_-JmuOrHVVg42Er6SHD6LY1-WD3pc_MUp4MdrtiGN0tCp2aJecqBZ_KmTQ19io9n9tnz-W4f8trhvl8jZj7nn-4v2_Zzu3Wm7wIlIkMWuE8X9hU9U5McpOlLBbYv4TbSgm1dXX6f4PhVqPzywQFTkjkwSVyZ5FNLh6cBizzjOzx6n19QzTTScctZ_CVH_QrRmBfQ2UXp4NKPP27XWopaCw8ZBDab_gy0jLuHb1gkU1Zk2_Oo6668Rxkcnzg-j_NhKaWwaD6-U0r7NZlnygTZ7_1zDnSQK6EG2-za53wC7e6qh0EAPZuP9sF_3h4zvJ_BT6892xF4d_VK6m9M-GZnbn-Pakg3vU_HjBNyd2p8xUUGKatruBJoAcV69eBLlD6XJw8ugPzdQv0WTL5cp7xdU3-Ktf27QfANlF6T4JMuyxEnxWW_Xu0wwfnO4HE__carQuyhinvLl46A-wjVPYfskjvlG-z5jX_ijNHvh3u4HkYWOjz1cbfSPIQM_P7Fq0JJwVYK8rUTxcIGJXlowvCKR90v5ZyDa73b2NWyldMkuyyW-fKZrfqR_XHa-Gfu5s5jD_aPgMInDn9H1Q6PrJfpLE3eDAge9hU1clsHP9cTP9cTP9cRb1xOXFNDDsgwct-x9MJEn4NO_ZOvp7XsluHeqnKexj8-h_RSmdoTtf-0w78zTlYv0lce-80UUdg5Lct8Ps3J4-hDIPXN85VsOy8Jodv8HU8wGtV2j07I2L7b5NSHdiobTfwkKzvccaDS774jvsHpjl9UoC4LsLazuUd9LgN3hiUt__8umC4BuJdR-X_ujSsdRWQSB820XTnpKT_ww-milW3jfmV5OWaXt974dhJNnW15ZQbxZr6nLDU5z-ia9_gg395KsQSowEanHim0ZnUt81jNKnIROGfoNikYqtoYuBeMP5O7OZfDerNEqezL3O2f6Jb8HB5zN_rCvuyL48PDzXrpzv5jPfTyk-SvEvwjxqw2BJ4_ELnF-Smk-7Dq_-y0-CYoQIsddNtPt829EKqCGvk3aaw9j94XpTEvGF9-g7GXjF0C-8LrR6nDd1HD2vw3Ma90z7c01EfmFrw8dJ28vsFCooF8fHZi6q7X31I-kJM-GeGdul_YJI4t-ia6WRAJ9Sa7DswSyyiuY7HdtLqy1kjSFyAnjoVtr4TCLM3JMCa84ymh2_13Ih61ZNjUlGrZMdPei_mRdvW5S76WaVz5reGEUZ3zYcMiQTrL1nXC9OTPXrFDHNiR37aIGadFurqVtvpLIBjWRepBG7R7e77NiCbSpjoWxsGdGw-Fw-NOM_u5m9KrZuJ9ZYVxS8k5mIxt-T9TD8USzb94uuefSRvHtsttZ2w6sdmop6kEan8db3HOJFEPxbrydK2D3c5MQaJhhtLlx1xFBe5ttU9rY59-keHrubnzppq7guFGN1DMvjMS_NZx3CLXtjhbuHxkHJ4nv-zYufWAT5Njxit-xw9akuxcKW14YXxyWTureBCQ0oTlSmkg9byVy7gUrXuvKpN521ryQQHR7Fy9KQhdn7zJXGSRBiebzohL8_PtcTBXnXgts7y_aQkBwGMy8cDTsXPxqb0pWQBFtjHeYohU9WmNDZKOEEbJrStN14r7qlxIxbS-scqGRyNfMGLOQSEItBW0KZuP3GH3xcLpCS1LXz0gLJMGyjBpl0FPImwVSz6tcVHb245JoWIM0Q5dQ1Ug0eoC-L4GjL-iRKKTls5moBVqARkwjKh65eSVoJSSgFeNsRaodGSDNIAWwUmZUDmh3exyRXDTaXrjNmS4ZVFQhvSQbsKC4h1ONKvYAgyt6E9JhOCRXcBMkKQ6G2TDOrpY3cZAU2M8ojbIyhiSjQ5IPo4KERRrQKCqu2A32MQ4wzvwwwmE6SFOKSZFAEpRB4MfYi3xYEVYNjGMMhFxcMaUauImHKc6uKpJDpexfOMCYwyOynR7GXjy5kjdmznXeLJQX-RVTWu2haKYruGm9FhWSqCUo9GgkuZehWVc82b-KcNXI6mapdW3XHfbu94LpZZMPCrHal5sWXy3F_0ChPTy1xBhrtMT-fwAAAP__VypP6A">