Dec 14 19:05:30.821 INFO testing soundio-0.2.0 against master#bd47d6825bf4090517549d33cfef10d3300b4a75 for pr-56550 Dec 14 19:05:30.821 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56550/worker-5/master#bd47d6825bf4090517549d33cfef10d3300b4a75:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-5/pr-56550/master#bd47d6825bf4090517549d33cfef10d3300b4a75:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +bd47d6825bf4090517549d33cfef10d3300b4a75-alt build --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 14 19:05:31.181 INFO [stdout] e01671629020236537586ab62d57a1ecde5d0f1f99c24199052fc5604eb592d5 Dec 14 19:05:31.183 INFO running `"docker" "start" "-a" "e01671629020236537586ab62d57a1ecde5d0f1f99c24199052fc5604eb592d5"` Dec 14 19:05:32.535 INFO [stderr] usermod: no changes Dec 14 19:05:32.597 INFO [stderr] warning: An explicit [[example]] section is specified in Cargo.toml which currently Dec 14 19:05:32.597 INFO [stderr] disables Cargo from automatically inferring other example targets. Dec 14 19:05:32.597 INFO [stderr] This inference behavior will change in the Rust 2018 edition and the following Dec 14 19:05:32.597 INFO [stderr] files will be included as a example target: Dec 14 19:05:32.597 INFO [stderr] Dec 14 19:05:32.597 INFO [stderr] * /source/examples/sine/main.rs Dec 14 19:05:32.597 INFO [stderr] Dec 14 19:05:32.597 INFO [stderr] This is likely to break cargo build or cargo test as these files may not be Dec 14 19:05:32.597 INFO [stderr] ready to be compiled as a example target today. You can future-proof yourself Dec 14 19:05:32.597 INFO [stderr] and disable this warning by adding `autoexamples = false` to your [package] Dec 14 19:05:32.597 INFO [stderr] section. You may also move the files to a location where Cargo would not Dec 14 19:05:32.597 INFO [stderr] automatically infer them to be a target, such as in subfolders. Dec 14 19:05:32.597 INFO [stderr] Dec 14 19:05:32.597 INFO [stderr] For more information on this warning you can consult Dec 14 19:05:32.597 INFO [stderr] https://github.com/rust-lang/cargo/issues/5330 Dec 14 19:05:32.635 INFO [stderr] Compiling libsoundio-sys v0.2.0 Dec 14 19:05:38.719 INFO [stderr] Compiling soundio v0.2.0 (/source) Dec 14 19:05:39.851 INFO [stderr] warning: variable does not need to be mutable Dec 14 19:05:39.851 INFO [stderr] --> src/device.rs:335:7 Dec 14 19:05:39.851 INFO [stderr] | Dec 14 19:05:39.851 INFO [stderr] 335 | let mut outstream = unsafe { raw::soundio_outstream_create(self.device) }; Dec 14 19:05:39.851 INFO [stderr] | ----^^^^^^^^^ Dec 14 19:05:39.851 INFO [stderr] | | Dec 14 19:05:39.851 INFO [stderr] | help: remove this `mut` Dec 14 19:05:39.851 INFO [stderr] | Dec 14 19:05:39.851 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 14 19:05:39.851 INFO [stderr] Dec 14 19:05:39.863 INFO [stderr] warning: variable does not need to be mutable Dec 14 19:05:39.863 INFO [stderr] --> src/device.rs:439:7 Dec 14 19:05:39.863 INFO [stderr] | Dec 14 19:05:39.863 INFO [stderr] 439 | let mut instream = unsafe { raw::soundio_instream_create(self.device) }; Dec 14 19:05:39.863 INFO [stderr] | ----^^^^^^^^ Dec 14 19:05:39.863 INFO [stderr] | | Dec 14 19:05:39.863 INFO [stderr] | help: remove this `mut` Dec 14 19:05:39.863 INFO [stderr] Dec 14 19:05:41.587 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 9.00s Dec 14 19:05:41.587 INFO [stderr] su: No module specific data is present Dec 14 19:05:42.692 INFO running `"docker" "inspect" "e01671629020236537586ab62d57a1ecde5d0f1f99c24199052fc5604eb592d5"` Dec 14 19:05:43.045 INFO running `"docker" "rm" "-f" "e01671629020236537586ab62d57a1ecde5d0f1f99c24199052fc5604eb592d5"` Dec 14 19:05:43.455 INFO [stdout] e01671629020236537586ab62d57a1ecde5d0f1f99c24199052fc5604eb592d5 Dec 14 19:05:43.459 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56550/worker-5/master#bd47d6825bf4090517549d33cfef10d3300b4a75:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-5/pr-56550/master#bd47d6825bf4090517549d33cfef10d3300b4a75:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +bd47d6825bf4090517549d33cfef10d3300b4a75-alt test --frozen --no-run" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 14 19:05:43.843 INFO [stdout] fecd8786cb0987e527eafcd63096bb186b3bfb16e84f6a804bcdc394ed9787f0 Dec 14 19:05:43.848 INFO running `"docker" "start" "-a" "fecd8786cb0987e527eafcd63096bb186b3bfb16e84f6a804bcdc394ed9787f0"` Dec 14 19:05:45.739 INFO [stderr] usermod: no changes Dec 14 19:05:45.791 INFO [stderr] warning: An explicit [[example]] section is specified in Cargo.toml which currently Dec 14 19:05:45.791 INFO [stderr] disables Cargo from automatically inferring other example targets. Dec 14 19:05:45.791 INFO [stderr] This inference behavior will change in the Rust 2018 edition and the following Dec 14 19:05:45.791 INFO [stderr] files will be included as a example target: Dec 14 19:05:45.791 INFO [stderr] Dec 14 19:05:45.791 INFO [stderr] * /source/examples/sine/main.rs Dec 14 19:05:45.791 INFO [stderr] Dec 14 19:05:45.791 INFO [stderr] This is likely to break cargo build or cargo test as these files may not be Dec 14 19:05:45.791 INFO [stderr] ready to be compiled as a example target today. You can future-proof yourself Dec 14 19:05:45.791 INFO [stderr] and disable this warning by adding `autoexamples = false` to your [package] Dec 14 19:05:45.791 INFO [stderr] section. You may also move the files to a location where Cargo would not Dec 14 19:05:45.791 INFO [stderr] automatically infer them to be a target, such as in subfolders. Dec 14 19:05:45.791 INFO [stderr] Dec 14 19:05:45.791 INFO [stderr] For more information on this warning you can consult Dec 14 19:05:45.791 INFO [stderr] https://github.com/rust-lang/cargo/issues/5330 Dec 14 19:05:45.831 INFO [stderr] Compiling soundio v0.2.0 (/source) Dec 14 19:05:48.111 INFO [stderr] warning: unused variable: `watch` Dec 14 19:05:48.111 INFO [stderr] --> examples/list_devices/main.rs:4:17 Dec 14 19:05:48.112 INFO [stderr] | Dec 14 19:05:48.112 INFO [stderr] 4 | fn list_devices(watch: bool, short_output: bool, backend: soundio::Backend) -> Result<(), String> { Dec 14 19:05:48.112 INFO [stderr] | ^^^^^ help: consider using `_watch` instead Dec 14 19:05:48.113 INFO [stderr] | Dec 14 19:05:48.113 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 14 19:05:48.113 INFO [stderr] Dec 14 19:05:48.263 INFO [stderr] warning: method is never used: `finished` Dec 14 19:05:48.263 INFO [stderr] --> examples/player/main.rs:50:2 Dec 14 19:05:48.263 INFO [stderr] | Dec 14 19:05:48.264 INFO [stderr] 50 | fn finished(&self) -> bool { Dec 14 19:05:48.264 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 14 19:05:48.264 INFO [stderr] | Dec 14 19:05:48.265 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 14 19:05:48.265 INFO [stderr] Dec 14 19:05:48.448 INFO [stderr] warning: unused import: `super::super::backend::*` Dec 14 19:05:48.448 INFO [stderr] --> src/context.rs:686:6 Dec 14 19:05:48.449 INFO [stderr] | Dec 14 19:05:48.449 INFO [stderr] 686 | use super::super::backend::*; Dec 14 19:05:48.449 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ Dec 14 19:05:48.449 INFO [stderr] | Dec 14 19:05:48.450 INFO [stderr] = note: #[warn(unused_imports)] on by default Dec 14 19:05:48.450 INFO [stderr] Dec 14 19:05:50.398 INFO [stderr] warning: variable does not need to be mutable Dec 14 19:05:50.398 INFO [stderr] --> src/device.rs:335:7 Dec 14 19:05:50.398 INFO [stderr] | Dec 14 19:05:50.398 INFO [stderr] 335 | let mut outstream = unsafe { raw::soundio_outstream_create(self.device) }; Dec 14 19:05:50.398 INFO [stderr] | ----^^^^^^^^^ Dec 14 19:05:50.398 INFO [stderr] | | Dec 14 19:05:50.398 INFO [stderr] | help: remove this `mut` Dec 14 19:05:50.398 INFO [stderr] | Dec 14 19:05:50.398 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 14 19:05:50.398 INFO [stderr] Dec 14 19:05:50.403 INFO [stderr] warning: variable does not need to be mutable Dec 14 19:05:50.403 INFO [stderr] --> src/device.rs:439:7 Dec 14 19:05:50.403 INFO [stderr] | Dec 14 19:05:50.403 INFO [stderr] 439 | let mut instream = unsafe { raw::soundio_instream_create(self.device) }; Dec 14 19:05:50.403 INFO [stderr] | ----^^^^^^^^ Dec 14 19:05:50.403 INFO [stderr] | | Dec 14 19:05:50.403 INFO [stderr] | help: remove this `mut` Dec 14 19:05:50.403 INFO [stderr] Dec 14 19:05:51.851 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 6.08s Dec 14 19:05:51.851 INFO [stderr] su: No module specific data is present Dec 14 19:05:52.481 INFO running `"docker" "inspect" "fecd8786cb0987e527eafcd63096bb186b3bfb16e84f6a804bcdc394ed9787f0"` Dec 14 19:05:52.824 INFO running `"docker" "rm" "-f" "fecd8786cb0987e527eafcd63096bb186b3bfb16e84f6a804bcdc394ed9787f0"` Dec 14 19:05:53.091 INFO [stdout] fecd8786cb0987e527eafcd63096bb186b3bfb16e84f6a804bcdc394ed9787f0 Dec 14 19:05:53.094 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56550/worker-5/master#bd47d6825bf4090517549d33cfef10d3300b4a75:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-5/pr-56550/master#bd47d6825bf4090517549d33cfef10d3300b4a75:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +bd47d6825bf4090517549d33cfef10d3300b4a75-alt test --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 14 19:05:53.899 INFO [stdout] 0281200ed8f2f9fc37e60d52b43d42dd738375d12305d5f4e7e48587f7a4d0c0 Dec 14 19:05:53.905 INFO running `"docker" "start" "-a" "0281200ed8f2f9fc37e60d52b43d42dd738375d12305d5f4e7e48587f7a4d0c0"` Dec 14 19:05:54.589 INFO [stderr] usermod: no changes Dec 14 19:05:54.619 INFO [stderr] warning: An explicit [[example]] section is specified in Cargo.toml which currently Dec 14 19:05:54.619 INFO [stderr] disables Cargo from automatically inferring other example targets. Dec 14 19:05:54.619 INFO [stderr] This inference behavior will change in the Rust 2018 edition and the following Dec 14 19:05:54.619 INFO [stderr] files will be included as a example target: Dec 14 19:05:54.619 INFO [stderr] Dec 14 19:05:54.619 INFO [stderr] * /source/examples/sine/main.rs Dec 14 19:05:54.619 INFO [stderr] Dec 14 19:05:54.619 INFO [stderr] This is likely to break cargo build or cargo test as these files may not be Dec 14 19:05:54.619 INFO [stderr] ready to be compiled as a example target today. You can future-proof yourself Dec 14 19:05:54.619 INFO [stderr] and disable this warning by adding `autoexamples = false` to your [package] Dec 14 19:05:54.619 INFO [stderr] section. You may also move the files to a location where Cargo would not Dec 14 19:05:54.619 INFO [stderr] automatically infer them to be a target, such as in subfolders. Dec 14 19:05:54.620 INFO [stderr] Dec 14 19:05:54.620 INFO [stderr] For more information on this warning you can consult Dec 14 19:05:54.620 INFO [stderr] https://github.com/rust-lang/cargo/issues/5330 Dec 14 19:05:54.639 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.02s Dec 14 19:05:54.643 INFO [stderr] Running /target/debug/deps/soundio-e67c5dba87379cd7 Dec 14 19:05:54.655 INFO [stdout] Dec 14 19:05:54.655 INFO [stdout] running 9 tests Dec 14 19:05:54.661 INFO [stdout] test context::tests::available_backends ... ok Dec 14 19:05:54.661 INFO [stdout] test context::tests::connect_default_backend ... ok Dec 14 19:05:54.661 INFO [stdout] test sample::tests::float_int_conversions ... ok Dec 14 19:05:54.661 INFO [stdout] test sample::tests::float_lossless ... ok Dec 14 19:05:54.684 INFO [stdout] test sample::tests::out_of_range_float ... ok Dec 14 19:05:54.727 INFO [stdout] test sample::tests::int_through_float_lossless ... ok Dec 14 19:05:56.705 INFO [stdout] test sample::tests::increased_precision_lossless ... ok Dec 14 19:05:56.715 INFO [stdout] test sample::tests::sign_conversion_lossless ... ok Dec 14 19:05:57.090 INFO [stdout] test sample::tests::raw_lossless ... ok Dec 14 19:05:57.090 INFO [stdout] Dec 14 19:05:57.090 INFO [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out Dec 14 19:05:57.090 INFO [stdout] Dec 14 19:05:57.090 INFO [stderr] Doc-tests soundio Dec 14 19:05:58.103 INFO [stdout] Dec 14 19:05:58.103 INFO [stdout] running 56 tests Dec 14 19:06:03.323 INFO [stdout] test src/backend.rs - backend::Backend (line 21) ... ok Dec 14 19:06:03.423 INFO [stdout] test src/context.rs - context::Context (line 22) ... ok Dec 14 19:06:04.049 INFO [stdout] test src/context.rs - context::Context<'a>::available_backends (line 343) ... ok Dec 14 19:06:04.231 INFO [stdout] test src/context.rs - context::Context<'a>::connect (line 255) ... ok Dec 14 19:06:05.251 INFO [stdout] test src/channels.rs - channels::ChannelId::parse (line 273) ... ok Dec 14 19:06:05.275 INFO [stdout] test src/context.rs - context::Context<'a>::app_name (line 233) ... ok Dec 14 19:06:05.511 INFO [stdout] test src/context.rs - context::Context<'a>::connect_backend (line 285) ... ok Dec 14 19:06:05.511 INFO [stdout] test src/channels.rs - channels::ChannelId (line 13) ... ok Dec 14 19:06:10.431 INFO [stdout] test src/context.rs - context::Context<'a>::default_output_device (line 653) ... ok Dec 14 19:06:11.299 INFO [stdout] test src/context.rs - context::Context<'a>::default_input_device (line 630) ... ok Dec 14 19:06:11.382 INFO [stdout] test src/context.rs - context::Context<'a>::default_input_device_index (line 523) ... ok Dec 14 19:06:11.835 INFO [stdout] test src/context.rs - context::Context<'a>::current_backend (line 326) ... ok Dec 14 19:06:12.145 INFO [stdout] test src/context.rs - context::Context<'a>::disconnect (line 306) ... ok Dec 14 19:06:13.118 INFO [stdout] test src/context.rs - context::Context<'a>::input_device (line 433) ... ok Dec 14 19:06:13.265 INFO [stdout] test src/context.rs - context::Context<'a>::input_devices (line 579) ... ok Dec 14 19:06:13.976 INFO [stdout] test src/context.rs - context::Context<'a>::default_output_device_index (line 551) ... ok Dec 14 19:06:17.407 INFO [stdout] test src/context.rs - context::Context<'a>::output_device (line 471) ... ok Dec 14 19:06:17.739 INFO [stdout] test src/context.rs - context::Context<'a>::new (line 107) ... ok Dec 14 19:06:18.327 INFO [stdout] test src/context.rs - context::Context<'a>::new_with_callbacks (line 182) ... ok Dec 14 19:06:18.351 INFO [stdout] test src/context.rs - context::Context<'a>::output_devices (line 604) ... ok Dec 14 19:06:19.011 INFO [stdout] test src/device.rs - device::Device<'a>::nearest_sample_rate (line 261) ... ok Dec 14 19:06:19.322 INFO [stdout] test src/context.rs - context::Context<'a>::set_app_name (line 221) ... ok Dec 14 19:06:19.673 INFO [stdout] test src/device.rs - device::Device<'a>::sample_rates (line 141) ... ok Dec 14 19:06:21.962 INFO [stdout] test src/device.rs - device::Device<'a>::aim (line 60) ... ok Dec 14 19:06:25.618 INFO [stdout] test src/device.rs - device::Device<'a>::supports_format (line 212) ... ok Dec 14 19:06:26.675 INFO [stdout] test src/format.rs - format::Format::bytes_per_second (line 266) ... ok Dec 14 19:06:26.905 INFO [stdout] test src/error.rs - error::Error (line 16) ... ok Dec 14 19:06:27.075 INFO [stdout] test src/device.rs - device::Device<'a>::supports_layout (line 228) ... ok Dec 14 19:06:27.075 INFO [stdout] test src/layout.rs - layout::ChannelLayout::best_matching_channel_layout (line 114) ... ignored Dec 14 19:06:27.607 INFO [stdout] test src/format.rs - format::Format::bytes_per_frame (line 251) ... ok Dec 14 19:06:28.082 INFO [stdout] test src/device.rs - device::Device<'a>::supports_sample_rate (line 244) ... ok Dec 14 19:06:28.483 INFO [stdout] test src/format.rs - format::Format::bytes_per_sample (line 235) ... ok Dec 14 19:06:30.727 INFO [stdout] test src/format.rs - format::endianness (line 61) ... ok Dec 14 19:06:33.295 INFO [stdout] test src/instream.rs - instream::InStreamReader<'a>::sample (line 325) ... ok Dec 14 19:06:36.343 INFO [stdout] test src/layout.rs - layout::ChannelLayout::find_channel (line 141) ... ok Dec 14 19:06:36.575 INFO [stdout] test src/layout.rs - layout::ChannelLayout::get_all_builtin (line 64) ... ok Dec 14 19:06:37.099 INFO [stdout] test src/layout.rs - layout::ChannelLayout (line 16) ... ok Dec 14 19:06:37.099 INFO [stdout] test src/lib.rs - (line 130) ... ignored Dec 14 19:06:37.101 INFO [stdout] test src/layout.rs - layout::ChannelLayout::detect_builtin (line 159) ... ok Dec 14 19:06:37.101 INFO [stdout] test src/lib.rs - (line 25) ... ignored Dec 14 19:06:37.447 INFO [stdout] test src/layout.rs - layout::ChannelLayout (line 203) ... ok Dec 14 19:06:38.379 INFO [stdout] test src/layout.rs - layout::ChannelLayout::get_builtin (line 82) ... ok Dec 14 19:06:40.463 INFO [stdout] test src/layout.rs - layout::ChannelLayout::get_default (line 98) ... ok Dec 14 19:06:42.759 INFO [stdout] test src/layout.rs - layout::ChannelLayout::sort (line 183) ... ok Dec 14 19:06:45.035 INFO [stdout] test src/layout.rs - layout::ChannelLayoutId (line 231) ... ok Dec 14 19:06:45.080 INFO [stdout] test src/lib.rs - (line 14) ... ok Dec 14 19:06:45.577 INFO [stdout] test src/lib.rs - (line 33) ... ok Dec 14 19:06:46.091 INFO [stdout] test src/lib.rs - (line 107) ... ok Dec 14 19:06:46.742 INFO [stdout] test src/lib.rs - (line 41) ... ok Dec 14 19:06:46.795 INFO [stdout] test src/lib.rs - (line 55) ... ok Dec 14 19:06:47.570 INFO [stdout] test src/lib.rs - (line 83) ... ok Dec 14 19:06:49.663 INFO [stdout] test src/outstream.rs - outstream::OutStreamWriter<'a>::set_sample (line 375) ... ok Dec 14 19:06:49.663 INFO [stdout] test src/lib.rs - have_backend (line 239) ... ok Dec 14 19:06:49.887 INFO [stdout] test src/lib.rs - version (line 212) ... ok Dec 14 19:06:50.199 INFO [stdout] test src/lib.rs - version_string (line 201) ... ok Dec 14 19:06:50.283 INFO [stdout] test src/util.rs - util::latin1_to_string (line 23) ... ok Dec 14 19:06:50.283 INFO [stdout] Dec 14 19:06:50.283 INFO [stdout] test result: ok. 53 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out Dec 14 19:06:50.283 INFO [stdout] Dec 14 19:06:50.315 INFO [stderr] su: No module specific data is present Dec 14 19:06:50.873 INFO running `"docker" "inspect" "0281200ed8f2f9fc37e60d52b43d42dd738375d12305d5f4e7e48587f7a4d0c0"` Dec 14 19:06:51.217 INFO running `"docker" "rm" "-f" "0281200ed8f2f9fc37e60d52b43d42dd738375d12305d5f4e7e48587f7a4d0c0"` Dec 14 19:06:51.502 INFO [stdout] 0281200ed8f2f9fc37e60d52b43d42dd738375d12305d5f4e7e48587f7a4d0c0