@camstack/types 0.1.30 → 0.1.32

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.
Files changed (98) hide show
  1. package/dist/addon/build-addon-route-provider.d.ts +55 -0
  2. package/dist/addon/build-addon-route-provider.d.ts.map +1 -0
  3. package/dist/capabilities/addon-routes.cap.d.ts +64 -0
  4. package/dist/capabilities/addon-routes.cap.d.ts.map +1 -1
  5. package/dist/capabilities/admin-ui.cap.d.ts +6 -2
  6. package/dist/capabilities/admin-ui.cap.d.ts.map +1 -1
  7. package/dist/capabilities/advanced-notifier.cap.d.ts +202 -29
  8. package/dist/capabilities/advanced-notifier.cap.d.ts.map +1 -1
  9. package/dist/capabilities/audio-codec.cap.d.ts +2 -2
  10. package/dist/capabilities/auth-provider.cap.d.ts +4 -4
  11. package/dist/capabilities/auth-provider.cap.d.ts.map +1 -1
  12. package/dist/capabilities/authentication.cap.d.ts +4 -0
  13. package/dist/capabilities/authentication.cap.d.ts.map +1 -1
  14. package/dist/capabilities/capability-definition.d.ts +22 -0
  15. package/dist/capabilities/capability-definition.d.ts.map +1 -1
  16. package/dist/capabilities/device-export.cap.d.ts +77 -0
  17. package/dist/capabilities/device-export.cap.d.ts.map +1 -0
  18. package/dist/capabilities/embedding-encoder.cap.d.ts +14 -7
  19. package/dist/capabilities/embedding-encoder.cap.d.ts.map +1 -1
  20. package/dist/capabilities/index.d.ts +24 -5
  21. package/dist/capabilities/index.d.ts.map +1 -1
  22. package/dist/capabilities/intercom.cap.d.ts +34 -0
  23. package/dist/capabilities/intercom.cap.d.ts.map +1 -1
  24. package/dist/capabilities/mesh-network.cap.d.ts +32 -16
  25. package/dist/capabilities/mesh-network.cap.d.ts.map +1 -1
  26. package/dist/capabilities/mqtt-broker.cap.d.ts +153 -0
  27. package/dist/capabilities/mqtt-broker.cap.d.ts.map +1 -0
  28. package/dist/capabilities/network-access.cap.d.ts +41 -1
  29. package/dist/capabilities/network-access.cap.d.ts.map +1 -1
  30. package/dist/capabilities/platform-probe.cap.d.ts +234 -15
  31. package/dist/capabilities/platform-probe.cap.d.ts.map +1 -1
  32. package/dist/capabilities/settings-store.cap.d.ts +8 -2
  33. package/dist/capabilities/settings-store.cap.d.ts.map +1 -1
  34. package/dist/capabilities/smtp-provider.cap.d.ts +63 -0
  35. package/dist/capabilities/smtp-provider.cap.d.ts.map +1 -0
  36. package/dist/capabilities/sso-bridge.cap.d.ts +61 -0
  37. package/dist/capabilities/sso-bridge.cap.d.ts.map +1 -0
  38. package/dist/capabilities/stream-broker.cap.d.ts +90 -85
  39. package/dist/capabilities/stream-broker.cap.d.ts.map +1 -1
  40. package/dist/capabilities/user-management.cap.d.ts +513 -184
  41. package/dist/capabilities/user-management.cap.d.ts.map +1 -1
  42. package/dist/capabilities/user-passkeys.cap.d.ts +92 -0
  43. package/dist/capabilities/user-passkeys.cap.d.ts.map +1 -0
  44. package/dist/capabilities/webrtc-session.cap.d.ts +34 -0
  45. package/dist/capabilities/webrtc-session.cap.d.ts.map +1 -1
  46. package/dist/generated/addon-api.d.ts +11940 -9272
  47. package/dist/generated/addon-api.d.ts.map +1 -1
  48. package/dist/generated/cap-status-types.d.ts +5 -1
  49. package/dist/generated/cap-status-types.d.ts.map +1 -1
  50. package/dist/generated/capability-router-map.d.ts +19 -4
  51. package/dist/generated/capability-router-map.d.ts.map +1 -1
  52. package/dist/generated/device-proxy.d.ts +2 -0
  53. package/dist/generated/device-proxy.d.ts.map +1 -1
  54. package/dist/generated/method-access-map.d.ts +6 -1
  55. package/dist/generated/method-access-map.d.ts.map +1 -1
  56. package/dist/generated/provider-kind-map.d.ts +22 -0
  57. package/dist/generated/provider-kind-map.d.ts.map +1 -0
  58. package/dist/generated/scope-presets.d.ts +17 -0
  59. package/dist/generated/scope-presets.d.ts.map +1 -0
  60. package/dist/generated/system-proxy.d.ts +8 -4
  61. package/dist/generated/system-proxy.d.ts.map +1 -1
  62. package/dist/{index-DVKPWMwv.mjs → index-BBVUwOlZ.mjs} +1040 -500
  63. package/dist/index-BBVUwOlZ.mjs.map +1 -0
  64. package/dist/{index-s8uJNgNs.js → index-BUBhoPUu.js} +741 -201
  65. package/dist/index-BUBhoPUu.js.map +1 -0
  66. package/dist/index.d.ts +9 -3
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +852 -500
  69. package/dist/index.js.map +1 -1
  70. package/dist/index.mjs +1109 -757
  71. package/dist/index.mjs.map +1 -1
  72. package/dist/interfaces/addon-routes.d.ts +8 -2
  73. package/dist/interfaces/addon-routes.d.ts.map +1 -1
  74. package/dist/interfaces/addon.d.ts +14 -3
  75. package/dist/interfaces/addon.d.ts.map +1 -1
  76. package/dist/interfaces/advanced-notifier.d.ts +8 -7
  77. package/dist/interfaces/advanced-notifier.d.ts.map +1 -1
  78. package/dist/interfaces/api-responses.d.ts +2 -3
  79. package/dist/interfaces/api-responses.d.ts.map +1 -1
  80. package/dist/interfaces/auth.d.ts +14 -11
  81. package/dist/interfaces/auth.d.ts.map +1 -1
  82. package/dist/interfaces/capability.d.ts +6 -6
  83. package/dist/interfaces/capability.d.ts.map +1 -1
  84. package/dist/interfaces/embedding-encoder.d.ts +16 -7
  85. package/dist/interfaces/embedding-encoder.d.ts.map +1 -1
  86. package/dist/interfaces/rtp-egress.d.ts +45 -0
  87. package/dist/interfaces/rtp-egress.d.ts.map +1 -0
  88. package/dist/interfaces/storage.d.ts +15 -2
  89. package/dist/interfaces/storage.d.ts.map +1 -1
  90. package/dist/node.js +1 -1
  91. package/dist/node.mjs +1 -1
  92. package/dist/schemas/auth-records.d.ts +105 -50
  93. package/dist/schemas/auth-records.d.ts.map +1 -1
  94. package/package.json +1 -1
  95. package/dist/index-DVKPWMwv.mjs.map +0 -1
  96. package/dist/index-s8uJNgNs.js.map +0 -1
  97. package/dist/interfaces/auth-provider.d.ts +0 -39
  98. package/dist/interfaces/auth-provider.d.ts.map +0 -1
