[INFO] fetching crate rt 0.17.0...
[INFO] testing rt-0.17.0 against master#733b47ea4b1b86216f14ef56e49440c33933f230+rustflags=-Copt-level=3 for pr-138759
[INFO] extracting crate rt 0.17.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate rt 0.17.0
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate rt 0.17.0
[INFO] tweaked toml for crates.io crate rt 0.17.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rt 0.17.0 on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rt 0.17.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 70bac0919375cd1bbbd79299b56e88f1b8e3dc3dfb9cbd0e1fc5b15f0d948294
[INFO] running `Command { std: "docker" "start" "-a" "70bac0919375cd1bbbd79299b56e88f1b8e3dc3dfb9cbd0e1fc5b15f0d948294", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "70bac0919375cd1bbbd79299b56e88f1b8e3dc3dfb9cbd0e1fc5b15f0d948294", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "70bac0919375cd1bbbd79299b56e88f1b8e3dc3dfb9cbd0e1fc5b15f0d948294", kill_on_drop: false }`
[INFO] [stdout] 70bac0919375cd1bbbd79299b56e88f1b8e3dc3dfb9cbd0e1fc5b15f0d948294
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a7e21a12c6419acf8f7351788b772432866b5b651021bf8efd6dde8bcf582f9f
[INFO] running `Command { std: "docker" "start" "-a" "a7e21a12c6419acf8f7351788b772432866b5b651021bf8efd6dde8bcf582f9f", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.167
[INFO] [stderr]    Compiling glob v0.3.1
[INFO] [stderr]    Compiling prettyplease v0.2.25
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling bindgen v0.71.1
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling bitflags v2.6.0
[INFO] [stderr]    Compiling libloading v0.8.6
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.90
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling cc v1.2.2
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling rt v0.17.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/mutex.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn try_lock(&self) -> Option<MutexGuard<T>> {
[INFO] [stdout]    |                     ^^^^^            ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn try_lock(&self) -> Option<MutexGuard<'_, T>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/mutex.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_lock(&self, ticks: Utick) -> Option<MutexGuard<T>> {
[INFO] [stdout]    |                       ^^^^^                          ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_lock(&self, ticks: Utick) -> Option<MutexGuard<'_, T>> {
[INFO] [stdout]    |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/mutex.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |     const fn new(lock: &Mutex<T>) -> MutexGuard<T> {
[INFO] [stdout]    |                        ^^^^^^^^^     ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 88 |     const fn new(lock: &Mutex<T>) -> MutexGuard<'_, T> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:57:21
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn try_read(&self) -> Option<RwLockReadGuard<T>> {
[INFO] [stdout]    |                     ^^^^^            ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn try_read(&self) -> Option<RwLockReadGuard<'_, T>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_read(&self, ticks: Utick) -> Option<RwLockReadGuard<T>> {
[INFO] [stdout]    |                       ^^^^^                          ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_read(&self, ticks: Utick) -> Option<RwLockReadGuard<'_, T>> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:81:22
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn try_write(&self) -> Option<RwLockWriteGuard<T>> {
[INFO] [stdout]    |                      ^^^^^            ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn try_write(&self) -> Option<RwLockWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:90:24
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn timed_write(&self, ticks: Utick) -> Option<RwLockWriteGuard<T>> {
[INFO] [stdout]    |                        ^^^^^                          ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn timed_write(&self, ticks: Utick) -> Option<RwLockWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rust/src/sync/rwlock.rs:112:24
[INFO] [stdout]     |
[INFO] [stdout] 112 |     const fn new(lock: &RwLock<T>) -> RwLockReadGuard<T> {
[INFO] [stdout]     |                        ^^^^^^^^^^     ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 112 |     const fn new(lock: &RwLock<T>) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rust/src/sync/rwlock.rs:152:24
[INFO] [stdout]     |
[INFO] [stdout] 152 |     const fn new(lock: &RwLock<T>) -> RwLockWriteGuard<T> {
[INFO] [stdout]     |                        ^^^^^^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 152 |     const fn new(lock: &RwLock<T>) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/sem.rs:94:19
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn access(&self) -> SemGuard {
[INFO] [stdout]    |                   ^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn access(&self) -> SemGuard<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 21s
[INFO] running `Command { std: "docker" "inspect" "a7e21a12c6419acf8f7351788b772432866b5b651021bf8efd6dde8bcf582f9f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a7e21a12c6419acf8f7351788b772432866b5b651021bf8efd6dde8bcf582f9f", kill_on_drop: false }`
[INFO] [stdout] a7e21a12c6419acf8f7351788b772432866b5b651021bf8efd6dde8bcf582f9f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c4007dcd901f9b59ae0a7004f09f5e6e4311673b65e1a8200fee5a973d5201cc
[INFO] running `Command { std: "docker" "start" "-a" "c4007dcd901f9b59ae0a7004f09f5e6e4311673b65e1a8200fee5a973d5201cc", kill_on_drop: false }`
[INFO] [stderr]    Compiling atomic_float v1.1.0
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/mutex.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn try_lock(&self) -> Option<MutexGuard<T>> {
[INFO] [stdout]    |                     ^^^^^            ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn try_lock(&self) -> Option<MutexGuard<'_, T>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/mutex.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_lock(&self, ticks: Utick) -> Option<MutexGuard<T>> {
[INFO] [stdout]    |                       ^^^^^                          ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_lock(&self, ticks: Utick) -> Option<MutexGuard<'_, T>> {
[INFO] [stdout]    |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/mutex.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |     const fn new(lock: &Mutex<T>) -> MutexGuard<T> {
[INFO] [stdout]    |                        ^^^^^^^^^     ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 88 |     const fn new(lock: &Mutex<T>) -> MutexGuard<'_, T> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:57:21
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn try_read(&self) -> Option<RwLockReadGuard<T>> {
[INFO] [stdout]    |                     ^^^^^            ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn try_read(&self) -> Option<RwLockReadGuard<'_, T>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_read(&self, ticks: Utick) -> Option<RwLockReadGuard<T>> {
[INFO] [stdout]    |                       ^^^^^                          ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_read(&self, ticks: Utick) -> Option<RwLockReadGuard<'_, T>> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:81:22
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn try_write(&self) -> Option<RwLockWriteGuard<T>> {
[INFO] [stdout]    |                      ^^^^^            ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn try_write(&self) -> Option<RwLockWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:90:24
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn timed_write(&self, ticks: Utick) -> Option<RwLockWriteGuard<T>> {
[INFO] [stdout]    |                        ^^^^^                          ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn timed_write(&self, ticks: Utick) -> Option<RwLockWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rust/src/sync/rwlock.rs:112:24
[INFO] [stdout]     |
[INFO] [stdout] 112 |     const fn new(lock: &RwLock<T>) -> RwLockReadGuard<T> {
[INFO] [stdout]     |                        ^^^^^^^^^^     ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 112 |     const fn new(lock: &RwLock<T>) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rust/src/sync/rwlock.rs:152:24
[INFO] [stdout]     |
[INFO] [stdout] 152 |     const fn new(lock: &RwLock<T>) -> RwLockWriteGuard<T> {
[INFO] [stdout]     |                        ^^^^^^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 152 |     const fn new(lock: &RwLock<T>) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/sem.rs:94:19
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn access(&self) -> SemGuard {
[INFO] [stdout]    |                   ^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn access(&self) -> SemGuard<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rt v0.17.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/mutex.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn try_lock(&self) -> Option<MutexGuard<T>> {
[INFO] [stdout]    |                     ^^^^^            ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn try_lock(&self) -> Option<MutexGuard<'_, T>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/mutex.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_lock(&self, ticks: Utick) -> Option<MutexGuard<T>> {
[INFO] [stdout]    |                       ^^^^^                          ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_lock(&self, ticks: Utick) -> Option<MutexGuard<'_, T>> {
[INFO] [stdout]    |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/mutex.rs:88:24
[INFO] [stdout]    |
[INFO] [stdout] 88 |     const fn new(lock: &Mutex<T>) -> MutexGuard<T> {
[INFO] [stdout]    |                        ^^^^^^^^^     ------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 88 |     const fn new(lock: &Mutex<T>) -> MutexGuard<'_, T> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:57:21
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn try_read(&self) -> Option<RwLockReadGuard<T>> {
[INFO] [stdout]    |                     ^^^^^            ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn try_read(&self) -> Option<RwLockReadGuard<'_, T>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:66:23
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_read(&self, ticks: Utick) -> Option<RwLockReadGuard<T>> {
[INFO] [stdout]    |                       ^^^^^                          ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn timed_read(&self, ticks: Utick) -> Option<RwLockReadGuard<'_, T>> {
[INFO] [stdout]    |                                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:81:22
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn try_write(&self) -> Option<RwLockWriteGuard<T>> {
[INFO] [stdout]    |                      ^^^^^            ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn try_write(&self) -> Option<RwLockWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/rwlock.rs:90:24
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn timed_write(&self, ticks: Utick) -> Option<RwLockWriteGuard<T>> {
[INFO] [stdout]    |                        ^^^^^                          ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn timed_write(&self, ticks: Utick) -> Option<RwLockWriteGuard<'_, T>> {
[INFO] [stdout]    |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rust/src/sync/rwlock.rs:112:24
[INFO] [stdout]     |
[INFO] [stdout] 112 |     const fn new(lock: &RwLock<T>) -> RwLockReadGuard<T> {
[INFO] [stdout]     |                        ^^^^^^^^^^     ------------------ the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 112 |     const fn new(lock: &RwLock<T>) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]     |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]    --> rust/src/sync/rwlock.rs:152:24
[INFO] [stdout]     |
[INFO] [stdout] 152 |     const fn new(lock: &RwLock<T>) -> RwLockWriteGuard<T> {
[INFO] [stdout]     |                        ^^^^^^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this lifetime flows to the output
[INFO] [stdout]     |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]     |
[INFO] [stdout] 152 |     const fn new(lock: &RwLock<T>) -> RwLockWriteGuard<'_, T> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> rust/src/sync/sem.rs:94:19
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn access(&self) -> SemGuard {
[INFO] [stdout]    |                   ^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 94 |     pub fn access(&self) -> SemGuard<'_> {
[INFO] [stdout]    |                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.95s
[INFO] running `Command { std: "docker" "inspect" "c4007dcd901f9b59ae0a7004f09f5e6e4311673b65e1a8200fee5a973d5201cc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4007dcd901f9b59ae0a7004f09f5e6e4311673b65e1a8200fee5a973d5201cc", kill_on_drop: false }`
[INFO] [stdout] c4007dcd901f9b59ae0a7004f09f5e6e4311673b65e1a8200fee5a973d5201cc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1102bded1f523f7944e86bdd7423d416611fc65f60b5990c5e3fa8a4074d9cdf
[INFO] running `Command { std: "docker" "start" "-a" "1102bded1f523f7944e86bdd7423d416611fc65f60b5990c5e3fa8a4074d9cdf", kill_on_drop: false }`
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rust/src/sync/mutex.rs:55:21
[INFO] [stderr]    |
[INFO] [stderr] 55 |     pub fn try_lock(&self) -> Option<MutexGuard<T>> {
[INFO] [stderr]    |                     ^^^^^            ------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 55 |     pub fn try_lock(&self) -> Option<MutexGuard<'_, T>> {
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rust/src/sync/mutex.rs:66:23
[INFO] [stderr]    |
[INFO] [stderr] 66 |     pub fn timed_lock(&self, ticks: Utick) -> Option<MutexGuard<T>> {
[INFO] [stderr]    |                       ^^^^^                          ------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                       |
[INFO] [stderr]    |                       this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 66 |     pub fn timed_lock(&self, ticks: Utick) -> Option<MutexGuard<'_, T>> {
[INFO] [stderr]    |                                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rust/src/sync/mutex.rs:88:24
[INFO] [stderr]    |
[INFO] [stderr] 88 |     const fn new(lock: &Mutex<T>) -> MutexGuard<T> {
[INFO] [stderr]    |                        ^^^^^^^^^     ------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 88 |     const fn new(lock: &Mutex<T>) -> MutexGuard<'_, T> {
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rust/src/sync/rwlock.rs:57:21
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub fn try_read(&self) -> Option<RwLockReadGuard<T>> {
[INFO] [stderr]    |                     ^^^^^            ------------------ the lifetime gets resolved as `'_`
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub fn try_read(&self) -> Option<RwLockReadGuard<'_, T>> {
[INFO] [stderr]    |                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rust/src/sync/rwlock.rs:66:23
[INFO] [stderr]    |
[INFO] [stderr] 66 |     pub fn timed_read(&self, ticks: Utick) -> Option<RwLockReadGuard<T>> {
[INFO] [stderr]    |                       ^^^^^                          ------------------ the lifetime gets resolved as `'_`
[INFO] [stderr]    |                       |
[INFO] [stderr]    |                       this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 66 |     pub fn timed_read(&self, ticks: Utick) -> Option<RwLockReadGuard<'_, T>> {
[INFO] [stderr]    |                                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rust/src/sync/rwlock.rs:81:22
[INFO] [stderr]    |
[INFO] [stderr] 81 |     pub fn try_write(&self) -> Option<RwLockWriteGuard<T>> {
[INFO] [stderr]    |                      ^^^^^            ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                      |
[INFO] [stderr]    |                      this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 81 |     pub fn try_write(&self) -> Option<RwLockWriteGuard<'_, T>> {
[INFO] [stderr]    |                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rust/src/sync/rwlock.rs:90:24
[INFO] [stderr]    |
[INFO] [stderr] 90 |     pub fn timed_write(&self, ticks: Utick) -> Option<RwLockWriteGuard<T>> {
[INFO] [stderr]    |                        ^^^^^                          ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                        |
[INFO] [stderr]    |                        this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 90 |     pub fn timed_write(&self, ticks: Utick) -> Option<RwLockWriteGuard<'_, T>> {
[INFO] [stderr]    |                                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rust/src/sync/rwlock.rs:112:24
[INFO] [stderr]     |
[INFO] [stderr] 112 |     const fn new(lock: &RwLock<T>) -> RwLockReadGuard<T> {
[INFO] [stderr]     |                        ^^^^^^^^^^     ------------------ the lifetime gets resolved as `'_`
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 112 |     const fn new(lock: &RwLock<T>) -> RwLockReadGuard<'_, T> {
[INFO] [stderr]     |                                                       +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]    --> rust/src/sync/rwlock.rs:152:24
[INFO] [stderr]     |
[INFO] [stderr] 152 |     const fn new(lock: &RwLock<T>) -> RwLockWriteGuard<T> {
[INFO] [stderr]     |                        ^^^^^^^^^^     ------------------- the lifetime gets resolved as `'_`
[INFO] [stderr]     |                        |
[INFO] [stderr]     |                        this lifetime flows to the output
[INFO] [stderr]     |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]     |
[INFO] [stderr] 152 |     const fn new(lock: &RwLock<T>) -> RwLockWriteGuard<'_, T> {
[INFO] [stderr]     |                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> rust/src/sync/sem.rs:94:19
[INFO] [stderr]    |
[INFO] [stderr] 94 |     pub fn access(&self) -> SemGuard {
[INFO] [stderr]    |                   ^^^^^     -------- the lifetime gets resolved as `'_`
[INFO] [stderr]    |                   |
[INFO] [stderr]    |                   this lifetime flows to the output
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stderr]    |
[INFO] [stderr] 94 |     pub fn access(&self) -> SemGuard<'_> {
[INFO] [stderr]    |                                     ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `rt` (lib) generated 10 warnings
[INFO] [stderr] warning: `rt` (lib test) generated 10 warnings (10 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests rust/src/lib.rs (/opt/rustwide/target/debug/deps/rt-0b1e6bd70037d443)
[INFO] [stderr] unlock while not holding the mutex
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/rt-0b1e6bd70037d443` (signal: 6, SIGABRT: process abort signal)
[INFO] running `Command { std: "docker" "inspect" "1102bded1f523f7944e86bdd7423d416611fc65f60b5990c5e3fa8a4074d9cdf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1102bded1f523f7944e86bdd7423d416611fc65f60b5990c5e3fa8a4074d9cdf", kill_on_drop: false }`
[INFO] [stdout] 1102bded1f523f7944e86bdd7423d416611fc65f60b5990c5e3fa8a4074d9cdf
