<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/65037>65037</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang] Assertion `result.second && "attempting to map a function that is already mapped"' failed in SCOTCH
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ohno-fj
</td>
</tr>
</table>
<pre>
```
Version of flang-new : 18.0.0(c07062a2e9bf9aa1211b958f6bb4c5746139c180)
```
When building [SCOTCH](https://gitlab.inria.fr/scotch/scotch), Flang-new results in compilateion error(Assertion faild) such as:
```
$ flang-new test_libmetis_dual_f_.f90
error: loc("/home/ohno/tp/reproducerJ/Metro/SCOTCH/test_libmetis_dual_f_.f90":5:18): redefinition of symbol named 'free'
error: Lowering to LLVM IR failed
flang-new: /work01/ohno/LLVM_20230824/llvm-project/mlir/include/mlir/Target/LLVMIR/ModuleTranslation.h:66: void mlir::LLVM::ModuleTranslation::mapFunction(llvm::StringRef, llvm::Function*): Assertion `result.second && "attempting to map a function that is already mapped"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /work01/ohno/LLVM_20230824/release/bin/flang-new -fc1 -triple aarch64-unknown-linux-gnu -emit-obj -mrelocation-model pic -pic-level 2 -pic-is-pie -target-cpu generic -target-feature +neon -target-feature +v8a -o /tmp/test_libmetis_dual_f_-0223ea.o -x f95-cpp-input test_libmetis_dual_f_.f90
#0 0x0000000003d29870 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x3d29870)
#1 0x0000000003d277a8 llvm::sys::RunSignalHandlers() (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x3d277a8)
#2 0x0000000003d2792c SignalHandler(int) Signals.cpp:0:0
#3 0x00004000016807a0 (linux-vdso.so.1+0x7a0)
#4 0x0000400001b72bec raise (/lib64/libc.so.6+0x32bec)
#5 0x0000400001b6096c abort (/lib64/libc.so.6+0x2096c)
#6 0x0000400001b6c45c __assert_fail_base (/lib64/libc.so.6+0x2c45c)
#7 0x0000400001b6c4c8 __assert_perror_fail (/lib64/libc.so.6+0x2c4c8)
#8 0x00000000059078ac mlir::LLVM::ModuleTranslation::convertFunctionSignatures() (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x59078ac)
#9 0x000000000590f544 mlir::translateModuleToLLVMIR(mlir::Operation*, llvm::LLVMContext&, llvm::StringRef) (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x590f544)
#10 0x000000000434c660 Fortran::frontend::CodeGenAction::generateLLVMIR() (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x434c660)
#11 0x000000000434de78 Fortran::frontend::CodeGenAction::executeAction() (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x434de78)
#12 0x0000000003d5954c Fortran::frontend::FrontendAction::execute() (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x3d5954c)
#13 0x0000000003d4d0ec Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x3d4d0ec)
#14 0x0000000003d5d8c4 Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x3d5d8c4)
#15 0x00000000039b3500 fc1_main(llvm::ArrayRef<char const*>, char const*) (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x39b3500)
#16 0x00000000039434f4 main (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x39434f4)
#17 0x0000400001b60de4 __libc_start_main (/lib64/libc.so.6+0x20de4)
#18 0x00000000039b2334 _start (/work01/ohno/LLVM_20230824/release/bin/flang-new+0x39b2334)
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 18.0.0 (https://github.com/llvm/llvm-project.git c07062a2e9bf9aa1211b958f6bb4c5746139c180)
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /work01/ohno/LLVM_20230824/release/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_libmetis_dual_f_-cb3a74
flang-new: note: diagnostic msg: /tmp/test_libmetis_dual_f_-cb3a74.sh
flang-new: note: diagnostic msg:
********************
$
```
```
$ cat /tmp/test_libmetis_dual_f_-cb3a74
#line "./test_libmetis_dual_f_.f90" 1
program test_libmetis_dual
use iso_c_binding
implicit none
interface
subroutine free_c(ptr) bind(c, name='free')
use, intrinsic :: iso_c_binding, only: c_ptr
type(c_ptr), value, intent(in) :: ptr
end subroutine free_c
subroutine exit_c(val) bind(c, name='exit')
use, intrinsic :: iso_c_binding, only: c_int
integer(c_int), value, intent(in) :: val
end subroutine exit_c
end interface
INTEGER SCOTCH_IDXSIZE
INTEGER SCOTCH_NUMSIZE
PARAMETER (SCOTCH_IDXSIZE = 4)
PARAMETER (SCOTCH_NUMSIZE = 4)
INTEGER SCOTCH_OPTIONNUMDETERMINISTIC
INTEGER SCOTCH_OPTIONNUMRANDOMFIXEDSEED
INTEGER SCOTCH_OPTIONNUMNBR
PARAMETER (SCOTCH_OPTIONNUMDETERMINISTIC = 0)
PARAMETER (SCOTCH_OPTIONNUMRANDOMFIXEDSEED = 1)
PARAMETER (SCOTCH_OPTIONNUMNBR = 2)
INTEGER SCOTCH_COARSENNONE
INTEGER SCOTCH_COARSENFOLD
INTEGER SCOTCH_COARSENFOLDDUP
INTEGER SCOTCH_COARSENNOMERGE
PARAMETER (SCOTCH_COARSENNONE = 0)
PARAMETER (SCOTCH_COARSENFOLD = 256)
PARAMETER (SCOTCH_COARSENFOLDDUP = 768)
PARAMETER (SCOTCH_COARSENNOMERGE = 16384)
INTEGER SCOTCH_STRATDEFAULT
INTEGER SCOTCH_STRATQUALITY
INTEGER SCOTCH_STRATSPEED
INTEGER SCOTCH_STRATBALANCE
INTEGER SCOTCH_STRATSAFETY
INTEGER SCOTCH_STRATSCALABILITY
INTEGER SCOTCH_STRATRECURSIVE
INTEGER SCOTCH_STRATREMAP
INTEGER SCOTCH_STRATLEVELMAX
INTEGER SCOTCH_STRATLEVELMIN
INTEGER SCOTCH_STRATLEAFSIMPLE
INTEGER SCOTCH_STRATSEPASIMPLE
INTEGER SCOTCH_STRATDISCONNECTED
PARAMETER (SCOTCH_STRATDEFAULT = 0)
PARAMETER (SCOTCH_STRATQUALITY = 1)
PARAMETER (SCOTCH_STRATSPEED = 2)
PARAMETER (SCOTCH_STRATBALANCE = 4)
PARAMETER (SCOTCH_STRATSAFETY = 8)
PARAMETER (SCOTCH_STRATSCALABILITY = 16)
PARAMETER (SCOTCH_STRATRECURSIVE = 256)
PARAMETER (SCOTCH_STRATREMAP = 512)
PARAMETER (SCOTCH_STRATLEVELMAX = 4096)
PARAMETER (SCOTCH_STRATLEVELMIN = 8192)
PARAMETER (SCOTCH_STRATLEAFSIMPLE = 16384)
PARAMETER (SCOTCH_STRATSEPASIMPLE = 32768)
PARAMETER (SCOTCH_STRATDISCONNECTED = 65536)
INTEGER SCOTCH_ARCHDIM
INTEGER SCOTCH_ARCHDOMDIM
INTEGER SCOTCH_CONTEXTDIM
INTEGER SCOTCH_GEOMDIM
INTEGER SCOTCH_GRAPHDIM
INTEGER SCOTCH_MAPDIM
INTEGER SCOTCH_MESHDIM
INTEGER SCOTCH_ORDERDIM
INTEGER SCOTCH_STRATDIM
PARAMETER (SCOTCH_ARCHDIM = 11)
PARAMETER (SCOTCH_ARCHDOMDIM = 5)
PARAMETER (SCOTCH_CONTEXTDIM = 3)
PARAMETER (SCOTCH_GEOMDIM = 2)
PARAMETER (SCOTCH_GRAPHDIM = 12)
PARAMETER (SCOTCH_MAPDIM = 4)
PARAMETER (SCOTCH_MESHDIM = 15)
PARAMETER (SCOTCH_ORDERDIM = 18)
PARAMETER (SCOTCH_STRATDIM = 1)
INTEGER METIS_NOPTIONS
PARAMETER (METIS_NOPTIONS = 40)
INTEGER METIS_OPTION_PTYPE
INTEGER METIS_OPTION_OBJTYPE
INTEGER METIS_OPTION_CTYPE
INTEGER METIS_OPTION_IPTYPE
INTEGER METIS_OPTION_RTYPE
INTEGER METIS_OPTION_DBGLVL
INTEGER METIS_OPTION_NITER
INTEGER METIS_OPTION_NCUTS
INTEGER METIS_OPTION_SEED
INTEGER METIS_OPTION_NO2HOP
INTEGER METIS_OPTION_MINCONN
INTEGER METIS_OPTION_CONTIG
INTEGER METIS_OPTION_COMPRESS
INTEGER METIS_OPTION_CCORDER
INTEGER METIS_OPTION_PFACTOR
INTEGER METIS_OPTION_NSEPS
INTEGER METIS_OPTION_UFACTOR
INTEGER METIS_OPTION_NUMBERING
PARAMETER (METIS_OPTION_PTYPE = 1)
PARAMETER (METIS_OPTION_OBJTYPE = 2)
PARAMETER (METIS_OPTION_CTYPE = 3)
PARAMETER (METIS_OPTION_IPTYPE = 4)
PARAMETER (METIS_OPTION_RTYPE = 5)
PARAMETER (METIS_OPTION_DBGLVL = 6)
PARAMETER (METIS_OPTION_NITER = 7)
PARAMETER (METIS_OPTION_NCUTS = 8)
PARAMETER (METIS_OPTION_SEED = 9)
PARAMETER (METIS_OPTION_NO2HOP = 10)
PARAMETER (METIS_OPTION_MINCONN = 11)
PARAMETER (METIS_OPTION_CONTIG = 12)
PARAMETER (METIS_OPTION_COMPRESS = 13)
PARAMETER (METIS_OPTION_CCORDER = 14)
PARAMETER (METIS_OPTION_PFACTOR = 15)
PARAMETER (METIS_OPTION_NSEPS = 16)
PARAMETER (METIS_OPTION_UFACTOR = 17)
PARAMETER (METIS_OPTION_NUMBERING = 18)
integer :: i, argc
type(c_ptr) :: xadj
type(c_ptr) :: adjncy
integer(SCOTCH_NUMSIZE), pointer :: xadj_f(:)
integer(SCOTCH_NUMSIZE), pointer :: adjncy_f(:)
integer(SCOTCH_NUMSIZE), allocatable :: epart(:)
integer(SCOTCH_NUMSIZE), allocatable :: npart(:)
integer(SCOTCH_NUMSIZE) :: nparts
integer(SCOTCH_NUMSIZE) :: objval
integer(SCOTCH_NUMSIZE), parameter :: baseval = 1
integer(SCOTCH_NUMSIZE), parameter :: ne = 6
integer(SCOTCH_NUMSIZE), parameter :: nn = 7
integer(SCOTCH_NUMSIZE) :: eptr(7) = [ 0, 3, 6, 9, 1&
&2, 15, 18 ]
integer(SCOTCH_NUMSIZE) :: eind(18) = [ 0, 1, 2, 0, 1&
&, 5, 1, 5, 4, 1, 4, 6, 1, 6, 3, 1, 3, 2 ]
integer(SCOTCH_NUMSIZE) :: xadj_c(7) = [ 0, 5, 10, 15,&
& 20, 25, 30 ]
integer(SCOTCH_NUMSIZE) :: adjncy_c(30) = [ 1, 2, 3, 4, 5&
&, 0, 2, 3, 4, 5, 0, 1, 3, 4, 5, 0, 1, 2, 4, 5, 0, 1, 2, 3, 5, 0, 1&
&, 2, 3, 4 ]
integer(SCOTCH_NUMSIZE) :: options(METIS_NOPTIONS)
integer(SCOTCH_NUMSIZE) :: ncommon = 1
allocate(epart(ne))
allocate(npart(nn))
eind(:) = eind (:) + baseval
eptr(:) = eptr (:) + baseval
xadj_c(:) = xadj_c(:) + baseval
adjncy_c(:) = adjncy_c(:) + baseval
call METIS_MeshToDual(ne, nn, eptr, eind, ncommon, baseval, xadj, &
&adjncy)
if(.not. c_associated(xadj)) then
print *, "ERROR: main: error in METIS_MeshToDual"
call exit_c(1)
end if
call c_f_pointer(xadj, xadj_f, [7])
call c_f_pointer(adjncy, adjncy_f, [30])
do i = 1, 7
if(xadj_f(i) /= xadj_c(i)) then
print *, "ERROR: main: invalid vertex array"
call exit_c (1)
end if
end do
do i = 1, 30
if(adjncy_f(i) /= adjncy_c(i)) then
print *, "ERROR: main: invalid edge array"
call exit_c (1)
end if
end do
call free_c(xadj)
call free_c(adjncy)
block
real(c_double) :: tpwgt(3) = [ 0.75, 0.125, 0.125 ]
integer(SCOTCH_NUMSIZE) :: vgwt(6) = [ 1, 2, 1, 1, 1, 1 ]
integer(SCOTCH_NUMSIZE) :: vsize(6) = [ 2, 1, 2, 2, 3, 1 ]
nparts = 3
ncommon = ncommon + 1
call METIS_SetDefaultOptions(options)
options(METIS_OPTION_NUMBERING) = baseval
call METIS_PartMeshDual(ne, nn, eptr, eind, vgwt, vsize, ncommon, &
&nparts, tpwgt, options, objval, epart, npart)
end block
deallocate(npart)
deallocate(epart)
end program test_libmetis_dual
$
```
```
$ cat /tmp/test_libmetis_dual_f_-cb3a74.sh
# Crash reproducer for clang version 18.0.0 (https://github.com/llvm/llvm-project.git c07062a2e9bf9aa1211b958f6bb4c5746139c180)
# Driver args: "test_libmetis_dual_f_.f90"
# Original command: "/work01/ohno/LLVM_20230824/release/bin/flang-new" "-fc1" "-triple" "aarch64-unknown-linux-gnu" "-emit-obj" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-target-cpu" "generic" "-target-feature" "+neon" "-target-feature" "+v8a" "-o" "/tmp/test_libmetis_dual_f_-0223ea.o" "-x" "f95-cpp-input" "test_libmetis_dual_f_.f90"
"/work01/ohno/LLVM_20230824/release/bin/flang-new" "-fc1" "-triple" "aarch64-unknown-linux-gnu" "-emit-obj" "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie" "-target-cpu" "generic" "-target-feature" "+neon" "-target-feature" "+v8a" "-x" "f95-cpp-input" "test_libmetis_dual_f_-cb3a74"
$
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW1uToryb_zT0TUoLgyhe9AWN2OO_PK3a83_fvbFiiJoZBCoEp2c__VZCQE4qztu7e7NWj4PheZ78nmMOEBTH9BgQ8qqZb5o5fkEJP4XsNTwFYefw42Ufer9ftYGu_vSxptvfCYtpGIDwAA4-Co6dgPwCmmGDntXVu7oGLawP9QFEkIz2hxFCPdjr7UemdRjs931sDvuDnjHCPUvX4CgVWekh_f73iQRgn1Dfo8ERaObbxllunW-aOdagdeI8ijXD1uBEg5Mj5T7ad2nAKOoemAYnMQ45PhUuRhp0wCTHy0ic-DwGNAA4PEfUR5wIpQhjIdOgZccxYVy0HBD1PQ2OQJzgE0Cy0wLKKnTYL1iFk5jvfLo_E07jnZcgf3fYdQ8jRZx2ZtjAD7EGLQ1CDU5O4ZlocCI8oMEJjzQ4YSRioZdgwv6lwcmccCZuKXPAye1eINQM29QMu2cJCxg2YMQjBxpQrjwY_z7vQx8E6Ew8oMHhgRGiwWEF3yz8RZjwAg_BbPZ9DqZraRfipYS5xoJYg5NfIfup965aCJ4d1KGhW7CvwYnvX86diIU_COYanJx9KnxGA-wnHrk2bBE7Eq74p2uhe-glPtkyFMQ-Ejp0T5phDwai30tIPSA5DVszbMGTXtWY0uYziiZJgGUDtASktH3DhaprchARc22-0trKltcY0QZ6GlDdmOAwEJYcaHAANAgR5-QccWW8M4oAAgclCvAT4oDGAPmMIO-3uB0RT8bBUBm4m1p4NXPtjQviZH-mHCCwT46AkShkXIitZcMp2XdxeFamrlucxnFCYg1OAAo8oAwP-IkAzFB8AnuEf3KGMFHdbzjCP4GXnKM8_PUukJ8VC48MnQFix-RMAh63jAFGfIJi4e09DTQ4uWZN54B7oMMZjXwCEGL4NOh3kuBnEP4KOj4Nks_OMUhAh5wp74T7H6BzZsQPsfRt5xx6xAcRxaATUdzxyYX4AKY_aNyJKAEdLgOrg6MEHElAmCBWbQeCeMII0OBbQMKgqf1iIdAJhY78HN3Kv44OoUFQNwSdT3AYmR0cRR0aRAl_VBWABg0d6J969jE8OLKGeiEW499xerFiNODSOVvhrVIcM_RrF8acEXSW4egAGnBRyGSp-XP_aPBN_1SY8gouQPcqoIdDZDWBXifBhh4D5H9DgecTFktAX4ZLdFvCBau4RhCDEgINWso2aXPcxZGIdF3-ywUZSlBffPUGlj5EukCdxuTFi8NuHHZ7EsgQlY3TL_Huh3BPMGCIxkTp7dP9oJ_-j4WYQaqPoCsJMsuCBvpogAHai0pwTxAUdCVBg4og3Dcx2O2QrGo7UX12e_QAHhRMJanDmlRsXaVGckiRwh_JxWUnWkUnmiN9aCH8TLXHYXAhjGdVXPpZJPRXBp-CVcI9quA-mP1-ATdXOImCHWZDnXWlWUaEoXzoKY5JgtgJA04-uUrxxmHsy7QT4K-TNmj0SnWqb_TxYKCDSciEWimMAxP4Ai_95YQeeSeBja-OkQUYcZIr_lV4FZwS3l4Fr0eG1pN4ySfBCSd2NnH4QrgCTQlupXKZI7OP78GdqF8NeL-0xkogJaRGGWnf08ldpI6cdBM2DWKOAkyabdteVRH9X6WdBF_Srl_xg2fh_j3tlB5XJS9qdnJfp5pR5FTzq3wmQJe0MktajfaGqevggHu7M6LlKbHNGPotSonh4BNiAIdBzAU6wxVFp9z2VYhTQCXEgzLivtE_9IFA-0U9SoGlHqvDme6RPtiJ2RvexRwxvit0f2vk9UhZqFUxPDSMPkjFfZXphMi8z9LyLF_UJQHa-0QsH1S4ipXwGclgBLaYUMgloYVDRuTUX6xM7kqUrSCL6UycWsgAL5GdxXKGJQQnMQGdi2wjBNBCklR7ARe155BuMYCmDYC7S57ukXLw9LaEWn8a9u1ViCI8ifUbkEsPQR6FMf1Mb8lc9n3ijeVw_vzKqG7vIOSiXgKPomMQxpxicI6P130J-A_-Cjsbaslpb7e28w1sv7lgspzNlv-eLt7BZDpzN2C7lM1vH-9g7a6W622OYSW3LDCJY-KBOEyYXJvEojaIiEBxHGKKRICxJAAxZjTiOQEjQK7miAcQz0W2M8GjVRneG2jY_3qJ3fj0B576Kn_B_p19tIYdKoz4M4bSoOHTQKwEYPfBfhPoqamv_ERqb6DOUaQSdYDG4Q7v9jTwaHBUN-k58immHARhQIoMNOCEHcR6t9AYJ3sWJlzgPDBCdliDVsSZiCghVhQyMVYF6Ew0Y1zY6spn6xkYtVRmNIgpBukIWAEIHRAG_m9xA-9EL6kE_jsScZ42pVuOF-QnmUQi1piWKNijTOyVV35E2awrkhIU2skn5VLBC_JvKyiovkRBsTaumP8oF83prVaKXso-ryiqFKoQNPoZgOli6767a5BugO6m47820_9079IsPuZ1mpW9tufu1l2L8aQsDGjGGPQrlmvmUKKrHBUAy9V2ulwsPuZjwT6fLqab7dS5izlnWduL8XI-mf7ljjeuO27HtHhbK8Im0M1wAJBa6K30vgVPiug9J2LxtgbFjxABayIqqjpLe71xF4vl4r7vFd1kObtvugLd-GPVruu5u35379i5gBE8Zd0CmNwg5uBZ1vHHSrIOB9YzrEqv1JMDw6onQsUem-3a3o7dif0x2z4m_I8Pezbd_v2YcLN6FO6S7M2e2QvnfhCk8uyJ26pfx57Zb9MCyCaqtet8rDfT7y06Xrtze3VH1Mz97s7m9l-PJaWU08VdYfZkM52vZm0s4q7strTj6cZZLhaus82d0hRDxVi4ZnO7qC-Gx5W3XTG5RsyN8nGTScXPtcN2hb8QUoWy1S7RqmGmUq09bx58jdXhDtvcXoECXLP3hKGyML0aSh89gTmL3dROvdFTPWcxncVEuSzdtnEe4IrRgG2LYS3oJf_ANI26zpV8sdfOt_F03pyk8uZyfr3fLMNZLrbuX9ubYt7dxzLe1_bq2yOiub16SOJuHopZrsfu-hGRsun8sfWVCfMa0K4IXG2bRvf9CLmaOA2NVl0ouz9RZDIvZKq040rd8mRNUo7KrfbAAJnPMvKnEmN-ozhnLp-72-lmt0gneZs7YsuEqrA8EJsS71bbv1c3hq4S3fLtXy0pnZZ007Zdr1vSjd_eZ99nLQgX0627bkPnfGw3LehurynK4pbw2_LGtLhEOJ8uRMmsVK2ykZeL7fS9jTeW89Xa3WzuCnNkGLeJlontbJfre8IWG3fVxmgfLUR9zN_c9XTx_jD0i8HcZsbTFNqSD4BiSbrN4xQ5wKPC1xD3Oe-DslTPhGpdfsiV5kXe4YP5Rj1TrmpWd0LusorkaTOhq6XStT8weqZDmV4Zc-_BfLkp4VqNkw1pmPf5YFxqTMyUufdMBKl8TeE-Ez8qfRXe3jNBJNM698yjiXZTpqdwnwqhLP-bx1a1i5Zvv2nQAYgdS5tglf3EjPYTeT9akDV-kPcjwL-zHdZ8J6-yT5Zu6UWh3IErdrs7aNCSj11GfyQj7b4mpZ0s5MvnAvKxlZJHIsT4k5AaxARPiqmZWAqIm3dJH3OH-x_5_mhLGdK2iKEzKVh3j2JyQb4aQ_6BoIDk2OSip6Wva2KCkpjhHxiWyJi2ROJdBWnmG9BFj4b4ki--SAA9DWZQNTiAssmU3xbQzPGfuoek2-syhesYeuJL9qVXMEjS9L0cM6eUV_38Zz_XoJdfGflPeQUL2J-BLfMVF4xXgp0i0nMb1WADKG9CSWjo_8SAKusFFkNPCVIkV9sZuTHMRgPqzZROwQc3b8C7N4zajYbuCz3_gSHCiNMwiGtrneYhoV3BweH5HAb1VFfVTQwIWXEMiEzQ0Q2yrPgFQYlMRX1aEtPgEU2g0Cbt85aVnaJ4lbYl5oizdsx54CpSwV1tu8lciLUCe0NrMztGvq_m8XMSn7bhOEG-sqEDhIkcpZyjLORkvhCXmUTopKM0dEAtntQQXPG9GBK7Qci7AO-uz8c1aKVyhGMAP5GgyBQxGnCgXgvUIHTX6-VahIl8gyd7NQPQoEEjWNM6f6pYnUPKZ3GHGj3eHXZqeM9hOvkswREJPpSnNUYPWDODOIXpgWQ39Dq_FwKaLZKcfEi52jCfpdDUy5NS9NC6JR8akQYX5FMPXAjj5BMgxtDv2_YDZQPWbSdavPC2SoZe06kwaypqVQjqBr3aRUimHPGOpKraba1uhEVdNSkifx6fhfJNgsbU2Psh_qkaGJHZiHdemOx9ks8KQFYgefTrKIqZURxm9O4wLfDdHrxePDesXo6_hNxB8_DVq3w9KTum_0WqwmF5mLqOQL3qCJROPtUeZrG9MEbk1_CtPF4UCt6G8DE5oMTny3zAyoeukkuqA1pty0Ppcb_ArhDjoiS1KLGp9Z3MUqWaWyuwajIOnSwanCtgJ5tsy07kwOdk0_9izhaDLk1SUh8yRzcJSAOBEPvojZj_uVd58jeUNGgAR57yuZ4rA4eQASxf3_u_edVOgBozeiFMLILVGSJ492Rbzrdk9EgD5BffX0zP0v2D1yihENE54F52mZ5HUr9uvw-oqLOzSdnv2gkldSOiOCPJTyupBli8kZ5cyrHk55dUizrFVLmvziypVnWi6RHNxUIZSZi3tjrplLF9qovSqSfV9tij_--6r3Dd0z7IXvi7JlZzIXrxXg1vZIzQC3ntDUYG7On6qPdyeh0Ry8RoiLz-3jPRAPat4QAhUzfQwcO6ab3QV-U-S7d0q9frmsPhSDchPJgQm_v-UOvr5Iyo3xXlpBuy44s8pvg6MHVj-OKjPfFjeU4ZQunt4vvzEGrm-IW9ykq0T46x1td9GvP4KoxT7stzzvIUsGaO_3cOcIrZdzrwvyTMf_3zo5rSDP8dAAD__ywW5wA">