@@ -1,22 +1,12 @@
1
1
  import { z } from 'zod';
2
2
  import { type InferProvider } from './capability-definition.js';
3
3
  import type { IStreamBroker } from '../interfaces/stream-broker.js';
4
- /**
5
- * Per-broker RTSP restream entry. The broker exposes the public RTSP
6
- * restream URL for every active profile slot — consumers read the URL
7
- * here instead of constructing it from broker internals.
8
- */
9
4
  declare const RtspRestreamEntrySchema: z.ZodObject<{
10
5
  brokerId: z.ZodString;
11
6
  url: z.ZodString;
12
7
  mutedUrl: z.ZodString;
13
8
  enabled: z.ZodBoolean;
14
9
  }, z.core.$strip>;
15
- /**
16
- * Individual-client shapes for the `listClients` roster. One row per
17
- * consumer of the chosen broker slot (profile) — RTSP sessions,
18
- * decoded-frame subscribers, audio chunks.
19
- */
20
10
  export declare const BrokerRtspClientSchema: z.ZodObject<{
21
11
  sessionId: z.ZodString;
22
12
  remoteAddr: z.ZodString;
@@ -67,13 +57,6 @@ export type BrokerRtspClient = z.infer<typeof BrokerRtspClientSchema>;
67
57
  export type BrokerDecodedClient = z.infer<typeof BrokerDecodedClientSchema>;
68
58
  export type BrokerAudioClient = z.infer<typeof BrokerAudioClientSchema>;
69
59
  export type BrokerClients = z.infer<typeof BrokerClientsSchema>;
70
- /**
71
- * Reason rendered by the broker's placeholder image while no live RTP
72
- * is flowing. Each value maps 1:1 to a pre-encoded H.264 keyframe in
73
- * `addon-stream-broker/.../placeholder-frames.ts`. Keep aligned with
74
- * `PlaceholderKind` over there — the union here is the public surface
75
- * (cap input + provider type) and is the single source of truth.
76
- */
77
60
  export declare const PlaceholderReasonSchema: z.ZodEnum<{
78
61
  disabled: "disabled";
79
62
  reconnecting: "reconnecting";
@@ -82,42 +65,61 @@ export declare const PlaceholderReasonSchema: z.ZodEnum<{
82
65
  waking: "waking";
83
66
  }>;
84
67
  export type PlaceholderReason = z.infer<typeof PlaceholderReasonSchema>;
85
- /**
86
- * Stream broker — system-wide singleton cap.
87
- *
88
- * Owns two registries per device:
89
- * - `cameraStreams`: the pool of physical streams published by device
90
- * providers (and potentially third-party addons, e.g. an RTMP
91
- * discovery addon). Ephemeral: each provider re-publishes in its
92
- * own `onInitialize`.
93
- * - `profileMap`: persistent operator-intent mapping
94
- * `{high?, mid?, low?} -> camStreamId`. Persisted in the broker's
95
- * own storage, not in `device.config`.
96
- *
97
- * Up to 3 brokers per device keyed `${deviceId}/${profile}`. Each
98
- * broker ingests from the URL of the cam stream currently assigned via
99
- * `profileMap[profile]`. Changing the assignment tears down the broker
100
- * and rebuilds it against the new source — stream id seen by consumers
101
- * never changes.
102
- *
103
- * Per-device reads (what's published, what's assigned) live on the
104
- * device-scoped `camera-streams` cap, surfaced via `fetchDevice()`. The
105
- * methods below are either mutations or system-wide dumps.
106
- */
68
+ declare const VideoCodecTargetSchema: z.ZodEnum<{
69
+ auto: "auto";
70
+ H264: "H264";
71
+ H265: "H265";
72
+ }>;
73
+ export type VideoCodecTarget = z.infer<typeof VideoCodecTargetSchema>;
74
+ declare const AudioCodecTargetSchema: z.ZodEnum<{
75
+ none: "none";
76
+ AAC: "AAC";
77
+ Opus: "Opus";
78
+ PCMU: "PCMU";
79
+ }>;
80
+ export type AudioCodecTarget = z.infer<typeof AudioCodecTargetSchema>;
81
+ export declare const GetStreamWithCodecInputSchema: z.ZodObject<{
82
+ deviceId: z.ZodNumber;
83
+ videoCodec: z.ZodEnum<{
84
+ auto: "auto";
85
+ H264: "H264";
86
+ H265: "H265";
87
+ }>;
88
+ audioCodec: z.ZodOptional<z.ZodEnum<{
89
+ none: "none";
90
+ AAC: "AAC";
91
+ Opus: "Opus";
92
+ PCMU: "PCMU";
93
+ }>>;
94
+ maxResolution: z.ZodOptional<z.ZodObject<{
95
+ width: z.ZodNumber;
96
+ height: z.ZodNumber;
97
+ }, z.core.$strip>>;
98
+ tag: z.ZodOptional<z.ZodString>;
99
+ }, z.core.$strip>;
100
+ export type GetStreamWithCodecInput = z.infer<typeof GetStreamWithCodecInputSchema>;
101
+ export declare const RtpSourceSchema: z.ZodObject<{
102
+ url: z.ZodString;
103
+ videoCodec: z.ZodEnum<{
104
+ H264: "H264";
105
+ H265: "H265";
106
+ }>;
107
+ audioCodec: z.ZodString;
108
+ resolution: z.ZodObject<{
109
+ width: z.ZodNumber;
110
+ height: z.ZodNumber;
111
+ }, z.core.$strip>;
112
+ transcoded: z.ZodBoolean;
113
+ encoder: z.ZodString;
114
+ pipelineKey: z.ZodString;
115
+ }, z.core.$strip>;
116
+ export type RtpSource = z.infer<typeof RtpSourceSchema>;
107
117
  export declare const streamBrokerCapability: {
108
118
  readonly name: "stream-broker";
109
119
  readonly scope: "system";
110
120
  readonly mode: "singleton";
111
121
  readonly exposesDeviceSettings: true;
112
122
  readonly methods: {
113
- /**
114
- * Register a physical camera stream as an input option. Idempotent
115
- * for (deviceId, camStreamId) — re-publishing updates metadata
116
- * without disturbing profile assignments. The provider calls this
117
- * in `onInitialize` for each stream it offers. Third-party addons
118
- * may also publish (e.g. an RTMP discovery layer) — camstack has
119
- * no notion of "owner" beyond the (deviceId, camStreamId) key.
120
- */
121
123
  readonly publishCameraStream: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
122
124
  deviceId: z.ZodNumber;
123
125
  camStreamId: z.ZodString;
@@ -148,11 +150,6 @@ export declare const streamBrokerCapability: {
148
150
  }, z.core.$strip>, z.ZodObject<{
149
151
  success: z.ZodLiteral<true>;
150
152
  }, z.core.$strip>, "mutation">;
151
- /**
152
- * Assign a cam stream to a profile slot. Tears down any existing
153
- * broker for that slot and rebuilds against the new source. Persists
154
- * the choice — survives reboots.
155
- */
156
153
  readonly assignProfile: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
157
154
  deviceId: z.ZodNumber;
158
155
  profile: z.ZodEnum<{
@@ -174,11 +171,6 @@ export declare const streamBrokerCapability: {
174
171
  }, z.core.$strip>, z.ZodObject<{
175
172
  success: z.ZodLiteral<true>;
176
173
  }, z.core.$strip>, "mutation">;
177
- /**
178
- * Full dump of every published cam stream across every device.
179
- * For dashboards and cross-device tooling; per-device reads go
180
- * through the `camera-streams` cap on the device proxy.
181
- */
182
174
  readonly listAllCameraStreams: import("./capability-definition.js").CapabilityMethodSchema<z.ZodVoid, z.ZodReadonly<z.ZodArray<z.ZodObject<{
183
175
  camStreamId: z.ZodString;
184
176
  deviceId: z.ZodNumber;
@@ -296,7 +288,6 @@ export declare const streamBrokerCapability: {
296
288
  }, z.core.$strip>, z.ZodObject<{
297
289
  killed: z.ZodBoolean;
298
290
  }, z.core.$strip>, "mutation">;
299
- /** Rebuild the broker for a profile slot in place (re-dial source). */
300
291
  readonly restartProfile: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
301
292
  deviceId: z.ZodNumber;
302
293
  profile: z.ZodEnum<{
@@ -319,12 +310,48 @@ export declare const streamBrokerCapability: {
319
310
  url: z.ZodString;
320
311
  }, z.core.$strip>, import("./capability-definition.js").CapabilityMethodKind>;
321
312
  /**
322
- * Return the live IStreamBroker instance for a given brokerId. Same
323
- * LOCAL-ONLY contract as before: callers (pipeline-runner) must be
324
- * co-located. BrokerId is `${deviceId}/${camStreamId}` — profile
325
- * lookup goes through `assignments` if a caller starts from a
326
- * profile.
313
+ * Shared codec-targeted stream API see Task #184.
314
+ * Resolution order: source-select HW transcode libx264/libx265.
327
315
  */
316
+ readonly getStreamWithCodec: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
317
+ deviceId: z.ZodNumber;
318
+ videoCodec: z.ZodEnum<{
319
+ auto: "auto";
320
+ H264: "H264";
321
+ H265: "H265";
322
+ }>;
323
+ audioCodec: z.ZodOptional<z.ZodEnum<{
324
+ none: "none";
325
+ AAC: "AAC";
326
+ Opus: "Opus";
327
+ PCMU: "PCMU";
328
+ }>>;
329
+ maxResolution: z.ZodOptional<z.ZodObject<{
330
+ width: z.ZodNumber;
331
+ height: z.ZodNumber;
332
+ }, z.core.$strip>>;
333
+ tag: z.ZodOptional<z.ZodString>;
334
+ }, z.core.$strip>, z.ZodObject<{
335
+ url: z.ZodString;
336
+ videoCodec: z.ZodEnum<{
337
+ H264: "H264";
338
+ H265: "H265";
339
+ }>;
340
+ audioCodec: z.ZodString;
341
+ resolution: z.ZodObject<{
342
+ width: z.ZodNumber;
343
+ height: z.ZodNumber;
344
+ }, z.core.$strip>;
345
+ transcoded: z.ZodBoolean;
346
+ encoder: z.ZodString;
347
+ pipelineKey: z.ZodString;
348
+ }, z.core.$strip>, "mutation">;
349
+ readonly releaseStreamWithCodec: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
350
+ pipelineKey: z.ZodString;
351
+ }, z.core.$strip>, z.ZodObject<{
352
+ released: z.ZodBoolean;
353
+ refcount: z.ZodNumber;
354
+ }, z.core.$strip>, "mutation">;
328
355
  readonly getBroker: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
329
356
  brokerId: z.ZodString;
330
357
  }, z.core.$strip>, z.ZodCustom<IStreamBroker | null, IStreamBroker | null>, import("./capability-definition.js").CapabilityMethodKind>;
@@ -369,12 +396,6 @@ export declare const streamBrokerCapability: {
369
396
  }, z.core.$strip>, z.ZodBoolean, import("./capability-definition.js").CapabilityMethodKind>;
370
397
  };
371
398
  readonly events: {
372
- /**
373
- * Emitted when a profile starts consuming a push-kind cam stream.
374
- * Push-kind providers (e.g. Reolink Baichuan native streams)
375
- * subscribe and begin emitting packets only on demand — battery
376
- * cams stay asleep until someone actually watches.
377
- */
378
399
  readonly onCamStreamDemand: import("./capability-definition.js").CapabilityEventSchema<z.ZodObject<{
379
400
  deviceId: z.ZodNumber;
380
401
  camStreamId: z.ZodString;
@@ -384,26 +405,10 @@ export declare const streamBrokerCapability: {
384
405
  low: "low";
385
406
  }>;
386
407
  }, z.core.$strip>>;
387
- /**
388
- * Emitted when the last profile consuming a push-kind cam stream
389
- * releases it. Providers tear down upstream connections on this
390
- * signal.
391
- */
392
408
  readonly onCamStreamIdle: import("./capability-definition.js").CapabilityEventSchema<z.ZodObject<{
393
409
  deviceId: z.ZodNumber;
394
410
  camStreamId: z.ZodString;
395
411
  }, z.core.$strip>>;
396
- /**
397
- * Emitted by a broker that failed to dial a managed-loopback
398
- * source (today: `pull-rfc4571`). The publisher's transport (e.g.
399
- * the Reolink lib's RFC 4571 TCP server) idle-tears-down after
400
- * ~15s with no clients and may rebind to a different port on
401
- * recreate, leaving the URL the broker has cached stale. The owning
402
- * camera provider re-runs its publish pipeline on receipt — that
403
- * call self-heals the loopback server (`ensureRfc4571Server`) and
404
- * `publishCameraStream` propagates the fresh URL back into the
405
- * broker's source resolver.
406
- */
407
412
  readonly onRequestStreamSourceRefresh: import("./capability-definition.js").CapabilityEventSchema<z.ZodObject<{
408
413
  deviceId: z.ZodNumber;
409
414
  camStreamId: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"stream-broker.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/stream-broker.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAA4C,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAMzG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAEnE;;;;GAIG;AACH,QAAA,MAAM,uBAAuB;;;;;iBAK3B,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;iBAQjC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;iBAMpC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;iBAM9B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAEvE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,sBAAsB;;;;;;QAO/B;;;;;;;WAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkDH;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;QAoBH;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4BH,uEAAuE;;;;;;;;;;;;;;;;;;;;;;QAiBvE;;;;;;WAMG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA2CH;;;;;WAKG;;;;;;;;;;QAMH;;;;WAIG;;;;;QAKH;;;;;;;;;;WAUG;;;;;;;CAOkC,CAAA;AAEzC,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAEhF,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
1
+ {"version":3,"file":"stream-broker.cap.d.ts","sourceRoot":"","sources":["../../src/capabilities/stream-broker.cap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAA4C,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAMzG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAEnE,QAAA,MAAM,uBAAuB;;;;;iBAK3B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;iBAQjC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;iBAMpC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;iBAM9B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AACrE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAC3E,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,uBAAuB;;;;;;EAMlC,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAIvE,QAAA,MAAM,sBAAsB;;;;EAAmC,CAAA;AAC/D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,QAAA,MAAM,sBAAsB;;;;;EAA0C,CAAA;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAOrE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;iBAMxC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEnF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;iBAQ1B,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqF/B;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEkC,CAAA;AAEzC,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAEhF,OAAO,EAAE,uBAAuB,EAAE,CAAA"}