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

    <tr>
        <th>Summary</th>
        <td>
            Clang has sanitizer failures and SEGVs when built with VFE
        </td>
    </tr>

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

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

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

<pre>
    System: Ubuntu 22.04, x86_64, libstdc++12 
Trunk and previous versions seem to be affected.

Attached is a ~1000 lline backtrace with variables, etc, from lldb.

When LLVM/Clang are built with "-fvirtual-function-elimination," and any optimization above "-O0", most of the LLVM binaries all SEGV almost immediately (e.g. lli, llc, clang, opt); "--help*" or no command are the only commands that will not cause a crash.  

I built twice (both with debug/assertions, ubsan, asan) once with "-O0" and another with "-Og." 

Bugpoint may have found a problem in ipsccp, but after running for 48+ hours, it could not reduce it  was not making progress towards a reasonable test case. 

At -O0, llc and opt can process and output files seemingly okay and the sanitizers report nothing. Clang works likewise, but only since I used "-fsanitize=recover". These sanitizer errors may be unrelated to the Clang segmentation faults detailed further below, as Clang is the only binary emitting such errors, and only at "-O0."   The sanitizers emit the following errors: 

```
/opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15: runtime error: downcast of address 0x621000017d08 which does not point to an object of type 'clang::TranslationUnitDecl'
0x621000017d08: note: object is of type 'clang::Decl'
00 00 00 00  10 90 78 08 b6 55 00 00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'clang::Decl'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15 in 
/opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15: runtime error: downcast of address 0x621000018588 which does not point to an object of type 'clang::TypedefNameDecl'
0x621000018588: note: object is of type 'clang::TypeDecl'
be be be be  f0 9f 6d 08 b6 55 00 00  00 00 00 00 00 00 00 00  30 7d 01 00 10 62 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'clang::TypeDecl'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15 in 
/opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15: runtime error: downcast of address 0x621000018660 which does not point to an object of type 'clang::TagDecl'
0x621000018660: note: object is of type 'clang::TypeDecl'
be be be be  f0 9f 6d 08 b6 55 00 00  00 00 00 00 00 00 00 00  30 7d 01 00 10 62 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'clang::TypeDecl'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15 in 
/opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15: runtime error: downcast of address 0x6210000692d8 which does not point to an object of type 'clang::NamespaceDecl'
0x6210000692d8: note: object is of type 'clang::NamedDecl'
be be be be  d0 73 6d 08 b6 55 00 00  00 00 00 00 00 00 00 00  30 7d 01 00 10 62 00 00  cf 65 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'clang::NamedDecl'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15 in 
/opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15: runtime error: downcast of address 0x621000069700 which does not point to an object of type 'clang::FunctionDecl'
0x621000069700: note: object is of type 'clang::DeclaratorDecl'
be be be be  90 a6 6d 08 b6 55 00 00  00 00 00 00 00 00 00 00  d8 95 06 00 10 62 00 00  76 67 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'clang::DeclaratorDecl'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15 in 
/opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15: runtime error: downcast of address 0x621000097a98 which does not point to an object of type 'clang::RedeclarableTemplateDecl'
0x621000097a98: note: object is of type 'clang::TemplateDecl'
be be be be  90 4f 6d 08 b6 55 00 00  00 00 00 00 00 00 00 00  70 78 09 00 10 62 00 00  1a e3 02 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'clang::TemplateDecl'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15 in 
/opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15: runtime error: downcast of address 0x6210000d7288 which does not point to an object of type 'clang::VarDecl'
0x6210000d7288: note: object is of type 'clang::DeclaratorDecl'
be be be be  90 a6 6d 08 b6 55 00 00  00 00 00 00 00 00 00 00  30 7d 01 00 10 62 00 00  28 26 03 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'clang::DeclaratorDecl'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15 in 
/opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15: runtime error: downcast of address 0x62100002e9c0 which does not point to an object of type 'clang::UsingShadowDecl'
0x62100002e9c0: note: object is of type 'clang::NamedDecl'
be be be be  d0 73 6d 08 b6 55 00 00  00 00 00 00 00 00 00 00  f0 e8 02 00 10 62 00 00  05 0a 03 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'clang::NamedDecl'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/venv/llvm-project/clang/include/clang/AST/Redeclarable.h:200:15 in 

=================================================================
==89046==ERROR: LeakSanitizer: detected memory leaks 

Direct leak of 416 byte(s) in 16 object(s) allocated from:
    #0 0x55b5da44d216 in realloc (/opt/venv/llvm-project/assert/bin/clang-15+0x3a8cf216) (BuildId: eaccea4ce95303fc)
    #1 0x7f905981894a  (/lib/x86_64-linux-gnu/libstdc++.so.6+0xb094a) (BuildId: 725ef5da52ee6d881f9024d8238a989903932637) 

Objects leaked above:
0x602000000830 (16 bytes)
0x602000000850 (16 bytes)
0x6020000009b0 (16 bytes)
0x6020000009d0 (16 bytes)
0x6020000009f0 (16 bytes)
0x602000000a10 (16 bytes)
0x60300000b320 (32 bytes)
0x60300000b350 (32 bytes)
0x60300000b3b0 (32 bytes)
0x60300000b3e0 (32 bytes)
0x60300000d150 (32 bytes)
0x60300000d180 (32 bytes)
0x603000010240 (32 bytes)
0x603000010270 (32 bytes)
0x603000010360 (32 bytes)
0x603000010390 (32 bytes)
``` 

