[INFO] cloning repository https://github.com/pkptzx/xcgui-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pkptzx/xcgui-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpkptzx%2Fxcgui-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpkptzx%2Fxcgui-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e3984ebbe266aefa006ec2765bf67b7342f966f2 [INFO] checking pkptzx/xcgui-rs against try#f3d95de532264a1215023baa665c0028aecf74b1 for pr-148477 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpkptzx%2Fxcgui-rs" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/pkptzx/xcgui-rs [INFO] finished tweaking git repo https://github.com/pkptzx/xcgui-rs [INFO] tweaked toml for git repo https://github.com/pkptzx/xcgui-rs written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/pkptzx/xcgui-rs on toolchain f3d95de532264a1215023baa665c0028aecf74b1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f3d95de532264a1215023baa665c0028aecf74b1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/pkptzx/xcgui-rs 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" "+f3d95de532264a1215023baa665c0028aecf74b1" "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 pkptzx/xcgui-rs against try#f3d95de532264a1215023baa665c0028aecf74b1 for pr-148477 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpkptzx%2Fxcgui-rs" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/pkptzx/xcgui-rs [INFO] finished tweaking git repo https://github.com/pkptzx/xcgui-rs [INFO] tweaked toml for git repo https://github.com/pkptzx/xcgui-rs written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/pkptzx/xcgui-rs on toolchain f3d95de532264a1215023baa665c0028aecf74b1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f3d95de532264a1215023baa665c0028aecf74b1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/pkptzx/xcgui-rs 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" "+f3d95de532264a1215023baa665c0028aecf74b1" "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-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+f3d95de532264a1215023baa665c0028aecf74b1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e5ed3801c4e7d264e99c6fc0af80ef8045beb069e242e814544955abde97a43a [INFO] running `Command { std: "docker" "start" "-a" "e5ed3801c4e7d264e99c6fc0af80ef8045beb069e242e814544955abde97a43a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e5ed3801c4e7d264e99c6fc0af80ef8045beb069e242e814544955abde97a43a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e5ed3801c4e7d264e99c6fc0af80ef8045beb069e242e814544955abde97a43a", kill_on_drop: false }` [INFO] [stdout] e5ed3801c4e7d264e99c6fc0af80ef8045beb069e242e814544955abde97a43a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+f3d95de532264a1215023baa665c0028aecf74b1" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 92b715fb2efde8a5a76dd2863a0bef04aca56a9d3e80afa42a2eebeaa249f57a [INFO] running `Command { std: "docker" "start" "-a" "92b715fb2efde8a5a76dd2863a0bef04aca56a9d3e80afa42a2eebeaa249f57a", kill_on_drop: false }` [INFO] [stderr] Checking libloading v0.8.6 [INFO] [stderr] Checking widestring v1.2.0 [INFO] [stderr] Checking xcgui-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: method `XC_itow` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn XC_itow(&self, nValue: i32) -> Result> { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `xc_itow` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `nValue` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:95:27 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn XC_itow(&self, nValue: i32) -> Result> { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `n_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XInitXCGUI` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 107 | pub fn XInitXCGUI(&self , bD2D:bool)->Result>{ [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `xinit_xcgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `bD2D` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:107:31 [INFO] [stdout] | [INFO] [stdout] 107 | pub fn XInitXCGUI(&self , bD2D:bool)->Result>{ [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `b_d2_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XC_itow` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:95:12 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn XC_itow(&self, nValue: i32) -> Result> { [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `xc_itow` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `bD2D` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | bD2D: std::os::raw::c_int, // BOOL 类型(对应 C 的 int) [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `b_d2_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `_XInitXCGUI` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let _XInitXCGUI: Symbol = unsafe { self.xclib.get(b"XInitXCGUI") }?; [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `_xinit_xcgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XWnd_Create` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:118:12 [INFO] [stdout] | [INFO] [stdout] 118 | pub fn XWnd_Create(&self,x:i32,y:i32,cx:i32,cy:i32,title:&str)-> Result>{ [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `xwnd_create` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `nValue` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:95:27 [INFO] [stdout] | [INFO] [stdout] 95 | pub fn XC_itow(&self, nValue: i32) -> Result> { [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `n_value` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `pTitle` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:125:17 [INFO] [stdout] | [INFO] [stdout] 125 | pTitle: *const u16, // 对应 const wchar_t* [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `p_title` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `hWndParent` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | hWndParent: isize, // HWND 类型 [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `h_wnd_parent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `XCStyle` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:127:17 [INFO] [stdout] | [INFO] [stdout] 127 | XCStyle: std::os::raw::c_int, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `xcstyle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XInitXCGUI` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:107:12 [INFO] [stdout] | [INFO] [stdout] 107 | pub fn XInitXCGUI(&self , bD2D:bool)->Result>{ [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `xinit_xcgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `_XWnd_Create` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | let _XWnd_Create: Symbol = [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `_xwnd_create` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XWnd_Show` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn XWnd_Show(&self , hWindow: isize,bShow:bool)->Result<(), Box>{ [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `xwnd_show` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `bD2D` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:107:31 [INFO] [stdout] | [INFO] [stdout] 107 | pub fn XInitXCGUI(&self , bD2D:bool)->Result>{ [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `b_d2_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `hWindow` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:139:30 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn XWnd_Show(&self , hWindow: isize,bShow:bool)->Result<(), Box>{ [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `h_window` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `bShow` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:139:45 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn XWnd_Show(&self , hWindow: isize,bShow:bool)->Result<(), Box>{ [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `b_show` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `bD2D` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | bD2D: std::os::raw::c_int, // BOOL 类型(对应 C 的 int) [INFO] [stdout] | ^^^^ help: convert the identifier to snake case: `b_d2_d` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `hWindow` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:141:13 [INFO] [stdout] | [INFO] [stdout] 141 | hWindow: isize, // HWINDOW 类型(句柄) [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `h_window` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `bShow` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | bShow: std::os::raw::c_int, // BOOL 类型(对应 C 的 int) [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `b_show` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XRunXCGUI` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:155:12 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn XRunXCGUI(&self )->Result<(), Box>{ [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `xrun_xcgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `xRunXCGUI` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let xRunXCGUI: Symbol = unsafe { self.xclib.get(b"XRunXCGUI") }?; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `x_run_xcgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `_XInitXCGUI` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | let _XInitXCGUI: Symbol = unsafe { self.xclib.get(b"XInitXCGUI") }?; [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case: `_xinit_xcgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XWnd_Create` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:118:12 [INFO] [stdout] | [INFO] [stdout] 118 | pub fn XWnd_Create(&self,x:i32,y:i32,cx:i32,cy:i32,title:&str)-> Result>{ [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `xwnd_create` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `pTitle` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:125:17 [INFO] [stdout] | [INFO] [stdout] 125 | pTitle: *const u16, // 对应 const wchar_t* [INFO] [stdout] | ^^^^^^ help: convert the identifier to snake case: `p_title` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `hWndParent` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:126:17 [INFO] [stdout] | [INFO] [stdout] 126 | hWndParent: isize, // HWND 类型 [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `h_wnd_parent` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `XCStyle` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:127:17 [INFO] [stdout] | [INFO] [stdout] 127 | XCStyle: std::os::raw::c_int, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `xcstyle` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `_XWnd_Create` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | let _XWnd_Create: Symbol = [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `_xwnd_create` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XWnd_Show` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:139:12 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn XWnd_Show(&self , hWindow: isize,bShow:bool)->Result<(), Box>{ [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `xwnd_show` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `hWindow` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:139:30 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn XWnd_Show(&self , hWindow: isize,bShow:bool)->Result<(), Box>{ [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `h_window` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `bShow` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:139:45 [INFO] [stdout] | [INFO] [stdout] 139 | pub fn XWnd_Show(&self , hWindow: isize,bShow:bool)->Result<(), Box>{ [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `b_show` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `hWindow` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:141:13 [INFO] [stdout] | [INFO] [stdout] 141 | hWindow: isize, // HWINDOW 类型(句柄) [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `h_window` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `bShow` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:142:13 [INFO] [stdout] | [INFO] [stdout] 142 | bShow: std::os::raw::c_int, // BOOL 类型(对应 C 的 int) [INFO] [stdout] | ^^^^^ help: convert the identifier to snake case: `b_show` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `XRunXCGUI` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:155:12 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn XRunXCGUI(&self )->Result<(), Box>{ [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `xrun_xcgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `xRunXCGUI` should have a snake case name [INFO] [stdout] --> src/xcgui.rs:157:13 [INFO] [stdout] | [INFO] [stdout] 157 | let xRunXCGUI: Symbol = unsafe { self.xclib.get(b"XRunXCGUI") }?; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `x_run_xcgui` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.24s [INFO] running `Command { std: "docker" "inspect" "92b715fb2efde8a5a76dd2863a0bef04aca56a9d3e80afa42a2eebeaa249f57a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "92b715fb2efde8a5a76dd2863a0bef04aca56a9d3e80afa42a2eebeaa249f57a", kill_on_drop: false }` [INFO] [stdout] 92b715fb2efde8a5a76dd2863a0bef04aca56a9d3e80afa42a2eebeaa249f57a