pyannote-cpp-node 0.6.0 → 1.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.
package/dist/types.d.ts CHANGED
@@ -1,97 +1,217 @@
1
- export interface ModelConfig {
2
- /** Path to segmentation GGUF model */
1
+ export interface Capabilities {
2
+ whisper: boolean;
3
+ vad: boolean;
4
+ gpuDiscovery: boolean;
5
+ pipeline: boolean;
6
+ diarization: boolean;
7
+ platform: string;
8
+ supportedBackendTypes: BackendType[];
9
+ }
10
+ export interface MetalBackendConfig {
11
+ type: 'metal';
12
+ gpuDevice?: number;
13
+ flashAttn?: boolean;
14
+ segPath: string;
15
+ embPath: string;
16
+ }
17
+ export interface VulkanBackendConfig {
18
+ type: 'vulkan';
19
+ gpuDevice?: number;
20
+ flashAttn?: boolean;
21
+ }
22
+ export interface CoreMLBackendConfig {
23
+ type: 'coreml';
24
+ gpuDevice?: number;
25
+ flashAttn?: boolean;
26
+ segPath: string;
27
+ embPath: string;
28
+ whisperEncoderPath: string;
29
+ }
30
+ export interface OpenVINOHybridBackendConfig {
31
+ type: 'openvino-hybrid';
32
+ gpuDevice?: number;
33
+ flashAttn?: boolean;
34
+ whisperEncoderPath: string;
35
+ embPath: string;
36
+ openvinoDevice?: string;
37
+ openvinoCacheDir?: string;
38
+ }
39
+ export type BackendConfig = MetalBackendConfig | VulkanBackendConfig | CoreMLBackendConfig | OpenVINOHybridBackendConfig;
40
+ export type BackendType = BackendConfig['type'];
41
+ export interface WhisperContextOptions {
42
+ model: string;
43
+ use_gpu?: boolean;
44
+ flash_attn?: boolean;
45
+ gpu_device?: number;
46
+ use_coreml?: boolean;
47
+ use_openvino?: boolean;
48
+ openvino_model_path?: string;
49
+ openvino_device?: string;
50
+ openvino_cache_dir?: string;
51
+ dtw?: string;
52
+ dtw_norm_top_k?: number;
53
+ no_prints?: boolean;
54
+ }
55
+ export interface TranscribeOptionsBase {
56
+ language?: string;
57
+ translate?: boolean;
58
+ detect_language?: boolean;
59
+ n_threads?: number;
60
+ n_processors?: number;
61
+ offset_ms?: number;
62
+ duration_ms?: number;
63
+ audio_ctx?: number;
64
+ no_timestamps?: boolean;
65
+ single_segment?: boolean;
66
+ max_len?: number;
67
+ max_tokens?: number;
68
+ max_context?: number;
69
+ split_on_word?: boolean;
70
+ token_timestamps?: boolean;
71
+ word_thold?: number;
72
+ comma_in_time?: boolean;
73
+ temperature?: number;
74
+ temperature_inc?: number;
75
+ best_of?: number;
76
+ beam_size?: number;
77
+ no_fallback?: boolean;
78
+ entropy_thold?: number;
79
+ logprob_thold?: number;
80
+ no_speech_thold?: number;
81
+ prompt?: string;
82
+ no_context?: boolean;
83
+ suppress_blank?: boolean;
84
+ suppress_nst?: boolean;
85
+ diarize?: boolean;
86
+ tinydiarize?: boolean;
87
+ print_special?: boolean;
88
+ print_progress?: boolean;
89
+ print_realtime?: boolean;
90
+ print_timestamps?: boolean;
91
+ vad?: boolean;
92
+ vad_model?: string;
93
+ vad_threshold?: number;
94
+ vad_min_speech_duration_ms?: number;
95
+ vad_min_silence_duration_ms?: number;
96
+ vad_max_speech_duration_s?: number;
97
+ vad_speech_pad_ms?: number;
98
+ vad_samples_overlap?: number;
99
+ progress_callback?: (progress: number) => void;
100
+ on_new_segment?: (segment: StreamingSegment) => void;
101
+ }
102
+ export interface TranscribeOptionsFile extends TranscribeOptionsBase {
103
+ fname_inp: string;
104
+ pcmf32?: never;
105
+ }
106
+ export interface TranscribeOptionsBuffer extends TranscribeOptionsBase {
107
+ pcmf32: Float32Array;
108
+ fname_inp?: never;
109
+ }
110
+ export type TranscribeOptions = TranscribeOptionsFile | TranscribeOptionsBuffer;
111
+ export interface StreamingToken {
112
+ text: string;
113
+ probability: number;
114
+ t0: number;
115
+ t1: number;
116
+ t_dtw: number;
117
+ }
118
+ export interface TranscriptSegment {
119
+ start: string;
120
+ end: string;
121
+ text: string;
122
+ tokens?: StreamingToken[];
123
+ }
124
+ export interface StreamingSegment {
125
+ start: string;
126
+ end: string;
127
+ text: string;
128
+ segment_index: number;
129
+ is_partial: boolean;
130
+ tokens?: StreamingToken[];
131
+ }
132
+ export interface TranscribeResult {
133
+ segments: TranscriptSegment[];
134
+ language?: string;
135
+ }
136
+ export interface GpuDevice {
137
+ index: number;
138
+ name: string;
139
+ description: string;
140
+ type: 'gpu' | 'igpu';
141
+ memory_free: number;
142
+ memory_total: number;
143
+ }
144
+ export interface VadContextOptions {
145
+ model: string;
146
+ threshold?: number;
147
+ n_threads?: number;
148
+ no_prints?: boolean;
149
+ }
150
+ export interface WhisperContext {
151
+ getSystemInfo(): string;
152
+ isMultilingual(): boolean;
153
+ free(): void;
154
+ }
155
+ export interface WhisperContextConstructor {
156
+ new (options: WhisperContextOptions): WhisperContext;
157
+ }
158
+ export interface VadContext {
159
+ getWindowSamples(): number;
160
+ getSampleRate(): number;
161
+ process(samples: Float32Array): number;
162
+ reset(): void;
163
+ free(): void;
164
+ }
165
+ export interface VadContextConstructor {
166
+ new (options: VadContextOptions): VadContext;
167
+ }
168
+ export type TranscribeCallback = (error: Error | null, result?: TranscribeResult) => void;
169
+ export interface PipelineConfig {
3
170
  segModelPath: string;
4
- /** Path to embedding GGUF model */
5
- embModelPath: string;
6
- /** Path to PLDA GGUF model */
7
- pldaPath: string;
8
- /** Path to embedding CoreML .mlpackage directory */
9
- coremlPath: string;
10
- /** Path to segmentation CoreML .mlpackage directory */
11
- segCoremlPath: string;
12
- /** Path to Whisper GGUF model */
13
171
  whisperModelPath: string;
14
- /** Path to Silero VAD model (optional, enables silence compression) */
172
+ /** Required unless transcriptionOnly is true */
173
+ embModelPath?: string;
174
+ /** Required unless transcriptionOnly is true */
175
+ pldaPath?: string;
15
176
  vadModelPath?: string;
16
- /** Enable GPU acceleration (default: true) */
17
- useGpu?: boolean;
18
- /** Enable Flash Attention (default: true) */
19
- flashAttn?: boolean;
20
- /** GPU device index (default: 0) */
21
- gpuDevice?: number;
22
- /**
23
- * Enable CoreML acceleration for Whisper encoder on macOS (default: false).
24
- * The CoreML model must be placed next to the GGUF model with naming convention:
25
- * e.g., ggml-base.en.bin -> ggml-base.en-encoder.mlmodelc/
26
- */
27
- useCoreml?: boolean;
28
- /** Suppress whisper.cpp log output (default: false) */
177
+ transcriptionOnly?: boolean;
178
+ backend: BackendConfig;
29
179
  noPrints?: boolean;
30
- /** Number of threads for Whisper inference (default: 4) */
31
180
  nThreads?: number;
32
- /** Language code (e.g., 'en', 'zh'). Omit for auto-detect. (default: 'en') */
33
181
  language?: string;
34
- /** Translate non-English speech to English (default: false) */
35
182
  translate?: boolean;
36
- /** Auto-detect spoken language. Overrides 'language' when true. (default: false) */
37
183
  detectLanguage?: boolean;
38
- /** Sampling temperature. 0.0 = greedy deterministic. (default: 0.0) */
39
184
  temperature?: number;
40
- /** Temperature increment for fallback retries (default: 0.2) */
41
185
  temperatureInc?: number;
42
- /** Disable temperature fallback. If true, temperatureInc is ignored. (default: false) */
43
186
  noFallback?: boolean;
44
- /** Beam search size. -1 uses greedy decoding. >1 enables beam search. (default: -1) */
45
187
  beamSize?: number;
46
- /** Best-of-N sampling candidates for greedy decoding (default: 5) */
47
188
  bestOf?: number;
48
- /** Entropy threshold for decoder fallback (default: 2.4) */
49
189
  entropyThold?: number;
50
- /** Log probability threshold for decoder fallback (default: -1.0) */
51
190
  logprobThold?: number;
52
- /** No-speech probability threshold (default: 0.6) */
53
191
  noSpeechThold?: number;
54
- /** Initial prompt text to condition the decoder (default: none) */
55
192
  prompt?: string;
56
- /** Don't use previous segment as context for next segment (default: true) */
57
193
  noContext?: boolean;
58
- /** Suppress blank outputs at the beginning of segments (default: true) */
59
194
  suppressBlank?: boolean;
60
- /** Suppress non-speech tokens (default: false) */
61
195
  suppressNst?: boolean;
62
196
  }
197
+ /** @deprecated Use PipelineConfig instead */
198
+ export type ModelConfig = PipelineConfig;
63
199
  export interface DecodeOptions {
64
- /** Language code (e.g., 'en', 'zh'). Omit for auto-detect. */
65
200
  language?: string;
66
- /** Translate non-English speech to English */
67
201
  translate?: boolean;
68
- /** Auto-detect spoken language. Overrides 'language' when true. */
69
202
  detectLanguage?: boolean;
70
- /** Number of threads for Whisper inference */
71
203
  nThreads?: number;
72
- /** Sampling temperature. 0.0 = greedy deterministic. */
73
204
  temperature?: number;
74
- /** Temperature increment for fallback retries */
75
205
  temperatureInc?: number;
76
- /** Disable temperature fallback. If true, temperatureInc is ignored. */
77
206
  noFallback?: boolean;
78
- /** Beam search size. -1 uses greedy decoding. >1 enables beam search. */
79
207
  beamSize?: number;
80
- /** Best-of-N sampling candidates for greedy decoding */
81
208
  bestOf?: number;
82
- /** Entropy threshold for decoder fallback */
83
209
  entropyThold?: number;
84
- /** Log probability threshold for decoder fallback */
85
210
  logprobThold?: number;
86
- /** No-speech probability threshold */
87
211
  noSpeechThold?: number;
88
- /** Initial prompt text to condition the decoder */
89
212
  prompt?: string;
90
- /** Don't use previous segment as context for next segment */
91
213
  noContext?: boolean;
92
- /** Suppress blank outputs at the beginning of segments */
93
214
  suppressBlank?: boolean;
94
- /** Suppress non-speech tokens */
95
215
  suppressNst?: boolean;
96
216
  }
97
217
  export interface AlignedSegment {
@@ -102,5 +222,6 @@ export interface AlignedSegment {
102
222
  }
103
223
  export interface TranscriptionResult {
104
224
  segments: AlignedSegment[];
225
+ filteredAudio?: Float32Array;
105
226
  }
106
227
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,16 @@
1
1
  {
2
2
  "name": "pyannote-cpp-node",
3
- "version": "0.6.0",
3
+ "version": "1.0.0",
4
+ "description": "Node.js bindings for whisper.cpp plus the pyannote speaker diarization pipeline",
4
5
  "type": "module",
5
6
  "main": "./dist/index.js",
6
7
  "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
7
14
  "engines": {
8
15
  "node": ">=18"
9
16
  },
@@ -13,18 +20,23 @@
13
20
  "dist/**/*.js.map",
14
21
  "dist/**/*.d.ts.map"
15
22
  ],
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/predict-woo/pyannote-ggml"
26
+ },
16
27
  "publishConfig": {
17
28
  "access": "public"
18
29
  },
30
+ "scripts": {
31
+ "build": "tsc",
32
+ "test": "vitest run"
33
+ },
19
34
  "optionalDependencies": {
20
- "@pyannote-cpp-node/darwin-arm64": "0.6.0",
21
- "@pyannote-cpp-node/darwin-x64": "0.6.0"
35
+ "@pyannote-cpp-node/darwin-arm64": "1.0.0",
36
+ "@pyannote-cpp-node/win32-x64": "1.0.0"
22
37
  },
23
38
  "devDependencies": {
39
+ "@types/node": "^25.4.0",
24
40
  "typescript": "^5.7.0"
25
- },
26
- "scripts": {
27
- "build": "tsc",
28
- "test": "vitest run"
29
41
  }
30
- }
42
+ }
@@ -1,12 +0,0 @@
1
- import { StreamingSession } from './StreamingSession.js';
2
- import type { DiarizationResult, ModelConfig } from './types.js';
3
- export declare class Pyannote {
4
- private native;
5
- private constructor();
6
- static load(config: ModelConfig): Promise<Pyannote>;
7
- diarize(audio: Float32Array): Promise<DiarizationResult>;
8
- createStreamingSession(): StreamingSession;
9
- close(): void;
10
- get isClosed(): boolean;
11
- }
12
- //# sourceMappingURL=Pyannote.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Pyannote.d.ts","sourceRoot":"","sources":["../src/Pyannote.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEjE,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO;WAIM,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAkBnD,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAa9D,sBAAsB,IAAI,gBAAgB;IAQ1C,KAAK,IAAI,IAAI;IAIb,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF"}
package/dist/Pyannote.js DELETED
@@ -1,50 +0,0 @@
1
- import { accessSync } from 'node:fs';
2
- import { getBinding } from './binding.js';
3
- import { StreamingSession } from './StreamingSession.js';
4
- export class Pyannote {
5
- native;
6
- constructor(native) {
7
- this.native = native;
8
- }
9
- static async load(config) {
10
- const paths = [
11
- config.segModelPath,
12
- config.embModelPath,
13
- config.pldaPath,
14
- config.coremlPath,
15
- config.segCoremlPath,
16
- ];
17
- for (const path of paths) {
18
- accessSync(path);
19
- }
20
- const binding = getBinding();
21
- const native = new binding.PyannoteModel(config);
22
- return new Pyannote(native);
23
- }
24
- async diarize(audio) {
25
- if (this.native.isClosed) {
26
- throw new Error('Model is closed');
27
- }
28
- if (!(audio instanceof Float32Array)) {
29
- throw new TypeError('Expected Float32Array');
30
- }
31
- if (audio.length === 0) {
32
- throw new Error('Audio must not be empty');
33
- }
34
- return this.native.diarize(audio);
35
- }
36
- createStreamingSession() {
37
- if (this.native.isClosed) {
38
- throw new Error('Model is closed');
39
- }
40
- const nativeSession = this.native.createStreamingSession();
41
- return new StreamingSession(nativeSession);
42
- }
43
- close() {
44
- this.native.close();
45
- }
46
- get isClosed() {
47
- return this.native.isClosed;
48
- }
49
- }
50
- //# sourceMappingURL=Pyannote.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Pyannote.js","sourceRoot":"","sources":["../src/Pyannote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,UAAU,EAA4B,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,OAAO,QAAQ;IACX,MAAM,CAAsB;IAEpC,YAAoB,MAA2B;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAmB;QACnC,MAAM,KAAK,GAAG;YACZ,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,QAAQ;YACf,MAAM,CAAC,UAAU;YACjB,MAAM,CAAC,aAAa;SACrB,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAmB;QAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,sBAAsB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QAC3D,OAAO,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;CACF"}
@@ -1,12 +0,0 @@
1
- import type { NativeStreamingSession } from './binding.js';
2
- import type { DiarizationResult, VADChunk } from './types.js';
3
- export declare class StreamingSession {
4
- private native;
5
- constructor(native: NativeStreamingSession);
6
- push(audio: Float32Array): Promise<VADChunk[]>;
7
- recluster(): Promise<DiarizationResult>;
8
- finalize(): Promise<DiarizationResult>;
9
- close(): void;
10
- get isClosed(): boolean;
11
- }
12
- //# sourceMappingURL=StreamingSession.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StreamingSession.d.ts","sourceRoot":"","sources":["../src/StreamingSession.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE9D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAyB;gBAE3B,MAAM,EAAE,sBAAsB;IAIpC,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAU9C,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAOvC,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO5C,KAAK,IAAI,IAAI;IAIb,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF"}
@@ -1,34 +0,0 @@
1
- export class StreamingSession {
2
- native;
3
- constructor(native) {
4
- this.native = native;
5
- }
6
- async push(audio) {
7
- if (this.native.isClosed) {
8
- throw new Error('Session is closed');
9
- }
10
- if (!(audio instanceof Float32Array)) {
11
- throw new TypeError('Expected Float32Array');
12
- }
13
- return this.native.push(audio);
14
- }
15
- async recluster() {
16
- if (this.native.isClosed) {
17
- throw new Error('Session is closed');
18
- }
19
- return this.native.recluster();
20
- }
21
- async finalize() {
22
- if (this.native.isClosed) {
23
- throw new Error('Session is closed');
24
- }
25
- return this.native.finalize();
26
- }
27
- close() {
28
- this.native.close();
29
- }
30
- get isClosed() {
31
- return this.native.isClosed;
32
- }
33
- }
34
- //# sourceMappingURL=StreamingSession.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StreamingSession.js","sourceRoot":"","sources":["../src/StreamingSession.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAyB;IAEvC,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAmB;QAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;CACF"}