@beatbax/engine 0.1.0 → 0.2.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.
@@ -35,7 +35,19 @@ export declare class Player {
35
35
  time: number;
36
36
  dur: number;
37
37
  }) => void;
38
+ onComplete?: () => void;
39
+ onRepeat?: () => void;
38
40
  private _repeatTimer;
41
+ private _completionTimer;
42
+ private _completionTimeoutMs;
43
+ private _playbackStartTimestamp;
44
+ private _pauseTimestamp;
45
+ private _isRepeatMode;
46
+ private _currentAST;
47
+ private _isPaused;
48
+ private _debugLog;
49
+ /** Check localStorage for debug flag (browser only) */
50
+ private static isDebugEnabled;
39
51
  constructor(ctx?: any, opts?: {
40
52
  buffered?: boolean;
41
53
  segmentDuration?: number;
@@ -48,6 +60,14 @@ export declare class Player {
48
60
  private tryScheduleRetriggers;
49
61
  private tryScheduleEcho;
50
62
  private tryApplyPan;
63
+ /**
64
+ * Pause playback by suspending the AudioContext
65
+ */
66
+ pause(): Promise<void>;
67
+ /**
68
+ * Resume playback by resuming the AudioContext
69
+ */
70
+ resume(): Promise<void>;
51
71
  stop(): void;
52
72
  toggleChannelMute(chId: number): void;
53
73
  toggleChannelSolo(chId: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"playback.d.ts","sourceRoot":"","sources":["../../src/audio/playback.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,KAAK,GAAG,GAAG,GAAG,CAAC;AACf,OAAO,EAA8B,aAAa,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC5G,OAAO,EAAsC,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9F,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAOrE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MAAM,aAAa,2BAAqB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC;CAChD;AAED,wBAAsB,kBAAkB,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,CAmCrF;AAcD,qBAAa,MAAM;IACjB,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,WAAW,CAA0C;IACtD,KAAK,cAAqB;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC1G,OAAO,CAAC,YAAY,CAAa;gBAErB,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAAO;IAgBvI,OAAO,CAAC,GAAG,EAAE,GAAG;IAkKtB,OAAO,CAAC,aAAa;IAyGrB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,qBAAqB;IAuF7B,OAAO,CAAC,eAAe;IAsHvB,OAAO,CAAC,WAAW;IA2CnB,IAAI;IA+BJ,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAK9B,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAK9B,WAAW,CAAC,IAAI,EAAE,MAAM;CAkBzB;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"playback.d.ts","sourceRoot":"","sources":["../../src/audio/playback.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,KAAK,GAAG,GAAG,GAAG,CAAC;AACf,OAAO,EAA8B,aAAa,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC5G,OAAO,EAAsC,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9F,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAOrE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,eAAO,MAAM,aAAa,2BAAqB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,CAAC;CAChD;AAED,wBAAsB,kBAAkB,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,CAmCrF;AAcD,qBAAa,MAAM;IACjB,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,WAAW,CAA0C;IACtD,KAAK,cAAqB;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnG,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,oBAAoB,CAAa;IACzC,OAAO,CAAC,uBAAuB,CAAa;IAC5C,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAkB;IAEnC,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAAC,cAAc;gBAMjB,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAAO;IAiBvI,OAAO,CAAC,GAAG,EAAE,GAAG;IAgNtB,OAAO,CAAC,aAAa;IAyIrB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,qBAAqB;IAuF7B,OAAO,CAAC,eAAe;IAsHvB,OAAO,CAAC,WAAW;IA2CnB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB5B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAmD7B,IAAI;IA8CJ,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAK9B,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAK9B,WAAW,CAAC,IAAI,EAAE,MAAM;CAkBzB;AAED,eAAe,MAAM,CAAC"}
@@ -64,7 +64,24 @@ export class Player {
64
64
  muted = new Set();
65
65
  solo = null;
66
66
  onSchedule;
67
+ onComplete;
68
+ onRepeat;
67
69
  _repeatTimer = null;
70
+ _completionTimer = null;
71
+ _completionTimeoutMs = 0; // Total timeout duration
72
+ _playbackStartTimestamp = 0; // When playback started
73
+ _pauseTimestamp = 0; // When pause() was called
74
+ _isRepeatMode = false; // Whether song is in repeat mode
75
+ _currentAST = null; // Current AST for repeat playback
76
+ _isPaused = false; // Whether playback is currently paused
77
+ _debugLog = false; // Whether to log playback events (controlled by localStorage)
78
+ /** Check localStorage for debug flag (browser only) */
79
+ static isDebugEnabled() {
80
+ if (typeof localStorage === 'undefined')
81
+ return false;
82
+ return localStorage.getItem('beatbax-debug') === 'true' ||
83
+ localStorage.getItem('beatbax-debug-playback') === 'true';
84
+ }
68
85
  constructor(ctx, opts = {}) {
69
86
  if (!ctx) {
70
87
  const Ctor = (typeof window !== 'undefined' && window.AudioContext) ? window.AudioContext : globalThis.AudioContext;
@@ -77,11 +94,15 @@ export class Player {
77
94
  this.ctx = ctx;
78
95
  }
79
96
  this.scheduler = createScheduler(this.ctx);
97
+ this._debugLog = Player.isDebugEnabled(); // Initialize debug flag from localStorage
80
98
  if (opts.buffered) {
81
99
  this._buffered = new BufferedRenderer(this.ctx, this.scheduler, { segmentDuration: opts.segmentDuration, lookahead: opts.bufferedLookahead, maxPreRenderSegments: opts.maxPreRenderSegments });
82
100
  }
83
101
  }
84
102
  async playAST(ast) {
103
+ // Store AST for repeat functionality
104
+ this._currentAST = ast;
105
+ this._isPaused = false; // Reset paused state
85
106
  try {
86
107
  if (this.ctx && typeof this.ctx.resume === 'function') {
87
108
  try {
@@ -226,36 +247,70 @@ export class Player {
226
247
  }
227
248
  // start the scheduler to begin firing scheduled events
228
249
  this.scheduler.start();
229
- // debug: show estimated global duration for repeat scheduling
230
- try {
231
- console.debug('[player] estimated globalDurationSec=', globalDurationSec);
232
- }
233
- catch (e) { }
234
250
  // If AST requests repeat/looping, schedule a restart when playback ends
235
251
  try {
236
252
  if (ast.play?.repeat) {
253
+ this._isRepeatMode = true;
237
254
  const delayMs = Math.max(10, Math.round(globalDurationSec * 1000) + 50);
238
- try {
239
- console.debug('[player] scheduling repeat in ms=', delayMs);
240
- }
241
- catch (e) { }
242
255
  if (this._repeatTimer)
243
256
  clearTimeout(this._repeatTimer);
257
+ this._completionTimeoutMs = delayMs; // Store for pause/resume
258
+ this._playbackStartTimestamp = Date.now(); // Track when playback started
259
+ this._pauseTimestamp = 0; // Reset pause tracking
244
260
  this._repeatTimer = setTimeout(() => {
245
261
  try {
246
- try {
247
- console.debug('[player] repeat timer fired - restarting playback');
262
+ // Don't execute if paused
263
+ if (this._isPaused) {
264
+ console.log('[Player] Repeat timer fired but playback is paused - ignoring');
265
+ return;
266
+ }
267
+ // Notify UI that playback is repeating
268
+ if (this.onRepeat) {
269
+ this.onRepeat();
248
270
  }
249
- catch (e) { }
250
271
  this.stop();
251
272
  // replay AST (fire-and-forget)
252
- this.playAST(ast).catch((e) => { error('player', 'Repeat playback failed: ' + (e && e.message ? e.message : String(e))); });
273
+ this.playAST(ast).catch((e) => {
274
+ console.error('[Player] Repeat playback failed:', e);
275
+ error('player', 'Repeat playback failed: ' + (e && e.message ? e.message : String(e)));
276
+ });
277
+ }
278
+ catch (e) {
279
+ console.error('[Player] Exception in repeat timer:', e);
253
280
  }
254
- catch (e) { }
255
281
  }, delayMs);
256
282
  }
283
+ else {
284
+ this._isRepeatMode = false;
285
+ // No repeat - schedule automatic stop when playback completes
286
+ const completionMs = Math.max(10, Math.round(globalDurationSec * 1000) + 100);
287
+ if (this._completionTimer)
288
+ clearTimeout(this._completionTimer);
289
+ this._completionTimeoutMs = completionMs; // Store for pause/resume
290
+ this._playbackStartTimestamp = Date.now(); // Track when playback started
291
+ this._pauseTimestamp = 0; // Reset pause tracking
292
+ this._completionTimer = setTimeout(() => {
293
+ try {
294
+ // Don't execute if paused
295
+ if (this._isPaused) {
296
+ console.log('[Player] Completion timer fired but playback is paused - ignoring');
297
+ return;
298
+ }
299
+ this.stop();
300
+ // Notify UI that playback has completed
301
+ if (this.onComplete) {
302
+ this.onComplete();
303
+ }
304
+ }
305
+ catch (e) {
306
+ console.error('[Player] Exception in completion timer:', e);
307
+ }
308
+ }, completionMs);
309
+ }
310
+ }
311
+ catch (e) {
312
+ console.error('[Player] Exception setting up repeat:', e);
257
313
  }
258
- catch (e) { }
259
314
  }
260
315
  scheduleToken(chId, inst, instsMap, token, time, dur, tickSeconds) {
261
316
  if (token === '.')
@@ -270,10 +325,17 @@ export class Player {
270
325
  }
271
326
  catch (e) { }
272
327
  this.scheduler.schedule(time, () => {
273
- if (this.solo !== null && this.solo !== chId)
328
+ // Check mute/solo state at PLAYBACK time (dynamic check)
329
+ if (this.solo !== null && this.solo !== chId) {
330
+ console.log(`[Player] Skipping ch${chId} (soloed: ch${this.solo})`);
274
331
  return;
275
- if (this.muted.has(chId))
332
+ }
333
+ if (this.muted.has(chId)) {
334
+ console.log(`[Player] Skipping ch${chId} (muted)`);
276
335
  return;
336
+ }
337
+ if (this._debugLog)
338
+ console.log(`[Player] \u266a Playing ch${chId} noise (named inst) at ${time.toFixed(2)}s`);
277
339
  const nodes = playNoise(this.ctx, time, dur, alt, this.scheduler, this.masterGain || undefined);
278
340
  for (const n of nodes)
279
341
  this.activeNodes.push({ node: n, chId });
@@ -312,10 +374,17 @@ export class Player {
312
374
  else {
313
375
  const capturedInst = inst;
314
376
  this.scheduler.schedule(time, () => {
315
- if (this.solo !== null && this.solo !== chId)
377
+ // Check mute/solo state at PLAYBACK time (dynamic check)
378
+ if (this.solo !== null && this.solo !== chId) {
379
+ console.log(`[Player] \u274c Skipping ch${chId} pulse (solo=${this.solo})`);
316
380
  return;
317
- if (this.muted.has(chId))
381
+ }
382
+ if (this.muted.has(chId)) {
383
+ console.log(`[Player] \u274c Skipping ch${chId} pulse (muted)`);
318
384
  return;
385
+ }
386
+ if (this._debugLog)
387
+ console.log(`[Player] \u266a Playing ch${chId} pulse at ${time.toFixed(2)}s`);
319
388
  const nodes = playPulse(this.ctx, freq, duty, time, dur, capturedInst, this.scheduler, this.masterGain || undefined);
320
389
  // apply inline token.effects first (e.g. C4<pan:-1>) then fallback to inline pan/inst pan
321
390
  this.tryApplyEffects(this.ctx, nodes, token && token.effects ? token.effects : [], time, dur, chId, tickSeconds, capturedInst);
@@ -337,10 +406,17 @@ export class Player {
337
406
  else {
338
407
  const capturedInst = inst;
339
408
  this.scheduler.schedule(time, () => {
340
- if (this.solo !== null && this.solo !== chId)
409
+ // Check mute/solo state at PLAYBACK time (dynamic check)
410
+ if (this.solo !== null && this.solo !== chId) {
411
+ console.log(`[Player] Skipping ch${chId} wave (soloed: ch${this.solo})`);
341
412
  return;
342
- if (this.muted.has(chId))
413
+ }
414
+ if (this.muted.has(chId)) {
415
+ console.log(`[Player] Skipping ch${chId} wave (muted)`);
343
416
  return;
417
+ }
418
+ if (this._debugLog)
419
+ console.log(`[Player] \u266a Playing ch${chId} wave at ${time.toFixed(2)}s`);
344
420
  const nodes = playWavetable(this.ctx, freq, wav, time, dur, capturedInst, this.scheduler, this.masterGain || undefined);
345
421
  this.tryApplyEffects(this.ctx, nodes, token && token.effects ? token.effects : [], time, dur, chId, tickSeconds, capturedInst);
346
422
  // Apply panning first, before echo/retrigger, so panner is inserted before echo routing
@@ -359,10 +435,17 @@ export class Player {
359
435
  }
360
436
  else {
361
437
  this.scheduler.schedule(time, () => {
362
- if (this.solo !== null && this.solo !== chId)
438
+ // Check mute/solo state at PLAYBACK time (dynamic check)
439
+ if (this.solo !== null && this.solo !== chId) {
440
+ console.log(`[Player] Skipping ch${chId} noise (soloed: ch${this.solo})`);
363
441
  return;
364
- if (this.muted.has(chId))
442
+ }
443
+ if (this.muted.has(chId)) {
444
+ console.log(`[Player] Skipping ch${chId} noise (muted)`);
365
445
  return;
446
+ }
447
+ if (this._debugLog)
448
+ console.log(`[Player] \u266a Playing ch${chId} noise at ${time.toFixed(2)}s`);
366
449
  const nodes = playNoise(this.ctx, time, dur, inst, this.scheduler, this.masterGain || undefined);
367
450
  this.tryApplyEffects(this.ctx, nodes, token && token.effects ? token.effects : [], time, dur, chId, tickSeconds);
368
451
  // Apply panning first, before echo/retrigger, so panner is inserted before echo routing
@@ -697,7 +780,82 @@ export class Player {
697
780
  // swallow errors — panning is best-effort
698
781
  }
699
782
  }
783
+ /**
784
+ * Pause playback by suspending the AudioContext
785
+ */
786
+ async pause() {
787
+ // Set paused flag FIRST to prevent any timer callbacks from executing
788
+ this._isPaused = true;
789
+ // Clear both completion and repeat timers, track when we paused
790
+ if (this._completionTimer) {
791
+ clearTimeout(this._completionTimer);
792
+ this._completionTimer = null;
793
+ this._pauseTimestamp = Date.now();
794
+ }
795
+ if (this._repeatTimer) {
796
+ clearTimeout(this._repeatTimer);
797
+ this._repeatTimer = null;
798
+ this._pauseTimestamp = Date.now();
799
+ }
800
+ if (this.ctx && typeof this.ctx.suspend === 'function' && this.ctx.state === 'running') {
801
+ await this.ctx.suspend();
802
+ }
803
+ }
804
+ /**
805
+ * Resume playback by resuming the AudioContext
806
+ */
807
+ async resume() {
808
+ // Clear paused flag FIRST
809
+ this._isPaused = false;
810
+ // Restart the appropriate timer (repeat or completion) with remaining time
811
+ if (this._pauseTimestamp > 0 && this._completionTimeoutMs > 0 && this._playbackStartTimestamp > 0) {
812
+ const elapsedBeforePause = this._pauseTimestamp - this._playbackStartTimestamp;
813
+ const remainingMs = Math.max(0, this._completionTimeoutMs - elapsedBeforePause);
814
+ // Update start timestamp to account for pause duration
815
+ this._playbackStartTimestamp = Date.now() - elapsedBeforePause;
816
+ this._pauseTimestamp = 0;
817
+ if (this._isRepeatMode) {
818
+ // Restart repeat timer
819
+ this._repeatTimer = setTimeout(() => {
820
+ try {
821
+ if (this.onRepeat) {
822
+ this.onRepeat();
823
+ }
824
+ this.stop();
825
+ // Replay the stored AST
826
+ if (this._currentAST) {
827
+ this.playAST(this._currentAST).catch((e) => {
828
+ console.error('[Player] Repeat playback failed after resume:', e);
829
+ });
830
+ }
831
+ }
832
+ catch (e) {
833
+ console.error('[Player] Exception in repeat timer:', e);
834
+ }
835
+ }, remainingMs);
836
+ }
837
+ else {
838
+ // Restart completion timer
839
+ this._completionTimer = setTimeout(() => {
840
+ try {
841
+ this.stop();
842
+ if (this.onComplete) {
843
+ this.onComplete();
844
+ }
845
+ }
846
+ catch (e) {
847
+ console.error('[Player] Exception in completion timer:', e);
848
+ }
849
+ }, remainingMs);
850
+ }
851
+ }
852
+ if (this.ctx && typeof this.ctx.resume === 'function' && this.ctx.state === 'suspended') {
853
+ await this.ctx.resume();
854
+ }
855
+ }
700
856
  stop() {
857
+ // Clear paused flag
858
+ this._isPaused = false;
701
859
  if (this._repeatTimer) {
702
860
  try {
703
861
  clearTimeout(this._repeatTimer);
@@ -705,6 +863,19 @@ export class Player {
705
863
  catch (e) { }
706
864
  this._repeatTimer = null;
707
865
  }
866
+ if (this._completionTimer) {
867
+ try {
868
+ clearTimeout(this._completionTimer);
869
+ }
870
+ catch (e) { }
871
+ this._completionTimer = null;
872
+ }
873
+ // Reset pause/resume tracking
874
+ this._completionTimeoutMs = 0;
875
+ this._playbackStartTimestamp = 0;
876
+ this._pauseTimestamp = 0;
877
+ this._isRepeatMode = false;
878
+ this._currentAST = null;
708
879
  if (this.scheduler) {
709
880
  this.scheduler.clear();
710
881
  this.scheduler.stop();
@@ -1 +1 @@
1
- {"version":3,"file":"playback.js","sourceRoot":"","sources":["../../src/audio/playback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"playback.js","sourceRoot":"","sources":["../../src/audio/playback.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC5G,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,GAAG,IAAI,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,MAAM,CAAC,MAAM,aAAa,GAAG,kBAAkB,CAAC;AAchD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA4B,EAAE;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC;IAEvC,yCAAyC;IACzC,IAAI,OAAO,KAAK,eAAe,IAAI,OAAO,MAAM,KAAK,WAAW,IAAK,UAAkB,CAAC,YAAY,EAAE,CAAC;QACrG,MAAM,IAAI,GAAI,UAAkB,CAAC,YAAY,IAAK,UAAkB,CAAC,kBAAkB,CAAC;QACxF,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,uBAAuB,GAAI,UAAkB,CAAC,mBAAmB,IAAK,UAAkB,CAAC,yBAAyB,CAAC;YACzH,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;YAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;YAC9D,OAAO,IAAI,uBAAuB,CAAC,CAAC,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;YACvD,MAAM,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,GAAG,CAAC;YAClD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC;gBAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC;gBAC9D,OAAO,IAAI,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/F,CAAC;YACD,OAAO,IAAI,YAAY,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,kEAAkE,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YACtG,CAAC;YACD,2DAA2D;QAC7D,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iDAAiD,OAAO,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,SAAS,CAAC,GAAQ,EAAE,IAAY,EAAE,IAAY,EAAE,KAAa,EAAE,GAAW,EAAE,IAAS,EAAE,SAAe,EAAE,WAAuB;IACtI,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,aAAa,CAAC,GAAQ,EAAE,IAAY,EAAE,KAAe,EAAE,KAAa,EAAE,GAAW,EAAE,IAAS,EAAE,SAAe,EAAE,WAAuB;IAC7I,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,SAAS,CAAC,GAAQ,EAAE,KAAa,EAAE,GAAW,EAAE,IAAS,EAAE,SAAe,EAAE,WAAuB;IAC1G,OAAO,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,OAAO,MAAM;IACT,GAAG,CAAe;IAClB,SAAS,CAAgB;IACzB,UAAU,GAAG,GAAG,CAAC;IACjB,UAAU,GAAoB,IAAI,CAAC;IACnC,WAAW,GAAuC,EAAE,CAAC;IACtD,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1B,IAAI,GAAkB,IAAI,CAAC;IAC3B,UAAU,CAAyF;IACnG,UAAU,CAAc;IACxB,QAAQ,CAAc;IACrB,YAAY,GAAQ,IAAI,CAAC;IACzB,gBAAgB,GAAQ,IAAI,CAAC;IAC7B,oBAAoB,GAAW,CAAC,CAAC,CAAC,yBAAyB;IAC3D,uBAAuB,GAAW,CAAC,CAAC,CAAC,wBAAwB;IAC7D,eAAe,GAAW,CAAC,CAAC,CAAC,0BAA0B;IACvD,aAAa,GAAY,KAAK,CAAC,CAAC,iCAAiC;IACjE,WAAW,GAAQ,IAAI,CAAC,CAAC,kCAAkC;IAC3D,SAAS,GAAY,KAAK,CAAC,CAAC,uCAAuC;IACnE,SAAS,GAAY,KAAK,CAAC,CAAC,8DAA8D;IAElG,uDAAuD;IAC/C,MAAM,CAAC,cAAc;QAC3B,IAAI,OAAO,YAAY,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QACtD,OAAO,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,MAAM;YAChD,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,MAAM,CAAC;IACnE,CAAC;IAED,YAAY,GAAS,EAAE,OAAoH,EAAE;QAC3I,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAE,MAAc,CAAC,YAAY,CAAC,CAAC,CAAE,UAAkB,CAAC,YAAY,CAAC;YAC/I,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,kIAAkI,CAAC,CAAC;YACtJ,CAAC;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAkB,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,0CAA0C;QACpF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,IAAY,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAgB,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACjN,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAQ;QACpB,qCAAqC;QACrC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,qBAAqB;QAE7C,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,GAAG,IAAI,OAAQ,IAAI,CAAC,GAAW,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC/D,IAAI,CAAC;oBACH,MAAM,EAAE,GAAI,IAAI,CAAC,GAAW,CAAC,KAAK,CAAC;oBACnC,IAAI,EAAE,KAAK,WAAW;wBAAE,MAAO,IAAI,CAAC,GAAW,CAAC,MAAM,EAAE,CAAC;gBAC3D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAEd,6CAA6C;QAC7C,IAAI,CAAC;YAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAEjC,oCAAoC;QACpC,iEAAiE;QACjE,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAExE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,6CAA6C,CAAC,CAAC;QAC1F,CAAC;QAED,oFAAoF;QACpF,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAE1B,oFAAoF;QACpF,8FAA8F;QAC9F,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,CAAC,OAAQ,UAAkB,CAAC,eAAe,KAAK,UAAU,CAAC;YAChF,CAAC,CAAE,UAAkB,CAAC,eAAe,CAAC,SAAS,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAE1C,yFAAyF;QACxF,IAAI,CAAC,GAAW,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;QAEpD,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,cAAc,CAAC;YAChC,IAAI,WAAW,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAU,KAAK,CAAC,OAAO,CAAE,EAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,EAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACxH,IAAI,QAAQ,GAAQ,IAAI,CAAC;YACzB,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,IAAI,GAAW,CAAC;YAChB,IAAI,OAAQ,EAAU,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ;gBAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAI,EAAU,CAAC,KAAK,CAAC;;gBAC9G,GAAG,GAAG,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;YAC5E,MAAM,cAAc,GAAG,EAAE,GAAG,GAAG,CAAC;YAChC,MAAM,WAAW,GAAG,cAAc,GAAG,CAAC,CAAC;YAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;YAC7C,kEAAkE;YAClE,IAAI,yBAAyB,GAAG,CAAC,CAAC;YAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,WAAW,CAAC;gBAEtC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBACrD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;wBACtD,4CAA4C;oBAC9C,CAAC;yBAAM,CAAC;wBACN,IAAI,YAAY,GAAG,CAAC,CAAC;wBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;4BAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;4BACvB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gCAAE,YAAY,EAAE,CAAC;iCAC3E,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;gCAAE,YAAY,EAAE,CAAC;;gCACjD,MAAM;wBACb,CAAC;wBACD,MAAM,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;wBAE7C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;4BAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;4BACxE,+DAA+D;4BAC/D,0DAA0D;4BAC1D,MAAM,OAAO,GAAG,SAAS,IAAI,SAAS,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;4BACtG,MAAM,WAAW,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gCACjD,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC;gCACnC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;4BACtB,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;wBACnF,CAAC;6BAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BACjC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;4BAC9F,4EAA4E;4BAC5E,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;4BAC3E,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gCACtB,aAAa,IAAI,CAAC,CAAC;gCACnB,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;oCAAC,QAAQ,GAAG,IAAI,CAAC;oCAAC,aAAa,GAAG,CAAC,CAAC;gCAAC,CAAC;4BACjE,CAAC;wBACH,CAAC;wBACD,yBAAyB,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;oBAC3E,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG;oBAAE,SAAS;gBAE7C,MAAM,WAAW,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAClG,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC5B,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;oBAChC,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;wBACtB,QAAQ,GAAG,QAAQ,CAAC;wBACpB,aAAa,GAAG,KAAK,CAAC;oBACxB,CAAC;yBAAM,IAAI,QAAQ,EAAE,CAAC;wBACpB,WAAW,GAAG,QAAQ,CAAC;oBACzB,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,MAAM,OAAO,GAAG,aAAa,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;gBAEvE,mDAAmD;gBACnD,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;wBAAE,YAAY,EAAE,CAAC;yBAC3E,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;wBAAE,YAAY,EAAE,CAAC;;wBACjD,MAAM;gBACb,CAAC;gBACD,MAAM,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;gBAE7C,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;gBACzE,yBAAyB,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;gBAEzE,IAAI,aAAa,GAAG,CAAC,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;oBACvC,aAAa,IAAI,CAAC,CAAC;oBACnB,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;wBAAC,QAAQ,GAAG,IAAI,CAAC;wBAAC,aAAa,GAAG,CAAC,CAAC;oBAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAED,+EAA+E;YAC/E,MAAM,eAAe,GAAG,yBAAyB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;YACnJ,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QACnE,CAAC;QAED,uDAAuD;QACvD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAEvB,wEAAwE;QACxE,IAAI,CAAC;YACH,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACxE,IAAI,IAAI,CAAC,YAAY;oBAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACvD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAC,yBAAyB;gBAC9D,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,8BAA8B;gBACzE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,uBAAuB;gBACjD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;oBAClC,IAAI,CAAC;wBACH,0BAA0B;wBAC1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;4BACnB,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;4BAC7E,OAAO;wBACT,CAAC;wBAED,uCAAuC;wBACvC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAClB,CAAC;wBAED,IAAI,CAAC,IAAI,EAAE,CAAC;wBACZ,+BAA+B;wBAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;4BACjC,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;4BACrD,KAAK,CAAC,QAAQ,EAAE,0BAA0B,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACzF,CAAC,CAAC,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC,EAAE,OAAO,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,8DAA8D;gBAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC9E,IAAI,IAAI,CAAC,gBAAgB;oBAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC/D,IAAI,CAAC,oBAAoB,GAAG,YAAY,CAAC,CAAC,yBAAyB;gBACnE,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,8BAA8B;gBACzE,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,uBAAuB;gBACjD,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtC,IAAI,CAAC;wBACH,0BAA0B;wBAC1B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;4BACnB,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;4BACjF,OAAO;wBACT,CAAC;wBAED,IAAI,CAAC,IAAI,EAAE,CAAC;wBACZ,wCAAwC;wBACxC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;4BACpB,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC,EAAE,YAAY,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,IAAS,EAAE,QAA6B,EAAE,KAAU,EAAE,IAAY,EAAE,GAAW,EAAE,WAAoB;QACvI,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO;QAC1B,IAAI,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjE,IAAI,CAAC;oBAAC,IAAI,OAAQ,IAAY,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;wBAAE,IAAY,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;oBAAC,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBAC7I,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;oBACjC,yDAAyD;oBACzD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;wBAC7C,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,eAAe,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;wBACpE,OAAO;oBACT,CAAC;oBACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;wBACzB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,UAAU,CAAC,CAAC;wBACnD,OAAO;oBACT,CAAC;oBACD,IAAI,IAAI,CAAC,SAAS;wBAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,0BAA0B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC/G,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;oBAChG,KAAK,MAAM,CAAC,IAAI,KAAK;wBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YACD,IAAI,GAAG,GAAG,CAAC;QACb,CAAC;QACD,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC;YAAC,IAAI,OAAQ,IAAY,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBAAE,IAAY,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YAAC,CAAC;QAAC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAExI,gGAAgG;QAChG,IAAI,QAAQ,GAAW,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrG,kFAAkF;QAClF,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAExI,MAAM,CAAC,GAAG,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,IAAI,IAAI,CAAC;QAC7F,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1C,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO;YAC1B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3D,MAAM,QAAQ,GAAI,IAAY,CAAC,SAAgB,CAAC;gBAChD,IAAI,QAAQ,EAAE,CAAC;oBACb,wFAAwF;oBACxF,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,YAAY,GAAG,IAAI,CAAC;oBAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;wBACjC,yDAAyD;wBACzD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;4BAC7C,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,gBAAgB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;4BAC5E,OAAO;wBACT,CAAC;wBACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;4BACzB,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,gBAAgB,CAAC,CAAC;4BAChE,OAAO;wBACT,CAAC;wBACD,IAAI,IAAI,CAAC,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,aAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAClG,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;wBACrH,0FAA0F;wBAC1F,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;wBAC/H,wFAAwF;wBACxF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;wBAC1C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBAC5B,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;wBACxF,KAAK,MAAM,CAAC,IAAI,KAAK;4BAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClE,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjE,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,MAAM,QAAQ,GAAI,IAAY,CAAC,SAAgB,CAAC;gBAChD,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBACtE,CAAC;qBAAM,CAAC;oBACN,MAAM,YAAY,GAAG,IAAI,CAAC;oBAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;wBACjC,yDAAyD;wBACzD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;4BAC7C,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,oBAAoB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;4BACzE,OAAO;wBACT,CAAC;wBACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;4BACzB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,eAAe,CAAC,CAAC;4BACxD,OAAO;wBACT,CAAC;wBACD,IAAI,IAAI,CAAC,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACjG,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;wBACxH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;wBAC/H,wFAAwF;wBACxF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;wBAC1C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBAC5B,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;wBACxF,KAAK,MAAM,CAAC,IAAI,KAAK;4BAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClE,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClE,MAAM,QAAQ,GAAI,IAAY,CAAC,SAAgB,CAAC;gBAChD,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;wBACjC,yDAAyD;wBACzD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;4BAC7C,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,qBAAqB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;4BAC1E,OAAO;wBACT,CAAC;wBACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;4BACzB,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,gBAAgB,CAAC,CAAC;4BACzD,OAAO;wBACT,CAAC;wBACD,IAAI,IAAI,CAAC,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,aAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAClG,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;wBACjG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;wBACjH,wFAAwF;wBACxF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;wBAC1C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBAC5B,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;wBAC7E,KAAK,MAAM,CAAC,IAAI,KAAK;4BAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;oBAClE,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;oBACjC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;wBAAE,OAAO;oBACrD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,OAAO;oBACjC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;oBACjG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC1C,KAAK,MAAM,CAAC,IAAI,KAAK;wBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,iFAAiF;IACjF,gFAAgF;IAChF,4DAA4D;IACpD,eAAe,CAAC,GAAQ,EAAE,KAAY,EAAE,UAAiB,EAAE,KAAa,EAAE,GAAW,EAAE,IAAa,EAAE,WAAoB,EAAE,IAAU;QAC5I,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAClE,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1C,6EAA6E;gBAC7E,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACzE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC;oBAC1B,MAAM,GAAG,KAAK,CAAC;gBACjB,CAAC;gBACD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC;wBAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;oBAAC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBACxF,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAChB,CAAC;IACH,CAAC;IAGD,kFAAkF;IAClF,yFAAyF;IACzF,yEAAyE;IACzE,0DAA0D;IAC1D,4BAA4B;IAE5B,8DAA8D;IAC9D,qFAAqF;IAC7E,qBAAqB,CAAC,KAAY,EAAE,IAAY,EAAE,IAAS,EAAE,IAAY,EAAE,KAAU,EAAE,WAAoB,EAAE,MAAY;QAC/H,MAAM,UAAU,GAAI,KAAa,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC;QACvE,MAAM,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC;QAE5C,8CAA8C;QAC9C,IAAI,UAAU,GAAG,KAAK,GAAG,WAAW,CAAC;QACrC,IAAI,aAAa,GAAG,GAAG,CAAC;QAExB,OAAO,UAAU,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC;YAChC,+CAA+C;YAC/C,yFAAyF;YACzF,0EAA0E;YAC1E,8EAA8E;YAC9E,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;gBACtB,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/E,CAAC;YAED,2DAA2D;YAC3D,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAC/B,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;oBAChG,UAAU,CAAC,GAAG,GAAG,GAAG,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChE,CAAC;YACH,CAAC;YAED,+CAA+C;YAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC;YAClE,MAAM,YAAY,GAAG,UAAU,CAAC;YAChC,MAAM,YAAY,GAAG,UAAU,CAAC;YAChC,MAAM,aAAa,GAAG,KAAK,CAAC;YAE5B,gCAAgC;YAChC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;oBACzC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;wBAAE,OAAO;oBACrD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,OAAO;oBACjC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;oBACzI,oEAAoE;oBACpE,MAAM,oBAAoB,GAAG,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE;wBACpH,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5C,OAAO,MAAM,KAAK,QAAQ,CAAC;oBAC7B,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;oBAC5H,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;oBAChD,KAAK,MAAM,CAAC,IAAI,WAAW;wBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjE,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;oBACzC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;wBAAE,OAAO;oBACrD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,OAAO;oBACjC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;oBAC5I,MAAM,oBAAoB,GAAG,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE;wBACpH,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5C,OAAO,MAAM,KAAK,QAAQ,CAAC;oBAC7B,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;oBAC5H,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;oBAChD,KAAK,MAAM,CAAC,IAAI,WAAW;wBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;oBACzC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;wBAAE,OAAO;oBACrD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;wBAAE,OAAO;oBACjC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;oBAC7H,MAAM,oBAAoB,GAAG,CAAC,aAAa,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE;wBACpH,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5C,OAAO,MAAM,KAAK,QAAQ,CAAC;oBAC7B,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;oBAC5H,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;oBAChD,KAAK,MAAM,CAAC,IAAI,WAAW;wBAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxE,CAAC,CAAC,CAAC;YACL,CAAC;YAED,UAAU,IAAI,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,wFAAwF;IAChF,eAAe,CAAC,KAAY;QAClC,MAAM,QAAQ,GAAI,KAAa,CAAC,MAAM,CAAC;QACvC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC;QAE1D,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAAE,OAAO;YAE3C,4BAA4B;YAC5B,MAAM,SAAS,GAAI,IAAI,CAAC,GAAW,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9E,MAAM,YAAY,GAAI,IAAI,CAAC,GAAW,CAAC,UAAU,EAAE,CAAC;YACpD,MAAM,OAAO,GAAI,IAAI,CAAC,GAAW,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAI,IAAI,CAAC,GAAW,CAAC,UAAU,EAAE,CAAC;YAE/C,iBAAiB;YACjB,iEAAiE;YACjE,MAAM,QAAQ,GAAG,GAAG,CAAC;YACrB,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC;YAEzB,IAAI,CAAC;gBACH,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACrD,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;gBACtC,YAAY,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YAChC,CAAC;YAED,qDAAqD;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,IAAK,IAAI,CAAC,GAAW,CAAC,WAAW,CAAC;YAErE,2EAA2E;YAC3E,IAAI,CAAC;gBACH,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,yCAAyC;YAC3C,CAAC;YAED,0DAA0D;YAC1D,+CAA+C;YAC/C,4DAA4D;YAC5D,mEAAmE;YAEnE,mBAAmB;YACnB,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAE7B,yBAAyB;YACzB,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE5B,sEAAsE;YACtE,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAChC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEhC,sDAAsD;YACtD,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAE7B,0CAA0C;YAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAEnD,oDAAoD;YACpD,4DAA4D;YAC5D,+DAA+D;YAC/D,wEAAwE;YACxE,IAAI,YAAoB,CAAC;YACzB,IAAI,QAAQ,GAAG,KAAK,EAAE,CAAC;gBACrB,8DAA8D;gBAC9D,YAAY,GAAG,SAAS,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC7B,yDAAyD;gBACzD,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,iDAAiD;gBACjD,qDAAqD;gBACrD,MAAM,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;gBACxE,2EAA2E;gBAC3E,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,WAAW,GAAG,KAAK,GAAG,GAAG,GAAG,YAAY,CAAC;YAE/C,wEAAwE;YACxE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,GAAG,GAAG,EAAE,GAAG,EAAE;gBAC9C,IAAI,CAAC;oBACH,mDAAmD;oBACnD,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAG,IAAI,CAAC,GAAW,CAAC,WAAW,CAAC,CAAC;oBAC1E,YAAY,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAG,IAAI,CAAC,GAAW,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC;gBACpF,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,kDAAkD;gBACpD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,uDAAuD;YACvD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;gBACxC,IAAI,CAAC;oBACH,SAAS,CAAC,UAAU,EAAE,CAAC;oBACvB,YAAY,CAAC,UAAU,EAAE,CAAC;oBAC1B,OAAO,CAAC,UAAU,EAAE,CAAC;oBACrB,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,+BAA+B;gBACjC,CAAC;YACH,CAAC,CAAC,CAAC;QAEL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,qCAAqC;QACvC,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAQ,EAAE,KAAY,EAAE,OAAY;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,GAAG,SAA+B,CAAC;QACxC,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;aACnE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG;gBAAE,CAAC,GAAG,CAAC,CAAC,CAAC;iBACjB,IAAI,CAAC,KAAK,GAAG;gBAAE,CAAC,GAAG,CAAC,CAAC;iBACrB,IAAI,CAAC,KAAK,GAAG;gBAAE,CAAC,GAAG,CAAC,CAAC;iBACrB,CAAC;gBAAC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;QAC7F,CAAC;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;gBAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACjF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtB,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAAC,IAAI,CAAC,KAAK,GAAG;oBAAE,CAAC,GAAG,CAAC,CAAC,CAAC;qBAAM,IAAI,CAAC,KAAK,GAAG;oBAAE,CAAC,GAAG,CAAC,CAAC;;oBAAM,CAAC,GAAG,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO;QAE5B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU;gBAAE,OAAO;YACxD,wFAAwF;YACxF,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAK,GAAW,CAAC,WAAW,CAAC;YACzD,uCAAuC;YACvC,MAAM,YAAY,GAAI,GAAW,CAAC,kBAAkB,CAAC;YACrD,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAI,GAAW,CAAC,kBAAkB,EAAE,CAAC;gBACjD,IAAI,CAAC;oBAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,EAAG,GAAW,CAAC,WAAW,CAAC,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBAAC,IAAI,CAAC;wBAAE,MAAc,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;oBAAC,CAAC;oBAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC;gBAAC,CAAC;gBAClI,uFAAuF;gBACvF,IAAI,CAAC;oBAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrB,4DAA4D;gBAC5D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,gGAAgG;gBAChG,sEAAsE;YACxE,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,0CAA0C;QAC5C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,sEAAsE;QACtE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,gEAAgE;QAChE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACvF,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,0BAA0B;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,2EAA2E;QAC3E,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,IAAI,CAAC,uBAAuB,GAAG,CAAC,EAAE,CAAC;YAClG,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC;YAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,oBAAoB,GAAG,kBAAkB,CAAC,CAAC;YAEhF,uDAAuD;YACvD,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC;YAC/D,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;YAEzB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,uBAAuB;gBACvB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;oBAClC,IAAI,CAAC;wBACH,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;4BAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAClB,CAAC;wBACD,IAAI,CAAC,IAAI,EAAE,CAAC;wBACZ,wBAAwB;wBACxB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;4BACrB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE;gCAC9C,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,CAAC,CAAC,CAAC;4BACpE,CAAC,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC,EAAE,WAAW,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,2BAA2B;gBAC3B,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtC,IAAI,CAAC;wBACH,IAAI,CAAC,IAAI,EAAE,CAAC;wBACZ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;4BACpB,IAAI,CAAC,UAAU,EAAE,CAAC;wBACpB,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAC;oBAC9D,CAAC;gBACH,CAAC,EAAE,WAAW,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACxF,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI;QACF,oBAAoB;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC;gBAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC;gBAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YACzD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QAED,2DAA2D;QAC3D,gBAAgB,EAAE,CAAC;QAEnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC;gBAAC,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAChG,IAAI,CAAC;gBAAC,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU;oBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;QAC9G,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAI,IAAY,CAAC,SAAgB,CAAC;YAChD,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;gBACnE,MAAM,KAAK,GAAG,QAAQ,CAAC,mBAAmB,EAAE,CAAC;gBAC7C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC;wBAAC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU;4BAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAAC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;oBACjF,IAAI,CAAC;wBAAC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,UAAU;4BAAE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;oBAAC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;oBAC7F,IAAI,CAAC;wBAAC,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU;4BAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAAC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBAClG,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;YAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,IAAY;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;YACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,MAAM,IAAI,GAAuC,EAAE,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC;oBAAC,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;wBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;gBAChG,IAAI,CAAC;oBAAC,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU;wBAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAAC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAC9G,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAI,IAAY,CAAC,SAAgB,CAAC;YAChD,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACpD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IAChB,CAAC;CACF;AAED,eAAe,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/parser/peggy/generated/parser.ts"],"names":[],"mappings":"AAcA,iBAAS,eAAe,CAAC,OAAO,KAAA,EAAE,QAAQ,KAAA,EAAE,KAAK,KAAA,EAAE,QAAQ,KAAA,SAW1D;kBAXQ,eAAe;;;AA6JxB,iBAAS,SAAS,CAAC,KAAK,KAAA,EAAE,OAAO,KAAA,OAwvLhC;AAED,QAAA,MAAM,qBAAqB,UAE1B,CAAC;AAEF,OAAO,EACL,qBAAqB,IAAI,UAAU,EACnC,eAAe,IAAI,WAAW,EAC9B,SAAS,IAAI,KAAK,EACnB,CAAC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/parser/peggy/generated/parser.ts"],"names":[],"mappings":"AAcA,iBAAS,eAAe,CAAC,OAAO,KAAA,EAAE,QAAQ,KAAA,EAAE,KAAK,KAAA,EAAE,QAAQ,KAAA,SAW1D;kBAXQ,eAAe;;;AA6JxB,iBAAS,SAAS,CAAC,KAAK,KAAA,EAAE,OAAO,KAAA,OAwuLhC;AAED,QAAA,MAAM,qBAAqB,UAE1B,CAAC;AAEF,OAAO,EACL,qBAAqB,IAAI,UAAU,EACnC,eAAe,IAAI,WAAW,EAC9B,SAAS,IAAI,KAAK,EACnB,CAAC"}
@@ -284,8 +284,9 @@ function peg$parse(input, options) {
284
284
  var peg$f10 = function (path) {
285
285
  return { nodeType: "ImportStmt", source: path, loc: loc(location()) };
286
286
  };
287
- var peg$f11 = function (args) {
288
- return { nodeType: "PlayStmt", args: args ? args[1] : "", loc: loc(location()) };
287
+ var peg$f11 = function (ws, rest) {
288
+ const args = rest ? rest.trim() : "";
289
+ return { nodeType: "PlayStmt", args: args, loc: loc(location()) };
289
290
  };
290
291
  var peg$f12 = function (fmt, path) {
291
292
  return { nodeType: "ExportStmt", format: fmt, path, loc: loc(location()) };
@@ -1376,7 +1377,7 @@ function peg$parse(input, options) {
1376
1377
  return s0;
1377
1378
  }
1378
1379
  function peg$parsePlayStmt() {
1379
- var s0, s1, s2, s3, s4, s5;
1380
+ var s0, s1, s2, s3, s4;
1380
1381
  var key = peg$currPos * 73 + 12;
1381
1382
  var cached = peg$resultsCache[key];
1382
1383
  if (cached) {
@@ -1384,58 +1385,39 @@ function peg$parse(input, options) {
1384
1385
  return cached.result;
1385
1386
  }
1386
1387
  s0 = peg$currPos;
1387
- s1 = peg$currPos;
1388
- s2 = peg$currPos;
1389
1388
  if (input.substr(peg$currPos, 4) === peg$c8) {
1390
- s3 = peg$c8;
1389
+ s1 = peg$c8;
1391
1390
  peg$currPos += 4;
1392
1391
  }
1393
1392
  else {
1394
- s3 = peg$FAILED;
1393
+ s1 = peg$FAILED;
1395
1394
  if (peg$silentFails === 0) {
1396
1395
  peg$fail(peg$e8);
1397
1396
  }
1398
1397
  }
1399
- if (s3 !== peg$FAILED) {
1400
- s4 = peg$currPos;
1398
+ if (s1 !== peg$FAILED) {
1399
+ s2 = peg$currPos;
1401
1400
  peg$silentFails++;
1402
- s5 = peg$parseIdentChar();
1401
+ s3 = peg$parseIdentChar();
1403
1402
  peg$silentFails--;
1404
- if (s5 === peg$FAILED) {
1405
- s4 = undefined;
1403
+ if (s3 === peg$FAILED) {
1404
+ s2 = undefined;
1406
1405
  }
1407
1406
  else {
1408
- peg$currPos = s4;
1409
- s4 = peg$FAILED;
1407
+ peg$currPos = s2;
1408
+ s2 = peg$FAILED;
1410
1409
  }
1411
- if (s4 !== peg$FAILED) {
1412
- s3 = [s3, s4];
1413
- s2 = s3;
1410
+ if (s2 !== peg$FAILED) {
1411
+ s3 = peg$parse_();
1412
+ s4 = peg$parseRestOfLine();
1413
+ peg$savedPos = s0;
1414
+ s0 = peg$f11(s3, s4);
1414
1415
  }
1415
1416
  else {
1416
- peg$currPos = s2;
1417
- s2 = peg$FAILED;
1417
+ peg$currPos = s0;
1418
+ s0 = peg$FAILED;
1418
1419
  }
1419
1420
  }
1420
- else {
1421
- peg$currPos = s2;
1422
- s2 = peg$FAILED;
1423
- }
1424
- if (s2 !== peg$FAILED) {
1425
- s1 = input.substring(s1, peg$currPos);
1426
- }
1427
- else {
1428
- s1 = s2;
1429
- }
1430
- if (s1 !== peg$FAILED) {
1431
- s2 = peg$currPos;
1432
- s3 = peg$parse_();
1433
- s4 = peg$parseRestOfLine();
1434
- s3 = [s3, s4];
1435
- s2 = s3;
1436
- peg$savedPos = s0;
1437
- s0 = peg$f11(s2);
1438
- }
1439
1421
  else {
1440
1422
  peg$currPos = s0;
1441
1423
  s0 = peg$FAILED;