[INFO] updating cached repository paulcacheux/hai [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/paulcacheux/hai [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/paulcacheux/hai" "work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/paulcacheux/hai"` [INFO] [stderr] Cloning into 'work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/paulcacheux/hai'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/paulcacheux/hai" "work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/gh/paulcacheux/hai"` [INFO] [stderr] Cloning into 'work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/gh/paulcacheux/hai'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 9e6839977b977d06643d8c53fff1f90214577ea8 [INFO] sha for GitHub repo paulcacheux/hai: 9e6839977b977d06643d8c53fff1f90214577ea8 [INFO] validating manifest of paulcacheux/hai on toolchain master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7 [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of paulcacheux/hai on toolchain try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing paulcacheux/hai [INFO] finished frobbing paulcacheux/hai [INFO] frobbed toml for paulcacheux/hai written to work/ex/pr-59199/sources/master#bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7/gh/paulcacheux/hai/Cargo.toml [INFO] started frobbing paulcacheux/hai [INFO] finished frobbing paulcacheux/hai [INFO] frobbed toml for paulcacheux/hai written to work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/gh/paulcacheux/hai/Cargo.toml [INFO] crate paulcacheux/hai already has a lockfile, it will not be regenerated [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+bc44841ad2a2ad5f6c5e67b9e35ed8e7e71d4dc7-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/crater-raid/crater/work/local/cargo-home/bin/cargo" "+68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking paulcacheux/hai against try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b for pr-59199 [INFO] running `"docker" "create" "-v" "/mnt/crater-raid/crater/work/local/target-dirs/pr-59199/worker-4/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b:/opt/crater/target:rw,Z" "-v" "/mnt/crater-raid/crater/work/ex/pr-59199/sources/try#68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b/gh/paulcacheux/hai:/opt/crater/workdir:ro,Z" "-v" "/mnt/crater-raid/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/crater-raid/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" "+68fcf881bd1e4dbfc21e22f8c7a56b8a5d8e8f7b-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] a08fda2f655c61b843120bc92b9608dff21d16bc107bc78f8b1749a4fd099c2e [INFO] running `"docker" "start" "-a" "a08fda2f655c61b843120bc92b9608dff21d16bc107bc78f8b1749a4fd099c2e"` [INFO] [stderr] Checking id-arena v1.0.1 [INFO] [stderr] Compiling syn v0.14.9 [INFO] [stderr] Compiling pest_generator v2.0.0 [INFO] [stderr] Compiling pest_derive v2.0.1 [INFO] [stderr] Checking hai v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused variable: `function_convertor` [INFO] [stderr] --> src/convertor.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | let mut function_convertor = FunctionConvertor::new(name, parameters); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_function_convertor` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `program` [INFO] [stderr] --> src/convertor.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | program: &ast::Program, [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_program` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `statement` [INFO] [stderr] --> src/convertor.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | statement: ast::StatementId, [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_statement` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `function_convertor` [INFO] [stderr] --> src/convertor.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | let mut function_convertor = FunctionConvertor::new(name, parameters); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider prefixing with an underscore: `_function_convertor` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `program` [INFO] [stderr] --> src/convertor.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | program: &ast::Program, [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_program` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `statement` [INFO] [stderr] --> src/convertor.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | statement: ast::StatementId, [INFO] [stderr] | ^^^^^^^^^ help: consider prefixing with an underscore: `_statement` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/convertor.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | let mut function_convertor = FunctionConvertor::new(name, parameters); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/convertor.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | let mut function_convertor = FunctionConvertor::new(name, parameters); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `end_scope` [INFO] [stderr] --> src/convertor.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | fn end_scope(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `lookup_variable` [INFO] [stderr] --> src/convertor.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | fn lookup_variable(&mut self, name: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `into_function` [INFO] [stderr] --> src/ir/builder.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn into_function(self) -> Function { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `create_new_bb` [INFO] [stderr] --> src/ir/builder.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn create_new_bb(&mut self) -> BB { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `switch_to_bb` [INFO] [stderr] --> src/ir/builder.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn switch_to_bb(&mut self, bb: BB) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `terminate_bb` [INFO] [stderr] --> src/ir/builder.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn terminate_bb(&mut self, terminator: Terminator) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `append_value_operation` [INFO] [stderr] --> src/ir/builder.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | pub fn append_value_operation(&mut self, operation: Operation) -> Value { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `append_no_value_operation` [INFO] [stderr] --> src/ir/builder.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | pub fn append_no_value_operation(&mut self, operation: Operation) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `WithDestination` [INFO] [stderr] --> src/ir/mod.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | WithDestination(Value, Operation), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Operation` [INFO] [stderr] --> src/ir/mod.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | Operation(Operation), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Literal` [INFO] [stderr] --> src/ir/mod.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | Literal(Literal), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BinaryAdd` [INFO] [stderr] --> src/ir/mod.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | BinaryAdd(Value, Value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BinarySub` [INFO] [stderr] --> src/ir/mod.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | BinarySub(Value, Value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BinaryMul` [INFO] [stderr] --> src/ir/mod.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | BinaryMul(Value, Value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BinaryDivide` [INFO] [stderr] --> src/ir/mod.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | BinaryDivide(Value, Value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LoadParam` [INFO] [stderr] --> src/ir/mod.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | LoadParam(usize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LoadVariable` [INFO] [stderr] --> src/ir/mod.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | LoadVariable(Variable), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `StoreVariable` [INFO] [stderr] --> src/ir/mod.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | StoreVariable(Variable, Value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Return` [INFO] [stderr] --> src/ir/mod.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | Return(Value), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Int` [INFO] [stderr] --> src/ir/mod.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | Int(i32), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Boolean` [INFO] [stderr] --> src/ir/mod.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | Boolean(bool), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `end_scope` [INFO] [stderr] --> src/convertor.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | fn end_scope(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `lookup_variable` [INFO] [stderr] --> src/convertor.rs:118:5 [INFO] [stderr] | [INFO] [stderr] 118 | fn lookup_variable(&mut self, name: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `into_function` [INFO] [stderr] --> src/ir/builder.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | pub fn into_function(self) -> Function { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `create_new_bb` [INFO] [stderr] --> src/ir/builder.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn create_new_bb(&mut self) -> BB { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `switch_to_bb` [INFO] [stderr] --> src/ir/builder.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn switch_to_bb(&mut self, bb: BB) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `terminate_bb` [INFO] [stderr] --> src/ir/builder.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn terminate_bb(&mut self, terminator: Terminator) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `append_value_operation` [INFO] [stderr] --> src/ir/builder.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | pub fn append_value_operation(&mut self, operation: Operation) -> Value { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `append_no_value_operation` [INFO] [stderr] --> src/ir/builder.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | pub fn append_no_value_operation(&mut self, operation: Operation) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `WithDestination` [INFO] [stderr] --> src/ir/mod.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | WithDestination(Value, Operation), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Operation` [INFO] [stderr] --> src/ir/mod.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | Operation(Operation), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Literal` [INFO] [stderr] --> src/ir/mod.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | Literal(Literal), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BinaryAdd` [INFO] [stderr] --> src/ir/mod.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | BinaryAdd(Value, Value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BinarySub` [INFO] [stderr] --> src/ir/mod.rs:32:5 [INFO] [stderr] | [INFO] [stderr] 32 | BinarySub(Value, Value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BinaryMul` [INFO] [stderr] --> src/ir/mod.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | BinaryMul(Value, Value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `BinaryDivide` [INFO] [stderr] --> src/ir/mod.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | BinaryDivide(Value, Value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LoadParam` [INFO] [stderr] --> src/ir/mod.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | LoadParam(usize), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `LoadVariable` [INFO] [stderr] --> src/ir/mod.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | LoadVariable(Variable), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `StoreVariable` [INFO] [stderr] --> src/ir/mod.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | StoreVariable(Variable, Value), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Return` [INFO] [stderr] --> src/ir/mod.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | Return(Value), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Int` [INFO] [stderr] --> src/ir/mod.rs:56:5 [INFO] [stderr] | [INFO] [stderr] 56 | Int(i32), [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Boolean` [INFO] [stderr] --> src/ir/mod.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | Boolean(bool), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 11.77s [INFO] running `"docker" "inspect" "a08fda2f655c61b843120bc92b9608dff21d16bc107bc78f8b1749a4fd099c2e"` [INFO] running `"docker" "rm" "-f" "a08fda2f655c61b843120bc92b9608dff21d16bc107bc78f8b1749a4fd099c2e"` [INFO] [stdout] a08fda2f655c61b843120bc92b9608dff21d16bc107bc78f8b1749a4fd099c2e