[INFO] cloning repository https://github.com/tuanmaianh/rust-exercises
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tuanmaianh/rust-exercises" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftuanmaianh%2Frust-exercises", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftuanmaianh%2Frust-exercises'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a149764b7f4bd193eecd4232c6a2cef9c343abd6
[INFO] checking tuanmaianh/rust-exercises against try#e622d8d7bed4f2668d446e06c6c1436ecae15796 for pr-156776
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftuanmaianh%2Frust-exercises" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tuanmaianh/rust-exercises
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/tuanmaianh/rust-exercises
[INFO] tweaked toml for git repo https://github.com/tuanmaianh/rust-exercises written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tuanmaianh/rust-exercises on toolchain e622d8d7bed4f2668d446e06c6c1436ecae15796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tuanmaianh/rust-exercises 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" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking tuanmaianh/rust-exercises against try#e622d8d7bed4f2668d446e06c6c1436ecae15796 for pr-156776
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftuanmaianh%2Frust-exercises" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tuanmaianh/rust-exercises
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/tuanmaianh/rust-exercises
[INFO] tweaked toml for git repo https://github.com/tuanmaianh/rust-exercises written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tuanmaianh/rust-exercises on toolchain e622d8d7bed4f2668d446e06c6c1436ecae15796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tuanmaianh/rust-exercises 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" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4ea9eddaa66828b188132ec0be68bab581f80b3113f64851c2e08b5c859ac92f
[INFO] running `Command { std: "docker" "start" "-a" "4ea9eddaa66828b188132ec0be68bab581f80b3113f64851c2e08b5c859ac92f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4ea9eddaa66828b188132ec0be68bab581f80b3113f64851c2e08b5c859ac92f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4ea9eddaa66828b188132ec0be68bab581f80b3113f64851c2e08b5c859ac92f", kill_on_drop: false }`
[INFO] [stdout] 4ea9eddaa66828b188132ec0be68bab581f80b3113f64851c2e08b5c859ac92f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ac2355298ed10c4ee20d5cbba3ae4ac74496920f70a39545c44b6ed1f8df63fc
[INFO] running `Command { std: "docker" "start" "-a" "ac2355298ed10c4ee20d5cbba3ae4ac74496920f70a39545c44b6ed1f8df63fc", kill_on_drop: false }`
[INFO] [stderr]     Checking Rust-Bootcamp-2023 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking basic-of-rust v0.1.0 (/opt/rustwide/workdir/exercises/basic-of-rust)
[INFO] [stderr]     Checking ownership-borrowing v0.1.0 (/opt/rustwide/workdir/exercises/ownership-borrowing)
[INFO] [stderr]     Checking complex-type v0.1.0 (/opt/rustwide/workdir/exercises/complex-type)
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> exercises/basic-of-rust/src/functions.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> exercises/basic-of-rust/src/functions.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::num`
[INFO] [stdout]  --> exercises/basic-of-rust/src/functions.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use core::num;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]  --> exercises/ownership-borrowing/src/lib.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let z = y.clone();
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bigger` is never used
[INFO] [stdout]  --> exercises/basic-of-rust/src/conditions.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn bigger(a: i32, b: i32) -> i32 {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_number` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn check_number(number: i32) -> &'static str {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `foo_if_fizz` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn foo_if_fizz(fizzish: &str) -> &str {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_leap_year` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn is_leap_year(year: i32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `factorial` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:52:4
[INFO] [stdout]    |
[INFO] [stdout] 52 | fn factorial(n: u32) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_prime` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/conditions.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn is_prime(n: u32) -> bool {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise2` is never used
[INFO] [stdout]  --> exercises/basic-of-rust/src/strings.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn exercise2() -> String {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise3` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn exercise3() -> String {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reverse_string` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn reverse_string(input: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_palindrome` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn is_palindrome(word: &str) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_char_occurrences` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/strings.rs:40:4
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn count_char_occurrences(string: &str, ch: char) -> usize {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sum` is never used
[INFO] [stdout]  --> exercises/basic-of-rust/src/functions.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn sum(x: i32, y: i32) -> i32 {
[INFO] [stdout]   |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sum_one_to_n` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/functions.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn sum_one_to_n(n: u32) -> u32 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_average` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/functions.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn calculate_average(numbers: &[f64]) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sum_even_numbers` is never used
[INFO] [stdout]   --> exercises/basic-of-rust/src/functions.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn sum_even_numbers(numbers: &[i32]) -> i32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise1` is never used
[INFO] [stdout]  --> exercises/ownership-borrowing/src/lib.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn exercise1() {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise2` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn exercise2() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_ownership` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn take_ownership(s: String) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise3` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn exercise3() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise4` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn exercise4(value: u32) -> String {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise5` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn exercise5() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise6` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn exercise6() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise7` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn exercise7() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise8` is never used
[INFO] [stdout]    --> exercises/ownership-borrowing/src/lib.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn exercise8() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u2`
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let u2 = User {
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_u2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moved`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let moved = &foos[0];
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_moved`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moved_field`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let moved_field = &foos[0].str_val;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moved_field`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `z`
[INFO] [stdout]  --> exercises/ownership-borrowing/src/lib.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let z = y.clone();
[INFO] [stdout]   |         ^ help: if this is intentional, prefix it with an underscore: `_z`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MessageOne` is never used
[INFO] [stdout]  --> exercises/complex-type/src/enums.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum MessageOne {
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_message` is never used
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn show_message(msg: MessageOne) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise1` is never used
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn exercise1() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Person` is never constructed
[INFO] [stdout]  --> exercises/complex-type/src/structs.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | struct Person {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise1` is never used
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn exercise1() -> Person {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Agent` is never constructed
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Agent  {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_name`, and `get_age` are never used
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Agent {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 38 |     // Create a new Person instance
[INFO] [stdout] 39 |     fn new(name: String, age: u32) -> Agent {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn get_name(&self) -> &str {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     fn get_age(&self) -> u32 {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Calculator` is never constructed
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | struct Calculator {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `subtract`, `clear`, and `get_value` are never used
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | impl Calculator {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 63 |     fn new() -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     fn add(&mut self, num: i32) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     fn subtract(&mut self, num: i32) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     fn clear(&mut self) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     fn get_value(&self) -> i32 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `User` is never constructed
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct User {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise4` is never used
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn exercise4() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Foo` is never constructed
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct Foo {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise5` is never used
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn exercise5() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Package` is never constructed
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | struct Package {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_international`, and `get_fees` are never used
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl Package {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 148 |     fn new(sender_country: String, recipient_country: String, weight_in_grams: i32) -> Package {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn is_international(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     fn get_fees(&self, cents_per_gram: i32) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MessageOne` is never used
[INFO] [stdout]  --> exercises/complex-type/src/enums.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum MessageOne {
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_message` is never used
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn show_message(msg: MessageOne) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise1` is never used
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn exercise1() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Message` is never used
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum Message {
[INFO] [stdout]    |      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct Point {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `State` is never constructed
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct State {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `change_color`, `quit`, `echo`, `move_position`, and `process` are never used
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:53:8
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl State {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 53 |     fn change_color(&mut self, color: (u8, u8, u8)) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     fn quit(&mut self) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     fn echo(&self, s: String) {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     fn move_position(&mut self, p: Point) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn process(&mut self, message: Message) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:85:6
[INFO] [stdout]    |
[INFO] [stdout] 85 | enum Direction {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `opposite` is never used
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | impl Direction {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] 93 |     fn opposite(&self) -> Direction {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operation` is never used
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:108:6
[INFO] [stdout]     |
[INFO] [stdout] 108 | enum Operation {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `perform_operation` is never used
[INFO] [stdout]    --> exercises/complex-type/src/enums.rs:116:4
[INFO] [stdout]     |
[INFO] [stdout] 116 | fn perform_operation(operation: Operation, num1: f64, num2: f64) -> f64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise1` is never used
[INFO] [stdout]  --> exercises/ownership-borrowing/src/lib.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn exercise1() {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise2` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:13:4
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn exercise2() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `take_ownership` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn take_ownership(s: String) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise3` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 | fn exercise3() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise4` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn exercise4(value: u32) -> String {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise5` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn exercise5() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise6` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn exercise6() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise7` is never used
[INFO] [stdout]   --> exercises/ownership-borrowing/src/lib.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn exercise7() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `integer`
[INFO] [stdout]  --> exercises/generic-type/src/lib.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 |     let integer: Point<i32,i32> = Point { x: 5, y: 10 };
[INFO] [stdout]   |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_integer`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise8` is never used
[INFO] [stdout]    --> exercises/ownership-borrowing/src/lib.rs:109:4
[INFO] [stdout]     |
[INFO] [stdout] 109 | fn exercise8() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `float`
[INFO] [stdout]  --> exercises/generic-type/src/lib.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 |     let float: Point<f64,f64> = Point { x: 1.0, y: 4.0 };
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let p = Point{x: 5, y : "hello".to_string()};
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u2`
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let u2 = User {
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_u2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moved`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let moved = &foos[0];
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_moved`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moved_field`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let moved_field = &foos[0].str_val;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moved_field`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `u2`
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     let u2 = User {
[INFO] [stdout]    |         ^^ help: if this is intentional, prefix it with an underscore: `_u2`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moved`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |     let moved = &foos[0];
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_moved`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `moved_field`
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 132 |     let moved_field = &foos[0].str_val;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_moved_field`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `User` is never constructed
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct User {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise4` is never used
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn exercise4() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Foo` is never constructed
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct Foo {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise5` is never used
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn exercise5() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise1` is never used
[INFO] [stdout]  --> exercises/generic-type/src/lib.rs:6:4
[INFO] [stdout]   |
[INFO] [stdout] 6 | fn exercise1() {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Point` is never constructed
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct Point<T,U> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise2` is never used
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn exercise2() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Val` is never constructed
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct Val <T> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Val<f64> {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] 36 |     fn value(&self) -> &f64 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `value` is never used
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl Val<String> {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 42 |     fn value(&self) -> &String {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise3` is never used
[INFO] [stdout]   --> exercises/generic-type/src/lib.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn exercise3() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `User` is never constructed
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct User {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise4` is never used
[INFO] [stdout]   --> exercises/complex-type/src/structs.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn exercise4() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Foo` is never constructed
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct Foo {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise5` is never used
[INFO] [stdout]    --> exercises/complex-type/src/structs.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn exercise5() {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MessageOne` is never used
[INFO] [stdout]  --> exercises/complex-type/src/enums.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | enum MessageOne {
[INFO] [stdout]   |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_message` is never used
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn show_message(msg: MessageOne) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exercise1` is never used
[INFO] [stdout]   --> exercises/complex-type/src/enums.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn exercise1() {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.11s
[INFO] running `Command { std: "docker" "inspect" "ac2355298ed10c4ee20d5cbba3ae4ac74496920f70a39545c44b6ed1f8df63fc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ac2355298ed10c4ee20d5cbba3ae4ac74496920f70a39545c44b6ed1f8df63fc", kill_on_drop: false }`
[INFO] [stdout] ac2355298ed10c4ee20d5cbba3ae4ac74496920f70a39545c44b6ed1f8df63fc
