Dec 18 00:29:55.728 INFO checking eugeneyche/breakout against master#96d1334e567237b1507cd277938e7ae2de75ff51 for pr-54252 Dec 18 00:29:55.728 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-54252/worker-4/master#96d1334e567237b1507cd277938e7ae2de75ff51:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-54252/sources/master#96d1334e567237b1507cd277938e7ae2de75ff51/gh/eugeneyche/breakout:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+96d1334e567237b1507cd277938e7ae2de75ff51-alt" "check" "--frozen" "--all" "--all-targets"` Dec 18 00:29:56.258 INFO [stdout] 053bda3021176fde6910f499ee048ea893479b300b096e589b5b2a69f9d2a2e3 Dec 18 00:29:56.260 INFO running `"docker" "start" "-a" "053bda3021176fde6910f499ee048ea893479b300b096e589b5b2a69f9d2a2e3"` Dec 18 00:29:58.643 INFO [stderr] Compiling libloading v0.5.0 Dec 18 00:29:58.648 INFO [stderr] Compiling freetype-sys v0.6.0 Dec 18 00:29:58.653 INFO [stderr] Compiling gl v0.10.0 Dec 18 00:30:02.196 INFO [stderr] Checking freetype-rs v0.18.0 Dec 18 00:30:02.196 INFO [stderr] Checking dlib v0.4.1 Dec 18 00:30:02.812 INFO [stderr] Checking wayland-sys v0.12.5 Dec 18 00:30:03.844 INFO [stderr] Checking wayland-client v0.12.5 Dec 18 00:30:05.896 INFO [stderr] Checking wayland-protocols v0.12.5 Dec 18 00:30:05.896 INFO [stderr] Checking wayland-kbd v0.13.1 Dec 18 00:30:11.184 INFO [stderr] Checking wayland-window v0.13.3 Dec 18 00:30:12.585 INFO [stderr] Checking winit v0.13.1 Dec 18 00:30:15.740 INFO [stderr] Checking glutin v0.15.0 Dec 18 00:30:17.026 INFO [stderr] Checking breakout v0.1.0 (/opt/crater/workdir) Dec 18 00:30:17.957 INFO [stderr] warning: unnecessary parentheses around `if` condition Dec 18 00:30:17.957 INFO [stderr] --> src/breakout.rs:243:20 Dec 18 00:30:17.957 INFO [stderr] | Dec 18 00:30:17.958 INFO [stderr] 243 | if (key_state == ElementState::Pressed) { Dec 18 00:30:17.958 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses Dec 18 00:30:17.958 INFO [stderr] | Dec 18 00:30:17.959 INFO [stderr] = note: #[warn(unused_parens)] on by default Dec 18 00:30:17.959 INFO [stderr] Dec 18 00:30:17.959 INFO [stderr] warning: unnecessary parentheses around `if` condition Dec 18 00:30:17.959 INFO [stderr] --> src/breakout.rs:266:20 Dec 18 00:30:17.959 INFO [stderr] | Dec 18 00:30:17.959 INFO [stderr] 266 | if (key_state == ElementState::Pressed) { Dec 18 00:30:17.959 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses Dec 18 00:30:17.959 INFO [stderr] Dec 18 00:30:17.972 INFO [stderr] warning: unused imports: `ElementState`, `MouseButton`, `VirtualKeyCode` Dec 18 00:30:17.972 INFO [stderr] --> src/main.rs:15:5 Dec 18 00:30:17.972 INFO [stderr] | Dec 18 00:30:17.972 INFO [stderr] 15 | ElementState, Dec 18 00:30:17.972 INFO [stderr] | ^^^^^^^^^^^^ Dec 18 00:30:17.972 INFO [stderr] ... Dec 18 00:30:17.972 INFO [stderr] 22 | MouseButton, Dec 18 00:30:17.972 INFO [stderr] | ^^^^^^^^^^^ Dec 18 00:30:17.972 INFO [stderr] 23 | VirtualKeyCode, Dec 18 00:30:17.972 INFO [stderr] | ^^^^^^^^^^^^^^ Dec 18 00:30:17.992 INFO [stderr] | Dec 18 00:30:17.993 INFO [stderr] = note: #[warn(unused_imports)] on by default Dec 18 00:30:17.993 INFO [stderr] Dec 18 00:30:18.036 INFO [stderr] warning: unnecessary parentheses around `if` condition Dec 18 00:30:18.037 INFO [stderr] --> src/breakout.rs:243:20 Dec 18 00:30:18.037 INFO [stderr] | Dec 18 00:30:18.037 INFO [stderr] 243 | if (key_state == ElementState::Pressed) { Dec 18 00:30:18.038 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses Dec 18 00:30:18.048 INFO [stderr] | Dec 18 00:30:18.049 INFO [stderr] = note: #[warn(unused_parens)] on by default Dec 18 00:30:18.049 INFO [stderr] Dec 18 00:30:18.049 INFO [stderr] warning: unnecessary parentheses around `if` condition Dec 18 00:30:18.049 INFO [stderr] --> src/breakout.rs:266:20 Dec 18 00:30:18.050 INFO [stderr] | Dec 18 00:30:18.050 INFO [stderr] 266 | if (key_state == ElementState::Pressed) { Dec 18 00:30:18.050 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses Dec 18 00:30:18.050 INFO [stderr] Dec 18 00:30:18.053 INFO [stderr] warning: unused imports: `ElementState`, `MouseButton`, `VirtualKeyCode` Dec 18 00:30:18.053 INFO [stderr] --> src/main.rs:15:5 Dec 18 00:30:18.053 INFO [stderr] | Dec 18 00:30:18.053 INFO [stderr] 15 | ElementState, Dec 18 00:30:18.054 INFO [stderr] | ^^^^^^^^^^^^ Dec 18 00:30:18.054 INFO [stderr] ... Dec 18 00:30:18.054 INFO [stderr] 22 | MouseButton, Dec 18 00:30:18.054 INFO [stderr] | ^^^^^^^^^^^ Dec 18 00:30:18.054 INFO [stderr] 23 | VirtualKeyCode, Dec 18 00:30:18.054 INFO [stderr] | ^^^^^^^^^^^^^^ Dec 18 00:30:18.054 INFO [stderr] | Dec 18 00:30:18.054 INFO [stderr] = note: #[warn(unused_imports)] on by default Dec 18 00:30:18.060 INFO [stderr] Dec 18 00:30:18.384 INFO [stderr] warning: unused variable: `tr` Dec 18 00:30:18.384 INFO [stderr] --> src/collision.rs:120:28 Dec 18 00:30:18.384 INFO [stderr] | Dec 18 00:30:18.384 INFO [stderr] 120 | if let Some((tl, side, tr)) = solve_line_rect(seg, Rectangle::new( Dec 18 00:30:18.384 INFO [stderr] | ^^ help: consider using `_tr` instead Dec 18 00:30:18.384 INFO [stderr] | Dec 18 00:30:18.384 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 18 00:30:18.384 INFO [stderr] Dec 18 00:30:18.384 INFO [stderr] warning: unused variable: `button` Dec 18 00:30:18.384 INFO [stderr] --> src/breakout.rs:230:39 Dec 18 00:30:18.384 INFO [stderr] | Dec 18 00:30:18.384 INFO [stderr] 230 | pub fn on_mouse_button(&mut self, button: MouseButton, state: ElementState) { } Dec 18 00:30:18.384 INFO [stderr] | ^^^^^^ help: consider using `_button` instead Dec 18 00:30:18.384 INFO [stderr] Dec 18 00:30:18.384 INFO [stderr] warning: unused variable: `state` Dec 18 00:30:18.385 INFO [stderr] --> src/breakout.rs:230:60 Dec 18 00:30:18.385 INFO [stderr] | Dec 18 00:30:18.385 INFO [stderr] 230 | pub fn on_mouse_button(&mut self, button: MouseButton, state: ElementState) { } Dec 18 00:30:18.385 INFO [stderr] | ^^^^^ help: consider using `_state` instead Dec 18 00:30:18.385 INFO [stderr] Dec 18 00:30:18.385 INFO [stderr] warning: unused variable: `x` Dec 18 00:30:18.385 INFO [stderr] --> src/breakout.rs:232:39 Dec 18 00:30:18.385 INFO [stderr] | Dec 18 00:30:18.385 INFO [stderr] 232 | pub fn on_mouse_motion(&mut self, x: f32, y: f32) { } Dec 18 00:30:18.385 INFO [stderr] | ^ help: consider using `_x` instead Dec 18 00:30:18.385 INFO [stderr] Dec 18 00:30:18.385 INFO [stderr] warning: unused variable: `y` Dec 18 00:30:18.385 INFO [stderr] --> src/breakout.rs:232:47 Dec 18 00:30:18.385 INFO [stderr] | Dec 18 00:30:18.385 INFO [stderr] 232 | pub fn on_mouse_motion(&mut self, x: f32, y: f32) { } Dec 18 00:30:18.385 INFO [stderr] | ^ help: consider using `_y` instead Dec 18 00:30:18.385 INFO [stderr] Dec 18 00:30:18.385 INFO [stderr] warning: unused variable: `w` Dec 18 00:30:18.385 INFO [stderr] --> src/breakout.rs:273:42 Dec 18 00:30:18.385 INFO [stderr] | Dec 18 00:30:18.385 INFO [stderr] 273 | pub fn on_viewport_change(&mut self, w: u32, h: u32) { Dec 18 00:30:18.385 INFO [stderr] | ^ help: consider using `_w` instead Dec 18 00:30:18.385 INFO [stderr] Dec 18 00:30:18.385 INFO [stderr] warning: unused variable: `h` Dec 18 00:30:18.385 INFO [stderr] --> src/breakout.rs:273:50 Dec 18 00:30:18.385 INFO [stderr] | Dec 18 00:30:18.385 INFO [stderr] 273 | pub fn on_viewport_change(&mut self, w: u32, h: u32) { Dec 18 00:30:18.385 INFO [stderr] | ^ help: consider using `_h` instead Dec 18 00:30:18.385 INFO [stderr] Dec 18 00:30:18.528 INFO [stderr] warning: function is never used: `check_circle_contains` Dec 18 00:30:18.528 INFO [stderr] --> src/collision.rs:56:1 Dec 18 00:30:18.528 INFO [stderr] | Dec 18 00:30:18.528 INFO [stderr] 56 | pub fn check_circle_contains(circle: Circle, p: Vec2) -> bool { Dec 18 00:30:18.528 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.528 INFO [stderr] | Dec 18 00:30:18.528 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 18 00:30:18.528 INFO [stderr] Dec 18 00:30:18.528 INFO [stderr] warning: function is never used: `solve_line_circle` Dec 18 00:30:18.528 INFO [stderr] --> src/collision.rs:77:1 Dec 18 00:30:18.528 INFO [stderr] | Dec 18 00:30:18.528 INFO [stderr] 77 | pub fn solve_line_circle(line: LineSegment, circle: Circle) -> Option { Dec 18 00:30:18.528 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.528 INFO [stderr] Dec 18 00:30:18.528 INFO [stderr] warning: struct is never constructed: `FontMeasure` Dec 18 00:30:18.528 INFO [stderr] --> src/fonts.rs:29:1 Dec 18 00:30:18.528 INFO [stderr] | Dec 18 00:30:18.528 INFO [stderr] 29 | pub struct FontMeasure { Dec 18 00:30:18.528 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.528 INFO [stderr] Dec 18 00:30:18.528 INFO [stderr] warning: method is never used: `measure` Dec 18 00:30:18.528 INFO [stderr] --> src/fonts.rs:41:5 Dec 18 00:30:18.528 INFO [stderr] | Dec 18 00:30:18.528 INFO [stderr] 41 | pub fn measure(&self, text: &str) -> FontMeasure { Dec 18 00:30:18.528 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.528 INFO [stderr] Dec 18 00:30:18.540 INFO [stderr] warning: method is never used: `new` Dec 18 00:30:18.540 INFO [stderr] --> src/renderer.rs:110:5 Dec 18 00:30:18.540 INFO [stderr] | Dec 18 00:30:18.540 INFO [stderr] 110 | pub fn new(p: Vec2, w: f32, h: f32) -> Self { Dec 18 00:30:18.540 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.540 INFO [stderr] Dec 18 00:30:18.540 INFO [stderr] warning: method is never used: `draw` Dec 18 00:30:18.540 INFO [stderr] --> src/renderer.rs:282:5 Dec 18 00:30:18.540 INFO [stderr] | Dec 18 00:30:18.540 INFO [stderr] 282 | pub fn draw(&mut self, from_x: f32, from_y: f32, to_x: f32, to_y: f32, color: &[f32; 4]) { Dec 18 00:30:18.540 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.540 INFO [stderr] Dec 18 00:30:18.540 INFO [stderr] warning: method is never used: `draw_line` Dec 18 00:30:18.540 INFO [stderr] --> src/renderer.rs:423:5 Dec 18 00:30:18.540 INFO [stderr] | Dec 18 00:30:18.540 INFO [stderr] 423 | pub fn draw_line(&mut self, from: Vec2, to: Vec2, color: Color) { Dec 18 00:30:18.540 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.540 INFO [stderr] Dec 18 00:30:18.646 INFO [stderr] warning: unused variable: `tr` Dec 18 00:30:18.646 INFO [stderr] --> src/collision.rs:120:28 Dec 18 00:30:18.646 INFO [stderr] | Dec 18 00:30:18.646 INFO [stderr] 120 | if let Some((tl, side, tr)) = solve_line_rect(seg, Rectangle::new( Dec 18 00:30:18.646 INFO [stderr] | ^^ help: consider using `_tr` instead Dec 18 00:30:18.646 INFO [stderr] | Dec 18 00:30:18.646 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 18 00:30:18.646 INFO [stderr] Dec 18 00:30:18.646 INFO [stderr] warning: unused variable: `button` Dec 18 00:30:18.646 INFO [stderr] --> src/breakout.rs:230:39 Dec 18 00:30:18.646 INFO [stderr] | Dec 18 00:30:18.646 INFO [stderr] 230 | pub fn on_mouse_button(&mut self, button: MouseButton, state: ElementState) { } Dec 18 00:30:18.646 INFO [stderr] | ^^^^^^ help: consider using `_button` instead Dec 18 00:30:18.646 INFO [stderr] Dec 18 00:30:18.646 INFO [stderr] warning: unused variable: `state` Dec 18 00:30:18.646 INFO [stderr] --> src/breakout.rs:230:60 Dec 18 00:30:18.647 INFO [stderr] | Dec 18 00:30:18.647 INFO [stderr] 230 | pub fn on_mouse_button(&mut self, button: MouseButton, state: ElementState) { } Dec 18 00:30:18.647 INFO [stderr] | ^^^^^ help: consider using `_state` instead Dec 18 00:30:18.647 INFO [stderr] Dec 18 00:30:18.647 INFO [stderr] warning: unused variable: `x` Dec 18 00:30:18.647 INFO [stderr] --> src/breakout.rs:232:39 Dec 18 00:30:18.647 INFO [stderr] | Dec 18 00:30:18.647 INFO [stderr] 232 | pub fn on_mouse_motion(&mut self, x: f32, y: f32) { } Dec 18 00:30:18.647 INFO [stderr] | ^ help: consider using `_x` instead Dec 18 00:30:18.647 INFO [stderr] Dec 18 00:30:18.647 INFO [stderr] warning: unused variable: `y` Dec 18 00:30:18.647 INFO [stderr] --> src/breakout.rs:232:47 Dec 18 00:30:18.647 INFO [stderr] | Dec 18 00:30:18.647 INFO [stderr] 232 | pub fn on_mouse_motion(&mut self, x: f32, y: f32) { } Dec 18 00:30:18.647 INFO [stderr] | ^ help: consider using `_y` instead Dec 18 00:30:18.647 INFO [stderr] Dec 18 00:30:18.647 INFO [stderr] warning: unused variable: `w` Dec 18 00:30:18.647 INFO [stderr] --> src/breakout.rs:273:42 Dec 18 00:30:18.647 INFO [stderr] | Dec 18 00:30:18.647 INFO [stderr] 273 | pub fn on_viewport_change(&mut self, w: u32, h: u32) { Dec 18 00:30:18.647 INFO [stderr] | ^ help: consider using `_w` instead Dec 18 00:30:18.647 INFO [stderr] Dec 18 00:30:18.647 INFO [stderr] warning: unused variable: `h` Dec 18 00:30:18.647 INFO [stderr] --> src/breakout.rs:273:50 Dec 18 00:30:18.647 INFO [stderr] | Dec 18 00:30:18.647 INFO [stderr] 273 | pub fn on_viewport_change(&mut self, w: u32, h: u32) { Dec 18 00:30:18.647 INFO [stderr] | ^ help: consider using `_h` instead Dec 18 00:30:18.647 INFO [stderr] Dec 18 00:30:18.761 INFO [stderr] warning: function is never used: `check_circle_contains` Dec 18 00:30:18.761 INFO [stderr] --> src/collision.rs:56:1 Dec 18 00:30:18.761 INFO [stderr] | Dec 18 00:30:18.761 INFO [stderr] 56 | pub fn check_circle_contains(circle: Circle, p: Vec2) -> bool { Dec 18 00:30:18.761 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.761 INFO [stderr] | Dec 18 00:30:18.761 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 18 00:30:18.761 INFO [stderr] Dec 18 00:30:18.761 INFO [stderr] warning: function is never used: `solve_line_circle` Dec 18 00:30:18.761 INFO [stderr] --> src/collision.rs:77:1 Dec 18 00:30:18.761 INFO [stderr] | Dec 18 00:30:18.761 INFO [stderr] 77 | pub fn solve_line_circle(line: LineSegment, circle: Circle) -> Option { Dec 18 00:30:18.761 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.761 INFO [stderr] Dec 18 00:30:18.761 INFO [stderr] warning: struct is never constructed: `FontMeasure` Dec 18 00:30:18.761 INFO [stderr] --> src/fonts.rs:29:1 Dec 18 00:30:18.761 INFO [stderr] | Dec 18 00:30:18.761 INFO [stderr] 29 | pub struct FontMeasure { Dec 18 00:30:18.761 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.761 INFO [stderr] Dec 18 00:30:18.761 INFO [stderr] warning: method is never used: `measure` Dec 18 00:30:18.761 INFO [stderr] --> src/fonts.rs:41:5 Dec 18 00:30:18.761 INFO [stderr] | Dec 18 00:30:18.761 INFO [stderr] 41 | pub fn measure(&self, text: &str) -> FontMeasure { Dec 18 00:30:18.761 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.761 INFO [stderr] Dec 18 00:30:18.761 INFO [stderr] warning: method is never used: `new` Dec 18 00:30:18.761 INFO [stderr] --> src/renderer.rs:110:5 Dec 18 00:30:18.761 INFO [stderr] | Dec 18 00:30:18.761 INFO [stderr] 110 | pub fn new(p: Vec2, w: f32, h: f32) -> Self { Dec 18 00:30:18.762 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.762 INFO [stderr] Dec 18 00:30:18.762 INFO [stderr] warning: method is never used: `draw` Dec 18 00:30:18.762 INFO [stderr] --> src/renderer.rs:282:5 Dec 18 00:30:18.762 INFO [stderr] | Dec 18 00:30:18.762 INFO [stderr] 282 | pub fn draw(&mut self, from_x: f32, from_y: f32, to_x: f32, to_y: f32, color: &[f32; 4]) { Dec 18 00:30:18.762 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.762 INFO [stderr] Dec 18 00:30:18.762 INFO [stderr] warning: method is never used: `draw_line` Dec 18 00:30:18.762 INFO [stderr] --> src/renderer.rs:423:5 Dec 18 00:30:18.762 INFO [stderr] | Dec 18 00:30:18.762 INFO [stderr] 423 | pub fn draw_line(&mut self, from: Vec2, to: Vec2, color: Color) { Dec 18 00:30:18.762 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 18 00:30:18.762 INFO [stderr] Dec 18 00:30:18.837 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 20.34s Dec 18 00:30:19.981 INFO running `"docker" "inspect" "053bda3021176fde6910f499ee048ea893479b300b096e589b5b2a69f9d2a2e3"` Dec 18 00:30:20.364 INFO running `"docker" "rm" "-f" "053bda3021176fde6910f499ee048ea893479b300b096e589b5b2a69f9d2a2e3"` Dec 18 00:30:20.704 INFO [stdout] 053bda3021176fde6910f499ee048ea893479b300b096e589b5b2a69f9d2a2e3