[INFO] cloning repository https://github.com/tmgAzit/signature-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tmgAzit/signature-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FtmgAzit%2Fsignature-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FtmgAzit%2Fsignature-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 68a2c1ea46bc03691ff10fbcda96f9378b96f5d3 [INFO] checking tmgAzit/signature-rust against try#e5b0618d996a6a3941e423fd3e170737b8dbdc92 for pr-151822 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FtmgAzit%2Fsignature-rust" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tmgAzit/signature-rust [INFO] finished tweaking git repo https://github.com/tmgAzit/signature-rust [INFO] tweaked toml for git repo https://github.com/tmgAzit/signature-rust written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tmgAzit/signature-rust on toolchain e5b0618d996a6a3941e423fd3e170737b8dbdc92 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e5b0618d996a6a3941e423fd3e170737b8dbdc92" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/tmgAzit/signature-rust 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" "+e5b0618d996a6a3941e423fd3e170737b8dbdc92" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [INFO] checking tmgAzit/signature-rust against try#e5b0618d996a6a3941e423fd3e170737b8dbdc92 for pr-151822 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FtmgAzit%2Fsignature-rust" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tmgAzit/signature-rust [INFO] finished tweaking git repo https://github.com/tmgAzit/signature-rust [INFO] tweaked toml for git repo https://github.com/tmgAzit/signature-rust written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tmgAzit/signature-rust on toolchain e5b0618d996a6a3941e423fd3e170737b8dbdc92 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e5b0618d996a6a3941e423fd3e170737b8dbdc92" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/tmgAzit/signature-rust 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" "+e5b0618d996a6a3941e423fd3e170737b8dbdc92" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded zerocopy-derive v0.8.23 [INFO] [stderr] Downloaded zerocopy v0.8.23 [INFO] [stderr] Downloaded hkdf v0.11.0 [INFO] [stderr] Downloaded bls-signatures v0.15.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+e5b0618d996a6a3941e423fd3e170737b8dbdc92" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2e3692d98db92368272903edc30fb2d439d3167459093b84b6ed221dacfce77c [INFO] running `Command { std: "docker" "start" "-a" "2e3692d98db92368272903edc30fb2d439d3167459093b84b6ed221dacfce77c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2e3692d98db92368272903edc30fb2d439d3167459093b84b6ed221dacfce77c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2e3692d98db92368272903edc30fb2d439d3167459093b84b6ed221dacfce77c", kill_on_drop: false }` [INFO] [stdout] 2e3692d98db92368272903edc30fb2d439d3167459093b84b6ed221dacfce77c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "-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:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+e5b0618d996a6a3941e423fd3e170737b8dbdc92" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 04184a64eed1a725d2874afe7547648822e6a76fcc4b856d162d7b715f012d2c [INFO] running `Command { std: "docker" "start" "-a" "04184a64eed1a725d2874afe7547648822e6a76fcc4b856d162d7b715f012d2c", kill_on_drop: false }` [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling zerocopy v0.8.23 [INFO] [stderr] Compiling getrandom v0.3.2 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Checking opaque-debug v0.3.1 [INFO] [stderr] Checking bitvec v1.0.1 [INFO] [stderr] Checking rayon-core v1.12.1 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking crypto-mac v0.11.1 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking hmac v0.11.0 [INFO] [stderr] Checking sha2 v0.9.9 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking hkdf v0.11.0 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking ff v0.13.1 [INFO] [stderr] Checking rand v0.9.0 [INFO] [stderr] Checking group v0.13.0 [INFO] [stderr] Checking pairing v0.23.0 [INFO] [stderr] Checking bls12_381 v0.8.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking bls-signatures v0.15.0 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking signatures v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0277]: the trait bound `ThreadRng: rand_core::RngCore` is not satisfied [INFO] [stdout] --> src/main.rs:13:40 [INFO] [stdout] | [INFO] [stdout] 13 | let private = PrivateKey::generate(&mut rng()); [INFO] [stdout] | -------------------- ^^^^^^^^^^ the trait `rand_core::RngCore` is not implemented for `ThreadRng` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] note: there are multiple different versions of crate `rand_core` in the dependency graph [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:142:1 [INFO] [stdout] | [INFO] [stdout] 142 | pub trait RngCore { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ this is the expected trait [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.9.3/src/lib.rs:130:1 [INFO] [stdout] | [INFO] [stdout] 130 | pub trait RngCore { [INFO] [stdout] | ----------------- [INFO] [stdout] | | [INFO] [stdout] | this is the found trait [INFO] [stdout] | this is the found trait [INFO] [stdout] = help: you can use `cargo tree` to explore your dependency tree [INFO] [stdout] help: the following other types implement trait `rand_core::RngCore` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:424:1 [INFO] [stdout] | [INFO] [stdout] 424 | impl<'a, R: RngCore + ?Sized> RngCore for &'a mut R { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'a mut R` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs:181:1 [INFO] [stdout] | [INFO] [stdout] 181 | / impl> RngCore for BlockRng [INFO] [stdout] 182 | | where [INFO] [stdout] 183 | | ::Results: AsRef<[u32]> + AsMut<[u32]>, [INFO] [stdout] | |______________________________________________________________^ `rand_core::block::BlockRng` [INFO] [stdout] ... [INFO] [stdout] 349 | / impl> RngCore for BlockRng64 [INFO] [stdout] 350 | | where [INFO] [stdout] 351 | | ::Results: AsRef<[u64]> + AsMut<[u64]>, [INFO] [stdout] | |______________________________________________________________^ `rand_core::block::BlockRng64` [INFO] [stdout] note: required by a bound in `PrivateKey::generate` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bls-signatures-0.15.0/src/key.rs:90:24 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn generate(rng: &mut R) -> Self { [INFO] [stdout] | ^^^^^^^ required by this bound in `PrivateKey::generate` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `signatures` (bin "signatures") due to 2 previous errors [INFO] [stdout] error[E0277]: the trait bound `ThreadRng: rand_core::CryptoRng` is not satisfied [INFO] [stdout] --> src/main.rs:13:40 [INFO] [stdout] | [INFO] [stdout] 13 | let private = PrivateKey::generate(&mut rng()); [INFO] [stdout] | -------------------- ^^^^^^^^^^ the trait `rand_core::CryptoRng` is not implemented for `ThreadRng` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] note: there are multiple different versions of crate `rand_core` in the dependency graph [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:209:1 [INFO] [stdout] | [INFO] [stdout] 209 | pub trait CryptoRng {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ this is the expected trait [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.9.3/src/lib.rs:204:1 [INFO] [stdout] | [INFO] [stdout] 204 | pub trait CryptoRng: RngCore {} [INFO] [stdout] | ---------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is the found trait [INFO] [stdout] | this is the found trait [INFO] [stdout] = help: you can use `cargo tree` to explore your dependency tree [INFO] [stdout] help: the following other types implement trait `rand_core::CryptoRng` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:481:1 [INFO] [stdout] | [INFO] [stdout] 481 | impl<'a, R: CryptoRng + ?Sized> CryptoRng for &'a mut R {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'a mut R` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs:431:1 [INFO] [stdout] | [INFO] [stdout] 431 | impl CryptoRng for BlockRng {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `rand_core::block::BlockRng` [INFO] [stdout] note: required by a bound in `PrivateKey::generate` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bls-signatures-0.15.0/src/key.rs:90:34 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn generate(rng: &mut R) -> Self { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `PrivateKey::generate` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0277]: the trait bound `ThreadRng: rand_core::RngCore` is not satisfied [INFO] [stdout] --> src/main.rs:13:40 [INFO] [stdout] | [INFO] [stdout] 13 | let private = PrivateKey::generate(&mut rng()); [INFO] [stdout] | -------------------- ^^^^^^^^^^ the trait `rand_core::RngCore` is not implemented for `ThreadRng` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] note: there are multiple different versions of crate `rand_core` in the dependency graph [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:142:1 [INFO] [stdout] | [INFO] [stdout] 142 | pub trait RngCore { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ this is the expected trait [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.9.3/src/lib.rs:130:1 [INFO] [stdout] | [INFO] [stdout] 130 | pub trait RngCore { [INFO] [stdout] | ----------------- [INFO] [stdout] | | [INFO] [stdout] | this is the found trait [INFO] [stdout] | this is the found trait [INFO] [stdout] = help: you can use `cargo tree` to explore your dependency tree [INFO] [stdout] help: the following other types implement trait `rand_core::RngCore` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:424:1 [INFO] [stdout] | [INFO] [stdout] 424 | impl<'a, R: RngCore + ?Sized> RngCore for &'a mut R { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'a mut R` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs:181:1 [INFO] [stdout] | [INFO] [stdout] 181 | / impl> RngCore for BlockRng [INFO] [stdout] 182 | | where [INFO] [stdout] 183 | | ::Results: AsRef<[u32]> + AsMut<[u32]>, [INFO] [stdout] | |______________________________________________________________^ `rand_core::block::BlockRng` [INFO] [stdout] ... [INFO] [stdout] 349 | / impl> RngCore for BlockRng64 [INFO] [stdout] 350 | | where [INFO] [stdout] 351 | | ::Results: AsRef<[u64]> + AsMut<[u64]>, [INFO] [stdout] | |______________________________________________________________^ `rand_core::block::BlockRng64` [INFO] [stdout] note: required by a bound in `PrivateKey::generate` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bls-signatures-0.15.0/src/key.rs:90:24 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn generate(rng: &mut R) -> Self { [INFO] [stdout] | ^^^^^^^ required by this bound in `PrivateKey::generate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the trait bound `ThreadRng: rand_core::CryptoRng` is not satisfied [INFO] [stdout] --> src/main.rs:13:40 [INFO] [stdout] | [INFO] [stdout] 13 | let private = PrivateKey::generate(&mut rng()); [INFO] [stdout] | -------------------- ^^^^^^^^^^ the trait `rand_core::CryptoRng` is not implemented for `ThreadRng` [INFO] [stdout] | | [INFO] [stdout] | required by a bound introduced by this call [INFO] [stdout] | [INFO] [stdout] note: there are multiple different versions of crate `rand_core` in the dependency graph [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:209:1 [INFO] [stdout] | [INFO] [stdout] 209 | pub trait CryptoRng {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ this is the expected trait [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.9.3/src/lib.rs:204:1 [INFO] [stdout] | [INFO] [stdout] 204 | pub trait CryptoRng: RngCore {} [INFO] [stdout] | ---------------------------- [INFO] [stdout] | | [INFO] [stdout] | this is the found trait [INFO] [stdout] | this is the found trait [INFO] [stdout] = help: you can use `cargo tree` to explore your dependency tree [INFO] [stdout] help: the following other types implement trait `rand_core::CryptoRng` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/lib.rs:481:1 [INFO] [stdout] | [INFO] [stdout] 481 | impl<'a, R: CryptoRng + ?Sized> CryptoRng for &'a mut R {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `&'a mut R` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/rand_core-0.6.4/src/block.rs:431:1 [INFO] [stdout] | [INFO] [stdout] 431 | impl CryptoRng for BlockRng {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `rand_core::block::BlockRng` [INFO] [stdout] note: required by a bound in `PrivateKey::generate` [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bls-signatures-0.15.0/src/key.rs:90:34 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn generate(rng: &mut R) -> Self { [INFO] [stdout] | ^^^^^^^^^ required by this bound in `PrivateKey::generate` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: could not compile `signatures` (bin "signatures" test) due to 2 previous errors [INFO] running `Command { std: "docker" "inspect" "04184a64eed1a725d2874afe7547648822e6a76fcc4b856d162d7b715f012d2c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "04184a64eed1a725d2874afe7547648822e6a76fcc4b856d162d7b715f012d2c", kill_on_drop: false }` [INFO] [stdout] 04184a64eed1a725d2874afe7547648822e6a76fcc4b856d162d7b715f012d2c