@scanly/browser 2.0.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.
Files changed (142) hide show
  1. package/README.md +3 -0
  2. package/dist/batch/batch-controller.d.ts +71 -0
  3. package/dist/batch/batch-controller.d.ts.map +1 -0
  4. package/dist/batch/batch-controller.js +422 -0
  5. package/dist/batch/batch-controller.js.map +1 -0
  6. package/dist/batch/batch-session.d.ts +53 -0
  7. package/dist/batch/batch-session.d.ts.map +1 -0
  8. package/dist/batch/batch-session.js +267 -0
  9. package/dist/batch/batch-session.js.map +1 -0
  10. package/dist/batch/index.d.ts +4 -0
  11. package/dist/batch/index.d.ts.map +1 -0
  12. package/dist/batch/index.js +4 -0
  13. package/dist/batch/index.js.map +1 -0
  14. package/dist/batch/types.d.ts +101 -0
  15. package/dist/batch/types.d.ts.map +1 -0
  16. package/dist/batch/types.js +2 -0
  17. package/dist/batch/types.js.map +1 -0
  18. package/dist/browser-session.d.ts +51 -0
  19. package/dist/browser-session.d.ts.map +1 -0
  20. package/dist/browser-session.js +168 -0
  21. package/dist/browser-session.js.map +1 -0
  22. package/dist/camera-source.d.ts +89 -0
  23. package/dist/camera-source.d.ts.map +1 -0
  24. package/dist/camera-source.js +366 -0
  25. package/dist/camera-source.js.map +1 -0
  26. package/dist/camera-strategy.d.ts +36 -0
  27. package/dist/camera-strategy.d.ts.map +1 -0
  28. package/dist/camera-strategy.js +94 -0
  29. package/dist/camera-strategy.js.map +1 -0
  30. package/dist/decode-upload.d.ts +13 -0
  31. package/dist/decode-upload.d.ts.map +1 -0
  32. package/dist/decode-upload.js +23 -0
  33. package/dist/decode-upload.js.map +1 -0
  34. package/dist/image-loader.d.ts +11 -0
  35. package/dist/image-loader.d.ts.map +1 -0
  36. package/dist/image-loader.js +63 -0
  37. package/dist/image-loader.js.map +1 -0
  38. package/dist/index.d.ts +13 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +13 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/runtime.d.ts +8 -0
  43. package/dist/runtime.d.ts.map +1 -0
  44. package/dist/runtime.js +14 -0
  45. package/dist/runtime.js.map +1 -0
  46. package/dist/scanner/camera-capabilities.d.ts +20 -0
  47. package/dist/scanner/camera-capabilities.d.ts.map +1 -0
  48. package/dist/scanner/camera-capabilities.js +181 -0
  49. package/dist/scanner/camera-capabilities.js.map +1 -0
  50. package/dist/scanner/camera-platform.d.ts +75 -0
  51. package/dist/scanner/camera-platform.d.ts.map +1 -0
  52. package/dist/scanner/camera-platform.js +145 -0
  53. package/dist/scanner/camera-platform.js.map +1 -0
  54. package/dist/scanner/decode-escalation.d.ts +20 -0
  55. package/dist/scanner/decode-escalation.d.ts.map +1 -0
  56. package/dist/scanner/decode-escalation.js +40 -0
  57. package/dist/scanner/decode-escalation.js.map +1 -0
  58. package/dist/scanner/frame-quality.d.ts +24 -0
  59. package/dist/scanner/frame-quality.d.ts.map +1 -0
  60. package/dist/scanner/frame-quality.js +90 -0
  61. package/dist/scanner/frame-quality.js.map +1 -0
  62. package/dist/scanner/frame-scheduler.d.ts +59 -0
  63. package/dist/scanner/frame-scheduler.d.ts.map +1 -0
  64. package/dist/scanner/frame-scheduler.js +148 -0
  65. package/dist/scanner/frame-scheduler.js.map +1 -0
  66. package/dist/scanner/frame-source.d.ts +70 -0
  67. package/dist/scanner/frame-source.d.ts.map +1 -0
  68. package/dist/scanner/frame-source.js +263 -0
  69. package/dist/scanner/frame-source.js.map +1 -0
  70. package/dist/scanner/index.d.ts +12 -0
  71. package/dist/scanner/index.d.ts.map +1 -0
  72. package/dist/scanner/index.js +12 -0
  73. package/dist/scanner/index.js.map +1 -0
  74. package/dist/scanner/repeat-suppressor.d.ts +23 -0
  75. package/dist/scanner/repeat-suppressor.d.ts.map +1 -0
  76. package/dist/scanner/repeat-suppressor.js +69 -0
  77. package/dist/scanner/repeat-suppressor.js.map +1 -0
  78. package/dist/scanner/scanner-session.d.ts +160 -0
  79. package/dist/scanner/scanner-session.d.ts.map +1 -0
  80. package/dist/scanner/scanner-session.js +766 -0
  81. package/dist/scanner/scanner-session.js.map +1 -0
  82. package/dist/scanner/temporal-confirmation.d.ts +30 -0
  83. package/dist/scanner/temporal-confirmation.d.ts.map +1 -0
  84. package/dist/scanner/temporal-confirmation.js +71 -0
  85. package/dist/scanner/temporal-confirmation.js.map +1 -0
  86. package/dist/scanner/temporal-roi.d.ts +27 -0
  87. package/dist/scanner/temporal-roi.d.ts.map +1 -0
  88. package/dist/scanner/temporal-roi.js +50 -0
  89. package/dist/scanner/temporal-roi.js.map +1 -0
  90. package/dist/scanner/types.d.ts +232 -0
  91. package/dist/scanner/types.d.ts.map +1 -0
  92. package/dist/scanner/types.js +2 -0
  93. package/dist/scanner/types.js.map +1 -0
  94. package/dist/tracking/barcode-tracker.d.ts +28 -0
  95. package/dist/tracking/barcode-tracker.d.ts.map +1 -0
  96. package/dist/tracking/barcode-tracker.js +279 -0
  97. package/dist/tracking/barcode-tracker.js.map +1 -0
  98. package/dist/tracking/geometry.d.ts +13 -0
  99. package/dist/tracking/geometry.d.ts.map +1 -0
  100. package/dist/tracking/geometry.js +51 -0
  101. package/dist/tracking/geometry.js.map +1 -0
  102. package/dist/tracking/index.d.ts +8 -0
  103. package/dist/tracking/index.d.ts.map +1 -0
  104. package/dist/tracking/index.js +8 -0
  105. package/dist/tracking/index.js.map +1 -0
  106. package/dist/tracking/scanner-tracking-runtime.d.ts +45 -0
  107. package/dist/tracking/scanner-tracking-runtime.d.ts.map +1 -0
  108. package/dist/tracking/scanner-tracking-runtime.js +93 -0
  109. package/dist/tracking/scanner-tracking-runtime.js.map +1 -0
  110. package/dist/tracking/track-association.d.ts +19 -0
  111. package/dist/tracking/track-association.d.ts.map +1 -0
  112. package/dist/tracking/track-association.js +191 -0
  113. package/dist/tracking/track-association.js.map +1 -0
  114. package/dist/tracking/track-overlay.d.ts +4 -0
  115. package/dist/tracking/track-overlay.d.ts.map +1 -0
  116. package/dist/tracking/track-overlay.js +16 -0
  117. package/dist/tracking/track-overlay.js.map +1 -0
  118. package/dist/tracking/track-roi-set.d.ts +17 -0
  119. package/dist/tracking/track-roi-set.d.ts.map +1 -0
  120. package/dist/tracking/track-roi-set.js +119 -0
  121. package/dist/tracking/track-roi-set.js.map +1 -0
  122. package/dist/tracking/types.d.ts +154 -0
  123. package/dist/tracking/types.d.ts.map +1 -0
  124. package/dist/tracking/types.js +2 -0
  125. package/dist/tracking/types.js.map +1 -0
  126. package/dist/worker/decode-worker.d.ts +2 -0
  127. package/dist/worker/decode-worker.d.ts.map +1 -0
  128. package/dist/worker/decode-worker.js +84 -0
  129. package/dist/worker/decode-worker.js.map +1 -0
  130. package/dist/worker/transferable-buffer.d.ts +18 -0
  131. package/dist/worker/transferable-buffer.d.ts.map +1 -0
  132. package/dist/worker/transferable-buffer.js +24 -0
  133. package/dist/worker/transferable-buffer.js.map +1 -0
  134. package/dist/worker/worker-client.d.ts +86 -0
  135. package/dist/worker/worker-client.d.ts.map +1 -0
  136. package/dist/worker/worker-client.js +286 -0
  137. package/dist/worker/worker-client.js.map +1 -0
  138. package/dist/worker/worker-messages.d.ts +75 -0
  139. package/dist/worker/worker-messages.d.ts.map +1 -0
  140. package/dist/worker/worker-messages.js +244 -0
  141. package/dist/worker/worker-messages.js.map +1 -0
  142. package/package.json +30 -0
