<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/75923>75923</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang frontend crash (with reproducers) when building Nodejs 21.4.0 with Polly Parallelizer
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ms178
</td>
</tr>
</table>
<pre>
With a recent Clang-18 snapshot (cd6e462d012f289cc4ec12927ca8198f9ed1469e), I've seen the following frontend crash:
```
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: clang++ -o /tmp/makepkg/nodejs/src/node/out/Release/obj.target/v8_libbase/deps/v8/src/base/ieee754.o ../deps/v8/src/base/ieee754.cc -D_GLIBCXX_USE_CXX11_ABI=1 -DNODE_OPENSSL_CONF_NAME=nodejs_conf -DICU_NO_USER_DATA_OVERRIDE -DV8_GYP_BUILD -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -D__STDC_FORMAT_MACROS -DV8_TARGET_ARCH_X64 -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_LINUX -DV8_EMBEDDER_STRING=\"-node.17\" -DENABLE_DISASSEMBLER -DV8_PROMISE_INTERNAL_FIELD_COUNT=1 -DV8_ENABLE_PRIVATE_MAPPING_FORK_OPTIMIZATION -DV8_SHORT_BUILTIN_CALLS -DOBJECT_PRINT -DV8_INTL_SUPPORT -DV8_ATOMIC_OBJECT_FIELD_WRITES -DV8_ENABLE_LAZY_SOURCE_POSITIONS -DV8_USE_SIPHASH -DV8_SHARED_RO_HEAP -DV8_WIN64_UNWINDING_INFO -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH -DV8_USE_ZLIB -DV8_ENABLE_TURBOFAN -DV8_ENABLE_WEBASSEMBLY -DV8_ENABLE_JAVASCRIPT_PROMISE_HOOKS -DV8_ALLOCATION_FOLDING -DV8_ALLOCATION_SITE_TRACKING -DV8_ADVANCED_BIGINT_ALGORITHMS -DBUILDING_V8_BASE_SHARED -I../deps/v8 -I../deps/v8/include -pthread -Wno-unused-parameter -fPIC -Wno-return-type -Wno-invalid-offsetof -fno-strict-aliasing -m64 -m64 -O3 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++17 -MMD -MF /tmp/makepkg/nodejs/src/node/out/Release/.deps//tmp/makepkg/nodejs/src/node/out/Release/obj.target/v8_libbase/deps/v8/src/base/ieee754.o.d.raw -D_FORTIFY_SOURCE=0 -O3 -march=native -mtune=native -maes -mbmi2 -mpclmul -mllvm -inline-threshold=1000 -mllvm -polly -mllvm -polly-position=early -mllvm -polly-dependences-computeout=900000000 -mllvm -polly-detect-profitability-min-per-loop-insts=40 -mllvm -polly-tiling=true -mllvm -polly-prevect-width=256 -mllvm -polly-vectorizer=stripmine -mllvm -polly-invariant-load-hoisting -mllvm -polly-loopfusion-greedy -mllvm -polly-run-inliner -mllvm -polly-run-dce -mllvm -polly-enable-delicm=true -mllvm -polly -fmerge-all-constants -mllvm -polly-parallel -fopenmp -fopenmp-version=50 -mllvm -polly-omp-backend=LLVM -mllvm -polly-num-threads=36 -mllvm -polly-scheduling=dynamic -mllvm -polly-scheduling-chunksize=1 -mllvm -extra-vectorizer-passes -mllvm -enable-cond-stores-vec -mllvm -slp-vectorize-hor-store -mllvm -enable-loopinterchange -mllvm -enable-loop-distribute -mllvm -enable-unroll-and-jam -mllvm -enable-loop-flatten -mllvm -interleave-small-loop-scalar-reduction -mllvm -unroll-runtime-multi-exit -mllvm -aggressive-ext-opt -fno-math-errno -fno-trapping-math -falign-functions=32 -funroll-loops -fno-semantic-interposition -fcf-protection=none -mharden-sls=none -fomit-frame-pointer -mprefer-vector-width=256 -flto=thin -fwhole-program-vtables -fsplit-lto-unit -mllvm -adce-remove-loops -mllvm -enable-ext-tsp-block-placement -mllvm -enable-gvn-hoist -mllvm -enable-dfa-jump-thread -Wno-error -fgnuc-version=13.2.1 -ffp-contract=fast -fdata-sections -ffunction-sections -fno-unique-section-names -fsplit-machine-functions -freroll-loops -w -Wp,-U_GLIBCXX_ASSERTIONS -c
1. <eof> parser at end of file
2. Optimizer
llvm-ar crsT /tmp/makepkg/nodejs/src/node/out/Release/obj.target/tools/v8_gypfiles/libv8_zlib.a @/tmp/makepkg/nodejs/src/node/out/Release/obj.target/tools/v8_gypfiles/libv8_zlib.a.ar-file-list
#0 0x0000556913f91579 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) Signals.cpp:0:0
#1 0x0000556913f91370 llvm::sys::CleanupOnSignal(unsigned long) (/home/marcus/llvm18/bin/clang-18+0xd591370)
#2 0x0000556913f4c3f8 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
#3 0x0000556913f4c578 CrashRecoverySignalHandler(int) (.llvm.12110217104791804295) CrashRecoveryContext.cpp:0:0
#4 0x00007f96c3223010 (/usr/lib/libc.so.6+0x223010)
#5 0x000055691386ded1 llvm::po_iterator<llvm::MachineDominatorTree*, llvm::SmallPtrSet<llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*, 8u>, false, llvm::GraphTraits<llvm::MachineDominatorTree*>>::po_iterator(llvm::DomTreeNodeBase<llvm::MachineBasicBlock>*) EarlyIfConversion.cpp:0:0
#6 0x0000556914f0aaf1 polly::IslNodeBuilder::createForParallel(isl_ast_node*) IslNodeBuilder.cpp:0:0
#7 0x0000556914f0d3fc polly::IslNodeBuilder::createFor(isl_ast_node*) (/home/marcus/llvm18/bin/clang-18+0xe50d3fc)
#8 0x0000556914f0e6a5 polly::IslNodeBuilder::createBlock(isl_ast_node*) (/home/marcus/llvm18/bin/clang-18+0xe50e6a5)
#9 0x0000556914ea0d1d generateCode(polly::Scop&, polly::IslAstInfo&, llvm::LoopInfo&, llvm::DominatorTree&, llvm::ScalarEvolution&, llvm::RegionInfo&) CodeGeneration.cpp:0:0
#10 0x0000556914ea0505 polly::CodeGenerationPass::run(polly::Scop&, llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>&, polly::ScopStandardAnalysisResults&, polly::SPMUpdater&) (/home/marcus/llvm18/bin/clang-18+0xe4a0505)
#11 0x0000556914e9af5d llvm::detail::PassModel<polly::Scop, polly::CodeGenerationPass, llvm::PreservedAnalyses, llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>, polly::ScopStandardAnalysisResults&, polly::SPMUpdater&>::run(polly::Scop&, llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>&, polly::ScopStandardAnalysisResults&, polly::SPMUpdater&) RegisterPasses.cpp:0:0
#12 0x0000556914ed5dce llvm::PassManager<polly::Scop, llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>, polly::ScopStandardAnalysisResults&, polly::SPMUpdater&>::run(polly::Scop&, llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>&, polly::ScopStandardAnalysisResults&, polly::SPMUpdater&) (/home/marcus/llvm18/bin/clang-18+0xe4d5dce)
#13 0x0000556914e99475 polly::FunctionToScopPassAdaptor<llvm::PassManager<polly::Scop, llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>, polly::ScopStandardAnalysisResults&, polly::SPMUpdater&>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) RegisterPasses.cpp:0:0
#14 0x0000556914e99131 llvm::detail::PassModel<llvm::Function, polly::FunctionToScopPassAdaptor<llvm::PassManager<polly::Scop, llvm::AnalysisManager<polly::Scop, polly::ScopStandardAnalysisResults&>, polly::ScopStandardAnalysisResults&, polly::SPMUpdater&>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) RegisterPasses.cpp:0:0
#15 0x000055691076962a llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/home/marcus/llvm18/bin/clang-18+0x9d6962a)
#16 0x0000556910768b0d llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) AMDGPUTargetMachine.cpp:0:0
#17 0x0000556910a505fd llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/marcus/llvm18/bin/clang-18+0xa0505fd)
#18 0x0000556910a5030d llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) AMDGPUTargetMachine.cpp:0:0
#19 0x0000556910fbd791 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/home/marcus/llvm18/bin/clang-18+0xa5bd791)
#20 0x00005569111dbc51 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&, clang::BackendConsumer*) BackendUtil.cpp:0:0
#21 0x0000556910f37271 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (/home/marcus/llvm18/bin/clang-18+0xa537271)
#22 0x0000556910bb3780 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/marcus/llvm18/bin/clang-18+0xa1b3780)
#23 0x000055691078bf78 clang::ParseAST(clang::Sema&, bool, bool) (/home/marcus/llvm18/bin/clang-18+0x9d8bf78)
#24 0x00005569111fc6b0 clang::FrontendAction::Execute() (/home/marcus/llvm18/bin/clang-18+0xa7fc6b0)
#25 0x000055691120274e clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/marcus/llvm18/bin/clang-18+0xa80274e)
#26 0x0000556911202c19 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/marcus/llvm18/bin/clang-18+0xa802c19)
#27 0x0000556911205978 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/marcus/llvm18/bin/clang-18+0xa805978)
#28 0x000055691120409d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#29 0x0000556911203f2b 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::$_0>(long) Job.cpp:0:0
#30 0x0000556911203f00 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/home/marcus/llvm18/bin/clang-18+0xa803f00)
#31 0x0000556911203dd4 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/home/marcus/llvm18/bin/clang-18+0xa803dd4)
#32 0x0000556911203ad1 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/home/marcus/llvm18/bin/clang-18+0xa803ad1)
#33 0x00005569112035f9 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/home/marcus/llvm18/bin/clang-18+0xa8035f9)
#34 0x0000556911207a28 clang_main(int, char**, llvm::ToolContext const&) (/home/marcus/llvm18/bin/clang-18+0xa807a28)
#35 0x000055690a8ad01e (/home/marcus/llvm18/bin/clang-18+0x3ead01e)
#36 0x00007f96c3201f47 (/usr/lib/libc.so.6+0x201f47)
#37 0x00007f96c3202004 __libc_start_main (/usr/lib/libc.so.6+0x202004)
#38 0x000055690aba9031 _start (/home/marcus/llvm18/bin/clang-18+0x41a9031)
clang++: error: clang frontend command failed with exit code 139 (use -v to see invocation)
clang version 18.0.0git (https://github.com/llvm/llvm-project.git cd6e462d012f289cc4ec12927ca8198f9ed1469e)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /home/marcus/llvm18/bin
clang++: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: /tmp/ieee754-a11a66.cpp
clang++: note: diagnostic msg: /tmp/ieee754-a11a66.sh
clang++: note: diagnostic msg:
********************
make[1]: *** [tools/v8_gypfiles/v8_libbase.target.mk:188: /tmp/makepkg/nodejs/src/node/out/Release/obj.target/v8_libbase/deps/v8/src/base/ieee754.o] Fehler 1
```
Here are the mentioned files:
[ieee754-a11a66.cpp.txt](https://github.com/llvm/llvm-project/files/13715270/ieee754-a11a66.cpp.txt)
[ieee754-a11a66.sh.txt](https://github.com/llvm/llvm-project/files/13715271/ieee754-a11a66.sh.txt)
I've identified the problematic part of the Cflags to reproduce this is, it comes down to using the Polly parallelizer:
`-mllvm -polly-parallel -fopenmp -fopenmp-version=50 -mllvm -polly-omp-backend=LLVM -mllvm -polly-num-threads=36 -mllvm -polly-scheduling=dynamic -mllvm -polly-scheduling-chunksize=1`
Without these flags, the compile runs fine.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzse1134yjy96dR33Dkoxe_XvSFbMuJZx3bx3a6e-ZGB4uSzTQCPYDSyX7654Bkx1Kc6XSmd3Zn9z8nk46goH71q6IACbBS9MABPjq9sdObfsClPgr5MVf-YPhhL8jTx89UHxFGElLgGk0Y5gfXHyLFcaGOQiMnGKakD91-QDw_yILhKE27kPrBKBikeOiPhtkIiN_tj8AJRk4wQXMnGDwAUgAc6SOgTDAmvlF-QJkUXAMnKJVYHZ0wcryp451-9736xz6uF3G0jZEq9znVCKN9eUASCiE10gIdtS6U6SCYOcHsQPWx3HdSkTvBjLGH0z9uIcXvkGonmFGlSlBOMEOYE0R5ykoCFp7FgvY4_aolTsFYUEgopEhBKSBIiVJWxaYlVkqkFGsgSJYcqVTSQncqyFuN06-IlHlxNs3rIPvfWoqDxDnC8lDmwLXBjlJDthOMnWCMXIGcYKbzwglmOf4KxdeDE8y4IPC7Qa1kWj86wUyUxqINMMDKPu9_72gsD2CKH4YJo_t9VUOgULbs3EVdQQFg0Ot2BOp03iKXpsidJjeL-Xjy5Utyv42TyZcvvp9E47kTTn3kTperaZys1vFyu10kk9Vyliyju9gJp5UNSSp4htzpfHKfLFemh00yjXZRsvoUbzbzaYzc6adhcvPrOhnfzxfT6nH36zqeJtFmE_2a3EVfku38tziZL5PbOFo74bTfNaiS7W46SWarzV20S-6iyWa1rVtHm5t4l0SbyW3yxcp-Gia30af4VNMSXG2TxXx5_6UqjO_G8XQab5LtbjNf3jjh1OlNnCBwjUEdf1A9IXcaL6PxIk6m82203cZ340W8qXpYb1Z3860BvIs3y2iRzObxYppMVvfLXc2a0VM1X2_mn6JdnNxF6_V8eWPs-UeyWu_md_Pfot18taykt7erzc5StJsvk0m0WBgbVuNf4snO9LHcVXLz5W6RbO_X69WmLol2q7v5JKlFKyifN_NdvG3gWES__ZpsV_ebSZysV9u5UV1LGLdv5-vbaHt7AhNt4mmyWVmHVGWf58t-N7lffp4vp8aO-XK2aijYxDfxl3VFynoT7-JNsrvdxNE0nhoO19Fucvus77fFfNxovrvfjFezaNko_ByPa-5_bZT_En2KtpPNfL07O-N2tfpHbU-0WKwmlttktloYtC_Kt_NdnOw20eQfz7XTT9FyEk-T8fxmvtwl0eJmtZnvbu9MrzZ2jdmfhsk4MnxZipA7b46zFwVmrNVJyS30UQImyP3MhVvyUgFxCyxxDhokcrP1fFLVSdCl5K5-KqAqoPwBM0pckWUKtMiQm3HhKi1pql3MKFYmDbu5GQz21yqsREROtZsZFW4hKK_0EKyxqyDVVHCF3Cwruf37ouzUXmpNq7_gMYWirlWaOOH0wMsqyfkD5N7dTZF7N3t_suvUlP1bsmWHdCT-ZpLObLXZzWenkeKEU68iI8cyPZqshzV9AOTmuuRw-YxBITff5zRAbl6kLC8ZcnMzWyGXckY5uMb96iiYIc_3PO9cXwjGnppPbiEUNXQ74RSwfFFNoABOgKeg3FTkRanBEBJOR17934sGGlJtZs6MarynjOonN6fcLUC6TIjCpVyZ-WvabTfVlFF-cMKpliW0YUp4MP1-o0QbfoJevyVhqoWk_wTphFMTskVOebsbE-CSYq5dJjBxj4IqXYX0pZSBmZXKhOpBApA2KbLkNdfySg1J21qB4z0DlwCjaX7VPuRmOcgDuJgxNxVcacy1anOAJWYMGHIzUQDPi_Mf7gNIVTmx12ZV5IVrVifATTwsFp_uWgK8zN0qYxivhG1eVXoEUtaeIU8c5zR9VcRNjyX_qug_oZqgajF41BJfeMgtsFLwbF9NUCo4cZUWEpQRPlcrVjw3do9CVkLt5sZtNvekR8wPV6tdQk1o7Ev9orrkUjDmYk7c33F-tXHGsNbAL8abBskAP4CrcuM5K6VSzLB0JZDSprmzeK1BllzTHNy8ZJq68Ej1WQIfDhKUog9gKHNFoaukmGN9dEFKLqpnLXFRGLpNBXIzzOiBu6f8at0YIPNsFRpUqk7lkGOuaVpBP4195GZpZoasrhKzXXXZsXPEkgB3FVPnsuxars8LCRnI2kvNUZoxLUzQH6lR9O0oGBhdZj3rPmjDrgGnCka1y7SZsS4ZISm4EnLxACc7mo4xPGlVuHsm0q9uwXAKZoHcFjs88Gq0tytIht3fy7xwLydNkFKYGezAy_RibPlhJ-j4ZiYrTKya9b5JhRk23b5lusvshEz_XwmnQpfj_ML-HKdHk8LPrkRuJuHSi9-Q-7lwgol7f15Om6XLpl5npdW-wa_3DU44AZE5YYwKLBVIhDUyGyiRoYwyqISDDloVmuY2d9oSu_nBEqVS7X7SvkILwarZMTk8FUa5eWJ0_zBM_snovoOR0_X-Kl0dLF1T7jKqdGUzcoLQQ96jmdN6vf7ID7OR3xuMkN0QhpETRupJVX-sJeXabtd21Z5v-Cwk8bdEKC0B507QN_s-yrUTjNCWHjhmqpMWZn_n2f_Pmv225nDgXdM8YYB5Wax41ZsTDEtut-gEMWF2gyOz43aC2VHkYHmUaanq_axvKvaUO8EsrTfqTjD2HknP6jP77zOgoAmom4bZ0HSNueBPuSgVspFbWPNHNTizFd5AKh5APk3MXv1Rz_OCVbW3mBMGVsYJhpaUCXqB_lof1ykL2wh7g2GzecVRpVeedFqCOoaOjh_4vhf4A9_rDkb-0OsGo96PYejWGAbZqJ-GQRB6vlc7oFSyCrrqd9pRotO3dFdiDbZ7DVuGfQLEv3B_IRKqQWItpBNOnsvvqnQxFTnlpnInAZwgMsQ-C23N1LTWcgu60XgqciO_FATGZhBd6XiMFU3HJrM6YVx3PCzt3xOUYaagqepG4uK4k5iaBd4bcIax_WmbeDmc3oVyhGKzlp1nE8Hr9H3df_1L3ruZh3HmI7uoqTTMFbOaS8qIWViaslQC1jATcl2vx0xkKZZgpZMqO1kEzabX1Q9a6kmYpW9Wf13tj49-6Fm9jXgctoBBH_feBqzyw8-DZjQ3oI0a0AB7xCfoANzEDkystuEF0m0qijoPN_FHSs95Juq656BaCFFcrWhFb6t2a1d98YNgpV1Ctes3cKCCnzseIQP1poJ9NTzNpOC1be15DTc0-1hjVc8SsuSvsvAMKeKYPSmq7jDHB-PFyYsWDdJM0VZjTrAkp7YbUCXTyvRtxl6b5-80aQmv7-4LgrXJ1f13BkzXcnQOGEOi3yRxhLMeuWCBgMa0nqIMg3eCAPsuF1eYb3C7lqBAPkBtNah_OfU_i_dTQv4viSEz7pQGubY7zuvDLGhGCOmZLfyFL01U_JF9_-fXv0dusI5t5IawlRtG3UEjwc7qfdhOGLQmECKCi_Yy7L8nQBox8oz6RMMbwuRKo9r5bxuL3bZH_NB_Q7a-hnXyv-3JPzcfXffjf0CANLZK3qA_6gf41WR9PSz-4-z-8WQ2ItbwRjLrt5gZ7r23LHS-x9G_jNG_YYBGd9Ob9f3Ovmiqd5_Xo7Sxs_Nwz-tll764E6RksBMnDY18dA1_1eCH0NdN_kSQ2bV0RhpBNmwbFv5gkJ0smbyRjp8VJc90vBYjP4HjN8dHYxfrZXsyGPlvGHPXyPu3G_2OwOpZgy8DK2jsdX2f7NOe_70XjnFOdaQU5Hv2dAusOL2K2JS8fqNdbc9oAYxycIJhdWbGCo2rj2LROYnZz82mpnpFnxS6abfE35Lim6QaktP73YtGBDJcMp0QYKDhOw3rBNh_i9qdEGxV6qLUM1r5_i06W60uFb7kYCK4KnOzeLAvaurSe03Z1egN_Gb0hoNg4F92a_xSd1JhaDI_pfjAhdI0VTE_WMe0gd0CJiC3gGV6XNXnAex30Zei9Vb8O1LVmPyO0ALzwzWRi9c8WlJ-2EB2LYHVb0j_KMaem8y5lqWiD7CBbML1uuX1h6x-l2Pct31SGvJ6zvzrw_QNIfOeHGDDppEDGhtxb78PB0Pvj3RXoWLf7-8k5orZ4X7PaSvgou2ufo3__pTlWzQNuGFzwTXcZ4PhJdw1lgqi7a4JZgs5ruNqLwR7_vd960CrtQGr28ykWdrfN1ic1cco66isRuwjpKUGC-Bd9AysmgaOxkrdD7xg0IXmwM0LykDO7XGHFBpITkNm-Drwd7tyaKE0sPbbWFN_1MhoFapnyA8ixS8RvjDp3aNjaCE0MA5aGHsjE26pn-SYNif1SEr8ZJJUOEmPWJ5yWXQazY2yYIIeBCV_BqpB0oA6bEHteiOCThxO_J2N92HrG9Une3ig-mB4BXcrE5s-6kF9katHiEj6cO17i4E1asEKs2Bvjb_o9_TpPZGWP1tbDYvzGirFjO1x-jXJuEH67P5Kdx0KE38i8hxz0h5hV_10TtDCzj-4uWh-nnbOKfncIEnSx0ffrx72WNHUpG97Xsey2BA2BYk-faGz1a3uMGMmtO2LkVP9-eNflahsoFSc2yZO0E08KzQ8fcb9ReyvuqD5id26wLv80H3t0-t5TbfFGbCnBoN_7K33xrMBdRnPzc_zBjUhXfS_7Ph38kpIt8Fr0OYVE_9VXm1uxS_mrF_EXjWz8GWrX8R-QZV-bTn3Iu-c6SgwNUzU5xRex2Qc3UhU51x1mtX_DGGYNFZIzUMPhrBeNnoN3PTi78b8dWXieo3ov5Cw947VXtaYJsNui6IBDupV2WmiPEG0YyR6cWDitZnlXfCM9ga8y1WRh4eYeD68o-sQbMtG1_3maRTPz7qD759GsWKNfgatfgLP66IkMe0SpbHUlsg39GwaNnoeNozf45EX-qjq8x0cdH3bwVnDxYUYJ4yQPcV3vihzcXuojsEMUwYEfaP6iOwxzFQQQH5oPV0qQO4D0gIpAEQv1nuXylB9ugT5w47X8Q7UmvFjt4s6ptWP3JGy6qv9rLHucdhP-l23SF1GefnoHnhZi1QnGvPqFVyECqHoY1Vl16eMAZlSy9D3iL9GLxdm_xghct7No1wdbG-1v__Ez8XFrvomV7TbRZNbtLuN0Wy1WKw-z5c3aDZfxFu0W9ni8f0N2sTr1WbnnO5Pra_dxBoqM5pfvY11FpCA7IwIBGF97vLtLJzOMtbH_13s-7jft8uin9OTOr7PMT_JPTn-Ck5v7Du9aYWyrkVOb3z9CObzdYn6sGYn_-qEkT8cNsz8K69kOL0pmsGRgUT-1YuEtyDBxoI-AsqBmyQABFUmta4g9sYvfd3Rj9ow9KNpwQlmJ9r8cOD3goF3NZZs_-cc-wKBOv48AP61EGzqv_hd3-OkxHCWUSCWwUKKPYMcm6gsTNoXmS2fZAwflMm3dsiSMjWMU4Wofcdvs3MOChHxjRup0l5FMi3X9gLF6XJEdQGkfTP0b36R4hyM1e_PVB9FqY31CpAlznBkb6NWLyBMOlMooxw6H8jHkIzCEf4AH_2BF4yGAz_ofTh-JGHWJSHueilJg3CPB90-xv4wDAj0sgC6H-jHwAtCP_BHvt8bdnudsOdjP-j7abAnPtn3na4HOaasOk0r5OGDvSb7cdAbBeEHhvfAlL05HAR1igqc3vSD_GjDbF8elNP1GFVaPfegqWbwcdKase0dWycY2rn6HCDS5ulvR-BoX1JGTEQsbcZAgd_pdrxqbq8CZH0RIB9KyT6-_w6wte__BwAA__9HvwCZ">