[INFO] cloning repository https://github.com/C0RR1T/brainfuck [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/C0RR1T/brainfuck" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FC0RR1T%2Fbrainfuck", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FC0RR1T%2Fbrainfuck'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4a35484033dff1f452f42cec3155e7cfd7d9b547 [INFO] checking C0RR1T/brainfuck against master#af4a5a13a15fa0c60e06321077ef452f769b42fd for pr-122960-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FC0RR1T%2Fbrainfuck" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/C0RR1T/brainfuck on toolchain af4a5a13a15fa0c60e06321077ef452f769b42fd [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/C0RR1T/brainfuck [INFO] finished tweaking git repo https://github.com/C0RR1T/brainfuck [INFO] tweaked toml for git repo https://github.com/C0RR1T/brainfuck written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/C0RR1T/brainfuck already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded peekmore v1.0.0 [INFO] [stderr] Downloaded semver v1.0.10 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 652515180ed3587e667eedd5f256ed80cd2a9258908ceb5dac4a7af8bb852c0c [INFO] running `Command { std: "docker" "start" "-a" "652515180ed3587e667eedd5f256ed80cd2a9258908ceb5dac4a7af8bb852c0c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "652515180ed3587e667eedd5f256ed80cd2a9258908ceb5dac4a7af8bb852c0c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "652515180ed3587e667eedd5f256ed80cd2a9258908ceb5dac4a7af8bb852c0c", kill_on_drop: false }` [INFO] [stdout] 652515180ed3587e667eedd5f256ed80cd2a9258908ceb5dac4a7af8bb852c0c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "RUSTDOCFLAGS=--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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e3f1db05afca751a0d7db6073b7d8900dd1f02b198f64392300fa09ea4d76681 [INFO] running `Command { std: "docker" "start" "-a" "e3f1db05afca751a0d7db6073b7d8900dd1f02b198f64392300fa09ea4d76681", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Compiling proc-macro2 v1.0.39 [INFO] [stderr] Compiling unicode-ident v1.0.0 [INFO] [stderr] Compiling syn v1.0.96 [INFO] [stderr] Compiling serde_derive v1.0.137 [INFO] [stderr] Compiling serde v1.0.137 [INFO] [stderr] Compiling libc v0.2.126 [INFO] [stderr] Checking lexer v0.1.0 (/opt/rustwide/workdir/lexer) [INFO] [stderr] Checking owo-colors v3.4.0 [INFO] [stderr] Compiling semver v1.0.10 [INFO] [stderr] Compiling crossbeam-epoch v0.9.8 [INFO] [stderr] Checking peekmore v1.0.0 [INFO] [stderr] Checking ryu v1.0.10 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling serde_json v1.0.81 [INFO] [stderr] Checking itoa v1.0.2 [INFO] [stderr] Compiling rayon-core v1.9.3 [INFO] [stderr] Compiling indexmap v1.8.2 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Checking parser v0.1.0 (/opt/rustwide/workdir/parser) [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Compiling rayon v1.5.3 [INFO] [stdout] warning: methods `consume_elements`, `peek`, and `peek_nth` are never used [INFO] [stdout] --> parser/src/lib.rs:113:8 [INFO] [stdout] | [INFO] [stdout] 34 | impl Parser { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 113 | fn consume_elements(&mut self, amount: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | fn peek(&mut self) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | fn peek_nth(&mut self, amount: usize) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking os_str_bytes v6.1.0 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking plotters-backend v0.3.2 [INFO] [stderr] Checking itertools v0.10.3 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking clap_lex v0.2.0 [INFO] [stderr] Checking regex-syntax v0.6.26 [INFO] [stderr] Checking itoa v0.4.8 [INFO] [stderr] Checking plotters-svg v0.3.1 [INFO] [stderr] Checking clap v2.34.0 [INFO] [stdout] warning: methods `consume_elements`, `peek`, and `peek_nth` are never used [INFO] [stdout] --> parser/src/lib.rs:113:8 [INFO] [stdout] | [INFO] [stdout] 34 | impl Parser { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 113 | fn consume_elements(&mut self, amount: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | fn peek(&mut self) -> Option { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 123 | fn peek_nth(&mut self, amount: usize) -> Option { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking crossbeam-deque v0.8.1 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Checking csv-core v0.1.10 [INFO] [stderr] Compiling cast v0.2.7 [INFO] [stderr] Compiling quote v1.0.18 [INFO] [stderr] Checking error-messages v0.1.0 (/opt/rustwide/workdir/error-messages) [INFO] [stderr] Checking interpreter v0.2.0 (/opt/rustwide/workdir/interpreter) [INFO] [stdout] warning: unused import: `owo_colors::OwoColorize` [INFO] [stdout] --> interpreter/./src/lib.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use owo_colors::OwoColorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stdout` [INFO] [stdout] --> interpreter/./src/lib.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{stdout, Read, Write}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Span` [INFO] [stdout] --> interpreter/./src/lib.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{lex, Span}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ParserError` [INFO] [stdout] --> interpreter/./src/lib.rs:7:35 [INFO] [stdout] | [INFO] [stdout] 7 | use parser::{Instruction, Parser, ParserError}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `owo_colors::OwoColorize` [INFO] [stdout] --> interpreter/./src/lib.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use owo_colors::OwoColorize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `stdout` [INFO] [stdout] --> interpreter/./src/lib.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{stdout, Read, Write}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Span` [INFO] [stdout] --> interpreter/./src/lib.rs:6:18 [INFO] [stdout] | [INFO] [stdout] 6 | use lexer::{lex, Span}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ParserError` [INFO] [stdout] --> interpreter/./src/lib.rs:7:35 [INFO] [stdout] | [INFO] [stdout] 7 | use parser::{Instruction, Parser, ParserError}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 4 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> interpreter/./src/lib.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | let mut out = Vec::new(); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0382]: borrow of moved value: `out` [INFO] [stdout] --> interpreter/./src/lib.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 85 | let mut out = Vec::new(); [INFO] [stdout] | ------- move occurs because `out` has type `Vec`, which does not implement the `Copy` trait [INFO] [stdout] 86 | Interpreter::new(out).interpret(&parser::hello_world()[..]); [INFO] [stdout] | --- value moved here [INFO] [stdout] 87 | assert_eq!( [INFO] [stdout] 88 | out.iter().map(|x| *x as char).collect::(), [INFO] [stdout] | ^^^^^^^^^^ value borrowed here after move [INFO] [stdout] | [INFO] [stdout] note: consider changing this parameter type in method `new` to borrow instead if owning the value isn't necessary [INFO] [stdout] --> interpreter/./src/lib.rs:16:24 [INFO] [stdout] | [INFO] [stdout] 16 | pub fn new(output: W) -> Self [INFO] [stdout] | --- ^ this parameter takes ownership of the value [INFO] [stdout] | | [INFO] [stdout] | in this method [INFO] [stdout] = note: borrow occurs due to deref coercion to `[u8]` [INFO] [stdout] help: consider cloning the value if the performance cost is acceptable [INFO] [stdout] | [INFO] [stdout] 86 | Interpreter::new(out.clone()).interpret(&parser::hello_world()[..]); [INFO] [stdout] | ++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0382`. [INFO] [stdout] [INFO] [stderr] error: could not compile `interpreter` (lib test) due to 2 previous errors; 5 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] running `Command { std: "docker" "inspect" "e3f1db05afca751a0d7db6073b7d8900dd1f02b198f64392300fa09ea4d76681", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e3f1db05afca751a0d7db6073b7d8900dd1f02b198f64392300fa09ea4d76681", kill_on_drop: false }` [INFO] [stdout] e3f1db05afca751a0d7db6073b7d8900dd1f02b198f64392300fa09ea4d76681 [INFO] checking C0RR1T/brainfuck against try#36dbcaee1a55543dfc181be52a69d99ff46ff62f for pr-122960-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FC0RR1T%2Fbrainfuck" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/C0RR1T/brainfuck on toolchain 36dbcaee1a55543dfc181be52a69d99ff46ff62f [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/C0RR1T/brainfuck [INFO] finished tweaking git repo https://github.com/C0RR1T/brainfuck [INFO] tweaked toml for git repo https://github.com/C0RR1T/brainfuck written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/C0RR1T/brainfuck already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] aaf9085e52123acfe914ab69c4cb5bda17b72306cd776962e4f993d93799052d [INFO] running `Command { std: "docker" "start" "-a" "aaf9085e52123acfe914ab69c4cb5bda17b72306cd776962e4f993d93799052d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "aaf9085e52123acfe914ab69c4cb5bda17b72306cd776962e4f993d93799052d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aaf9085e52123acfe914ab69c4cb5bda17b72306cd776962e4f993d93799052d", kill_on_drop: false }` [INFO] [stdout] aaf9085e52123acfe914ab69c4cb5bda17b72306cd776962e4f993d93799052d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "RUSTDOCFLAGS=--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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+36dbcaee1a55543dfc181be52a69d99ff46ff62f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9e493a69049906ce32bc407e19c4c3b3898de3ae7fe8b9a421c04b8e342cf740 [INFO] running `Command { std: "docker" "start" "-a" "9e493a69049906ce32bc407e19c4c3b3898de3ae7fe8b9a421c04b8e342cf740", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] no edition found in manifest, probably 2015, skipping [INFO] running `Command { std: "docker" "inspect" "9e493a69049906ce32bc407e19c4c3b3898de3ae7fe8b9a421c04b8e342cf740", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9e493a69049906ce32bc407e19c4c3b3898de3ae7fe8b9a421c04b8e342cf740", kill_on_drop: false }` [INFO] [stdout] 9e493a69049906ce32bc407e19c4c3b3898de3ae7fe8b9a421c04b8e342cf740