[INFO] cloning repository https://github.com/tbehner/solid-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tbehner/solid-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftbehner%2Fsolid-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftbehner%2Fsolid-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 156c5fd0312a7ce4ae00036567c954d067f3d4fd [INFO] testing tbehner/solid-rust against master#a77da2d454e6caa227a85b16410b95f93495e7e0 for pr-91031 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftbehner%2Fsolid-rust" "/workspace/builds/worker-2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/tbehner/solid-rust 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 git repo https://github.com/tbehner/solid-rust [INFO] finished tweaking git repo https://github.com/tbehner/solid-rust [INFO] tweaked toml for git repo https://github.com/tbehner/solid-rust written to /workspace/builds/worker-2/source/Cargo.toml [INFO] crate git repo https://github.com/tbehner/solid-rust already has a lockfile, it will not be regenerated [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-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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] [stdout] a86da4b3f42dbda4f91f76d3fe6bef3a8f01668d0e5984003b48819740d4609d [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" "a86da4b3f42dbda4f91f76d3fe6bef3a8f01668d0e5984003b48819740d4609d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a86da4b3f42dbda4f91f76d3fe6bef3a8f01668d0e5984003b48819740d4609d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a86da4b3f42dbda4f91f76d3fe6bef3a8f01668d0e5984003b48819740d4609d", kill_on_drop: false }` [INFO] [stdout] a86da4b3f42dbda4f91f76d3fe6bef3a8f01668d0e5984003b48819740d4609d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] a362fb2cd8b088999c752beb167d5d243119eba350a5879bee5a2b6494afe684 [INFO] running `Command { std: "docker" "start" "-a" "a362fb2cd8b088999c752beb167d5d243119eba350a5879bee5a2b6494afe684", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Compiling cc v1.0.29 [INFO] [stderr] Compiling chrono v0.4.6 [INFO] [stderr] Compiling proc-macro2 v0.4.27 [INFO] [stderr] Compiling quote v0.6.11 [INFO] [stderr] Compiling syn v0.15.26 [INFO] [stderr] Compiling backtrace-sys v0.1.28 [INFO] [stderr] Compiling backtrace v0.3.14 [INFO] [stderr] Compiling synstructure v0.10.1 [INFO] [stderr] Compiling failure_derive v0.1.5 [INFO] [stderr] Compiling failure v0.1.5 [INFO] [stderr] Compiling payroll v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `BiWeeklySchedule`, `MonthlySchedule`, `WeeklySchedule` [INFO] [stdout] --> src/transaction/mod.rs:5:40 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::employee::{PaymentSchedule, MonthlySchedule, BiWeeklySchedule, WeeklySchedule}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `date` [INFO] [stdout] --> src/employee/timecard.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | date: Date, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/transaction/mod.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | fn new(empid: EmployeeId, name: &str, address: &str, salary: f32, schedule: Rc) -> AddSalariedEmployee { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/transaction/mod.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 121 | fn new(empid: EmployeeId, name: &str, address: &str, salary: f32, schedule: Rc) -> AddHourlyEmployee { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/transaction/mod.rs:172:8 [INFO] [stdout] | [INFO] [stdout] 172 | fn new(date: Date, hours: f32, empid: EmployeeId) -> TimeCardTransaction { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/mod.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | / GLOBAL_PAYROLL_DB.with(|connection| { [INFO] [stdout] 184 | | let db = connection.borrow(); [INFO] [stdout] 185 | | let employee = db.get_employee(self.its_empid); [INFO] [stdout] 186 | | let classification_cell = employee.get_classification(); [INFO] [stdout] ... | [INFO] [stdout] 193 | | Ok(()) [INFO] [stdout] 194 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 24.08s [INFO] running `Command { std: "docker" "inspect" "a362fb2cd8b088999c752beb167d5d243119eba350a5879bee5a2b6494afe684", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a362fb2cd8b088999c752beb167d5d243119eba350a5879bee5a2b6494afe684", kill_on_drop: false }` [INFO] [stdout] a362fb2cd8b088999c752beb167d5d243119eba350a5879bee5a2b6494afe684 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] f1bfbebbc6296fef176a09fa537ccf0738f1a0c7465574c92f2b9d86c357f6d7 [INFO] running `Command { std: "docker" "start" "-a" "f1bfbebbc6296fef176a09fa537ccf0738f1a0c7465574c92f2b9d86c357f6d7", kill_on_drop: false }` [INFO] [stderr] Compiling payroll v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `BiWeeklySchedule`, `MonthlySchedule`, `WeeklySchedule` [INFO] [stdout] --> src/transaction/mod.rs:5:40 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::employee::{PaymentSchedule, MonthlySchedule, BiWeeklySchedule, WeeklySchedule}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `date` [INFO] [stdout] --> src/employee/timecard.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | date: Date, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/transaction/mod.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | fn new(empid: EmployeeId, name: &str, address: &str, salary: f32, schedule: Rc) -> AddSalariedEmployee { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/transaction/mod.rs:121:8 [INFO] [stdout] | [INFO] [stdout] 121 | fn new(empid: EmployeeId, name: &str, address: &str, salary: f32, schedule: Rc) -> AddHourlyEmployee { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/transaction/mod.rs:172:8 [INFO] [stdout] | [INFO] [stdout] 172 | fn new(date: Date, hours: f32, empid: EmployeeId) -> TimeCardTransaction { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/mod.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | / GLOBAL_PAYROLL_DB.with(|connection| { [INFO] [stdout] 184 | | let db = connection.borrow(); [INFO] [stdout] 185 | | let employee = db.get_employee(self.its_empid); [INFO] [stdout] 186 | | let classification_cell = employee.get_classification(); [INFO] [stdout] ... | [INFO] [stdout] 193 | | Ok(()) [INFO] [stdout] 194 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `date` [INFO] [stdout] --> src/employee/timecard.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | date: Date, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/transaction/mod.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | / GLOBAL_PAYROLL_DB.with(|connection| { [INFO] [stdout] 184 | | let db = connection.borrow(); [INFO] [stdout] 185 | | let employee = db.get_employee(self.its_empid); [INFO] [stdout] 186 | | let classification_cell = employee.get_classification(); [INFO] [stdout] ... | [INFO] [stdout] 193 | | Ok(()) [INFO] [stdout] 194 | | }); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 2.20s [INFO] running `Command { std: "docker" "inspect" "f1bfbebbc6296fef176a09fa537ccf0738f1a0c7465574c92f2b9d86c357f6d7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1bfbebbc6296fef176a09fa537ccf0738f1a0c7465574c92f2b9d86c357f6d7", kill_on_drop: false }` [INFO] [stdout] f1bfbebbc6296fef176a09fa537ccf0738f1a0c7465574c92f2b9d86c357f6d7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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] 441ae668a843a4883d58e787db65ac8c86fe6281c872784b7f7f9ad446190fd9 [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" "441ae668a843a4883d58e787db65ac8c86fe6281c872784b7f7f9ad446190fd9", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `BiWeeklySchedule`, `MonthlySchedule`, `WeeklySchedule` [INFO] [stderr] --> src/transaction/mod.rs:5:40 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::employee::{PaymentSchedule, MonthlySchedule, BiWeeklySchedule, WeeklySchedule}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `date` [INFO] [stderr] --> src/employee/timecard.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | date: Date, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/transaction/mod.rs:68:8 [INFO] [stderr] | [INFO] [stderr] 68 | fn new(empid: EmployeeId, name: &str, address: &str, salary: f32, schedule: Rc) -> AddSalariedEmployee { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/transaction/mod.rs:121:8 [INFO] [stderr] | [INFO] [stderr] 121 | fn new(empid: EmployeeId, name: &str, address: &str, salary: f32, schedule: Rc) -> AddHourlyEmployee { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/transaction/mod.rs:172:8 [INFO] [stderr] | [INFO] [stderr] 172 | fn new(date: Date, hours: f32, empid: EmployeeId) -> TimeCardTransaction { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `Result` that must be used [INFO] [stderr] --> src/transaction/mod.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / GLOBAL_PAYROLL_DB.with(|connection| { [INFO] [stderr] 184 | | let db = connection.borrow(); [INFO] [stderr] 185 | | let employee = db.get_employee(self.its_empid); [INFO] [stderr] 186 | | let classification_cell = employee.get_classification(); [INFO] [stderr] ... | [INFO] [stderr] 193 | | Ok(()) [INFO] [stderr] 194 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: `payroll` (lib) generated 6 warnings [INFO] [stderr] warning: `payroll` (lib test) generated 2 warnings (2 duplicates) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.07s [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/payroll-a1c18d015b1da84a) [INFO] [stdout] test transaction::tests::biweekly_employee_is_created ... ok [INFO] [stdout] test transaction::tests::employee_has_correct_stats ... ok [INFO] [stdout] test transaction::tests::monthly_employee_is_created ... ok [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/payroll-347a81f171334d72) [INFO] [stdout] test transaction::tests::time_card_transaction ... ok [INFO] [stderr] Doc-tests payroll [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [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] [stdout] [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] running `Command { std: "docker" "inspect" "441ae668a843a4883d58e787db65ac8c86fe6281c872784b7f7f9ad446190fd9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "441ae668a843a4883d58e787db65ac8c86fe6281c872784b7f7f9ad446190fd9", kill_on_drop: false }` [INFO] [stdout] 441ae668a843a4883d58e787db65ac8c86fe6281c872784b7f7f9ad446190fd9