38.16 s[grosiree-e2e] Validating consistency between /build/source/package-lock.json and /nix/store/xg9n2cx43bwcgqzw3a1nj3wjf6f8x10c-grosiree-e2e-0.0.1-npm-deps/package-lock.json
38.19 s[grosiree-e2e] Setting npm_config_cache to /nix/store/xg9n2cx43bwcgqzw3a1nj3wjf6f8x10c-grosiree-e2e-0.0.1-npm-deps
39.05 s[grosiree-e2e] patching script interpreter paths in node_modules
39.06 s[grosiree-e2e] node_modules/prettier/bin/prettier.cjs: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
39.07 s[grosiree-e2e] node_modules/eslint/bin/eslint.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
39.08 s[grosiree-e2e] node_modules/@playwright/test/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
39.09 s[grosiree-e2e] node_modules/acorn/bin/acorn: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
39.11 s[grosiree-e2e] node_modules/which/bin/node-which: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
39.12 s[grosiree-e2e] node_modules/playwright/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
39.14 s[grosiree-e2e] node_modules/playwright-core/cli.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
39.15 s[grosiree-e2e] node_modules/playwright-core/lib/utilsBundleImpl/xdg-open: interpreter directive changed from "#!/bin/sh" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/sh"
39.16 s[grosiree-e2e] node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
39.18 s[grosiree-e2e] node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
39.19 s[grosiree-e2e] node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
39.20 s[grosiree-e2e] node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
39.22 s[grosiree-e2e] node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
39.23 s[grosiree-e2e] node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
39.24 s[grosiree-e2e] node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
39.25 s[grosiree-e2e] node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
39.26 s[grosiree-e2e] node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
39.27 s[grosiree-e2e] node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh: interpreter directive changed from "#!/usr/bin/env bash" to "/nix/store/rlq03x4cwf8zn73hxaxnx0zn5q9kifls-bash-5.3p3/bin/bash"
39.29 s[grosiree-e2e] node_modules/js-yaml/bin/js-yaml.js: interpreter directive changed from "#!/usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
39.30 s[grosiree-e2e] node_modules/ulid/bin/cli.js: interpreter directive changed from "#! /usr/bin/env node" to "/nix/store/lgggxsrdzisnbligi7irlh4qmqczs0xk-nodejs-24.11.1/bin/node"
39.40 s[grosiree-e2e] npmwarnUnknown env config "nodedir". This will stop working in the next major version of npm.
39.40 s[grosiree-e2e] npmwarnUnknown env config "platform". This will stop working in the next major version of npm.
39.40 s[grosiree-e2e] npmwarnUnknown env config "arch". This will stop working in the next major version of npm.
43.29 s[grosiree-e2e] Running 4 tests using 1 worker
44.03 s[grosiree-e2e] Skipping host requirements validation logic because `PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS` env variable is set.
44.19 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:53 codeberg.org/mtlynch/grosiree/handlers/db_dev.go:81: provisioning a new private database with token f765yuXjjLiaCWBN0rb6qcu2xV4ouL
44.19 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:53 codeberg.org/mtlynch/grosiree/store/sqlite/sqlite.go:24: reading DB from :memory:
44.19 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:53 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /login 200 4498
44.21 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
44.21 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
44.21 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/css/fontawesome.min.css 200 80651
44.21 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/css/solid.min.css 200 572
44.21 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
44.21 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/css/style.css 200 574
44.22 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/confirm-dialog.js 200 3023
44.22 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
44.22 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
44.22 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
44.45 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: POST /login 303 0
44.45 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET / 200 22396
44.52 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/sections 200 3
44.52 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/items 200 3
44.55 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: POST /api/groceries 200 943
44.56 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: POST /api/groceries/clear 200 87
44.60 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET / 200 22396
44.64 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/items 200 36
44.64 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/sections 200 10
44.85 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: POST /api/groceries 200 943
44.87 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/items 200 36
44.88 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/webfonts/fa-solid-900.woff2 200 150472
44.88 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:54 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/sections 200 10
45.41 s[grosiree-e2e] ·[WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/db_dev.go:81: provisioning a new private database with token IrM9oKQtgGGwvpRFRp6X9sWqtmTFQn
45.41 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/store/sqlite/sqlite.go:24: reading DB from :memory:
45.41 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /login 200 4498
45.42 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
45.42 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/css/fontawesome.min.css 200 80651
45.42 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/css/solid.min.css 200 572
45.43 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/css/style.css 200 574
45.43 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
45.43 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
45.43 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
45.44 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
45.44 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
45.44 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/confirm-dialog.js 200 3023
45.59 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: POST /login 303 0
45.60 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET / 200 22396
45.63 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/items 200 3
45.63 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/sections 200 3
45.64 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET / 200 22396
45.67 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/items 200 3
45.67 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:55 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/sections 200 3
47.30 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: POST /api/groceries 200 952
47.33 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/sections 200 3
47.33 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/webfonts/fa-solid-900.woff2 200 150472
47.33 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/items 200 34
47.59 s[grosiree-e2e] ·[WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/db_dev.go:81: provisioning a new private database with token La0eYoBzBtRRgSb1zkDVA3cksTVZ5a
47.59 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/store/sqlite/sqlite.go:24: reading DB from :memory:
47.60 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /login 200 4498
47.60 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
47.60 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/css/solid.min.css 200 572
47.60 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/css/fontawesome.min.css 200 80651
47.60 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/css/style.css 200 574
47.60 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
47.60 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
47.61 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722
47.61 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/confirm-dialog.js 200 3023
47.61 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
47.61 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
47.76 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: POST /login 303 0
47.77 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET / 200 22396
47.80 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/sections 200 3
47.80 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /api/autocomplete/items 200 3
47.81 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: POST /api/groceries 200 960
47.82 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /grocery-items 200 9068
47.86 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:57 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/webfonts/fa-solid-900.woff2 200 150472
49.28 s[grosiree-e2e] ·[WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/db_dev.go:81: provisioning a new private database with token AipXfqy9Dwa7TeBhQRQWET01zRcSUs
49.28 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/store/sqlite/sqlite.go:24: reading DB from :memory:
49.29 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET / 303 33
49.29 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /login 200 4498
49.31 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/htmx@2.0.4/htmx.min.js 200 50917
49.31 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/css/fontawesome.min.css 200 80651
49.31 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/fontawesome@6.2.0/css/solid.min.css 200 572
49.31 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/css/style.css 200 574
49.31 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/css/bootstrap.min.css 200 194901
49.31 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/bootstrap@5.2.2/js/bootstrap.bundle.min.js 200 80496
49.32 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/htmx-settings.js 200 813
49.32 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/htmx-ext/clear-before-send.js 200 775
49.33 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/js/confirm-dialog.js 200 3023
49.33 s[grosiree-e2e] [WebServer] 2026/06/15 12:26:59 codeberg.org/mtlynch/grosiree/handlers/middleware.go:13: GET /static/third-party/htmx-ext-response-targets@2.0.0/response-targets.js 200 3722