@bongos/core 1.24.20 → 1.24.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.bongos-core.json CHANGED
@@ -2,22 +2,22 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/bongos/package-core.js",
5
- "core_version": "1.24.20",
6
- "core_contract": "1.24.20",
7
- "source_commit": "60b1007bf94497a01f84743950030dc0391c55ef",
5
+ "core_version": "1.24.22",
6
+ "core_contract": "1.24.22",
7
+ "source_commit": "25ff48c6d442a8dce64b481eaf3f4e7a8b9e02fa",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-10-30T23:00:34.599Z",
9
+ "built_at": "2026-11-02T00:23:18.248Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 632,
13
13
  "agent_docs_stubbed": 32,
14
- "functional_verbatim": 3802,
14
+ "functional_verbatim": 3803,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 4467,
20
- "tree_sha256": "57e0ea2d82eac52bb20014bdff7eb1ed319d0770aa657c32fccf9d90dbad1fce",
19
+ "file_count": 4468,
20
+ "tree_sha256": "5e6e3d870be65a768c0574be5c3d7a16b2be8850748f9f622d66da5c4f3f5ef2",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -352,7 +352,7 @@
352
352
  {
353
353
  "path": "clients/bongos-client/index.d.ts",
354
354
  "mode": "0000644",
355
- "sha256": "0e60eb71a4c912b79c2cac3bc338403883667da5c6f871ed811f21dec58d33f9"
355
+ "sha256": "3c301345609619337a39f6385a735722d54552a8e2c4496bc1ab923cd9a65ca5"
356
356
  },