At -Og, Clang emits the following stack dump:
```
0.      Program arguments: /opt/venv/llvm-project/assert2/bin/clang-15 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -main-file-name math_example.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/opt/venv/llvm-project/assert -resource-dir /opt/venv/llvm-project/assert2/lib/clang/15.0.0 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/x86_64-linux-gnu/c++/12 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/backward -internal-isystem /opt/venv/llvm-project/assert2/lib/clang/15.0.0/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir=/opt/venv/llvm-project/assert -ferror-limit 19 -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/math_example-2fd194.o -x c++ /home/csk/math_example.cpp
#0 0x000055c6e0bd52db backtrace (/opt/venv/llvm-project/assert2/bin/clang-15+0x2477d2db)
#1 0x000055c6e64fe101 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /opt/venv/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:13
#2 0x000055c6e64fe8eb PrintStackTraceSignalHandler(void*) /opt/venv/llvm-project/llvm/lib/Support/Unix/Signals.inc:636:1
#3 0x000055c6e64fa775 llvm::sys::RunSignalHandlers() /opt/venv/llvm-project/llvm/lib/Support/Signals.cpp:97:27
#4 0x000055c6e64fcd75 SignalHandler(int) /opt/venv/llvm-project/llvm/lib/Support/Unix/Signals.inc:0:3
#5 0x00007f7cb9d27520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
AddressSanitizer:DEADLYSIGNAL
=================================================================
==88947==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x000000000000 bp 0x7fff012dfaf0 sp 0x7fff012dfab8 T0)
==88947==Hint: pc points to the zero page.
==88947==The signal is caused by a READ memory access.
==88947==Hint: address points to the zero page.
    #0 0x0  (<unknown module>)
    #1 0x55c6e6215a07 in (anonymous namespace)::CommandLineParser::ResetAllOptionOccurrences() /opt/venv/llvm-project/llvm/lib/Support/CommandLine.cpp:1411:17
    #2 0x55c6e6216172 in llvm::cl::ResetAllOptionOccurrences() /opt/venv/llvm-project/llvm/lib/Support/CommandLine.cpp:2732:17
    #3 0x55c6e0c60bd3 in ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /opt/venv/llvm-project/clang/tools/driver/driver.cpp:308:3
    #4 0x55c6e0c5db51 in clang_main(int, char**) /opt/venv/llvm-project/clang/tools/driver/driver.cpp:388:12
    #5 0x55c6e0e341c0 in main /opt/venv/llvm-project/assert2/tools/clang/tools/driver/clang-driver.cpp:11:42
    #6 0x7f7cb9d0ed8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16 

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (<unknown module>) 
==88947==ABORTING
``` 