@@ -0,0 +1,160 @@
1
+ import { CaptureRouter, type NormalizedFrame, type RecoveryBudget, type RecoveryProfile, type RecoveryRouteId, type ScanOutcome } from "@scanly/core";
2
+ import { type ScenarioDefinition } from "@scanly/scenario-schema";
3
+ import { type DecodeWorkerFactory } from "../worker/worker-client.js";
4
+ import { type ScannerTrackingRuntimeOptions } from "../tracking/scanner-tracking-runtime.js";
5
+ import type { BarcodeTrack, TrackingStatistics } from "../tracking/types.js";
6
+ import { CameraCapabilityController } from "./camera-capabilities.js";
7
+ import { type CameraRecoveryPolicy, type DeviceDiagnostics } from "./camera-platform.js";
8
+ import { BoundedDecodeEscalation } from "./decode-escalation.js";
9
+ import { type FrameQualityAnalyzerOptions } from "./frame-quality.js";
10
+ import { type FrameSchedulerOptions } from "./frame-scheduler.js";
11
+ import { type TemporalCandidateStoreOptions } from "./temporal-confirmation.js";
12
+ import { type TemporalROIOptions } from "./temporal-roi.js";
13
+ import type { AutoZoomOptions, BarcodeObservationSetListener, CameraCapabilities, CameraFrameSource, CapabilityResult, RepeatPolicy, ScannerDecodeRequest, ScannerDecodeMode, ScannerDiagnosticListener, ScannerFrameDecoder, ScannerSessionStatistics, ScannerSessionState, ScannerStateListener, ScanResultListener, Unsubscribe } from "./types.js";
14
+ export interface BrowserScannerFrameDecoderOptions {
15
+ router?: CaptureRouter;
16
+ workerFactory?: DecodeWorkerFactory;
17
+ useWorker?: boolean;
18
+ disposeRouter?: boolean;
19
+ scenario?: ScenarioDefinition;
20
+ /** Camera defaults to diagnosis-driven recovery; DPM remains explicitly off. */
21
+ recovery?: false | BrowserIndustrialRecoveryOptions;
22
+ }
23
+ export interface BrowserIndustrialRecoveryOptions {
24
+ profile?: RecoveryProfile;
25
+ budget?: RecoveryBudget;
26
+ dpmExperimental?: boolean;
27
+ excludedRoutes?: readonly RecoveryRouteId[];
28
+ }
29
+ /** Default decoder composition: persistent Worker with an explicit main-thread fallback. */
30
+ export declare class BrowserScannerFrameDecoder implements ScannerFrameDecoder {
31
+ private readonly router;
32
+ private readonly ownsRouter;
33
+ private readonly worker;
34
+ private readonly useWorker;
35
+ private readonly baseScenario?;
36
+ private readonly recovery;
37
+ private readonly recoveryPipeline;
38
+ private mainRecoveryRunCount;
39
+ private mainRecoveryTemporaryBytes;
40
+ private mainRecoveryPeakTemporaryBytes;
41
+ private mainRecoveryRouteStateCount;
42
+ private disposed;
43
+ constructor(options?: BrowserScannerFrameDecoderOptions);
44
+ decode(frame: NormalizedFrame, request: ScannerDecodeRequest): Promise<ScanOutcome>;
45
+ private workerRecovery;
46
+ private decodeOnMain;
47
+ cancel(): void;
48
+ dispose(): Promise<void>;
49
+ getStatistics(): {
50
+ wasmInputAllocationBytes: number;
51
+ wasmActiveNativeResultCount: number;
52
+ wasmCurrentLinearMemoryBytes: number;
53
+ wasmPeakLinearMemoryBytes: number;
54
+ wasmReleasedNativeResultCount: number;
55
+ recoveryRunCount: number;
56
+ recoveryTemporaryBytes: number;
57
+ recoveryPeakTemporaryBytes: number;
58
+ recoveryRouteStateCount: number;
59
+ workerCreatedCount: number;
60
+ workerTerminatedCount: number;
61
+ activeTaskCount: number;
62
+ peakActiveTaskCount: number;
63
+ wasmObservationCount: number;
64
+ workerWasmDecodeCount: number;
65
+ };
66
+ }
67
+ export interface ScannerSessionOptions {
68
+ source: CameraFrameSource;
69
+ decoder?: ScannerFrameDecoder;
70
+ decoderOptions?: BrowserScannerFrameDecoderOptions;
71
+ confirmation?: TemporalCandidateStoreOptions;
72
+ repeatPolicy?: RepeatPolicy;
73
+ quality?: FrameQualityAnalyzerOptions;
74
+ qualityProbeInterval?: number;
75
+ scheduler?: FrameSchedulerOptions;
76
+ escalation?: ConstructorParameters<typeof BoundedDecodeEscalation>[0];
77
+ roi?: TemporalROIOptions;
78
+ capabilityController?: CameraCapabilityController;
79
+ autoZoom?: AutoZoomOptions;
80
+ cameraRecovery?: CameraRecoveryPolicy;
81
+ /** Explicitly enables the bounded multi-code tracking decode path. */
82
+ decodeMode?: ScannerDecodeMode;
83
+ /** Tracker/ROI composition used only when decodeMode is "tracking". */
84
+ tracking?: ScannerTrackingRuntimeOptions;
85
+ }
86
+ export declare class ScannerSession {
87
+ private state;
88
+ private source;
89
+ private readonly decoder;
90
+ private readonly ownsDecoder;
91
+ private readonly quality;
92
+ private readonly scheduler;
93
+ private readonly escalation;
94
+ private readonly candidates;
95
+ private readonly repeats;
96
+ private readonly roi;
97
+ private readonly decodeMode;
98
+ private readonly trackingRuntime?;
99
+ private capabilityController?;
100
+ private readonly autoZoom?;
101
+ private readonly cameraRecovery;
102
+ private readonly qualityProbeInterval;
103
+ private readonly resultListeners;
104
+ private readonly observationSetListeners;
105
+ private readonly stateListeners;
106
+ private readonly diagnosticListeners;
107
+ private generation;
108
+ private lifecycleGeneration;
109
+ private stopPromise;
110
+ private recoveryPromise;
111
+ private backgroundPaused;
112
+ private activeDecodeController;
113
+ private frameSequence;
114
+ private eventSequence;
115
+ private startedAt;
116
+ private firstDecodeAt?;
117
+ private firstConfirmedAt?;
118
+ private decodeLatencies;
119
+ private peakControlledMemory;
120
+ private currentWorkerMemory;
121
+ private counters;
122
+ constructor(options: ScannerSessionOptions);
123
+ getState(): ScannerSessionState;
124
+ start(): Promise<void>;
125
+ pause(): void;
126
+ resume(): void;
127
+ switchSource(source: CameraFrameSource, capabilityController?: CameraCapabilityController): Promise<void>;
128
+ stop(): Promise<void>;
129
+ reset(): void;
130
+ dispose(): Promise<void>;
131
+ getStatistics(): ScannerSessionStatistics;
132
+ onResult(listener: ScanResultListener): Unsubscribe;
133
+ onObservations(listener: BarcodeObservationSetListener): Unsubscribe;
134
+ onStateChange(listener: ScannerStateListener): Unsubscribe;
135
+ onDiagnostics(listener: ScannerDiagnosticListener): Unsubscribe;
136
+ getTracks(): readonly BarcodeTrack[];
137
+ getTrackingStatistics(): TrackingStatistics | undefined;
138
+ getDeviceDiagnostics(): DeviceDiagnostics | undefined;
139
+ getCameraCapabilities(): CameraCapabilities;
140
+ setTorch(enabled: boolean): Promise<CapabilityResult<boolean>>;
141
+ setZoom(value: number, manual?: boolean): Promise<CapabilityResult<number>>;
142
+ requestFocus(): Promise<CapabilityResult<boolean>>;
143
+ private acceptFrame;
144
+ private processFrame;
145
+ private observeResult;
146
+ private emitLost;
147
+ private event;
148
+ private canPublishGeneration;
149
+ private emitObservationSet;
150
+ private emitQualityHint;
151
+ private handleSourceEnded;
152
+ private handleSourceError;
153
+ private handleCameraLifecycle;
154
+ private invalidateCameraGeneration;
155
+ private recoverCamera;
156
+ private failCamera;
157
+ private setState;
158
+ private emitDiagnostic;
159
+ }
160
+ //# sourceMappingURL=scanner-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner-session.d.ts","sourceRoot":"","sources":["../../src/scanner/scanner-session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAQb,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,WAAW,EAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAsC,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC1G,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAyC,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAChI,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAwB,KAAK,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAA6C,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7G,OAAO,EAA0B,KAAK,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AACxG,OAAO,EAAe,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,KAAK,EACV,eAAe,EAEf,6BAA6B,EAE7B,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAGhB,YAAY,EAEZ,oBAAoB,EACpB,iBAAiB,EAEjB,yBAAyB,EACzB,mBAAmB,EAEnB,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iCAAiC;IAChD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,EAAE,KAAK,GAAG,gCAAgC,CAAC;CACrD;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CAC7C;AAED,4FAA4F;AAC5F,qBAAa,0BAA2B,YAAW,mBAAmB;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoC;IACrE,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,8BAA8B,CAAK;IAC3C,OAAO,CAAC,2BAA2B,CAAK;IACxC,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,GAAE,iCAAsC;IASrD,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAiEzF,OAAO,CAAC,cAAc;YAWR,YAAY;IAc1B,MAAM,IAAI,IAAI;IACR,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,aAAa;;;;;;;;;;;;;;;;;CAiBd;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,cAAc,CAAC,EAAE,iCAAiC,CAAC;IACnD,YAAY,CAAC,EAAE,6BAA6B,CAAC;IAC7C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,CAAC,EAAE,2BAA2B,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,UAAU,CAAC,EAAE,qBAAqB,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,GAAG,CAAC,EAAE,kBAAkB,CAAC;IACzB,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;IAClD,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,sEAAsE;IACtE,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,6BAA6B,CAAC;CAC1C;AAqBD,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAyB;IAC1D,OAAO,CAAC,oBAAoB,CAAC,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;IACjE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA4C;IACpF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAClE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAwC;IAC5E,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,sBAAsB,CAAgC;IAC9D,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,oBAAoB,CAAK;IACjC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAKd;gBAEU,OAAO,EAAE,qBAAqB;IAyB1C,QAAQ,IAAI,mBAAmB;IAEzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B5B,KAAK,IAAI,IAAI;IAKb,MAAM,IAAI,IAAI;IAKR,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B,KAAK,IAAI,IAAI;IAQP,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,aAAa,IAAI,wBAAwB;IA4CzC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,WAAW;IACnD,cAAc,CAAC,QAAQ,EAAE,6BAA6B,GAAG,WAAW;IACpE,aAAa,CAAC,QAAQ,EAAE,oBAAoB,GAAG,WAAW;IAC1D,aAAa,CAAC,QAAQ,EAAE,yBAAyB,GAAG,WAAW;IAC/D,SAAS,IAAI,SAAS,YAAY,EAAE;IACpC,qBAAqB,IAAI,kBAAkB,GAAG,SAAS;IACvD,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IACrD,qBAAqB,IAAI,kBAAkB;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxE,YAAY,IAAI,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAEpC,WAAW;YAYX,YAAY;IA0D1B,OAAO,CAAC,aAAa;IA0CrB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,KAAK;IAGb,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,qBAAqB;IAsB7B,OAAO,CAAC,0BAA0B;YAMpB,aAAa;IAgC3B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;CACvB"}