[INFO] crate cpython 0.5.0 is already in cache [INFO] testing cpython-0.5.0 against beta-2020-06-03 for beta-1.45-1 [INFO] extracting crate cpython 0.5.0 into /workspace/builds/worker-9/source [INFO] validating manifest of crates.io crate cpython 0.5.0 on toolchain beta-2020-06-03 [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking crates.io crate cpython 0.5.0 [INFO] finished tweaking crates.io crate cpython 0.5.0 [INFO] tweaked toml for crates.io crate cpython 0.5.0 written to /workspace/builds/worker-9/source/Cargo.toml [INFO] crate crates.io crate cpython 0.5.0 already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 940f909fddd372daf3c31c0059220eef896507705e187aa30a5d09cebcdaab9d [INFO] running `"docker" "start" "-a" "940f909fddd372daf3c31c0059220eef896507705e187aa30a5d09cebcdaab9d"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling proc-macro2 v1.0.10 [INFO] [stderr] Compiling regex-syntax v0.6.17 [INFO] [stderr] Compiling syn v1.0.17 [INFO] [stderr] Compiling libc v0.2.68 [INFO] [stderr] Compiling proc-macro-hack v0.5.15 [INFO] [stderr] Compiling cpython v0.5.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling num-traits v0.2.11 [INFO] [stderr] Compiling quote v1.0.3 [INFO] [stderr] Compiling regex v1.3.6 [INFO] [stderr] Compiling paste-impl v0.1.10 [INFO] [stderr] Compiling paste v0.1.10 [INFO] [stderr] Compiling python3-sys v0.5.0 [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 28.87s [INFO] running `"docker" "inspect" "940f909fddd372daf3c31c0059220eef896507705e187aa30a5d09cebcdaab9d"` [INFO] running `"docker" "rm" "-f" "940f909fddd372daf3c31c0059220eef896507705e187aa30a5d09cebcdaab9d"` [INFO] [stdout] 940f909fddd372daf3c31c0059220eef896507705e187aa30a5d09cebcdaab9d [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen" "--no-run"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] b86a49ba6156980dc0f56556433c3229f25c0cd4185a85a6689c5a07590c581f [INFO] running `"docker" "start" "-a" "b86a49ba6156980dc0f56556433c3229f25c0cd4185a85a6689c5a07590c581f"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling cpython v0.5.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unnecessary braces around block return value [INFO] [stderr] --> /opt/rustwide/workdir/src/argparse.rs:431:52 [INFO] [stderr] | [INFO] [stderr] 431 | ( $py:expr, $iter:expr, $body:block, [] ) => { $body }; [INFO] [stderr] | ^^^^^ help: remove these braces [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_braces)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary braces around block return value [INFO] [stderr] --> /opt/rustwide/workdir/src/argparse.rs:431:52 [INFO] [stderr] | [INFO] [stderr] 431 | ( $py:expr, $iter:expr, $body:block, [] ) => { $body }; [INFO] [stderr] | ^^^^^ help: remove these braces [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_braces)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 9.97s [INFO] running `"docker" "inspect" "b86a49ba6156980dc0f56556433c3229f25c0cd4185a85a6689c5a07590c581f"` [INFO] running `"docker" "rm" "-f" "b86a49ba6156980dc0f56556433c3229f25c0cd4185a85a6689c5a07590c581f"` [INFO] [stdout] b86a49ba6156980dc0f56556433c3229f25c0cd4185a85a6689c5a07590c581f [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 8608ea351d28f520c2844aa3c0c58060b2aac065a1b996a9f6c162d4688b2a5f [INFO] running `"docker" "start" "-a" "8608ea351d28f520c2844aa3c0c58060b2aac065a1b996a9f6c162d4688b2a5f"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] warning: unnecessary braces around block return value [INFO] [stderr] --> /opt/rustwide/workdir/src/argparse.rs:431:52 [INFO] [stderr] | [INFO] [stderr] 431 | ( $py:expr, $iter:expr, $body:block, [] ) => { $body }; [INFO] [stderr] | ^^^^^ help: remove these braces [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_braces)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: unnecessary braces around block return value [INFO] [stderr] --> /opt/rustwide/workdir/src/argparse.rs:431:52 [INFO] [stderr] | [INFO] [stderr] 431 | ( $py:expr, $iter:expr, $body:block, [] ) => { $body }; [INFO] [stderr] | ^^^^^ help: remove these braces [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_braces)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/cpython-db44acd890026285 [INFO] [stdout] [INFO] [stdout] running 88 tests [INFO] [stdout] test buffer::test::test_compatible_size ... ok [INFO] [stdout] test objectprotocol::test::test_display_string ... ok [INFO] [stdout] test argparse::test::test_default_value ... ok [INFO] [stdout] test buffer::test::test_bytes_buffer ... ok [INFO] [stdout] test argparse::test::test_parse ... ok [INFO] [stdout] test buffer::test::test_array_buffer ... ok [INFO] [stdout] test objectprotocol::test::test_compare ... ok [INFO] [stdout] test objects::boolobject::test::test_false ... ok [INFO] [stdout] test objects::dict::test::test_del_item ... ok [INFO] [stdout] test objectprotocol::test::test_debug_string ... ok [INFO] [stdout] test argparse::test::test_default_param_type ... ok [INFO] [stdout] test objects::dict::test::test_del_item_does_not_update_original_object ... ok [INFO] [stdout] test objects::dict::test::test_items ... ok [INFO] [stdout] test objects::boolobject::test::test_true ... ok [INFO] [stdout] test objects::dict::test::test_get_item ... ok [INFO] [stdout] test err::tests::set_typeerror ... ok [INFO] [stdout] test objects::dict::test::test_contains ... ok [INFO] [stdout] test objects::dict::test::test_set_item ... ok [INFO] [stdout] test objects::dict::test::test_items_list ... ok [INFO] [stdout] test objects::list::test::test_extract ... ok [INFO] [stdout] test objects::list::test::test_insert ... ok [INFO] [stdout] test objects::list::test::test_len ... ok [INFO] [stdout] test objects::num::test::float_to_i64 ... ok [INFO] [stdout] test objects::list::test::test_set_item ... ok [INFO] [stdout] test objects::num::test::int_to_float ... ok [INFO] [stdout] test objects::num::test::test_i64_max ... ok [INFO] [stdout] test objects::num::test::test_i64_min ... ok [INFO] [stdout] test objects::num::test::float_to_u32 ... ok [INFO] [stdout] test objects::num::test::float_to_u64 ... ok [INFO] [stdout] test objects::num::test::test_u64_max ... ok [INFO] [stdout] test objects::num::test::to_from_f32 ... ok [INFO] [stdout] test objects::num::test::to_from_i16 ... ok [INFO] [stdout] test objects::list::test::test_append ... ok [INFO] [stdout] test objects::num::test::to_from_i64 ... ok [INFO] [stdout] test objects::num::test::to_from_isize ... ok [INFO] [stdout] test objects::num::test::to_from_u16 ... ok [INFO] [stdout] test objects::num::test::to_from_u32 ... ok [INFO] [stdout] test objects::num::test::to_from_u64 ... ok [INFO] [stdout] test objects::num::test::to_from_u8 ... ok [INFO] [stdout] test objects::num::test::to_from_usize ... ok [INFO] [stdout] test objects::object::test_sizeof ... ok [INFO] [stdout] test objects::iterator::tests::vec_iter ... ok [INFO] [stdout] test objects::sequence::test::test_extract_bytearray_to_vec ... ok [INFO] [stdout] test objects::sequence::test::test_extract_range_to_vec ... ok [INFO] [stdout] test objects::sequence::test::test_extract_tuple_to_vec ... ok [INFO] [stdout] test objects::sequence::test::test_list_coercion ... ok [INFO] [stdout] test objects::sequence::test::test_lists_coerce_to_tuples ... ok [INFO] [stdout] test objects::sequence::test::test_numbers_are_not_sequences ... ok [INFO] [stdout] test objects::sequence::test::test_seq_concat ... ok [INFO] [stdout] test objects::sequence::test::test_seq_concat_string ... ok [INFO] [stdout] test objects::sequence::test::test_seq_contains ... ok [INFO] [stdout] test objects::sequence::test::test_seq_count ... ok [INFO] [stdout] test objects::sequence::test::test_seq_del_item ... ok [INFO] [stdout] test objects::sequence::test::test_seq_empty ... ok [INFO] [stdout] test objects::sequence::test::test_seq_get_item ... ok [INFO] [stdout] test objects::dict::test::test_len ... ok [INFO] [stdout] test objects::list::test::test_iter ... ok [INFO] [stdout] test objects::num::test::test_u32_max ... ok [INFO] [stdout] test objects::num::test::float_to_i32 ... ok [INFO] [stdout] test objects::dict::test::test_set_item_does_not_update_original_object ... ok [INFO] [stdout] test objects::sequence::test::test_seq_index ... ok [INFO] [stdout] test objects::sequence::test::test_seq_repeat ... ok [INFO] [stdout] test objects::num::test::to_from_f64 ... ok [INFO] [stdout] test objects::sequence::test::test_strings_are_sequences ... ok [INFO] [stdout] test objects::sequence::test::test_seq_iter ... ok [INFO] [stdout] test objects::sequence::test::test_seq_strings ... ok [INFO] [stdout] test objects::sequence::test::test_strings_coerce_to_lists ... ok [INFO] [stdout] test objects::num::test::to_from_i32 ... ok [INFO] [stdout] test objects::num::test::to_from_i8 ... ok [INFO] [stdout] test objects::list::test::test_get_item ... ok [INFO] [stdout] test objects::set::test::test_add ... ok [INFO] [stdout] test objects::set::test::test_add_does_not_update_original_object ... ok [INFO] [stdout] test objects::set::test::test_contains ... ok [INFO] [stdout] test objects::set::test::test_discard ... ok [INFO] [stdout] test objects::set::test::test_pop ... ok [INFO] [stdout] test objects::set::test::test_len ... ok [INFO] [stdout] test objects::sequence::test::test_tuple_coercion ... ok [INFO] [stdout] test objects::string::test::test_extract_str ... ok [INFO] [stdout] test python::test::test_eval ... ok [INFO] [stdout] test objects::tests::test_hashmap_to_python ... ok [INFO] [stdout] test objects::set::test::test_pop_does_not_update_original_object ... ok [INFO] [stdout] test objects::set::test::test_btree_set ... ok [INFO] [stdout] test objects::tuple::test::test_len ... ok [INFO] [stdout] test objects::string::test::test_non_bmp ... ok [INFO] [stdout] test objects::set::test::test_discard_does_not_update_original_object ... ok [INFO] [stdout] test objects::set::test::test_clear ... ok [INFO] [stdout] test objects::string::test::test_extract_byte_str ... ok [INFO] [stdout] test objects::tests::test_btreemap_to_python ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 88 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/test_class-05374b1a9b88defe [INFO] [stdout] [INFO] [stdout] running 41 tests [INFO] [stdout] test empty_class_with_new ... ok [INFO] [stdout] test empty_class_in_module ... ok [INFO] [stdout] test callable ... ok [INFO] [stdout] test contains ... ok [INFO] [stdout] test delitem ... ok [INFO] [stdout] test context_manager ... ok [INFO] [stdout] test class_method_with_args ... ok [INFO] [stdout] test empty_class ... ok [INFO] [stdout] test gc_integration ... ok [INFO] [stdout] test instance_method ... ok [INFO] [stdout] test class_method ... ok [INFO] [stdout] test contains_ref ... ok [INFO] [stdout] test contains_opt_ref ... ok [INFO] [stdout] test instance_method_with_args ... ok [INFO] [stdout] test len ... ok [INFO] [stdout] test new_with_one_arg ... ok [INFO] [stdout] test reversed ... ok [INFO] [stdout] test rich_comparisons_python_3_type_error ... ok [INFO] [stdout] test iterator ... ok [INFO] [stdout] test rich_comparisons ... ok [INFO] [stdout] test data_is_dropped ... ok [INFO] [stdout] test comparisons ... ok [INFO] [stdout] test inplace_operations_ref ... ok [INFO] [stdout] test properties ... ok [INFO] [stdout] test rich_comparisons_ref ... ok [INFO] [stdout] test new_with_two_args ... ok [INFO] [stdout] test setitem_ref ... ok [INFO] [stdout] test static_data ... ok [INFO] [stdout] test setitem ... ok [INFO] [stdout] test python3_string_methods ... ok [INFO] [stdout] test setdelitem ... ok [INFO] [stdout] test inplace_operations ... ok [INFO] [stdout] test rich_comparisons_opt_ref ... ok [INFO] [stdout] test sequence ... ok [INFO] [stdout] test static_method_with_args ... ok [INFO] [stdout] test sequence_ref ... ok [INFO] [stdout] test static_method ... ok [INFO] [stdout] test setitem_opt_ref ... ok [INFO] [stdout] test string_methods ... ok [INFO] [stdout] test binary_arithmetic ... ok [INFO] [stdout] test unary_arithmetic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/test_function-2fd767ceec6c4a93 [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test one_arg ... ok [INFO] [stdout] test no_args ... ok [INFO] [stderr] Running /opt/rustwide/target/debug/deps/test_sharedref-24dce01751c8c4eb [INFO] [stdout] test inline_two_args ... ok [INFO] [stdout] test opt_args ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test test_leaked_borrow_after_mut ... ok [INFO] [stdout] test test_try_borrow_while_borrow_mut ... ok [INFO] [stdout] test test_borrow_mut_while_borrow ... ok [INFO] [stdout] test test_leaked_borrow ... ok [INFO] [stdout] test test_leaked_borrow_mut ... ok [INFO] [stdout] test test_try_borrow_mut_while_leaked_ref_mut ... ok [INFO] [stdout] test test_try_leak_while_borrow_mut ... ok [INFO] [stdout] test test_borrow_while_borrow_mut ... ok [INFO] [stdout] test test_try_borrow_mut_while_leaked_ref ... ok [INFO] [stdout] test test_try_borrow_mut_while_borrow ... ok [INFO] [stdout] test test_leaked_map_after_mut ... ok [INFO] [stdout] test test_leaked_borrow_mut_after_mut ... ok [INFO] [stdout] test test_leak_while_borrow_mut ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Doc-tests cpython [INFO] [stdout] [INFO] [stdout] running 32 tests [INFO] [stdout] test src/lib.rs - (line 51) ... ignored [INFO] [stdout] test src/objectprotocol.rs - objectprotocol::ObjectProtocol::compare (line 87) ... ignored [INFO] [stdout] test src/objects/capsule.rs - py_capsule (line 201) ... ignored [INFO] [stdout] test src/objects/capsule.rs - py_capsule (line 210) ... ignored [INFO] [stdout] test src/objects/capsule.rs - py_capsule_fn (line 386) ... ignored [INFO] [stdout] test src/objects/capsule.rs - py_capsule_fn (line 397) ... ignored [INFO] [stdout] test src/objectprotocol.rs - objectprotocol::ObjectProtocol::call_method (line 231) ... ok [INFO] [stdout] test src/py_class/py_class.rs - py_class (line 117) ... ignored [INFO] [stdout] test src/py_class/py_class.rs - py_class (line 131) ... ignored [INFO] [stdout] test src/objects/capsule.rs - objects::capsule::PyCapsule::new (line 569) ... ok [INFO] [stdout] test src/objects/module.rs - objects::module::PyModule::call (line 115) ... ok [INFO] [stdout] test src/objects/capsule.rs - objects::capsule::PyCapsule (line 165) ... ok [INFO] [stdout] test src/py_class/py_class.rs - py_class (line 61) ... ignored [INFO] [stdout] test src/objects/capsule.rs - py_capsule (line 317) ... ok [INFO] [stdout] test src/objects/capsule.rs - objects::capsule::PyCapsule (line 133) ... ok [INFO] [stdout] test src/sharedref.rs - sharedref::PySharedRef (line 104) ... ignored [INFO] [stdout] test src/objects/tuple.rs - objects::tuple::NoArgs (line 206) ... ok [INFO] [stdout] test src/sharedref.rs - sharedref::UnsafePyLeaked (line 310) ... ignored [INFO] [stdout] test src/sharedref.rs - sharedref::UnsafePyLeaked (line 315) ... ignored [INFO] [stdout] test src/lib.rs - (line 66) ... ok [INFO] [stdout] test src/objects/capsule.rs - py_capsule_fn (line 462) ... ok [INFO] [stdout] test src/objects/capsule.rs - objects::capsule::PyCapsule (line 34) ... ok [INFO] [stdout] test src/objects/capsule.rs - py_capsule_fn (line 418) ... ok [INFO] [stdout] test src/py_class/py_class.rs - py_class (line 222) ... ok [INFO] [stdout] test src/objects/capsule.rs - py_capsule (line 232) ... ok [INFO] [stdout] test src/py_class/py_class.rs - py_class (line 274) ... ok [INFO] [stdout] test src/err.rs - py_exception (line 43) ... ok [INFO] [stdout] test src/function.rs - py_fn (line 100) ... ok [INFO] [stdout] test src/pythonrun.rs - pythonrun::GILGuard (line 87) ... ok [INFO] [stdout] test src/pythonrun.rs - pythonrun::GILProtected (line 136) ... ok [INFO] [stdout] test src/py_class/py_class.rs - py_class (line 34) ... ok [INFO] [stdout] test src/sharedref.rs - sharedref::PySharedRefCell (line 41) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 20 passed; 0 failed; 12 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "8608ea351d28f520c2844aa3c0c58060b2aac065a1b996a9f6c162d4688b2a5f"` [INFO] running `"docker" "rm" "-f" "8608ea351d28f520c2844aa3c0c58060b2aac065a1b996a9f6c162d4688b2a5f"` [INFO] [stdout] 8608ea351d28f520c2844aa3c0c58060b2aac065a1b996a9f6c162d4688b2a5f