[INFO] cloning repository https://github.com/e-matteson/pipit-keyboard [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/e-matteson/pipit-keyboard" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fe-matteson%2Fpipit-keyboard", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fe-matteson%2Fpipit-keyboard'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bab99f78186f922d301cf9eed4a1c59fceeee161 [INFO] testing e-matteson/pipit-keyboard against try#8262275854dc0e5381c9d42d56257d94932c5a87 for pr-90799 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fe-matteson%2Fpipit-keyboard" "/workspace/builds/worker-6/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/e-matteson/pipit-keyboard on toolchain 8262275854dc0e5381c9d42d56257d94932c5a87 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8262275854dc0e5381c9d42d56257d94932c5a87" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/e-matteson/pipit-keyboard [INFO] finished tweaking git repo https://github.com/e-matteson/pipit-keyboard [INFO] tweaked toml for git repo https://github.com/e-matteson/pipit-keyboard written to /workspace/builds/worker-6/source/Cargo.toml [INFO] crate git repo https://github.com/e-matteson/pipit-keyboard already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8262275854dc0e5381c9d42d56257d94932c5a87" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded natord v1.0.9 [INFO] [stderr] Downloaded enum-map v0.6.2 [INFO] [stderr] Downloaded bit-vec v0.5.0 [INFO] [stderr] Downloaded enumset_derive v0.4.3 [INFO] [stderr] Downloaded enumset v0.4.4 [INFO] [stderr] Downloaded enum-map-derive v0.4.3 [INFO] [stderr] Downloaded stable_deref_trait v1.1.0 [INFO] [stderr] Downloaded toml v0.5.5 [INFO] [stderr] Downloaded cursive v0.13.0 [INFO] [stderr] Downloaded array-macro v1.0.4 [INFO] [stderr] Downloaded svg v0.5.11 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "+8262275854dc0e5381c9d42d56257d94932c5a87" "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] 6a3105056a19b164d358d7f43048f254616cfb0b730f097af929478c8821385a [INFO] running `Command { std: "docker" "start" "-a" "6a3105056a19b164d358d7f43048f254616cfb0b730f097af929478c8821385a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6a3105056a19b164d358d7f43048f254616cfb0b730f097af929478c8821385a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6a3105056a19b164d358d7f43048f254616cfb0b730f097af929478c8821385a", kill_on_drop: false }` [INFO] [stdout] 6a3105056a19b164d358d7f43048f254616cfb0b730f097af929478c8821385a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "+8262275854dc0e5381c9d42d56257d94932c5a87" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 754595d83d4eebadeb41a45180eb24688d358889f7e6f15a638a395460ee4027 [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" "754595d83d4eebadeb41a45180eb24688d358889f7e6f15a638a395460ee4027", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.6 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling syn v1.0.11 [INFO] [stderr] Compiling fnv v1.0.6 [INFO] [stderr] Compiling cfg-if v0.1.10 [INFO] [stderr] Compiling num-iter v0.1.37 [INFO] [stderr] Compiling cc v1.0.48 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling log v0.4.8 [INFO] [stderr] Compiling arc-swap v0.4.4 [INFO] [stderr] Compiling stable_deref_trait v1.1.0 [INFO] [stderr] Compiling array-macro v1.0.4 [INFO] [stderr] Compiling hashbrown v0.5.0 [INFO] [stderr] Compiling either v1.5.0 [INFO] [stderr] Compiling maplit v1.0.1 [INFO] [stderr] Compiling natord v1.0.9 [INFO] [stderr] Compiling svg v0.5.11 [INFO] [stderr] Compiling bit-vec v0.5.0 [INFO] [stderr] Compiling num-traits v0.2.10 [INFO] [stderr] Compiling num-rational v0.2.2 [INFO] [stderr] Compiling num-complex v0.2.3 [INFO] [stderr] Compiling owning_ref v0.4.0 [INFO] [stderr] Compiling itertools v0.7.8 [INFO] [stderr] Compiling proc-macro2 v0.4.6 [INFO] [stderr] Compiling crossbeam-utils v0.6.6 [INFO] [stderr] Compiling time v0.1.40 [INFO] [stderr] Compiling signal-hook-registry v1.2.0 [INFO] [stderr] Compiling term_size v0.3.1 [INFO] [stderr] Compiling atty v0.2.10 [INFO] [stderr] Compiling toml v0.5.5 [INFO] [stderr] Compiling serde_yaml v0.7.5 [INFO] [stderr] Compiling clap v2.32.0 [INFO] [stderr] Compiling signal-hook v0.1.12 [INFO] [stderr] Compiling quote v0.6.3 [INFO] [stderr] Compiling crossbeam-channel v0.3.9 [INFO] [stderr] Compiling syn v0.14.4 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Compiling ncurses v5.99.0 [INFO] [stderr] Compiling num-integer v0.1.39 [INFO] [stderr] Compiling chrono v0.4.10 [INFO] [stderr] Compiling num v0.2.0 [INFO] [stderr] Compiling serde_derive v1.0.69 [INFO] [stderr] Compiling darling_core v0.10.2 [INFO] [stderr] Compiling enum-map-derive v0.4.3 [INFO] [stderr] Compiling enum-map v0.6.2 [INFO] [stderr] Compiling darling_macro v0.10.2 [INFO] [stderr] Compiling darling v0.10.2 [INFO] [stderr] Compiling enumset_derive v0.4.3 [INFO] [stderr] Compiling enumset v0.4.4 [INFO] [stderr] Compiling cursive v0.13.0 [INFO] [stderr] Compiling pipit-keyboard v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/types/validate.rs:119:25 [INFO] [stdout] | [INFO] [stdout] 119 | / &self.$field.validate() [INFO] [stdout] 120 | | .with_context(|| [INFO] [stdout] 121 | | format!("Invalid value in: '{}'", stringify!($field)) [INFO] [stdout] 122 | | )?; [INFO] [stdout] | |______________________________^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] ::: src/types/user_options.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | / validated_struct! { [INFO] [stdout] 13 | | #[derive(Deserialize, Debug)] [INFO] [stdout] 14 | | #[serde(deny_unknown_fields)] [INFO] [stdout] 15 | | pub struct UserOptions { [INFO] [stdout] ... | [INFO] [stdout] 40 | | } [INFO] [stdout] 41 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this warning originates in the macro `validated_struct` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 119 | let _ = &self.$field.validate() [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/types/validate.rs:119:25 [INFO] [stdout] | [INFO] [stdout] 119 | / &self.$field.validate() [INFO] [stdout] 120 | | .with_context(|| [INFO] [stdout] 121 | | format!("Invalid value in: '{}'", stringify!($field)) [INFO] [stdout] 122 | | )?; [INFO] [stdout] | |______________________________^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] ::: src/input/settings.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | / validated_struct! { [INFO] [stdout] 13 | | #[derive(Deserialize, Debug)] [INFO] [stdout] 14 | | #[serde(deny_unknown_fields)] [INFO] [stdout] 15 | | pub struct Settings { [INFO] [stdout] ... | [INFO] [stdout] 27 | | } [INFO] [stdout] 28 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `validated_struct` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 119 | let _ = &self.$field.validate() [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 44s [INFO] running `Command { std: "docker" "inspect" "754595d83d4eebadeb41a45180eb24688d358889f7e6f15a638a395460ee4027", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "754595d83d4eebadeb41a45180eb24688d358889f7e6f15a638a395460ee4027", kill_on_drop: false }` [INFO] [stdout] 754595d83d4eebadeb41a45180eb24688d358889f7e6f15a638a395460ee4027 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "+8262275854dc0e5381c9d42d56257d94932c5a87" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5d7607aff970a387a088b605c7e4b8745f632c03372bf0999b641b52fd234c83 [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" "5d7607aff970a387a088b605c7e4b8745f632c03372bf0999b641b52fd234c83", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling pipit-keyboard v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/types/validate.rs:119:25 [INFO] [stdout] | [INFO] [stdout] 119 | / &self.$field.validate() [INFO] [stdout] 120 | | .with_context(|| [INFO] [stdout] 121 | | format!("Invalid value in: '{}'", stringify!($field)) [INFO] [stdout] 122 | | )?; [INFO] [stdout] | |______________________________^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] ::: src/types/user_options.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | / validated_struct! { [INFO] [stdout] 13 | | #[derive(Deserialize, Debug)] [INFO] [stdout] 14 | | #[serde(deny_unknown_fields)] [INFO] [stdout] 15 | | pub struct UserOptions { [INFO] [stdout] ... | [INFO] [stdout] 40 | | } [INFO] [stdout] 41 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this warning originates in the macro `validated_struct` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 119 | let _ = &self.$field.validate() [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused borrow that must be used [INFO] [stdout] --> src/types/validate.rs:119:25 [INFO] [stdout] | [INFO] [stdout] 119 | / &self.$field.validate() [INFO] [stdout] 120 | | .with_context(|| [INFO] [stdout] 121 | | format!("Invalid value in: '{}'", stringify!($field)) [INFO] [stdout] 122 | | )?; [INFO] [stdout] | |______________________________^ the borrow produces a value [INFO] [stdout] | [INFO] [stdout] ::: src/input/settings.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | / validated_struct! { [INFO] [stdout] 13 | | #[derive(Deserialize, Debug)] [INFO] [stdout] 14 | | #[serde(deny_unknown_fields)] [INFO] [stdout] 15 | | pub struct Settings { [INFO] [stdout] ... | [INFO] [stdout] 27 | | } [INFO] [stdout] 28 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `validated_struct` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 119 | let _ = &self.$field.validate() [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 13.95s [INFO] running `Command { std: "docker" "inspect" "5d7607aff970a387a088b605c7e4b8745f632c03372bf0999b641b52fd234c83", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5d7607aff970a387a088b605c7e4b8745f632c03372bf0999b641b52fd234c83", kill_on_drop: false }` [INFO] [stdout] 5d7607aff970a387a088b605c7e4b8745f632c03372bf0999b641b52fd234c83 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "+8262275854dc0e5381c9d42d56257d94932c5a87" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] ad33d3b1d2027e3ff7d745072f21b25c25494a43351b57f8a60e091be4cbb43c [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" "ad33d3b1d2027e3ff7d745072f21b25c25494a43351b57f8a60e091be4cbb43c", kill_on_drop: false }` [INFO] [stderr] warning: unused borrow that must be used [INFO] [stderr] --> src/types/validate.rs:119:25 [INFO] [stderr] | [INFO] [stderr] 119 | / &self.$field.validate() [INFO] [stderr] 120 | | .with_context(|| [INFO] [stderr] 121 | | format!("Invalid value in: '{}'", stringify!($field)) [INFO] [stderr] 122 | | )?; [INFO] [stderr] | |______________________________^ the borrow produces a value [INFO] [stderr] | [INFO] [stderr] ::: src/types/user_options.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | / validated_struct! { [INFO] [stderr] 13 | | #[derive(Deserialize, Debug)] [INFO] [stderr] 14 | | #[serde(deny_unknown_fields)] [INFO] [stderr] 15 | | pub struct UserOptions { [INFO] [stderr] ... | [INFO] [stderr] 40 | | } [INFO] [stderr] 41 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this warning originates in the macro `validated_struct` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 119 | let _ = &self.$field.validate() [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: unused borrow that must be used [INFO] [stderr] --> src/types/validate.rs:119:25 [INFO] [stderr] | [INFO] [stderr] 119 | / &self.$field.validate() [INFO] [stderr] 120 | | .with_context(|| [INFO] [stderr] 121 | | format!("Invalid value in: '{}'", stringify!($field)) [INFO] [stderr] 122 | | )?; [INFO] [stderr] | |______________________________^ the borrow produces a value [INFO] [stderr] | [INFO] [stderr] ::: src/input/settings.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | / validated_struct! { [INFO] [stderr] 13 | | #[derive(Deserialize, Debug)] [INFO] [stderr] 14 | | #[serde(deny_unknown_fields)] [INFO] [stderr] 15 | | pub struct Settings { [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this warning originates in the macro `validated_struct` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 119 | let _ = &self.$field.validate() [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `pipit-keyboard` (bin "main" test) generated 2 warnings [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.15s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/main-6fc44e07df89c165) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test types::permutation::tests::test_permute_err_short ... ok [INFO] [stdout] test types::permutation::tests::test_permute_lengthen ... ok [INFO] [stdout] test types::permutation::tests::test_permute_reverse ... ok [INFO] [stdout] test types::permutation::tests::test_permute_identity ... ok [INFO] [stdout] test types::permutation::tests::test_permute_err_shorten ... ok [INFO] [stdout] test types::permutation::tests::test_permute_err_long ... ok [INFO] [stdout] test tests::chord22_output ... FAILED [INFO] [stderr] error: test failed, to rerun pass '--bin main' [INFO] [stdout] test tests::big_settings_output ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- tests::chord22_output stdout ---- [INFO] [stdout] thread 'tests::chord22_output' panicked at 'Failed to save configuration: Context { message: "Failed to open output file", cause: Io(Os { code: 2, kind: NotFound, message: "No such file or directory" }) }', src/tests/mod.rs:41:10 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x55b3f95697ec - std::backtrace_rs::backtrace::libunwind::trace::h793e05efd273d0f4 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 [INFO] [stdout] 1: 0x55b3f95697ec - std::backtrace_rs::backtrace::trace_unsynchronized::h640b7b86ff610c77 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x55b3f95697ec - std::sys_common::backtrace::_print_fmt::h362fa2a4f354f877 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:67:5 [INFO] [stdout] 3: 0x55b3f95697ec - ::fmt::hf439e5ed84c74abd [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:46:22 [INFO] [stdout] 4: 0x55b3f958e05c - core::fmt::write::h72801a82c94e6ff1 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/fmt/mod.rs:1149:17 [INFO] [stdout] 5: 0x55b3f9565365 - std::io::Write::write_fmt::h54337adeb3504c03 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/io/mod.rs:1697:15 [INFO] [stdout] 6: 0x55b3f956b240 - std::sys_common::backtrace::_print::hb29ddd998d02631c [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:49:5 [INFO] [stdout] 7: 0x55b3f956b240 - std::sys_common::backtrace::print::h81965e3d7c90fbb6 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:36:9 [INFO] [stdout] 8: 0x55b3f956b240 - std::panicking::default_hook::{{closure}}::h84db205ab6674b38 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:211:50 [INFO] [stdout] 9: 0x55b3f956ae26 - std::panicking::default_hook::h1bf8bb4159936bca [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:225:9 [INFO] [stdout] 10: 0x55b3f956b8f4 - std::panicking::rust_panic_with_hook::hf8e86850fbbd03b1 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:606:17 [INFO] [stdout] 11: 0x55b3f956b3d0 - std::panicking::begin_panic_handler::{{closure}}::h590a0d6060ff866e [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:502:13 [INFO] [stdout] 12: 0x55b3f9569ca4 - std::sys_common::backtrace::__rust_end_short_backtrace::h260b8bd1c848a03c [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:139:18 [INFO] [stdout] 13: 0x55b3f956b339 - rust_begin_unwind [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:498:5 [INFO] [stdout] 14: 0x55b3f9259971 - core::panicking::panic_fmt::h7b8580d81fcbbacd [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/panicking.rs:106:14 [INFO] [stdout] 15: 0x55b3f9259a63 - core::result::unwrap_failed::h885d3f7beb571353 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/result.rs:1613:5 [INFO] [stdout] 16: 0x55b3f936120c - core::result::Result::expect::hb734b20488c6cda3 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/result.rs:1255:23 [INFO] [stdout] 17: 0x55b3f943ac65 - main::tests::chord22_output::h1e31da160d2986c0 [INFO] [stdout] at /opt/rustwide/workdir/src/tests/mod.rs:39:5 [INFO] [stdout] 18: 0x55b3f943ab3a - main::tests::chord22_output::{{closure}}::h9ce3550a356ef28f [INFO] [stdout] at /opt/rustwide/workdir/src/tests/mod.rs:32:1 [INFO] [stdout] 19: 0x55b3f9370d1e - core::ops::function::FnOnce::call_once::h79027bf532026a1e [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 20: 0x55b3f94cda33 - core::ops::function::FnOnce::call_once::h24a32b9da1a40fdb [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 21: 0x55b3f94cda33 - test::__rust_begin_short_backtrace::h3c3a0492fb4a12eb [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/test/src/lib.rs:585:5 [INFO] [stdout] 22: 0x55b3f94cc647 - as core::ops::function::FnOnce>::call_once::h9a8e38435f73d5e0 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/alloc/src/boxed.rs:1694:9 [INFO] [stdout] 23: 0x55b3f94cc647 - as core::ops::function::FnOnce<()>>::call_once::hb23d7496a0e6d1b4 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 24: 0x55b3f94cc647 - std::panicking::try::do_call::ha2bb9825b32d2cc2 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:406:40 [INFO] [stdout] 25: 0x55b3f94cc647 - std::panicking::try::hdc38a574bbebc53e [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:370:19 [INFO] [stdout] 26: 0x55b3f94cc647 - std::panic::catch_unwind::hc45ed246595c621c [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panic.rs:133:14 [INFO] [stdout] 27: 0x55b3f94cc647 - test::run_test_in_process::h4249138faaea8d54 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/test/src/lib.rs:608:18 [INFO] [stdout] 28: 0x55b3f94cc647 - test::run_test::run_test_inner::{{closure}}::h3c1b37669f6e9fd7 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/test/src/lib.rs:500:39 [INFO] [stdout] 29: 0x55b3f94998ee - test::run_test::run_test_inner::{{closure}}::h388760469edd5c24 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/test/src/lib.rs:527:37 [INFO] [stdout] 30: 0x55b3f94998ee - std::sys_common::backtrace::__rust_begin_short_backtrace::hbbaecdcfad18643e [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:123:18 [INFO] [stdout] 31: 0x55b3f949e648 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h09cd3ca65896da91 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/thread/mod.rs:484:17 [INFO] [stdout] 32: 0x55b3f949e648 - as core::ops::function::FnOnce<()>>::call_once::hc52dbb4f9088d18b [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 33: 0x55b3f949e648 - std::panicking::try::do_call::h4485cfee22b11c08 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:406:40 [INFO] [stdout] 34: 0x55b3f949e648 - std::panicking::try::hb62aa8549e20c08b [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:370:19 [INFO] [stdout] 35: 0x55b3f949e648 - std::panic::catch_unwind::ha322c7a5bc666762 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panic.rs:133:14 [INFO] [stdout] 36: 0x55b3f949e648 - std::thread::Builder::spawn_unchecked::{{closure}}::h1076fc1398603b77 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/thread/mod.rs:483:30 [INFO] [stdout] 37: 0x55b3f949e648 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h911e510344167353 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 38: 0x55b3f95703c3 - as core::ops::function::FnOnce>::call_once::h771719d52c343434 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/alloc/src/boxed.rs:1694:9 [INFO] [stdout] 39: 0x55b3f95703c3 - as core::ops::function::FnOnce>::call_once::hf441746dfa4b0f57 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/alloc/src/boxed.rs:1694:9 [INFO] [stdout] 40: 0x55b3f95703c3 - std::sys::unix::thread::Thread::new::thread_start::hfd168f9d312b29ca [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys/unix/thread.rs:106:17 [INFO] [stdout] 41: 0x7fbda5953609 - start_thread [INFO] [stdout] 42: 0x7fbda5723293 - clone [INFO] [stdout] 43: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tests::big_settings_output stdout ---- [INFO] [stdout] thread 'tests::big_settings_output' panicked at 'Failed to save configuration: Context { message: "Failed to open output file", cause: Io(Os { code: 2, kind: NotFound, message: "No such file or directory" }) }', src/tests/mod.rs:26:10 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x55b3f95697ec - std::backtrace_rs::backtrace::libunwind::trace::h793e05efd273d0f4 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 [INFO] [stdout] 1: 0x55b3f95697ec - std::backtrace_rs::backtrace::trace_unsynchronized::h640b7b86ff610c77 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x55b3f95697ec - std::sys_common::backtrace::_print_fmt::h362fa2a4f354f877 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:67:5 [INFO] [stdout] 3: 0x55b3f95697ec - ::fmt::hf439e5ed84c74abd [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:46:22 [INFO] [stdout] 4: 0x55b3f958e05c - core::fmt::write::h72801a82c94e6ff1 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/fmt/mod.rs:1149:17 [INFO] [stdout] 5: 0x55b3f9565365 - std::io::Write::write_fmt::h54337adeb3504c03 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/io/mod.rs:1697:15 [INFO] [stdout] 6: 0x55b3f956b240 - std::sys_common::backtrace::_print::hb29ddd998d02631c [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:49:5 [INFO] [stdout] 7: 0x55b3f956b240 - std::sys_common::backtrace::print::h81965e3d7c90fbb6 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:36:9 [INFO] [stdout] 8: 0x55b3f956b240 - std::panicking::default_hook::{{closure}}::h84db205ab6674b38 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:211:50 [INFO] [stdout] 9: 0x55b3f956ae26 - std::panicking::default_hook::h1bf8bb4159936bca [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:225:9 [INFO] [stdout] 10: 0x55b3f956b8f4 - std::panicking::rust_panic_with_hook::hf8e86850fbbd03b1 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:606:17 [INFO] [stdout] 11: 0x55b3f956b3d0 - std::panicking::begin_panic_handler::{{closure}}::h590a0d6060ff866e [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:502:13 [INFO] [stdout] 12: 0x55b3f9569ca4 - std::sys_common::backtrace::__rust_end_short_backtrace::h260b8bd1c848a03c [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:139:18 [INFO] [stdout] 13: 0x55b3f956b339 - rust_begin_unwind [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:498:5 [INFO] [stdout] 14: 0x55b3f9259971 - core::panicking::panic_fmt::h7b8580d81fcbbacd [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/panicking.rs:106:14 [INFO] [stdout] 15: 0x55b3f9259a63 - core::result::unwrap_failed::h885d3f7beb571353 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/result.rs:1613:5 [INFO] [stdout] 16: 0x55b3f936120c - core::result::Result::expect::hb734b20488c6cda3 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/result.rs:1255:23 [INFO] [stdout] 17: 0x55b3f943ab05 - main::tests::big_settings_output::h99a4ef65cd51a67c [INFO] [stdout] at /opt/rustwide/workdir/src/tests/mod.rs:24:5 [INFO] [stdout] 18: 0x55b3f943a9da - main::tests::big_settings_output::{{closure}}::h625050478a859487 [INFO] [stdout] at /opt/rustwide/workdir/src/tests/mod.rs:18:1 [INFO] [stdout] 19: 0x55b3f9370e9e - core::ops::function::FnOnce::call_once::h8bdef6c7c39ba1fc [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 20: 0x55b3f94cda33 - core::ops::function::FnOnce::call_once::h24a32b9da1a40fdb [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 21: 0x55b3f94cda33 - test::__rust_begin_short_backtrace::h3c3a0492fb4a12eb [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/test/src/lib.rs:585:5 [INFO] [stdout] 22: 0x55b3f94cc647 - as core::ops::function::FnOnce>::call_once::h9a8e38435f73d5e0 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/alloc/src/boxed.rs:1694:9 [INFO] [stdout] 23: 0x55b3f94cc647 - as core::ops::function::FnOnce<()>>::call_once::hb23d7496a0e6d1b4 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 24: 0x55b3f94cc647 - std::panicking::try::do_call::ha2bb9825b32d2cc2 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:406:40 [INFO] [stdout] 25: 0x55b3f94cc647 - std::panicking::try::hdc38a574bbebc53e [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:370:19 [INFO] [stdout] 26: 0x55b3f94cc647 - std::panic::catch_unwind::hc45ed246595c621c [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panic.rs:133:14 [INFO] [stdout] 27: 0x55b3f94cc647 - test::run_test_in_process::h4249138faaea8d54 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/test/src/lib.rs:608:18 [INFO] [stdout] 28: 0x55b3f94cc647 - test::run_test::run_test_inner::{{closure}}::h3c1b37669f6e9fd7 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/test/src/lib.rs:500:39 [INFO] [stdout] 29: 0x55b3f94998ee - test::run_test::run_test_inner::{{closure}}::h388760469edd5c24 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/test/src/lib.rs:527:37 [INFO] [stdout] 30: 0x55b3f94998ee - std::sys_common::backtrace::__rust_begin_short_backtrace::hbbaecdcfad18643e [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys_common/backtrace.rs:123:18 [INFO] [stdout] 31: 0x55b3f949e648 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h09cd3ca65896da91 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/thread/mod.rs:484:17 [INFO] [stdout] 32: 0x55b3f949e648 - as core::ops::function::FnOnce<()>>::call_once::hc52dbb4f9088d18b [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/panic/unwind_safe.rs:271:9 [INFO] [stdout] 33: 0x55b3f949e648 - std::panicking::try::do_call::h4485cfee22b11c08 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:406:40 [INFO] [stdout] 34: 0x55b3f949e648 - std::panicking::try::hb62aa8549e20c08b [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panicking.rs:370:19 [INFO] [stdout] 35: 0x55b3f949e648 - std::panic::catch_unwind::ha322c7a5bc666762 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/panic.rs:133:14 [INFO] [stdout] 36: 0x55b3f949e648 - std::thread::Builder::spawn_unchecked::{{closure}}::h1076fc1398603b77 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/thread/mod.rs:483:30 [INFO] [stdout] 37: 0x55b3f949e648 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h911e510344167353 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 38: 0x55b3f95703c3 - as core::ops::function::FnOnce>::call_once::h771719d52c343434 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/alloc/src/boxed.rs:1694:9 [INFO] [stdout] 39: 0x55b3f95703c3 - as core::ops::function::FnOnce>::call_once::hf441746dfa4b0f57 [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/alloc/src/boxed.rs:1694:9 [INFO] [stdout] 40: 0x55b3f95703c3 - std::sys::unix::thread::Thread::new::thread_start::hfd168f9d312b29ca [INFO] [stdout] at /rustc/8262275854dc0e5381c9d42d56257d94932c5a87/library/std/src/sys/unix/thread.rs:106:17 [INFO] [stdout] 41: 0x7fbda5953609 - start_thread [INFO] [stdout] 42: 0x7fbda5723293 - clone [INFO] [stdout] 43: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] tests::big_settings_output [INFO] [stdout] tests::chord22_output [INFO] [stdout] [INFO] [stdout] test result: FAILED. 6 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.25s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "ad33d3b1d2027e3ff7d745072f21b25c25494a43351b57f8a60e091be4cbb43c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ad33d3b1d2027e3ff7d745072f21b25c25494a43351b57f8a60e091be4cbb43c", kill_on_drop: false }` [INFO] [stdout] ad33d3b1d2027e3ff7d745072f21b25c25494a43351b57f8a60e091be4cbb43c