[INFO] cloning repository https://github.com/mdpadberg/make-your-own-neural-network [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mdpadberg/make-your-own-neural-network" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmdpadberg%2Fmake-your-own-neural-network", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmdpadberg%2Fmake-your-own-neural-network'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fa122d13204efea7a5721822dfc878fa6fc367e9 [INFO] testing mdpadberg/make-your-own-neural-network against master#733b47ea4b1b86216f14ef56e49440c33933f230+rustflags=-Copt-level=3 for pr-138759-retry [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmdpadberg%2Fmake-your-own-neural-network" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/mdpadberg/make-your-own-neural-network [INFO] finished tweaking git repo https://github.com/mdpadberg/make-your-own-neural-network [INFO] tweaked toml for git repo https://github.com/mdpadberg/make-your-own-neural-network written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mdpadberg/make-your-own-neural-network on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mdpadberg/make-your-own-neural-network already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] daca674bcf41fc4e3fdea3df9c945f1d356e314acd9ddf0ba661887b82736804 [INFO] running `Command { std: "docker" "start" "-a" "daca674bcf41fc4e3fdea3df9c945f1d356e314acd9ddf0ba661887b82736804", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "daca674bcf41fc4e3fdea3df9c945f1d356e314acd9ddf0ba661887b82736804", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "daca674bcf41fc4e3fdea3df9c945f1d356e314acd9ddf0ba661887b82736804", kill_on_drop: false }` [INFO] [stdout] daca674bcf41fc4e3fdea3df9c945f1d356e314acd9ddf0ba661887b82736804 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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 -Copt-level=3" "-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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3abfb6387613388af4df1c9c2e76d29588fea6f714553701b58b758348e7f28a [INFO] running `Command { std: "docker" "start" "-a" "3abfb6387613388af4df1c9c2e76d29588fea6f714553701b58b758348e7f28a", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling unicode-ident v1.0.11 [INFO] [stderr] Compiling crossbeam-utils v0.8.16 [INFO] [stderr] Compiling memoffset v0.9.0 [INFO] [stderr] Compiling crossbeam-epoch v0.9.15 [INFO] [stderr] Compiling simd-adler32 v0.3.7 [INFO] [stderr] Compiling rayon-core v1.11.0 [INFO] [stderr] Compiling lock_api v0.4.10 [INFO] [stderr] Compiling crc32fast v1.3.2 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.89 [INFO] [stderr] Compiling adler v1.0.2 [INFO] [stderr] Compiling num-traits v0.2.16 [INFO] [stderr] Compiling futures-core v0.3.28 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling once_cell v1.18.0 [INFO] [stderr] Compiling serde v1.0.183 [INFO] [stderr] Compiling either v1.9.0 [INFO] [stderr] Compiling log v0.4.20 [INFO] [stderr] Compiling bumpalo v3.13.0 [INFO] [stderr] Compiling miniz_oxide v0.7.1 [INFO] [stderr] Compiling num-rational v0.4.1 [INFO] [stderr] Compiling anyhow v1.0.72 [INFO] [stderr] Compiling futures-sink v0.3.28 [INFO] [stderr] Compiling serde_derive v1.0.183 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Compiling weezl v0.1.7 [INFO] [stderr] Compiling fdeflate v0.3.0 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling zune-inflate v0.2.54 [INFO] [stderr] Compiling serde_json v1.0.105 [INFO] [stderr] Compiling lebe v0.5.2 [INFO] [stderr] Compiling wasm-bindgen v0.2.89 [INFO] [stderr] Compiling flate2 v1.0.27 [INFO] [stderr] Compiling half v2.2.1 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling smallvec v1.11.0 [INFO] [stderr] Compiling bytemuck v1.13.1 [INFO] [stderr] Compiling bit_field v0.10.2 [INFO] [stderr] Compiling gif v0.12.0 [INFO] [stderr] Compiling ryu v1.0.15 [INFO] [stderr] Compiling crossbeam-channel v0.5.8 [INFO] [stderr] Compiling qoi v0.4.1 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Compiling getrandom v0.2.10 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.3 [INFO] [stderr] Compiling syn v2.0.29 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling nanorand v0.7.0 [INFO] [stderr] Compiling png v0.17.10 [INFO] [stderr] Compiling itoa v1.0.9 [INFO] [stderr] Compiling base64 v0.21.2 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling rayon v1.7.0 [INFO] [stderr] Compiling core v0.1.0 (/opt/rustwide/workdir/core) [INFO] [stderr] Compiling jpeg-decoder v0.3.0 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.89 [INFO] [stderr] Compiling tiff v0.9.0 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.89 [INFO] [stderr] Compiling pin-project-internal v1.1.3 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.89 [INFO] [stderr] Compiling pin-project v1.1.3 [INFO] [stderr] Compiling flume v0.10.14 [INFO] [stderr] Compiling exr v1.7.0 [INFO] [stderr] Compiling image v0.24.7 [INFO] [stderr] Compiling wasm v0.1.0 (/opt/rustwide/workdir/wasm) [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> wasm/src/base64_png.rs:22:30 [INFO] [stdout] | [INFO] [stdout] 22 | let result = base64::encode(&buffer.into_inner()); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode [INFO] [stdout] --> wasm/src/neuralnetwork_image.rs:15:37 [INFO] [stdout] | [INFO] [stdout] 15 | let decoded_image = base64::decode(base64_encoded_png)?; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 07s [INFO] running `Command { std: "docker" "inspect" "3abfb6387613388af4df1c9c2e76d29588fea6f714553701b58b758348e7f28a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3abfb6387613388af4df1c9c2e76d29588fea6f714553701b58b758348e7f28a", kill_on_drop: false }` [INFO] [stdout] 3abfb6387613388af4df1c9c2e76d29588fea6f714553701b58b758348e7f28a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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 -Copt-level=3" "-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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 790ca9f21356ffa80484295c80aa2a98e2c751404af4c069ce85455f05f56086 [INFO] running `Command { std: "docker" "start" "-a" "790ca9f21356ffa80484295c80aa2a98e2c751404af4c069ce85455f05f56086", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] Compiling wasm-bindgen-test-macro v0.3.37 [INFO] [stderr] Compiling scoped-tls v1.0.1 [INFO] [stderr] Compiling core v0.1.0 (/opt/rustwide/workdir/core) [INFO] [stderr] Compiling js-sys v0.3.64 [INFO] [stderr] Compiling console_error_panic_hook v0.1.7 [INFO] [stderr] Compiling wasm-bindgen-futures v0.4.37 [INFO] [stderr] Compiling wasm-bindgen-test v0.3.37 [INFO] [stderr] Compiling wasm v0.1.0 (/opt/rustwide/workdir/wasm) [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> wasm/src/base64_png.rs:22:30 [INFO] [stdout] | [INFO] [stdout] 22 | let result = base64::encode(&buffer.into_inner()); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::decode`: Use Engine::decode [INFO] [stdout] --> wasm/src/neuralnetwork_image.rs:15:37 [INFO] [stdout] | [INFO] [stdout] 15 | let decoded_image = base64::decode(base64_encoded_png)?; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 28.87s [INFO] running `Command { std: "docker" "inspect" "790ca9f21356ffa80484295c80aa2a98e2c751404af4c069ce85455f05f56086", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "790ca9f21356ffa80484295c80aa2a98e2c751404af4c069ce85455f05f56086", kill_on_drop: false }` [INFO] [stdout] 790ca9f21356ffa80484295c80aa2a98e2c751404af4c069ce85455f05f56086 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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 -Copt-level=3" "-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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 6cd250000e6335c4bfc5848a058283f69cb75aa66fb3368683b83e84146f3108 [INFO] running `Command { std: "docker" "start" "-a" "6cd250000e6335c4bfc5848a058283f69cb75aa66fb3368683b83e84146f3108", kill_on_drop: false }` [INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"` [INFO] [stderr] note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest [INFO] [stderr] note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest [INFO] [stderr] note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions [INFO] [stderr] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stderr] --> wasm/src/base64_png.rs:22:30 [INFO] [stderr] | [INFO] [stderr] 22 | let result = base64::encode(&buffer.into_inner()); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated function `base64::decode`: Use Engine::decode [INFO] [stderr] --> wasm/src/neuralnetwork_image.rs:15:37 [INFO] [stderr] | [INFO] [stderr] 15 | let decoded_image = base64::decode(base64_encoded_png)?; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `wasm` (lib test) generated 2 warnings [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/core-96bff79196703df6) [INFO] [stdout] [INFO] [stdout] running 21 tests [INFO] [stdout] test logic::backpropagation::tests::calculate_error_rate_example_from_the_book ... ok [INFO] [stdout] test logic::backpropagation::tests::calculate_error_rate_example_with_one_hidden_layers_and_with_different_sizes ... ok [INFO] [stdout] test logic::backpropagation::tests::new_weights_based_on_error_rate_and_gradient_descent_with_multiple_hidden_layers_and_with_different_sizes ... ok [INFO] [stdout] test logic::feedforward::tests::feedforward_example_from_the_book ... ok [INFO] [stdout] test matrix::matrix::tests::testing_same_size_2 ... ok [INFO] [stdout] test matrix::matrix::tests::testing_sigmoid ... ok [INFO] [stdout] test logic::feedforward::tests::test_input_ensure ... ok [INFO] [stdout] test matrix::matrix::tests::create_matrix ... ok [INFO] [stdout] test matrix::matrix::tests::testing_transpose ... ok [INFO] [stdout] test matrix::operators::tests::testing_add ... ok [INFO] [stdout] test matrix::operators::tests::testing_sub ... ok [INFO] [stdout] test neuralnetwork::neuralnetwork::test::testing_new ... ok [INFO] [stdout] test matrix::operators::tests::testing_matrix_multiplication ... ok [INFO] [stdout] test neuralnetwork::neuralnetwork::test::testing_query ... ok [INFO] [stdout] test neuralnetwork::neuralnetwork::test::testing_train ... ok [INFO] [stdout] test logic::backpropagation::tests::calculate_error_rate_example_with_multiple_hidden_layers_and_with_different_sizes ... ok [INFO] [stdout] test logic::feedforward::tests::feedforward_my_own_example_with_multiple_hidden_layers_and_with_different_sizes ... ok [INFO] [stdout] test matrix::matrix::tests::testing_same_size_1 ... ok [INFO] [stdout] test matrix::operators::tests::testing_mul ... ok [INFO] [stdout] test matrix::matrix::tests::testing_matrix_rows_and_cols ... ok [INFO] [stdout] test neuralnetwork::neuralnetwork::test::testing_error_rate ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/wasm-36502397268f0939) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test api::tests::test_neuralnetwork_image_try_from ... ok [INFO] [stdout] test api::tests::from_random_mnistimage_to_base64_to_nnimage_back_to_mnistimage ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests core [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "6cd250000e6335c4bfc5848a058283f69cb75aa66fb3368683b83e84146f3108", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6cd250000e6335c4bfc5848a058283f69cb75aa66fb3368683b83e84146f3108", kill_on_drop: false }` [INFO] [stdout] 6cd250000e6335c4bfc5848a058283f69cb75aa66fb3368683b83e84146f3108