[INFO] updating cached repository https://github.com/patcoll/adventofcode2019rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune", kill_on_drop: false }` [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f82a38f3b068bf3fc2ef02784386dd7d722f4e53 [INFO] testing patcoll/adventofcode2019rust against master#8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e for pr-74409 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpatcoll%2Fadventofcode2019rust" "/workspace/builds/worker-11/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-11/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/patcoll/adventofcode2019rust on toolchain 8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/patcoll/adventofcode2019rust [INFO] finished tweaking git repo https://github.com/patcoll/adventofcode2019rust [INFO] tweaked toml for git repo https://github.com/patcoll/adventofcode2019rust written to /workspace/builds/worker-11/source/Cargo.toml [INFO] crate git repo https://github.com/patcoll/adventofcode2019rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7d31cf7ba74b95f8518afe04e885dc89993d637c6595e6ced80d881f577951d8 [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" "7d31cf7ba74b95f8518afe04e885dc89993d637c6595e6ced80d881f577951d8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7d31cf7ba74b95f8518afe04e885dc89993d637c6595e6ced80d881f577951d8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7d31cf7ba74b95f8518afe04e885dc89993d637c6595e6ced80d881f577951d8", kill_on_drop: false }` [INFO] [stdout] 7d31cf7ba74b95f8518afe04e885dc89993d637c6595e6ced80d881f577951d8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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=forbid" "-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@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 667bd9c8773fa60eaabdaa3205d3751d928e810298a79a993e785ab747a1edb0 [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" "667bd9c8773fa60eaabdaa3205d3751d928e810298a79a993e785ab747a1edb0", kill_on_drop: false }` [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling num-traits v0.2.10 [INFO] [stderr] Compiling num-integer v0.1.41 [INFO] [stderr] Compiling num-bigint v0.2.4 [INFO] [stderr] Compiling num-complex v0.2.3 [INFO] [stderr] Compiling num-iter v0.1.39 [INFO] [stderr] Compiling num-rational v0.2.2 [INFO] [stderr] Compiling itertools v0.8.2 [INFO] [stderr] Compiling num_cpus v1.11.1 [INFO] [stderr] Compiling crossbeam-utils v0.7.0 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling crossbeam-queue v0.2.0 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling memoffset v0.5.3 [INFO] [stderr] Compiling crossbeam-epoch v0.8.0 [INFO] [stderr] Compiling crossbeam-deque v0.7.2 [INFO] [stderr] Compiling rayon-core v1.6.1 [INFO] [stderr] Compiling rayon v1.2.1 [INFO] [stderr] Compiling num v0.2.0 [INFO] [stderr] Compiling adventofcode2019rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/code.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | (start_vec[0]..=end_vec[0]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/code.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | (1..=9) [INFO] [stdout] | ^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 34.21s [INFO] running `Command { std: "docker" "inspect" "667bd9c8773fa60eaabdaa3205d3751d928e810298a79a993e785ab747a1edb0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "667bd9c8773fa60eaabdaa3205d3751d928e810298a79a993e785ab747a1edb0", kill_on_drop: false }` [INFO] [stdout] 667bd9c8773fa60eaabdaa3205d3751d928e810298a79a993e785ab747a1edb0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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=forbid" "-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@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9fb094c67c6bdddd634ffe9930854b69d5699329dc973d652a82449736fb583e [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" "9fb094c67c6bdddd634ffe9930854b69d5699329dc973d652a82449736fb583e", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling adventofcode2019rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/code.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | (start_vec[0]..=end_vec[0]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/code.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | (1..=9) [INFO] [stdout] | ^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/code.rs:76:9 [INFO] [stdout] | [INFO] [stdout] 76 | (start_vec[0]..=end_vec[0]) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/code.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | (1..=9) [INFO] [stdout] | ^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 12.77s [INFO] running `Command { std: "docker" "inspect" "9fb094c67c6bdddd634ffe9930854b69d5699329dc973d652a82449736fb583e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9fb094c67c6bdddd634ffe9930854b69d5699329dc973d652a82449736fb583e", kill_on_drop: false }` [INFO] [stdout] 9fb094c67c6bdddd634ffe9930854b69d5699329dc973d652a82449736fb583e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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=forbid" "-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@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+8534be72fc3b9c5f2f2dc4e4ee7b651a008e9a3e" "test" "--frozen", 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] 62d57b1d38ebbcc904f7d43067388a95226dfa6239e86cfbb075acccd869b77a [INFO] running `Command { std: "docker" "start" "-a" "62d57b1d38ebbcc904f7d43067388a95226dfa6239e86cfbb075acccd869b77a", kill_on_drop: false }` [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/code.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | (start_vec[0]..=end_vec[0]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/code.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | (1..=9) [INFO] [stderr] | ^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/code.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | (start_vec[0]..=end_vec[0]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> src/code.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | (1..=9) [INFO] [stderr] | ^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.46s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/adventofcode2019rust-58477bd47fa7dd2c [INFO] [stdout] [INFO] [stdout] running 81 tests [INFO] [stdout] test asteroids::test::test_can_see ... ok [INFO] [stdout] test asteroids::test::test_derive_full_path ... ok [INFO] [stdout] test asteroids::test::test_derive_full_path_invalid_coordinate ... ok [INFO] [stdout] test asteroids::test::test_derive_full_path_div_zero ... ok [INFO] [stdout] test asteroids::test::test_can_see_upwards ... ok [INFO] [stdout] test asteroids::test::test_derive_full_path_with_gaps ... ok [INFO] [stdout] test asteroids::test::test_derive_full_path_with_test_data ... ok [INFO] [stdout] test asteroids::test::test_obliteration_order_biggest_count ... ignored [INFO] [stdout] test asteroids::test::test_region ... ok [INFO] [stdout] test asteroids::test::test_max_visible_from_count ... ok [INFO] [stdout] test asteroids::test::test_slope ... ok [INFO] [stdout] test code::test::test_is_candidate ... ok [INFO] [stdout] test asteroids::test::test_max_visible_from_count_bigger_2 ... ok [INFO] [stdout] test asteroids::test::test_max_visible_from_count_bigger_3 ... ok [INFO] [stdout] test asteroids::test::test_to_cartesian ... ok [INFO] [stdout] test asteroids::test::test_visible_from ... ok [INFO] [stdout] test code::test::test_is_candidate_with_one_dup ... ok [INFO] [stdout] test asteroids::test::test_max_visible_from_count_bigger_1 ... ok [INFO] [stdout] test fuel::test::test_fuel_needed_for_mass ... ok [INFO] [stdout] test grid::test::test_default_coordinate ... ok [INFO] [stdout] test fuel::test::test_total_fuel_needed_for_mass ... ok [INFO] [stdout] test grid::test::test_grid_origin ... ok [INFO] [stdout] test grid::test::test_route_from_text ... ok [INFO] [stdout] test grid::test::test_grid_intersection ... ok [INFO] [stdout] test grid::test::test_path_from_text ... ok [INFO] [stdout] test grid::test::test_grid_intersection_shortest_path ... ok [INFO] [stdout] test orbits::test::test_orbit_new ... ok [INFO] [stdout] test program::test::test_adjust_relative_base ... ok [INFO] [stdout] test orbits::test::test_get_path ... ok [INFO] [stdout] test orbits::test::test_count_indirect_objects ... ok [INFO] [stdout] test orbits::test::test_universe_from ... ok [INFO] [stdout] test program::test::test_jump_if_false ... ok [INFO] [stdout] test program::test::test_expandable_memory ... ok [INFO] [stdout] test program::test::test_equals ... ok [INFO] [stdout] test program::test::test_less_than ... ok [INFO] [stdout] test program::test::test_new_instructions_integration ... ok [INFO] [stdout] test program::test::test_large_numbers ... ok [INFO] [stdout] test program::test::test_large_numbers_2 ... ok [INFO] [stdout] test program::test::test_phase_settings ... ok [INFO] [stdout] test program::test::test_program_instruction ... ok [INFO] [stdout] test program::test::test_run_program_with_inputs ... ok [INFO] [stdout] test program::test::test_run_program ... ok [INFO] [stdout] test code::test::test_find_candidates_with_one_dup ... ok [INFO] [stdout] test program::test::test_relative_mode ... ok [INFO] [stdout] test sif::test::test_parse_source ... ok [INFO] [stdout] test sif::test::test_visible ... ok [INFO] [stdout] test sif::test::test_print ... ok [INFO] [stdout] test program::test::test_jump_if_true ... ok [INFO] [stdout] test test::test_day_01 ... ok [INFO] [stdout] test test::test_day_01_part_2 ... ok [INFO] [stdout] test test::test_day_04 ... ignored [INFO] [stdout] test test::test_day_02 ... ok [INFO] [stdout] test test::test_day_04_part_2 ... ignored [INFO] [stdout] test sif::test::test_count_digits ... ok [INFO] [stdout] test code::test::test_find_candidates_with_one_dup2 ... ok [INFO] [stdout] test code::test::test_find_candidates2 ... ok [INFO] [stdout] test test::test_day_06 ... ignored [INFO] [stdout] test test::test_day_05_part_2 ... ok [INFO] [stdout] test test::test_day_02_with_noun_and_verb ... ok [INFO] [stdout] test test::test_day_05 ... ok [INFO] [stdout] test code::test::test_find_candidates ... ok [INFO] [stdout] test test::test_day_08 ... ok [INFO] [stdout] test test::test_day_09 ... ok [INFO] [stdout] test test::test_day_09_part_2 ... ignored [INFO] [stdout] test test::test_day_07 ... ok [INFO] [stdout] test test::test_day_06_part_2 ... ok [INFO] [stdout] test test::test_day_04_part_2_alternate ... ok [INFO] [stdout] test test::test_day_02_part_2 ... ok [INFO] [stdout] test test::test_day_08_part_2 ... ok [INFO] [stdout] test test::test_day_04_alternate ... ok [INFO] [stdout] test code::test::test_is_candidate2 ... ok [INFO] [stdout] test program::test::test_find_best_phase_settings ... ok [INFO] [stdout] test code::test::test_is_candidate_with_one_dup2 ... ok [INFO] [stdout] test test::test_day_07_part_2 ... ok [INFO] [stdout] test asteroids::test::test_obliteration_order_biggest_200th ... ok [INFO] [stdout] test test::test_day_03 ... ok [INFO] [stdout] test asteroids::test::test_max_visible_from_count_biggest ... ok [INFO] [stdout] test test::test_day_03_part_2 ... ok [INFO] [stdout] test test::test_day_10_part_2 ... ok [INFO] [stdout] test test::test_day_10 ... ok [INFO] [stderr] Doc-tests adventofcode2019rust [INFO] [stdout] test program::test::test_find_best_phase_settings_in_feedback_loop_mode ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 76 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> /opt/rustwide/workdir/src/code.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | (start_vec[0]..=end_vec[0]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around block return value [INFO] [stderr] --> /opt/rustwide/workdir/src/code.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | (1..=9) [INFO] [stderr] | ^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [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] running `Command { std: "docker" "inspect" "62d57b1d38ebbcc904f7d43067388a95226dfa6239e86cfbb075acccd869b77a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "62d57b1d38ebbcc904f7d43067388a95226dfa6239e86cfbb075acccd869b77a", kill_on_drop: false }` [INFO] [stdout] 62d57b1d38ebbcc904f7d43067388a95226dfa6239e86cfbb075acccd869b77a