homebridge-sonos-scenes 0.1.44 → 0.1.45

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.
@@ -44,6 +44,7 @@ export declare class LocalSonosTransport implements SonosTransport {
44
44
  stopPlayback(householdId: string, coordinatorPlayerId: string): Promise<void>;
45
45
  ungroup(householdId: string, coordinatorPlayerId: string, memberPlayerIds?: string[]): Promise<void>;
46
46
  private tryLiveDiscovery;
47
+ private fetchParsedDeviceDescription;
47
48
  private getLiveGroupRuntimeState;
48
49
  private readLiveRuntimeValue;
49
50
  private loadFixtureSnapshot;
@@ -51,6 +52,7 @@ export declare class LocalSonosTransport implements SonosTransport {
51
52
  private requirePlayer;
52
53
  private requireLiveRecord;
53
54
  private requireLiveRecordInHousehold;
55
+ private setCoordinatorTransportUri;
54
56
  private getLivePlayerVolume;
55
57
  private setLivePlayerVolume;
56
58
  private getLivePlayerChannelVolume;
@@ -59,6 +61,10 @@ export declare class LocalSonosTransport implements SonosTransport {
59
61
  private setLivePlayerMuted;
60
62
  private getLivePlayerChannelMuted;
61
63
  private setLivePlayerChannelMuted;
64
+ private getLiveChannelVolume;
65
+ private setLiveChannelVolume;
66
+ private getLiveChannelMuted;
67
+ private setLiveChannelMuted;
62
68
  private findFavorite;
63
69
  private fetchFavorites;
64
70
  private setFixtureGroupRuntime;
@@ -66,7 +72,5 @@ export declare class LocalSonosTransport implements SonosTransport {
66
72
  private touchFixture;
67
73
  private fixtureAudioState;
68
74
  private fixtureChannelAudioState;
69
- private audioDevice;
70
- private channelAwareDevice;
71
75
  private playerLogLabel;
72
76
  }
@@ -8,7 +8,7 @@ exports.buildFavoriteTransportUri = buildFavoriteTransportUri;
8
8
  exports.parseFavoriteBrowseXml = parseFavoriteBrowseXml;
9
9
  const promises_1 = require("node:fs/promises");
10
10
  const node_path_1 = __importDefault(require("node:path"));
11
- const sonos_1 = require("sonos");
11
+ const sonos_1 = require("@svrooij/sonos");
12
12
  const sampleTopology_1 = require("../sampleTopology");
13
13
  function clone(value) {
14
14
  return JSON.parse(JSON.stringify(value));
@@ -106,13 +106,6 @@ function normalizeFavorite(favorite) {
106
106
  }
107
107
  return normalized;
108
108
  }
109
- function fallbackFavoritesFromBrowseResult(result) {
110
- return (result.items ?? []).map((favorite) => normalizeFavorite({
111
- id: favorite.id ?? favorite.title ?? favorite.uri ?? randomString(),
112
- name: favorite.title ?? favorite.id ?? "Favorite",
113
- uri: favorite.uri,
114
- }));
115
- }
116
109
  function parseFavoriteBrowseXml(xml) {
117
110
  const items = xml.match(/<item\b[\s\S]*?<\/item>/gi) ?? [];
118
111
  return items.map((itemXml) => normalizeFavorite({
@@ -130,20 +123,6 @@ function formatHouseholdDisplayName(householdIndex, householdCount) {
130
123
  }
131
124
  return `Sonos Household ${householdIndex + 1}`;
132
125
  }
133
- function extractFirstString(input) {
134
- if (typeof input === "string" && input.trim()) {
135
- return input.trim();
136
- }
137
- if (!input || typeof input !== "object") {
138
- return undefined;
139
- }
140
- for (const value of Object.values(input)) {
141
- if (typeof value === "string" && value.trim()) {
142
- return value.trim();
143
- }
144
- }
145
- return undefined;
146
- }
147
126
  function normalizeFixtureSnapshot(input) {
148
127
  return {
149
128
  ...clone(input),
@@ -167,18 +146,13 @@ function unique(values) {
167
146
  function channelToken(channel) {
168
147
  return channel === "right" ? "RF" : "LF";
169
148
  }
170
- function hasService(description, fragment) {
171
- const services = description?.serviceList?.service;
172
- const list = Array.isArray(services) ? services : services ? [services] : [];
173
- return list.some((service) => `${service.serviceType ?? ""} ${service.serviceId ?? ""}`.toLowerCase().includes(fragment.toLowerCase()));
174
- }
175
149
  function modelLooksTvCapable(description) {
176
150
  const model = `${description?.modelName ?? ""} ${description?.displayName ?? ""}`.toLowerCase();
177
151
  return /(arc|beam|playbar|playbase|ray|amp)/.test(model);
178
152
  }
179
153
  function detectSourceOptions(description, allowTvSource) {
180
154
  const sourceOptions = ["favorite"];
181
- if (hasService(description, "AudioIn")) {
155
+ if (description?.hasAudioIn) {
182
156
  sourceOptions.push("line_in");
183
157
  }
184
158
  if (allowTvSource && modelLooksTvCapable(description)) {
@@ -188,18 +162,13 @@ function detectSourceOptions(description, allowTvSource) {
188
162
  }
189
163
  function detectCapabilities(description, allowTvSource) {
190
164
  const capabilities = ["PLAYBACK"];
191
- if (hasService(description, "AudioIn")) {
165
+ if (description?.hasAudioIn) {
192
166
  capabilities.push("LINE_IN");
193
167
  }
194
168
  if (allowTvSource && modelLooksTvCapable(description)) {
195
169
  capabilities.push("TV");
196
170
  }
197
- if (!hasService(description, "ZoneGroupTopology")) {
198
- capabilities.push("AIRPLAY");
199
- }
200
- else {
201
- capabilities.push("AIRPLAY");
202
- }
171
+ capabilities.push("AIRPLAY");
203
172
  return capabilities;
204
173
  }
205
174
  function resolveFixturePath(fixturePath) {
@@ -211,21 +180,6 @@ function resolveFixturePath(fixturePath) {
211
180
  }
212
181
  return node_path_1.default.resolve(process.cwd(), fixturePath);
213
182
  }
214
- function maybeHostFromLocation(location) {
215
- if (!location) {
216
- return undefined;
217
- }
218
- try {
219
- const url = new URL(location);
220
- return {
221
- host: url.hostname,
222
- port: Number(url.port || 1400),
223
- };
224
- }
225
- catch {
226
- return undefined;
227
- }
228
- }
229
183
  function emptyChannelState() {
230
184
  return {
231
185
  volume: 0,
@@ -364,7 +318,12 @@ class LocalSonosTransport {
364
318
  }
365
319
  this.requirePlayer(household, playerId);
366
320
  const playerRecord = this.requireLiveRecord(playerId);
367
- await playerRecord.device.joinGroup(coordinator.name);
321
+ // Joining a group is setting the member's transport to the coordinator's RINCON URI.
322
+ await playerRecord.device.AVTransportService.SetAVTransportURI({
323
+ InstanceID: 0,
324
+ CurrentURI: `x-rincon:${coordinatorPlayerId}`,
325
+ CurrentURIMetaData: "",
326
+ });
368
327
  }
369
328
  for (const playerId of membersToRemove) {
370
329
  if (playerId === coordinatorPlayerId) {
@@ -372,7 +331,7 @@ class LocalSonosTransport {
372
331
  }
373
332
  this.requirePlayer(household, playerId);
374
333
  const playerRecord = this.requireLiveRecord(playerId);
375
- await playerRecord.device.leaveGroup();
334
+ await playerRecord.device.AVTransportService.BecomeCoordinatorOfStandaloneGroup();
376
335
  }
377
336
  this.householdRoots.set(householdId, coordinatorRecord.device);
378
337
  this.invalidateTopologyCache();
@@ -390,11 +349,7 @@ class LocalSonosTransport {
390
349
  this.requireHousehold(await this.discoverTopology(), householdId);
391
350
  const coordinator = this.requireLiveRecord(coordinatorPlayerId);
392
351
  this.logger?.info(`Sending Sonos line-in load request: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, sourceDevice=${deviceId}, playOnCompletion=${playOnCompletion}.`);
393
- await coordinator.device.setAVTransportURI({
394
- uri: `x-rincon-stream:${deviceId}`,
395
- metadata: "",
396
- onlySetUri: !playOnCompletion,
397
- });
352
+ await this.setCoordinatorTransportUri(coordinator, `x-rincon-stream:${deviceId}`, "", playOnCompletion);
398
353
  this.invalidateTopologyCache();
399
354
  this.logger?.info(`Sonos line-in load completed: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, sourceDevice=${deviceId}.`);
400
355
  }
@@ -420,10 +375,7 @@ class LocalSonosTransport {
420
375
  throw new Error(`Favorite "${favorite.name}" does not expose enough metadata to build a playable local URI.`);
421
376
  }
422
377
  this.logger?.info(`Sending Sonos favorite load request: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, favorite="${favorite.name}" (${favoriteId}), transportUri=${transportUri}.`);
423
- await coordinator.device.setAVTransportURI({
424
- uri: transportUri,
425
- metadata: favorite.metadata ?? "",
426
- });
378
+ await this.setCoordinatorTransportUri(coordinator, transportUri, favorite.metadata ?? "", true);
427
379
  this.invalidateTopologyCache();
428
380
  this.logger?.info(`Sonos favorite load completed: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, favorite="${favorite.name}" (${favoriteId}).`);
429
381
  }
@@ -442,11 +394,7 @@ class LocalSonosTransport {
442
394
  }
443
395
  const coordinator = this.requireLiveRecord(coordinatorPlayerId);
444
396
  this.logger?.info(`Sending Sonos TV load request: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, sourceDevice=${deviceId}, playOnCompletion=${playOnCompletion}.`);
445
- await coordinator.device.setAVTransportURI({
446
- uri: `x-sonos-htastream:${deviceId}:spdif`,
447
- metadata: "",
448
- onlySetUri: !playOnCompletion,
449
- });
397
+ await this.setCoordinatorTransportUri(coordinator, `x-sonos-htastream:${deviceId}:spdif`, "", playOnCompletion);
450
398
  this.invalidateTopologyCache();
451
399
  this.logger?.info(`Sonos TV load completed: household=${householdId}, coordinator=${this.playerLogLabel(coordinatorPlayerId)}, sourceDevice=${deviceId}.`);
452
400
  }
@@ -603,7 +551,7 @@ class LocalSonosTransport {
603
551
  const snapshot = await this.discoverTopology();
604
552
  this.requireHousehold(snapshot, householdId);
605
553
  const coordinator = this.requireLiveRecord(coordinatorPlayerId);
606
- await this.audioDevice(coordinator.device).pause();
554
+ await coordinator.device.AVTransportService.Pause();
607
555
  this.invalidateTopologyCache();
608
556
  }
609
557
  async stopPlayback(householdId, coordinatorPlayerId) {
@@ -621,7 +569,7 @@ class LocalSonosTransport {
621
569
  const snapshot = await this.discoverTopology();
622
570
  this.requireHousehold(snapshot, householdId);
623
571
  const coordinator = this.requireLiveRecord(coordinatorPlayerId);
624
- await coordinator.device.stop();
572
+ await coordinator.device.AVTransportService.Stop();
625
573
  this.invalidateTopologyCache();
626
574
  }
627
575
  async ungroup(householdId, coordinatorPlayerId, memberPlayerIds) {
@@ -647,121 +595,136 @@ class LocalSonosTransport {
647
595
  continue;
648
596
  }
649
597
  const player = this.requireLiveRecord(playerId);
650
- await player.device.leaveGroup();
598
+ await player.device.AVTransportService.BecomeCoordinatorOfStandaloneGroup();
651
599
  }
652
600
  this.invalidateTopologyCache();
653
601
  }
654
602
  async tryLiveDiscovery() {
655
603
  try {
656
- const discovery = new sonos_1.AsyncDeviceDiscovery();
657
- const devices = await discovery.discoverMultiple({ timeout: this.config.discoveryTimeoutMs });
658
- if (!devices.length) {
604
+ const discovery = new sonos_1.SonosDeviceDiscovery();
605
+ const timeoutSeconds = Math.max(1, Math.ceil(this.config.discoveryTimeoutMs / 1000));
606
+ const foundDevices = await discovery.Search(timeoutSeconds);
607
+ if (!foundDevices.length) {
659
608
  return undefined;
660
609
  }
661
- const uniqueDevices = Array.from(new Map(devices.map((device) => [`${device.host}:${device.port}`, device])).values());
662
- const records = await Promise.all(uniqueDevices.map(async (device) => {
663
- const [zoneAttrs, zoneInfo, description, householdResponse] = await Promise.allSettled([
664
- device.getZoneAttrs(),
665
- device.getZoneInfo(),
666
- device.deviceDescription(),
667
- device.devicePropertiesService().GetHouseholdID({}),
668
- ]);
610
+ const uniqueHosts = Array.from(new Map(foundDevices.map((found) => [found.host, found])).values());
611
+ const hostRecords = await Promise.all(uniqueHosts.map(async (found) => {
612
+ const device = new sonos_1.SonosDevice(found.host, found.port);
613
+ const householdId = await device.DevicePropertiesService.GetHouseholdID()
614
+ .then((response) => normalizedString(response.CurrentHouseholdID))
615
+ .catch(() => undefined);
669
616
  return {
617
+ host: found.host,
618
+ port: found.port,
670
619
  device,
671
- host: device.host,
672
- port: device.port,
673
- householdId: extractFirstString(householdResponse.status === "fulfilled" ? householdResponse.value : undefined)
674
- ?? "local-household",
675
- zoneAttrs: zoneAttrs.status === "fulfilled" ? zoneAttrs.value : undefined,
676
- zoneInfo: zoneInfo.status === "fulfilled" ? zoneInfo.value : undefined,
677
- description: description.status === "fulfilled" ? description.value : undefined,
620
+ householdId: householdId ?? "local-household",
678
621
  };
679
622
  }));
680
623
  const rootsByHousehold = new Map();
681
- for (const record of records) {
682
- if (!rootsByHousehold.has(record.householdId)) {
683
- rootsByHousehold.set(record.householdId, record.device);
624
+ for (const hostRecord of hostRecords) {
625
+ if (!rootsByHousehold.has(hostRecord.householdId)) {
626
+ rootsByHousehold.set(hostRecord.householdId, hostRecord);
684
627
  }
685
628
  }
686
629
  const households = [];
687
630
  const livePlayers = new Map();
688
- for (const [householdId, root] of rootsByHousehold) {
689
- const rawGroups = await root.getAllGroups().catch(() => []);
690
- const householdRecords = records.filter((record) => record.householdId === householdId);
691
- const householdByHost = new Map(householdRecords.map((record) => [record.host, record]));
631
+ for (const [householdId, rootRecord] of rootsByHousehold) {
632
+ const root = rootRecord.device;
633
+ const zoneGroups = await root.ZoneGroupTopologyService.GetParsedZoneGroupState().catch(() => []);
692
634
  const players = [];
693
635
  const groups = [];
694
- for (const rawGroup of rawGroups) {
695
- const groupId = rawGroup.ID ?? `group-${rawGroup.Coordinator ?? Math.random().toString(16).slice(2)}`;
636
+ const memberHosts = new Map();
637
+ for (const zoneGroup of zoneGroups) {
638
+ for (const member of zoneGroup.members) {
639
+ memberHosts.set(member.host, member.port);
640
+ }
641
+ }
642
+ const descriptionsByHost = new Map(await Promise.all(Array.from(memberHosts).map(async ([host, port]) => [host, await this.fetchParsedDeviceDescription(host, port)])));
643
+ for (const zoneGroup of zoneGroups) {
644
+ const groupId = zoneGroup.groupId || `group-${zoneGroup.coordinator.uuid}`;
696
645
  const playerIds = [];
697
- const groupMembers = Array.isArray(rawGroup.ZoneGroupMember) ? rawGroup.ZoneGroupMember : [rawGroup.ZoneGroupMember];
698
- for (const member of groupMembers) {
699
- const location = maybeHostFromLocation(member.Location);
700
- const record = location ? householdByHost.get(location.host) : undefined;
701
- const playerId = member.UUID ?? record?.zoneInfo?.SerialNumber ?? record?.host ?? `player-${players.length}`;
646
+ for (const member of zoneGroup.members) {
647
+ const playerId = member.uuid;
702
648
  playerIds.push(playerId);
649
+ const description = descriptionsByHost.get(member.host);
703
650
  if (!players.some((player) => player.id === playerId)) {
704
- const sourceOptions = detectSourceOptions(record?.description, this.config.allowTvSource);
705
- const player = {
651
+ players.push({
706
652
  id: playerId,
707
- name: member.ZoneName ?? record?.zoneAttrs?.CurrentZoneName ?? record?.host ?? playerId,
708
- model: record?.description?.modelName ?? record?.description?.displayName,
709
- capabilities: detectCapabilities(record?.description, this.config.allowTvSource),
653
+ name: member.name,
654
+ model: description?.modelName ?? description?.displayName,
655
+ capabilities: detectCapabilities(description, this.config.allowTvSource),
710
656
  deviceIds: unique([playerId]),
711
657
  groupId,
712
- isCoordinator: rawGroup.Coordinator === playerId,
658
+ isCoordinator: zoneGroup.coordinator.uuid === playerId,
713
659
  fixedVolume: false,
714
- sourceOptions,
715
- };
716
- players.push(player);
717
- }
718
- else {
719
- const existing = players.find((player) => player.id === playerId);
720
- if (existing) {
721
- existing.groupId = groupId;
722
- existing.isCoordinator = rawGroup.Coordinator === playerId;
723
- }
660
+ sourceOptions: detectSourceOptions(description, this.config.allowTvSource),
661
+ });
724
662
  }
725
- if (record) {
726
- livePlayers.set(playerId, record);
663
+ if (!livePlayers.has(playerId)) {
664
+ livePlayers.set(playerId, {
665
+ device: new sonos_1.SonosDevice(member.host, member.port, member.uuid),
666
+ host: member.host,
667
+ port: member.port,
668
+ householdId,
669
+ zoneName: member.name,
670
+ description,
671
+ });
727
672
  }
728
673
  }
729
- const runtimeState = await this.getLiveGroupRuntimeState(rawGroup.Coordinator ? livePlayers.get(rawGroup.Coordinator) : undefined);
674
+ const runtimeState = await this.getLiveGroupRuntimeState(livePlayers.get(zoneGroup.coordinator.uuid));
730
675
  groups.push({
731
676
  id: groupId,
732
- name: rawGroup.Name ?? players.find((player) => player.id === rawGroup.Coordinator)?.name ?? groupId,
733
- coordinatorId: rawGroup.Coordinator ?? playerIds[0],
677
+ name: zoneGroup.name || zoneGroup.coordinator.name || groupId,
678
+ coordinatorId: zoneGroup.coordinator.uuid,
734
679
  playerIds,
735
680
  ...runtimeState,
736
681
  });
737
682
  }
738
- for (const record of householdRecords) {
739
- const existingPlayer = players.find((player) => player.name === record.zoneAttrs?.CurrentZoneName || player.id === record.zoneInfo?.SerialNumber);
740
- if (existingPlayer) {
683
+ // Devices found over SSDP for this household but missing from its zone
684
+ // group state still get a standalone entry, like the previous transport.
685
+ for (const hostRecord of hostRecords) {
686
+ if (hostRecord.householdId !== householdId || memberHosts.has(hostRecord.host)) {
741
687
  continue;
742
688
  }
743
- const fallbackId = record.zoneInfo?.SerialNumber ?? `${record.host}:${record.port}`;
744
- const sourceOptions = detectSourceOptions(record.description, this.config.allowTvSource);
689
+ const [zoneAttrs, zoneInfo] = await Promise.allSettled([
690
+ hostRecord.device.DevicePropertiesService.GetZoneAttributes(),
691
+ hostRecord.device.DevicePropertiesService.GetZoneInfo(),
692
+ ]);
693
+ const zoneName = zoneAttrs.status === "fulfilled" ? normalizedString(zoneAttrs.value.CurrentZoneName) : undefined;
694
+ const serialNumber = zoneInfo.status === "fulfilled" ? normalizedString(zoneInfo.value.SerialNumber) : undefined;
695
+ const fallbackId = serialNumber ?? `${hostRecord.host}:${hostRecord.port}`;
696
+ if (players.some((player) => player.id === fallbackId || (zoneName !== undefined && player.name === zoneName))) {
697
+ continue;
698
+ }
699
+ const description = await this.fetchParsedDeviceDescription(hostRecord.host, hostRecord.port);
745
700
  players.push({
746
701
  id: fallbackId,
747
- name: record.zoneAttrs?.CurrentZoneName ?? record.host,
748
- model: record.description?.modelName ?? record.description?.displayName,
749
- capabilities: detectCapabilities(record.description, this.config.allowTvSource),
702
+ name: zoneName ?? hostRecord.host,
703
+ model: description?.modelName ?? description?.displayName,
704
+ capabilities: detectCapabilities(description, this.config.allowTvSource),
750
705
  deviceIds: [fallbackId],
751
706
  groupId: `standalone-${fallbackId}`,
752
707
  isCoordinator: true,
753
708
  fixedVolume: false,
754
- sourceOptions,
709
+ sourceOptions: detectSourceOptions(description, this.config.allowTvSource),
755
710
  });
756
- const runtimeState = await this.getLiveGroupRuntimeState(record);
711
+ const standaloneRecord = {
712
+ device: hostRecord.device,
713
+ host: hostRecord.host,
714
+ port: hostRecord.port,
715
+ householdId,
716
+ zoneName,
717
+ description,
718
+ };
719
+ const runtimeState = await this.getLiveGroupRuntimeState(standaloneRecord);
757
720
  groups.push({
758
721
  id: `standalone-${fallbackId}`,
759
- name: record.zoneAttrs?.CurrentZoneName ?? record.host,
722
+ name: zoneName ?? hostRecord.host,
760
723
  coordinatorId: fallbackId,
761
724
  playerIds: [fallbackId],
762
725
  ...runtimeState,
763
726
  });
764
- livePlayers.set(fallbackId, record);
727
+ livePlayers.set(fallbackId, standaloneRecord);
765
728
  }
766
729
  const favorites = await this.fetchFavorites(root);
767
730
  households.push({
@@ -787,20 +750,38 @@ class LocalSonosTransport {
787
750
  return undefined;
788
751
  }
789
752
  }
753
+ async fetchParsedDeviceDescription(host, port) {
754
+ try {
755
+ const response = await fetch(`http://${host}:${port}/xml/device_description.xml`, {
756
+ signal: AbortSignal.timeout(Math.max(1_000, this.config.requestTimeoutMs)),
757
+ });
758
+ if (!response.ok) {
759
+ return undefined;
760
+ }
761
+ const xml = await response.text();
762
+ return {
763
+ modelName: extractTagValue(xml, "modelName"),
764
+ displayName: extractTagValue(xml, "displayName"),
765
+ hasAudioIn: /service(?:Id)?:AudioIn/i.test(xml),
766
+ };
767
+ }
768
+ catch {
769
+ return undefined;
770
+ }
771
+ }
790
772
  async getLiveGroupRuntimeState(coordinatorRecord) {
791
773
  if (!coordinatorRecord) {
792
774
  return {
793
775
  playbackState: "PLAYBACK_STATE_UNKNOWN",
794
776
  };
795
777
  }
796
- const device = coordinatorRecord.device;
797
- const playerLabel = coordinatorRecord.zoneAttrs?.CurrentZoneName ?? coordinatorRecord.host;
798
- const [playbackState, mediaInfo] = await Promise.all([
799
- this.readLiveRuntimeValue(`${playerLabel} playback state`, () => device.getCurrentState?.()),
800
- this.readLiveRuntimeValue(`${playerLabel} media info`, () => device.avTransportService?.().GetMediaInfo?.()),
778
+ const playerLabel = coordinatorRecord.zoneName ?? coordinatorRecord.host;
779
+ const [transportInfo, mediaInfo] = await Promise.all([
780
+ this.readLiveRuntimeValue(`${playerLabel} playback state`, () => coordinatorRecord.device.AVTransportService.GetTransportInfo()),
781
+ this.readLiveRuntimeValue(`${playerLabel} media info`, () => coordinatorRecord.device.AVTransportService.GetMediaInfo()),
801
782
  ]);
802
783
  return {
803
- playbackState: normalizeSonosPlaybackState(playbackState),
784
+ playbackState: normalizeSonosPlaybackState(transportInfo?.CurrentTransportState),
804
785
  currentSourceUri: normalizedString(mediaInfo?.CurrentURI),
805
786
  };
806
787
  }
@@ -882,55 +863,74 @@ class LocalSonosTransport {
882
863
  }
883
864
  return record;
884
865
  }
866
+ async setCoordinatorTransportUri(coordinator, uri, metadata, playOnCompletion) {
867
+ await coordinator.device.AVTransportService.SetAVTransportURI({
868
+ InstanceID: 0,
869
+ CurrentURI: uri,
870
+ CurrentURIMetaData: metadata,
871
+ });
872
+ if (playOnCompletion) {
873
+ await coordinator.device.AVTransportService.Play({ InstanceID: 0, Speed: "1" });
874
+ }
875
+ }
885
876
  async getLivePlayerVolume(playerId) {
886
- const player = this.requireLiveRecord(playerId);
887
- const volume = Math.max(0, Math.min(100, Math.round(await this.audioDevice(player.device).getVolume())));
888
- this.logger?.debug(`Sonos get volume returned: player=${this.playerLogLabel(playerId)}, volume=${volume}.`);
889
- return volume;
877
+ return this.getLiveChannelVolume(playerId, "Master");
890
878
  }
891
879
  async setLivePlayerVolume(playerId, volume) {
892
- const player = this.requireLiveRecord(playerId);
893
- const normalizedVolume = Math.max(0, Math.min(100, Math.round(volume)));
894
- this.logger?.info(`Sending Sonos set volume request: player=${this.playerLogLabel(playerId)}, volume=${normalizedVolume}.`);
895
- await player.device.setVolume(normalizedVolume);
896
- this.logger?.info(`Sonos set volume completed: player=${this.playerLogLabel(playerId)}, volume=${normalizedVolume}.`);
880
+ await this.setLiveChannelVolume(playerId, "Master", volume);
897
881
  }
898
882
  async getLivePlayerChannelVolume(playerId, channel) {
899
- const player = this.requireLiveRecord(playerId);
900
- const volume = Math.max(0, Math.min(100, Math.round(await this.channelAwareDevice(player.device).renderingControlService().GetVolume(channelToken(channel)))));
901
- this.logger?.debug(`Sonos get channel volume returned: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${volume}.`);
902
- return volume;
883
+ return this.getLiveChannelVolume(playerId, channelToken(channel));
903
884
  }
904
885
  async setLivePlayerChannelVolume(playerId, channel, volume) {
905
- const player = this.requireLiveRecord(playerId);
906
- const normalizedVolume = Math.max(0, Math.min(100, Math.round(volume)));
907
- this.logger?.info(`Sending Sonos set channel volume request: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${normalizedVolume}.`);
908
- await this.audioDevice(player.device).setVolume(normalizedVolume, channelToken(channel));
909
- this.logger?.info(`Sonos set channel volume completed: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${normalizedVolume}.`);
886
+ await this.setLiveChannelVolume(playerId, channelToken(channel), volume);
910
887
  }
911
888
  async getLivePlayerMuted(playerId) {
912
- const player = this.requireLiveRecord(playerId);
913
- const muted = await this.audioDevice(player.device).getMuted();
914
- this.logger?.debug(`Sonos get mute returned: player=${this.playerLogLabel(playerId)}, muted=${muted}.`);
915
- return muted;
889
+ return this.getLiveChannelMuted(playerId, "Master");
916
890
  }
917
891
  async setLivePlayerMuted(playerId, muted) {
918
- const player = this.requireLiveRecord(playerId);
919
- this.logger?.info(`Sending Sonos set mute request: player=${this.playerLogLabel(playerId)}, muted=${muted}.`);
920
- await this.audioDevice(player.device).setMuted(muted);
921
- this.logger?.info(`Sonos set mute completed: player=${this.playerLogLabel(playerId)}, muted=${muted}.`);
892
+ await this.setLiveChannelMuted(playerId, "Master", muted);
922
893
  }
923
894
  async getLivePlayerChannelMuted(playerId, channel) {
895
+ return this.getLiveChannelMuted(playerId, channelToken(channel));
896
+ }
897
+ async setLivePlayerChannelMuted(playerId, channel, muted) {
898
+ await this.setLiveChannelMuted(playerId, channelToken(channel), muted);
899
+ }
900
+ async getLiveChannelVolume(playerId, channel) {
924
901
  const player = this.requireLiveRecord(playerId);
925
- const muted = await this.channelAwareDevice(player.device).renderingControlService().GetMute(channelToken(channel));
926
- this.logger?.debug(`Sonos get channel mute returned: player=${this.playerLogLabel(playerId)}, channel=${channel}, muted=${muted}.`);
902
+ const response = await player.device.RenderingControlService.GetVolume({ InstanceID: 0, Channel: channel });
903
+ const volume = Math.max(0, Math.min(100, Math.round(response.CurrentVolume)));
904
+ this.logger?.debug(`Sonos get volume returned: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${volume}.`);
905
+ return volume;
906
+ }
907
+ async setLiveChannelVolume(playerId, channel, volume) {
908
+ const player = this.requireLiveRecord(playerId);
909
+ const normalizedVolume = Math.max(0, Math.min(100, Math.round(volume)));
910
+ this.logger?.info(`Sending Sonos set volume request: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${normalizedVolume}.`);
911
+ await player.device.RenderingControlService.SetVolume({
912
+ InstanceID: 0,
913
+ Channel: channel,
914
+ DesiredVolume: normalizedVolume,
915
+ });
916
+ this.logger?.info(`Sonos set volume completed: player=${this.playerLogLabel(playerId)}, channel=${channel}, volume=${normalizedVolume}.`);
917
+ }
918
+ async getLiveChannelMuted(playerId, channel) {
919
+ const player = this.requireLiveRecord(playerId);
920
+ const response = await player.device.RenderingControlService.GetMute({ InstanceID: 0, Channel: channel });
921
+ const muted = response.CurrentMute === true;
922
+ this.logger?.debug(`Sonos get mute returned: player=${this.playerLogLabel(playerId)}, channel=${channel}, muted=${muted}.`);
927
923
  return muted;
928
924
  }
929
- async setLivePlayerChannelMuted(playerId, channel, muted) {
925
+ async setLiveChannelMuted(playerId, channel, muted) {
930
926
  const player = this.requireLiveRecord(playerId);
931
- this.logger?.info(`Sending Sonos set channel mute request: player=${this.playerLogLabel(playerId)}, channel=${channel}, muted=${muted}.`);
932
- await this.audioDevice(player.device).setMuted(muted, channelToken(channel));
933
- this.logger?.info(`Sonos set channel mute completed: player=${this.playerLogLabel(playerId)}, channel=${channel}, muted=${muted}.`);
927
+ this.logger?.info(`Sending Sonos set mute request: player=${this.playerLogLabel(playerId)}, channel=${channel}, muted=${muted}.`);
928
+ await player.device.RenderingControlService.SetMute({
929
+ InstanceID: 0,
930
+ Channel: channel,
931
+ DesiredMute: muted,
932
+ });
933
+ this.logger?.info(`Sonos set mute completed: player=${this.playerLogLabel(playerId)}, channel=${channel}, muted=${muted}.`);
934
934
  }
935
935
  async findFavorite(householdId, favoriteId) {
936
936
  const root = this.householdRoots.get(householdId);
@@ -945,25 +945,28 @@ class LocalSonosTransport {
945
945
  return favorite;
946
946
  }
947
947
  async fetchFavorites(root) {
948
- const browseResponse = await root.contentDirectoryService().Browse({
948
+ // The raw Browse call (not BrowseParsed) returns the favorite DIDL-Lite XML
949
+ // untouched, which is required to keep r:resMD/r:description/r:type metadata
950
+ // for container favorites; sonos-ts's parsed Track model drops those fields.
951
+ const browseResponse = await root.ContentDirectoryService.Browse({
952
+ ObjectID: "FV:2",
949
953
  BrowseFlag: "BrowseDirectChildren",
950
954
  Filter: "*",
951
- StartingIndex: "0",
952
- RequestedCount: "100",
955
+ StartingIndex: 0,
956
+ RequestedCount: 100,
953
957
  SortCriteria: "",
954
- ObjectID: "FV:2",
955
958
  }).catch(() => undefined);
956
959
  const browseFavorites = typeof browseResponse?.Result === "string" ? parseFavoriteBrowseXml(browseResponse.Result) : [];
957
960
  if (browseFavorites.length > 0) {
958
961
  return browseFavorites;
959
962
  }
960
- const fallbackResult = await root.getFavorites().catch(() => ({
961
- items: [],
962
- returned: "0",
963
- total: "0",
964
- updateID: "0",
963
+ const fallbackResponse = await root.GetFavorites().catch(() => undefined);
964
+ const fallbackTracks = Array.isArray(fallbackResponse?.Result) ? fallbackResponse.Result : [];
965
+ return fallbackTracks.map((track) => normalizeFavorite({
966
+ id: track.ItemId ?? track.Title ?? track.TrackUri ?? randomString(),
967
+ name: track.Title ?? track.ItemId ?? "Favorite",
968
+ uri: track.TrackUri,
965
969
  }));
966
- return fallbackFavoritesFromBrowseResult(fallbackResult);
967
970
  }
968
971
  setFixtureGroupRuntime(householdId, coordinatorPlayerId, runtime) {
969
972
  const household = this.requireHousehold(this.fixtureState, householdId);
@@ -1044,15 +1047,9 @@ class LocalSonosTransport {
1044
1047
  const state = this.fixtureAudioState(playerId);
1045
1048
  return channel === "right" ? state.right : state.left;
1046
1049
  }
1047
- audioDevice(device) {
1048
- return device;
1049
- }
1050
- channelAwareDevice(device) {
1051
- return device;
1052
- }
1053
1050
  playerLogLabel(playerId) {
1054
1051
  const record = this.livePlayers.get(playerId);
1055
- const playerName = record?.zoneAttrs?.CurrentZoneName?.trim();
1052
+ const playerName = record?.zoneName?.trim();
1056
1053
  return playerName ? `${playerName} (${playerId})` : playerId;
1057
1054
  }
1058
1055
  }
@@ -1 +1 @@
1
- {"version":3,"file":"localTransport.js","sourceRoot":"","sources":["../../../src/transports/localTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"localTransport.js","sourceRoot":"","sources":["../../../src/transports/localTransport.ts"],"names":[],"mappings":";;;;;;AA2GA,8DAUC;AAsDD,wDAaC;AAxLD,+CAA4C;AAC5C,0DAA6B;AAC7B,0CAAmE;AAEnE,sDAAmD;AA0CnD,SAAS,KAAK,CAAI,KAAQ;IACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAM,CAAC;AAChD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,KAAK;SACT,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;SACxB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACvE,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW,EAAE,OAAe,EAAE,aAAqB;IAChF,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,cAAc,YAAY,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAChH,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,OAAe;IACnD,MAAM,OAAO,GAAG,IAAI,MAAM,CACxB,IAAI,YAAY,CAAC,OAAO,CAAC,iCAAiC,YAAY,CAAC,OAAO,CAAC,GAAG,EAClF,GAAG,CACJ,CAAC;IACF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAgB;IACjD,MAAM,cAAc,GAAG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACrE,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IACzE,IAAI,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1E,OAAO,mBAAmB,cAAc,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO,wBAAwB,cAAc,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA4B;IACzD,OAAO,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACvF,CAAC;AAED,SAAgB,yBAAyB,CAAC,QAAiD;IACzF,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;QACzB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,yBAAyB,CAChC,QAAkF;IAElF,MAAM,aAAa,GAAG,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE/D,IAAI,aAAa,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACjD,OAAO,aAAa,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,UAAU,qHAAqH,CAAC;IAC7L,CAAC;IAED,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,CAAC;QACxD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,UAAU,CAAC;QACtE,OAAO,aAAa,WAAW,yHAAyH,CAAC;IAC3J,CAAC;IAED,OAAO,oFAAoF,CAAC;AAC9F,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAuB;IAChD,MAAM,UAAU,GAAkB;QAChC,GAAG,QAAQ;QACX,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QACtB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;KACjD,CAAC;IAEF,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;QACzB,UAAU,CAAC,GAAG,GAAG,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC9B,UAAU,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC5F,IAAI,YAAY,EAAE,CAAC;QACjB,UAAU,CAAC,YAAY,GAAG,YAAY,CAAC;IACzC,CAAC;IAED,MAAM,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACtG,IAAI,iBAAiB,EAAE,CAAC;QACtB,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QACjD,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,sBAAsB,CAAC,GAAW;IAChD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC;IAE3D,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAC3B,iBAAiB,CAAC;QAChB,EAAE,EAAE,oBAAoB,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;QACxF,IAAI,EAAE,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,UAAU;QACxD,GAAG,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC;QACpC,QAAQ,EAAE,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC;QAC7C,WAAW,EAAE,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC;QACtD,YAAY,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;KACjD,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,cAAsB,EAAE,cAAsB;IAChF,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,mBAAmB,cAAc,GAAG,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAuB;IACvD,OAAO;QACL,GAAG,KAAK,CAAC,KAAK,CAAC;QACf,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,QAA0B;IACxD,OAAO,IAAI,GAAG,CACZ,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CACxC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,EAAE;QACT;YACE,MAAM,EAAE,iBAAiB,EAAE;YAC3B,IAAI,EAAE,iBAAiB,EAAE;YACzB,KAAK,EAAE,iBAAiB,EAAE;SACC;KACrB,CAAC,CACZ,CACF,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAI,MAAW;IAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,YAAY,CAAC,OAA2B;IAC/C,OAAO,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAgD;IAC3E,MAAM,KAAK,GAAG,GAAG,WAAW,EAAE,SAAS,IAAI,EAAE,IAAI,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;IAChG,OAAO,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAgD,EAAE,aAAsB;IACnG,MAAM,aAAa,GAAsB,CAAC,UAAU,CAAC,CAAC;IAEtD,IAAI,WAAW,EAAE,UAAU,EAAE,CAAC;QAC5B,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,aAAa,IAAI,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAgD,EAAE,aAAsB;IAClG,MAAM,YAAY,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,WAAW,EAAE,UAAU,EAAE,CAAC;QAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,aAAa,IAAI,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,kBAAkB,CAAC,WAA+B;IACzD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,mBAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,mBAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;QACL,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,KAAK;KACb,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc;IACjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC9E,OAAO,wBAAwB,CAAC;IAClC,CAAC;IAED,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7D,OAAO,gCAAgC,CAAC;IAC1C,CAAC;IAED,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjI,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,IAAI,UAAU,KAAK,eAAe,IAAI,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC3E,OAAO,8BAA8B,CAAC;IACxC,CAAC;IAED,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAE5C,MAAa,mBAAmB;IAYX;IACA;IAZH,IAAI,GAAG,OAAO,CAAC;IACvB,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;IAClD,YAAY,GAAG,wBAAwB,CAAC,+BAAc,CAAC,CAAC;IACxD,kBAAkB,GAAG,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/D,aAAa,GAAG,KAAK,CAAC;IACtB,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,YAAY,GAAG,wBAAwB,CAAC,+BAAc,CAAC,CAAC;IACxD,iBAAiB,CAAqD;IACtE,qBAAqB,CAAyC;IAEtE,YACmB,MAA4B,EAC5B,MAAyB;QADzB,WAAM,GAAN,MAAM,CAAsB;QAC5B,WAAM,GAAN,MAAM,CAAmB;IACzC,CAAC;IAEI,uBAAuB;QAC7B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;IACrC,CAAC;IAED,cAAc,CAAC,IAAqB;QAClC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC7C,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,WAAW,EAAE,SAAS,CAAC,WAAW;SACnC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAChG,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,OAAO,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC;QACpC,OAAO,KAAK,CAAC,eAAe,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,qBAAqB,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,EAAE;aACjD,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,iBAAiB,GAAG;oBACvB,QAAQ;oBACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,qBAAqB;iBAC9C,CAAC;YACJ,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;QACzC,CAAC,CAAC,CAAC;QAEL,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,mBAA2B,EAAE,eAAyB;QAC/F,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,mBAAmB,EAAE,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACzH,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACvE,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,mBAAmB,CAAC;eACjG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAErF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE,SAAS,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACrF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAExC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,mBAAmB,CAAC,CAAC;QACrH,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CACvD,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,mBAAmB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAChF,CAAC;QAEF,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;QAE/F,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,WAAmB,EACnB,mBAA2B,EAC3B,YAAsB,EACtB,eAAyB;QAEzB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,mBAAmB,CAAC;mBAC7F,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACrF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,SAAS,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACjF,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;gBACpC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;gBACvC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAC1F,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACvE,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAEtE,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACtD,qFAAqF;YACrF,MAAM,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;gBAC7D,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,YAAY,mBAAmB,EAAE;gBAC7C,kBAAkB,EAAE,EAAE;aACvB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,eAAe,EAAE,CAAC;YACvC,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,YAAY,CAAC,MAAM,CAAC,kBAAkB,CAAC,kCAAkC,EAAE,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,mBAA2B,EAC3B,QAAgB,EAChB,gBAAgB,GAAG,IAAI;QAEvB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACjC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,mBAAmB,EAAE;gBAC5D,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,qBAAqB;gBAClF,gBAAgB,EAAE,mBAAmB,QAAQ,EAAE;aAChD,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE,EAAE,WAAW,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,iDAAiD,WAAW,iBAAiB,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,QAAQ,sBAAsB,gBAAgB,GAAG,CACzL,CAAC;QACF,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,mBAAmB,QAAQ,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACxG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,2CAA2C,WAAW,iBAAiB,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,QAAQ,GAAG,CAC7I,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,mBAA2B,EAAE,UAAkB;QACrF,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YACxG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,mBAAmB,EAAE;gBAC5D,aAAa,EAAE,wBAAwB;gBACvC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,yBAAyB,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;aACtH,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAClE,IAAI,QAAQ,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,iBAAiB,IAAI,aAAa,QAAQ,CAAC,IAAI,gDAAgD,CAAC,CAAC;QAC5H,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAClF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,kEAAkE,CAAC,CAAC;QAChH,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,kDAAkD,WAAW,iBAAiB,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,eAAe,QAAQ,CAAC,IAAI,MAAM,UAAU,mBAAmB,YAAY,GAAG,CACrM,CAAC;QACF,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAChG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,4CAA4C,WAAW,iBAAiB,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,eAAe,QAAQ,CAAC,IAAI,MAAM,UAAU,IAAI,CACjK,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CACV,WAAmB,EACnB,mBAA2B,EAC3B,QAAgB,EAChB,gBAAgB,GAAG,IAAI;QAEvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACjC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,mBAAmB,EAAE;gBAC5D,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,qBAAqB;gBAClF,gBAAgB,EAAE,qBAAqB,QAAQ,QAAQ;aACxD,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,4CAA4C,WAAW,iBAAiB,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,QAAQ,sBAAsB,gBAAgB,GAAG,CACpL,CAAC;QACF,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,qBAAqB,QAAQ,QAAQ,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAChH,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,sCAAsC,WAAW,iBAAiB,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,QAAQ,GAAG,CACxI,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,mBAA2B,EAAE,MAAc;QACnF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC;eACpF,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,gBAAgB,CAAC;YACpE,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7G,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,mBAA2B;QACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC;eACpF,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;YACzC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACnF,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,QAAgB;QACzD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,QAAgB,EAAE,MAAc;QACzE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAChG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,WAAmB,EAAE,QAAgB,EAAE,OAA2B;QAC7F,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;QACjE,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,WAAmB,EACnB,QAAgB,EAChB,OAA2B,EAC3B,MAAc;QAEd,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,mBAA2B;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC;eACpF,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;YACxC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAClF,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5F,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,mBAA2B,EAAE,KAAc;QAClF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC;eACpF,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YACxD,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,QAAgB;QACxD,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,QAAgB,EAAE,KAAc;QACxE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YACtD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,WAAmB,EAAE,QAAgB,EAAE,OAA2B;QAC5F,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,WAAmB,EACnB,QAAgB,EAChB,OAA2B,EAC3B,KAAc;QAEd,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;YAC/D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,4BAA4B,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,mBAA2B;QAClE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACxE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC;mBACpF,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACnF,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,aAAa,GAAG,gCAAgC,CAAC;YACzD,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAChE,MAAM,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACpD,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,mBAA2B;QACjE,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACxE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC;mBACpF,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACnF,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,aAAa,GAAG,qBAAqB,CAAC;YAC9C,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;QAChE,MAAM,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,mBAA2B,EAAE,eAA0B;QACxF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC;eACpF,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;YAC3D,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,mBAAmB,CAAC,CAAC;QAE3E,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACrF,KAAK,MAAM,cAAc,IAAI,OAAO,EAAE,CAAC;gBACrC,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,cAAc,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO;QACT,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC/B,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,kCAAkC,EAAE,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,4BAAoB,EAAE,CAAC;YAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC,CAAC;YACrF,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC5D,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAEnG,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9B,MAAM,MAAM,GAAG,IAAI,mBAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,cAAc,EAAE;qBACtE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;qBACjE,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC1B,OAAO;oBACL,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM;oBACN,WAAW,EAAE,WAAW,IAAI,iBAAiB;iBAC9C,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAwC,CAAC;YACzE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAClD,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YAED,MAAM,UAAU,GAAwB,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;YAExD,KAAK,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,IAAI,gBAAgB,EAAE,CAAC;gBACzD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC/B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjG,MAAM,OAAO,GAAkB,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAiB,EAAE,CAAC;gBAEhC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;gBAC9C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACnC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;wBACvC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;gBACD,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAChC,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CACzB,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAU,CAC7F,CACF,CACF,CAAC;gBAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACnC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,IAAI,SAAS,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;oBAC3E,MAAM,SAAS,GAAa,EAAE,CAAC;oBAE/B,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;wBACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;wBAC7B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACzB,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAExD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC;4BACtD,OAAO,CAAC,IAAI,CAAC;gCACX,EAAE,EAAE,QAAQ;gCACZ,IAAI,EAAE,MAAM,CAAC,IAAI;gCACjB,KAAK,EAAE,WAAW,EAAE,SAAS,IAAI,WAAW,EAAE,WAAW;gCACzD,YAAY,EAAE,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gCACxE,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;gCAC7B,OAAO;gCACP,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ;gCACtD,WAAW,EAAE,KAAK;gCAClB,aAAa,EAAE,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;6BAC3E,CAAC,CAAC;wBACL,CAAC;wBAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC/B,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;gCACxB,MAAM,EAAE,IAAI,mBAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;gCAC9D,IAAI,EAAE,MAAM,CAAC,IAAI;gCACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gCACjB,WAAW;gCACX,QAAQ,EAAE,MAAM,CAAC,IAAI;gCACrB,WAAW;6BACZ,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;oBAEtG,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO;wBAC7D,aAAa,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI;wBACzC,SAAS;wBACT,GAAG,YAAY;qBAChB,CAAC,CAAC;gBACL,CAAC;gBAED,uEAAuE;gBACvE,yEAAyE;gBACzE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;oBACrC,IAAI,UAAU,CAAC,WAAW,KAAK,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/E,SAAS;oBACX,CAAC;oBAED,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;wBACrD,UAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC,iBAAiB,EAAE;wBAC7D,UAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC,WAAW,EAAE;qBACxD,CAAC,CAAC;oBACH,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAClH,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACjH,MAAM,UAAU,GAAG,YAAY,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;oBAC3E,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,UAAU,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC;wBAC/G,SAAS;oBACX,CAAC;oBAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC9F,OAAO,CAAC,IAAI,CAAC;wBACX,EAAE,EAAE,UAAU;wBACd,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC,IAAI;wBACjC,KAAK,EAAE,WAAW,EAAE,SAAS,IAAI,WAAW,EAAE,WAAW;wBACzD,YAAY,EAAE,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;wBACxE,SAAS,EAAE,CAAC,UAAU,CAAC;wBACvB,OAAO,EAAE,cAAc,UAAU,EAAE;wBACnC,aAAa,EAAE,IAAI;wBACnB,WAAW,EAAE,KAAK;wBAClB,aAAa,EAAE,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;qBAC3E,CAAC,CAAC;oBACH,MAAM,gBAAgB,GAAqB;wBACzC,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,WAAW;wBACX,QAAQ;wBACR,WAAW;qBACZ,CAAC;oBACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;oBAC3E,MAAM,CAAC,IAAI,CAAC;wBACV,EAAE,EAAE,cAAc,UAAU,EAAE;wBAC9B,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC,IAAI;wBACjC,aAAa,EAAE,UAAU;wBACzB,SAAS,EAAE,CAAC,UAAU,CAAC;wBACvB,GAAG,YAAY;qBAChB,CAAC,CAAC;oBACH,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;gBAChD,CAAC;gBAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAElD,UAAU,CAAC,IAAI,CAAC;oBACd,EAAE,EAAE,WAAW;oBACf,WAAW,EAAE,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;oBACjF,OAAO;oBACP,MAAM;oBACN,SAAS;iBACV,CAAC,CAAC;gBACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC7C,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,OAAO;gBACL,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,MAAM,EAAE,MAAM;gBACd,UAAU;aACX,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,4BAA4B,CAAC,IAAY,EAAE,IAAY;QACnE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,6BAA6B,EAAE;gBAChF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;aAC3E,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO;gBACL,SAAS,EAAE,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC;gBAC5C,WAAW,EAAE,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC;gBAChD,UAAU,EAAE,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC;aAChD,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,iBAA+C;QAE/C,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO;gBACL,aAAa,EAAE,wBAAwB;aACxC,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC;QACzE,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,IAAI,CAAC,oBAAoB,CACvB,GAAG,WAAW,iBAAiB,EAC/B,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CACrE;YACD,IAAI,CAAC,oBAAoB,CACvB,GAAG,WAAW,aAAa,EAC3B,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,CACjE;SACF,CAAC,CAAC;QAEH,OAAO;YACL,aAAa,EAAE,2BAA2B,CAAC,aAAa,EAAE,qBAAqB,CAAC;YAChF,gBAAgB,EAAE,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC;SAC1D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,KAAa,EACb,SAA2C;QAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,CAAC,CAAC;QACvG,IAAI,OAAmC,CAAC;QAExC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;gBACxB,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;gBACjC,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;oBACjC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC5D,CAAC,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,EAAE,KAAK,CAChB,wCAAwC,KAAK,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAC5G,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACtB,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACxE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChE,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAA,mBAAQ,EAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;YACnD,IAAI,CAAC,YAAY,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,YAAY,GAAG,wBAAwB,CAAC,+BAAc,CAAC,CAAC;YAC7D,IAAI,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,QAA0B,EAAE,WAAmB;QACtE,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,cAAc,WAAW,kBAAkB,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,aAAa,CAAC,SAA4B,EAAE,QAAgB;QAClE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,iCAAiC,SAAS,CAAC,WAAW,IAAI,CAAC,CAAC;QACjG,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,iBAAiB,CAAC,QAAgB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,oDAAoD,CAAC,CAAC;QAC1G,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,4BAA4B,CAAC,QAAgB,EAAE,WAAmB;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,WAAW,QAAQ,+BAA+B,WAAW,IAAI,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACtC,WAA6B,EAC7B,GAAW,EACX,QAAgB,EAChB,gBAAyB;QAEzB,MAAM,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,CAAC;YAC5D,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,GAAG;YACf,kBAAkB,EAAE,QAAQ;SAC7B,CAAC,CAAC;QACH,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,WAAW,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAChD,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,MAAc;QAChE,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,QAAgB,EAAE,OAA2B;QACpF,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACtC,QAAgB,EAChB,OAA2B,EAC3B,MAAc;QAEd,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QAC/C,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,KAAc;QAC/D,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,QAAgB,EAAE,OAA2B;QACnF,OAAO,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,QAAgB,EAChB,OAA2B,EAC3B,KAAc;QAEd,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IACzE,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,OAAe;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5G,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,EAAE,KAAK,CAChB,qCAAqC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,OAAO,YAAY,MAAM,GAAG,CAC5G,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,OAAe,EAAE,MAAc;QAClF,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,4CAA4C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,OAAO,YAAY,gBAAgB,GAAG,CAC7H,CAAC;QACF,MAAM,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC;YACpD,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,OAAO;YAChB,aAAa,EAAE,gBAAgB;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,sCAAsC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,OAAO,YAAY,gBAAgB,GAAG,CACvH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,OAAe;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1G,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,KAAK,IAAI,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,KAAK,CAChB,mCAAmC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,OAAO,WAAW,KAAK,GAAG,CACxG,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,OAAe,EAAE,KAAc;QACjF,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,0CAA0C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,OAAO,WAAW,KAAK,GAAG,CAC/G,CAAC;QACF,MAAM,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC;YAClD,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,OAAO;YAChB,WAAW,EAAE,KAAK;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,IAAI,CACf,oCAAoC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,OAAO,WAAW,KAAK,GAAG,CACzG,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,WAAmB,EAAE,UAAkB;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,wDAAwD,WAAW,IAAI,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAC9F,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,kBAAkB,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,IAAiB;QAC5C,4EAA4E;QAC5E,6EAA6E;QAC7E,6EAA6E;QAC7E,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;YAC/D,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,sBAAsB;YAClC,MAAM,EAAE,GAAG;YACX,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,GAAG;YACnB,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE1B,MAAM,eAAe,GAAG,OAAO,cAAc,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxH,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1E,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAClC,iBAAiB,CAAC;YAChB,EAAE,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,EAAE;YACnE,IAAI,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU;YAC/C,GAAG,EAAE,KAAK,CAAC,QAAQ;SACpB,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAC5B,WAAmB,EACnB,mBAA2B,EAC3B,OAA+D;QAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,mBAAmB,CAAC;eACpF,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC5C,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACpD,CAAC;IAEO,sBAAsB,CAAC,WAAmB,EAAE,mBAA2B,EAAE,cAAwB;QACvG,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;QAE3C,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,WAAW,CAAC,EAAE,CAAC;eAC5F,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhF,IAAI,gBAAgB,EAAE,CAAC;YACrB,gBAAgB,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACpD,gBAAgB,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YACzC,gBAAgB,CAAC,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;gBACpB,EAAE,EAAE,SAAS,WAAW,CAAC,EAAE,EAAE;gBAC7B,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,aAAa,EAAE,WAAW,CAAC,EAAE;gBAC7B,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;gBACjC,aAAa,EAAE,qBAAqB;aACrC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,aAAa,KAAK,WAAW,CAAC,EAAE,EAAE,CAAC;gBAC3C,SAAS;YACX,CAAC;YACD,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpF,CAAC;QAED,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAElF,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;mBAC5E;oBACD,EAAE,EAAE,SAAS,MAAM,CAAC,EAAE,EAAE;oBACxB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,aAAa,EAAE,MAAM,CAAC,EAAE;oBACxB,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtB,aAAa,EAAE,qBAAqB;iBACrC,CAAC;YAEJ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3D,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YAED,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,KAAK,MAAM,CAAC,EAAE,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAEO,YAAY,CAAC,YAAoB;QACvC,IAAI,CAAC,YAAY,GAAG;YAClB,GAAG,IAAI,CAAC,YAAY;YACpB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,MAAM,EAAE,SAAS;SAClB,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAEO,iBAAiB,CAAC,QAAgB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,KAAK,GAAsB;YAC/B,MAAM,EAAE,iBAAiB,EAAE;YAC3B,IAAI,EAAE,iBAAiB,EAAE;YACzB,KAAK,EAAE,iBAAiB,EAAE;SAC3B,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,wBAAwB,CAAC,QAAgB,EAAE,OAA2B;QAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACxD,CAAC;IAEO,cAAc,CAAC,QAAgB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5C,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,KAAK,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC/D,CAAC;CACF;AA1iCD,kDA0iCC;AAED,SAAS,YAAY;IACnB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC"}
@@ -7,7 +7,7 @@ This page keeps the more technical project details out of the main README.
7
7
  - Homebridge dynamic platform plugin
8
8
  - One switch accessory per scene
9
9
  - One companion volume control accessory per scene
10
- - Local-first transport built on the community `sonos` package
10
+ - Local-first transport built on `@svrooij/sonos` (sonos-ts), pinned to an exact version because fixes for that library currently ship on its beta dist-tag
11
11
  - Custom Homebridge UI for discovery, validation, testing, and scene editing
12
12
 
13
13
  ## Scene Model
@@ -83,8 +83,7 @@ This repo uses GitHub Actions trusted publishing to publish to npm from a GitHub
83
83
  - Some complex favorites are still unreliable over the local-only path
84
84
  - `TV` support is still transport-gated and conservative
85
85
  - `local_plus_cloud` is not yet wired into runtime playback
86
- - subscription-driven live refresh is not fully implemented yet
87
- - `npm audit` reports a high-severity advisory ([GHSA-2p57-rm9w-gvfp](https://github.com/advisories/GHSA-2p57-rm9w-gvfp)) in the transitive `ip` dependency pulled in by `sonos`. No patched `ip` release exists. The flagged code is only reachable through the `sonos` package's UPnP event listener, which this plugin does not start, so the advisory is not exploitable through this plugin today. The longer-term fix under evaluation is moving the local transport to a maintained Sonos library that does not depend on `ip`.
86
+ - subscription-driven live refresh (UPnP eventing via sonos-ts) is planned but intentionally not enabled yet; the event listener requires a configurable port and a polling fallback before it is safe inside a shared Homebridge process
88
87
 
89
88
  ## References
90
89
 
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "homebridge-sonos-scenes",
3
- "version": "0.1.44",
3
+ "version": "0.1.45",
4
4
  "description": "Homebridge plugin for Sonos workflow scenes and orchestration.",
5
- "author": "applemanj",
5
+ "author": {
6
+ "name": "Joshua Appleman",
7
+ "email": "joshua@appleman.us",
8
+ "url": "https://github.com/applemanj"
9
+ },
6
10
  "homepage": "https://github.com/applemanj/homebridge-sonos-scenes#readme",
7
11
  "bugs": {
8
12
  "url": "https://github.com/applemanj/homebridge-sonos-scenes/issues"
@@ -43,7 +47,7 @@
43
47
  },
44
48
  "dependencies": {
45
49
  "@homebridge/plugin-ui-utils": "^2.2.3",
46
- "sonos": "^1.14.3"
50
+ "@svrooij/sonos": "2.6.0-beta.13"
47
51
  },
48
52
  "peerDependencies": {
49
53
  "homebridge": "^1.8.0 || ^2.0.0-beta.0 || ^2.1.1-beta.1"