[INFO] fetching crate ye 0.0.8... [INFO] testing ye-0.0.8 against master#a77da2d454e6caa227a85b16410b95f93495e7e0 for pr-91031 [INFO] extracting crate ye 0.0.8 into /workspace/builds/worker-5/source [INFO] validating manifest of crates.io crate ye 0.0.8 on toolchain a77da2d454e6caa227a85b16410b95f93495e7e0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate ye 0.0.8 [INFO] finished tweaking crates.io crate ye 0.0.8 [INFO] tweaked toml for crates.io crate ye 0.0.8 written to /workspace/builds/worker-5/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 12de01b301cdb377a9fcd89c0dca88fc02a64d0f8d44c04513f7bfd7e396fa17 [INFO] running `Command { std: "docker" "start" "-a" "12de01b301cdb377a9fcd89c0dca88fc02a64d0f8d44c04513f7bfd7e396fa17", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "12de01b301cdb377a9fcd89c0dca88fc02a64d0f8d44c04513f7bfd7e396fa17", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "12de01b301cdb377a9fcd89c0dca88fc02a64d0f8d44c04513f7bfd7e396fa17", kill_on_drop: false }` [INFO] [stdout] 12de01b301cdb377a9fcd89c0dca88fc02a64d0f8d44c04513f7bfd7e396fa17 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fc995c41408560608c7a3a2cb02e1b7e7b161069205f690509aeba9d6bd3fb17 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "fc995c41408560608c7a3a2cb02e1b7e7b161069205f690509aeba9d6bd3fb17", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.32 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling syn v1.0.81 [INFO] [stderr] Compiling futures-core v0.3.17 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Compiling futures-task v0.3.17 [INFO] [stderr] Compiling proc-macro-nested v0.1.7 [INFO] [stderr] Compiling futures-channel v0.3.17 [INFO] [stderr] Compiling libc v0.2.107 [INFO] [stderr] Compiling futures-sink v0.3.17 [INFO] [stderr] Compiling slab v0.4.5 [INFO] [stderr] Compiling futures-io v0.3.17 [INFO] [stderr] Compiling pin-project-lite v0.2.7 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling async-trait v0.1.51 [INFO] [stderr] Compiling termcolor v1.1.2 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling futures-macro v0.3.17 [INFO] [stderr] Compiling futures-util v0.3.17 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling quote v1.0.10 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Compiling env_logger v0.7.1 [INFO] [stderr] Compiling futures-executor v0.3.17 [INFO] [stderr] Compiling futures v0.3.17 [INFO] [stderr] Compiling ye v0.0.8 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 49.88s [INFO] running `Command { std: "docker" "inspect" "fc995c41408560608c7a3a2cb02e1b7e7b161069205f690509aeba9d6bd3fb17", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fc995c41408560608c7a3a2cb02e1b7e7b161069205f690509aeba9d6bd3fb17", kill_on_drop: false }` [INFO] [stdout] fc995c41408560608c7a3a2cb02e1b7e7b161069205f690509aeba9d6bd3fb17 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 843b649dd4eee6b07f299aad99fc666907973f297ee2c014e997629cac7b38d3 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "843b649dd4eee6b07f299aad99fc666907973f297ee2c014e997629cac7b38d3", kill_on_drop: false }` [INFO] [stderr] Compiling pin-project-lite v0.1.12 [INFO] [stderr] Compiling bytes v0.5.6 [INFO] [stderr] Compiling num_cpus v1.13.0 [INFO] [stderr] Compiling tokio-macros v0.2.6 [INFO] [stderr] Compiling tokio v0.2.25 [INFO] [stderr] Compiling ye v0.0.8 (/opt/rustwide/workdir) [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> tests/ye_plugin.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | Err(e) => panic!(format!("{}", e)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 82 - Err(e) => panic!(format!("{}", e)), [INFO] [stdout] 82 + Err(e) => panic!("{}", e), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> tests/ye_plugin.rs:93:26 [INFO] [stdout] | [INFO] [stdout] 93 | Err(e) => panic!(format!("{}", e)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 93 - Err(e) => panic!(format!("{}", e)), [INFO] [stdout] 93 + Err(e) => panic!("{}", e), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> tests/ye_plugin.rs:111:26 [INFO] [stdout] | [INFO] [stdout] 111 | Err(e) => panic!(format!("{}", e)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stdout] help: remove the `format!(..)` macro call [INFO] [stdout] | [INFO] [stdout] 111 - Err(e) => panic!(format!("{}", e)), [INFO] [stdout] 111 + Err(e) => panic!("{}", e), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 13.37s [INFO] running `Command { std: "docker" "inspect" "843b649dd4eee6b07f299aad99fc666907973f297ee2c014e997629cac7b38d3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "843b649dd4eee6b07f299aad99fc666907973f297ee2c014e997629cac7b38d3", kill_on_drop: false }` [INFO] [stdout] 843b649dd4eee6b07f299aad99fc666907973f297ee2c014e997629cac7b38d3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "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:5736fa189c1c60b01babf4b8b698fe57b6ecc41933a7ff2e0b8d7a221459412b" "/opt/rustwide/cargo-home/bin/cargo" "+a77da2d454e6caa227a85b16410b95f93495e7e0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] bdb18685d94adeeb9b604dd73ebe4be012d22e277d8ecbc17bd0e43d8f5af6e1 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "bdb18685d94adeeb9b604dd73ebe4be012d22e277d8ecbc17bd0e43d8f5af6e1", kill_on_drop: false }` [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> tests/ye_plugin.rs:82:26 [INFO] [stderr] | [INFO] [stderr] 82 | Err(e) => panic!(format!("{}", e)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stderr] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stderr] help: remove the `format!(..)` macro call [INFO] [stderr] | [INFO] [stderr] 82 - Err(e) => panic!(format!("{}", e)), [INFO] [stderr] 82 + Err(e) => panic!("{}", e), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> tests/ye_plugin.rs:93:26 [INFO] [stderr] | [INFO] [stderr] 93 | Err(e) => panic!(format!("{}", e)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stderr] help: remove the `format!(..)` macro call [INFO] [stderr] | [INFO] [stderr] 93 - Err(e) => panic!(format!("{}", e)), [INFO] [stderr] 93 + Err(e) => panic!("{}", e), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: panic message is not a string literal [INFO] [stderr] --> tests/ye_plugin.rs:111:26 [INFO] [stderr] | [INFO] [stderr] 111 | Err(e) => panic!(format!("{}", e)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this usage of panic!() is deprecated; it will be a hard error in Rust 2021 [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: the panic!() macro supports formatting, so there's no need for the format!() macro here [INFO] [stderr] help: remove the `format!(..)` macro call [INFO] [stderr] | [INFO] [stderr] 111 - Err(e) => panic!(format!("{}", e)), [INFO] [stderr] 111 + Err(e) => panic!("{}", e), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ye` (test "ye_plugin") generated 3 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stdout] [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/ye-91dcaab878439d51) [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/library.rs (/opt/rustwide/target/debug/deps/library-f55bb08402b6f0ed) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stderr] Running tests/ye_plugin.rs (/opt/rustwide/target/debug/deps/ye_plugin-1ad70db9c3a6f9ed) [INFO] [stdout] test library_can_be_created ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stderr] Doc-tests ye [INFO] [stdout] test ye_plugin_plugin_can_call_fallback_for_not_implemented ... ok [INFO] [stdout] test ye_plugin_plugin_can_call_functions_implemented_in_plugin ... ok [INFO] [stdout] test ye_plugin_ye_can_call_functions_implemented_in_plugin ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 35 tests [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_present_proof (line 537) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::did_resolve (line 114) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_create_credential_definition (line 262) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::run_custom_function (line 221) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_request_credential (line 575) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_create_credential_schema (line 378) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_create_credential_proposal (line 339) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_request_proof (line 613) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::did_create (line 78) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::register_plugin (line 186) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::did_update (line 150) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_issue_credential (line 498) ... ok [INFO] [stdout] test src/lib.rs - (line 52) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_create_revocation_registry_definition (line 418) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_create_credential_offer (line 300) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_revoke_credential (line 652) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::did_resolve (line 193) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_update_revocation_registry (line 459) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_create_credential_definition (line 298) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_present_proof (line 542) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_create_credential_offer (line 332) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin (line 114) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::did_create (line 161) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::run_custom_function (line 261) ... ok [INFO] [stdout] test src/ye.rs - ye::Ye::vc_zkp_verify_proof (line 690) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::did_update (line 225) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_create_credential_schema (line 401) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_create_credential_proposal (line 366) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_request_credential (line 576) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_create_revocation_registry_definition (line 437) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_issue_credential (line 507) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_request_proof (line 610) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_update_revocation_registry (line 472) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_verify_proof (line 679) ... ok [INFO] [stdout] test src/ye_plugin.rs - ye_plugin::YePlugin::vc_zkp_revoke_credential (line 645) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 14.42s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "bdb18685d94adeeb9b604dd73ebe4be012d22e277d8ecbc17bd0e43d8f5af6e1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bdb18685d94adeeb9b604dd73ebe4be012d22e277d8ecbc17bd0e43d8f5af6e1", kill_on_drop: false }` [INFO] [stdout] bdb18685d94adeeb9b604dd73ebe4be012d22e277d8ecbc17bd0e43d8f5af6e1