[INFO] fetching crate cargo-audit 0.20.1... [INFO] checking cargo-audit-0.20.1 against try#7014e13d5becc920d4bea3cd87942c8a13d359bf+rustflags=-Dtail_expr_drop_order for pr-129864 [INFO] extracting crate cargo-audit 0.20.1 into /workspace/builds/worker-2-tc2/source [INFO] validating manifest of crates.io crate cargo-audit 0.20.1 on toolchain 7014e13d5becc920d4bea3cd87942c8a13d359bf [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7014e13d5becc920d4bea3cd87942c8a13d359bf" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate cargo-audit 0.20.1 [INFO] finished tweaking crates.io crate cargo-audit 0.20.1 [INFO] tweaked toml for crates.io crate cargo-audit 0.20.1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] crate crates.io crate cargo-audit 0.20.1 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" "+7014e13d5becc920d4bea3cd87942c8a13d359bf" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+7014e13d5becc920d4bea3cd87942c8a13d359bf" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ee5c91ab20cd6645fd7cf3cb7b463774e12633fa7b70d18998c6ccc653ad6e06 [INFO] running `Command { std: "docker" "start" "-a" "ee5c91ab20cd6645fd7cf3cb7b463774e12633fa7b70d18998c6ccc653ad6e06", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ee5c91ab20cd6645fd7cf3cb7b463774e12633fa7b70d18998c6ccc653ad6e06", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ee5c91ab20cd6645fd7cf3cb7b463774e12633fa7b70d18998c6ccc653ad6e06", kill_on_drop: false }` [INFO] [stdout] ee5c91ab20cd6645fd7cf3cb7b463774e12633fa7b70d18998c6ccc653ad6e06 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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 -Dtail_expr_drop_order" "-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+7014e13d5becc920d4bea3cd87942c8a13d359bf" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d278a7fd3e73d751472f3597a011c3ff40b2ca4813911ef30cc77b684bf0d41f [INFO] running `Command { std: "docker" "start" "-a" "d278a7fd3e73d751472f3597a011c3ff40b2ca4813911ef30cc77b684bf0d41f", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.78 [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Compiling serde v1.0.196 [INFO] [stderr] Checking memchr v2.7.1 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling thiserror v1.0.56 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Checking bytes v1.5.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.19 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Checking tinyvec v1.6.0 [INFO] [stderr] Checking miniz_oxide v0.7.1 [INFO] [stderr] Checking gix-trace v0.1.7 [INFO] [stderr] Checking smallvec v1.13.1 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Compiling crc32fast v1.3.2 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling parking_lot_core v0.9.9 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling syn v2.0.48 [INFO] [stderr] Checking unicode-normalization v0.1.22 [INFO] [stderr] Checking crossbeam-queue v0.3.11 [INFO] [stderr] Checking flate2 v1.0.28 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking crossbeam-channel v0.5.11 [INFO] [stderr] Checking fastrand v2.0.1 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking itoa v1.0.10 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Checking prodash v28.0.0 [INFO] [stderr] Checking sha1_smol v1.0.0 [INFO] [stderr] Checking walkdir v2.4.0 [INFO] [stderr] Checking rayon v1.8.1 [INFO] [stderr] Checking gix-utils v0.1.9 [INFO] [stderr] Checking hashbrown v0.14.3 [INFO] [stderr] Checking winnow v0.5.36 [INFO] [stderr] Checking crossbeam v0.8.4 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Checking bitflags v2.4.2 [INFO] [stderr] Checking regex-automata v0.4.5 [INFO] [stderr] Checking num_threads v0.1.6 [INFO] [stderr] Checking home v0.5.9 [INFO] [stderr] Compiling rustix v0.38.31 [INFO] [stderr] Checking linux-raw-sys v0.4.13 [INFO] [stderr] Checking memmap2 v0.9.4 [INFO] [stderr] Checking pin-project-lite v0.2.13 [INFO] [stderr] Checking indexmap v2.2.2 [INFO] [stderr] Checking btoi v0.4.3 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking socket2 v0.5.5 [INFO] [stderr] Checking mio v0.8.10 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Checking getrandom v0.2.12 [INFO] [stderr] Checking tokio v1.36.0 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Checking jwalk v0.8.1 [INFO] [stderr] Checking unicode-bom v2.0.3 [INFO] [stderr] Checking static_assertions v1.1.0 [INFO] [stderr] Checking http v0.2.11 [INFO] [stderr] Compiling httparse v1.8.0 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Compiling rustls v0.21.10 [INFO] [stderr] Checking shell-words v1.1.0 [INFO] [stderr] Checking ryu v1.0.16 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking kstring v2.0.0 [INFO] [stderr] Compiling ring v0.17.7 [INFO] [stderr] Checking gix-sec v0.10.4 [INFO] [stderr] Checking bstr v1.9.0 [INFO] [stderr] Compiling semver v1.0.21 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Checking tempfile v3.9.0 [INFO] [stderr] Checking encoding_rs v0.8.33 [INFO] [stderr] Checking tower-service v0.3.2 [INFO] [stderr] Checking filetime v0.2.23 [INFO] [stderr] Checking ipnet v2.9.0 [INFO] [stderr] Checking arrayvec v0.7.4 [INFO] [stderr] Compiling serde_json v1.0.113 [INFO] [stderr] Checking uluru v3.0.0 [INFO] [stderr] Checking arc-swap v1.6.0 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking fixedbitset v0.4.2 [INFO] [stderr] Checking utf8parse v0.2.1 [INFO] [stderr] Checking clru v0.6.1 [INFO] [stderr] Checking anstyle-parse v0.2.3 [INFO] [stderr] Compiling backtrace v0.3.69 [INFO] [stderr] Checking petgraph v0.6.4 [INFO] [stderr] Checking io-close v0.3.7 [INFO] [stderr] Compiling fs-err v2.11.0 [INFO] [stderr] Checking anstyle v1.0.5 [INFO] [stderr] Checking anstyle-query v1.0.2 [INFO] [stderr] Compiling camino v1.1.6 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Checking gimli v0.28.1 [INFO] [stderr] Checking regex-syntax v0.6.29 [INFO] [stderr] Checking colorchoice v1.0.0 [INFO] [stderr] Checking anstream v0.6.11 [INFO] [stderr] Checking regex v1.10.3 [INFO] [stderr] Checking object v0.32.2 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking rustc-demangle v0.1.23 [INFO] [stderr] Checking indenter v0.3.3 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Compiling unicode-xid v0.2.4 [INFO] [stderr] Checking async-compression v0.4.6 [INFO] [stderr] Checking clap_lex v0.6.0 [INFO] [stderr] Checking clap_builder v4.4.18 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Compiling serde_derive v1.0.196 [INFO] [stderr] Compiling thiserror-impl v1.0.56 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling maybe-async v0.2.9 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking addr2line v0.21.0 [INFO] [stderr] Compiling gix-macros v0.1.3 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Compiling clap_derive v4.4.7 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking gix-path v0.10.5 [INFO] [stderr] Checking gix-validate v0.8.3 [INFO] [stderr] Checking gix-chunk v0.4.7 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking gix-quote v0.4.10 [INFO] [stderr] Checking gix-config-value v0.14.4 [INFO] [stderr] Checking gix-command v0.3.3 [INFO] [stderr] Checking tokio-util v0.7.10 [INFO] [stderr] Checking gix-bitmap v0.2.10 [INFO] [stderr] Checking twox-hash v1.6.3 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking gix-prompt v0.8.2 [INFO] [stderr] Checking thread_local v1.1.7 [INFO] [stderr] Checking topological-sort v0.2.2 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Checking owo-colors v3.5.0 [INFO] [stderr] Checking h2 v0.3.24 [INFO] [stderr] Checking tokio-rustls v0.24.1 [INFO] [stderr] Checking binfarce v0.2.1 [INFO] [stderr] Checking zeroize v1.7.0 [INFO] [stderr] Compiling abscissa_derive v0.7.0 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking tracing-log v0.1.4 [INFO] [stderr] Checking wait-timeout v0.2.0 [INFO] [stderr] Checking miniz_oxide v0.6.2 [INFO] [stderr] Checking canonical-path v2.0.2 [INFO] [stderr] Checking is-terminal v0.4.12 [INFO] [stderr] Checking display-error-chain v0.2.0 [INFO] [stderr] Checking auditable-extract v0.3.2 [INFO] [stderr] Checking clap v4.4.18 [INFO] [stderr] Checking color-eyre v0.6.2 [INFO] [stderr] Checking hyper v0.14.28 [INFO] [stderr] Checking faster-hex v0.9.0 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Checking url v2.5.0 [INFO] [stderr] Checking toml_datetime v0.6.5 [INFO] [stderr] Checking serde_spanned v0.6.5 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking toml_edit v0.19.15 [INFO] [stderr] Checking toml_edit v0.21.1 [INFO] [stderr] Checking gix-hash v0.14.1 [INFO] [stderr] Checking gix-packetline-blocking v0.17.3 [INFO] [stderr] Checking gix-features v0.38.0 [INFO] [stderr] Checking gix-hashtable v0.5.1 [INFO] [stderr] Checking gix-packetline v0.17.3 [INFO] [stderr] Checking smol_str v0.2.1 [INFO] [stderr] Checking cvss v2.0.0 [INFO] [stderr] Checking secrecy v0.8.0 [INFO] [stderr] Checking toml v0.5.11 [INFO] [stderr] Checking gix-fs v0.10.0 [INFO] [stderr] Checking gix-commitgraph v0.24.0 [INFO] [stderr] Checking gix-tempfile v13.0.0 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking gix-glob v0.16.0 [INFO] [stderr] Checking gix-lock v13.0.0 [INFO] [stderr] Checking gix-url v0.27.0 [INFO] [stderr] Checking platforms v3.4.1 [INFO] [stderr] Checking gix-credentials v0.24.0 [INFO] [stderr] Checking abscissa_core v0.7.0 [INFO] [stderr] Checking gix-attributes v0.22.0 [INFO] [stderr] Checking gix-ignore v0.11.0 [INFO] [stderr] Checking quitters v0.1.0 [INFO] [stderr] Checking hyper-rustls v0.24.2 [INFO] [stderr] Checking reqwest v0.11.24 [INFO] [stderr] Checking gix-pathspec v0.6.0 [INFO] [stderr] Checking toml v0.8.9 [INFO] [stderr] Checking toml v0.7.8 [INFO] [stderr] Checking cargo-lock v9.0.0 [INFO] [stderr] Checking gix-date v0.8.3 [INFO] [stderr] Checking gix-transport v0.41.0 [INFO] [stderr] Checking gix-actor v0.30.0 [INFO] [stderr] Checking auditable-serde v0.6.0 [INFO] [stderr] Checking gix-object v0.41.0 [INFO] [stderr] Checking auditable-info v0.7.0 [INFO] [stderr] Checking gix-protocol v0.44.0 [INFO] [stderr] Checking gix-revwalk v0.12.0 [INFO] [stderr] Checking gix-ref v0.41.0 [INFO] [stderr] Checking gix-filter v0.9.0 [INFO] [stderr] Checking gix-pack v0.47.0 [INFO] [stderr] Checking gix-diff v0.40.0 [INFO] [stderr] Checking gix-traverse v0.37.0 [INFO] [stderr] Checking gix-revision v0.26.0 [INFO] [stderr] Checking gix-negotiate v0.12.0 [INFO] [stderr] Checking gix-index v0.29.0 [INFO] [stderr] Checking gix-refspec v0.22.0 [INFO] [stderr] Checking gix-config v0.34.0 [INFO] [stderr] Checking gix-discover v0.29.0 [INFO] [stderr] Checking gix-worktree v0.30.0 [INFO] [stderr] Checking gix-worktree-state v0.7.0 [INFO] [stderr] Checking gix-odb v0.57.0 [INFO] [stderr] Checking gix-submodule v0.8.0 [INFO] [stderr] Checking gix v0.58.0 [INFO] [stderr] Checking tame-index v0.9.3 [INFO] [stderr] Checking rustsec v0.29.0 [INFO] [stderr] Checking cargo-audit v0.20.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/binary_deps.rs:32:36 [INFO] [stdout] | [INFO] [stdout] 32 | BinaryReport::Complete(cargo_lock::Lockfile::try_from(&json_struct)?), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:21:56 [INFO] [stdout] | [INFO] [stdout] 21 | #![warn(missing_docs, rust_2018_idioms, trivial_casts, unused_qualifications)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 32 - BinaryReport::Complete(cargo_lock::Lockfile::try_from(&json_struct)?), [INFO] [stdout] 32 + BinaryReport::Complete(Lockfile::try_from(&json_struct)?), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/config.rs:42:28 [INFO] [stdout] | [INFO] [stdout] 42 | let mut settings = rustsec::report::Settings { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 42 - let mut settings = rustsec::report::Settings { [INFO] [stdout] 42 + let mut settings = report::Settings { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/error.rs:98:11 [INFO] [stdout] | [INFO] [stdout] 98 | impl From for Error { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 98 - impl From for Error { [INFO] [stdout] 98 + impl From for Error { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/error.rs:99:18 [INFO] [stdout] | [INFO] [stdout] 99 | fn from(err: rustsec::cargo_lock::Error) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 99 - fn from(err: rustsec::cargo_lock::Error) -> Self { [INFO] [stdout] 99 + fn from(err: cargo_lock::Error) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/error.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | rustsec::cargo_lock::Error::Io(_) => ErrorKind::Io, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 101 - rustsec::cargo_lock::Error::Io(_) => ErrorKind::Io, [INFO] [stdout] 101 + cargo_lock::Error::Io(_) => ErrorKind::Io, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/error.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | rustsec::cargo_lock::Error::Parse(_) => ErrorKind::Parse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 102 - rustsec::cargo_lock::Error::Parse(_) => ErrorKind::Parse, [INFO] [stdout] 102 + cargo_lock::Error::Parse(_) => ErrorKind::Parse, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/error.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | rustsec::cargo_lock::Error::Version(_) => ErrorKind::Version, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 103 - rustsec::cargo_lock::Error::Version(_) => ErrorKind::Version, [INFO] [stdout] 103 + cargo_lock::Error::Version(_) => ErrorKind::Version, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/binary_deps.rs:32:36 [INFO] [stdout] | [INFO] [stdout] 32 | BinaryReport::Complete(cargo_lock::Lockfile::try_from(&json_struct)?), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:21:56 [INFO] [stdout] | [INFO] [stdout] 21 | #![warn(missing_docs, rust_2018_idioms, trivial_casts, unused_qualifications)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 32 - BinaryReport::Complete(cargo_lock::Lockfile::try_from(&json_struct)?), [INFO] [stdout] 32 + BinaryReport::Complete(Lockfile::try_from(&json_struct)?), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/config.rs:42:28 [INFO] [stdout] | [INFO] [stdout] 42 | let mut settings = rustsec::report::Settings { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 42 - let mut settings = rustsec::report::Settings { [INFO] [stdout] 42 + let mut settings = report::Settings { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/error.rs:98:11 [INFO] [stdout] | [INFO] [stdout] 98 | impl From for Error { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 98 - impl From for Error { [INFO] [stdout] 98 + impl From for Error { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/error.rs:99:18 [INFO] [stdout] | [INFO] [stdout] 99 | fn from(err: rustsec::cargo_lock::Error) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 99 - fn from(err: rustsec::cargo_lock::Error) -> Self { [INFO] [stdout] 99 + fn from(err: cargo_lock::Error) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/error.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | rustsec::cargo_lock::Error::Io(_) => ErrorKind::Io, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 101 - rustsec::cargo_lock::Error::Io(_) => ErrorKind::Io, [INFO] [stdout] 101 + cargo_lock::Error::Io(_) => ErrorKind::Io, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/error.rs:102:13 [INFO] [stdout] | [INFO] [stdout] 102 | rustsec::cargo_lock::Error::Parse(_) => ErrorKind::Parse, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 102 - rustsec::cargo_lock::Error::Parse(_) => ErrorKind::Parse, [INFO] [stdout] 102 + cargo_lock::Error::Parse(_) => ErrorKind::Parse, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/error.rs:103:13 [INFO] [stdout] | [INFO] [stdout] 103 | rustsec::cargo_lock::Error::Version(_) => ErrorKind::Version, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 103 - rustsec::cargo_lock::Error::Version(_) => ErrorKind::Version, [INFO] [stdout] 103 + cargo_lock::Error::Version(_) => ErrorKind::Version, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | #[derive(Command, Debug, Parser, Runnable)] [INFO] [stdout] | ^------ [INFO] [stdout] | | [INFO] [stdout] | `Command` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Command_FOR_CargoAuditSubCommand` [INFO] [stdout] 18 | #[command(bin_name = "cargo")] [INFO] [stdout] 19 | pub enum CargoAuditSubCommand { [INFO] [stdout] | -------------------- `CargoAuditSubCommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Command` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Command` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Command` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands.rs:17:34 [INFO] [stdout] | [INFO] [stdout] 17 | #[derive(Command, Debug, Parser, Runnable)] [INFO] [stdout] | ^------- [INFO] [stdout] | | [INFO] [stdout] | `Runnable` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Runnable_FOR_CargoAuditSubCommand` [INFO] [stdout] 18 | #[command(bin_name = "cargo")] [INFO] [stdout] 19 | pub enum CargoAuditSubCommand { [INFO] [stdout] | -------------------- `CargoAuditSubCommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Runnable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Runnable` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: this warning originates in the derive macro `Runnable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands.rs:26:10 [INFO] [stdout] | [INFO] [stdout] 26 | #[derive(Command, Debug, Parser)] [INFO] [stdout] | ^------ [INFO] [stdout] | | [INFO] [stdout] | `Command` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Command_FOR_CargoAuditCommand` [INFO] [stdout] 27 | #[command(author, version, about)] [INFO] [stdout] 28 | pub struct CargoAuditCommand { [INFO] [stdout] | ----------------- `CargoAuditCommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Command` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Command` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: this warning originates in the derive macro `Command` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands/audit.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | #[derive(Command, Clone, Default, Debug, Parser)] [INFO] [stdout] | ^------ [INFO] [stdout] | | [INFO] [stdout] | `Command` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Command_FOR_AuditCommand` [INFO] [stdout] 31 | #[command(version)] [INFO] [stdout] 32 | pub struct AuditCommand { [INFO] [stdout] | ------------ `AuditCommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Command` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Command` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: this warning originates in the derive macro `Command` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands/audit.rs:130:36 [INFO] [stdout] | [INFO] [stdout] 130 | #[derive(Subcommand, Clone, Debug, Runnable)] [INFO] [stdout] | ^------- [INFO] [stdout] | | [INFO] [stdout] | `Runnable` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Runnable_FOR_AuditSubcommand` [INFO] [stdout] 131 | pub enum AuditSubcommand { [INFO] [stdout] | --------------- `AuditSubcommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Runnable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Runnable` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: this warning originates in the derive macro `Runnable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands/audit/binary_scanning.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | #[derive(Command, Clone, Default, Debug, Parser)] [INFO] [stdout] | ^------ [INFO] [stdout] | | [INFO] [stdout] | `Command` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Command_FOR_BinCommand` [INFO] [stdout] 17 | #[command()] [INFO] [stdout] 18 | pub struct BinCommand { [INFO] [stdout] | ---------- `BinCommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Command` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Command` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: this warning originates in the derive macro `Command` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 13 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | #[derive(Command, Debug, Parser, Runnable)] [INFO] [stdout] | ^------ [INFO] [stdout] | | [INFO] [stdout] | `Command` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Command_FOR_CargoAuditSubCommand` [INFO] [stdout] 18 | #[command(bin_name = "cargo")] [INFO] [stdout] 19 | pub enum CargoAuditSubCommand { [INFO] [stdout] | -------------------- `CargoAuditSubCommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Command` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Command` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Command` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands.rs:17:34 [INFO] [stdout] | [INFO] [stdout] 17 | #[derive(Command, Debug, Parser, Runnable)] [INFO] [stdout] | ^------- [INFO] [stdout] | | [INFO] [stdout] | `Runnable` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Runnable_FOR_CargoAuditSubCommand` [INFO] [stdout] 18 | #[command(bin_name = "cargo")] [INFO] [stdout] 19 | pub enum CargoAuditSubCommand { [INFO] [stdout] | -------------------- `CargoAuditSubCommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Runnable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Runnable` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: this warning originates in the derive macro `Runnable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands.rs:26:10 [INFO] [stdout] | [INFO] [stdout] 26 | #[derive(Command, Debug, Parser)] [INFO] [stdout] | ^------ [INFO] [stdout] | | [INFO] [stdout] | `Command` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Command_FOR_CargoAuditCommand` [INFO] [stdout] 27 | #[command(author, version, about)] [INFO] [stdout] 28 | pub struct CargoAuditCommand { [INFO] [stdout] | ----------------- `CargoAuditCommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Command` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Command` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: this warning originates in the derive macro `Command` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands/audit.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | #[derive(Command, Clone, Default, Debug, Parser)] [INFO] [stdout] | ^------ [INFO] [stdout] | | [INFO] [stdout] | `Command` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Command_FOR_AuditCommand` [INFO] [stdout] 31 | #[command(version)] [INFO] [stdout] 32 | pub struct AuditCommand { [INFO] [stdout] | ------------ `AuditCommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Command` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Command` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: this warning originates in the derive macro `Command` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands/audit.rs:130:36 [INFO] [stdout] | [INFO] [stdout] 130 | #[derive(Subcommand, Clone, Debug, Runnable)] [INFO] [stdout] | ^------- [INFO] [stdout] | | [INFO] [stdout] | `Runnable` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Runnable_FOR_AuditSubcommand` [INFO] [stdout] 131 | pub enum AuditSubcommand { [INFO] [stdout] | --------------- `AuditSubcommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Runnable` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Runnable` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: this warning originates in the derive macro `Runnable` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/commands/audit/binary_scanning.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | #[derive(Command, Clone, Default, Debug, Parser)] [INFO] [stdout] | ^------ [INFO] [stdout] | | [INFO] [stdout] | `Command` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_DERIVE_Command_FOR_BinCommand` [INFO] [stdout] 17 | #[command()] [INFO] [stdout] 18 | pub struct BinCommand { [INFO] [stdout] | ---------- `BinCommand` is not local [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Command` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Command` may come from an old version of the `abscissa_derive` crate, try updating your dependency with `cargo update -p abscissa_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: this warning originates in the derive macro `Command` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 13 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 37s [INFO] running `Command { std: "docker" "inspect" "d278a7fd3e73d751472f3597a011c3ff40b2ca4813911ef30cc77b684bf0d41f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d278a7fd3e73d751472f3597a011c3ff40b2ca4813911ef30cc77b684bf0d41f", kill_on_drop: false }` [INFO] [stdout] d278a7fd3e73d751472f3597a011c3ff40b2ca4813911ef30cc77b684bf0d41f