[INFO] cloning repository https://github.com/artemshitov/stamp [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/artemshitov/stamp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fartemshitov%2Fstamp", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fartemshitov%2Fstamp'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 503270ef572932ef9934bd9303fb494800ce449b [INFO] checking artemshitov/stamp against try#8de4b308b608cded0ebccf658a0fc719bce87d4e for pr-89056 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fartemshitov%2Fstamp" "/workspace/builds/worker-14/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-14/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/artemshitov/stamp on toolchain 8de4b308b608cded0ebccf658a0fc719bce87d4e [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8de4b308b608cded0ebccf658a0fc719bce87d4e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/artemshitov/stamp [INFO] finished tweaking git repo https://github.com/artemshitov/stamp [INFO] tweaked toml for git repo https://github.com/artemshitov/stamp written to /workspace/builds/worker-14/source/Cargo.toml [INFO] crate git repo https://github.com/artemshitov/stamp already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8de4b308b608cded0ebccf658a0fc719bce87d4e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded atty v0.2.2 [INFO] [stderr] Downloaded term_size v0.3.0 [INFO] [stderr] Downloaded unicode-segmentation v1.2.0 [INFO] [stderr] Downloaded clap v2.24.2 [INFO] [stderr] Downloaded quick-error v1.2.0 [INFO] [stderr] Downloaded colored v1.5.1 [INFO] [stderr] Downloaded nom v3.0.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+8de4b308b608cded0ebccf658a0fc719bce87d4e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1865e42a3b10506e293694c57a910a12a99df929c3f4e0697f038a491144dd06 [INFO] running `Command { std: "docker" "start" "-a" "1865e42a3b10506e293694c57a910a12a99df929c3f4e0697f038a491144dd06", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1865e42a3b10506e293694c57a910a12a99df929c3f4e0697f038a491144dd06", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1865e42a3b10506e293694c57a910a12a99df929c3f4e0697f038a491144dd06", kill_on_drop: false }` [INFO] [stdout] 1865e42a3b10506e293694c57a910a12a99df929c3f4e0697f038a491144dd06 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "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:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+8de4b308b608cded0ebccf658a0fc719bce87d4e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f020dc111039d8869e9ed091e01bcb0e20493798e862d7ad584fef8ea297dc74 [INFO] running `Command { std: "docker" "start" "-a" "f020dc111039d8869e9ed091e01bcb0e20493798e862d7ad584fef8ea297dc74", kill_on_drop: false }` [INFO] [stderr] Compiling winapi-build v0.1.1 [INFO] [stderr] Checking libc v0.2.23 [INFO] [stderr] Checking winapi v0.2.8 [INFO] [stderr] Checking vec_map v0.8.0 [INFO] [stderr] Checking lazy_static v0.2.8 [INFO] [stderr] Checking ansi_term v0.9.0 [INFO] [stderr] Checking yaml-rust v0.3.5 [INFO] [stderr] Checking unicode-width v0.1.4 [INFO] [stderr] Checking unicode-segmentation v1.2.0 [INFO] [stderr] Checking bitflags v0.8.2 [INFO] [stderr] Checking strsim v0.6.0 [INFO] [stderr] Checking quick-error v1.2.0 [INFO] [stderr] Checking nom v3.0.0 [INFO] [stderr] Checking colored v1.5.1 [INFO] [stderr] Compiling kernel32-sys v0.2.2 [INFO] [stderr] Checking term_size v0.3.0 [INFO] [stderr] Checking atty v0.2.2 [INFO] [stderr] Checking walkdir v0.1.8 [INFO] [stderr] Checking clap v2.24.2 [INFO] [stderr] Checking stamp v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior is unexpected and probably not what you want. Consider using a crate from crates.io instead. [INFO] [stdout] --> src/main.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 72 | path = env::home_dir() [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior is unexpected and probably not what you want. Consider using a crate from crates.io instead. [INFO] [stdout] --> src/main.rs:72:25 [INFO] [stdout] | [INFO] [stdout] 72 | path = env::home_dir() [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / quick_error! { [INFO] [stdout] 10 | | #[derive(Debug)] [INFO] [stdout] 11 | | pub enum Error { [INFO] [stdout] 12 | | IOError(err: io::Error) { [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `quick_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 11 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 11 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.14s [INFO] running `Command { std: "docker" "inspect" "f020dc111039d8869e9ed091e01bcb0e20493798e862d7ad584fef8ea297dc74", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f020dc111039d8869e9ed091e01bcb0e20493798e862d7ad584fef8ea297dc74", kill_on_drop: false }` [INFO] [stdout] f020dc111039d8869e9ed091e01bcb0e20493798e862d7ad584fef8ea297dc74