Running under lldb gives the following backtrace:
```
error: memory read failed for 0x0
(lldb) bt all
* thread #1, name = 'clang-15', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
  * frame #0: 0x0000000000000000
    frame #1: 0x000055557f2ef770 clang-15`llvm::cl::Option::reset(this=0x000055559c742ac0) at CommandLine.cpp:475:3 [opt]
    frame #2: 0x000055557f311a08 clang-15`(anonymous namespace)::CommandLineParser::ResetAllOptionOccurrences(this=<unavailable>) at CommandLine.cpp:1411:17 [opt]
    frame #3: 0x000055557f312173 clang-15`llvm::cl::ResetAllOptionOccurrences() at CommandLine.cpp:2732:17 [opt]
    frame #4: 0x0000555579d5cbd4 clang-15`ExecuteCC1Tool(ArgV=<unavailable>) at driver.cpp:308:3 [opt]
    frame #5: 0x0000555581a83518 clang-15`clang::driver::CC1Command::Execute(this=0x00007ffff5f3bd20) const::$_1::operator()() const at Job.cpp:407:34 [opt]
    frame #6: 0x0000555581a83443 clang-15`void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(callable=140737319779616) const::$_1>(long) at STLFunctionalExtras.h:45:12 [opt]
    frame #7: 0x000055557bb02104 clang-15`llvm::function_ref<void ()>::operator(this=<unavailable>)() const at STLFunctionalExtras.h:68:12 [opt]
    frame #8: 0x000055557f3257a7 clang-15`llvm::CrashRecoveryContext::RunSafely(this=<unavailable>, Fn=function_ref<void ()> @ 0x00007fffffffd500)>) at CrashRecoveryContext.cpp:425:3 [opt]
    frame #9: 0x0000555581a82f90 clang-15`clang::driver::CC1Command::Execute(this=<unavailable>, Redirects=<unavailable>, ErrMsg=<unavailable>, ExecutionFailed=<unavailable>) const at Job.cpp:407:12 [opt]
    frame #10: 0x0000555581992c18 clang-15`clang::driver::Compilation::ExecuteCommand(this=0x0000616000001280, C=<unavailable>, FailingCommand=<unavailable>, LogOnly=<unavailable>) const at Compilation.cpp:200:15 [opt]
    frame #11: 0x000055558199347f clang-15`clang::driver::Compilation::ExecuteJobs(this=<unavailable>, Jobs=<unavailable>, FailingCommands=<unavailable>, LogOnly=<unavailable>) const at Compilation.cpp:254:19 [opt]
    frame #12: 0x0000555581a73ea8 clang-15`clang::driver::Driver::ExecuteCompilation(this=<unavailable>, C=0x0000616000001280, FailingCommands=<unavailable>) at Driver.cpp:1735:5 [opt]
    frame #13: 0x0000555579d5b31c clang-15`clang_main(Argc=<unavailable>, Argv=<unavailable>) at driver.cpp:513:21 [opt]
    frame #14: 0x0000555579f301c1 clang-15`main(argc=<unavailable>, argv=<unavailable>) at clang-driver.cpp:11:42 [opt]
    frame #15: 0x00007ffff7a06d90 libc.so.6`__libc_start_call_main(main=(clang-15`main at clang-driver.cpp:11), argc=3, argv=0x00007fffffffdb18) at libc_start_call_main.h:58:16
    frame #16: 0x00007ffff7a06e40 libc.so.6`__libc_start_main_impl(main=(clang-15`main at clang-driver.cpp:11), argc=3, argv=0x00007fffffffdb18, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007fffffffdb08) at libc-start.c:392:3
    frame #17: 0x0000555579c93a25 clang-15`_start + 37
