[INFO] updating cached repository NattapongSiri/permutator [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/NattapongSiri/permutator [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/NattapongSiri/permutator" "work/ex/pr-62849/sources/master#435236b8877cdb98c82eaebfb7887782277265c5/gh/NattapongSiri/permutator"` [INFO] [stderr] Cloning into 'work/ex/pr-62849/sources/master#435236b8877cdb98c82eaebfb7887782277265c5/gh/NattapongSiri/permutator'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/NattapongSiri/permutator" "work/ex/pr-62849/sources/try#b5c7f157c20453dde8d47371abe73b32351b4e7f/gh/NattapongSiri/permutator"` [INFO] [stderr] Cloning into 'work/ex/pr-62849/sources/try#b5c7f157c20453dde8d47371abe73b32351b4e7f/gh/NattapongSiri/permutator'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] f5d9a250ef7e791daff1945098cbb9c0130a606d [INFO] sha for GitHub repo NattapongSiri/permutator: f5d9a250ef7e791daff1945098cbb9c0130a606d [INFO] validating manifest of NattapongSiri/permutator on toolchain master#435236b8877cdb98c82eaebfb7887782277265c5 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+435236b8877cdb98c82eaebfb7887782277265c5-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of NattapongSiri/permutator on toolchain try#b5c7f157c20453dde8d47371abe73b32351b4e7f [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+b5c7f157c20453dde8d47371abe73b32351b4e7f-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing NattapongSiri/permutator [INFO] finished frobbing NattapongSiri/permutator [INFO] frobbed toml for NattapongSiri/permutator written to work/ex/pr-62849/sources/master#435236b8877cdb98c82eaebfb7887782277265c5/gh/NattapongSiri/permutator/Cargo.toml [INFO] started frobbing NattapongSiri/permutator [INFO] finished frobbing NattapongSiri/permutator [INFO] frobbed toml for NattapongSiri/permutator written to work/ex/pr-62849/sources/try#b5c7f157c20453dde8d47371abe73b32351b4e7f/gh/NattapongSiri/permutator/Cargo.toml [INFO] crate NattapongSiri/permutator already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+435236b8877cdb98c82eaebfb7887782277265c5-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+b5c7f157c20453dde8d47371abe73b32351b4e7f-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking NattapongSiri/permutator against try#b5c7f157c20453dde8d47371abe73b32351b4e7f for pr-62849 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-62849/worker-3/try#b5c7f157c20453dde8d47371abe73b32351b4e7f:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-62849/sources/try#b5c7f157c20453dde8d47371abe73b32351b4e7f/gh/NattapongSiri/permutator:/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" "+b5c7f157c20453dde8d47371abe73b32351b4e7f-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 29c41966d9d2ac6cdbe03cc1a96690e76e5204f236911c1b2615ca76b8045267 [INFO] running `"docker" "start" "-a" "29c41966d9d2ac6cdbe03cc1a96690e76e5204f236911c1b2615ca76b8045267"` [INFO] [stderr] Compiling num-bigint v0.2.1 [INFO] [stderr] Checking num-integer v0.1.39 [INFO] [stderr] Checking num-complex v0.2.1 [INFO] [stderr] Checking num-iter v0.1.37 [INFO] [stderr] Checking num-rational v0.2.1 [INFO] [stderr] Checking num v0.2.0 [INFO] [stderr] Checking permutator v0.3.3 (/opt/crater/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:1455:106 [INFO] [stderr] | [INFO] [stderr] 1455 | fn move_cur_res<'a, T, R>(c : &mut [usize], domain : &'a [T], result : &mut R, next_result_fn : &mut FnMut(usize, usize, &mut R)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(usize, usize, &mut R)` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:6676:122 [INFO] [stderr] | [INFO] [stderr] 6676 | unsafe fn start_combination_process<'a>(data : &'a[i32], cur_result : *mut [i32], k : usize, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:6701:37 [INFO] [stderr] | [INFO] [stderr] 6701 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:6734:130 [INFO] [stderr] | [INFO] [stderr] 6734 | fn start_combination_process<'a>(data : &'a[i32], cur_result : Rc>, k : usize, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:6757:33 [INFO] [stderr] | [INFO] [stderr] 6757 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:6903:33 [INFO] [stderr] | [INFO] [stderr] 6903 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:6940:122 [INFO] [stderr] | [INFO] [stderr] 6940 | unsafe fn start_cartesian_product_process<'a>(data : &'a[&'a[i32]], cur_result : *mut [i32], consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:6960:37 [INFO] [stderr] | [INFO] [stderr] 6960 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:6990:128 [INFO] [stderr] | [INFO] [stderr] 6990 | unsafe fn start_cartesian_product_process<'a>(data : &'a[i32], n : usize, cur_result : *mut [i32], consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7017:37 [INFO] [stderr] | [INFO] [stderr] 7017 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7046:131 [INFO] [stderr] | [INFO] [stderr] 7046 | fn start_cartesian_product_process<'a>(data : &'a[&'a[i32]], cur_result : Rc>, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7064:33 [INFO] [stderr] | [INFO] [stderr] 7064 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7093:137 [INFO] [stderr] | [INFO] [stderr] 7093 | fn start_cartesian_product_process<'a>(data : &'a[i32], n : usize, cur_result : Rc>, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7112:33 [INFO] [stderr] | [INFO] [stderr] 7112 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7142:131 [INFO] [stderr] | [INFO] [stderr] 7142 | fn start_cartesian_product_process<'a>(data : &'a[&'a[i32]], cur_result : Rc>, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7161:33 [INFO] [stderr] | [INFO] [stderr] 7161 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7348:124 [INFO] [stderr] | [INFO] [stderr] 7348 | unsafe fn start_k_permutation_process<'a>(data : &'a[i32], cur_result : *mut [i32], k : usize, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7368:37 [INFO] [stderr] | [INFO] [stderr] 7368 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7397:133 [INFO] [stderr] | [INFO] [stderr] 7397 | fn start_k_permutation_process<'a>(data : &'a[i32], cur_result : Rc>, k : usize, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7421:33 [INFO] [stderr] | [INFO] [stderr] 7421 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/copy/mod.rs:7462:33 [INFO] [stderr] | [INFO] [stderr] 7462 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:1455:106 [INFO] [stderr] | [INFO] [stderr] 1455 | fn move_cur_res<'a, T, R>(c : &mut [usize], domain : &'a [T], result : &mut R, next_result_fn : &mut FnMut(usize, usize, &mut R)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(usize, usize, &mut R)` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:7905:126 [INFO] [stderr] | [INFO] [stderr] 7905 | unsafe fn start_combination_process<'a>(data : &'a[i32], cur_result : *mut [&'a i32], k : usize, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:7930:37 [INFO] [stderr] | [INFO] [stderr] 7930 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:7963:134 [INFO] [stderr] | [INFO] [stderr] 7963 | fn start_combination_process<'a>(data : &'a[i32], cur_result : Rc>, k : usize, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:7986:33 [INFO] [stderr] | [INFO] [stderr] 7986 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8132:33 [INFO] [stderr] | [INFO] [stderr] 8132 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8169:126 [INFO] [stderr] | [INFO] [stderr] 8169 | unsafe fn start_cartesian_product_process<'a>(data : &'a[&'a[i32]], cur_result : *mut [&'a i32], consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8189:37 [INFO] [stderr] | [INFO] [stderr] 8189 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8219:132 [INFO] [stderr] | [INFO] [stderr] 8219 | unsafe fn start_cartesian_product_process<'a>(data : &'a[i32], n : usize, cur_result : *mut [&'a i32], consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8246:37 [INFO] [stderr] | [INFO] [stderr] 8246 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8275:135 [INFO] [stderr] | [INFO] [stderr] 8275 | fn start_cartesian_product_process<'a>(data : &'a[&'a[i32]], cur_result : Rc>, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8293:33 [INFO] [stderr] | [INFO] [stderr] 8293 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8322:141 [INFO] [stderr] | [INFO] [stderr] 8322 | fn start_cartesian_product_process<'a>(data : &'a[i32], n : usize, cur_result : Rc>, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8341:33 [INFO] [stderr] | [INFO] [stderr] 8341 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8371:135 [INFO] [stderr] | [INFO] [stderr] 8371 | fn start_cartesian_product_process<'a>(data : &'a[&'a[i32]], cur_result : Rc>, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8390:33 [INFO] [stderr] | [INFO] [stderr] 8390 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8577:128 [INFO] [stderr] | [INFO] [stderr] 8577 | unsafe fn start_k_permutation_process<'a>(data : &'a[i32], cur_result : *mut [&'a i32], k : usize, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8597:37 [INFO] [stderr] | [INFO] [stderr] 8597 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8626:137 [INFO] [stderr] | [INFO] [stderr] 8626 | fn start_k_permutation_process<'a>(data : &'a[i32], cur_result : Rc>, k : usize, consumers : Vec>) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Consumer + 'a` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8650:33 [INFO] [stderr] | [INFO] [stderr] 8650 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/lib.rs:8691:33 [INFO] [stderr] | [INFO] [stderr] 8691 | let consumers : Vec> = vec![Box::new(worker1), Box::new(worker2)]; [INFO] [stderr] | ^^^^^^^^ help: use `dyn`: `dyn Consumer` [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 11.32s [INFO] running `"docker" "inspect" "29c41966d9d2ac6cdbe03cc1a96690e76e5204f236911c1b2615ca76b8045267"` [INFO] running `"docker" "rm" "-f" "29c41966d9d2ac6cdbe03cc1a96690e76e5204f236911c1b2615ca76b8045267"` [INFO] [stdout] 29c41966d9d2ac6cdbe03cc1a96690e76e5204f236911c1b2615ca76b8045267