<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63592>63592</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang] Compilation error of __fortran_builtins.mod with -I/path/to/install/include/flang
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
yus3710-fj
</td>
</tr>
</table>
<pre>
This is an issue from Fujitsu testsuite.
If the path to the directory of intrinsic modules (`/path/to/install/include/flang`) is added to the include paths with `-I` option, the compilation sometimes fails.
In addition, a program which uses `__fortran_builtins.mod` implicitly is never compiled with `-I/path/to/install/include/flang`.
Maybe it's not a bug, but I think it shouldn't be an abnormal termination.
The following are the test program and the result of Flang-new compilation.
`test.f90`:
```fortran
type tt
integer:: i1
end type
end
```
```
$ flang-new -v -I/path/to/install/include/flang test.f90
flang-new version 17.0.0 (https://github.com/llvm/llvm-project.git 93af6bdcaf4d499e9d4c1da5aa82f92f0acc1dbd)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /path/to/install/bin
Found candidate GCC installation: /usr/lib/gcc/aarch64-redhat-linux/8
Selected GCC installation: /usr/lib/gcc/aarch64-redhat-linux/8
Candidate multilib: .;@m64
Selected multilib: .;@m64
"/path/to/install/bin/flang-new" -fc1 -triple aarch64-unknown-linux-gnu -emit-obj -I /path/to/install/include/flang -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu generic -target-feature +neon -target-feature +v8a -o /tmp/test-117d7a.o -x f95-cpp-input test.f90
error: loc("/path/to/test.f90":1:1): unexpected typeless constant value
LLVM ERROR: aborting
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /path/to/install/bin/flang-new -fc1 -triple aarch64-unknown-linux-gnu -emit-obj -I /path/to/install/include/flang -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu generic -target-feature +neon -target-feature +v8a -o /tmp/test-117d7a.o -x f95-cpp-input test.f90
#0 0x0000ffff9953fc30 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/path/to/install/bin/../lib/libLLVMSupport.so.17git+0x19fc30)
#1 0x0000ffff9953dd10 llvm::sys::RunSignalHandlers() (/path/to/install/bin/../lib/libLLVMSupport.so.17git+0x19dd10)
#2 0x0000ffff9953de80 SignalHandler(int) Signals.cpp:0:0
#3 0x0000ffff9af6066c (linux-vdso.so.1+0x66c)
#4 0x0000ffff98f22dbc raise (/lib64/libc.so.6+0x32dbc)
#5 0x0000ffff98f10928 abort (/lib64/libc.so.6+0x20928)
#6 0x0000ffff99478aac (/path/to/install/bin/../lib/libLLVMSupport.so.17git+0xd8aac)
#7 0x0000ffff99478b10 llvm::install_bad_alloc_error_handler(void (*)(void*, char const*, bool), void*) (/path/to/install/bin/../lib/libLLVMSupport.so.17git+0xd8b10)
#8 0x0000ffff95bb1078 fir::emitFatalError(mlir::Location, llvm::Twine const&, bool) (/path/to/install/bin/../lib/../lib/libFortranLower.so.17git+0x131078)
#9 0x0000ffff95c82668 (/path/to/install/bin/../lib/../lib/libFortranLower.so.17git+0x202668)
#10 0x0000ffff95c83f38 genInlinedStructureCtorLitImpl(Fortran::lower::AbstractConverter&, mlir::Location, Fortran::evaluate::StructureConstructor const&, mlir::Type) ConvertConstant.cpp:0:0
#11 0x0000ffff95c84770 mlir::Value genInlinedArrayLit<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>(Fortran::lower::AbstractConverter&, mlir::Location, mlir::Type, Fortran::evaluate::Constant<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>> const&) ConvertConstant.cpp:0:0
#12 0x0000ffff95c84c38 Fortran::lower::ConstantBuilder<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>::gen(Fortran::lower::AbstractConverter&, mlir::Location, Fortran::evaluate::Constant<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>> const&, bool) (/path/to/install/bin/../lib/../lib/libFortranLower.so.17git+0x204c38)
#13 0x0000ffff95d45468 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<fir::ExtendedValue> (*)(fir::ExtendedValue (anonymous namespace)::ScalarExprLowering::genval<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>> const&)::'lambda'(Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5> const&)&&, std::variant<Fortran::evaluate::Constant<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::StructureConstructor, Fortran::evaluate::Designator<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::Parentheses<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>> const&)>, std::integer_sequence<unsigned long, 0ul>>::__visit_invoke(fir::ExtendedValue (anonymous namespace)::ScalarExprLowering::genval<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>(Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>> const&)::'lambda'(Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5> const&)&&, std::variant<Fortran::evaluate::Constant<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::ArrayConstructor<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::StructureConstructor, Fortran::evaluate::Designator<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::FunctionRef<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>, Fortran::evaluate::Parentheses<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>> const&) ConvertExpr.cpp:0:0
#14 0x0000ffff95de5fd8 std::__detail::__variant::__gen_vtable_impl<std::__detail::__variant::_Multi_array<std::__detail::__variant::__deduce_visit_result<fir::ExtendedValue> (*)(fir::ExtendedValue (anonymous namespace)::ScalarExprLowering::genval<Fortran::evaluate::SomeType>(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&)::'lambda'(Fortran::evaluate::SomeType const&)&&, std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long>, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)2>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)3>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>> const&)>, std::integer_sequence<unsigned long, 9ul>>::__visit_invoke(fir::ExtendedValue (anonymous namespace)::ScalarExprLowering::genval<Fortran::evaluate::SomeType>(Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&)::'lambda'(Fortran::evaluate::SomeType const&)&&, std::variant<Fortran::evaluate::value::Integer<128, true, 32, unsigned int, unsigned long>, Fortran::evaluate::NullPointer, Fortran::evaluate::ProcedureDesignator, Fortran::evaluate::ProcedureRef, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)0>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)1>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)2>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)3>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)4>>, Fortran::evaluate::Expr<Fortran::evaluate::SomeKind<(Fortran::common::TypeCategory)5>>> const&) ConvertExpr.cpp:0:0
#15 0x0000ffff95d515d0 Fortran::lower::createSomeInitializerExpression(mlir::Location, Fortran::lower::AbstractConverter&, Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&, Fortran::lower::SymMap&, Fortran::lower::StatementContext&) (/path/to/install/bin/../lib/../lib/libFortranLower.so.17git+0x2d15d0)
#16 0x0000ffff95e92f94 genInitializerExprValue(Fortran::lower::AbstractConverter&, mlir::Location, Fortran::evaluate::Expr<Fortran::evaluate::SomeType> const&, Fortran::lower::StatementContext&) ConvertVariable.cpp:0:0
#17 0x0000ffff95e930f0 defineGlobal(Fortran::lower::AbstractConverter&, Fortran::lower::pft::Variable const&, llvm::StringRef, mlir::StringAttr)::'lambda1'(fir::FirOpBuilder&)::operator()(fir::FirOpBuilder&) const ConvertVariable.cpp:0:0
#18 0x0000ffff95e8b7e0 Fortran::lower::createGlobalInitialization(fir::FirOpBuilder&, fir::GlobalOp, std::function<void (fir::FirOpBuilder&)>) (/path/to/install/bin/../lib/../lib/libFortranLower.so.17git+0x40b7e0)
#19 0x0000ffff95e8be88 defineGlobal(Fortran::lower::AbstractConverter&, Fortran::lower::pft::Variable const&, llvm::StringRef, mlir::StringAttr) ConvertVariable.cpp:0:0
#20 0x0000ffff95e97d64 Fortran::lower::instantiateVariable(Fortran::lower::AbstractConverter&, Fortran::lower::pft::Variable const&, Fortran::lower::SymMap&, llvm::DenseMap<std::tuple<Fortran::semantics::Scope const*, unsigned long>, mlir::Value, llvm::DenseMapInfo<std::tuple<Fortran::semantics::Scope const*, unsigned long>, void>, llvm::detail::DenseMapPair<std::tuple<Fortran::semantics::Scope const*, unsigned long>, mlir::Value>>&) (/path/to/install/bin/../lib/../lib/libFortranLower.so.17git+0x417d64)
#21 0x0000ffff95c172dc (anonymous namespace)::FirConverter::startNewFunction(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0
#22 0x0000ffff95c18508 (anonymous namespace)::FirConverter::lowerFunc(Fortran::lower::pft::FunctionLikeUnit&) Bridge.cpp:0:0
#23 0x0000ffff95c0f36c Fortran::lower::LoweringBridge::lower(Fortran::parser::Program const&, Fortran::semantics::SemanticsContext const&) (/path/to/install/bin/../lib/../lib/libFortranLower.so.17git+0x18f36c)
#24 0x0000ffff9a1e53c8 Fortran::frontend::CodeGenAction::beginSourceFileAction() (/path/to/install/bin/../lib/libflangFrontend.so.17git+0x1153c8)
#25 0x0000ffff9a121f90 Fortran::frontend::FrontendAction::beginSourceFile(Fortran::frontend::CompilerInstance&, Fortran::frontend::FrontendInputFile const&) (/path/to/install/bin/../lib/libflangFrontend.so.17git+0x51f90)
#26 0x0000ffff9a113150 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/path/to/install/bin/../lib/libflangFrontend.so.17git+0x43150)
#27 0x0000ffff9a6430a8 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/path/to/install/bin/../lib/libflangFrontendTool.so.17git+0x30a8)
#28 0x0000000000406170 fc1_main(llvm::ArrayRef<char const*>, char const*) (/path/to/install/bin/flang-new+0x406170)
#29 0x0000000000403524 main (/path/to/install/bin/flang-new+0x403524)
#30 0x0000ffff98f10d64 __libc_start_main (/lib64/libc.so.6+0x20d64)
#31 0x00000000004039c0 _start (/path/to/install/bin/flang-new+0x4039c0)
flang-new: error: unable to execute command: Aborted (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 17.0.0 (https://github.com/llvm/llvm-project.git 93af6bdcaf4d499e9d4c1da5aa82f92f0acc1dbd)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /path/to/install/bin
flang-new: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
flang-new: note: diagnostic msg: /tmp/test-580dbe
flang-new: note: diagnostic msg: /tmp/test-580dbe.sh
flang-new: note: diagnostic msg:
********************
```
I checked the result of strace, and found that `__fortran_builtins.mod` was read twice.
It was read only once without `-I/path/to/install/include/flang`.
```
[pid 1984821] newfstatat(AT_FDCWD, "/path/to/install/bin/../include/flang/__fortran_builtins.mod", {st_mode=S_IFREG|0664, st_size=2376, ...}, 0) = 0
[pid 1984821] openat(AT_FDCWD, "/path/to/install/bin/../include/flang/__fortran_builtins.mod", O_RDONLY|O_CLOEXEC) = 3 ★ first reading
[pid 1984821] fstat(3, {st_mode=S_IFREG|0664, st_size=2376, ...}) = 0
[pid 1984821] pread64(3, "\357\273\277!mod$ v1 sum:d38328105388da49"..., 2376, 0) = 2376
[pid 1984821] rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
[pid 1984821] close(3) = 0
[pid 1984821] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 1984821] brk(NULL) = 0x19f10000
[pid 1984821] brk(0x1a030000) = 0x1a030000
[pid 1984821] newfstatat(AT_FDCWD, "./__fortran_builtins.mod", 0xffffc4aa9200, 0) = -1 ENOENT (No such file or directory)
[pid 1984821] newfstatat(AT_FDCWD, "./__fortran_builtins.mod", 0xffffc4aa9200, 0) = -1 ENOENT (No such file or directory)
[pid 1984821] newfstatat(AT_FDCWD, "/path/to/install/bin/../include/flang/OpenMP/__fortran_builtins.mod", 0xffffc4aa9200, 0) = -1 ENOENT (No such file or directory)
[pid 1984821] newfstatat(AT_FDCWD, "/path/to/install/include/flang/__fortran_builtins.mod", {st_mode=S_IFREG|0664, st_size=2376, ...}, 0) = 0
[pid 1984821] newfstatat(AT_FDCWD, "./__fortran_builtins.mod", 0xffffc4aa8dd0, 0) = -1 ENOENT (No such file or directory)
[pid 1984821] newfstatat(AT_FDCWD, "./__fortran_builtins.mod", 0xffffc4aa8dd0, 0) = -1 ENOENT (No such file or directory)
[pid 1984821] newfstatat(AT_FDCWD, "/path/to/install/bin/../include/flang/OpenMP/__fortran_builtins.mod", 0xffffc4aa8dd0, 0) = -1 ENOENT (No such file or directory)
[pid 1984821] newfstatat(AT_FDCWD, "/path/to/install/include/flang/__fortran_builtins.mod", {st_mode=S_IFREG|0664, st_size=2376, ...}, 0) = 0
[pid 1984821] openat(AT_FDCWD, "/path/to/install/include/flang/__fortran_builtins.mod", O_RDONLY|O_CLOEXEC) = 3 ★ second reading
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsfE9T4zqz96cxG1VSthwn9oJFCMkc6mEGCjjned9VSpbaic7Ykq8kB3gW97PfkmwnsYHAMMDMuRcKQmxL3b_-o-6WLZlozVcC4NiLTrzo9IhUZi3V8X2lw0ngD7K_j1LJ7o9v1lwjrhERiGtdAcqULNCi-psbXSED2uiKGxh6_qnnT-vPswyZNaCSmDUy0n1nXAE1Ut0jmSEujOJCc4oKyaocNPJw7I19Dy9sHw8vjPTwggttSJ67bzSvGHh4keVErFzTxKFiDFjLo2nl-Gp0y80aeWN_cOaNfSRLw6Xw8My1pLIoeU7sKaRlAYYXoFFGeK6HCDVCCEudt90IKpVcKVKg2zWna1RpC3vsL5eZVEYRsUwrnhsu9LCQzLLkRZlzyk1-b5EK2IBqGAPbR_dyoTtK_kruU0DceHiikZAGEZRWKws1rQw6Q2bNxXfEDdJrWeVMeHhiUArWkCQVUhUkRwZUwYXTQ4f2zRpQJvNc3nKxQkSB05o19lYLRDB3UoGucmOturAoBwJu99XbIeuNfUtjmCW-NWG4O13_Npqsz5r7EpAx9QGyPgMrULZTOEU8qM-DRXFfwvaoR_HxQzxC2RbsYINebgS0xe8o7ahsQGnrTcFk6A99689rY0pt4eKFhxcrbtZVOqSy8PAizzftv0Gp5N9AzXDFDUpCko1TRkk2YqMkgYSNaMBIREiMswRnPqE0YCnzcNLYiagVGKsQQhRdj0eDSnwX8lYMci6qu8FKVK1BFRBmhxvktnkpNb9r_dzJCuyUW-2iJ1WR8sYyC1kJhigRjDNiAH2ZzVDTzNm8oVJpZYXkqRWfUg8vWpAK2JqYGqOHF3FN9hpyoAbYW9GbbQEWVW647RhO0dALT7yRX4xHPa6HGiEP44N6adzDuoKHMRpkNEADo3iZw9OmQQMouBnI9G80OHta730XHBQKckmdagbOoqjkFA1KTgc5bCBHuD7gelByQAPjvGRAywqtQICyjZtzGRBTKUAePhEgxWPnNzFBA2nhmaK0n6DNIAgmbEKGEg3uUJZEA1qWAy7KyvQGCCglnVflktoY_0CN2-YYe-E0cH84sT0qAXdlbRo7wnPQGlFptSIM2pC8agb9-flfX9H86uriyo2DVCrDxaq-dnk-n17Pka7SgjcBEikopTI2Z_zYCLWWsAlQe3jhol-bblxCUUSvUUrod6MIbbPhtSH0O2JVUW5jnY3hyWUbQ9WqKkAY_ey42_OvT-dqnQt5OPSRf-f7vp9lWZYkUZjR0EfOei5R6Htdf7lUXBhnjxtrIA_Hu0aK3C6lNgpI4eGxzaBcGFtgOI89aJXhcBuScp5aV7yuSutfQy2HwWRl0_OJfxckFtc2bFvgQQ84Y8GjwK8qcc1XguR_EMFyUNqBelNslnUHG-5jg9hHHRQejhsd1af1kJbWyX33tyUU7hMi2dgfj6lFXnvphmnpsDgc4zHtgBjt940zjFlKkSJcQyN7ztPxqP5PLZmxIxPadh1CUZdQ4Cc4ruPEQULYtusQGnfUMprEhNC3swOz5Dr8Jn1-acdFGj7LlLAlyXNJly7aLtdbE20kZzXAqSVcn3AHM0TXRNXxtDmRSpm7VjO0bfaGbsYs-o548b54UZoG_iRGGW9KPBu9FsSQfO5SCI6LvL103sQnC3WnjptbLqCVaLwn0Y_J0BVnUVek5_IWVG_YhBZvR6CkIxCN8Xgcvw9z7FvaW-Y2nPg95mEWxjYin4mcC2DXRlXURt2Zkeqcm7OizD0cNyxqDeaWUf11mmqbyMxMig0oY73JqfRxI3SogM3NxEB9tONrDWO_S9Ux0o7ija3jcYIanrMm1z-MLFbcoCfuaDLx92j9ZeuDPfGnSpH7c268cHYIrCzgX1wwL5z1dUNlUUixAzojBlZS3Xs4ibxwbn_fSpt9jRzUb6uldxRsz1wvNA7uG4eGMXpKOS2pk4rnzJ58Pwu5aysQH-H4H2uYdw522Lcm7MSbTmqP2CgajWOkDasBL5cMDOF5e7Qhijtl1IcrEMuNIWkOS24DUTh7Yc-vdpK2JHY0v7zTkgGrKCw3XHOzrG9YeOFsm2rmdwYEA-aChtXrfsp8vJVtQoQU94WsNBKkAF26sjJp7EpJTtT8rlROm3ZC0jrfhuQfGIW6pC2gD4oUdTsPT3JSpIx4eHIY2usZd7jaTzcetr6x9YVDYn_AaH0mXrgMtZckfx2Sx1L2M11OQdtpwC-FvagEtXH5CrJfB-KSKBBmDRr0uyay3lCbdzy-uVW61PBfFQgKXjirhLvZz1AuhbtH7Ff5flJcNsGRi438Dp9h7zPsfYa9z7D3e4e9di5iR_fj85BRt0aFKGOfNeqbBWs3O32b0NuQ-tlAasm8RVisny64r2ftY8dZYBU-Q0ZVbk4eYvu5zavubujescuzz46bb1WeX0qbr58LNZdKUmCVgr2Y88IeNjIcbvpe-dF_UfB4L-7BL-WOfyn38JdyH_1S7m9XJCe_ZZH8GXc_4-5n3P2Mu_-MuPt8lR51q_QoiJj_5NMCqoAYsADPBDec5Pw_4GIpaO1uyj_xnPBH7_e_Q2h9GsT1ffGVlM81MsRAAcJCNXDXqvd97vcza4TO_f7Ow-8IEpwlo_oBW8cM9fzkA56vvIMVHldwg_Qvm8DSHB734UlPO6Gf-YhBxgV8yWVKXvOs9an2ZdZMGltIHel2D8Svja0tmiy00299emqMepjtgzrdb-uaBVcXZftgbq88kCWoOhXGvRnowx41upepsbskAOJ0As-Fglq9Wy9sXOcAoNlujUHd96LsVCpZc0PFC2ft-omD-pi_2ygc-Vb-zihM-gqCOP4n-NmLzI_93iiasPHoSXi8vnXJiYGW6ocJ_6JAvtPQKQgN9sLe7SBTlTn0A5iGwopEdTtTkLvCevpUndtb9fA46zORyfdh7xYL1V93bPdvdbUQLonF-REaaKqg98uPo8C65v7IxL0FKcEEM_rcTHDB1c4fa_ENUeYb3LZ3dQ949NZD27bn_Dv8KXibt04UZ6snBlpvgUYQR37842AdGMv9nVB2lxhQPwvH9Mmh186la4L7l3vgSqJ026ldiPvk2O67Y3vYlAidQvd9lpnFVuqOp3XuapMAopD2VtdkysITzTibSQZfQEybrGZPpbDi4lpWisKC5zBtfe01K_7cuuFFw7EHPrDYOuCjLngcZIl_CHxL-AD6voH70rsdN8ptcxDWnx9a-XGWZ6KsjGXweisfVk8UuIXve9oZd7UThEF0UDsPhKvL4DugldlZ9eXqfXMRR1aCjoidSpmMR6FPDnpvI8xO0s12fvBjZn_VctaOaDdS5l3xLPiOdG0BW_-M_HEw8VFGg2VBLPW9RefuwWf90K67FLdOab3luS9BvrcDxRWPlncHXNIDF0Z4hCywVxC3ffeJdxfix1ng29ptucx5Spcuqy33OD214rqXVLeL5LeIE-qjmtxrMCd0p5DdxXCKtttUKuFqPSNR43eIyqIgzqvQNJXKgJsRUKnAbewA9gzFeltF65wtObfXEBhilWPmbi3mlnClAQ027hwA4nve3ufyf2rLWUe3QropPmKcrITUhlNU6JUj1HjOT_zubVdsdg9Nb26msz_QzR9ztLg4P7_499m3L2hxdj6_RjcX7vTJn1_Q1fzy4urGa_f5XCoolaSgNTCkXa7ycKztSLbmJ1pLaqcuDKlKIE0VL822gQLk9uAAQ8RsSb5UB529NFHssxR-msBQr19jiLcyR2__Zu1EiK6Bfof-NlQ3z3OzIDfO3F5Fsybm8GbdW6KR81dzy7f7t87M7rwU-T2SgoLbuisr83O7d_siRSclZyhI4lGMAy86RQJuM22IIdYtpjfLxens36dWque3IroU1uePF08Ij90DFW9yos3SDlYvPL1eni2u5l-8ycwf24g8Q9osNf-PvYbDiSughsOhN3GA3F5sLzxFT8oiSxAfJMfF8ur04tv5__cms4vl7Pxi_v_msxZfiLw59pLYiyOUcaWNs-x2s-BD3M4AHo7Dn9LQM8opLQhLo2GDsRfNwmjiRTM8Cd3nxMOBE3GENgHSlS0hWBiHOA78KIxjRkaJh7FliGeo5b-1izvxBHdlYa9sqCqI_u7h-Prsy_J6fvN1ev0vS-S_vejk6ubr2Td0dbO0PRxG98YA-y1-VjyaSw21cAl68HOw63PYdjC-_Xl-_jI4qbKE6vYP8biud0GSBbbeOEzDvwuIH7p2HUoNjfbaK4b38Dkn9-9slUVHhCTYst-z9SBA828X8283th74JpGu6BpldhIj1e4lDLsi638HsNcFkosSxNfLf5xMv1NkfyNviRn7Pd34Y4F9jBv_JjL9Tm78wwXKO1UlGqgUrFeWtJXiETsOWRIm5AiOg3Ec-34Uxf7R-jggOA0hmwRhREchTcNwTGASBOORHzEG8RE_xj4O_TFOfIzH2B-OaeaP01EWBiRKU8y8kQ8F4fnQzg-HUq2O3KsOjsdhlOCjnKSQa_eeIIztzNNddIXK6ZE6dnPKtFppb-TnXBu9o2K4yd0Lhty7YaymZ3tv3nFzZFuyP667-h05Ly-xjyqVH7_-nQ5O1v8JAAD__-LKcjs">