[INFO] fetching crate utf16string 0.2.0... [INFO] building utf16string-0.2.0 against master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2 [INFO] extracting crate utf16string 0.2.0 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate utf16string 0.2.0 [INFO] finished tweaking crates.io crate utf16string 0.2.0 [INFO] tweaked toml for crates.io crate utf16string 0.2.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate utf16string 0.2.0 on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 1 package to latest compatible version [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2f92b6a6ff992d5cb04e4ba41acaf613db1aaa3ee84b78233fa78a972f8ecb7c [INFO] running `Command { std: "docker" "start" "-a" "2f92b6a6ff992d5cb04e4ba41acaf613db1aaa3ee84b78233fa78a972f8ecb7c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2f92b6a6ff992d5cb04e4ba41acaf613db1aaa3ee84b78233fa78a972f8ecb7c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2f92b6a6ff992d5cb04e4ba41acaf613db1aaa3ee84b78233fa78a972f8ecb7c", kill_on_drop: false }` [INFO] [stdout] 2f92b6a6ff992d5cb04e4ba41acaf613db1aaa3ee84b78233fa78a972f8ecb7c [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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3aa20b12db8005c73201ddfe3bb9b62fe6540695b9922b3675b383db6d95bd5e [INFO] running `Command { std: "docker" "start" "-a" "3aa20b12db8005c73201ddfe3bb9b62fe6540695b9922b3675b383db6d95bd5e", kill_on_drop: false }` [INFO] [stderr] Compiling utf16string v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/iters.rs:113:58 [INFO] [stdout] | [INFO] [stdout] 113 | let pos = self.index + self.chars.chunks.len() * std::mem::size_of::(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | unused_qualifications [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 113 - let pos = self.index + self.chars.chunks.len() * std::mem::size_of::(); [INFO] [stdout] 113 + let pos = self.index + self.chars.chunks.len() * size_of::(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:68:39 [INFO] [stdout] | [INFO] [stdout] 68 | let mut chunks = raw.chunks_exact(std::mem::size_of::()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 68 - let mut chunks = raw.chunks_exact(std::mem::size_of::()); [INFO] [stdout] 68 + let mut chunks = raw.chunks_exact(size_of::()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:77:33 [INFO] [stdout] | [INFO] [stdout] 77 | error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 77 - error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] 77 + error_len: Some(size_of::() as u8), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:87:45 [INFO] [stdout] | [INFO] [stdout] 87 | ... error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 87 - error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] 87 + error_len: Some(size_of::() as u8), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/wstr.rs:264:18 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn chars(&self) -> WStrChars { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 264 | pub fn chars(&self) -> WStrChars<'_, E> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/wstr.rs:273:25 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn char_indices(&self) -> WStrCharIndices { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 273 | pub fn char_indices(&self) -> WStrCharIndices<'_, E> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.25s [INFO] running `Command { std: "docker" "inspect" "3aa20b12db8005c73201ddfe3bb9b62fe6540695b9922b3675b383db6d95bd5e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3aa20b12db8005c73201ddfe3bb9b62fe6540695b9922b3675b383db6d95bd5e", kill_on_drop: false }` [INFO] [stdout] 3aa20b12db8005c73201ddfe3bb9b62fe6540695b9922b3675b383db6d95bd5e [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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dabd6f791a6dbfbd7b84b0b12ded326edbeabc2a886da1335d81873f1ad327ce [INFO] running `Command { std: "docker" "start" "-a" "dabd6f791a6dbfbd7b84b0b12ded326edbeabc2a886da1335d81873f1ad327ce", kill_on_drop: false }` [INFO] [stderr] Compiling utf16string v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/iters.rs:113:58 [INFO] [stdout] | [INFO] [stdout] 113 | let pos = self.index + self.chars.chunks.len() * std::mem::size_of::(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | unused_qualifications [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 113 - let pos = self.index + self.chars.chunks.len() * std::mem::size_of::(); [INFO] [stdout] 113 + let pos = self.index + self.chars.chunks.len() * size_of::(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:68:39 [INFO] [stdout] | [INFO] [stdout] 68 | let mut chunks = raw.chunks_exact(std::mem::size_of::()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 68 - let mut chunks = raw.chunks_exact(std::mem::size_of::()); [INFO] [stdout] 68 + let mut chunks = raw.chunks_exact(size_of::()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:77:33 [INFO] [stdout] | [INFO] [stdout] 77 | error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 77 - error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] 77 + error_len: Some(size_of::() as u8), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:87:45 [INFO] [stdout] | [INFO] [stdout] 87 | ... error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 87 - error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] 87 + error_len: Some(size_of::() as u8), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/wstr.rs:264:18 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn chars(&self) -> WStrChars { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 264 | pub fn chars(&self) -> WStrChars<'_, E> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/wstr.rs:273:25 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn char_indices(&self) -> WStrCharIndices { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 273 | pub fn char_indices(&self) -> WStrCharIndices<'_, E> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/iters.rs:113:58 [INFO] [stdout] | [INFO] [stdout] 113 | let pos = self.index + self.chars.chunks.len() * std::mem::size_of::(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | unused_qualifications [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 113 - let pos = self.index + self.chars.chunks.len() * std::mem::size_of::(); [INFO] [stdout] 113 + let pos = self.index + self.chars.chunks.len() * size_of::(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:68:39 [INFO] [stdout] | [INFO] [stdout] 68 | let mut chunks = raw.chunks_exact(std::mem::size_of::()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 68 - let mut chunks = raw.chunks_exact(std::mem::size_of::()); [INFO] [stdout] 68 + let mut chunks = raw.chunks_exact(size_of::()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:77:33 [INFO] [stdout] | [INFO] [stdout] 77 | error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 77 - error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] 77 + error_len: Some(size_of::() as u8), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:87:45 [INFO] [stdout] | [INFO] [stdout] 87 | ... error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 87 - error_len: Some(std::mem::size_of::() as u8), [INFO] [stdout] 87 + error_len: Some(size_of::() as u8), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:257:36 [INFO] [stdout] | [INFO] [stdout] 257 | let l1 = 'c'.len_utf16() * std::mem::size_of::(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 257 - let l1 = 'c'.len_utf16() * std::mem::size_of::(); [INFO] [stdout] 257 + let l1 = 'c'.len_utf16() * size_of::(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> src/utf16.rs:262:44 [INFO] [stdout] | [INFO] [stdout] 262 | let l1 = '\u{10000}'.len_utf16() * std::mem::size_of::(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 262 - let l1 = '\u{10000}'.len_utf16() * std::mem::size_of::(); [INFO] [stdout] 262 + let l1 = '\u{10000}'.len_utf16() * size_of::(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/wstr.rs:264:18 [INFO] [stdout] | [INFO] [stdout] 264 | pub fn chars(&self) -> WStrChars { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 264 | pub fn chars(&self) -> WStrChars<'_, E> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/wstr.rs:273:25 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn char_indices(&self) -> WStrCharIndices { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 273 | pub fn char_indices(&self) -> WStrCharIndices<'_, E> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.00s [INFO] running `Command { std: "docker" "inspect" "dabd6f791a6dbfbd7b84b0b12ded326edbeabc2a886da1335d81873f1ad327ce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dabd6f791a6dbfbd7b84b0b12ded326edbeabc2a886da1335d81873f1ad327ce", kill_on_drop: false }` [INFO] [stdout] dabd6f791a6dbfbd7b84b0b12ded326edbeabc2a886da1335d81873f1ad327ce