ziplayer 0.1.0 → 0.1.1

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.
@@ -64,6 +64,9 @@ export declare class Player extends EventEmitter {
64
64
  private skipLoop;
65
65
  private extensions;
66
66
  private extensionContext;
67
+ private pluginCache;
68
+ private readonly PLUGIN_CACHE_TTL;
69
+ private pluginCacheTimestamps;
67
70
  /**
68
71
  * Attach an extension to the player
69
72
  *
@@ -158,6 +161,34 @@ export declare class Player extends EventEmitter {
158
161
  * await player.playNextTTS();
159
162
  */
160
163
  private playNextTTS;
164
+ /**
165
+ * Get cached plugin or find and cache a new one
166
+ * @param track The track to find plugin for
167
+ * @returns The matching plugin or null if not found
168
+ */
169
+ private getCachedPlugin;
170
+ /**
171
+ * Clear expired cache entries
172
+ */
173
+ private clearExpiredCache;
174
+ /**
175
+ * Clear all plugin cache entries
176
+ * @example
177
+ * player.clearPluginCache();
178
+ */
179
+ clearPluginCache(): void;
180
+ /**
181
+ * Get plugin cache statistics
182
+ * @returns Cache statistics
183
+ * @example
184
+ * const stats = player.getPluginCacheStats();
185
+ * console.log(`Cache size: ${stats.size}, Hit rate: ${stats.hitRate}%`);
186
+ */
187
+ getPluginCacheStats(): {
188
+ size: number;
189
+ hitRate: number;
190
+ expiredEntries: number;
191
+ };
161
192
  /** Build AudioResource for a given track using the plugin pipeline */
162
193
  private resourceFromTrack;
163
194
  private generateWillNext;
@@ -1 +1 @@
1
- {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
@@ -321,6 +321,10 @@ class Player extends events_1.EventEmitter {
321
321
  this.volumeInterval = null;
322
322
  this.skipLoop = false;
323
323
  this.extensions = [];
324
+ // Cache for plugin matching to improve performance
325
+ this.pluginCache = new Map();
326
+ this.PLUGIN_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
327
+ this.pluginCacheTimestamps = new Map();
324
328
  // TTS support
325
329
  this.ttsPlayer = null;
326
330
  this.ttsQueue = [];
@@ -691,14 +695,8 @@ class Player extends events_1.EventEmitter {
691
695
  await (0, voice_1.entersState)(ttsPlayer, voice_1.AudioPlayerStatus.Playing, 5000).catch(() => null);
692
696
  // Derive timeout from resource/track duration when available, with a sensible cap
693
697
  const md = resource?.metadata ?? {};
694
- const declared = typeof md.duration === "number" ? md.duration
695
- : typeof next?.duration === "number" ? next.duration
696
- : undefined;
697
- const declaredMs = declared ?
698
- declared > 1000 ?
699
- declared
700
- : declared * 1000
701
- : undefined;
698
+ const declared = typeof md.duration === "number" ? md.duration : typeof next?.duration === "number" ? next.duration : undefined;
699
+ const declaredMs = declared ? (declared > 1000 ? declared : declared * 1000) : undefined;
702
700
  const cap = this.options?.tts?.Max_Time_TTS ?? 60000;
703
701
  const idleTimeout = declaredMs ? Math.min(cap, Math.max(1000, declaredMs + 1500)) : cap;
704
702
  await (0, voice_1.entersState)(ttsPlayer, voice_1.AudioPlayerStatus.Idle, idleTimeout).catch(() => null);
@@ -723,33 +721,160 @@ class Player extends events_1.EventEmitter {
723
721
  }
724
722
  }
725
723
  }
724
+ /**
725
+ * Get cached plugin or find and cache a new one
726
+ * @param track The track to find plugin for
727
+ * @returns The matching plugin or null if not found
728
+ */
729
+ getCachedPlugin(track) {
730
+ const cacheKey = `${track.source}:${track.url}`;
731
+ const now = Date.now();
732
+ // Check if cache is still valid
733
+ const cachedTimestamp = this.pluginCacheTimestamps.get(cacheKey);
734
+ if (cachedTimestamp && now - cachedTimestamp < this.PLUGIN_CACHE_TTL) {
735
+ const cachedPlugin = this.pluginCache.get(cacheKey);
736
+ if (cachedPlugin) {
737
+ this.debug(`[PluginCache] Using cached plugin for ${track.source}: ${cachedPlugin.name}`);
738
+ return cachedPlugin;
739
+ }
740
+ }
741
+ // Find new plugin and cache it
742
+ this.debug(`[PluginCache] Finding plugin for track: ${track.title} (${track.source})`);
743
+ const plugin = this.pluginManager.findPlugin(track.url) || this.pluginManager.get(track.source);
744
+ if (plugin) {
745
+ this.pluginCache.set(cacheKey, plugin);
746
+ this.pluginCacheTimestamps.set(cacheKey, now);
747
+ this.debug(`[PluginCache] Cached plugin: ${plugin.name} for ${track.source}`);
748
+ return plugin;
749
+ }
750
+ return null;
751
+ }
752
+ /**
753
+ * Clear expired cache entries
754
+ */
755
+ clearExpiredCache() {
756
+ const now = Date.now();
757
+ for (const [key, timestamp] of this.pluginCacheTimestamps.entries()) {
758
+ if (now - timestamp >= this.PLUGIN_CACHE_TTL) {
759
+ this.pluginCache.delete(key);
760
+ this.pluginCacheTimestamps.delete(key);
761
+ this.debug(`[PluginCache] Cleared expired cache entry: ${key}`);
762
+ }
763
+ }
764
+ }
765
+ /**
766
+ * Clear all plugin cache entries
767
+ * @example
768
+ * player.clearPluginCache();
769
+ */
770
+ clearPluginCache() {
771
+ const cacheSize = this.pluginCache.size;
772
+ this.pluginCache.clear();
773
+ this.pluginCacheTimestamps.clear();
774
+ this.debug(`[PluginCache] Cleared all ${cacheSize} cache entries`);
775
+ }
776
+ /**
777
+ * Get plugin cache statistics
778
+ * @returns Cache statistics
779
+ * @example
780
+ * const stats = player.getPluginCacheStats();
781
+ * console.log(`Cache size: ${stats.size}, Hit rate: ${stats.hitRate}%`);
782
+ */
783
+ getPluginCacheStats() {
784
+ const now = Date.now();
785
+ let expiredEntries = 0;
786
+ for (const timestamp of this.pluginCacheTimestamps.values()) {
787
+ if (now - timestamp >= this.PLUGIN_CACHE_TTL) {
788
+ expiredEntries++;
789
+ }
790
+ }
791
+ return {
792
+ size: this.pluginCache.size,
793
+ hitRate: 0, // Would need to track hits/misses to calculate this
794
+ expiredEntries,
795
+ };
796
+ }
726
797
  /** Build AudioResource for a given track using the plugin pipeline */
727
798
  async resourceFromTrack(track) {
728
- // Resolve plugin similar to playNext
729
- const plugin = this.pluginManager.findPlugin(track.url) || this.pluginManager.get(track.source);
730
- if (!plugin)
799
+ this.debug(`[ResourceFromTrack] Starting resource creation for track: ${track.title} (${track.source})`);
800
+ // Clear expired cache entries periodically
801
+ if (Math.random() < 0.1) {
802
+ // 10% chance to clean cache
803
+ this.clearExpiredCache();
804
+ }
805
+ // Resolve plugin using cache
806
+ const plugin = this.getCachedPlugin(track);
807
+ if (!plugin) {
808
+ this.debug(`[ResourceFromTrack] No plugin found for track: ${track.title} (${track.source})`);
731
809
  throw new Error(`No plugin found for track: ${track.title}`);
732
- let streamInfo;
810
+ }
811
+ this.debug(`[ResourceFromTrack] Using plugin: ${plugin.name} for track: ${track.title}`);
812
+ let streamInfo = null;
813
+ const timeoutMs = this.options.extractorTimeout ?? 15000;
733
814
  try {
734
- streamInfo = await (0, timeout_1.withTimeout)(plugin.getStream(track), this.options.extractorTimeout ?? 15000, "getStream timed out");
815
+ this.debug(`[ResourceFromTrack] Attempting getStream with ${plugin.name}, timeout: ${timeoutMs}ms`);
816
+ const startTime = Date.now();
817
+ streamInfo = await (0, timeout_1.withTimeout)(plugin.getStream(track), timeoutMs, "getStream timed out");
818
+ const duration = Date.now() - startTime;
819
+ this.debug(`[ResourceFromTrack] getStream successful with ${plugin.name} in ${duration}ms`);
820
+ if (!streamInfo?.stream) {
821
+ this.debug(`[ResourceFromTrack] getStream returned no stream from ${plugin.name}`);
822
+ throw new Error(`No stream returned from ${plugin.name}`);
823
+ }
735
824
  }
736
825
  catch (streamError) {
826
+ const errorMessage = streamError instanceof Error ? streamError.message : String(streamError);
827
+ this.debug(`[ResourceFromTrack] getStream failed with ${plugin.name}: ${errorMessage}`);
828
+ // Log more details for debugging
829
+ if (streamError instanceof Error && streamError.stack) {
830
+ this.debug(`[ResourceFromTrack] getStream error stack:`, streamError.stack);
831
+ }
737
832
  // try fallbacks
833
+ this.debug(`[ResourceFromTrack] Attempting fallback plugins for track: ${track.title}`);
738
834
  const allplugs = this.pluginManager.getAll();
835
+ let fallbackAttempts = 0;
739
836
  for (const p of allplugs) {
740
- if (typeof p.getFallback !== "function")
837
+ if (typeof p.getFallback !== "function" && typeof p.getStream !== "function") {
838
+ this.debug(`[ResourceFromTrack] Skipping plugin ${p.name} - no getFallback or getStream method`);
741
839
  continue;
840
+ }
841
+ fallbackAttempts++;
842
+ this.debug(`[ResourceFromTrack] Trying fallback plugin ${p.name} (attempt ${fallbackAttempts})`);
742
843
  try {
743
- streamInfo = await (0, timeout_1.withTimeout)(p.getFallback(track), this.options.extractorTimeout ?? 15000, `getFallback timed out for plugin ${p.name}`);
744
- if (!streamInfo?.stream)
745
- continue;
746
- break;
844
+ // Try getStream first
845
+ const startTime = Date.now();
846
+ streamInfo = await (0, timeout_1.withTimeout)(p.getStream(track), timeoutMs, "getStream timed out");
847
+ const duration = Date.now() - startTime;
848
+ if (streamInfo?.stream) {
849
+ this.debug(`[ResourceFromTrack] Fallback getStream successful with ${p.name} in ${duration}ms`);
850
+ break;
851
+ }
852
+ // Try getFallback if getStream didn't work
853
+ this.debug(`[ResourceFromTrack] Trying getFallback with ${p.name}`);
854
+ const fallbackStartTime = Date.now();
855
+ streamInfo = await (0, timeout_1.withTimeout)(p.getFallback(track), timeoutMs, `getFallback timed out for plugin ${p.name}`);
856
+ const fallbackDuration = Date.now() - fallbackStartTime;
857
+ if (streamInfo?.stream) {
858
+ this.debug(`[ResourceFromTrack] Fallback getFallback successful with ${p.name} in ${fallbackDuration}ms`);
859
+ break;
860
+ }
861
+ this.debug(`[ResourceFromTrack] Fallback plugin ${p.name} returned no stream`);
862
+ }
863
+ catch (fallbackError) {
864
+ const errorMessage = fallbackError instanceof Error ? fallbackError.message : String(fallbackError);
865
+ this.debug(`[ResourceFromTrack] Fallback plugin ${p.name} failed: ${errorMessage}`);
866
+ // Log more details for debugging
867
+ if (fallbackError instanceof Error && fallbackError.stack) {
868
+ this.debug(`[ResourceFromTrack] Fallback error stack:`, fallbackError.stack);
869
+ }
747
870
  }
748
- catch { }
749
871
  }
750
- if (!streamInfo?.stream)
872
+ if (!streamInfo?.stream) {
873
+ this.debug(`[ResourceFromTrack] All ${fallbackAttempts} fallback attempts failed for track: ${track.title}`);
751
874
  throw new Error(`All getFallback attempts failed for track: ${track.title}`);
875
+ }
752
876
  }
877
+ this.debug(`[ResourceFromTrack] Stream obtained, type: ${streamInfo.type}, metadata keys: ${Object.keys(streamInfo.metadata || {}).join(", ")}`);
753
878
  const mapToStreamType = (type) => {
754
879
  switch (type) {
755
880
  case "webm/opus":
@@ -762,15 +887,20 @@ class Player extends events_1.EventEmitter {
762
887
  }
763
888
  };
764
889
  const inputType = mapToStreamType(streamInfo.type);
765
- return (0, voice_1.createAudioResource)(streamInfo.stream, {
890
+ this.debug(`[ResourceFromTrack] Creating AudioResource with inputType: ${inputType}`);
891
+ // Merge metadata safely
892
+ const mergedMetadata = {
893
+ ...track,
894
+ ...(streamInfo.metadata || {}),
895
+ };
896
+ const audioResource = (0, voice_1.createAudioResource)(streamInfo.stream, {
766
897
  // Prefer plugin-provided metadata (e.g., precise duration), fallback to track fields
767
- metadata: {
768
- ...track,
769
- ...(streamInfo?.metadata || {}),
770
- },
898
+ metadata: mergedMetadata,
771
899
  inputType,
772
900
  inlineVolume: true,
773
901
  });
902
+ this.debug(`[ResourceFromTrack] AudioResource created successfully for track: ${track.title}`);
903
+ return audioResource;
774
904
  }
775
905
  async generateWillNext() {
776
906
  const lastTrack = this.queue.previousTracks[this.queue.previousTracks.length - 1] ?? this.queue.currentTrack;
@@ -1 +1 @@
1
- {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":";;;AAAA,mCAAsC;AACtC,4CAY0B;AAuB1B,mCAAgC;AAChC,wCAA2C;AAC3C,8CAA+C;AAO/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAa,MAAO,SAAQ,qBAAY;IAmBvC;;;;;;OAMG;IACI,eAAe,CAAC,SAAwB;QAC9C,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO;QAChD,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;OAMG;IACI,eAAe,CAAC,SAAwB;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO;QACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACtD,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC/B,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;QACzB,CAAC;IACF,CAAC;IAED;;;;;;;OAOG;IACI,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAEO,wBAAwB,CAAC,SAAwB,EAAE,IAAgC;QAC1F,MAAM,EAAE,GAAI,SAAiB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,OAAO,EAAE,KAAK,UAAU;YAAE,OAAO;QACrC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACzD,IAAI,MAAM,IAAI,OAAQ,MAA2B,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACtE,MAA2B,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,SAAS,CAAC,IAAI,IAAI,IAAI,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;YACrH,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,sBAAsB,SAAS,CAAC,IAAI,IAAI,IAAI,SAAS,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC/B,OAA6B;QAE7B,MAAM,OAAO,GAAyB,EAAE,GAAG,OAAO,EAAE,CAAC;QACrD,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,GAAI,SAAiB,CAAC,UAAU,CAAC;YAC3C,IAAI,OAAO,IAAI,KAAK,UAAU;gBAAE,SAAS;YACzC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC3F,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBAC7B,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC/B,CAAC;gBACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;oBACtC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;oBACzC,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC3C,CAAC;gBACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBACjC,CAAC;gBACD,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC5C,QAAQ,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBACzC,CAAC;gBACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACzC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBACnC,CAAC;gBACD,IAAI,MAAM,CAAC,KAAK,YAAY,KAAK,EAAE,CAAC;oBACnC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC/B,CAAC;gBACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACzC,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;oBAClC,IAAI,MAAM,CAAC,OAAO;wBAAE,MAAM;gBAC3B,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,sBAAsB,SAAS,CAAC,IAAI,oBAAoB,EAAE,GAAG,CAAC,CAAC;YAC3E,CAAC;QACF,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAAkC;QACjE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACzC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,IAAI,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC3E,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,GAAI,SAAiB,CAAC,SAAS,CAAC;YAC1C,IAAI,OAAO,IAAI,KAAK,UAAU;gBAAE,SAAS;YACzC,IAAI,CAAC;gBACJ,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACtF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,sBAAsB,SAAS,CAAC,IAAI,mBAAmB,EAAE,GAAG,CAAC,CAAC;YAC1E,CAAC;QACF,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,KAAa,EAAE,WAAmB;QACvE,MAAM,OAAO,GAA2B,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QAC/D,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,GAAI,SAAiB,CAAC,aAAa,CAAC;YAC9C,IAAI,OAAO,IAAI,KAAK,UAAU;gBAAE,SAAS;YACzC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC3F,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxE,IAAI,CAAC,KAAK,CAAC,sBAAsB,SAAS,CAAC,IAAI,8BAA8B,KAAK,EAAE,CAAC,CAAC;oBACtF,OAAO,MAAsB,CAAC;gBAC/B,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,sBAAsB,SAAS,CAAC,IAAI,uBAAuB,EAAE,GAAG,CAAC,CAAC;YAC9E,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,KAAY;QACjD,MAAM,OAAO,GAA2B,EAAE,KAAK,EAAE,CAAC;QAClD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,IAAI,GAAI,SAAiB,CAAC,aAAa,CAAC;YAC9C,IAAI,OAAO,IAAI,KAAK,UAAU;gBAAE,SAAS;YACzC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC3F,IAAI,MAAM,IAAK,MAAqB,CAAC,MAAM,EAAE,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,sBAAsB,SAAS,CAAC,IAAI,+BAA+B,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC7F,OAAO,MAAoB,CAAC;gBAC7B,CAAC;YACF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,sBAAsB,SAAS,CAAC,IAAI,uBAAuB,EAAE,GAAG,CAAC,CAAC;YAC9E,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAC,KAAY;QACpC,IAAI,CAAC;YACJ,IAAI,UAAU,GAAsB,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YAC9E,IAAI,MAAgC,CAAC;YAErC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAE1F,IAAI,CAAC,MAAM,EAAE,CAAC;oBACb,IAAI,CAAC,KAAK,CAAC,uCAAuC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,sCAAsC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChE,IAAI,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC;oBACJ,UAAU,GAAG,MAAM,IAAA,qBAAW,EAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,KAAK,EAAE,qBAAqB,CAAC,CAAC;gBACxH,CAAC;gBAAC,OAAO,WAAW,EAAE,CAAC;oBACtB,IAAI,CAAC,KAAK,CAAC,gDAAgD,EAAE,WAAW,CAAC,CAAC;oBAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;oBAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;wBAC1B,IAAI,OAAQ,CAAS,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;4BAClD,SAAS;wBACV,CAAC;wBACD,IAAI,CAAC;4BACJ,UAAU,GAAG,MAAM,IAAA,qBAAW,EAC5B,CAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAC7B,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,KAAK,EACtC,oCAAoC,CAAC,CAAC,IAAI,EAAE,CAC5C,CAAC;4BACF,IAAI,CAAE,UAAkB,EAAE,MAAM;gCAAE,SAAS;4BAC3C,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,IAAI,eAAe,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;4BAC7F,MAAM;wBACP,CAAC;wBAAC,OAAO,aAAa,EAAE,CAAC;4BACxB,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC,IAAI,GAAG,EAAE,aAAa,CAAC,CAAC;wBACjF,CAAC;oBACF,CAAC;oBACD,IAAI,CAAE,UAAkB,EAAE,MAAM,EAAE,CAAC;wBAClC,MAAM,IAAI,KAAK,CAAC,8CAA8C,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC9E,CAAC;gBACF,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,uDAAuD,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAClF,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;YAED,sDAAsD;YACtD,IAAI,UAAU,IAAK,UAAkB,CAAC,MAAM,EAAE,CAAC;gBAC9C,SAAS,eAAe,CAAC,IAAwB;oBAChD,QAAQ,IAAI,EAAE,CAAC;wBACd,KAAK,WAAW;4BACf,OAAO,kBAAU,CAAC,QAAQ,CAAC;wBAC5B,KAAK,UAAU;4BACd,OAAO,kBAAU,CAAC,OAAO,CAAC;wBAC3B,KAAK,WAAW,CAAC;wBACjB;4BACC,OAAO,kBAAU,CAAC,SAAS,CAAC;oBAC9B,CAAC;gBACF,CAAC;gBAED,MAAM,MAAM,GAAc,UAAyB,CAAC,MAAM,CAAC;gBAC3D,MAAM,SAAS,GAAG,eAAe,CAAE,UAAyB,CAAC,IAAI,CAAC,CAAC;gBAEnE,IAAI,CAAC,eAAe,GAAG,IAAA,2BAAmB,EAAC,MAAM,EAAE;oBAClD,QAAQ,EAAE,KAAK;oBACf,SAAS;oBACT,YAAY,EAAE,IAAI;iBAClB,CAAC,CAAC;gBAEH,8DAA8D;gBAC9D,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC5B,CAAC;gBACD,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;gBAE1D,IAAI,CAAC,KAAK,CAAC,wCAAwC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAE5C,MAAM,IAAA,mBAAW,EAAC,IAAI,CAAC,WAAW,EAAE,yBAAiB,CAAC,OAAO,EAAE,IAAK,CAAC,CAAC;gBACtE,OAAO,IAAI,CAAC;YACb,CAAC;iBAAM,IAAI,UAAU,IAAI,CAAE,UAAkB,CAAC,MAAM,EAAE,CAAC;gBACtD,yEAAyE;gBACzE,IAAI,CAAC,KAAK,CAAC,sDAAsD,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACb,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YAClE,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAc,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAMO,iBAAiB;QACxB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,OAAa,EAAE,GAAG,cAAqB;QACpD,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,YAAY,OAAe,EAAE,UAAyB,EAAE,EAAE,OAAsB;QAC/E,KAAK,EAAE,CAAC;QArSF,eAAU,GAA2B,IAAI,CAAC;QAG1C,WAAM,GAAW,GAAG,CAAC;QACrB,cAAS,GAAY,KAAK,CAAC;QAC3B,aAAQ,GAAY,KAAK,CAAC;QAKzB,iBAAY,GAA0B,IAAI,CAAC;QAC3C,oBAAe,GAAyB,IAAI,CAAC;QAC7C,mBAAc,GAA0B,IAAI,CAAC;QAC7C,aAAQ,GAAG,KAAK,CAAC;QACjB,eAAU,GAAoB,EAAE,CAAC;QAoQzC,cAAc;QACN,cAAS,GAA8B,IAAI,CAAC;QAC5C,aAAQ,GAAiB,EAAE,CAAC;QAC5B,cAAS,GAAG,KAAK,CAAC;QAiBzB,IAAI,CAAC,KAAK,CAAC,4CAA4C,OAAO,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,aAAK,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAA,yBAAiB,EAAC;YACpC,SAAS,EAAE;gBACV,YAAY,EAAE,4BAAoB,CAAC,KAAK;gBACxC,eAAe,EAAE,GAAG;aACpB;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;QAEzC,IAAI,CAAC,OAAO,GAAG;YACd,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,MAAM;YACpB,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,MAAM;YACf,gBAAgB,EAAE,KAAK;YACvB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK;YACf,GAAG,OAAO;YACV,GAAG,EAAE;gBACJ,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,GAAG;gBACX,YAAY,EAAE,KAAM;gBACpB,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;aACvB;SACD,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACtC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjE,4CAA4C;QAC5C,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC;IACF,CAAC;IAEO,mBAAmB;QAC1B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACzD,IAAI,CAAC,KAAK,CAAC,yCAAyC,QAAQ,CAAC,MAAM,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7F,IAAI,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,IAAI,EAAE,CAAC;gBAC9F,cAAc;gBACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,yBAAyB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBACnD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC9B,CAAC;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjB,CAAC;iBAAM,IACN,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,OAAO;gBAC7C,CAAC,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,SAAS,CAAC,EAC9F,CAAC;gBACF,gBAAgB;gBAChB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBACrD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,MAAM,EAAE,CAAC;gBACzG,eAAe;gBACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,oCAAoC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC9D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBACjC,CAAC;YACF,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,MAAM,EAAE,CAAC;gBACzG,gBAAgB;gBAChB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,qCAAqC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC/D,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBAClC,CAAC;YACF,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,UAAU,EAAE,CAAC;gBAC7D,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACrD,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,yBAAiB,CAAC,SAAS,EAAE,CAAC;gBAC5D,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACpD,CAAC;QACF,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;YACxC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;YAC7B,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,eAAe;QACtB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAA,yBAAiB,EAAC;YAClC,SAAS,EAAE;gBACV,YAAY,EAAE,4BAAoB,CAAC,KAAK;gBACxC,eAAe,EAAE,GAAG;aACpB;SACD,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,MAAoB;QAC7B,IAAI,CAAC,KAAK,CAAC,2BAA2B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,IAAY;QACxB,IAAI,CAAC,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,OAAqB;QAClC,IAAI,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,yCAAyC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAClE,MAAM,UAAU,GAAG,IAAA,wBAAgB,EAAC;gBACnC,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,mBAA0B;gBACxD,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI;gBACvC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK;aACxC,CAAC,CAAC;YAEH,MAAM,IAAA,mBAAW,EAAC,UAAU,EAAE,6BAAqB,CAAC,KAAK,EAAE,KAAM,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAE7B,UAAU,CAAC,EAAE,CAAC,6BAAqB,CAAC,YAAY,EAAE,GAAG,EAAE;gBACtD,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAChC,IAAI,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;gBACtD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAc,CAAC,CAAC;YAC7C,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,WAAmB;QAC9C,IAAI,CAAC,KAAK,CAAC,sCAAsC,KAAK,kBAAkB,WAAW,EAAE,CAAC,CAAC;QACvF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC/E,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnG,IAAI,CAAC,KAAK,CAAC,gDAAgD,KAAK,EAAE,CAAC,CAAC;YACpE,OAAO,eAAe,CAAC;QACxB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,SAAS,GAAQ,IAAI,CAAC;QAE1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3D,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAW,EAC5B,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,EAC5B,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,KAAK,EACtC,kCAAkC,CAAC,CAAC,IAAI,EAAE,CAC1C,CAAC;gBACF,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/D,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,cAAc,GAAG,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;oBAC/E,OAAO,GAAG,CAAC;gBACZ,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,SAAS,GAAG,KAAK,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,IAAI,WAAW,EAAE,KAAK,CAAC,CAAC;gBACpE,0BAA0B;YAC3B,CAAC;QACF,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAC;QACvE,IAAI,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAkB,CAAC,CAAC;QAC5D,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI,CAAC,KAAqB,EAAE,WAAoB;QACrD,IAAI,CAAC,KAAK,CAAC,oCAAoC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,WAAW,GAAY,EAAE,CAAC;QAC9B,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,gBAAgB,GAAyB,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;QACpE,IAAI,YAAY,GAA0B,EAAE,CAAC;QAE7C,IAAI,CAAC;YACJ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;YACpE,gBAAgB,GAAG,WAAW,CAAC,OAAO,CAAC;YACvC,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC;YACpC,IAAI,gBAAgB,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBAChD,gBAAgB,CAAC,WAAW,GAAG,WAAW,CAAC;YAC5C,CAAC;YAED,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAExF,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtE,MAAM,cAAc,GAA8B;oBACjD,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,IAAI;oBACrC,KAAK,EAAE,gBAAgB,CAAC,KAAK;oBAC7B,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,MAAM,EAAE,EAAE;oBACV,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,KAAK;oBAC5C,KAAK,EAAE,YAAY,CAAC,KAAK;iBACzB,CAAC;gBACF,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;gBAC7C,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC9C,CAAC;gBACD,OAAO,YAAY,CAAC,OAAO,IAAI,IAAI,CAAC;YACrC,CAAC;YAED,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,WAAW,GAAG,UAAU,CAAC;gBACzB,UAAU,GAAG,YAAY,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,OAAO,gBAAgB,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;gBAC1G,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;gBAClC,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;oBAC3B,UAAU,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,KAAK,CAAC,4BAA4B,YAAY,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,UAAU,CAAC,CAAC;gBACrG,CAAC;YACF,CAAC;iBAAM,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBACnC,WAAW,GAAG,CAAC,gBAAgB,CAAC,KAAc,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACpC,CAAC;YAED,MAAM,KAAK,GAAG,CAAC,CAAoB,EAAE,EAAE;gBACtC,IAAI,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACrB,IAAI,CAAC;oBACJ,OAAO,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC/E,CAAC;gBAAC,MAAM,CAAC;oBACR,OAAO,KAAK,CAAC;gBACd,CAAC;YACF,CAAC,CAAC;YAEF,MAAM,aAAa,GAClB,OAAO,gBAAgB,CAAC,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAE7G,IACC,CAAC,UAAU;gBACX,WAAW,CAAC,MAAM,GAAG,CAAC;gBACtB,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,KAAK,KAAK;gBACtC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,EACvC,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,mCAAmC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACtE,MAAM,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,IAAI,CAAC,iBAAiB,CAAC;oBAC5B,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,gBAAgB,CAAC,KAAK;oBAC7B,WAAW,EAAE,gBAAgB,CAAC,WAAW;oBACzC,MAAM,EAAE,WAAW;oBACnB,UAAU;iBACV,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACb,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAE/D,MAAM,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,gBAAgB,CAAC,KAAK;gBAC7B,WAAW,EAAE,gBAAgB,CAAC,WAAW;gBACzC,MAAM,EAAE,WAAW;gBACnB,UAAU;aACV,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,iBAAiB,CAAC;gBAC5B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,gBAAgB,CAAC,KAAK;gBAC7B,WAAW,EAAE,gBAAgB,CAAC,WAAW;gBACzC,MAAM,EAAE,WAAW;gBACnB,UAAU;gBACV,KAAK,EAAE,KAAc;aACrB,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAc,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,qBAAqB,CAAC,KAAY;QAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,WAAW;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACrE,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAEzC,oCAAoC;YACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACrB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,UAAU,GACf,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,yBAAiB,CAAC,OAAO;gBAC3D,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,yBAAiB,CAAC,SAAS,CAAC;YAE/D,6BAA6B;YAC7B,IAAI,CAAC;gBACJ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAEV,iCAAiC;YACjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEzB,sCAAsC;YACtC,MAAM,IAAA,mBAAW,EAAC,SAAS,EAAE,yBAAiB,CAAC,OAAO,EAAE,IAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACjF,kFAAkF;YAClF,MAAM,EAAE,GAAS,QAAgB,EAAE,QAAQ,IAAI,EAAE,CAAC;YAClD,MAAM,QAAQ,GACb,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ;gBAC7C,CAAC,CAAC,OAAO,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ;oBACpD,CAAC,CAAC,SAAS,CAAC;YACb,MAAM,UAAU,GACf,QAAQ,CAAC,CAAC;gBACT,QAAQ,GAAG,IAAI,CAAC,CAAC;oBAChB,QAAQ;oBACT,CAAC,CAAC,QAAQ,GAAG,IAAI;gBAClB,CAAC,CAAC,SAAS,CAAC;YACb,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,YAAY,IAAI,KAAM,CAAC;YACtD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAK,EAAE,UAAU,GAAG,IAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1F,MAAM,IAAA,mBAAW,EAAC,SAAS,EAAE,yBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YAEpF,iCAAiC;YACjC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACJ,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAY,CAAC,CAAC;QACxC,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,CAAC;QACF,CAAC;IACF,CAAC;IAED,sEAAsE;IAC9D,KAAK,CAAC,iBAAiB,CAAC,KAAY;QAC3C,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChG,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAE1E,IAAI,UAAe,CAAC;QACpB,IAAI,CAAC;YACJ,UAAU,GAAG,MAAM,IAAA,qBAAW,EAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,KAAK,EAAE,qBAAqB,CAAC,CAAC;QACxH,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACtB,gBAAgB;YAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,OAAQ,CAAS,CAAC,WAAW,KAAK,UAAU;oBAAE,SAAS;gBAC3D,IAAI,CAAC;oBACJ,UAAU,GAAG,MAAM,IAAA,qBAAW,EAC5B,CAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAC7B,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,KAAK,EACtC,oCAAqC,CAAS,CAAC,IAAI,EAAE,CACrD,CAAC;oBACF,IAAI,CAAC,UAAU,EAAE,MAAM;wBAAE,SAAS;oBAClC,MAAM;gBACP,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACX,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACvG,CAAC;QAED,MAAM,eAAe,GAAG,CAAC,IAAY,EAAc,EAAE;YACpD,QAAQ,IAAI,EAAE,CAAC;gBACd,KAAK,WAAW;oBACf,OAAO,kBAAU,CAAC,QAAQ,CAAC;gBAC5B,KAAK,UAAU;oBACd,OAAO,kBAAU,CAAC,OAAO,CAAC;gBAC3B,KAAK,WAAW,CAAC;gBACjB;oBACC,OAAO,kBAAU,CAAC,SAAS,CAAC;YAC9B,CAAC;QACF,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACnD,OAAO,IAAA,2BAAmB,EAAC,UAAU,CAAC,MAAM,EAAE;YAC7C,qFAAqF;YACrF,QAAQ,EAAE;gBACT,GAAI,KAAa;gBACjB,GAAG,CAAE,UAAkB,EAAE,QAAQ,IAAI,EAAE,CAAC;aACxC;YACD,SAAS;YACT,YAAY,EAAE,IAAI;SAClB,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QAC7G,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,sFAAsF;QACtF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3G,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CACnG,CAAC,CAAC,EAAE,EAAE,CAAC,OAAQ,CAAS,CAAC,gBAAgB,KAAK,UAAU,CACxD,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACJ,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7D,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAW,EAC/B,CAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE;oBAC1C,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;iBAClC,CAAC,EACF,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,KAAK,EACtC,kCAAkC,CAAC,CAAC,IAAI,EAAE,CAC1C,CAAC;gBAEF,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;oBACtF,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAClC,IAAI,CAAC,KAAK,CAAC,yCAAyC,SAAS,EAAE,KAAK,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;oBACxF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC1C,OAAO,CAAC,UAAU;gBACnB,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,6BAA6B,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;gBACnE,qBAAqB;YACtB,CAAC;QACF,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,QAAQ;QACrB,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC5C,IAAI,QAAQ,EAAE,CAAC;oBACd,IAAI,CAAC,KAAK,CAAC,qCAAqC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;oBAClE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACnC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxB,CAAC;YACF,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEtB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,CAAC;YACD,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,mEAAmE;QACnE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC;YACJ,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAc,EAAE,KAAK,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;IACF,CAAC;IAED;;;;;;;OAOG;IACH,KAAK;QACJ,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,MAAM;QACL,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,MAAM,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACX,IAAI,CAAC,KAAK,CAAC,qCAAqC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC/D,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBAClC,CAAC;YACF,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,IAAI;QACH,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxB,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IAEH,IAAI;QACH,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,QAAQ;QACb,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,CAAC,IAAe;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAc;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAc;QACvB,IAAI,CAAC,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;QACnD,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,GAAG;YAAE,OAAO,KAAK,CAAC;QAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;QAEpD,IAAI,cAAc,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,cAAc;gBAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE5D,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;YACjC,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,WAAW,GAAG,CAAC,CAAC;YAEpB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;gBACtC,WAAW,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC;gBAC/D,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;oBAC1B,aAAa,CAAC,IAAI,CAAC,cAAe,CAAC,CAAC;oBACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAC5B,CAAC;YACF,CAAC,EAAE,GAAG,CAAC,CAAC;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;OAMG;IACH,OAAO;QACN,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAED;;;;;;OAMG;IACH,UAAU;QACT,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,MAAM,CAAC,KAA+B,EAAE,KAAa,EAAE,WAAoB;QAChF,IAAI,CAAC;YACJ,IAAI,CAAC,KAAK,CAAC,mCAAmC,KAAK,eAAe,OAAO,KAAK,EAAE,CAAC,CAAC;YAClF,IAAI,WAAW,GAAY,EAAE,CAAC;YAC9B,IAAI,UAAU,GAAG,KAAK,CAAC;YAEvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC;gBACxE,WAAW,GAAG,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC;gBACxC,UAAU,GAAG,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC;YACtC,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,WAAW,GAAG,KAAK,CAAC;gBACpB,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,KAAK,EAAE,CAAC;gBAClB,WAAW,GAAG,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,oCAAoC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;gBACvC,IAAI,CAAC,KAAK,CAAC,qBAAqB,WAAW,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,mBAAmB,KAAK,EAAE,CAAC,CAAC;YAChH,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAc,CAAC,CAAC;YACzC,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAa;QACnB,IAAI,CAAC,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,UAA8B,EAAE;QAC9C,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEnC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC7E,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;QAEtF,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3E,CAAC;IAED;;;;;;;OAOG;IACH,OAAO;QACN,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ;YACtB,OAAO;gBACN,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,OAAO;aACf,CAAC;QAEH,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QAE7E,OAAO;YACN,OAAO,EAAE,QAAQ,EAAE,gBAAgB;YACnC,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SAClD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAU;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;QAClC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAEO,aAAa;QACpB,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC5D,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;gBACnC,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC3D,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;IACF,CAAC;IAED;;;;;;OAMG;IACH,OAAO;QACN,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC;gBACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,KAAK,MAAM,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACtD,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC/B,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;YACzB,CAAC;QACF,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;IAChC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;IAClC,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACnC,CAAC;CACD;AA1yCD,wBA0yCC"}
1
+ {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ziplayer",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "A modular Discord voice player with plugin system",
5
5
  "keywords": [
6
6
  "ZiPlayer",
@@ -98,6 +98,11 @@ export class Player extends EventEmitter {
98
98
  private extensions: BaseExtension[] = [];
99
99
  private extensionContext!: ExtensionContext;
100
100
 
101
+ // Cache for plugin matching to improve performance
102
+ private pluginCache = new Map<string, SourcePlugin>();
103
+ private readonly PLUGIN_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
104
+ private pluginCacheTimestamps = new Map<string, number>();
105
+
101
106
  /**
102
107
  * Attach an extension to the player
103
108
  *
@@ -772,15 +777,8 @@ export class Player extends EventEmitter {
772
777
  // Derive timeout from resource/track duration when available, with a sensible cap
773
778
  const md: any = (resource as any)?.metadata ?? {};
774
779
  const declared =
775
- typeof md.duration === "number" ? md.duration
776
- : typeof next?.duration === "number" ? next.duration
777
- : undefined;
778
- const declaredMs =
779
- declared ?
780
- declared > 1000 ?
781
- declared
782
- : declared * 1000
783
- : undefined;
780
+ typeof md.duration === "number" ? md.duration : typeof next?.duration === "number" ? next.duration : undefined;
781
+ const declaredMs = declared ? (declared > 1000 ? declared : declared * 1000) : undefined;
784
782
  const cap = this.options?.tts?.Max_Time_TTS ?? 60_000;
785
783
  const idleTimeout = declaredMs ? Math.min(cap, Math.max(1_000, declaredMs + 1_500)) : cap;
786
784
  await entersState(ttsPlayer, AudioPlayerStatus.Idle, idleTimeout).catch(() => null);
@@ -804,33 +802,195 @@ export class Player extends EventEmitter {
804
802
  }
805
803
  }
806
804
 
805
+ /**
806
+ * Get cached plugin or find and cache a new one
807
+ * @param track The track to find plugin for
808
+ * @returns The matching plugin or null if not found
809
+ */
810
+ private getCachedPlugin(track: Track): SourcePlugin | null {
811
+ const cacheKey = `${track.source}:${track.url}`;
812
+ const now = Date.now();
813
+
814
+ // Check if cache is still valid
815
+ const cachedTimestamp = this.pluginCacheTimestamps.get(cacheKey);
816
+ if (cachedTimestamp && now - cachedTimestamp < this.PLUGIN_CACHE_TTL) {
817
+ const cachedPlugin = this.pluginCache.get(cacheKey);
818
+ if (cachedPlugin) {
819
+ this.debug(`[PluginCache] Using cached plugin for ${track.source}: ${cachedPlugin.name}`);
820
+ return cachedPlugin;
821
+ }
822
+ }
823
+
824
+ // Find new plugin and cache it
825
+ this.debug(`[PluginCache] Finding plugin for track: ${track.title} (${track.source})`);
826
+ const plugin = this.pluginManager.findPlugin(track.url) || this.pluginManager.get(track.source);
827
+
828
+ if (plugin) {
829
+ this.pluginCache.set(cacheKey, plugin);
830
+ this.pluginCacheTimestamps.set(cacheKey, now);
831
+ this.debug(`[PluginCache] Cached plugin: ${plugin.name} for ${track.source}`);
832
+ return plugin;
833
+ }
834
+
835
+ return null;
836
+ }
837
+
838
+ /**
839
+ * Clear expired cache entries
840
+ */
841
+ private clearExpiredCache(): void {
842
+ const now = Date.now();
843
+ for (const [key, timestamp] of this.pluginCacheTimestamps.entries()) {
844
+ if (now - timestamp >= this.PLUGIN_CACHE_TTL) {
845
+ this.pluginCache.delete(key);
846
+ this.pluginCacheTimestamps.delete(key);
847
+ this.debug(`[PluginCache] Cleared expired cache entry: ${key}`);
848
+ }
849
+ }
850
+ }
851
+
852
+ /**
853
+ * Clear all plugin cache entries
854
+ * @example
855
+ * player.clearPluginCache();
856
+ */
857
+ public clearPluginCache(): void {
858
+ const cacheSize = this.pluginCache.size;
859
+ this.pluginCache.clear();
860
+ this.pluginCacheTimestamps.clear();
861
+ this.debug(`[PluginCache] Cleared all ${cacheSize} cache entries`);
862
+ }
863
+
864
+ /**
865
+ * Get plugin cache statistics
866
+ * @returns Cache statistics
867
+ * @example
868
+ * const stats = player.getPluginCacheStats();
869
+ * console.log(`Cache size: ${stats.size}, Hit rate: ${stats.hitRate}%`);
870
+ */
871
+ public getPluginCacheStats(): { size: number; hitRate: number; expiredEntries: number } {
872
+ const now = Date.now();
873
+ let expiredEntries = 0;
874
+
875
+ for (const timestamp of this.pluginCacheTimestamps.values()) {
876
+ if (now - timestamp >= this.PLUGIN_CACHE_TTL) {
877
+ expiredEntries++;
878
+ }
879
+ }
880
+
881
+ return {
882
+ size: this.pluginCache.size,
883
+ hitRate: 0, // Would need to track hits/misses to calculate this
884
+ expiredEntries,
885
+ };
886
+ }
887
+
807
888
  /** Build AudioResource for a given track using the plugin pipeline */
808
889
  private async resourceFromTrack(track: Track): Promise<AudioResource> {
809
- // Resolve plugin similar to playNext
810
- const plugin = this.pluginManager.findPlugin(track.url) || this.pluginManager.get(track.source);
811
- if (!plugin) throw new Error(`No plugin found for track: ${track.title}`);
890
+ this.debug(`[ResourceFromTrack] Starting resource creation for track: ${track.title} (${track.source})`);
891
+
892
+ // Clear expired cache entries periodically
893
+ if (Math.random() < 0.1) {
894
+ // 10% chance to clean cache
895
+ this.clearExpiredCache();
896
+ }
897
+
898
+ // Resolve plugin using cache
899
+ const plugin = this.getCachedPlugin(track);
900
+ if (!plugin) {
901
+ this.debug(`[ResourceFromTrack] No plugin found for track: ${track.title} (${track.source})`);
902
+ throw new Error(`No plugin found for track: ${track.title}`);
903
+ }
904
+
905
+ this.debug(`[ResourceFromTrack] Using plugin: ${plugin.name} for track: ${track.title}`);
906
+
907
+ let streamInfo: StreamInfo | null = null;
908
+ const timeoutMs = this.options.extractorTimeout ?? 15000;
812
909
 
813
- let streamInfo: any;
814
910
  try {
815
- streamInfo = await withTimeout(plugin.getStream(track), this.options.extractorTimeout ?? 15000, "getStream timed out");
911
+ this.debug(`[ResourceFromTrack] Attempting getStream with ${plugin.name}, timeout: ${timeoutMs}ms`);
912
+ const startTime = Date.now();
913
+ streamInfo = await withTimeout(plugin.getStream(track), timeoutMs, "getStream timed out");
914
+ const duration = Date.now() - startTime;
915
+ this.debug(`[ResourceFromTrack] getStream successful with ${plugin.name} in ${duration}ms`);
916
+
917
+ if (!streamInfo?.stream) {
918
+ this.debug(`[ResourceFromTrack] getStream returned no stream from ${plugin.name}`);
919
+ throw new Error(`No stream returned from ${plugin.name}`);
920
+ }
816
921
  } catch (streamError) {
922
+ const errorMessage = streamError instanceof Error ? streamError.message : String(streamError);
923
+ this.debug(`[ResourceFromTrack] getStream failed with ${plugin.name}: ${errorMessage}`);
924
+
925
+ // Log more details for debugging
926
+ if (streamError instanceof Error && streamError.stack) {
927
+ this.debug(`[ResourceFromTrack] getStream error stack:`, streamError.stack);
928
+ }
929
+
817
930
  // try fallbacks
931
+ this.debug(`[ResourceFromTrack] Attempting fallback plugins for track: ${track.title}`);
818
932
  const allplugs = this.pluginManager.getAll();
933
+ let fallbackAttempts = 0;
934
+
819
935
  for (const p of allplugs) {
820
- if (typeof (p as any).getFallback !== "function") continue;
936
+ if (typeof (p as any).getFallback !== "function" && typeof (p as any).getStream !== "function") {
937
+ this.debug(`[ResourceFromTrack] Skipping plugin ${(p as any).name} - no getFallback or getStream method`);
938
+ continue;
939
+ }
940
+
941
+ fallbackAttempts++;
942
+ this.debug(`[ResourceFromTrack] Trying fallback plugin ${(p as any).name} (attempt ${fallbackAttempts})`);
943
+
821
944
  try {
945
+ // Try getStream first
946
+ const startTime = Date.now();
947
+ streamInfo = await withTimeout(p.getStream(track), timeoutMs, "getStream timed out");
948
+ const duration = Date.now() - startTime;
949
+
950
+ if (streamInfo?.stream) {
951
+ this.debug(`[ResourceFromTrack] Fallback getStream successful with ${(p as any).name} in ${duration}ms`);
952
+ break;
953
+ }
954
+
955
+ // Try getFallback if getStream didn't work
956
+ this.debug(`[ResourceFromTrack] Trying getFallback with ${(p as any).name}`);
957
+ const fallbackStartTime = Date.now();
822
958
  streamInfo = await withTimeout(
823
959
  (p as any).getFallback(track),
824
- this.options.extractorTimeout ?? 15000,
960
+ timeoutMs,
825
961
  `getFallback timed out for plugin ${(p as any).name}`,
826
962
  );
827
- if (!streamInfo?.stream) continue;
828
- break;
829
- } catch {}
963
+ const fallbackDuration = Date.now() - fallbackStartTime;
964
+
965
+ if (streamInfo?.stream) {
966
+ this.debug(`[ResourceFromTrack] Fallback getFallback successful with ${(p as any).name} in ${fallbackDuration}ms`);
967
+ break;
968
+ }
969
+
970
+ this.debug(`[ResourceFromTrack] Fallback plugin ${(p as any).name} returned no stream`);
971
+ } catch (fallbackError) {
972
+ const errorMessage = fallbackError instanceof Error ? fallbackError.message : String(fallbackError);
973
+ this.debug(`[ResourceFromTrack] Fallback plugin ${(p as any).name} failed: ${errorMessage}`);
974
+
975
+ // Log more details for debugging
976
+ if (fallbackError instanceof Error && fallbackError.stack) {
977
+ this.debug(`[ResourceFromTrack] Fallback error stack:`, fallbackError.stack);
978
+ }
979
+ }
980
+ }
981
+
982
+ if (!streamInfo?.stream) {
983
+ this.debug(`[ResourceFromTrack] All ${fallbackAttempts} fallback attempts failed for track: ${track.title}`);
984
+ throw new Error(`All getFallback attempts failed for track: ${track.title}`);
830
985
  }
831
- if (!streamInfo?.stream) throw new Error(`All getFallback attempts failed for track: ${track.title}`);
832
986
  }
833
987
 
988
+ this.debug(
989
+ `[ResourceFromTrack] Stream obtained, type: ${streamInfo.type}, metadata keys: ${Object.keys(
990
+ streamInfo.metadata || {},
991
+ ).join(", ")}`,
992
+ );
993
+
834
994
  const mapToStreamType = (type: string): StreamType => {
835
995
  switch (type) {
836
996
  case "webm/opus":
@@ -844,15 +1004,23 @@ export class Player extends EventEmitter {
844
1004
  };
845
1005
 
846
1006
  const inputType = mapToStreamType(streamInfo.type);
847
- return createAudioResource(streamInfo.stream, {
1007
+ this.debug(`[ResourceFromTrack] Creating AudioResource with inputType: ${inputType}`);
1008
+
1009
+ // Merge metadata safely
1010
+ const mergedMetadata = {
1011
+ ...track,
1012
+ ...(streamInfo.metadata || {}),
1013
+ };
1014
+
1015
+ const audioResource = createAudioResource(streamInfo.stream, {
848
1016
  // Prefer plugin-provided metadata (e.g., precise duration), fallback to track fields
849
- metadata: {
850
- ...(track as any),
851
- ...((streamInfo as any)?.metadata || {}),
852
- },
1017
+ metadata: mergedMetadata,
853
1018
  inputType,
854
1019
  inlineVolume: true,
855
1020
  });
1021
+
1022
+ this.debug(`[ResourceFromTrack] AudioResource created successfully for track: ${track.title}`);
1023
+ return audioResource;
856
1024
  }
857
1025
 
858
1026
  private async generateWillNext(): Promise<void> {