[INFO] fetching crate kiss-icp-pyo3 0.1.0... [INFO] testing kiss-icp-pyo3-0.1.0 against master#cdb45c87e2cd43495379f7e867e3cc15dcee9f93 for pr-145838-1 [INFO] extracting crate kiss-icp-pyo3 0.1.0 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate kiss-icp-pyo3 0.1.0 [INFO] finished tweaking crates.io crate kiss-icp-pyo3 0.1.0 [INFO] tweaked toml for crates.io crate kiss-icp-pyo3 0.1.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate kiss-icp-pyo3 0.1.0 on toolchain cdb45c87e2cd43495379f7e867e3cc15dcee9f93 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 111 packages to latest compatible versions [INFO] [stderr] Adding numpy v0.20.0 (available: v0.26.0) [INFO] [stderr] Adding pyo3 v0.20.3 (available: v0.26.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded kiss-icp-ops-sophus v0.1.0 [INFO] [stderr] Downloaded kiss-icp-core v0.1.0 [INFO] [stderr] Downloaded kiss-icp-ops-eigen v0.1.0 [INFO] [stderr] Downloaded kiss-icp-ops v0.1.0 [INFO] [stderr] Downloaded hwlocality-sys v0.6.0 [INFO] [stderr] Downloaded kiss-icp-ops-core v0.1.0 [INFO] [stderr] Downloaded hwlocality v1.0.0-alpha.10 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c47218b85c967e489312b31ec59f84d70d2b12f24f560403400851623fdc1ca4 [INFO] running `Command { std: "docker" "start" "-a" "c47218b85c967e489312b31ec59f84d70d2b12f24f560403400851623fdc1ca4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c47218b85c967e489312b31ec59f84d70d2b12f24f560403400851623fdc1ca4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c47218b85c967e489312b31ec59f84d70d2b12f24f560403400851623fdc1ca4", kill_on_drop: false }` [INFO] [stdout] c47218b85c967e489312b31ec59f84d70d2b12f24f560403400851623fdc1ca4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] feee4c316b4d9500f0803cd452488f7e1d476edfb5d7c704aa32f586fd045ee1 [INFO] running `Command { std: "docker" "start" "-a" "feee4c316b4d9500f0803cd452488f7e1d476edfb5d7c704aa32f586fd045ee1", kill_on_drop: false }` [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling safe_arch v0.7.4 [INFO] [stderr] Compiling hwlocality-sys v0.6.0 [INFO] [stderr] Compiling pyo3-build-config v0.20.3 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling anyhow v1.0.99 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling errno v0.3.13 [INFO] [stderr] Compiling unindent v0.2.4 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling ordered-float v4.6.0 [INFO] [stderr] Compiling wide v0.7.33 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling ndarray v0.15.6 [INFO] [stderr] Compiling pyo3-ffi v0.20.3 [INFO] [stderr] Compiling pyo3 v0.20.3 [INFO] [stderr] Compiling simba v0.8.1 [INFO] [stderr] Compiling pyo3-macros-backend v0.20.3 [INFO] [stderr] Compiling backtrace v0.3.75 [INFO] [stderr] Compiling nalgebra-macros v0.2.2 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling thiserror-impl v2.0.16 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling thiserror v2.0.16 [INFO] [stderr] Compiling pyo3-macros v0.20.3 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling derive_more v2.0.1 [INFO] [stderr] Compiling hwlocality v1.0.0-alpha.10 [INFO] [stderr] Compiling nalgebra v0.32.6 [INFO] [stderr] Compiling kiss-icp-ops-core v0.1.0 [INFO] [stderr] Compiling numpy v0.20.0 [INFO] [stderr] Compiling kiss-icp-ops-eigen v0.1.0 [INFO] [stderr] Compiling kiss-icp-ops-sophus v0.1.0 [INFO] [stderr] Compiling kiss-icp-ops v0.1.0 [INFO] [stderr] Compiling kiss-icp-core v0.1.0 [INFO] [stderr] Compiling kiss-icp-pyo3 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | #[pymethods] [INFO] [stdout] | -^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PyClassImplCollector` is not local [INFO] [stdout] | `PyClassNewTextSignature` is not local [INFO] [stdout] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stdout] 31 | impl _VoxelHashMap { [INFO] [stdout] | ------------- [INFO] [stdout] | | [INFO] [stdout] | `_VoxelHashMap` is not local [INFO] [stdout] | `_VoxelHashMap` is not local [INFO] [stdout] | [INFO] [stdout] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:126:1 [INFO] [stdout] | [INFO] [stdout] 126 | #[pymethods] [INFO] [stdout] | -^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PyClassImplCollector` is not local [INFO] [stdout] | `PyClassNewTextSignature` is not local [INFO] [stdout] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stdout] 127 | impl _AdaptiveThreshold { [INFO] [stdout] | ------------------ [INFO] [stdout] | | [INFO] [stdout] | `_AdaptiveThreshold` is not local [INFO] [stdout] | `_AdaptiveThreshold` is not local [INFO] [stdout] | [INFO] [stdout] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.43s [INFO] running `Command { std: "docker" "inspect" "feee4c316b4d9500f0803cd452488f7e1d476edfb5d7c704aa32f586fd045ee1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "feee4c316b4d9500f0803cd452488f7e1d476edfb5d7c704aa32f586fd045ee1", kill_on_drop: false }` [INFO] [stdout] feee4c316b4d9500f0803cd452488f7e1d476edfb5d7c704aa32f586fd045ee1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0aa91663b40a5b78c4e4998c3750f83651d13cfc35e0f3e2edbb97bead5f463e [INFO] running `Command { std: "docker" "start" "-a" "0aa91663b40a5b78c4e4998c3750f83651d13cfc35e0f3e2edbb97bead5f463e", kill_on_drop: false }` [INFO] [stderr] Compiling kiss-icp-pyo3 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | #[pymethods] [INFO] [stdout] | -^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PyClassImplCollector` is not local [INFO] [stdout] | `PyClassNewTextSignature` is not local [INFO] [stdout] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stdout] 31 | impl _VoxelHashMap { [INFO] [stdout] | ------------- [INFO] [stdout] | | [INFO] [stdout] | `_VoxelHashMap` is not local [INFO] [stdout] | `_VoxelHashMap` is not local [INFO] [stdout] | [INFO] [stdout] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/lib.rs:126:1 [INFO] [stdout] | [INFO] [stdout] 126 | #[pymethods] [INFO] [stdout] | -^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PyClassImplCollector` is not local [INFO] [stdout] | `PyClassNewTextSignature` is not local [INFO] [stdout] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stdout] 127 | impl _AdaptiveThreshold { [INFO] [stdout] | ------------------ [INFO] [stdout] | | [INFO] [stdout] | `_AdaptiveThreshold` is not local [INFO] [stdout] | `_AdaptiveThreshold` is not local [INFO] [stdout] | [INFO] [stdout] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.23s [INFO] running `Command { std: "docker" "inspect" "0aa91663b40a5b78c4e4998c3750f83651d13cfc35e0f3e2edbb97bead5f463e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0aa91663b40a5b78c4e4998c3750f83651d13cfc35e0f3e2edbb97bead5f463e", kill_on_drop: false }` [INFO] [stdout] 0aa91663b40a5b78c4e4998c3750f83651d13cfc35e0f3e2edbb97bead5f463e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+cdb45c87e2cd43495379f7e867e3cc15dcee9f93" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 63f8cde5ed991940a48fa0efddfb87e9a0deaf074586b2f73243d0047ba766e0 [INFO] running `Command { std: "docker" "start" "-a" "63f8cde5ed991940a48fa0efddfb87e9a0deaf074586b2f73243d0047ba766e0", kill_on_drop: false }` [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/lib.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | #[pymethods] [INFO] [stderr] | -^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | `PyClassImplCollector` is not local [INFO] [stderr] | `PyClassNewTextSignature` is not local [INFO] [stderr] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stderr] 31 | impl _VoxelHashMap { [INFO] [stderr] | ------------- [INFO] [stderr] | | [INFO] [stdout] [INFO] [stderr] | `_VoxelHashMap` is not local [INFO] [stdout] running 0 tests [INFO] [stderr] | `_VoxelHashMap` is not local [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stderr] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] [INFO] [stderr] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stderr] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stderr] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stderr] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stderr] --> src/lib.rs:126:1 [INFO] [stderr] | [INFO] [stderr] 126 | #[pymethods] [INFO] [stderr] | -^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | `PyClassImplCollector` is not local [INFO] [stderr] | `PyClassNewTextSignature` is not local [INFO] [stderr] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stderr] 127 | impl _AdaptiveThreshold { [INFO] [stderr] | ------------------ [INFO] [stderr] | | [INFO] [stderr] | `_AdaptiveThreshold` is not local [INFO] [stderr] | `_AdaptiveThreshold` is not local [INFO] [stderr] | [INFO] [stderr] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stderr] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stderr] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stderr] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: `kiss-icp-pyo3` (lib test) generated 2 warnings [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.11s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/kiss_icp_pybind-da8576e8fc16952a) [INFO] running `Command { std: "docker" "inspect" "63f8cde5ed991940a48fa0efddfb87e9a0deaf074586b2f73243d0047ba766e0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "63f8cde5ed991940a48fa0efddfb87e9a0deaf074586b2f73243d0047ba766e0", kill_on_drop: false }` [INFO] [stdout] 63f8cde5ed991940a48fa0efddfb87e9a0deaf074586b2f73243d0047ba766e0