<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61132>61132</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[llvm-reduce] Test llvm/test/tools/llvm-reduce/file-output-type.test fails intermittently
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
DaniilSuchkov
</td>
</tr>
</table>
<pre>
Here's what the failure looks like:
```
-- Testing: 145 tests, 48 workers --
llvm-lit: ~/llvm-project/llvm/utils/lit/lit/run.py:127: note: Raised process limit from 4096 to 4608
FAIL: LLVM :: tools/llvm-reduce/file-output-type.test (1 of 145)
******************** TEST 'LLVM :: tools/llvm-reduce/file-output-type.test' FAILED ********************
Script:
--
: 'RUN: at line 2'; rm -f reduced.ll reduced.bc
: 'RUN: at line 4'; ~/llvm-project/build/buildRA/bin/llvm-as -o test-output-format.bc ~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll
: 'RUN: at line 7'; llvm-reduce --delta-passes=instructions --test ~/llvm-project/build/buildRA/bin/FileCheck --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test --test-arg --input-file ~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll
: 'RUN: at line 8'; ~/llvm-project/build/buildRA/bin/llvm-as -disable-output reduced.ll
: 'RUN: at line 12'; rm -f reduced.ll reduced.bc
: 'RUN: at line 13'; llvm-reduce --delta-passes=instructions --test "/usr/bin/python3.6" --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/llvm-dis-and-filecheck.py --test-arg ~/llvm-project/build/buildRA/bin/llvm-dis --test-arg ~/llvm-project/build/buildRA/bin/FileCheck --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test test-output-format.bc
: 'RUN: at line 14'; ~/llvm-project/build/buildRA/bin/llvm-dis -disable-output reduced.bc
: 'RUN: at line 18'; llvm-reduce --delta-passes=instructions -o ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.0.bc --test "/usr/bin/python3.6" --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/llvm-dis-and-filecheck.py --test-arg ~/llvm-project/build/buildRA/bin/llvm-dis --test-arg ~/llvm-project/build/buildRA/bin/FileCheck --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test test-output-format.bc
: 'RUN: at line 19'; ~/llvm-project/build/buildRA/bin/llvm-dis -disable-output ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.0.bc
: 'RUN: at line 23'; rm -f reduced.ll reduced.bc
: 'RUN: at line 24'; llvm-reduce --delta-passes=instructions -o ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.0.ll --test "/usr/bin/python3.6" --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/llvm-dis-and-filecheck.py --test-arg ~/llvm-project/build/buildRA/bin/llvm-dis --test-arg ~/llvm-project/build/buildRA/bin/FileCheck --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test test-output-format.bc
: 'RUN: at line 25'; ~/llvm-project/build/buildRA/bin/llvm-dis -disable-output ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.0.ll
: 'RUN: at line 29'; llvm-reduce -o ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.1.bc --delta-passes=instructions --test ~/llvm-project/build/buildRA/bin/FileCheck --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test --test-arg --input-file ~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll
: 'RUN: at line 30'; ~/llvm-project/build/buildRA/bin/llvm-as -disable-output ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.1.bc
: 'RUN: at line 34'; llvm-reduce -output-bitcode -o ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.2_no_suffix --delta-passes=instructions --test ~/llvm-project/build/buildRA/bin/FileCheck --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test --test-arg --input-file ~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll
: 'RUN: at line 35'; ~/llvm-project/build/buildRA/bin/llvm-dis -disable-output ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.2_no_suffix
: 'RUN: at line 39'; llvm-reduce -output-bitcode -o ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.2.ll --delta-passes=instructions --test ~/llvm-project/build/buildRA/bin/FileCheck --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test --test-arg --input-file ~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll
: 'RUN: at line 40'; ~/llvm-project/build/buildRA/bin/llvm-dis -disable-output ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.2.ll
: 'RUN: at line 44'; llvm-reduce -output-bitcode --delta-passes=instructions -o ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.3 --test ~/llvm-project/build/buildRA/bin/FileCheck --test-arg --check-prefix=MIR --test-arg ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test --test-arg --input-file ~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.mir
: 'RUN: at line 45'; ~/llvm-project/build/buildRA/bin/llc -x mir -run-pass=none -o /dev/null ~/llvm-project/build/buildRA/test/tools/llvm-reduce/Output/file-output-type.test.tmp.3
--
Exit Code: 1
Command Output (stderr):
--
*** Reducing Instructions...
~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test:48:10: error: CHECK: expected string not found in input
# CHECK: store i32 0
^
/tmp/lit-tmp-rj6hiryi/llvm-reduce-e69e45.ll:1:1: note: scanning from here
; ModuleID = '~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll'
^
/tmp/lit-tmp-rj6hiryi/llvm-reduce-e69e45.ll:4:23: note: possible intended match here
define void @foo(ptr %ptr) {
^
Input file: /tmp/lit-tmp-rj6hiryi/llvm-reduce-e69e45.ll
Check file: ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test
-dump-input=help explains the following input dump.
Input was:
<<<<<<
1: ; ModuleID = '~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll'
check:48'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
2: source_filename = "~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll"
check:48'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3:
check:48'0 ~
4: define void @foo(ptr %ptr) {
check:48'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:48'1 ? possible intended match
5: ret void
check:48'0 ~~~~~~~~~~
6: }
check:48'0 ~~
>>>>>>
**** SUCCESS | Saved new best reduction to reduced.ll
~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test:48:10: error: CHECK: expected string not found in input
# CHECK: store i32 0
^
/tmp/lit-tmp-rj6hiryi/llvm-reduce-383b92.ll:1:1: note: scanning from here
; ModuleID = '~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll'
^
/tmp/lit-tmp-rj6hiryi/llvm-reduce-383b92.ll:4:23: note: possible intended match here
define void @foo(ptr %ptr) {
^
Input file: /tmp/lit-tmp-rj6hiryi/llvm-reduce-383b92.ll
Check file: ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test
-dump-input=help explains the following input dump.
Input was:
<<<<<<
1: ; ModuleID = '~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll'
check:48'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
2: source_filename = "~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll"
check:48'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3:
check:48'0 ~
4: define void @foo(ptr %ptr) {
check:48'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:48'1 ? possible intended match
5: ret void
check:48'0 ~~~~~~~~~~
6: }
check:48'0 ~~
>>>>>>
~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test:48:10: error: CHECK: expected string not found in input
# CHECK: store i32 0
^
/tmp/lit-tmp-rj6hiryi/llvm-reduce-ed9033.ll:1:1: note: scanning from here
; ModuleID = '~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll'
^
/tmp/lit-tmp-rj6hiryi/llvm-reduce-ed9033.ll:4:23: note: possible intended match here
define void @foo(ptr %ptr) {
^
Input file: /tmp/lit-tmp-rj6hiryi/llvm-reduce-ed9033.ll
Check file: ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test
-dump-input=help explains the following input dump.
Input was:
<<<<<<
1: ; ModuleID = '~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll'
check:48'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
2: source_filename = "~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll"
check:48'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3:
check:48'0 ~
4: define void @foo(ptr %ptr) {
check:48'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:48'1 ? possible intended match
5: ret void
check:48'0 ~~~~~~~~~~
6: }
check:48'0 ~~
>>>>>>
----------------------------
*** Reducing Instructions...
~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test:48:10: error: CHECK: expected string not found in input
# CHECK: store i32 0
^
/tmp/lit-tmp-rj6hiryi/llvm-reduce-08d961.ll:1:1: note: scanning from here
; ModuleID = '~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll'
^
/tmp/lit-tmp-rj6hiryi/llvm-reduce-08d961.ll:4:23: note: possible intended match here
define void @foo(ptr %ptr) {
^
Input file: /tmp/lit-tmp-rj6hiryi/llvm-reduce-08d961.ll
Check file: ~/llvm-project/llvm/test/tools/llvm-reduce/file-output-type.test
-dump-input=help explains the following input dump.
Input was:
<<<<<<
1: ; ModuleID = '~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll'
check:48'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
2: source_filename = "~/llvm-project/llvm/test/tools/llvm-reduce/Inputs/test-output-format.ll"
check:48'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3:
check:48'0 ~
4: define void @foo(ptr %ptr) {
check:48'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:48'1 ? possible intended match
5: ret void
check:48'0 ~~~~~~~~~~
6: }
check:48'0 ~~
>>>>>>
----------------------------
Done reducing! Reduced testcase: reduced.ll
~/llvm-project/build/buildRA/bin/llvm-as: reduced.ll:8:1: error: expected top-level entity
, ptr %ptr, align 4
^
--
********************
```
I tried reproducing it by running the test standalone, but it didn't fail in 4000+ reruns.
Then I tried rerunning all the llvm-reduce tests in 48 threads on a 2-socket Linux x86_64 host with 24 cores/48 threads.
This is the command I used:
```
$ ITCNT=0 ; while bin/llvm-lit -j48 -v ~/llvm-project/llvm/test/tools/llvm-reduce/ ; do ITCNT=$((ITCNT+1)) ; echo $ITCNT ; done
```
With this command I managed to reproduce the failure three times, it took 28, 248 and 604 iterations. It's possible that reproducibility depends on whether there's any other CPU/IO load on the host, I haven't checked that.
I have one theory why that may be happening. Here are the run lines from the llvm-reduce tests that run llvm-reduce with an .ll file as input and without specifying the output file (e.g. `-o %t`):
```
file-output-type.test:7:# RUN: llvm-reduce --delta-passes=instructions --test FileCheck --test-arg %s --test-arg --input-file %p/Inputs/test-output-format.ll
file-output-type.test:13:# RUN: llvm-reduce --delta-passes=instructions --test %python --test-arg %p/Inputs/llvm-dis-and-filecheck.py --test-arg llvm-dis --test-arg FileCheck --test-arg %s test-output-format.bc
custom-delta-passes.ll:11:; RUN: llvm-reduce --print-delta-passes --test FileCheck %s 2>&1 | FileCheck %s --check-prefix=PRINT
disable-crash-reports.test:1:# RUN: llvm-reduce --delta-passes=global-variables --test %python --test-arg %p/Inputs/test-crash-vars.py %p/Inputs/test-output-format.ll 2>&1 | FileCheck -check-prefix=INTERESTING %s
```
Is it possible that the failure is caused by two tests trying to write to the same file (reduced.ll) simultaneously?
In case that's important, here's how my LLVM build is configured:
```
cmake -G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DLLVM_TARGETS_TO_BUILD=X86 \
-ULLVM_ENABLE_PROJECTS -DLLVM_BUILD_EXAMPLES=ON \
-DCMAKE_C_COMPILER=~/gcc-7.4.0-rhel6/bin/gcc \
-DCMAKE_CXX_COMPILER=~/gcc-7.4.0-rhel6/bin/g++ \
-DCMAKE_ASM_COMPILER=~/gcc-7.4.0-rhel6/bin/gcc \
-DLLVM_ENABLE_ASSERTIONS=ON \
~/llvm-project/llvm
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW11z2rrW_jXKzRozRjJgLnJBgOzNu9OkE-h7eq4ywhZYjSx5JDmUm_3bz0g2hBCgKUmz224YmgLWx_p41nqWLYkaw-eSsXPUukCtwRktbab0-YBKzsW4TLJ79XA2Veny_E-mGcIdA4uMWrAZgxnlotQMhFL3BgS_Z4j0UDhAYQ-1w_rtvwYBTJixXM4R6UEzaoFlxhqE-xDFsFD6nmkDQVC1FuIhDwS3ru3fCF_674VWX1hi668IX5aWC-O-crv-q0vZKJaI9Jq443pLZZ1McEu5YSkUWiXMOFFzbmGmVQ5R2G2DVRC1w7ia_bI3unJ9rq7-_wM4hUgPrFLVXE4SzdIyYQhfzrhggSptUdrALgvWcEoBwnET1MxpiXC3Ngc-_g2T4XgCCHeOFAjhDjidhgN4jRiVIuNE88Ku3bzymBMJ4c7tp2v3iVoQXDLAyHnhAgB0DsEMKjnThhDrj9Pk0ABRPcAOEExLLtLV_7c994nLVTNqIFAeYitrzJTOqW1MkwOAqox1udu0I1mUDrCXO0YV4pASnbUVNkaEIEiZsDQoqDHMIDLg0lhdJpYr6SLBQ-k79L7kgvUzltzXfQOq58fquhvXG-MGAZdefy7Y-xs0Xhv0GFyk3NDpWr8NTB6asvlqKDfJ8TBAGLt8Z_Ram2JpMyVJo40wfgOHr33hf065CahMvXcTB6lGsfzGJAetnnJzZPcfD-qdOeKgH4_NSd4Ke8D3jSnjY6CjXibhQZvdeDH3Ga9h86IRupx6wunPh9PuG-L03ZB0sJogr83BeBW7P2MYCXEKo58vjHDr1wujw6UM7u5mk3cCerPii1Pxe2TxS8K3rH7fzeUHVYr2ILIabMptotL3Qyi-k-rOlLMZ_3oC6iuA2joaqP9Y7txw_UHV9qXQfwiwVe1wQuqRSI2OT6n_HFK_pdMLc-pPUfySt8JnEPgCNig0cyFMBh9Gt78DfnOuDzr7yFSbQPAVcq4h0KX0GEBkIJX0qQvhy5Q9IHwpSyHeCQdPHyoPv3ILfZX6J_jN2gD-b1_lOZUpVGMCwrGxKdMa4e7zR9Pr5-i3ThQu5zDaAHmj0ajavSU2EOlFMSK9ZuhEZ1or7T70_xz2__K_fC1YYlkKxmonkFQWZqqUKXAJHkor2cljJ2OVZsAJhnpRBVBruGp3afOiWgUJbF4E-ks743rJn4obsHaXRS2XOkivWf9br5GYhErppPHrIhnTbIW5C_ig0lKw0QAQGTgA_pgcjTv1jK_RK0Kkh8mmYoUyhk8FAy4tkylLIac2yTZUTNnMxdGD4imgKJwphXBcWA0ItwrrYAWoc_HM6v6v1wkcDKrg_F6JK0D7TLYa5E2huCFqkJZ5UaUqRAYZE4VDoqBcmmo9TwmhFg4Cvg245o3nui6oeVznI_3td2UlD633h47P_1X44U4In__-ca_HuJaqRpSP4doAGy_sw0uVOmF3zkmS5qw2B_5B5sA7zfEDrVG9at3JGh9bAoCnqGcGcjEL3xOEu4b9tlxPejUBkct6_j0Z4rmgLScoaGa9mC-Q5fkQbR8YncEeB63Carj9rpPP5sLw-FO_PxyPAXX6MKYPLAXJFjB1xYkHiiM4sOrZGte_gepITKZd_PtR3aZevwbVPUp8oroT1Z2o7kR1L6K6fwNJsbQbEvL7kdSmXr8GST1KfCKpE0mdSOpEUi8iqeDA6_T4cTvJhnHabTd_P7rb1OvXoLtHiU90d6K7E92d6O6N6G6gJKueN3I5R7hZsR5L_c67hBqfYF7wPPIbG5m2RiG9eEUn66hYk5xVRSDYAxPApOV2ucrtfdj0bh-o4HMJ0TYH1Ipvfnv9MZqt41EjsJqzFDQrtKqrBG5hugRdVqTo8qNfdTaWypQKJZmTeVpa1zDlqUS4Y_2JLEfiURiGCF-AZrqUpk6ik4xJeJxqNTQVwg-_uU_ATWX8QDHYTDOaGlASKODAqOSeWbjisvwKX-P2XTuCTBkLC24zwBEkSjOXGh67rufnBniV65N6BXcEpWHpvmNjCEcwmvSvJ4gMQp_OFxkXDDawILiF4EsUQ_BwLHH5gVO1ngnhCOEY4bj6AV80Ee76-CcXwJJMAcKRv1b3lGyn9P9xBrFO6Udtcyrp3INy7Wz25CydMxkDy3PmT8dxC1ape3Dy9AFHMbhx2mEE3DJNqxoSRtYfzFvnEZtR-wimKRfcLiFlBZOVHxcZsxnTbuL6TB-VS1D-t_7HTy7B34BQNHWNnXTOwU6AEWT0gVVY87nDqZJR-5SmfSNwmcBmTOklLLJlJVNOlzBlkNGiYA58DfiTaQZUV0bQpfQ7GkxVBO5GZaWca7lxyYOPSmgI4esYoKauIpy93FVVWjAFS_hsuQqoesOOb49wzBrzBqB26Dc_tKzz48Z-gi3n7iu8O64DJlBv0RAv32lebYHZua8F4ZbZu9_EZbAX7n_aJ3STvFJqJ4Pfo74ldfHdu83Fji3k-21yYD93Uhqr8ifC13ceTX-G8mK3soXm0j7p9dwzfmrsWBG3m371bevas31IH29H15O62K93iyWamizQrFDamrUjvsMPc6GmVAQPVHM34Pf5wl-oRHig2jgnvAhH-9TeVnh0PRneDseT0fUf3iS7ac-4_PY0a23mQpc5qeMHx4R2oVYJQFcRrGChuWXug-tlXFm7iuWN4gB3wfC8FJZKpkojlohcPr2rAFeY-Ol9LuS58wmVPuOtM2SmFpAvq1PBvirx4ik54_NS76ewJKf3DII_4JrLLxRQa3WHEgz6H3p_De8uPo2uBneT_34cIjK4ZcKxxoBNR3KmNloDQDBwc99Nerd_DCfju8lN1RWRwee4vdX0k286vO5dXA3vPt7e_N-wPxmvRqhmHH7uffh4NRwjMri53iFX_65_8-Hj6Gp4i8jAMes8SYJOI2qEgc6YaK9LsnmS7Or--fOLB0D4whUrzwfpjT8cK8WmAXrj8fB2Mrq5fqbs7h1zvmh46syz9JykXdKlZ-y82e50OnGMY3KWneNWq90i7ThJWyll3TZtpjhpsTSZRXErJOSMn-MQk5CEGIfNOCSNqNXuht1uTNpJm-BmE0UhyykXDTdtQ-n5GTemZOftZpPgM0GnTBh_Oh9jyRbgL7o7rNbgTJ97yafl3KAoFNxY8ziK5Vb4Y_2b1U5r4A_iw_HbHl1wGn-nonNuLZNWLM9KLc4zawt_Z44vnT-4zcppI1H5YxW2ZWaviZvWa_q_AAAA___B-ObS">