[INFO] fetching crate kodegen_mcp_schema 0.10.14...
[INFO] testing kodegen_mcp_schema-0.10.14 against try#db823df02fd0c2cf67b43025ac3fef3f2d743245 for pr-150681
[INFO] extracting crate kodegen_mcp_schema 0.10.14 into /workspace/builds/worker-4-tc2/source
[INFO] removed /workspace/builds/worker-4-tc2/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate kodegen_mcp_schema 0.10.14
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate kodegen_mcp_schema 0.10.14
[INFO] tweaked toml for crates.io crate kodegen_mcp_schema 0.10.14 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate kodegen_mcp_schema 0.10.14 on toolchain db823df02fd0c2cf67b43025ac3fef3f2d743245
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate kodegen_mcp_schema 0.10.14 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" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c82ec981df65aa81d0f304c0ee6bbf17db926f0b3e4b35e8fedf5c4eaacf2005
[INFO] running `Command { std: "docker" "start" "-a" "c82ec981df65aa81d0f304c0ee6bbf17db926f0b3e4b35e8fedf5c4eaacf2005", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c82ec981df65aa81d0f304c0ee6bbf17db926f0b3e4b35e8fedf5c4eaacf2005", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c82ec981df65aa81d0f304c0ee6bbf17db926f0b3e4b35e8fedf5c4eaacf2005", kill_on_drop: false }`
[INFO] [stdout] c82ec981df65aa81d0f304c0ee6bbf17db926f0b3e4b35e8fedf5c4eaacf2005
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5d8b986cbdbfa14e2717e0e9b2a6c50904bdd285a6767d361c0bb9d28769d44b
[INFO] running `Command { std: "docker" "start" "-a" "5d8b986cbdbfa14e2717e0e9b2a6c50904bdd285a6767d361c0bb9d28769d44b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling zmij v1.0.7
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling serde_json v1.0.148
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling syn v2.0.112
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling pastey v0.2.1
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling inventory v0.3.21
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling lru v0.16.2
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling uuid v1.19.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling schemars_derive v1.2.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling kodegen_mcp_schema_macros v0.10.25
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling rmcp-macros v0.11.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling schemars v1.2.0
[INFO] [stderr]    Compiling tokio-util v0.7.17
[INFO] [stderr]    Compiling kodegen_config v0.10.11
[INFO] [stderr]    Compiling rmcp v0.11.0
[INFO] [stderr]    Compiling kodegen_mcp_schema v0.10.14 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 08s
[INFO] running `Command { std: "docker" "inspect" "5d8b986cbdbfa14e2717e0e9b2a6c50904bdd285a6767d361c0bb9d28769d44b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d8b986cbdbfa14e2717e0e9b2a6c50904bdd285a6767d361c0bb9d28769d44b", kill_on_drop: false }`
[INFO] [stdout] 5d8b986cbdbfa14e2717e0e9b2a6c50904bdd285a6767d361c0bb9d28769d44b
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3ca9f61f8b067452f116b368174de64c0a782d8e49687925dab85b27a468595d
[INFO] running `Command { std: "docker" "start" "-a" "3ca9f61f8b067452f116b368174de64c0a782d8e49687925dab85b27a468595d", kill_on_drop: false }`
[INFO] [stderr]    Compiling kodegen_mcp_schema v0.10.14 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 26.96s
[INFO] running `Command { std: "docker" "inspect" "3ca9f61f8b067452f116b368174de64c0a782d8e49687925dab85b27a468595d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ca9f61f8b067452f116b368174de64c0a782d8e49687925dab85b27a468595d", kill_on_drop: false }`
[INFO] [stdout] 3ca9f61f8b067452f116b368174de64c0a782d8e49687925dab85b27a468595d
[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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+db823df02fd0c2cf67b43025ac3fef3f2d743245" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 0b4e90c7226e0ee4df7565fbdaac05479e3d4121c02ba016d9cc674b72c99513
[INFO] running `Command { std: "docker" "start" "-a" "0b4e90c7226e0ee4df7565fbdaac05479e3d4121c02ba016d9cc674b72c99513", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.74s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/kodegen_mcp_schema-143a2068a5a90aa6)
[INFO] [stderr]      Running tests/deserialize_test.rs (/opt/rustwide/target/debug/deps/deserialize_test-e59ff674b0f8c5ee)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test test_deserialize_missing_content ... ok
[INFO] [stdout] test test_deserialize_invalid_tool_name ... ok
[INFO] [stdout] test test_deserialize_terminal_output ... ok
[INFO] [stdout] test test_deserialize_terminal_output_with_error ... ok
[INFO] [stdout] test test_deserialize_malformed_json ... ok
[INFO] [stdout] test test_deserialize_terminal_output_still_running ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests kodegen_mcp_schema
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test src/tool/traits.rs - tool::traits::ToolExecutionContext::stream (line 793) ... FAILED
[INFO] [stdout] test src/tool/traits.rs - tool::traits::ToolExecutionContext::update (line 820) ... FAILED
[INFO] [stdout] test src/tool/traits.rs - tool::traits::ToolExecutionContext::is_cancelled (line 887) ... FAILED
[INFO] [stdout] test src/tool/traits.rs - tool::traits::ToolExecutionContext::progress (line 807) ... FAILED
[INFO] [stdout] test src/deserialize/mod.rs - deserialize::deserialize_tool_output (line 28) ... FAILED
[INFO] [stdout] test src/tool/traits.rs - tool::traits::ToolExecutionContext::notify (line 837) ... FAILED
[INFO] [stdout] test src/tool/traits.rs - tool::traits::Tool::execute (line 451) ... FAILED
[INFO] [stdout] test src/tool/mod.rs - tool (line 10) ... FAILED
[INFO] [stdout] test src/serde_helpers.rs - serde_helpers::string_or_vec (line 29) ... FAILED
[INFO] [stdout] test src/lib.rs - ToolArgs (line 68) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/tool/traits.rs - tool::traits::ToolExecutionContext::stream (line 793) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:795:1
[INFO] [stdout]     |
[INFO] [stdout] 795 | ctx.stream("npm info using npm@8.19.2\n").await.ok();
[INFO] [stdout]     | ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:796:1
[INFO] [stdout]     |
[INFO] [stdout] 796 | ctx.stream("added 234 packages in 15s\n").await.ok();
[INFO] [stdout]     | ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]    --> src/tool/traits.rs:795:43
[INFO] [stdout]     |
[INFO] [stdout] 793 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_tool_traits_rs_793_0() {
[INFO] [stdout]     |                                      ------------------------------------------- this is not `async`
[INFO] [stdout] 794 | // Terminal streaming command output
[INFO] [stdout] 795 | ctx.stream("npm info using npm@8.19.2\n").await.ok();
[INFO] [stdout]     |                                           ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]    --> src/tool/traits.rs:796:43
[INFO] [stdout]     |
[INFO] [stdout] 793 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_tool_traits_rs_793_0() {
[INFO] [stdout]     |                                      ------------------------------------------- this is not `async`
[INFO] [stdout] ...
[INFO] [stdout] 796 | ctx.stream("added 234 packages in 15s\n").await.ok();
[INFO] [stdout]     |                                           ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0728.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tool/traits.rs - tool::traits::ToolExecutionContext::update (line 820) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:821:1
[INFO] [stdout]     |
[INFO] [stdout] 821 | ctx.update(50.0, 100.0, "Generating embeddings 50/100").await.ok();
[INFO] [stdout]     | ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]    --> src/tool/traits.rs:821:57
[INFO] [stdout]     |
[INFO] [stdout] 820 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_tool_traits_rs_820_0() {
[INFO] [stdout]     |                                      ------------------------------------------- this is not `async`
[INFO] [stdout] 821 | ctx.update(50.0, 100.0, "Generating embeddings 50/100").await.ok();
[INFO] [stdout]     |                                                         ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0728.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tool/traits.rs - tool::traits::ToolExecutionContext::is_cancelled (line 887) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `items` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:888:13
[INFO] [stdout]     |
[INFO] [stdout] 888 | for item in items {
[INFO] [stdout]     |             ^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:889:8
[INFO] [stdout]     |
[INFO] [stdout] 889 |     if ctx.is_cancelled() {
[INFO] [stdout]     |        ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `McpError`
[INFO] [stdout]    --> src/tool/traits.rs:890:20
[INFO] [stdout]     |
[INFO] [stdout] 890 |         return Err(McpError::cancelled("Operation cancelled"));
[INFO] [stdout]     |                    ^^^^^^^^ use of undeclared type `McpError`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 887 + use kodegen_mcp_schema::McpError;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]    --> src/tool/traits.rs:892:24
[INFO] [stdout]     |
[INFO] [stdout] 887 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_tool_traits_rs_887_0() {
[INFO] [stdout]     |                                      ------------------------------------------- this is not `async`
[INFO] [stdout] ...
[INFO] [stdout] 892 |     process_item(item).await?;
[INFO] [stdout]     |                        ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `process_item` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:892:5
[INFO] [stdout]     |
[INFO] [stdout] 892 |     process_item(item).await?;
[INFO] [stdout]     |     ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0433, E0728.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tool/traits.rs - tool::traits::ToolExecutionContext::progress (line 807) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:809:1
[INFO] [stdout]     |
[INFO] [stdout] 809 | ctx.progress(50.0, 100.0).await.ok();
[INFO] [stdout]     | ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]    --> src/tool/traits.rs:809:27
[INFO] [stdout]     |
[INFO] [stdout] 807 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_tool_traits_rs_807_0() {
[INFO] [stdout]     |                                      ------------------------------------------- this is not `async`
[INFO] [stdout] 808 | // Processing 50 out of 100 files
[INFO] [stdout] 809 | ctx.progress(50.0, 100.0).await.ok();
[INFO] [stdout]     |                           ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0728.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/deserialize/mod.rs - deserialize::deserialize_tool_output (line 28) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `AnyToolOutput`
[INFO] [stdout]   --> src/deserialize/mod.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     AnyToolOutput::FsReadFile(output) => {
[INFO] [stdout]    |     ^^^^^^^^^^^^^ use of undeclared type `AnyToolOutput`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]    |
[INFO] [stdout] 27 + use kodegen_mcp_schema::AnyToolOutput;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used in a function that returns `Result` or `Option` (or another type that implements `FromResidual`)
[INFO] [stdout]   --> src/deserialize/mod.rs:37:63
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_deserialize_mod_rs_28_0() {
[INFO] [stdout]    |                                      ---------------------------------------------- this function should return `Result` or `Option` to accept `?`
[INFO] [stdout] ...
[INFO] [stdout] 37 | let result = deserialize_tool_output("fs_read_file", mcp_json)?;
[INFO] [stdout]    |                                                               ^ cannot use the `?` operator in a function that returns `()`
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding return type
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_deserialize_mod_rs_28_0() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |                                                                                     +++++++++++++++++++++++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tool/traits.rs - tool::traits::ToolExecutionContext::notify (line 837) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `ctx` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:839:1
[INFO] [stdout]     |
[INFO] [stdout] 839 | ctx.notify(lines_read as f64, None, Some("Reading file...")).await.ok();
[INFO] [stdout]     | ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `lines_read` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:839:12
[INFO] [stdout]     |
[INFO] [stdout] 839 | ctx.notify(lines_read as f64, None, Some("Reading file...")).await.ok();
[INFO] [stdout]     |            ^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks
[INFO] [stdout]    --> src/tool/traits.rs:839:62
[INFO] [stdout]     |
[INFO] [stdout] 837 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_tool_traits_rs_837_0() {
[INFO] [stdout]     |                                      ------------------------------------------- this is not `async`
[INFO] [stdout] 838 | // Unknown total, just report current count
[INFO] [stdout] 839 | ctx.notify(lines_read as f64, None, Some("Reading file...")).await.ok();
[INFO] [stdout]     |                                                              ^^^^^ only allowed inside `async` functions and blocks
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 3 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0728.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tool/traits.rs - tool::traits::Tool::execute (line 451) stdout ----
[INFO] [stdout] error: expected identifier, found `...`
[INFO] [stdout]    --> src/tool/traits.rs:460:60
[INFO] [stdout]     |
[INFO] [stdout] 460 |         Ok(ToolResponse::new(output_text, TerminalOutput { ... }))
[INFO] [stdout]     |                                           --------------   ^^^ expected identifier
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           while parsing this struct
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `Tool` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:452:6
[INFO] [stdout]     |
[INFO] [stdout] 452 | impl Tool for TerminalTool {
[INFO] [stdout]     |      ^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]     |
[INFO] [stdout] 451 + use kodegen_mcp_schema::Tool;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `TerminalTool` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:452:15
[INFO] [stdout]     |
[INFO] [stdout] 452 | impl Tool for TerminalTool {
[INFO] [stdout]     |               ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `TerminalInput` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:453:17
[INFO] [stdout]     |
[INFO] [stdout] 453 |     type Args = TerminalInput;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 451 + use kodegen_mcp_schema::terminal::TerminalInput;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `ToolExecutionContext` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:457:52
[INFO] [stdout]     |
[INFO] [stdout] 457 |     async fn execute(&self, args: Self::Args, ctx: ToolExecutionContext)
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 451 + use kodegen_mcp_schema::ToolExecutionContext;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `ToolResponse` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:458:19
[INFO] [stdout]     |
[INFO] [stdout] 458 |         -> Result<ToolResponse<TerminalOutput>, McpError>
[INFO] [stdout]     |                   ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 451 + use kodegen_mcp_schema::ToolResponse;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `TerminalOutput` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:458:32
[INFO] [stdout]     |
[INFO] [stdout] 458 |         -> Result<ToolResponse<TerminalOutput>, McpError>
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 451 + use kodegen_mcp_schema::terminal::TerminalOutput;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `McpError` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:458:49
[INFO] [stdout]     |
[INFO] [stdout] 458 |         -> Result<ToolResponse<TerminalOutput>, McpError>
[INFO] [stdout]     |                                                 ^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this enum
[INFO] [stdout]     |
[INFO] [stdout] 451 + use kodegen_mcp_schema::McpError;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ToolResponse`
[INFO] [stdout]    --> src/tool/traits.rs:460:12
[INFO] [stdout]     |
[INFO] [stdout] 460 |         Ok(ToolResponse::new(output_text, TerminalOutput { ... }))
[INFO] [stdout]     |            ^^^^^^^^^^^^ use of undeclared type `ToolResponse`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 451 + use kodegen_mcp_schema::ToolResponse;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `output_text` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:460:30
[INFO] [stdout]     |
[INFO] [stdout] 460 |         Ok(ToolResponse::new(output_text, TerminalOutput { ... }))
[INFO] [stdout]     |                              ^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `TerminalOutput` in this scope
[INFO] [stdout]    --> src/tool/traits.rs:460:43
[INFO] [stdout]     |
[INFO] [stdout] 460 |         Ok(ToolResponse::new(output_text, TerminalOutput { ... }))
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 451 + use kodegen_mcp_schema::terminal::TerminalOutput;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 11 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0422, E0425, E0433.
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tool/mod.rs - tool (line 10) stdout ----
[INFO] [stdout] error[E0437]: type `PromptArgs` is not a member of trait `Tool`
[INFO] [stdout]   --> src/tool/mod.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     type PromptArgs = MyPromptArgs;
[INFO] [stdout]    |     ^^^^^----------^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |    |
[INFO] [stdout]    |     |    help: there is an associated type with a similar name: `Prompts`
[INFO] [stdout]    |     not a member of trait `Tool`
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `prompt_arguments` is not a member of trait `Tool`
[INFO] [stdout]   --> src/tool/mod.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | /     fn prompt_arguments() -> Vec<PromptArgument> {
[INFO] [stdout] 40 | |         vec![]
[INFO] [stdout] 41 | |     }
[INFO] [stdout]    | |_____^ not a member of trait `Tool`
[INFO] [stdout] 
[INFO] [stdout] error[E0407]: method `prompt` is not a member of trait `Tool`
[INFO] [stdout]   --> src/tool/mod.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | /     async fn prompt(&self, _args: Self::PromptArgs) -> Result<Vec<PromptMessage>, McpError> {
[INFO] [stdout] 44 | |         Ok(vec![])
[INFO] [stdout] 45 | |     }
[INFO] [stdout]    | |_____^ not a member of trait `Tool`
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `MyArgs: ToolArgs` is not satisfied
[INFO] [stdout]    --> src/tool/mod.rs:29:17
[INFO] [stdout]     |
[INFO] [stdout]  29 |     type Args = MyArgs;
[INFO] [stdout]     |                 ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `ToolArgs` is not implemented for `MyArgs`
[INFO] [stdout]    --> src/tool/mod.rs:21:1
[INFO] [stdout]     |
[INFO] [stdout]  21 | pub struct MyArgs {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `ToolArgs`:
[INFO] [stdout]               AddIssueCommentArgs
[INFO] [stdout]               AddPromptArgs
[INFO] [stdout]               AddPullRequestReviewCommentArgs
[INFO] [stdout]               BrowserAgentArgs
[INFO] [stdout]               BrowserClickArgs
[INFO] [stdout]               BrowserExtractTextArgs
[INFO] [stdout]               BrowserNavigateArgs
[INFO] [stdout]               BrowserResearchArgs
[INFO] [stdout]             and 111 others
[INFO] [stdout] note: required by a bound in `kodegen_mcp_schema::Tool::Args`
[INFO] [stdout]    --> src/tool/traits.rs:272:16
[INFO] [stdout]     |
[INFO] [stdout] 272 |     type Args: ToolArgs;
[INFO] [stdout]     |                ^^^^^^^^ required by this bound in `Tool::Args`
[INFO] [stdout] 
[INFO] [stdout] error[E0050]: method `execute` has 2 parameters but the declaration in trait `execute` has 3
[INFO] [stdout]   --> src/tool/mod.rs:35:22
[INFO] [stdout]    |
[INFO] [stdout] 35 |     async fn execute(&self, args: Self::Args) -> Result<Value, McpError> {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^ expected 3 parameters, found 2
[INFO] [stdout]    |
[INFO] [stdout]    = note: `execute` from trait: `fn(&Self, <Self as kodegen_mcp_schema::Tool>::Args, ToolExecutionContext) -> impl Future<Output = Result<ToolResponse<<<Self as kodegen_mcp_schema::Tool>::Args as ToolArgs>::Output>, kodegen_mcp_schema::McpError>> + std::marker::Send`
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `Prompts`
[INFO] [stdout]   --> src/tool/mod.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Tool for MyTool {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^ missing `Prompts` in implementation
[INFO] [stdout]    |
[INFO] [stdout]    = help: implement the missing item: `type Prompts = /* Type */;`
[INFO] [stdout] 
[INFO] [stdout] error[E0220]: associated type `PromptArgs` not found for `Self`
[INFO] [stdout]   --> src/tool/mod.rs:43:41
[INFO] [stdout]    |
[INFO] [stdout] 43 |     async fn prompt(&self, _args: Self::PromptArgs) -> Result<Vec<PromptMessage>, McpError> {
[INFO] [stdout]    |                                         ^^^^^^^^^^ help: there is an associated type with a similar name: `Prompts`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 7 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0050, E0220, E0277, E0407, E0437.
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/serde_helpers.rs - serde_helpers::string_or_vec (line 29) stdout ----
[INFO] [stdout] error[E0433]: failed to resolve: unresolved import
[INFO] [stdout]   --> src/serde_helpers.rs:34:41
[INFO] [stdout]    |
[INFO] [stdout] 34 |     #[serde(default, deserialize_with = "crate::serde_helpers::string_or_vec")]
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unresolved import
[INFO] [stdout]    |
[INFO] [stdout] help: a similar path exists
[INFO] [stdout]    |
[INFO] [stdout] 34 -     #[serde(default, deserialize_with = "crate::serde_helpers::string_or_vec")]
[INFO] [stdout] 34 +     #[serde(default, deserialize_with = kodegen_mcp_schema::serde_helpers)]
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this module
[INFO] [stdout]    |
[INFO] [stdout] 29 + use kodegen_mcp_schema::serde_helpers;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0433`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - ToolArgs (line 68) stdout ----
[INFO] [stdout] error[E0405]: cannot find trait `ToolArgs` in this scope
[INFO] [stdout]   --> src/lib.rs:70:6
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl ToolArgs for TerminalInput {
[INFO] [stdout]    |      ^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]    |
[INFO] [stdout] 68 + use kodegen_mcp_schema::ToolArgs;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `TerminalInput` in this scope
[INFO] [stdout]   --> src/lib.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl ToolArgs for TerminalInput {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 68 + use kodegen_mcp_schema::terminal::TerminalInput;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `TerminalOutput` in this scope
[INFO] [stdout]   --> src/lib.rs:71:19
[INFO] [stdout]    |
[INFO] [stdout] 71 |     type Output = TerminalOutput;
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 68 + use kodegen_mcp_schema::terminal::TerminalOutput;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0405]: cannot find trait `Tool` in this scope
[INFO] [stdout]   --> src/lib.rs:75:6
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl Tool for TerminalTool {
[INFO] [stdout]    |      ^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this trait
[INFO] [stdout]    |
[INFO] [stdout] 68 + use kodegen_mcp_schema::Tool;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `TerminalTool` in this scope
[INFO] [stdout]   --> src/lib.rs:75:15
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl Tool for TerminalTool {
[INFO] [stdout]    |               ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find type `TerminalInput` in this scope
[INFO] [stdout]   --> src/lib.rs:76:17
[INFO] [stdout]    |
[INFO] [stdout] 76 |     type Args = TerminalInput;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 68 + use kodegen_mcp_schema::terminal::TerminalInput;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0405, E0425.
[INFO] [stdout] For more information about an error, try `rustc --explain E0405`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/deserialize/mod.rs - deserialize::deserialize_tool_output (line 28)
[INFO] [stdout]     src/lib.rs - ToolArgs (line 68)
[INFO] [stdout]     src/serde_helpers.rs - serde_helpers::string_or_vec (line 29)
[INFO] [stdout]     src/tool/mod.rs - tool (line 10)
[INFO] [stdout]     src/tool/traits.rs - tool::traits::Tool::execute (line 451)
[INFO] [stdout]     src/tool/traits.rs - tool::traits::ToolExecutionContext::is_cancelled (line 887)
[INFO] [stdout]     src/tool/traits.rs - tool::traits::ToolExecutionContext::notify (line 837)
[INFO] [stdout]     src/tool/traits.rs - tool::traits::ToolExecutionContext::progress (line 807)
[INFO] [stdout]     src/tool/traits.rs - tool::traits::ToolExecutionContext::stream (line 793)
[INFO] [stdout]     src/tool/traits.rs - tool::traits::ToolExecutionContext::update (line 820)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 10 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.33s; merged doctests compilation took 0.54s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "0b4e90c7226e0ee4df7565fbdaac05479e3d4121c02ba016d9cc674b72c99513", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0b4e90c7226e0ee4df7565fbdaac05479e3d4121c02ba016d9cc674b72c99513", kill_on_drop: false }`
[INFO] [stdout] 0b4e90c7226e0ee4df7565fbdaac05479e3d4121c02ba016d9cc674b72c99513
