[INFO] updating cached repository psas/av4-fc [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/psas/av4-fc [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/psas/av4-fc" "work/ex/clippy-test-run/sources/stable/gh/psas/av4-fc"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/psas/av4-fc'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/psas/av4-fc" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/psas/av4-fc"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/psas/av4-fc'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b7596aa4dfe8604b9aceb4dab5d1bf46544ac562 [INFO] sha for GitHub repo psas/av4-fc: b7596aa4dfe8604b9aceb4dab5d1bf46544ac562 [INFO] validating manifest of psas/av4-fc on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of psas/av4-fc on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing psas/av4-fc [INFO] finished frobbing psas/av4-fc [INFO] frobbed toml for psas/av4-fc written to work/ex/clippy-test-run/sources/stable/gh/psas/av4-fc/Cargo.toml [INFO] started frobbing psas/av4-fc [INFO] finished frobbing psas/av4-fc [INFO] frobbed toml for psas/av4-fc written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/psas/av4-fc/Cargo.toml [INFO] crate psas/av4-fc has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting psas/av4-fc against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/psas/av4-fc:/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" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 2e64ad0c7a7a08654b933c8ff2166c787b6d7f52dd1e43ae433edeb5b69cec33 [INFO] running `"docker" "start" "-a" "2e64ad0c7a7a08654b933c8ff2166c787b6d7f52dd1e43ae433edeb5b69cec33"` [INFO] [stderr] Compiling rand v0.3.15 [INFO] [stderr] Checking nix v0.6.0 [INFO] [stderr] Compiling tempdir v0.3.5 [INFO] [stderr] Compiling skeptic v0.5.0 [INFO] [stderr] Compiling i2cdev v0.3.1 [INFO] [stderr] Checking mpu9150 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | accel: [(try!(rdr.read_i16::()) as f32) / 16384.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 84 | accel: [f32::from(match $ expr { [INFO] [stderr] 85 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 86 | :: Err ( err ) => { [INFO] [stderr] 87 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 88 | $ crate :: convert :: From :: from ( err ) ) } }) / 16384.0, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:85:17 [INFO] [stderr] | [INFO] [stderr] 85 | (try!(rdr.read_i16::()) as f32) / 16384.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 85 | f32::from(match $ expr { [INFO] [stderr] 86 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 87 | :: Err ( err ) => { [INFO] [stderr] 88 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 89 | $ crate :: convert :: From :: from ( err ) ) } }) / 16384.0, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:86:17 [INFO] [stderr] | [INFO] [stderr] 86 | (try!(rdr.read_i16::()) as f32) / 16384.0], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 86 | f32::from(match $ expr { [INFO] [stderr] 87 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 88 | :: Err ( err ) => { [INFO] [stderr] 89 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 90 | $ crate :: convert :: From :: from ( err ) ) } }) / 16384.0], [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:87:15 [INFO] [stderr] | [INFO] [stderr] 87 | temp: (try!(rdr.read_i16::()) as f32) / 340.0 + 35.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 87 | temp: f32::from(match $ expr { [INFO] [stderr] 88 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 89 | :: Err ( err ) => { [INFO] [stderr] 90 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 91 | $ crate :: convert :: From :: from ( err ) ) } }) / 340.0 + 35.0, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:88:16 [INFO] [stderr] | [INFO] [stderr] 88 | gyro: [(try!(rdr.read_i16::()) as f32) / 131.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 88 | gyro: [f32::from(match $ expr { [INFO] [stderr] 89 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 90 | :: Err ( err ) => { [INFO] [stderr] 91 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 92 | $ crate :: convert :: From :: from ( err ) ) } }) / 131.0, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:89:16 [INFO] [stderr] | [INFO] [stderr] 89 | (try!(rdr.read_i16::()) as f32) / 131.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 89 | f32::from(match $ expr { [INFO] [stderr] 90 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 91 | :: Err ( err ) => { [INFO] [stderr] 92 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 93 | $ crate :: convert :: From :: from ( err ) ) } }) / 131.0, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:90:16 [INFO] [stderr] | [INFO] [stderr] 90 | (try!(rdr.read_i16::()) as f32) / 131.0], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 90 | f32::from(match $ expr { [INFO] [stderr] 91 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 92 | :: Err ( err ) => { [INFO] [stderr] 93 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 94 | $ crate :: convert :: From :: from ( err ) ) } }) / 131.0], [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/main.rs:97:10 [INFO] [stderr] | [INFO] [stderr] 97 | .expect(&format!("Usage: {} /dev/i2c-?", [INFO] [stderr] | __________^ [INFO] [stderr] 98 | | env::args().nth(0).unwrap_or("program".into()))); [INFO] [stderr] | |_________________________________________________________________________^ help: try this: `unwrap_or_else(|| panic!("Usage: {} /dev/i2c-?", env::args().nth(0).unwrap_or("program".into())))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:98:45 [INFO] [stderr] | [INFO] [stderr] 98 | env::args().nth(0).unwrap_or("program".into()))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "program".into())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/main.rs:99:51 [INFO] [stderr] | [INFO] [stderr] 99 | let mut bus = LinuxI2CDevice::new(&dev, 0x68).expect(&format!("opening {} failed", &dev)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("opening {} failed", &dev))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:84:17 [INFO] [stderr] | [INFO] [stderr] 84 | accel: [(try!(rdr.read_i16::()) as f32) / 16384.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 84 | accel: [f32::from(match $ expr { [INFO] [stderr] 85 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 86 | :: Err ( err ) => { [INFO] [stderr] 87 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 88 | $ crate :: convert :: From :: from ( err ) ) } }) / 16384.0, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:85:17 [INFO] [stderr] | [INFO] [stderr] 85 | (try!(rdr.read_i16::()) as f32) / 16384.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 85 | f32::from(match $ expr { [INFO] [stderr] 86 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 87 | :: Err ( err ) => { [INFO] [stderr] 88 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 89 | $ crate :: convert :: From :: from ( err ) ) } }) / 16384.0, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:86:17 [INFO] [stderr] | [INFO] [stderr] 86 | (try!(rdr.read_i16::()) as f32) / 16384.0], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 86 | f32::from(match $ expr { [INFO] [stderr] 87 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 88 | :: Err ( err ) => { [INFO] [stderr] 89 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 90 | $ crate :: convert :: From :: from ( err ) ) } }) / 16384.0], [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:87:15 [INFO] [stderr] | [INFO] [stderr] 87 | temp: (try!(rdr.read_i16::()) as f32) / 340.0 + 35.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 87 | temp: f32::from(match $ expr { [INFO] [stderr] 88 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 89 | :: Err ( err ) => { [INFO] [stderr] 90 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 91 | $ crate :: convert :: From :: from ( err ) ) } }) / 340.0 + 35.0, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:88:16 [INFO] [stderr] | [INFO] [stderr] 88 | gyro: [(try!(rdr.read_i16::()) as f32) / 131.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 88 | gyro: [f32::from(match $ expr { [INFO] [stderr] 89 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 90 | :: Err ( err ) => { [INFO] [stderr] 91 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 92 | $ crate :: convert :: From :: from ( err ) ) } }) / 131.0, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:89:16 [INFO] [stderr] | [INFO] [stderr] 89 | (try!(rdr.read_i16::()) as f32) / 131.0, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 89 | f32::from(match $ expr { [INFO] [stderr] 90 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 91 | :: Err ( err ) => { [INFO] [stderr] 92 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 93 | $ crate :: convert :: From :: from ( err ) ) } }) / 131.0, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:90:16 [INFO] [stderr] | [INFO] [stderr] 90 | (try!(rdr.read_i16::()) as f32) / 131.0], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 90 | f32::from(match $ expr { [INFO] [stderr] 91 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 92 | :: Err ( err ) => { [INFO] [stderr] 93 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 94 | $ crate :: convert :: From :: from ( err ) ) } }) / 131.0], [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/main.rs:97:10 [INFO] [stderr] | [INFO] [stderr] 97 | .expect(&format!("Usage: {} /dev/i2c-?", [INFO] [stderr] | __________^ [INFO] [stderr] 98 | | env::args().nth(0).unwrap_or("program".into()))); [INFO] [stderr] | |_________________________________________________________________________^ help: try this: `unwrap_or_else(|| panic!("Usage: {} /dev/i2c-?", env::args().nth(0).unwrap_or("program".into())))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:98:45 [INFO] [stderr] | [INFO] [stderr] 98 | env::args().nth(0).unwrap_or("program".into()))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "program".into())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/main.rs:99:51 [INFO] [stderr] | [INFO] [stderr] 99 | let mut bus = LinuxI2CDevice::new(&dev, 0x68).expect(&format!("opening {} failed", &dev)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("opening {} failed", &dev))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 10.76s [INFO] running `"docker" "inspect" "2e64ad0c7a7a08654b933c8ff2166c787b6d7f52dd1e43ae433edeb5b69cec33"` [INFO] running `"docker" "rm" "-f" "2e64ad0c7a7a08654b933c8ff2166c787b6d7f52dd1e43ae433edeb5b69cec33"` [INFO] [stdout] 2e64ad0c7a7a08654b933c8ff2166c787b6d7f52dd1e43ae433edeb5b69cec33