[INFO] crate citadel-crud 0.1.1 is already in cache [INFO] extracting crate citadel-crud 0.1.1 into work/ex/pr-57967/sources/master#c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/reg/citadel-crud/0.1.1 [INFO] extracting crate citadel-crud 0.1.1 into work/ex/pr-57967/sources/try#7fea0229842e79db1159ea58ad9a653b288efee9/reg/citadel-crud/0.1.1 [INFO] validating manifest of citadel-crud-0.1.1 on toolchain master#c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of citadel-crud-0.1.1 on toolchain try#7fea0229842e79db1159ea58ad9a653b288efee9 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+7fea0229842e79db1159ea58ad9a653b288efee9-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing citadel-crud-0.1.1 [INFO] finished frobbing citadel-crud-0.1.1 [INFO] frobbed toml for citadel-crud-0.1.1 written to work/ex/pr-57967/sources/master#c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/reg/citadel-crud/0.1.1/Cargo.toml [INFO] started frobbing citadel-crud-0.1.1 [INFO] finished frobbing citadel-crud-0.1.1 [INFO] frobbed toml for citadel-crud-0.1.1 written to work/ex/pr-57967/sources/try#7fea0229842e79db1159ea58ad9a653b288efee9/reg/citadel-crud/0.1.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+7fea0229842e79db1159ea58ad9a653b288efee9-alt" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+7fea0229842e79db1159ea58ad9a653b288efee9-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] testing citadel-crud-0.1.1 against master#c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54 for pr-57967 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-57967/worker-7/master#c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-57967/sources/master#c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/reg/citadel-crud/0.1.1:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54-alt" "build" "--frozen"` [INFO] [stdout] 06cf08e320f28ea4a6bebd5ea686324df4df217f6fc6d9b750b1e192a5c1c596 [INFO] running `"docker" "start" "-a" "06cf08e320f28ea4a6bebd5ea686324df4df217f6fc6d9b750b1e192a5c1c596"` [INFO] [stderr] Compiling citadel-crud v0.1.1 (/opt/crater/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.52s [INFO] running `"docker" "inspect" "06cf08e320f28ea4a6bebd5ea686324df4df217f6fc6d9b750b1e192a5c1c596"` [INFO] running `"docker" "rm" "-f" "06cf08e320f28ea4a6bebd5ea686324df4df217f6fc6d9b750b1e192a5c1c596"` [INFO] [stdout] 06cf08e320f28ea4a6bebd5ea686324df4df217f6fc6d9b750b1e192a5c1c596 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-57967/worker-7/master#c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-57967/sources/master#c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/reg/citadel-crud/0.1.1:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54-alt" "test" "--frozen" "--no-run"` [INFO] [stdout] a58f5af4bff037644df8355acce0868d1745e9668f70434790575280b98e28fd [INFO] running `"docker" "start" "-a" "a58f5af4bff037644df8355acce0868d1745e9668f70434790575280b98e28fd"` [INFO] [stderr] Compiling citadel-crud v0.1.1 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `citadel_crud::components::creator::Creator` [INFO] [stderr] --> tests/common/employee_reader.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use citadel_crud::components::creator::Creator; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `citadel_crud::components::reader::Reader` [INFO] [stderr] --> tests/common/employee_reader.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use citadel_crud::components::reader::Reader; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `citadel_crud::components::updater::Updater` [INFO] [stderr] --> tests/common/employee_reader.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use citadel_crud::components::updater::Updater; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `citadel_crud::components::deleter::Deleter` [INFO] [stderr] --> tests/common/employee_reader.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use citadel_crud::components::deleter::Deleter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::rusqlite::*` [INFO] [stderr] --> tests/common/employee_reader.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use self::rusqlite::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `common` [INFO] [stderr] --> tests/common/employee_updater.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use common; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `common` [INFO] [stderr] --> tests/common/employee_deleter.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use common; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `common::schema::*` [INFO] [stderr] --> tests/common/employee_deleter.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | use common::schema::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `citadel_crud::components::deleter::Deleter` [INFO] [stderr] --> tests/integration_test.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use citadel_crud::components::deleter::Deleter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tom_reader` [INFO] [stderr] --> tests/integration_test.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | let tom_reader = employee_reader::EmployeeReader { first_name: "Tom".to_string()}; [INFO] [stderr] | ^^^^^^^^^^ help: consider prefixing with an underscore: `_tom_reader` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `fred_deleter` [INFO] [stderr] --> tests/integration_test.rs:53:9 [INFO] [stderr] | [INFO] [stderr] 53 | let fred_deleter = employee_deleter::EmployeeDeleter { employee_id: 0}; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider prefixing with an underscore: `_fred_deleter` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> tests/common/employee_reader.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | let mut statement = usable_connection.prepare("select * from Employee where FirstName = ?1 limit 1"); [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Department` [INFO] [stderr] --> tests/common/schema.rs:11:1 [INFO] [stderr] | [INFO] [stderr] 11 | pub struct Department { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Organization` [INFO] [stderr] --> tests/common/schema.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub struct Organization { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> tests/common/employee_deleter.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | / usable_connection.execute( [INFO] [stderr] 29 | | "DELETE FROM Employee WHERE EmployeeId = ?1", &[&self.employee_id] [INFO] [stderr] 30 | | ); [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: unused attribute [INFO] [stderr] --> tests/common/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(custom_attribute)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_attributes)] on by default [INFO] [stderr] [INFO] [stderr] warning: crate-level attribute should be in the root module [INFO] [stderr] --> tests/common/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(custom_attribute)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.47s [INFO] running `"docker" "inspect" "a58f5af4bff037644df8355acce0868d1745e9668f70434790575280b98e28fd"` [INFO] running `"docker" "rm" "-f" "a58f5af4bff037644df8355acce0868d1745e9668f70434790575280b98e28fd"` [INFO] [stdout] a58f5af4bff037644df8355acce0868d1745e9668f70434790575280b98e28fd [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-57967/worker-7/master#c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-57967/sources/master#c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/reg/citadel-crud/0.1.1:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54-alt" "test" "--frozen"` [INFO] [stdout] 5cf798288f197ec17a34fa6169882ce5adab070367ea150c897e96e1b8d266f3 [INFO] running `"docker" "start" "-a" "5cf798288f197ec17a34fa6169882ce5adab070367ea150c897e96e1b8d266f3"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.02s [INFO] [stderr] Running /opt/crater/target/debug/deps/citadel_crud-5919a430bbff6c1c [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 [INFO] [stdout] [INFO] [stderr] Running /opt/crater/target/debug/deps/integration_test-fd7847a9c02ee238 [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test common::employee_creator::test ... ok [INFO] [stdout] test common::employee_deleter::test ... ok [INFO] [stdout] test common::employee_updater::test ... ok [INFO] [stdout] test integration_test ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- integration_test stdout ---- [INFO] [stdout] thread 'integration_test' panicked at 'called `Result::unwrap()` on an `Err` value: SqliteFailure(Error { code: ReadOnly, extended_code: 8 }, Some("attempt to write a readonly database"))', src/libcore/result.rs:997:5 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5570938f3153 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::hb587d2734f1dc7c5 [INFO] [stdout] at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39 [INFO] [stdout] 1: 0x5570938eee6b - std::sys_common::backtrace::_print::he39717f7cfbd122d [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:70 [INFO] [stdout] 2: 0x5570938f1e06 - std::panicking::default_hook::{{closure}}::hb7f1ae5149814e5e [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:58 [INFO] [stdout] at src/libstd/panicking.rs:200 [INFO] [stdout] 3: 0x5570938f1b07 - std::panicking::default_hook::hc2b73d8ffc772b35 [INFO] [stdout] at src/libstd/panicking.rs:209 [INFO] [stdout] 4: 0x5570938f2510 - std::panicking::rust_panic_with_hook::h625072734a147d22 [INFO] [stdout] at src/libstd/panicking.rs:478 [INFO] [stdout] 5: 0x5570938f2091 - std::panicking::continue_panic_fmt::h3d3b66f689c3e04e [INFO] [stdout] at src/libstd/panicking.rs:385 [INFO] [stdout] 6: 0x5570938f1f75 - rust_begin_unwind [INFO] [stdout] at src/libstd/panicking.rs:312 [INFO] [stdout] 7: 0x55709390477c - core::panicking::panic_fmt::h3dc182ff7fefc0c0 [INFO] [stdout] at src/libcore/panicking.rs:85 [INFO] [stdout] 8: 0x5570938cdeb7 - core::result::unwrap_failed::h3db1b0742df0df4c [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libcore/macros.rs:16 [INFO] [stdout] 9: 0x55709388e9ac - >::unwrap::h9d3ca4b53f8e99e2 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libcore/result.rs:798 [INFO] [stdout] 10: 0x55709388d47d - >::insert::h763290f04d7399bc [INFO] [stdout] at tests/common/employee_creator.rs:27 [INFO] [stdout] 11: 0x55709388b0be - integration_test::integration_test::h1303f398749c8e80 [INFO] [stdout] at tests/integration_test.rs:30 [INFO] [stdout] 12: 0x55709388af69 - integration_test::integration_test::{{closure}}::h0b01551cf6f57e10 [INFO] [stdout] at tests/integration_test.rs:21 [INFO] [stdout] 13: 0x55709388d6cd - core::ops::function::FnOnce::call_once::h3fb054d169ff8712 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libcore/ops/function.rs:231 [INFO] [stdout] 14: 0x55709389994e - >::call_box::h6b39ff82621fe3f5 [INFO] [stdout] at src/libtest/lib.rs:1474 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libcore/ops/function.rs:231 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/liballoc/boxed.rs:734 [INFO] [stdout] 15: 0x5570938f5639 - __rust_maybe_catch_panic [INFO] [stdout] at src/libpanic_unwind/lib.rs:92 [INFO] [stdout] 16: 0x5570938b6bd7 - test::run_test::run_test_inner::{{closure}}::h57942e399d1cc807 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libstd/panicking.rs:276 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libstd/panic.rs:388 [INFO] [stdout] at src/libtest/lib.rs:1429 [INFO] [stdout] 17: 0x557093892394 - std::sys_common::backtrace::__rust_begin_short_backtrace::h85c77ad9ddf8fba3 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libstd/sys_common/backtrace.rs:135 [INFO] [stdout] 18: 0x557093892a64 - std::panicking::try::do_call::hf5b2072d080453d1 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libstd/thread/mod.rs:469 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libstd/panic.rs:309 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libstd/panicking.rs:297 [INFO] [stdout] 19: 0x5570938f5639 - __rust_maybe_catch_panic [INFO] [stdout] at src/libpanic_unwind/lib.rs:92 [INFO] [stdout] 20: 0x557093899bcc - >::call_box::hf0a5ea81172c4bf3 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libstd/panicking.rs:276 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libstd/panic.rs:388 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/libstd/thread/mod.rs:468 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/liballoc/boxed.rs:734 [INFO] [stdout] 21: 0x5570938f4ded - std::sys::unix::thread::Thread::new::thread_start::h60ff5f253b4125d5 [INFO] [stdout] at /rustc/c1c3c4e95b69dfeaca5c5db6c622d7f90ad30a54/src/liballoc/boxed.rs:744 [INFO] [stdout] at src/libstd/sys_common/thread.rs:14 [INFO] [stdout] at src/libstd/sys/unix/thread.rs:81 [INFO] [stdout] 22: 0x7f46d1654493 - start_thread [INFO] [stdout] 23: 0x7f46d117face - __clone [INFO] [stdout] 24: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] integration_test [INFO] [stdout] [INFO] [stdout] test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '--test integration_test' [INFO] running `"docker" "inspect" "5cf798288f197ec17a34fa6169882ce5adab070367ea150c897e96e1b8d266f3"` [INFO] running `"docker" "rm" "-f" "5cf798288f197ec17a34fa6169882ce5adab070367ea150c897e96e1b8d266f3"` [INFO] [stdout] 5cf798288f197ec17a34fa6169882ce5adab070367ea150c897e96e1b8d266f3