[INFO] fetching crate mesh-portal-api-server 0.2.0-rc1... [INFO] checking mesh-portal-api-server-0.2.0-rc1 against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] extracting crate mesh-portal-api-server 0.2.0-rc1 into /workspace/builds/worker-6-tc1/source [INFO] validating manifest of crates.io crate mesh-portal-api-server 0.2.0-rc1 on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate mesh-portal-api-server 0.2.0-rc1 [INFO] finished tweaking crates.io crate mesh-portal-api-server 0.2.0-rc1 [INFO] tweaked toml for crates.io crate mesh-portal-api-server 0.2.0-rc1 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 98 packages to latest compatible versions [INFO] [stderr] Adding addr2line v0.22.0 (latest: v0.24.1) [INFO] [stderr] Adding brownstone v1.1.0 (latest: v3.0.0) [INFO] [stderr] Adding dashmap v4.0.2 (latest: v6.0.1) [INFO] [stderr] Adding gimli v0.29.0 (latest: v0.31.0) [INFO] [stderr] Adding heck v0.3.3 (latest: v0.5.0) [INFO] [stderr] Adding hermit-abi v0.3.9 (latest: v0.4.0) [INFO] [stderr] Adding joinery v2.1.0 (latest: v3.1.0) [INFO] [stderr] Adding miniz_oxide v0.7.4 (latest: v0.8.0) [INFO] [stderr] Adding nom-supreme v0.6.0 (latest: v0.8.0) [INFO] [stderr] Adding semver v0.11.0 (latest: v1.0.23) [INFO] [stderr] Adding strum v0.21.0 (latest: v0.26.3) [INFO] [stderr] Adding strum_macros v0.21.1 (latest: v0.26.4) [INFO] [stderr] Adding syn v1.0.109 (latest: v2.0.77) [INFO] [stderr] Adding uuid v0.8.2 (latest: v1.10.0) [INFO] [stderr] Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.2+wasi-0.2.1) [INFO] [stderr] Adding windows-sys v0.52.0 (latest: v0.59.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded mesh-portal v0.2.0-rc1 [INFO] [stderr] Downloaded brownstone v1.1.0 [INFO] [stderr] Downloaded joinery v2.1.0 [INFO] [stderr] Downloaded nom-supreme v0.6.0 [INFO] [stderr] Downloaded indent_write v2.2.0 [INFO] [stderr] Downloaded strum_macros v0.21.1 [INFO] [stderr] Downloaded strum v0.21.0 [INFO] [stderr] Downloaded mesh-portal-versions v0.2.0-rc1 [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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4cd26e3e51a16b59c5cf8c1724455eb9f9cb51915d3220488d86e86278097633 [INFO] running `Command { std: "docker" "start" "-a" "4cd26e3e51a16b59c5cf8c1724455eb9f9cb51915d3220488d86e86278097633", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4cd26e3e51a16b59c5cf8c1724455eb9f9cb51915d3220488d86e86278097633", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4cd26e3e51a16b59c5cf8c1724455eb9f9cb51915d3220488d86e86278097633", kill_on_drop: false }` [INFO] [stdout] 4cd26e3e51a16b59c5cf8c1724455eb9f9cb51915d3220488d86e86278097633 [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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7ef93fc65f1f92f48a654f6a6a1bd4813190f35110f1027f476a56ed4b532346 [INFO] running `Command { std: "docker" "start" "-a" "7ef93fc65f1f92f48a654f6a6a1bd4813190f35110f1027f476a56ed4b532346", kill_on_drop: false }` [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking indent_write v2.2.0 [INFO] [stderr] Checking brownstone v1.1.0 [INFO] [stderr] Checking joinery v2.1.0 [INFO] [stderr] Checking strum v0.21.0 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking dashmap v4.0.2 [INFO] [stderr] Checking nom-supreme v0.6.0 [INFO] [stderr] Compiling strum_macros v0.21.1 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling serde_derive v1.0.209 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling async-trait v0.1.81 [INFO] [stderr] Checking tokio v1.40.0 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking thiserror v1.0.63 [INFO] [stderr] Checking pest v2.7.11 [INFO] [stderr] Checking serde v1.0.209 [INFO] [stderr] Checking semver-parser v0.10.2 [INFO] [stderr] Checking semver v0.11.0 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking uuid v0.8.2 [INFO] [stderr] Checking mesh-portal-versions v0.2.0-rc1 [INFO] [stderr] Checking mesh-portal v0.2.0-rc1 [INFO] [stderr] Checking mesh-portal-api-server v0.2.0-rc1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/lib.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::future::Future` [INFO] [stdout] --> src/lib.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::future::Future; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::future::Future` [INFO] [stdout] --> src/lib.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::future::Future; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::prelude::rust_2021::TryInto` [INFO] [stdout] --> src/lib.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::prelude::rust_2021::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::prelude::rust_2021::TryInto` [INFO] [stdout] --> src/lib.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::prelude::rust_2021::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::future::select_all` [INFO] [stdout] --> src/lib.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use futures::future::select_all; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `futures::future::select_all` [INFO] [stdout] --> src/lib.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use futures::future::select_all; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FutureExt` [INFO] [stdout] --> src/lib.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | use futures::{FutureExt, SinkExt}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FutureExt` [INFO] [stdout] --> src/lib.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | use futures::{FutureExt, SinkExt}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SendError`, `SendTimeoutError`, and `TryRecvError` [INFO] [stdout] --> src/lib.rs:16:32 [INFO] [stdout] | [INFO] [stdout] 16 | use tokio::sync::mpsc::error::{SendError, SendTimeoutError, TryRecvError}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest` [INFO] [stdout] --> src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use mesh_portal::version::latest; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `SendError`, `SendTimeoutError`, and `TryRecvError` [INFO] [stdout] --> src/lib.rs:16:32 [INFO] [stdout] | [INFO] [stdout] 16 | use tokio::sync::mpsc::error::{SendError, SendTimeoutError, TryRecvError}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest::entity::response` [INFO] [stdout] --> src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use mesh_portal::version::latest::entity::response; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest` [INFO] [stdout] --> src/lib.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use mesh_portal::version::latest; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest::fail` [INFO] [stdout] --> src/lib.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use mesh_portal::version::latest::fail; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest::entity::response` [INFO] [stdout] --> src/lib.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use mesh_portal::version::latest::entity::response; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Message` [INFO] [stdout] --> src/lib.rs:24:47 [INFO] [stdout] | [INFO] [stdout] 24 | use mesh_portal::version::latest::messaging::{Message, Request, Response}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest::fail` [INFO] [stdout] --> src/lib.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use mesh_portal::version::latest::fail; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest::pattern::AddressKindPattern` [INFO] [stdout] --> src/lib.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use mesh_portal::version::latest::pattern::AddressKindPattern; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Message` [INFO] [stdout] --> src/lib.rs:24:47 [INFO] [stdout] | [INFO] [stdout] 24 | use mesh_portal::version::latest::messaging::{Message, Request, Response}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest::resource::Status` [INFO] [stdout] --> src/lib.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use mesh_portal::version::latest::resource::Status; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest::pattern::AddressKindPattern` [INFO] [stdout] --> src/lib.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use mesh_portal::version::latest::pattern::AddressKindPattern; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::task::yield_now` [INFO] [stdout] --> src/lib.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | use tokio::task::yield_now; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest::resource::Status` [INFO] [stdout] --> src/lib.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use mesh_portal::version::latest::resource::Status; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Artifact` [INFO] [stdout] --> src/lib.rs:32:46 [INFO] [stdout] | [INFO] [stdout] 32 | use mesh_portal::version::latest::artifact::{Artifact, ArtifactRequest, ArtifactResponse}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::task::yield_now` [INFO] [stdout] --> src/lib.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | use tokio::task::yield_now; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ConfigBody` and `Config` [INFO] [stdout] --> src/lib.rs:33:52 [INFO] [stdout] | [INFO] [stdout] 33 | use mesh_portal::version::latest::config::{Assign, Config, ConfigBody, PortalConfig}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Artifact` [INFO] [stdout] --> src/lib.rs:32:46 [INFO] [stdout] | [INFO] [stdout] 32 | use mesh_portal::version::latest::artifact::{Artifact, ArtifactRequest, ArtifactResponse}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest::portal::outlet::Frame` [INFO] [stdout] --> src/lib.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | use mesh_portal::version::latest::portal::outlet::Frame; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ConfigBody` and `Config` [INFO] [stdout] --> src/lib.rs:33:52 [INFO] [stdout] | [INFO] [stdout] 33 | use mesh_portal::version::latest::config::{Assign, Config, ConfigBody, PortalConfig}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mesh_portal::version::latest::portal::outlet::Frame` [INFO] [stdout] --> src/lib.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | use mesh_portal::version::latest::portal::outlet::Frame; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SinkExt` [INFO] [stdout] --> src/lib.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | use futures::{FutureExt, SinkExt}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/lib.rs:119:17 [INFO] [stdout] | [INFO] [stdout] 119 | let config = config.clone(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `info` [INFO] [stdout] --> src/lib.rs:153:17 [INFO] [stdout] | [INFO] [stdout] 153 | let info = info.clone(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SinkExt` [INFO] [stdout] --> src/lib.rs:15:26 [INFO] [stdout] | [INFO] [stdout] 15 | use futures::{FutureExt, SinkExt}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:194:60 [INFO] [stdout] | [INFO] [stdout] 194 | ... if let Option::Some((_,mut tx)) = exchanges.remove(&response.response_to) { [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] warning: unused variable: `request` [INFO] [stdout] --> src/lib.rs:290:43 [INFO] [stdout] | [INFO] [stdout] 290 | async fn handle_assign_request(&self, request: AssignRequest ) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/lib.rs:296:9 [INFO] [stdout] | [INFO] [stdout] 296 | request: ArtifactRequest, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config` [INFO] [stdout] --> src/lib.rs:119:17 [INFO] [stdout] | [INFO] [stdout] 119 | let config = config.clone(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `info` [INFO] [stdout] --> src/lib.rs:153:17 [INFO] [stdout] | [INFO] [stdout] 153 | let info = info.clone(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/lib.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | request: ArtifactRequest, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `broadcast_tx` is never read [INFO] [stdout] --> src/lib.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct Portal { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 99 | broadcast_tx: broadcast::Sender [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Portal` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/lib.rs:194:60 [INFO] [stdout] | [INFO] [stdout] 194 | ... if let Option::Some((_,mut tx)) = exchanges.remove(&response.response_to) { [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] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | self.tx.send( PortalCall::Request { request: request.clone(), tx }).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 46 | let _ = self.tx.send( PortalCall::Request { request: request.clone(), tx }).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | tx.send( PortalCall::Assign(assign)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 60 | let _ = tx.send( PortalCall::Assign(assign)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:132:32 [INFO] [stdout] | [INFO] [stdout] 132 | ... outlet_tx.send( outlet::Frame::Request(request.clone()) ).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 132 | let _ = outlet_tx.send( outlet::Frame::Request(request.clone()) ).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:139:28 [INFO] [stdout] | [INFO] [stdout] 139 | ... outlet_tx.send(outlet::Frame::Assign(assign)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 139 | let _ = outlet_tx.send(outlet::Frame::Assign(assign)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:144:28 [INFO] [stdout] | [INFO] [stdout] 144 | ... broadcast_tx.send( PortalEvent::ResourceAdded(resource_api)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 144 | let _ = broadcast_tx.send( PortalEvent::ResourceAdded(resource_api)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:171:45 [INFO] [stdout] | [INFO] [stdout] 171 | ... outlet_tx.send( outlet::Frame::Assign(assign) ).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 171 | let _ = outlet_tx.send( outlet::Frame::Assign(assign) ).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/lib.rs:290:43 [INFO] [stdout] | [INFO] [stdout] 290 | async fn handle_assign_request(&self, request: AssignRequest ) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:184:49 [INFO] [stdout] | [INFO] [stdout] 184 | ... outlet_tx.send( outlet::Frame::Response(response)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 184 | let _ = outlet_tx.send( outlet::Frame::Response(response)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:188:49 [INFO] [stdout] | [INFO] [stdout] 188 | ... outlet_tx.send( outlet::Frame::Response(response)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 188 | let _ = outlet_tx.send( outlet::Frame::Response(response)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:195:41 [INFO] [stdout] | [INFO] [stdout] 195 | ... tx.send(response); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 195 | let _ = tx.send(response); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:207:49 [INFO] [stdout] | [INFO] [stdout] 207 | ... outlet_tx.send( outlet::Frame::Artifact(response)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 207 | let _ = outlet_tx.send( outlet::Frame::Artifact(response)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:254:9 [INFO] [stdout] | [INFO] [stdout] 254 | self.outlet_tx.send( outlet::Frame::Request(request.clone()) ).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 254 | let _ = self.outlet_tx.send( outlet::Frame::Request(request.clone()) ).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:270:13 [INFO] [stdout] | [INFO] [stdout] 270 | outlet_tx.send(outlet::Frame::Assign(assign)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 270 | let _ = outlet_tx.send(outlet::Frame::Assign(assign)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/lib.rs:296:9 [INFO] [stdout] | [INFO] [stdout] 296 | request: ArtifactRequest, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/lib.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 303 | request: ArtifactRequest, [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `broadcast_tx` is never read [INFO] [stdout] --> src/lib.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct Portal { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 99 | broadcast_tx: broadcast::Sender [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Portal` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 36 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | self.tx.send( PortalCall::Request { request: request.clone(), tx }).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 46 | let _ = self.tx.send( PortalCall::Request { request: request.clone(), tx }).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | tx.send( PortalCall::Assign(assign)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 60 | let _ = tx.send( PortalCall::Assign(assign)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:132:32 [INFO] [stdout] | [INFO] [stdout] 132 | ... outlet_tx.send( outlet::Frame::Request(request.clone()) ).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 132 | let _ = outlet_tx.send( outlet::Frame::Request(request.clone()) ).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:139:28 [INFO] [stdout] | [INFO] [stdout] 139 | ... outlet_tx.send(outlet::Frame::Assign(assign)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 139 | let _ = outlet_tx.send(outlet::Frame::Assign(assign)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:144:28 [INFO] [stdout] | [INFO] [stdout] 144 | ... broadcast_tx.send( PortalEvent::ResourceAdded(resource_api)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 144 | let _ = broadcast_tx.send( PortalEvent::ResourceAdded(resource_api)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:171:45 [INFO] [stdout] | [INFO] [stdout] 171 | ... outlet_tx.send( outlet::Frame::Assign(assign) ).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 171 | let _ = outlet_tx.send( outlet::Frame::Assign(assign) ).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:184:49 [INFO] [stdout] | [INFO] [stdout] 184 | ... outlet_tx.send( outlet::Frame::Response(response)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 184 | let _ = outlet_tx.send( outlet::Frame::Response(response)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:188:49 [INFO] [stdout] | [INFO] [stdout] 188 | ... outlet_tx.send( outlet::Frame::Response(response)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 188 | let _ = outlet_tx.send( outlet::Frame::Response(response)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:195:41 [INFO] [stdout] | [INFO] [stdout] 195 | ... tx.send(response); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 195 | let _ = tx.send(response); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:207:49 [INFO] [stdout] | [INFO] [stdout] 207 | ... outlet_tx.send( outlet::Frame::Artifact(response)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 207 | let _ = outlet_tx.send( outlet::Frame::Artifact(response)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:254:9 [INFO] [stdout] | [INFO] [stdout] 254 | self.outlet_tx.send( outlet::Frame::Request(request.clone()) ).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 254 | let _ = self.outlet_tx.send( outlet::Frame::Request(request.clone()) ).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/lib.rs:270:13 [INFO] [stdout] | [INFO] [stdout] 270 | outlet_tx.send(outlet::Frame::Assign(assign)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 270 | let _ = outlet_tx.send(outlet::Frame::Assign(assign)).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 36 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.86s [INFO] running `Command { std: "docker" "inspect" "7ef93fc65f1f92f48a654f6a6a1bd4813190f35110f1027f476a56ed4b532346", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7ef93fc65f1f92f48a654f6a6a1bd4813190f35110f1027f476a56ed4b532346", kill_on_drop: false }` [INFO] [stdout] 7ef93fc65f1f92f48a654f6a6a1bd4813190f35110f1027f476a56ed4b532346