357
357
  {
358
358
  "path": "clients/bongos-client/index.mjs",
@@ -2457,12 +2457,12 @@
2457
2457
  {
2458
2458
  "path": "docs/api-reference.md",
2459
2459
  "mode": "0000644",
2460
- "sha256": "57e77a6ffdbe2d558c088fce69e154b3b595b4d6d10b5053ad4ba0043cb00c46"
2460
+ "sha256": "391006a66d14634cfdc2333d95a9e4aab90376f679b6d4e5b9ff58cd33cec51f"
2461
2461
  },
2462
2462
  {
2463
2463
  "path": "docs/api/openapi.json",
2464
2464
  "mode": "0000644",
2465
- "sha256": "d2e12182597058030c086d3283f652f8d8e2b2e62900c9babed2eba71a97996a"
2465
+ "sha256": "a143477b8f8b9bb1facc61bd0c79f638981c498da2cd04b58997a2cc112df1d8"
2466
2466
  },
2467
2467
  {
2468
2468
  "path": "docs/architecture.md",
@@ -2487,12 +2487,12 @@
2487
2487
  {
2488
2488
  "path": "docs/copy-inventory.md",
2489
2489
  "mode": "0000644",
2490
- "sha256": "e678c1aba0dcdc8990f1e798ec2c5924442d69765ee5e4bd99af01aaaecac2c5"
2490
+ "sha256": "136cb40c34f7aab941af54a2e70b988bc435292dd2057563e87c977a5ea0980e"
2491
2491
  },
2492
2492
  {
2493
2493
  "path": "docs/copy-registry.json",
2494
2494
  "mode": "0000644",
2495
- "sha256": "f4fdacd0612950d84b135cd6dca7bca2c7f73d0466d5d2b65a53d01283754c27"
2495
+ "sha256": "d3d2f0570856a0bdbecb3301130cf6c9071204310f3ec2a61cf3be94597b57f3"
2496
2496
  },
2497
2497
  {
2498
2498
  "path": "docs/design/apex-pass-2-direction.md",
@@ -3002,7 +3002,7 @@
3002
3002
  {
3003
3003
  "path": "docs/module-api-changelog.md",
3004
3004
  "mode": "0000644",
3005
- "sha256": "74ccf4d1922786d39026df4486dcf59e11f328ffd3a329da1f8e035ed2af0103"
3005
+ "sha256": "f2c013805088a650ca5c4ea40b1c62033024d680fcdbf3cbce6bce525506af3d"
3006
3006
  },
3007
3007
  {
3008
3008
  "path": "docs/modules-contract.md",
@@ -3092,7 +3092,7 @@
3092
3092
  {
3093
3093
  "path": "docs/page-readings.json",
3094
3094
  "mode": "0000644",
3095
- "sha256": "22284ed95845f029bd403833797fd391ed23e589207899a95880cc1db4fb06be"
3095
+ "sha256": "571ab018d646facf6b0490d2affe2b81ecfc769cfce2e2dae7784326d01be59c"
3096
3096
  },
3097
3097
  {
3098
3098
  "path": "docs/project-context.template.md",
@@ -4512,7 +4512,7 @@
4512
4512
  {
4513
4513
  "path": "modules/autonomy/governor-docket.js",
4514
4514
  "mode": "0000644",
4515
- "sha256": "ce19c98403661f1bd0c1dbd9314f22ac2ef676216acd84754ea3d4b305be7bb7"
4515
+ "sha256": "90dd2ab4041e74ce968f9a1c553a47fe5e925ab0cd7b30c092515bae2ee1e4b4"
4516
4516
  },
4517
4517
  {
4518
4518
  "path": "modules/autonomy/matter-acts.js",
@@ -5407,7 +5407,7 @@
5407
5407
  {
5408
5408
  "path": "modules/government/docket.js",
5409
5409
  "mode": "0000644",
5410
- "sha256": "2a0375da59110b28be9de75644ea9ff6db4c99dd1663b4e99d9273fbb324f19f"
5410
+ "sha256": "0c1d2c2cc41e4b092a0f094228a6550a10712dede1236b65d463f63be8cbf12d"
5411
5411
  },
5412
5412
  {
5413
5413
  "path": "modules/government/law-board.js",
@@ -5722,7 +5722,7 @@
5722
5722
  {
5723
5723
  "path": "modules/government/treasury.js",
5724
5724
  "mode": "0000644",
5725
- "sha256": "44d96375e9eb03dbf49449e29934a4f32c0ce90af4e95f3f7487f4e688a1fdd1"
5725
+ "sha256": "bcd2863b1409ba503746297348671cff0740a7fa19f80745da61df1d844931fb"
5726
5726
  },
5727
5727
  {
5728
5728
  "path": "modules/government/waiting.js",
@@ -6022,7 +6022,7 @@
6022
6022
  {
6023
6023
  "path": "modules/hall-ui/public/city-decide.js",
6024
6024
  "mode": "0000644",
6025
- "sha256": "ef78a0f742f117d483bbb21d5545cb522d1ee2ea4fa0dca3c73eb99e6532e111"
6025
+ "sha256": "d415ea696290d71173dbf7f66ba42fb25a4a38a3fa2f4a17e49f978f1de78141"
6026
6026
  },
6027
6027
  {
6028
6028
  "path": "modules/hall-ui/public/city-draw.js",
@@ -6037,7 +6037,7 @@
6037
6037
  {
6038
6038
  "path": "modules/hall-ui/public/city.css",
6039
6039
  "mode": "0000644",
6040
- "sha256": "bc2b6e59862ada8af0fc125ccff4f875c916ca5624d46d5fb1493a8d849c154c"
6040
+ "sha256": "68ece0c4652de804137304b17dccd10ff3230d56b692bd6bdea9fd98642e22d5"
6041
6041
  },
6042
6042
  {
6043
6043
  "path": "modules/hall-ui/public/city.html",
@@ -6427,7 +6427,7 @@
6427
6427
  {
6428
6428
  "path": "modules/hall-ui/public/gov-living.js",
6429
6429
  "mode": "0000644",
6430
- "sha256": "ab04364eb1aa510c83537b53ce5dc013d858170afb2edbbb5333ebf1d3c7103d"
6430
+ "sha256": "872e12c381cf224b4687ef0d1b754f94b9f2caa9dd5169f69ca5c3e0ee85026d"
6431
6431
  },
6432
6432
  {
6433
6433
  "path": "modules/hall-ui/public/gov-positions.js",
@@ -7067,12 +7067,12 @@
7067
7067
  {
7068
7068
  "path": "modules/hall-ui/public/street-deck.css",
7069
7069
  "mode": "0000644",
7070
- "sha256": "92a8c3e1d08ffaca125a5a400b0e715bcf4ba0dce2df7494e3a5bf25bdd0c9ba"
7070
+ "sha256": "964f8caae0bfb490afbea1ebb47b9fd9deb7763d324d819db101907179e8fcd8"
7071
7071
  },
7072
7072
  {
7073
7073
  "path": "modules/hall-ui/public/street-deck.js",
7074
7074
  "mode": "0000644",
7075
- "sha256": "e5ad464d3f94b7aacbc81f58058b0ab818cecfe062ed40e1901f560bc8acb445"
7075
+ "sha256": "5a3cc55edc809a60abd44f8e782005f4af65cf7d09650431d58d1ac3121fcf69"
7076
7076
  },
7077
7077
  {
7078
7078
  "path": "modules/hall-ui/public/street-depth.js",
@@ -7527,7 +7527,7 @@
7527
7527
  {
7528
7528
  "path": "modules/ideas/governor-docket.js",
7529
7529
  "mode": "0000644",
7530
- "sha256": "638e269541147df64f78c8329f836b668312aa1a5869c3f8d02833fc85dfbe01"
7530
+ "sha256": "9021214ddd77f1e70f77400775535869be38016d407a5d728b6f7810661da838"
7531
7531
  },
7532
7532
  {
7533
7533
  "path": "modules/ideas/grades.js",
@@ -7997,7 +7997,7 @@
7997
7997
  {
7998
7998
  "path": "modules/lifecycle/governor-docket.js",
7999
7999
  "mode": "0000644",
8000
- "sha256": "ec6e81ae43691bb8730d196385aafdbe64b767d9fc4d1405f776a670d48b02d7"
8000
+ "sha256": "4b6f24b1706c8cc4007bafdfbec180c0f5d3710c880048cbe6984e963530d2f0"
8001
8001
  },
8002
8002
  {
8003
8003
  "path": "modules/lifecycle/help-requests.js",
@@ -8867,7 +8867,7 @@
8867
8867
  {
8868
8868
  "path": "modules/onboarding/routes/access-requests.js",
8869
8869
  "mode": "0000644",
8870
- "sha256": "a52a652ab1a9eac317081e211509ea5adb17ddc811538aff878ca827f0d85312"
8870
+ "sha256": "e34b57ba77610afe4f9318abdf846a17e892ad7e1e4e7a0708b6188b7eb54e95"
8871
8871
  },
8872
8872
  {
8873
8873
  "path": "modules/onboarding/routes/onboarding.js",
@@ -9817,7 +9817,7 @@
9817
9817
  {
9818
9818
  "path": "modules/provisioning/routes/provisioning.js",
9819
9819
  "mode": "0000644",
9820
- "sha256": "e59a56ad8551052b8d9087f9a1c8015f8dcd0e50ff94a47070400f08141d6b80"
9820
+ "sha256": "c72d11bef0a5fd0f8bbf070dbc28152caac1b1babbdfc9de101172c4fc99d33d"
9821
9821
  },
9822
9822
  {
9823
9823
  "path": "modules/provisioning/routes/render-standup.js",
@@ -10997,7 +10997,7 @@
10997
10997
  {
10998
10998
  "path": "modules/security/routes/reports.js",
10999
10999
  "mode": "0000644",
11000
- "sha256": "f38c00f7da0106db5a39fb207206276f1c4c8b6ded3b33f25f3c894fc1558fb7"
11000
+ "sha256": "3e1059b299c27c29eced5325253774efa673caa3a82aefac09048ac63b730fce"
11001
11001
  },
11002
11002
  {
11003
11003
  "path": "modules/security/routes/scans.js",
@@ -11697,12 +11697,12 @@
11697
11697
  {
11698
11698
  "path": "package-lock.json",
11699
11699
  "mode": "0000644",
11700
- "sha256": "65bae4318856464aa936b74893b612cd605c6d7b66c6238ec71a542e8d72bc7c"
11700
+ "sha256": "f8d14423c45cc4a1765b3fb41c65c0a73634f5de15da0ab67bae8be2baab8875"
11701
11701
  },
11702
11702
  {
11703
11703
  "path": "package.json",
11704
11704
  "mode": "0000644",
11705
- "sha256": "81f0008bb7a4172277b6d62ec5f7f2e55c4065b5f106d3cf6a08963018298302"
11705
+ "sha256": "074860e850922d563941d386715a13c8426c5e7f3378fe433b768a616a6c6f75"
11706
11706
  },
11707
11707
  {
11708
11708
  "path": "public-docs/index.html",
@@ -11722,7 +11722,7 @@
11722
11722
  {
11723
11723
  "path": "release-notes.json",
11724
11724
  "mode": "0000644",
11725
- "sha256": "0a38879aea9c192f5688bc73e6db008ad901a017cc0fd249547bf0c0d3b04af2"
11725
+ "sha256": "8f5fa868a83aa8030c953ac337abb41b7e99ca41fc26e76f0d657f1732eecad8"
11726
11726
  },
11727
11727
  {
11728
11728
  "path": "scripts/bongos/CLAUDE.md",
@@ -15272,7 +15272,7 @@
15272
15272
  {
15273
15273
  "path": "src/bongos/module-rechecks.js",
15274
15274
  "mode": "0000644",
15275
- "sha256": "a50cacb7d066e06e47d6ea2284f99f9e53ba114e32a292d8faccc9b6f381983f"
15275
+ "sha256": "454b13265b030d0567f39250f5728baef37cabf3560131ea004fcfaf6fc05f3d"
15276
15276
  },
15277
15277
  {
15278
15278
  "path": "src/bongos/module-scope-map.js",
@@ -15437,7 +15437,7 @@
15437
15437
  {
15438
15438
  "path": "src/bongos/routes/core-update.js",
15439
15439
  "mode": "0000644",
15440
- "sha256": "2c759914916354f487c7d533a6fe02ffdfe79d403023a9d387ec83aa1e40eea0"
15440
+ "sha256": "3fbb1b2302a21569de90e3b264b47d6b3bf3c2b73c0a45d65649ed25d326ec48"
15441
15441
  },
15442
15442
  {
15443
15443
  "path": "src/bongos/routes/feedback.js",
@@ -15592,7 +15592,7 @@
15592
15592
  {
15593
15593
  "path": "src/module-api.js",
15594
15594
  "mode": "0000644",
15595
- "sha256": "3a1f6e344b2de9bf618d6013a1c134a9510bcd48b685bd9996c0dc7999959d87"
15595
+ "sha256": "fa65cb9fab046030b7ccaebb950e2a3489aefb2ba8a7797454b2684356481f33"
15596
15596
  },
15597
15597
  {
15598
15598
  "path": "src/module-loader/catalog.js",
@@ -16474,6 +16474,11 @@
16474
16474
  "mode": "0000644",
16475
16475
  "sha256": "36e541b3ed4eab70c828f2e2c8654bf5f2da31617cd8038ad189d3c25100b1ad"
16476
16476
  },
16477
+ {
16478
+ "path": "tests/city_card_context.mjs",
16479
+ "mode": "0000644",
16480
+ "sha256": "9b6ae10dc9c8209367b72e69b5d8cdbe3d8ce8c7f4addc83cb2dea0c11e6f249"
16481
+ },
16477
16482
  {
16478
16483
  "path": "tests/claim_action.mjs",
16479
16484
  "mode": "0000644",
@@ -18102,7 +18107,7 @@
18102
18107
  {
18103
18108
  "path": "tests/government_treasury.mjs",
18104
18109
  "mode": "0000644",
18105
- "sha256": "c214f9376ada7f1b916a8ce48b30d08585517aca2069e33e75a3f4c76ceb05ec"
18110
+ "sha256": "8421cd8ba68102d6ba8a85d66a34b77f5ede5f73108fb8de47fcce6f857dafcd"
18106
18111
  },
18107
18112
  {
18108
18113
  "path": "tests/government_unanimous.mjs",
@@ -18127,7 +18132,7 @@
18127
18132
  {
18128
18133
  "path": "tests/governor_docket.mjs",
18129
18134
  "mode": "0000644",
18130
- "sha256": "49cf94b338640f0c7ea7f9ad3ec113ebc519983f46a0c996735140c6d99e4e23"
18135
+ "sha256": "58d0d784a40da0cdc9bd2a73dba7bc2576a946d257b0962dd456a524fe324610"
18131
18136
  },
18132
18137
  {
18133
18138
  "path": "tests/governor_matter_acts.mjs",
@@ -18417,7 +18422,7 @@
18417
18422
  {
18418
18423
  "path": "tests/hall_gov_real_site.mjs",
18419
18424
  "mode": "0000644",
18420
- "sha256": "5b477ac1e199539fab84f3c410e3363e2d0a82c52ba6ee365a995f826222b40a"
18425
+ "sha256": "cda831fb275c0ce23a1480a8aff5b27312e24a9dc3600d02257d33813c0bbcc7"
18421
18426
  },
18422
18427
  {
18423
18428
  "path": "tests/hall_home_ships_bounded.mjs",
@@ -18577,7 +18582,7 @@
18577
18582
  {
18578
18583
  "path": "tests/hall_street_depth.mjs",
18579
18584
  "mode": "0000644",
18580
- "sha256": "e3a476fd84349adea07f6f8da9487f45ae0bdbc0545bb36980396c2b5f484572"
18585
+ "sha256": "4a65a131923492ffb568fb3cad3b1e4d84abb99c9a37a4b6dcc33118077daea7"
18581
18586
  },
18582
18587
  {
18583
18588
  "path": "tests/hall_street_desk.mjs",
@@ -22262,7 +22267,7 @@
22262
22267
  {
22263
22268
  "path": "tests/wizard_demo.mjs",
22264
22269
  "mode": "0000644",
22265
- "sha256": "cde0f1f967f8f6c8fa270fb08a77207764dce9cdedca9de6a3de1f61fa32a80a"
22270
+ "sha256": "d65fcde85566b1cd0d9ded2c267273d6b8717595348c92953803f54485e04c49"
22266
22271
  },
22267
22272
  {
22268
22273
  "path": "tests/wizard_draft_resume.mjs",
@@ -577,7 +577,7 @@ export interface PostProvisioningInstancesIdRenderResponse { ok: boolean; queued
577
577
  export interface PostProvisioningInstancesIdRepoPrivateResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; message: unknown }
578
578
  export interface PostProvisioningInstancesIdRestartResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; message: unknown }
579
579
  export interface PostProvisioningInstancesIdTeardownResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; superseded: unknown; message: unknown }
580
- export interface PostProvisioningInstancesRequest { slug: string; target_ref?: string; hosting_shape?: string; domain?: string; no_address?: boolean; tier?: string; onboard_mode?: string; type?: string; description?: string; detail?: Record<string, unknown>; modules?: string[]; terms_acknowledged?: boolean; demo?: Record<string, unknown>; ship_mode?: "auto" | "manual" }
580
+ export interface PostProvisioningInstancesRequest { slug: string; target_ref?: string; hosting_shape?: string; domain?: string; no_address?: boolean; tier?: string; onboard_mode?: string; type?: string; description?: string; detail?: Record<string, unknown>; modules?: string[]; terms_acknowledged?: boolean; demo?: Record<string, unknown>; ship_mode?: "auto" | "manual"; genesis?: boolean }
581
581
  export interface PostProvisioningPhysicsCheckRequest { description?: string; detail?: Record<string, unknown> }
582
582
  export interface PostProvisioningPhysicsCheckResponse { stop: boolean; message: unknown; soft_limits: unknown }
583
583
  export interface PostProvisioningRenderLookupRequest { key: string; owner_id?: string }
@@ -39404,6 +39404,9 @@
39404
39404
  "auto",
39405
39405
  "manual"
39406
39406
  ]
39407
+ },
39408
+ "genesis": {
39409
+ "type": "boolean"
39407
39410
  }
39408
39411
  },
39409
39412
  "required": [
@@ -789,7 +789,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
789
789
  | GET | `/api/bongos/provisioning/github-app/status` | `public` | — | GET /provisioning/github-app/status?state=<> — the PUBLIC progress read (task 1004548; the checklist since task 1004649). |
790
790
  | GET | `/api/bongos/provisioning/health` | `public` | — | GET /provisioning/health — liveness + the core version this module mounted against. |
791
791
  | GET | `/api/bongos/provisioning/instances` | `any-builder` | — | GET /provisioning/instances — the caller's own instances + each open intent. |
792
- | POST | `/api/bongos/provisioning/instances` | `any-builder` | `slug`, `target_ref`, `hosting_shape`, `domain`, `no_address`, `tier`, `onboard_mode`, `type`, `description`, `detail`, `modules`, `terms_acknowledged`, `demo`, `ship_mode` | POST /provisioning/instances — request a new instance. |
792
+ | POST | `/api/bongos/provisioning/instances` | `any-builder` | `slug`, `target_ref`, `hosting_shape`, `domain`, `no_address`, `tier`, `onboard_mode`, `type`, `description`, `detail`, `modules`, `terms_acknowledged`, `demo`, `ship_mode`, `genesis` | POST /provisioning/instances — request a new instance. |
793
793
  | GET | `/api/bongos/provisioning/instances/:id` | `any-builder` | — | GET /provisioning/instances/:id — read one instance (the manage page's read). |
794
794
  | GET | `/api/bongos/provisioning/instances/:id/core-upgrade` | `archon` | — | GET the same path — step ONE of the two-step (ADR 0293 D4): what a move would do. |
795
795
  | POST | `/api/bongos/provisioning/instances/:id/core-upgrade` | `archon` | — | POST /provisioning/instances/:id/core-upgrade — move the core pin. |
@@ -591,7 +591,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
591
591
  | `d32c5e058d1e` | certain | From the system | `modules/hall-ui/public/hall-render.js:714` |
592
592
  | `fc6fdfa639a7` | certain | Full log | `modules/hall-ui/public/task.js:480` |
593
593
  | `11fc0483c149` | certain | Full screen — press Esc, or the button in the corner, to bring the bars back. | `modules/hall-ui/public/shell.js:593` |
594
- | `7537fe1f3792` | certain | Full text | `modules/hall-ui/public/city-decide.js:267` |
594
+ | `7537fe1f3792` | certain | Full text | `modules/hall-ui/public/city-decide.js:270` |
595
595
  | `c93912bbad76` | certain | Gathering the reviews and flagged copy that wait for you. | `modules/hall-ui/public/studio.html:200` |
596
596
  | `4638e024f0af` | certain | Generated from the code on the last deploy · | `modules/hall-ui/public/atlas.js:431` |
597
597
  | `3c1a5d27ef0b` | certain | Generated from the code on the last deploy. | `modules/hall-ui/public/atlas.js:431` |
@@ -7794,7 +7794,7 @@
7794
7794
  "surface": "builders-hall",
7795
7795
  "text": "Full text",
7796
7796
  "file": "modules/hall-ui/public/city-decide.js",
7797
- "line": 267,
7797
+ "line": 270,
7798
7798
  "origin": "js-text-assign",
7799
7799
  "confidence": "certain"
7800
7800
  },
@@ -3296,5 +3296,9 @@ is load-bearing: the script throws rather than guess if it is missing, and
3296
3296
  landed since 1.24.18 with no explicit bump. run 41137645458. (task 1002620)
3297
3297
  1.24.20 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3298
3298
  landed since 1.24.19 with no explicit bump. run 41141610027. (task 1002620)
3299
+ 1.24.21 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3300
+ landed since 1.24.20 with no explicit bump. run 41364831803. (task 1002620)
3301
+ 1.24.22 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
3302
+ landed since 1.24.21 with no explicit bump. run 41366737579. (task 1002620)
3299
3303
  ---------------------------------------------------------------------------
3300
3304
  ```