@procedures/restic 0.0.0-stage → 0.3.0

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/CHANGELOG.md ADDED
@@ -0,0 +1,43 @@
1
+ # @procedures/restic
2
+
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 5e2ba76: New package: `restic.run` runs a restic command with JSON output. The repository keys come from the environment.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [ddea529]
12
+ - Updated dependencies [b2a3e3a]
13
+ - Updated dependencies [a8c47f1]
14
+ - Updated dependencies [381ce3a]
15
+ - Updated dependencies [0c627f8]
16
+ - Updated dependencies [ae7f05f]
17
+ - Updated dependencies [7873940]
18
+ - Updated dependencies [a70d445]
19
+ - Updated dependencies [bc70357]
20
+ - Updated dependencies [07cc998]
21
+ - Updated dependencies [a6b01a9]
22
+ - Updated dependencies [c799cdd]
23
+ - Updated dependencies [540f8d9]
24
+ - Updated dependencies [b6daaec]
25
+ - Updated dependencies [5b9264e]
26
+ - Updated dependencies [956e88b]
27
+ - Updated dependencies [ff62281]
28
+ - Updated dependencies [d81d0ed]
29
+ - Updated dependencies [aa67cc7]
30
+ - Updated dependencies [061fa22]
31
+ - Updated dependencies [cfb9d69]
32
+ - Updated dependencies [43f7de5]
33
+ - Updated dependencies [b07bb50]
34
+ - Updated dependencies [4a3bfa1]
35
+ - Updated dependencies [bd0b626]
36
+ - Updated dependencies [a6be873]
37
+ - Updated dependencies [fb30718]
38
+ - Updated dependencies [c5528e4]
39
+ - Updated dependencies [fee5d9c]
40
+ - Updated dependencies [21f7743]
41
+ - Updated dependencies [31a0b46]
42
+ - @procedures/client@0.3.0
43
+ - @procedures/shell@0.3.0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-2026 Mark Russell
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,30 @@
1
- # Temporary Holding Version
1
+ # @procedures/restic
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ [![npm](https://img.shields.io/npm/v/@procedures/restic?color=2346c4&label=npm)](https://www.npmjs.com/package/@procedures/restic)
4
+
5
+ The restic backup program as one procedure. It starts restic with argv, never through a shell.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ pnpm add @procedures/restic @procedures/client
11
+ ```
12
+
13
+ A host registers the procedures with `createRegistry(resticModule)`, or with `import "@procedures/restic/register"` for the global registry. The package root and `./module` register nothing.
14
+
15
+ ## Procedures
16
+
17
+ | Procedure | Effects | What it does |
18
+ | --- | --- | --- |
19
+ | `restic.run` | reads and writes `fs`, `network`, `process`, destructive | Runs a restic command (`backup`, `snapshots`, `restore`, `forget`, `check`) and reads its JSON output. |
20
+
21
+ ## Example
22
+
23
+ ```ts
24
+ // RESTIC_REPOSITORY and RESTIC_PASSWORD are in the environment
25
+ const { json } = await client.exec(["restic", "run"], { path: ["snapshots"] });
26
+ ```
27
+
28
+ ## Secrets
29
+
30
+ restic reads the repository and its keys from the environment (`RESTIC_REPOSITORY`, `RESTIC_PASSWORD`, `B2_ACCOUNT_ID`, `AWS_ACCESS_KEY_ID` and the others), so no secret is an input. `restic.run` refuses `--password-command`, because that flag starts a program.
@@ -0,0 +1 @@
1
+ {"version":"7.0.2","root":[88,[420,423]],"packageJsons":["../../../node_modules/.pnpm/@mark1russell7+quantity@0.2.0_zod@4.6.5/node_modules/@mark1russell7/quantity/package.json","../../../node_modules/.pnpm/@mark1russell7+service@0.4.0_zod@4.6.5/node_modules/@mark1russell7/service/package.json","../../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/@types/body-parser/package.json","../../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/connect/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/@types/express-serve-static-core/package.json","../../../node_modules/.pnpm/@types+express@5.0.6/node_modules/@types/express/package.json","../../../node_modules/.pnpm/@types+http-errors@2.0.5/node_modules/@types/http-errors/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/package.json","../../../node_modules/.pnpm/@types+qs@6.15.1/node_modules/@types/qs/package.json","../../../node_modules/.pnpm/@types+range-parser@1.2.7/node_modules/@types/range-parser/package.json","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/@types/send/package.json","../../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/@types/serve-static/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/ws/package.json","../../../node_modules/.pnpm/express@5.2.1_supports-color@7.2.0/node_modules/express/package.json","../../../node_modules/.pnpm/punycode@2.3.1/node_modules/punycode/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/package.json","../../../node_modules/.pnpm/ws@8.22.0/node_modules/ws/package.json","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/package.json","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/package.json","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/package.json","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/package.json","../../client-shell/package.json","../../client/package.json","../package.json"],"missingPackageJsons":["../../../node_modules/.pnpm/@mark1russell7+quantity@0.2.0_zod@4.6.5/node_modules/@mark1russell7/quantity/build/package.json","../../../node_modules/.pnpm/@mark1russell7+service@0.4.0_zod@4.6.5/node_modules/@mark1russell7/service/build/package.json","../../../node_modules/.pnpm/@mark1russell7+service@0.4.0_zod@4.6.5/node_modules/ioredis/package.json","../../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/connect/package.json","../../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/http/package.json","../../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/http/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/@types/events/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/events/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/http/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/qs/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/range-parser/package.json","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/send/package.json","../../../node_modules/.pnpm/@types+express@5.0.6/node_modules/body-parser/package.json","../../../node_modules/.pnpm/@types+express@5.0.6/node_modules/express-serve-static-core/package.json","../../../node_modules/.pnpm/@types+express@5.0.6/node_modules/serve-static/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/assert/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/assert/strict/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/async_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/buffer/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/child_process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/cluster/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/console/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/constants/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/crypto/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/dgram/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/diagnostics_channel/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/dns/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/dns/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/domain/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/fs/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/fs/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/http2/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/https/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/inspector/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/inspector/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/module/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/net/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/assert/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dns/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/fs/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/readline/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/timers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/os/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/path/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/path/posix/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/path/win32/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/perf_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/punycode/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/querystring/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/readline/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/readline/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/repl/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/consumers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/stream/web/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/string_decoder/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/timers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/timers/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/tls/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/trace_events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/tty/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/url/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/util/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/util/types/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/v8/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/vm/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/wasi/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/worker_threads/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/zlib/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/assert/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/assert/strict/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/async_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/buffer/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/child_process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/cluster/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/console/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/constants/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/crypto/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/dgram/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/diagnostics_channel/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/dns/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/dns/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/domain/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/fs/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/fs/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/http/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/http2/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/https/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/inspector/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/inspector/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/module/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/net/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/os/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/path/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/path/posix/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/path/win32/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/perf_hooks/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/process/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/punycode/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/querystring/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/readline/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/readline/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/repl/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/consumers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/stream/web/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/string_decoder/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/timers/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/timers/promises/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/tls/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/trace_events/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/tty/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/url/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/util/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/util/types/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/v8/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/vm/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/wasi/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/worker_threads/package.json","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/zlib/package.json","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/@types/fs/package.json","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/fs/package.json","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/stream/package.json","../../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/http-errors/package.json","../../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/http/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/events/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/http/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/https/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/net/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/tls/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/url/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/zlib/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/events/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/http/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/https/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/net/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/stream/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/tls/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/url/package.json","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/zlib/package.json","../../../node_modules/.pnpm/node_modules/@types/assert/package.json","../../../node_modules/.pnpm/node_modules/@types/assert/strict/package.json","../../../node_modules/.pnpm/node_modules/@types/async_hooks/package.json","../../../node_modules/.pnpm/node_modules/@types/buffer/package.json","../../../node_modules/.pnpm/node_modules/@types/child_process/package.json","../../../node_modules/.pnpm/node_modules/@types/cluster/package.json","../../../node_modules/.pnpm/node_modules/@types/console/package.json","../../../node_modules/.pnpm/node_modules/@types/constants/package.json","../../../node_modules/.pnpm/node_modules/@types/crypto/package.json","../../../node_modules/.pnpm/node_modules/@types/dgram/package.json","../../../node_modules/.pnpm/node_modules/@types/diagnostics_channel/package.json","../../../node_modules/.pnpm/node_modules/@types/dns/package.json","../../../node_modules/.pnpm/node_modules/@types/dns/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/domain/package.json","../../../node_modules/.pnpm/node_modules/@types/events/package.json","../../../node_modules/.pnpm/node_modules/@types/fs/package.json","../../../node_modules/.pnpm/node_modules/@types/fs/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/http/package.json","../../../node_modules/.pnpm/node_modules/@types/http2/package.json","../../../node_modules/.pnpm/node_modules/@types/https/package.json","../../../node_modules/.pnpm/node_modules/@types/inspector/package.json","../../../node_modules/.pnpm/node_modules/@types/inspector/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/module/package.json","../../../node_modules/.pnpm/node_modules/@types/net/package.json","../../../node_modules/.pnpm/node_modules/@types/os/package.json","../../../node_modules/.pnpm/node_modules/@types/path/package.json","../../../node_modules/.pnpm/node_modules/@types/path/posix/package.json","../../../node_modules/.pnpm/node_modules/@types/path/win32/package.json","../../../node_modules/.pnpm/node_modules/@types/perf_hooks/package.json","../../../node_modules/.pnpm/node_modules/@types/process/package.json","../../../node_modules/.pnpm/node_modules/@types/punycode/package.json","../../../node_modules/.pnpm/node_modules/@types/querystring/package.json","../../../node_modules/.pnpm/node_modules/@types/readline/package.json","../../../node_modules/.pnpm/node_modules/@types/readline/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/repl/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/consumers/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/stream/web/package.json","../../../node_modules/.pnpm/node_modules/@types/string_decoder/package.json","../../../node_modules/.pnpm/node_modules/@types/timers/package.json","../../../node_modules/.pnpm/node_modules/@types/timers/promises/package.json","../../../node_modules/.pnpm/node_modules/@types/tls/package.json","../../../node_modules/.pnpm/node_modules/@types/trace_events/package.json","../../../node_modules/.pnpm/node_modules/@types/tty/package.json","../../../node_modules/.pnpm/node_modules/@types/url/package.json","../../../node_modules/.pnpm/node_modules/@types/util/package.json","../../../node_modules/.pnpm/node_modules/@types/util/types/package.json","../../../node_modules/.pnpm/node_modules/@types/v8/package.json","../../../node_modules/.pnpm/node_modules/@types/vm/package.json","../../../node_modules/.pnpm/node_modules/@types/wasi/package.json","../../../node_modules/.pnpm/node_modules/@types/worker_threads/package.json","../../../node_modules/.pnpm/node_modules/@types/zlib/package.json","../../../node_modules/.pnpm/node_modules/assert/package.json","../../../node_modules/.pnpm/node_modules/assert/strict/package.json","../../../node_modules/.pnpm/node_modules/async_hooks/package.json","../../../node_modules/.pnpm/node_modules/buffer/package.json","../../../node_modules/.pnpm/node_modules/child_process/package.json","../../../node_modules/.pnpm/node_modules/cluster/package.json","../../../node_modules/.pnpm/node_modules/console/package.json","../../../node_modules/.pnpm/node_modules/constants/package.json","../../../node_modules/.pnpm/node_modules/crypto/package.json","../../../node_modules/.pnpm/node_modules/dgram/package.json","../../../node_modules/.pnpm/node_modules/diagnostics_channel/package.json","../../../node_modules/.pnpm/node_modules/dns/package.json","../../../node_modules/.pnpm/node_modules/dns/promises/package.json","../../../node_modules/.pnpm/node_modules/domain/package.json","../../../node_modules/.pnpm/node_modules/events/package.json","../../../node_modules/.pnpm/node_modules/fs/package.json","../../../node_modules/.pnpm/node_modules/fs/promises/package.json","../../../node_modules/.pnpm/node_modules/http/package.json","../../../node_modules/.pnpm/node_modules/http2/package.json","../../../node_modules/.pnpm/node_modules/https/package.json","../../../node_modules/.pnpm/node_modules/inspector/package.json","../../../node_modules/.pnpm/node_modules/inspector/promises/package.json","../../../node_modules/.pnpm/node_modules/module/package.json","../../../node_modules/.pnpm/node_modules/net/package.json","../../../node_modules/.pnpm/node_modules/os/package.json","../../../node_modules/.pnpm/node_modules/path/package.json","../../../node_modules/.pnpm/node_modules/path/posix/package.json","../../../node_modules/.pnpm/node_modules/path/win32/package.json","../../../node_modules/.pnpm/node_modules/perf_hooks/package.json","../../../node_modules/.pnpm/node_modules/process/package.json","../../../node_modules/.pnpm/node_modules/querystring/package.json","../../../node_modules/.pnpm/node_modules/readline/package.json","../../../node_modules/.pnpm/node_modules/readline/promises/package.json","../../../node_modules/.pnpm/node_modules/repl/package.json","../../../node_modules/.pnpm/node_modules/stream/consumers/package.json","../../../node_modules/.pnpm/node_modules/stream/package.json","../../../node_modules/.pnpm/node_modules/stream/promises/package.json","../../../node_modules/.pnpm/node_modules/stream/web/package.json","../../../node_modules/.pnpm/node_modules/string_decoder/package.json","../../../node_modules/.pnpm/node_modules/timers/package.json","../../../node_modules/.pnpm/node_modules/timers/promises/package.json","../../../node_modules/.pnpm/node_modules/tls/package.json","../../../node_modules/.pnpm/node_modules/trace_events/package.json","../../../node_modules/.pnpm/node_modules/tty/package.json","../../../node_modules/.pnpm/node_modules/url/package.json","../../../node_modules/.pnpm/node_modules/util/package.json","../../../node_modules/.pnpm/node_modules/util/types/package.json","../../../node_modules/.pnpm/node_modules/v8/package.json","../../../node_modules/.pnpm/node_modules/vm/package.json","../../../node_modules/.pnpm/node_modules/wasi/package.json","../../../node_modules/.pnpm/node_modules/worker_threads/package.json","../../../node_modules/.pnpm/node_modules/zlib/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/buffer/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/events/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/net/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/stream/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/stream/web/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/tls/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/url/package.json","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/worker_threads/package.json","../../../node_modules/assert/package.json","../../../node_modules/assert/strict/package.json","../../../node_modules/async_hooks/package.json","../../../node_modules/buffer/package.json","../../../node_modules/child_process/package.json","../../../node_modules/cluster/package.json","../../../node_modules/console/package.json","../../../node_modules/constants/package.json","../../../node_modules/crypto/package.json","../../../node_modules/dgram/package.json","../../../node_modules/diagnostics_channel/package.json","../../../node_modules/dns/package.json","../../../node_modules/dns/promises/package.json","../../../node_modules/domain/package.json","../../../node_modules/events/package.json","../../../node_modules/fs/package.json","../../../node_modules/fs/promises/package.json","../../../node_modules/http/package.json","../../../node_modules/http2/package.json","../../../node_modules/https/package.json","../../../node_modules/inspector/package.json","../../../node_modules/inspector/promises/package.json","../../../node_modules/module/package.json","../../../node_modules/net/package.json","../../../node_modules/os/package.json","../../../node_modules/path/package.json","../../../node_modules/path/posix/package.json","../../../node_modules/path/win32/package.json","../../../node_modules/perf_hooks/package.json","../../../node_modules/process/package.json","../../../node_modules/punycode/package.json","../../../node_modules/querystring/package.json","../../../node_modules/readline/package.json","../../../node_modules/readline/promises/package.json","../../../node_modules/repl/package.json","../../../node_modules/stream/consumers/package.json","../../../node_modules/stream/package.json","../../../node_modules/stream/promises/package.json","../../../node_modules/stream/web/package.json","../../../node_modules/string_decoder/package.json","../../../node_modules/timers/package.json","../../../node_modules/timers/promises/package.json","../../../node_modules/tls/package.json","../../../node_modules/trace_events/package.json","../../../node_modules/tslib/package.json","../../../node_modules/tty/package.json","../../../node_modules/url/package.json","../../../node_modules/util/package.json","../../../node_modules/util/types/package.json","../../../node_modules/v8/package.json","../../../node_modules/vm/package.json","../../../node_modules/wasi/package.json","../../../node_modules/worker_threads/package.json","../../../node_modules/zlib/package.json","../../client/node_modules/@mark1russell7/service/clock/package.json","../../client/node_modules/@types/http/package.json","../../client/node_modules/http/package.json","../node_modules/@procedures/shell/command/package.json","../node_modules/@types/express-serve-static-core/package.json","../node_modules/@types/serve-static/package.json","../node_modules/@types/tslib/package.json","../node_modules/tslib/package.json"],"fileNames":["lib.es5.d.ts","lib.es2015.d.ts","lib.es2016.d.ts","lib.es2017.d.ts","lib.es2018.d.ts","lib.es2019.d.ts","lib.es2020.d.ts","lib.es2021.d.ts","lib.es2022.d.ts","lib.es2023.d.ts","lib.es2024.d.ts","lib.es2025.d.ts","lib.esnext.d.ts","lib.es2015.core.d.ts","lib.es2015.collection.d.ts","lib.es2015.generator.d.ts","lib.es2015.iterable.d.ts","lib.es2015.promise.d.ts","lib.es2015.proxy.d.ts","lib.es2015.reflect.d.ts","lib.es2015.symbol.d.ts","lib.es2015.symbol.wellknown.d.ts","lib.es2016.array.include.d.ts","lib.es2016.intl.d.ts","lib.es2017.arraybuffer.d.ts","lib.es2017.date.d.ts","lib.es2017.object.d.ts","lib.es2017.sharedmemory.d.ts","lib.es2017.string.d.ts","lib.es2017.intl.d.ts","lib.es2017.typedarrays.d.ts","lib.es2018.asyncgenerator.d.ts","lib.es2018.asynciterable.d.ts","lib.es2018.intl.d.ts","lib.es2018.promise.d.ts","lib.es2018.regexp.d.ts","lib.es2019.array.d.ts","lib.es2019.object.d.ts","lib.es2019.string.d.ts","lib.es2019.symbol.d.ts","lib.es2019.intl.d.ts","lib.es2020.bigint.d.ts","lib.es2020.date.d.ts","lib.es2020.promise.d.ts","lib.es2020.sharedmemory.d.ts","lib.es2020.string.d.ts","lib.es2020.symbol.wellknown.d.ts","lib.es2020.intl.d.ts","lib.es2020.number.d.ts","lib.es2021.promise.d.ts","lib.es2021.string.d.ts","lib.es2021.weakref.d.ts","lib.es2021.intl.d.ts","lib.es2022.array.d.ts","lib.es2022.error.d.ts","lib.es2022.intl.d.ts","lib.es2022.object.d.ts","lib.es2022.string.d.ts","lib.es2022.regexp.d.ts","lib.es2023.array.d.ts","lib.es2023.collection.d.ts","lib.es2023.intl.d.ts","lib.es2024.arraybuffer.d.ts","lib.es2024.collection.d.ts","lib.es2024.object.d.ts","lib.es2024.promise.d.ts","lib.es2024.regexp.d.ts","lib.es2024.sharedmemory.d.ts","lib.es2024.string.d.ts","lib.es2025.collection.d.ts","lib.es2025.float16.d.ts","lib.es2025.intl.d.ts","lib.es2025.iterator.d.ts","lib.es2025.promise.d.ts","lib.es2025.regexp.d.ts","lib.esnext.array.d.ts","lib.esnext.collection.d.ts","lib.esnext.date.d.ts","lib.esnext.decorators.d.ts","lib.esnext.disposable.d.ts","lib.esnext.error.d.ts","lib.esnext.intl.d.ts","lib.esnext.sharedmemory.d.ts","lib.esnext.temporal.d.ts","lib.esnext.typedarrays.d.ts","lib.decorators.d.ts","lib.decorators.legacy.d.ts","../src/argv.ts","../../client/dist/procedures/schema.d.ts","../../client/dist/client/validation/types.d.ts","../../client/dist/procedures/collection/storage.d.ts","../../client/dist/events/types.d.ts","../../client/dist/procedures/ref.d.ts","../../client/dist/procedures/types.d.ts","../../client/dist/procedures/registry.d.ts","../../client/dist/client/deadline.d.ts","../../client/dist/procedures/capability.d.ts","../../client/dist/procedures/invoke.d.ts","../../client/dist/client/errors/types.d.ts","../../client/dist/client/errors/codes.d.ts","../../client/dist/client/errors/registry.d.ts","../../client/dist/client/errors/factory.d.ts","../../client/dist/client/errors/http-status.d.ts","../../client/dist/client/errors/http-errors.d.ts","../../client/dist/client/errors/index.d.ts","../../client/dist/client/types.d.ts","../../../node_modules/.pnpm/@mark1russell7+quantity@0.2.0_zod@4.6.5/node_modules/@mark1russell7/quantity/build/quantity-CRdP15Ks.d.ts","../../../node_modules/.pnpm/@mark1russell7+quantity@0.2.0_zod@4.6.5/node_modules/@mark1russell7/quantity/build/index.d.ts","../../client/dist/duration.d.ts","../../client/dist/client/middleware/contexts.d.ts","../../client/dist/client/context.d.ts","../../client/dist/client/consumption.d.ts","../../client/dist/client/call-types.d.ts","../../client/dist/client/client.d.ts","../../client/dist/adapters/http/shared/constants.d.ts","../../client/dist/adapters/http/shared/status-codes.d.ts","../../client/dist/adapters/http/shared/headers.d.ts","../../client/dist/adapters/http/shared/strategies.d.ts","../../client/dist/adapters/http/shared/errors.d.ts","../../client/dist/adapters/http/shared/index.d.ts","../../client/dist/adapters/http/client/types.d.ts","../../client/dist/adapters/http/client/transport.d.ts","../../client/dist/adapters/http/client/index.d.ts","../../client/dist/adapters/local/client/types.d.ts","../../client/dist/adapters/local/client/transport.d.ts","../../client/dist/adapters/local/client/index.d.ts","../../../node_modules/.pnpm/@mark1russell7+service@0.4.0_zod@4.6.5/node_modules/@mark1russell7/service/build/clock-D-38uH_z.d.ts","../../../node_modules/.pnpm/@mark1russell7+service@0.4.0_zod@4.6.5/node_modules/@mark1russell7/service/build/clock.d.ts","../../client/dist/clock.d.ts","../../client/dist/machines.d.ts","../../client/dist/server/types.d.ts","../../client/dist/adapters/websocket/client/types.d.ts","../../client/dist/adapters/websocket/client/transport.d.ts","../../client/dist/adapters/websocket/client/index.d.ts","../../client/dist/adapters/mock/client/types.d.ts","../../client/dist/adapters/mock/client/transport.d.ts","../../client/dist/adapters/mock/client/builder.d.ts","../../client/dist/adapters/mock/client/index.d.ts","../../client/dist/client/middleware/retry.d.ts","../../client/dist/client/middleware/items.d.ts","../../client/dist/client/middleware/cache.d.ts","../../client/dist/client/middleware/timeout.d.ts","../../client/dist/client/middleware/circuit-breaker.d.ts","../../client/dist/client/middleware/rate-limit.d.ts","../../client/dist/client/middleware/resilience.d.ts","../../client/dist/client/middleware/pagination.d.ts","../../client/dist/client/middleware/auth.d.ts","../../client/dist/client/middleware/tracing.d.ts","../../client/dist/client/validation/middleware.d.ts","../../client/dist/client/validation/index.d.ts","../../client/dist/client/typed.d.ts","../../client/dist/client/index.d.ts","../../client/dist/server/server.d.ts","../../client/dist/procedures/idempotency.d.ts","../../client/dist/server/procedure-server.d.ts","../../client/dist/server/request-auth.d.ts","../../client/dist/procedures/interceptors.d.ts","../../client/dist/server/host-procedures.d.ts","../../client/dist/server/method.d.ts","../../client/dist/procedures/effects.d.ts","../../client/dist/procedures/manifest.d.ts","../../client/dist/procedures/define.d.ts","../../client/dist/procedures/collection/schemas.d.ts","../../client/dist/procedures/collection/procedures.d.ts","../../client/dist/procedures/collection/index.d.ts","../../client/dist/procedures/discovery.d.ts","../../client/dist/procedures/module.d.ts","../../client/dist/procedures/core/schemas.d.ts","../../client/dist/procedures/core/logic.d.ts","../../client/dist/procedures/core/results.d.ts","../../client/dist/procedures/core/math.d.ts","../../client/dist/procedures/core/comparison.d.ts","../../client/dist/procedures/core/string.d.ts","../../client/dist/procedures/core/type.d.ts","../../client/dist/procedures/core/object.d.ts","../../client/dist/procedures/core/array.d.ts","../../client/dist/procedures/core/meta.d.ts","../../client/dist/procedures/core/index.d.ts","../../client/dist/procedures/runtime-programs.d.ts","../../client/dist/procedures/define-procedure.d.ts","../../client/dist/procedures/index.d.ts","../../client/dist/procedures/policy.d.ts","../../client/dist/timers.d.ts","../../client/dist/adapters/port/transport.d.ts","../../client/dist/tracing/traceparent.d.ts","../../client/dist/protocol.d.ts","../../client/dist/server/browser-guard.d.ts","../../client/dist/server/host-policy.d.ts","../../client/dist/client/route-resolver.d.ts","../../client/dist/client/batch-executor.d.ts","../../client/dist/events/bus.d.ts","../../client/dist/events/index.d.ts","../../client/dist/browser.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/disposable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/indexable.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/compatibility/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/globals.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/assert.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/assert/strict.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/async_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/buffer.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/child_process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/cluster.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/console.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/constants.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/crypto.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dgram.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dns.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/dns/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/domain.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/fs.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/fs/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/http.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/http2.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/https.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/inspector.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/module.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/net.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/os.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/path.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/process.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/punycode.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/querystring.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/readline.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/readline/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/repl.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/sea.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/sqlite.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/stream/web.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/string_decoder.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/test.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/timers.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/timers/promises.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/tls.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/trace_events.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/tty.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/url.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/util.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/v8.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/vm.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/wasi.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/worker_threads.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/zlib.d.ts","../../../node_modules/.pnpm/@types+node@22.20.5/node_modules/@types/node/index.d.ts","../../../node_modules/.pnpm/@types+send@1.2.1/node_modules/@types/send/index.d.ts","../../../node_modules/.pnpm/@types+qs@6.15.1/node_modules/@types/qs/index.d.ts","../../../node_modules/.pnpm/@types+range-parser@1.2.7/node_modules/@types/range-parser/index.d.ts","../../../node_modules/.pnpm/@types+express-serve-static-core@5.1.3/node_modules/@types/express-serve-static-core/index.d.ts","../../../node_modules/.pnpm/@types+http-errors@2.0.5/node_modules/@types/http-errors/index.d.ts","../../../node_modules/.pnpm/@types+serve-static@2.2.0/node_modules/@types/serve-static/index.d.ts","../../../node_modules/.pnpm/@types+connect@3.4.38/node_modules/@types/connect/index.d.ts","../../../node_modules/.pnpm/@types+body-parser@1.19.6/node_modules/@types/body-parser/index.d.ts","../../../node_modules/.pnpm/@types+express@5.0.6/node_modules/@types/express/index.d.ts","../../client/dist/adapters/http/server/types.d.ts","../../client/dist/adapters/http/server/strategies.d.ts","../../client/dist/adapters/http/server/transport.d.ts","../../client/dist/adapters/http/server/index.d.ts","../../../node_modules/.pnpm/@types+ws@8.18.2/node_modules/@types/ws/index.d.mts","../../client/dist/adapters/websocket/server/types.d.ts","../../client/dist/adapters/websocket/server/transport.d.ts","../../client/dist/adapters/websocket/server/index.d.ts","../../client/dist/server/index.d.ts","../../client/dist/index.d.ts","../../client-shell/dist/command/spawn.d.ts","../../client-shell/dist/command/run.d.ts","../../client-shell/dist/command/stream.d.ts","../../client-shell/dist/command/processes.d.ts","../../client-shell/dist/command/tree-kill.d.ts","../../client-shell/dist/command/output.d.ts","../../client-shell/dist/command/index.d.ts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/standard-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/registries.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/to-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/util.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/versions.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/schemas.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/checks.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/errors.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/core.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/parse.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/memoizer.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/regexes.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ar.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/az.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/be.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/bg.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/bn.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ca.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ckb.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/cs.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/da.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/de.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/el.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/en.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/eo.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/es.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fa.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fi.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fr.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/fr-CA.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/gu.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/he.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hi.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hr.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hu.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/hy.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/id.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/is.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/it.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ja.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ka.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/kh.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/km.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/kn.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ko.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/lt.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/mk.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ms.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ne.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/nl.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/nn.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/no.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ota.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ps.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pl.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pt.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/pt-BR.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ro.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ru.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sk.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sl.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/sv.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ta.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tg.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/th.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tk.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/tr.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ua.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/uk.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/ur.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/uz.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/vi.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/zh-CN.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/zh-TW.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/yo.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/locales/index.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/doc.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/compile.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/api.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema-processors.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/json-schema-generator.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/core/index.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/errors.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/parse.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/schemas.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/checks.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/compat.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/from-json-schema.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/deep-partial.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/in-out.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/iso.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/coerce.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/v4/classic/external.d.cts","../../../node_modules/.pnpm/zod@4.6.5/node_modules/zod/index.d.cts","../src/procedures.ts","../src/module.ts","../src/index.ts","../src/register.ts"],"fileInfos":[{"version":"16934abaab7026ac114da441aabea1a0","affectsGlobalScope":true,"impliedNodeFormat":1},"d4306fb2e47f74835e8674ffac07d76f","e437c5c1302869326c3bb93da85bbbcf","e4324975a566567b21d350615f1fc6ac","333b1b9a2a9ac3b8497dba5c63b5ba50","6cffacd662b6eb5fa7a36aa2ea366bfa","b4c34f9c23304dbef2d23698637ed638","e5cb86a5fc491796ecd1d2dd348d208f","feb6c6fb19cdb246a5d8acb36a6901c7","9443a7f109277ffaa79d893ed2549995","793cee405385076e27c24f409659dccd","09f69c6610266eaee1ac9e3e30df2c71","62bad718844246b8e17547f37bad6085",{"version":"926204c28cd3d073865348473ae28d2e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f25e42c801b2cb3cf2b39792006a9beb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6344b55f26a4e81d9608777dbfb877dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3c0ed28e53d3695b363e256ec1c023fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4c2761daba7f17141c25baa0821ac5da","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b87656acabd63e69379ff6ffcfe52fc7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"597469522da047a5af5222cc6989f405","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1708ea4d34dc37fadadc63ca01127e80","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"55d97a8c6fbf34a30450a7b1e5f7a298","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0ee05eb59426d33e374226d8dcfa708b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e347c14030993906efcfbb88915b6a05","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b0231263857c9b6a03641acdc9280ceb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3b15c4a83b598cacb4067676e6f0abed","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b417d97b7934cef63b1889abec0bbfbf","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"09a6cf4032ebba60ce22a501e663f881","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2b056277dd138e8f5650fc04e20eaa8d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"e22cc07e3f3cc242ba52fa3f8ea1fc58","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2c45da767a1bfbb220848df1bc4029e4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b44c3e0fbaf2130cdcf6ac38b120ffa1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b612fb5cf8e5d964b92063a75207632a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"02705151a5e1551b9162a9ed8ab763f7","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"41025e398be9215d32e4337335da8f0b","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"52684c2b1f353a5538e4f275182a54cd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6dedb6a4f90d1df3a6fbe5693e44886c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ca3f36fe3562c07e0f0d71c2bebd3f6d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"409974d6129befbb8226ddd1c6558568","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4d9cfde2a1ae1b4925f1f9bc10848e5d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7e1daecc66dd564144e3bb1a0266b5fd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a8e1d9bb35fd0637f2f9fd2b2a54f2ec","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4f168501772a6543182765bfd5f2fbfe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a19c80aad1b2162103496f5ba293a732","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b69afa63cd5d059851c78adb2856ee09","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ae2fc5d954e9b0f5feee3d481b953c27","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1cfd3091a071d8b6feec15277643bafe","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1da2c1f258970fd3cc91184f69e91a9d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"a0d87491913d843139e0c993650a3235","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4ef72aa378127e7b7abba915b0110b1e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ec74c6a7d4463f0254db3a74cf75646","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"84c2bdfa470d075526cce6322d81b0b6","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0b3844c2b8c73e4e1ab91431411cad11","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"4fc71cf4a15b8d99675a31df77f26e07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d1b49564ddaeca3df5b6dbae925d2242","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6a25be566d60ccfc2d6e8b7bfdeefa83","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8a20e27646985dfd58c57ca6566553dd","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9969f02ad3cdcbf4f709405cda44167f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9c9be4792a7a4f42c15ae7360bf28779","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"8cf777fe00349b71ee9c4b6f3fe7fd19","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"74f96bc192530c9723f572bfff3d3078","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1df91c56b25955c56387426f378173c5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"38856f70edcd2115c355d96ec77cc09e","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"de8700156c1275465bcd473c28b359aa","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d47cfdb6ede40518357bb5a4cd7cd9fb","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6e5773860cd9e5b15e683113f642ab47","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"30ff5fe1682f7fcd629880476ca3c2e0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"bf23d7d1b40b9015b694ddc2f011752f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"2cc585d42e2c548f9f24a30a1989fd33","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"713906ce9d332d2242b7f05ed9304be3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"0219894bfe5042c7e1aa2d22e4a91ed0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"6009ffff7e43c93318804d2d28e37fe3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"03be89b227587594fbb50509fc1c2e45","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"b30df52dc24740c0bad7c55c3511df7d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ab8d3c9b5ed5c2ab8f383607eef439f0","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d950ec671d0a8e07f3c1a31e94abed86","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1abef2ace5eccb02d60dd73cd5a5ee4c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f5f0a3044029d1cc081b5887eb4deb07","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d57c697f1446940ec4bfe669c962e2c4","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"be41035d7b941482a1e1ae6a5c5dcca5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"10f7d9da7564f27f8ddf4a162b6da6d3","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"1d0520af549e0c3581f15173cc713ca1","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d65083f97fd741cff028472563eddb79","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"da7f24f00653ebac660ac1c0821ed33d","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7cb5ae9e65516ea2235f0721f6aac43c","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"f64453cbf9671f28158677fa5c43967a","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"33f317af5428801f944a478d2c1e38e5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"62b476dabea493a8bef8c0ae18f144e6","signature":"1b812f136d9b0816c26f4622e8787286","impliedNodeFormat":99},{"version":"5bac83d1dccda3197da2606db1ac3c89","impliedNodeFormat":99},{"version":"006bbe75d9dc7ccf680d5b3118033f1f","impliedNodeFormat":99},{"version":"67820a5fcc47f78aa82c9b0ff630a44d","impliedNodeFormat":99},{"version":"337b6cdf77b57ce90d09ddac000c74fc","impliedNodeFormat":99},{"version":"c9e5a8b8853281fd2a7490f1150a4593","impliedNodeFormat":99},{"version":"977cfa0e70eae9a396843eac6e67efa6","impliedNodeFormat":99},{"version":"8d9042d3b304792479c25ade194f1bad","impliedNodeFormat":99},{"version":"1f55ed21bf520915c4c9aeda10d31f45","impliedNodeFormat":99},{"version":"48cc158308806fc03a0c33bac87c9389","impliedNodeFormat":99},{"version":"237950bb8577250f6fc512d4a8c9ec87","impliedNodeFormat":99},{"version":"0868d21131f63c6318ecade7eb7210be","impliedNodeFormat":99},{"version":"8dcbe656772cea64e3bb7ff0b5d59f37","impliedNodeFormat":99},{"version":"a5a0d22c49f369c16e12c1e5813ab6d3","impliedNodeFormat":99},{"version":"c51a9a4153a693d98890ac03ee84c855","impliedNodeFormat":99},{"version":"9ac07717997d43affd1498e85689a1a3","impliedNodeFormat":99},{"version":"a7e8132761007fe6701dbf4326024341","impliedNodeFormat":99},{"version":"f1a5fa6676aa7ac22654446cad9d3d95","impliedNodeFormat":99},{"version":"4c11e2a8740860fa46e4ec7c077b0aec","impliedNodeFormat":99},{"version":"0c62ab8a6c6c17a6170cb9cb43cd0fd4","impliedNodeFormat":99},{"version":"ef04761e17067dfda48057ed3deb2d70","impliedNodeFormat":99},{"version":"44ebf9c9d31295ba6c8e8269158d9a08","impliedNodeFormat":99},{"version":"23e2467c2b42be0e0e30c434125a9bf7","impliedNodeFormat":99},{"version":"4a1dc81d4a48c84e39c5573bc6a36181","impliedNodeFormat":99},{"version":"313de785aa7f53811273f58137396514","impliedNodeFormat":99},{"version":"1b9b690b1f336ef9423e124a808fe9bc","impliedNodeFormat":99},{"version":"1e294f2d41148543bdc673d2bff201c1","impliedNodeFormat":99},{"version":"7cf32e882dd594ac59d9e80978aa42ea","impliedNodeFormat":99},{"version":"8b5081e477e7845ac094d6b6cb5e8ec0","impliedNodeFormat":99},{"version":"973904e4766d26c9c60b05f71e718c7b","impliedNodeFormat":99},{"version":"41e03d403b9e0d632f3af81214cd8345","impliedNodeFormat":99},{"version":"523c21a5413305f17526b5b6cf535179","impliedNodeFormat":99},{"version":"eef5d85571d408190ce31d195bf03ed2","impliedNodeFormat":99},{"version":"115ccee921a92e3cade320d8c78eafc6","impliedNodeFormat":99},{"version":"e97d44ee39595a8d8e1e6cdaaf7b4fed","impliedNodeFormat":99},{"version":"265783c002544231a2c57c1b345e1cea","impliedNodeFormat":99},{"version":"3492503daa6bca0bbbbb5a1dffcbc28c","impliedNodeFormat":99},{"version":"2271435d60ba7a766a8c224d3d3ff69f","impliedNodeFormat":99},{"version":"00bc3f83d4845807f8271ab3c745ff67","impliedNodeFormat":99},{"version":"cb253c36ff68485e2c8706a6bbc2ec0e","impliedNodeFormat":99},{"version":"2daa311686c19678d59d0d3d017b8585","impliedNodeFormat":99},{"version":"7f11723418740531ec8f18f99675044e","impliedNodeFormat":99},{"version":"60d3806d52580ec961a83b0585a7f328","impliedNodeFormat":99},{"version":"c84033a035e3223e4c8e6597de17e34f","impliedNodeFormat":99},{"version":"df356f2b4a8cd3a121c404fdb408e10d","impliedNodeFormat":99},{"version":"7dcbe7011088254a72fb413dadca58d1","impliedNodeFormat":99},{"version":"742ea0384304d954f45ce2b6697c7f91","impliedNodeFormat":99},{"version":"f911f4d32a20b760f2082e6fbde5514f","impliedNodeFormat":99},{"version":"a4acfea690d58c4b47dfe275e2743f7f","impliedNodeFormat":99},{"version":"001090557d1d3df1f2482abcf561af1e","impliedNodeFormat":99},{"version":"bc833b857dd9a2ad2a2cc5b60a309d4e","impliedNodeFormat":99},{"version":"d0dd0a02f8c8f11b782f5144ca08db94","impliedNodeFormat":99},{"version":"21433b1e768e15bfe77c63a9b48129ec","impliedNodeFormat":99},{"version":"d79590e60df4adfdd1c6e6c31e7ddf2d","impliedNodeFormat":99},{"version":"7df7c12156e08542ad15262c05194dec","impliedNodeFormat":99},{"version":"443968f2e765f35e0e6919efbe2ecaf5","impliedNodeFormat":99},{"version":"951da67f7f3dbb230f93e18a93119875","impliedNodeFormat":99},{"version":"bd4831330348d981b0f1410853eed767","impliedNodeFormat":99},{"version":"8c4b62b4a00c51da5f8b7caffe0f03ee","impliedNodeFormat":99},{"version":"9d8af42705105f6cfb47f9977e7e284b","impliedNodeFormat":99},{"version":"cafd4971c8d191559ccf3da376bb0fd6","impliedNodeFormat":99},{"version":"a58c141c24aa04a112fc8161e137592d","impliedNodeFormat":99},{"version":"d7ebd2c11fe146421387e883bb5c2ccd","impliedNodeFormat":99},{"version":"c261f3352382743318751612666c0f97","impliedNodeFormat":99},{"version":"c459f8dc2e984ab671662db372f49932","impliedNodeFormat":99},{"version":"16a73e4f9e9624e100119801052dc414","impliedNodeFormat":99},{"version":"dbff35b7a2b96efb2e37796539f645d5","impliedNodeFormat":99},{"version":"437e3c97f8de63e451c7e02fdbe47b4d","impliedNodeFormat":99},{"version":"43f5748650e99b4a1400717ceeb6da8c","impliedNodeFormat":99},{"version":"73102c1ff81b38ac4f96268acbc2823b","impliedNodeFormat":99},{"version":"754cd9e61e4f9feafe2404c533c8a936","impliedNodeFormat":99},{"version":"a7be7da3e0ff8a23e075c90fda9b6a33","impliedNodeFormat":99},{"version":"5a6e5aeecea8b44bac91fe48e7628d87","impliedNodeFormat":99},{"version":"ed8bf8b7b6254862a4836633e9c3f0f1","impliedNodeFormat":99},{"version":"549cdf7be9336865a24bbec9308f85c0","impliedNodeFormat":99},{"version":"484dc5040b1f3d2fd749a7531d0c6405","impliedNodeFormat":99},{"version":"0ba7ff53392a2a3b944cacbcf0b78b07","impliedNodeFormat":99},{"version":"17ca75b48a8fc1862386fea6fa7bdbff","impliedNodeFormat":99},{"version":"9b4982c4091dd5f18b8c1c81cf137c07","impliedNodeFormat":99},{"version":"5758228826deea77ba36666c076f1c0a","impliedNodeFormat":99},{"version":"4645c760c24932f240081a5688f9e5f4","impliedNodeFormat":99},{"version":"80d6a2ecb0aa22e5ee13b8ab2762cf32","impliedNodeFormat":99},{"version":"8f129880dcb2313f3badfed346ec2581","impliedNodeFormat":99},{"version":"035542f7200f4d22e59ecfa10f94739e","impliedNodeFormat":99},{"version":"2db291ced724b83ae656c59391a00271","impliedNodeFormat":99},{"version":"a9ac721f09236b64e6854577cfc36eaf","impliedNodeFormat":99},{"version":"5c207e5b00d64cd0c543e274e6036525","impliedNodeFormat":99},{"version":"b483fb83736a2f60e7194b82d08fb9c6","impliedNodeFormat":99},{"version":"efd280bdeb72be78b6ea34915ef99611","impliedNodeFormat":99},{"version":"dcdd6487a6e5216fafcf5f65da2cc51c","impliedNodeFormat":99},{"version":"925ec76390339184338710dad0d25956","impliedNodeFormat":99},{"version":"b6be181d2552152e604924fd778377b5","impliedNodeFormat":99},{"version":"470e247d47debe2ea3c38259a6501c4c","impliedNodeFormat":99},{"version":"cdde658c7e1d8ea776570f1a5bfdaea1","impliedNodeFormat":99},{"version":"d8897812d9461364c1cd0a7ab2ae3359","impliedNodeFormat":99},{"version":"727eddfa962c0d5525390790aab9887d","impliedNodeFormat":99},{"version":"42d636c6f1c779ae3aa3e110c1b5a353","impliedNodeFormat":99},{"version":"976728a6668b70e6f1f0957c4fc9ca80","impliedNodeFormat":99},{"version":"7bdf4473435fd37a93cd98ec19ca9996","impliedNodeFormat":99},{"version":"f2a6f84008e97af5558200cf59b6efb2","impliedNodeFormat":99},{"version":"f2b7e4cef7d066005ed1c264156e24c9","impliedNodeFormat":99},{"version":"ef8f19666296edc7210bd61a0bf2a704","impliedNodeFormat":99},{"version":"aa5917b17f32412bc9a80d56b59fd652","impliedNodeFormat":99},{"version":"0932ed4363b078dbdd8c1162783ab9cb","impliedNodeFormat":99},{"version":"9419011376155b09d207e3430d3fee58","impliedNodeFormat":99},{"version":"7ee2ab115efa72fc789fcfd2e14ff97d","impliedNodeFormat":99},{"version":"5fd84cb7055cb580f7698d4a32062548","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"913b52a39743d1c11984e4e124b1f3a8","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3e57a4cd3267159f3772bebd73534451","affectsGlobalScope":true,"impliedNodeFormat":1},"fe51d7a9bcdbcce1e65bbcf39b212298",{"version":"849a1873c4e917b0887368c1be897faa","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"69ee0752d1e70c56ca160360425752a9","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"3ddc6139fafd9dfb16bb112a7b74f610","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9af0a7e3ef1c42cd066b9f8d365cc1ba","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9eca652586205dc5b07f9ba57b1c8500","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"ec5f75939754ce94652189ec7d0d3058","affectsGlobalScope":true,"impliedNodeFormat":1},"628b774b54637325e286752c79c12432","bb1f9e3091b88e9d0e93b7198c736af3","514fd35e5eb35bb2e5cbb908af0a0aa2","ed57ae88565308729f2327f26d684976","dcd932d6b0038f2e250e30dc10125b22","9508c917bd7e458745e222a82dd24ef0","fabf86f455f96b90538cc26320ab2765","14550b4cd9f433e0addd8b6d67614d23","cf0ac6aebc25cb780674653aaeee688e","35fef7bac8048f583e4ce6eaa0c2a4c0","6752dc653fc7a333027249fd851fdb62","b9ad7e689b46dfba362c1bf174e69018","8b0a2930dfabdf27c69c6bb1eeabcdc8","4513b1ed15523d247040689f37fa9db2","5c0c499eed773a750903d9497beafacd","2377da227d1bac82ff7b3f2081ddf8d3","beef985b474fefeb80d27fb2c8778371","c79fc9d9f09ae598a374ae7c0b5284a4","f2caa3cebb1e6be855519004830a6be0","8ebc9f2a77c900e710801214c5cb994c","ec617a0e0577dd6a3210c3b067ecb325","1db5d06e485bd82d6d5f6e36925a8714","24b864518967840216c779b5e5f00975","8719cd8047700bfb6046798390053823","f2840afb502c94db92dab0fb8d27812f","a7e7d08b372210c203745d3eac61a411","531183cc80535e0e94226d720e5eb038","f627eb958ca52c85e42f04dce4661f86","9a43fc665bce9012a3d5fe1b574ff4dc","13f4b4da6546a34719fd6bde15fb63dd","a589216508844bfc00e62fc2d97fda45","865aea1c3209e31b076cb6fe780e769e","12e64aaf26af0f5c8f1b263dd66e3feb","928971ebbcdf5b093ef37669b33bddf6","b744265d8ad12b7d4d5c5dc35d18d44e","eff32168b8348b822afeed9cbf61afa7","9aafd1f29b4d8861c1c6c34bf83c0721",{"version":"a127795c4dad633990c87aa0b86831e5","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"d0fd03004a6221614a1eaf764f324f74","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"45df94b3c51b898624bacc2bcd6d9eb2","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"7d352f71d1b1bcc12c79dd0e4597537c","affectsGlobalScope":true,"impliedNodeFormat":1},"9a624e1940639eca005bbfa0b0795e0c","bc36d91e82ffa66a49621888701e71dc","f8c976cb12f3420b8cc8d03d579ada06",{"version":"ba7e459f9d165c391370248c1b6d27e6","affectsGlobalScope":true,"impliedNodeFormat":1},"1bd6f05fb97456c25967ff016b829638","10ea0c4d80d7a0333c1e857199853b74",{"version":"9fc8636e70e507ea8d98a7aabd265ee5","affectsGlobalScope":true,"impliedNodeFormat":1},"b2b472cd0bf0f8d5f022e00ca1c401f4",{"version":"2d78fd1079375d411033f64faae0c89b","affectsGlobalScope":true,"impliedNodeFormat":1},"2c854dda7450575791a388d8f0f29e31","61dd307aef9adea6fd307b5364c843da","4eb05de87a87ea4d8a41f4b2229bada4","5c5c7649711b5d982cf39fe9b6744080","958d9865bfe33c94973e3d58ac66b1d0",{"version":"e69aeb78ba4fd8c4493f80e9e81737e5","affectsGlobalScope":true,"impliedNodeFormat":1},"f2c1804a9a9d8f64eb2a67a797f9baef","b857d33151fcd39b213bb7c17cf12969","2e1cff79cd7dfb7d8281322931a687bd","3c217295039c32f3fecd8f7bab2e43e3","9fb3b9387eadc1aa053821d6c96b5769","1690a4da2f50085917cb933f6f2556cb","9d6686cc730682ed548fac9462ac4346",{"version":"f6be7fda5b8729494c54d9983698c290","affectsGlobalScope":true,"impliedNodeFormat":1},"0bb08d83737c91e9ca2c2c3b99ae99a2","a4e9f4bc0d06a3823fff0f55f31eac93","43b4e399ab399cf8ecd47e481abddeeb",{"version":"0769bf84d24c283d5b7d02cba94e7234","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9ffa943f975def71e2b112b28f946caa","affectsGlobalScope":true,"impliedNodeFormat":1},"d1dfd59bf8b7e71f40ee1d3a2f1b5fcf","9292aa21e6668349e0642faa07be7750","8ccb81bc00ea59aa908d31dbe50bb31a","0f80958d77cd6301b43c1d7904e3e4bc","0548d84bf13d6b5d3ef34d9755610be1","65398feea84a451329cd99b26a547514","b7e2bcd9d00432e1792823ed5da41128","739428f35658f9391641b3dfc9433fb2","c8206d568b54e5ea06131963eecd576a","15878f4f50c2e562c0768eb735c2aed5",{"version":"4e6c56c4b055178cfc9edc254d744a5b","affectsGlobalScope":true,"impliedNodeFormat":1},"329e5617fbab8b2de9bffcc41d07bb5d","6b82bee8c1c2c6d1a7f4ae0c8a47a006",{"version":"ea001113f32054398156e39095350f0a","affectsGlobalScope":true,"impliedNodeFormat":1},"7345aabef559e464447357f201cc05f8","0807835722b35673885024d2b10c282a","d63b35c1a5097295f0659f5583c8fb83","3509aa3de97926c2922f378a248ddb48",{"version":"78ce1294fea4c9fccd0600374816a75f","affectsGlobalScope":true,"impliedNodeFormat":1},{"version":"9edcc62fa17b31ebfd8b865c8304a4a3","affectsGlobalScope":true,"impliedNodeFormat":1},"b0cbfb9126a2a747bd567e9b79c65b58","4cfe493c958076cdc2b0609a8f889091","3bb54ead687024118ffeb8d7337370a2",{"version":"90c1b6a898bba7f42c0020815dc93eba","affectsGlobalScope":true,"impliedNodeFormat":1},"aa2008c843fac96764def81cfdf70c58","1852b3a174acea86c49700b15f7d1539","6d6fcab6a7663b8314c5123ae0389e0a","a918e723cfac239d6a8a521275f9e03b","cd5c183c2bad150213a0cccaafe937e2",{"version":"13fc504fe4ab28ad42bce734f31e72e5","affectsGlobalScope":true,"impliedNodeFormat":1},"f8059a9ddf1aeefd103fce9c853541b9","f100181a3e9ff7f5b23eed47dd66a1de","fbb1086d78fad2e81eefa859d53b6ffd","fa614d3a843db2f4f4f804155cf537a6","406d0e50f03efd9f1bf194e636900c24",{"version":"34794242e25b053da9dc388a66c668b3","impliedNodeFormat":99},{"version":"0a5bcd147b373c42da20477b927d3c0a","impliedNodeFormat":99},{"version":"31e79548810041f1b9c211f080ec3afa","impliedNodeFormat":99},{"version":"65db998bccd72d596c2d1f11202a7667","impliedNodeFormat":99},{"version":"cdfacbac9a70df2daf00f3750400b268","impliedNodeFormat":99},{"version":"718c6db90f999bfc22fe6ea96f86965e","impliedNodeFormat":99},{"version":"b720f9a90ecbd067b820c7d0f60b6e66","impliedNodeFormat":99},{"version":"81b30454a6f9767e82f6da79e80e5dd1","impliedNodeFormat":99},{"version":"84e43d492d31521bad00121ce6edfa39","impliedNodeFormat":99},{"version":"f6f103a8172b974a843e4f08f7a1ea90","impliedNodeFormat":99},{"version":"b5cd369ae1018b7cbc92940d795ef926","impliedNodeFormat":99},{"version":"a505cf94822af5f27d27d68760690af8","impliedNodeFormat":99},{"version":"509b373f5c0a4b10d03fb9c205107928","impliedNodeFormat":99},{"version":"1d4877ef5bb6459ef57121c31f9e369b","impliedNodeFormat":99},{"version":"b616d2896d19dc008e45c172ff7082d0","impliedNodeFormat":99},{"version":"9728d931df9394d883b52d6cc39cd009","impliedNodeFormat":99},{"version":"5829aa7a9ad94915a214467f9b4f157c","impliedNodeFormat":99},"46adab8b8b66b08b5e7c0e8fab6a1ca6","a9fe29dcdd4288cacf574947747a4572","daada721cfdc43aa8e7c2e2d14d760de","1875116298cba1325500d3f1eac8bbf9","53a6603f36cd656a1fb80328ec67c2da","5d253feb3ce379964ce328df2e292f33","2ea6f8b0175c6790a666f87545015791","4ef66462d69c6b7504ef14011caac866","2f9112269cc3c45d1fb3d62f3ccb7097","ffb6ed8d47df8ca98044478684c0af40","cbc1f06fbfe43eb20a752fa368855819","2de5baa83f63307a4dd74d7aa2dd5254","3eeffcd208fa163e66f8769b350f0445","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","ee9981834b9f6f6958887811182849e8","5175ffa851d494a5195ffdebf8ed7285","89cf60624d459ce663be118a626d5fdc","1d1bc42979730b680201df62a3c1ac22","cb5ffae433c93a1431c0000260c7d0c3","9bb07208f876b5e95d56a3d2e9b9a427","0b02ecd3af1ccccee2f5c605903848f8","7454a3a8b97184f2d9432fa08bea4550","5ec4d3086f21642d2aeae2133b49ceeb","8318e3c39365fe3a3cfb375f5c29ab04","9e29bd130ef2dafefc736f6ab792a301","cde3fe3c0bfe6e037b07e7251fb1c3d3","c5a965bdb35a433f7fb044dcb56d485c","96b06af537c71de0a80e9ed880958afd","3008879c54fc6e5b56c202a9d7b09211","1339976f87e671ebf4b5ff1f36594612","0a95994056ab784c17e3331cd56bff1c","a9356de7c324c6f49c15587032b1f65f","f763a0656991aee48818a73fe218b09c","1904e67dd51f8bf1517f05edbfada0ea",{"version":"001f9934951798bab001a069093fbed9","signature":"6bda496adcd42bb1a5c41e4aa80179cf","impliedNodeFormat":99},{"version":"d7aa5333dcd5e6d021e021f36e1f9b03","signature":"04ea9b6abb6828158a28cf6582aff04e","impliedNodeFormat":99},{"version":"fcdc5c02fe41a070051e350704d10ab7","signature":"a8704ef79dcaa17ea8222cd2042b7281","impliedNodeFormat":99},{"version":"bf9b8be186033ed69af89cbc09fe5e67","signature":"07382ced14475d724b7e1d6dc367348e","impliedNodeFormat":99}],"fileIdsList":[[107,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[127,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,305],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,302,304,306],[199,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[194,195,196,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,240,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[197,198,199,200,201,202,203,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,296,297],[199,240,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,240,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,303],[199,212,216,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,212,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,207,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,209,212,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,207,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298],[199,204,205,208,211,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,212,219,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,204,210,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,212,233,234,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,208,212,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298],[199,233,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298],[199,206,207,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298],[199,206,207,208,209,210,211,212,213,214,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,234,235,236,237,238,239,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,212,227,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,212,219,220,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,210,212,220,221,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,211,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,204,207,212,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,212,216,220,221,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,216,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,210,212,215,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,204,209,212,219,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,207,212,233,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,418],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,407],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,407,410],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,329,401,405,407,408,409,410,411,412,413,414,415,416,417],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,325,327,410],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,407,408],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,326,332,407,409],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,327,329,331,332,333,334],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,329,331,333,334],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,331,334],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,329,331,333],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,326,329,331,332,334],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,325,327,328,329,330,331,332,333,334,335,336,337,401,402,403,404,405,406],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,325,327,328,331],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,327,328,331],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,331],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,325,326,328,329,330,332,333,334],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,325,326,327,331,407],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,331,332,333,334],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,333],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,318,319,320,321,322,323],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,318],[120,121,122,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,120,121,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[109,120,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,308,309,310],[106,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,307],[131,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,308],[106,187,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,307],[115,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[115,116,117,118,119,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,115,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[124,125,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,124,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,95,98,106,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,135,136,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[135,136,137,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,135,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,109,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,131,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[132,133,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,132,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[109,129,130,131,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,313,314],[106,131,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,313],[109,187,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,312],[96,97,98,109,113,129,130,131,152,153,154,155,156,157,158,159,160,161,181,182,183,184,185,186,188,189,190,192,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,113,189,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,109,112,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[90,92,93,94,95,106,111,113,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,110,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[99,100,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[99,100,103,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[99,100,101,102,103,104,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[99,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[96,105,106,109,111,114,123,126,134,138,139,140,141,142,143,144,145,146,147,148,150,151,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,106,109,110,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,109,110,129,130,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[90,109,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,129,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,109,110,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,109,110,139,141,143,144,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[106,109,110,129,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,95,112,113,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[111,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[92,94,98,105,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[90,149,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[90,106,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[89,106,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[128,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[108,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[92,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[92,191,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[187,193,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,316],[94,96,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[91,163,164,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[90,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,168,169,170,171,172,173,174,175,176,177,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[89,90,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[89,94,161,179,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[89,94,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,106,109,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[89,93,94,95,97,154,160,161,162,165,166,167,178,180,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,98,109,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[92,93,94,95,97,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,95,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[89,90,91,92,93,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,95,98,109,131,155,187,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[94,155,157,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[131,153,155,159,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,311,315],[94,106,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[91,94,95,98,109,131,153,154,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[131,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297],[88,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,420,421],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,317,420],[88,199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,317,324,419],[199,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,421]],"options":{"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"isolatedDeclarations":true,"importHelpers":true,"module":199,"newLine":2,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noPropertyAccessFromIndexSignature":true,"noUncheckedIndexedAccess":true,"noEmitOnError":true,"noUnusedLocals":true,"noUnusedParameters":true,"noImplicitOverride":true,"noUncheckedSideEffectImports":true,"outDir":"./","removeComments":false,"rootDir":"../src","skipLibCheck":true,"strict":true,"stripInternal":true,"skipDefaultLibCheck":false,"sourceMap":true,"target":99,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true,"allowSyntheticDefaultImports":true,"esModuleInterop":true},"referencedMap":[[108,1],[107,2],[127,2],[128,3],[306,4],[305,5],[302,6],[307,7],[303,2],[245,8],[246,9],[247,10],[199,11],[248,12],[249,13],[250,14],[194,2],[197,15],[195,2],[196,2],[251,16],[252,17],[253,18],[254,19],[255,20],[256,21],[257,22],[258,23],[259,24],[260,25],[261,26],[200,2],[198,2],[262,27],[263,28],[264,29],[298,30],[265,31],[266,32],[267,33],[268,34],[269,35],[270,36],[271,37],[272,38],[273,39],[274,40],[275,41],[276,42],[277,43],[278,44],[279,45],[280,46],[282,47],[281,48],[283,49],[284,50],[285,51],[286,52],[287,53],[288,54],[289,55],[290,56],[291,57],[292,58],[293,59],[294,60],[295,61],[201,2],[202,2],[203,2],[241,62],[242,2],[243,2],[244,2],[296,63],[297,64],[300,2],[301,2],[299,5],[304,65],[312,5],[86,2],[87,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[24,2],[25,2],[4,2],[26,2],[30,2],[27,2],[28,2],[29,2],[31,2],[32,2],[33,2],[5,2],[34,2],[35,2],[36,2],[37,2],[6,2],[41,2],[38,2],[39,2],[40,2],[42,2],[7,2],[43,2],[48,2],[49,2],[44,2],[45,2],[46,2],[47,2],[8,2],[53,2],[50,2],[51,2],[52,2],[54,2],[9,2],[55,2],[56,2],[57,2],[59,2],[58,2],[60,2],[61,2],[10,2],[62,2],[63,2],[64,2],[11,2],[65,2],[66,2],[67,2],[68,2],[69,2],[70,2],[12,2],[71,2],[72,2],[73,2],[74,2],[75,2],[1,2],[76,2],[77,2],[13,2],[78,2],[79,2],[80,2],[81,2],[82,2],[83,2],[84,2],[85,2],[219,66],[229,67],[218,66],[239,68],[210,69],[209,2],[238,5],[232,70],[237,69],[212,71],[226,72],[211,73],[235,74],[207,75],[206,5],[236,76],[208,77],[213,67],[214,2],[217,67],[204,2],[240,78],[230,79],[221,80],[222,81],[224,82],[220,83],[223,84],[233,5],[215,85],[216,86],[225,87],[205,2],[228,79],[227,67],[231,2],[234,88],[419,89],[411,90],[417,91],[412,91],[414,91],[408,90],[418,92],[413,93],[415,91],[416,91],[409,94],[410,95],[404,96],[332,97],[403,98],[334,99],[402,2],[333,100],[407,101],[406,102],[405,103],[325,2],[336,104],[335,97],[337,2],[327,98],[331,105],[326,2],[328,106],[329,107],[330,2],[338,108],[339,108],[340,108],[341,108],[342,108],[343,108],[344,108],[345,108],[346,108],[347,108],[348,108],[349,108],[350,108],[351,108],[352,108],[353,108],[355,108],[354,108],[356,108],[357,108],[358,108],[359,108],[360,108],[361,108],[362,108],[401,109],[363,108],[364,108],[365,108],[366,108],[367,108],[368,108],[369,108],[370,108],[371,108],[372,108],[373,108],[374,108],[375,108],[376,108],[377,108],[378,108],[380,108],[379,108],[382,108],[381,108],[383,108],[384,108],[385,108],[386,108],[387,108],[388,108],[389,108],[390,108],[391,108],[392,108],[393,108],[394,108],[395,108],[396,108],[397,108],[400,108],[398,108],[399,108],[324,110],[323,2],[321,111],[319,111],[318,2],[320,111],[322,2],[123,112],[122,113],[121,114],[311,115],[309,116],[310,117],[308,118],[115,2],[119,119],[117,120],[120,121],[116,119],[118,122],[126,123],[125,124],[124,125],[137,126],[138,127],[136,128],[135,129],[184,130],[134,131],[133,132],[132,133],[315,134],[314,135],[313,136],[193,137],[190,138],[113,139],[114,140],[112,141],[111,142],[96,120],[100,2],[102,143],[104,144],[103,2],[105,145],[101,146],[99,2],[152,147],[147,142],[141,148],[143,149],[110,150],[140,151],[146,142],[144,152],[145,153],[139,154],[142,152],[148,142],[189,155],[151,156],[106,157],[150,158],[149,159],[90,160],[129,161],[109,162],[191,163],[192,164],[92,2],[317,165],[130,2],[97,166],[165,167],[164,141],[163,168],[91,2],[176,141],[172,141],[178,169],[169,2],[171,141],[177,141],[175,141],[170,2],[168,170],[173,141],[174,141],[180,171],[162,172],[166,141],[160,141],[154,173],[181,174],[157,175],[98,176],[161,172],[167,177],[182,141],[93,141],[95,141],[179,2],[89,168],[94,178],[186,2],[187,2],[188,179],[158,180],[316,181],[159,182],[155,183],[156,184],[153,184],[131,120],[183,2],[185,2],[88,2],[422,185],[421,186],[420,187],[423,188]],"latestChangedDtsFile":"./register.d.ts"}
package/dist/argv.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The argv of a CLI command from a command path, named arguments and positional arguments. The
3
+ * procedures start the program with argv, never through a shell.
4
+ */
5
+ export type ArgValue = string | number | boolean | readonly string[];
6
+ /** A flag name: lowercase letters, digits and hyphens. */
7
+ export declare const FLAG_NAME: RegExp;
8
+ /**
9
+ * This function gives the argv: the path, then each named argument, then `--` and the positional
10
+ * arguments. `true` gives `--key`, `false` gives nothing, a list gives `--key=value` for each
11
+ * value, and another value gives `--key=value`.
12
+ */
13
+ export declare function buildArgv(input: {
14
+ readonly path: readonly string[];
15
+ readonly args?: Readonly<Record<string, ArgValue>> | undefined;
16
+ readonly positional?: readonly string[] | undefined;
17
+ readonly flags?: readonly string[] | undefined;
18
+ }): string[];
19
+ /** This function reads JSON output: one document, or one document on each line (NDJSON). */
20
+ export declare function parseJsonOutput(stdout: string): unknown;
21
+ //# sourceMappingURL=argv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argv.d.ts","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC;AAErE,0DAA0D;AAC1D,eAAO,MAAM,SAAS,EAAE,MAA4B,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC/B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAChD,GAAG,MAAM,EAAE,CAWX;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAavD"}
package/dist/argv.js ADDED
@@ -0,0 +1,49 @@
1
+ /**
2
+ * The argv of a CLI command from a command path, named arguments and positional arguments. The
3
+ * procedures start the program with argv, never through a shell.
4
+ */
5
+ /** A flag name: lowercase letters, digits and hyphens. */
6
+ export const FLAG_NAME = /^[a-z][a-z0-9-]*$/;
7
+ /**
8
+ * This function gives the argv: the path, then each named argument, then `--` and the positional
9
+ * arguments. `true` gives `--key`, `false` gives nothing, a list gives `--key=value` for each
10
+ * value, and another value gives `--key=value`.
11
+ */
12
+ export function buildArgv(input) {
13
+ const argv = [...input.path, ...(input.flags ?? [])];
14
+ for (const [key, value] of Object.entries(input.args ?? {})) {
15
+ if (!FLAG_NAME.test(key))
16
+ throw new Error(`The argument name "${key}" is not a flag name (lowercase letters, digits, hyphens)`);
17
+ if (value === false)
18
+ continue;
19
+ if (value === true)
20
+ argv.push(`--${key}`);
21
+ else if (Array.isArray(value))
22
+ for (const item of value)
23
+ argv.push(`--${key}=${item}`);
24
+ else
25
+ argv.push(`--${key}=${String(value)}`);
26
+ }
27
+ if (input.positional && input.positional.length > 0)
28
+ argv.push("--", ...input.positional);
29
+ return argv;
30
+ }
31
+ /** This function reads JSON output: one document, or one document on each line (NDJSON). */
32
+ export function parseJsonOutput(stdout) {
33
+ const text = stdout.trim();
34
+ if (text.length === 0)
35
+ return undefined;
36
+ try {
37
+ return JSON.parse(text);
38
+ }
39
+ catch {
40
+ const lines = text.split(/\r?\n/).filter((line) => line.trim().length > 0);
41
+ try {
42
+ return lines.map((line) => JSON.parse(line));
43
+ }
44
+ catch {
45
+ return undefined;
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=argv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argv.js","sourceRoot":"","sources":["../src/argv.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,0DAA0D;AAC1D,MAAM,CAAC,MAAM,SAAS,GAAW,mBAAmB,CAAC;AAErD;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAKzB;IACC,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,2DAA2D,CAAC,CAAC;QAChI,IAAI,KAAK,KAAK,KAAK;YAAE,SAAS;QAC9B,IAAI,KAAK,KAAK,IAAI;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;aACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;;YAClF,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./module.js";
2
+ export * from "./procedures.js";
3
+ export * from "./argv.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ // The root registers nothing: import "<package>/register", or give the module to createRegistry()
2
+ export * from "./module.js";
3
+ export * from "./procedures.js";
4
+ export * from "./argv.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The procedures of @procedures/restic as data. Importing this file registers nothing.
3
+ */
4
+ import { type ProcedureModule, type ProcedureRegistry } from "@procedures/client";
5
+ export declare const resticModule: ProcedureModule;
6
+ export default resticModule;
7
+ /**
8
+ * This function registers the procedures of @procedures/restic in a registry. The default is the
9
+ * global registry.
10
+ */
11
+ export declare function registerResticProcedures(registry?: ProcedureRegistry): void;
12
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAqD,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGrI,eAAO,MAAM,YAAY,EAAE,eAAsE,CAAC;eAEnF,YAAY;AAE3B;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,GAAE,iBAAsC,GAAG,IAAI,CAE/F"}
package/dist/module.js ADDED
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The procedures of @procedures/restic as data. Importing this file registers nothing.
3
+ */
4
+ import { defineModule, registerModules, PROCEDURE_REGISTRY } from "@procedures/client";
5
+ import { resticProcedures } from "./procedures.js";
6
+ export const resticModule = defineModule("@procedures/restic", resticProcedures);
7
+ export default resticModule;
8
+ /**
9
+ * This function registers the procedures of @procedures/restic in a registry. The default is the
10
+ * global registry.
11
+ */
12
+ export function registerResticProcedures(registry = PROCEDURE_REGISTRY) {
13
+ registerModules(registry, [resticModule]);
14
+ }
15
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAgD,MAAM,oBAAoB,CAAC;AACrI,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAoB,YAAY,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;AAElG,eAAe,YAAY,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAQ,GAAsB,kBAAkB;IACvF,eAAe,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The procedure of `@procedures/restic`: `restic.run`, one procedure for each restic command.
3
+ *
4
+ * restic reads the repository and its keys from the environment (`RESTIC_REPOSITORY`,
5
+ * `RESTIC_PASSWORD`, `B2_ACCOUNT_ID`, `AWS_ACCESS_KEY_ID` and the others), so no secret is an
6
+ * input. `--password-command` is refused: it starts a program of the caller.
7
+ */
8
+ import { type AnyProcedure } from "@procedures/client";
9
+ import { type ArgValue } from "./argv.js";
10
+ /** A restic command: the subcommand path, its arguments and the repository. */
11
+ export interface ResticCommand {
12
+ readonly path: readonly string[];
13
+ readonly positional?: readonly string[] | undefined;
14
+ readonly args?: Readonly<Record<string, ArgValue>> | undefined;
15
+ readonly repository?: string | undefined;
16
+ readonly json?: boolean | undefined;
17
+ }
18
+ /** This function gives the argv of a restic command. It refuses the flags that start a program. */
19
+ export declare function resticArgv(input: ResticCommand): string[];
20
+ export declare const resticRunProcedure: AnyProcedure;
21
+ export declare const resticProcedures: AnyProcedure[];
22
+ //# sourceMappingURL=procedures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedures.d.ts","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAA+B,KAAK,YAAY,EAAyB,MAAM,oBAAoB,CAAC;AAG3G,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAuCtE,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrC;AAED,mGAAmG;AACnG,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAMzD;AAED,eAAO,MAAM,kBAAkB,EAAE,YA+BP,CAAC;AAE3B,eAAO,MAAM,gBAAgB,EAAE,YAAY,EAAyB,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * The procedure of `@procedures/restic`: `restic.run`, one procedure for each restic command.
3
+ *
4
+ * restic reads the repository and its keys from the environment (`RESTIC_REPOSITORY`,
5
+ * `RESTIC_PASSWORD`, `B2_ACCOUNT_ID`, `AWS_ACCESS_KEY_ID` and the others), so no secret is an
6
+ * input. `--password-command` is refused: it starts a program of the caller.
7
+ */
8
+ import { createProcedure, zodAdapter } from "@procedures/client";
9
+ import { runCommand } from "@procedures/shell/command";
10
+ import { z } from "zod";
11
+ import { buildArgv, parseJsonOutput } from "./argv.js";
12
+ /** The flags that `restic.run` refuses. */
13
+ const REFUSED_FLAGS = new Set(["password-command"]);
14
+ const RunInputSchema = z.object({
15
+ path: z
16
+ .array(z.string().regex(/^[a-z][a-z-]*$/))
17
+ .min(1)
18
+ .describe('The restic command, for example ["snapshots"], ["backup"] or ["forget"]'),
19
+ positional: z.array(z.string()).optional().describe("The positional arguments, for example the paths of a backup"),
20
+ args: z
21
+ .record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.array(z.string())]))
22
+ .optional()
23
+ .describe('The flags: { tag: ["daily"], "keep-daily": 7, "dry-run": true }'),
24
+ repository: z.string().min(1).optional().describe("The repository (--repo). Default: RESTIC_REPOSITORY of the environment."),
25
+ json: z.boolean().default(true).describe("Ask for JSON output (--json) and read it (default: true)"),
26
+ executable: z.string().min(1).optional().describe("The restic program (default: RESTIC_EXE of the environment, then restic)"),
27
+ cwd: z.string().optional().describe("The working folder"),
28
+ timeout: z.number().int().positive().optional().describe("The time limit, in milliseconds"),
29
+ });
30
+ const RunOutputSchema = z.object({
31
+ exitCode: z.number(),
32
+ success: z.boolean(),
33
+ stdout: z.string(),
34
+ stderr: z.string(),
35
+ json: z.unknown().optional(),
36
+ });
37
+ /** This function gives the argv of a restic command. It refuses the flags that start a program. */
38
+ export function resticArgv(input) {
39
+ for (const key of Object.keys(input.args ?? {})) {
40
+ if (REFUSED_FLAGS.has(key))
41
+ throw new Error(`restic.run refuses --${key}: it starts a program`);
42
+ }
43
+ const flags = [...(input.repository !== undefined ? [`--repo=${input.repository}`] : []), ...(input.json ? ["--json"] : [])];
44
+ return buildArgv({ path: input.path, args: input.args, positional: input.positional, flags });
45
+ }
46
+ export const resticRunProcedure = createProcedure()
47
+ .path(["restic", "run"])
48
+ .input(zodAdapter(RunInputSchema))
49
+ .output(zodAdapter(RunOutputSchema))
50
+ .meta({
51
+ description: "Run a restic command (backup, snapshots, restore, forget, check)",
52
+ args: ["path"],
53
+ shorts: { cwd: "C", timeout: "t" },
54
+ output: "json",
55
+ // A backup reads files, a restore writes them, and forget and prune delete snapshots. A
56
+ // repository of type sftp or rclone starts that program.
57
+ effects: { reads: ["fs", "network", "process"], writes: ["fs", "network", "process"], destructive: true },
58
+ })
59
+ .handler(async (input, ctx) => {
60
+ const executable = input.executable ?? process.env["RESTIC_EXE"] ?? "restic";
61
+ const result = await runCommand(executable, {
62
+ args: resticArgv(input),
63
+ cwd: input.cwd,
64
+ timeout: input.timeout,
65
+ signal: ctx?.signal,
66
+ });
67
+ if (result.error)
68
+ throw new Error(`restic did not start: ${result.error}`);
69
+ const json = input.json ? parseJsonOutput(result.stdout) : undefined;
70
+ return {
71
+ exitCode: result.exitCode,
72
+ success: result.exitCode === 0,
73
+ stdout: result.stdout,
74
+ stderr: result.stderr,
75
+ ...(json !== undefined ? { json } : {}),
76
+ };
77
+ })
78
+ .build();
79
+ export const resticProcedures = [resticRunProcedure];
80
+ //# sourceMappingURL=procedures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedures.js","sourceRoot":"","sources":["../src/procedures.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAA4C,MAAM,oBAAoB,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAiB,MAAM,WAAW,CAAC;AAEtE,2CAA2C;AAC3C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAEpD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACzC,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,yEAAyE,CAAC;IACtF,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IAClH,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;SACvF,QAAQ,EAAE;SACV,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;IAC5H,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACpG,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;IAC7H,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;CAC5F,CAAC,CAAC;AAWH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAWH,mGAAmG;AACnG,MAAM,UAAU,UAAU,CAAC,KAAoB;IAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAChD,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,uBAAuB,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7H,OAAO,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAiB,eAAe,EAAE;KAC9D,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;KACvB,KAAK,CAAC,UAAU,CAAW,cAAc,CAAC,CAAC;KAC3C,MAAM,CAAC,UAAU,CAAY,eAAe,CAAC,CAAC;KAC9C,IAAI,CAAC;IACJ,WAAW,EAAE,kEAAkE;IAC/E,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;IAClC,MAAM,EAAE,MAAM;IACd,wFAAwF;IACxF,yDAAyD;IACzD,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;CAC1G,CAAC;KACD,OAAO,CAAC,KAAK,EAAE,KAAe,EAAE,GAAsB,EAAsB,EAAE;IAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC;IAC7E,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE;QAC1C,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC;QACvB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,GAAG,EAAE,MAAM;KACpB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,QAAQ,KAAK,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC;AACJ,CAAC,CAAC;KACD,KAAK,EAAkB,CAAC;AAE3B,MAAM,CAAC,MAAM,gBAAgB,GAAmB,CAAC,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Importing this file registers the procedures of @procedures/restic in the global registry:
3
+ * `import "@procedures/restic/register"`. The package root registers nothing.
4
+ */
5
+ export * from "./module.js";
6
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,cAAc,aAAa,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Importing this file registers the procedures of @procedures/restic in the global registry:
3
+ * `import "@procedures/restic/register"`. The package root registers nothing.
4
+ */
5
+ import { registerResticProcedures } from "./module.js";
6
+ export * from "./module.js";
7
+ registerResticProcedures();
8
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAEvD,cAAc,aAAa,CAAC;AAE5B,wBAAwB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,79 @@
1
1
  {
2
+ "$schema": "https://json.schemastore.org/package",
2
3
  "name": "@procedures/restic",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
4
+ "version": "0.3.0",
5
+ "description": "The restic backup program as one procedure: backup, snapshots, restore and forget, with JSON output and no secret as input.",
6
+ "keywords": [
7
+ "restic",
8
+ "backup",
9
+ "cli",
10
+ "procedures"
11
+ ],
12
+ "homepage": "https://mark1russell7.github.io/client/",
13
+ "bugs": {
14
+ "url": "https://github.com/mark1russell7/client/issues"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/mark1russell7/client.git",
19
+ "directory": "packages/restic"
20
+ },
21
+ "license": "MIT",
22
+ "author": "Mark Russell (https://github.com/mark1russell7)",
23
+ "type": "module",
24
+ "main": "./dist/index.js",
25
+ "types": "./dist/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "import": "./dist/index.js"
30
+ },
31
+ "./module": {
32
+ "types": "./dist/module.d.ts",
33
+ "import": "./dist/module.js"
34
+ },
35
+ "./register": {
36
+ "types": "./dist/register.d.ts",
37
+ "import": "./dist/register.js"
38
+ }
39
+ },
40
+ "files": [
41
+ "dist",
42
+ "src",
43
+ "!src/**/*.test.ts",
44
+ "!src/**/*.test.tsx",
45
+ "!src/**/__tests__",
46
+ "CHANGELOG.md"
47
+ ],
48
+ "sideEffects": [
49
+ "./dist/register.js"
50
+ ],
51
+ "engines": {
52
+ "node": ">=22"
53
+ },
54
+ "publishConfig": {
55
+ "access": "public",
56
+ "provenance": true
57
+ },
58
+ "dependencies": {
59
+ "@procedures/client": "0.3.0",
60
+ "zod": "^4.6.5",
61
+ "@procedures/shell": "0.3.0"
62
+ },
63
+ "devDependencies": {
64
+ "typescript": "^7.0.2",
65
+ "@types/node": "^22.0.0",
66
+ "@mark1russell7/cue": "^1.0.0",
67
+ "vitest": "^5.0.3"
68
+ },
69
+ "client": {
70
+ "procedures": "./dist/register.js"
71
+ },
72
+ "scripts": {
73
+ "build": "tsc -b",
74
+ "typecheck": "tsc --noEmit",
75
+ "clean": "rm -rf dist .tsbuildinfo",
76
+ "test": "vitest run",
77
+ "test:watch": "vitest"
78
+ }
6
79
  }
package/src/argv.ts ADDED
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The argv of a CLI command from a command path, named arguments and positional arguments. The
3
+ * procedures start the program with argv, never through a shell.
4
+ */
5
+
6
+ export type ArgValue = string | number | boolean | readonly string[];
7
+
8
+ /** A flag name: lowercase letters, digits and hyphens. */
9
+ export const FLAG_NAME: RegExp = /^[a-z][a-z0-9-]*$/;
10
+
11
+ /**
12
+ * This function gives the argv: the path, then each named argument, then `--` and the positional
13
+ * arguments. `true` gives `--key`, `false` gives nothing, a list gives `--key=value` for each
14
+ * value, and another value gives `--key=value`.
15
+ */
16
+ export function buildArgv(input: {
17
+ readonly path: readonly string[];
18
+ readonly args?: Readonly<Record<string, ArgValue>> | undefined;
19
+ readonly positional?: readonly string[] | undefined;
20
+ readonly flags?: readonly string[] | undefined;
21
+ }): string[] {
22
+ const argv = [...input.path, ...(input.flags ?? [])];
23
+ for (const [key, value] of Object.entries(input.args ?? {})) {
24
+ if (!FLAG_NAME.test(key)) throw new Error(`The argument name "${key}" is not a flag name (lowercase letters, digits, hyphens)`);
25
+ if (value === false) continue;
26
+ if (value === true) argv.push(`--${key}`);
27
+ else if (Array.isArray(value)) for (const item of value) argv.push(`--${key}=${item}`);
28
+ else argv.push(`--${key}=${String(value)}`);
29
+ }
30
+ if (input.positional && input.positional.length > 0) argv.push("--", ...input.positional);
31
+ return argv;
32
+ }
33
+
34
+ /** This function reads JSON output: one document, or one document on each line (NDJSON). */
35
+ export function parseJsonOutput(stdout: string): unknown {
36
+ const text = stdout.trim();
37
+ if (text.length === 0) return undefined;
38
+ try {
39
+ return JSON.parse(text);
40
+ } catch {
41
+ const lines = text.split(/\r?\n/).filter((line) => line.trim().length > 0);
42
+ try {
43
+ return lines.map((line) => JSON.parse(line) as unknown);
44
+ } catch {
45
+ return undefined;
46
+ }
47
+ }
48
+ }
package/src/index.ts ADDED
@@ -0,0 +1,4 @@
1
+ // The root registers nothing: import "<package>/register", or give the module to createRegistry()
2
+ export * from "./module.js";
3
+ export * from "./procedures.js";
4
+ export * from "./argv.js";
package/src/module.ts ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The procedures of @procedures/restic as data. Importing this file registers nothing.
3
+ */
4
+
5
+ import { defineModule, registerModules, PROCEDURE_REGISTRY, type ProcedureModule, type ProcedureRegistry } from "@procedures/client";
6
+ import { resticProcedures } from "./procedures.js";
7
+
8
+ export const resticModule: ProcedureModule = defineModule("@procedures/restic", resticProcedures);
9
+
10
+ export default resticModule;
11
+
12
+ /**
13
+ * This function registers the procedures of @procedures/restic in a registry. The default is the
14
+ * global registry.
15
+ */
16
+ export function registerResticProcedures(registry: ProcedureRegistry = PROCEDURE_REGISTRY): void {
17
+ registerModules(registry, [resticModule]);
18
+ }
@@ -0,0 +1,102 @@
1
+ /**
2
+ * The procedure of `@procedures/restic`: `restic.run`, one procedure for each restic command.
3
+ *
4
+ * restic reads the repository and its keys from the environment (`RESTIC_REPOSITORY`,
5
+ * `RESTIC_PASSWORD`, `B2_ACCOUNT_ID`, `AWS_ACCESS_KEY_ID` and the others), so no secret is an
6
+ * input. `--password-command` is refused: it starts a program of the caller.
7
+ */
8
+
9
+ import { createProcedure, zodAdapter, type AnyProcedure, type ProcedureContext } from "@procedures/client";
10
+ import { runCommand } from "@procedures/shell/command";
11
+ import { z } from "zod";
12
+ import { buildArgv, parseJsonOutput, type ArgValue } from "./argv.js";
13
+
14
+ /** The flags that `restic.run` refuses. */
15
+ const REFUSED_FLAGS = new Set(["password-command"]);
16
+
17
+ const RunInputSchema = z.object({
18
+ path: z
19
+ .array(z.string().regex(/^[a-z][a-z-]*$/))
20
+ .min(1)
21
+ .describe('The restic command, for example ["snapshots"], ["backup"] or ["forget"]'),
22
+ positional: z.array(z.string()).optional().describe("The positional arguments, for example the paths of a backup"),
23
+ args: z
24
+ .record(z.string(), z.union([z.string(), z.number(), z.boolean(), z.array(z.string())]))
25
+ .optional()
26
+ .describe('The flags: { tag: ["daily"], "keep-daily": 7, "dry-run": true }'),
27
+ repository: z.string().min(1).optional().describe("The repository (--repo). Default: RESTIC_REPOSITORY of the environment."),
28
+ json: z.boolean().default(true).describe("Ask for JSON output (--json) and read it (default: true)"),
29
+ executable: z.string().min(1).optional().describe("The restic program (default: RESTIC_EXE of the environment, then restic)"),
30
+ cwd: z.string().optional().describe("The working folder"),
31
+ timeout: z.number().int().positive().optional().describe("The time limit, in milliseconds"),
32
+ });
33
+ type RunInput = z.infer<typeof RunInputSchema>;
34
+
35
+ interface RunOutput {
36
+ exitCode: number;
37
+ success: boolean;
38
+ stdout: string;
39
+ stderr: string;
40
+ /** The JSON output, when `json` is true and restic gave JSON */
41
+ json?: unknown;
42
+ }
43
+ const RunOutputSchema = z.object({
44
+ exitCode: z.number(),
45
+ success: z.boolean(),
46
+ stdout: z.string(),
47
+ stderr: z.string(),
48
+ json: z.unknown().optional(),
49
+ });
50
+
51
+ /** A restic command: the subcommand path, its arguments and the repository. */
52
+ export interface ResticCommand {
53
+ readonly path: readonly string[];
54
+ readonly positional?: readonly string[] | undefined;
55
+ readonly args?: Readonly<Record<string, ArgValue>> | undefined;
56
+ readonly repository?: string | undefined;
57
+ readonly json?: boolean | undefined;
58
+ }
59
+
60
+ /** This function gives the argv of a restic command. It refuses the flags that start a program. */
61
+ export function resticArgv(input: ResticCommand): string[] {
62
+ for (const key of Object.keys(input.args ?? {})) {
63
+ if (REFUSED_FLAGS.has(key)) throw new Error(`restic.run refuses --${key}: it starts a program`);
64
+ }
65
+ const flags = [...(input.repository !== undefined ? [`--repo=${input.repository}`] : []), ...(input.json ? ["--json"] : [])];
66
+ return buildArgv({ path: input.path, args: input.args, positional: input.positional, flags });
67
+ }
68
+
69
+ export const resticRunProcedure: AnyProcedure = createProcedure()
70
+ .path(["restic", "run"])
71
+ .input(zodAdapter<RunInput>(RunInputSchema))
72
+ .output(zodAdapter<RunOutput>(RunOutputSchema))
73
+ .meta({
74
+ description: "Run a restic command (backup, snapshots, restore, forget, check)",
75
+ args: ["path"],
76
+ shorts: { cwd: "C", timeout: "t" },
77
+ output: "json",
78
+ // A backup reads files, a restore writes them, and forget and prune delete snapshots. A
79
+ // repository of type sftp or rclone starts that program.
80
+ effects: { reads: ["fs", "network", "process"], writes: ["fs", "network", "process"], destructive: true },
81
+ })
82
+ .handler(async (input: RunInput, ctx?: ProcedureContext): Promise<RunOutput> => {
83
+ const executable = input.executable ?? process.env["RESTIC_EXE"] ?? "restic";
84
+ const result = await runCommand(executable, {
85
+ args: resticArgv(input),
86
+ cwd: input.cwd,
87
+ timeout: input.timeout,
88
+ signal: ctx?.signal,
89
+ });
90
+ if (result.error) throw new Error(`restic did not start: ${result.error}`);
91
+ const json = input.json ? parseJsonOutput(result.stdout) : undefined;
92
+ return {
93
+ exitCode: result.exitCode,
94
+ success: result.exitCode === 0,
95
+ stdout: result.stdout,
96
+ stderr: result.stderr,
97
+ ...(json !== undefined ? { json } : {}),
98
+ };
99
+ })
100
+ .build() as AnyProcedure;
101
+
102
+ export const resticProcedures: AnyProcedure[] = [resticRunProcedure];
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Importing this file registers the procedures of @procedures/restic in the global registry:
3
+ * `import "@procedures/restic/register"`. The package root registers nothing.
4
+ */
5
+
6
+ import { registerResticProcedures } from "./module.js";
7
+
8
+ export * from "./module.js";
9
+
10
+ registerResticProcedures();