```

And again, if if may be helpful, a verbose backtrace of the above is attached.
[lldb_verbose_backtrace.txt](https://github.com/llvm/llvm-project/files/8997060/lldb_verbose_backtrace.txt)

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztPNtyo0iyX6N-qUABxf3BD7Jkz_RGz_SE7e6NfVIUVCFxjEBBgS3v15_MBCR0l9zdG7PnWKGQUFHk_VZFiqiQbzePb7pSi4E9Yt-iOq9qxvnQdAZ8zFaBN_XoKEsjXcl4wG_hbXE2MCcDc_RU1vkzE7lky1K9pEWt2YsqdVrkmmmlFqwqWKSYSBIVV0oOm6uaz1FViXiuJEs1E2zg31mmabIsS3PFIhE_V6WIFXtNqzl7EWUqokxppERVMX4lZbGA2TLaAvrPucrZly_f_xjw-3Em8hkTJYCr06xqQA04N5KXtKxqkRlJnccVEGuoLF2kucBjgA1ziCeRv7FiWcGpf9MpJqLiRRGIryZ8IhmLQlesSFg1V4SXRQCnTBXwlGXs8e6373BAk9LFQslUVCp7AxCBGs6GyC0JNyOWYiQYDwDpgIcD-5ZwGXOVLQd8hGQVJcsLFheLBREIvCHiIgeY7aCGEYHMAvq8qFgsag0aYHEp9Hw4GPPByGR9kX1uxVO9pjEyF0QFyImEJVVUA0H3QmtVogRIAXWkBYqJCfoOAX2nqLVoWvkBJFX2Ts2GeK6P_baeLYs0r9hCvLG5APEmRY3XgkUVoPIFS3OWLnUcLxFlVFdgTRUABcvLU9BvAiJxAjBKNi_qkghMgeuiziTxXypZA3kwxl6FpqGFeMYrAcGsVBoEVryKUqIVlkroIkdTY5XSKDythmzbahlxSEojLkFZMC9HcDFCo7G6WgKlSQo2S44A-EBFxTMwiedRaSC8tEr_De4CaJdFWSFtc5g4ZI3lvhblswbHe1avqVYd96RrnaLIPzNQrWxMuoM2sCelisFMSxgesqe50j1UTJVlAQhR2OCXdV6qDCxSop8iTQ1irWYLlVeNzSeizioNplAJ4EaypC5JqZHKitfGCtrLUr0xRvKCNwaMVxXKWtfxvEVO16CMcB5YamMzaBiNcbYm-rQtIoRE4JMiA8QIswUHYauvoIFntu_mJ78nb7p_UfkLfGXZy8IAVf0PBCT42brcPcgzq6XqjYwen-DzQUkFIyWaxHAOuLhpwqflIlowQQgOqiEEB2TxmoPJUEAQUpJxmSuPY2QzLV-aAXudpyAJWajGFBvbB-mDARUREkXB5G2Jnug3tNgjeD-VItcZqeQbCGUCVMGEhsdtFEgIgFb43YIEzRyGug3GZN271YFlstBkfsCA8Mhjrrt11jz8vvZsq6ee7n_8kw3cO8goP_r-FZS9LKuSgtYJTTx---OP0cO_KCPnUiWQEuWtguiYFuVj5xN4tu7OGlF7mv0qg8c4_LdzqcANfsClYAjE96dYqCPuhOCvcSeEuAUKYmz3btWfgEslzJPvcSkbfBEutHAQXNPjHy51yqX2tPHhVpe6leeZ73crMTvmTgD2w50-3On_mTt5IZfvz1KYnvQSlsKHnYqAX-NUCE-e8SoJnmH_Eq-KwVndD686pY4Pt7rUrXzz_Vnqvt36OeZVvnlVqpo0XFVFeca1YD0lvHe6FkSREOZ7h13LB7D-h2ud1cmHf13mX6EvwvenrT4hT2qxxG2mw75GeK4qCw-BO-hpzntLQ7_Z9QgPe5olmLKZyT887ZRGPvzsMj-TPv-BTYzvojzsVgT2b5fCTleHPGAcspv94VgfKexnuBZXYfz-EvGbTvPZ41wAisMuRuD_TmuvxGQqaBLToR0NACU-vOu_eO3VfNqT__p3j5EgNB2vObx7ePj6gNL9osTzlrilqqiBgC3UoijfWAYT9JZUJmmJrocn0Pkcy2PRG3glDzTeogYZwkjjn92YyLIipruf2EuAJnHE9kC1kLfMletGrhSOIznAAoilIhB4z_yM8psb6HAQpXmneQMiGr81V7YI4gQgIkkA6bZOM_lZItdKxLESTqxC1zbtJMaegBMkQlJd-UloumFgBaEj1meQuiyN4LPp5zCyNK9XxiyvmxObxo6hLoYeURWZCGGPJJ-7KgEhuFwpTwaBBfi4IwNuB1DFh6Fphzb3bJ-u7KnnK0lek35A4NRIsZY4BFSTm_QKbCK41Z5ec9yf4p6dEkbnp8jzU5KzU4R1fIpNMyKb0xSbn5jinp8SnZ-izk2R1llE0grOTLFA3-en-Gen2N75KeHhKetb_PudGdQ-07QjYMeA3mkZ0JWIn5msF8uNu2_3C5jDM7nkL-waEQsmylmNXRJNA8Il7s_3_J8ZcWwxoyrTZabaZiujzp9zKGo2TsoMZMWA4MWMBTZsrAzsLTK6H_CJcYyargyZaswgRlIqBeDB30oDyiNIU5D_lIGNVSqXAEikuYH9KUYOWZAtRDWfqpWAdZwaxstlg6kFaywKqTK2TGNmwIeRqRf4yZsfqYYvQLVIQCrKoOoKg_aEaEwQsAHVWl7Aj2RpxEWOjV0VTChyGMoLo8SGH9COgXMBEEzRVVnHUPUCo6nQULhhqxZoUBpV0wdmTwB9BTpQlREva5Sd4TkwVOeKBmYqVyUSvEBdoIyVqAwdi6wRT7qC3E1VJIjHeBUlNRMZ1PE0UyUCSrFOmMxkBNipo0bMAHaxWKZNHwbIGvm8SPcMtKSLuowVXnW5vTRhu6sULHdoDk1mkIhzkYHwqXUP4dW6XM-fxfHhYG8hzOFw_6NXlTSZgCb_WkwHrvrPIe9jQr8Ev8AmsMNI36-rDc6T7ICjZRdOfSfnB-buY1MrPIj3sR5X2umrr0cBvibVEmo5LMwgIsRlQUPglu_3vaRxdGzyrJgVwgBQHhttqyrAcYZ8aKGbr1ZAYayWbTRNtn7ERQZQZCpmeaGrNMYxXHPqFCLHZDr9bTye_j76fjed_HP0cM-n4_vP09HjHwAfYBfIagWJh9_3g63BE2mFzhC4XLHWKHHmvFiQmernnQswOnfrbKpKMVe6buwpM5Iuh2i1aZ69tDDdz0xUA3LH9yVA3CTepshcY_ScRFmmxRBos6QCrTYHf5Wg8kdMt09IClCymVSK1ykIECLyYsA96tjMq6bWPEksQehc4LFeYtMkHH3L0xUOpDMwMD0EQwIcrhfi6sleE853CQ9UxHaobED8LnKZYf9k8FKkkhpvfyppnu0haWvK7B3KhO-7h0T6UOdbBGpS73tJ62hCc7JHoY8rTn9Nk7NDUyyBpl3x_Hyt4Yp3ozK3JcJP_DgKJfddfslyJt6sYhwOl6zNd9TsD_VXlpO70eTLvx4___bn6Mv_zeU1rAT9neX1ATk0nepQkbXVZ28vzey9UPrLeHcwWtLKM0lMi8tEwLJJb49EAXvaqGGPsN_RkIAGgEzlo-7akYG2gi2h7BoeuZKahMmCcNONWt0lLBaYYA-g2G63AJfRWh-D0WHvOD5DwtHdAbO33rbHnRyhdK4zWOreXbB4b5yNW64wfdr14YHIi_xtgf-ryLs-EPpnAMaDcdPw_yXN1V-i1KRHuvOmVTXKsq-Ut77GcV2WKo_Vj4WLHrI2ZFiOZeGXf4ot3mPLs3yObG1CW5z9Z0nmvs3Pkmx3JJuxBynVRpLvViquKzUeW09FkW0ls8cFLHS-K1ytfIb8DKqP56JktIjB3IGa9y5goqsbK0AAfN_LMqUm_vag5cCm_m77FP3Ohn5XRq6F9BPwKa75urA9ZkgmJbdL8tuF1NEdJ6hBT5DnrslTtmPFJpKHhF1eZ3c0HKWpKWK2KCNTdU4S5lHIokxjKhkkSNh0ivlkqmGlWU2hRs9IhizWdVdXQ3aGehXR58sqaxPQ7gW0n-uSbLztPYudSEx_JKGbFGXxkkI1DEEpRZ_AAJcnxXBvm_poLD8ehtiRQDi6_frw9PnP305tsjy0_7rB_e-S_n7FZiDm3X2WdQl6bJtlff-mDdFQC0qWtP8wKUoKp20ZECAWJDuqcMu2Gx4BSroKgyfaM-1jABvrTX4qY308pati2f63h2a0KQPSPooKyUjzF5Glcp0EAC398aUbwDlI03YQZ0gG7XtQEmgn7byO2tz6QmtzoQsvP-Eq8X2TrbnwzP2Y2cTKtqDG-AkkV_MUt0Y2oMLYd7iITdrurth-RHR8vK1ms4F7i87nTs5Ty3eptS1LmEGf2p-fuFrOyKLFC9gJ7uK05nyQsXV2uoY1e581bvn2aUWcS14HyVtnomvIc3bIC6UbR9Lpk7eXqEbl7PsJwR1KLteQ5G6TFFgisF1ryxh6N9zaCN0YwdhqxdL8binftWIsIhM3sSNJhXybV-mKAXemVnNYLBXdJW9E3gqepiKT_yiiztxNXOdAiryCRe8Ai46zZRS4TuyVNd3fSqelSkDwdLalDATfGA9EMgyS0yTHiuFaEeHljSInFvBk-7YV-n7oNXeR9mV0h2G0wGxJWn98-tL1P4rsbgWRWlOKclxK39dIx9-xySgyuWU6h13mAsH0NHnC53c1fIwhL7iaoWAvBnDXF_5hhsb4p9qH5v-Wb-Mir9Sq2izWRaKyt5OMjNk9bj-dlAsbOCbrOQO8pGuardDaAHOAjs7k-dURPty3eJ6E5s9w6oMyeFCS7t4enXBXln_o2dGzhATEd0_1w7FodzQcXGcflrkrnTDk8WUhb7N_uSWeTmQ7oQ-8mQoIiwf0h-PxURuCn1B1rSV_eNaXYvY1B3s8J54elV2y6joRrhGTtS8m2_GTHxAT6O10KTBmNOUiKR2d9gNicjFBW-FVYuJ7vubbSlxiTZPe8caQ1pI7LajxUSu7SEwUdCZbCyyfaoHrbGS33oKCJrKteI_5buUKxUx8jCM493JpoeMSZm5dRexe9ZXYphVbfWJbMsUJMsVpMo8vXa-itVeWUc7whelJiOCb3VHPPLy2BfLpC--tBDusHScQMzLxhnzbPT538lZkdSXxuWXyBUx6B5hUzgkmEcc0xU2aX88k3tNIq2NWkMDJY-fKKpPTUxOoiWGqKNLvojb78jWI7SFurNshBprj-0Ybqe4WdGEc2oK7fTNvxMnwTpXtH1zet7sb-ByPGRkViCPBd_vgCXyiSVJnJEN8YkxU6P5DX9rnqTSPW8HHw7SPiun2YN1b3BOYthdO1xcOqxU5CA_mVbWk2yb8Hm-XptW8hqRfLHq7hdvbS_SoDvgOwtA3cQV7fwJFtwvwSd7YMrRD8alKq0zdNI0nc6F7T9zATY26VM1zQXC7QbNXfEhN75k03-_vPtVldnM10anWNVHtelCkfprfxDxILEcFVgBLV1NYoYqimEMNKxMYUOYnsCOV6RuQ4IDzXL0yAoHP3nAnn9IbbnJuepAJ4Iu7Q4DiR8KKucVdz418qEQV-Eg2RDqGRTn7VN4QSVE903AyS3WlNyeFxo0WpQgdwBd1NS_KmzvILP8QubotcqUrlWWfiIgbYuJ_AVud0gw">