@matter/protocol 0.12.2-alpha.0-20250130-d012e3082 → 0.12.2-alpha.0-20250201-eb5d40a2f

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/cjs/interaction/AccessControlManager.d.ts +8 -5
  2. package/dist/cjs/interaction/AccessControlManager.d.ts.map +1 -1
  3. package/dist/cjs/interaction/AccessControlManager.js +1 -1
  4. package/dist/cjs/interaction/AccessControlManager.js.map +1 -1
  5. package/dist/cjs/interaction/AttributeDataEncoder.d.ts +8 -1
  6. package/dist/cjs/interaction/AttributeDataEncoder.d.ts.map +1 -1
  7. package/dist/cjs/interaction/AttributeDataEncoder.js.map +1 -1
  8. package/dist/cjs/interaction/InteractionMessenger.d.ts +7 -4
  9. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  10. package/dist/cjs/interaction/InteractionMessenger.js +33 -26
  11. package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
  12. package/dist/cjs/interaction/InteractionServer.d.ts +22 -6
  13. package/dist/cjs/interaction/InteractionServer.d.ts.map +1 -1
  14. package/dist/cjs/interaction/InteractionServer.js +178 -165
  15. package/dist/cjs/interaction/InteractionServer.js.map +1 -1
  16. package/dist/cjs/interaction/ServerSubscription.d.ts +13 -3
  17. package/dist/cjs/interaction/ServerSubscription.d.ts.map +1 -1
  18. package/dist/cjs/interaction/ServerSubscription.js +121 -91
  19. package/dist/cjs/interaction/ServerSubscription.js.map +2 -2
  20. package/dist/cjs/peer/ControllerCommissioningFlow.js +7 -6
  21. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
  22. package/dist/esm/interaction/AccessControlManager.d.ts +8 -5
  23. package/dist/esm/interaction/AccessControlManager.d.ts.map +1 -1
  24. package/dist/esm/interaction/AccessControlManager.js +8 -2
  25. package/dist/esm/interaction/AccessControlManager.js.map +1 -1
  26. package/dist/esm/interaction/AttributeDataEncoder.d.ts +8 -1
  27. package/dist/esm/interaction/AttributeDataEncoder.d.ts.map +1 -1
  28. package/dist/esm/interaction/AttributeDataEncoder.js.map +1 -1
  29. package/dist/esm/interaction/InteractionMessenger.d.ts +7 -4
  30. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  31. package/dist/esm/interaction/InteractionMessenger.js +41 -27
  32. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  33. package/dist/esm/interaction/InteractionServer.d.ts +22 -6
  34. package/dist/esm/interaction/InteractionServer.d.ts.map +1 -1
  35. package/dist/esm/interaction/InteractionServer.js +178 -165
  36. package/dist/esm/interaction/InteractionServer.js.map +1 -1
  37. package/dist/esm/interaction/ServerSubscription.d.ts +13 -3
  38. package/dist/esm/interaction/ServerSubscription.d.ts.map +1 -1
  39. package/dist/esm/interaction/ServerSubscription.js +121 -91
  40. package/dist/esm/interaction/ServerSubscription.js.map +2 -2
  41. package/dist/esm/peer/ControllerCommissioningFlow.js +7 -6
  42. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  43. package/package.json +6 -6
  44. package/src/interaction/AccessControlManager.ts +20 -8
  45. package/src/interaction/AttributeDataEncoder.ts +11 -1
  46. package/src/interaction/InteractionMessenger.ts +65 -33
  47. package/src/interaction/InteractionServer.ts +224 -188
  48. package/src/interaction/ServerSubscription.ts +155 -108
  49. package/src/peer/ControllerCommissioningFlow.ts +7 -7
@@ -145,34 +145,104 @@ class InteractionServer {
145
145
  if (this.#isClosing) return;
146
146
  await new InteractionServerMessenger(exchange).handleRequest(this);
147
147
  }
148
- async handleReadRequest(exchange, {
149
- attributeRequests,
150
- dataVersionFilters,
151
- eventRequests,
152
- eventFilters,
153
- isFabricFiltered,
154
- interactionModelRevision
155
- }, message) {
156
- logger.debug(
157
- `Received read request from ${exchange.channel.name}: attributes:${attributeRequests?.map((path) => this.#endpointStructure.resolveAttributeName(path)).join(", ") ?? "none"}, events:${eventRequests?.map((path) => this.#endpointStructure.resolveEventName(path)).join(", ") ?? "none"} isFabricFiltered=${isFabricFiltered}`
158
- );
159
- if (interactionModelRevision > Specification.INTERACTION_MODEL_REVISION) {
160
- logger.debug(
161
- `Interaction model revision of sender ${interactionModelRevision} is higher than supported ${Specification.INTERACTION_MODEL_REVISION}.`
162
- );
163
- }
164
- if (attributeRequests === void 0 && eventRequests === void 0) {
165
- throw new StatusResponseError(
166
- "Only Read requests with attributeRequests or eventRequests are supported right now",
167
- StatusCode.UnsupportedRead
168
- );
169
- }
170
- if (message.packetHeader.sessionType !== SessionType.Unicast) {
171
- throw new StatusResponseError(
172
- "Subscriptions are only allowed on unicast sessions",
173
- StatusCode.InvalidAction
174
- );
148
+ async #collectEventDataForRead({ eventRequests, eventFilters, isFabricFiltered }, exchange, message) {
149
+ let eventReportsPayload;
150
+ if (eventRequests) {
151
+ eventReportsPayload = [];
152
+ for (const requestPath of eventRequests) {
153
+ validateReadEventPath(requestPath);
154
+ const events = this.#endpointStructure.getEvents([requestPath]);
155
+ if (events.length === 0) {
156
+ if (isConcreteEventPath(requestPath)) {
157
+ const { endpointId, clusterId, eventId } = requestPath;
158
+ try {
159
+ this.#endpointStructure.validateConcreteEventPath(endpointId, clusterId, eventId);
160
+ throw new InternalError(
161
+ "validateConcreteEventPath should throw StatusResponseError but did not."
162
+ );
163
+ } catch (e) {
164
+ StatusResponseError.accept(e);
165
+ logger.debug(
166
+ `Read event from ${exchange.channel.name}: ${this.#endpointStructure.resolveEventName(requestPath)}: unsupported path: Status=${e.code}`
167
+ );
168
+ eventReportsPayload?.push({
169
+ hasFabricSensitiveData: false,
170
+ eventStatus: { path: requestPath, status: { status: e.code } }
171
+ });
172
+ }
173
+ }
174
+ logger.debug(
175
+ `Read event from ${exchange.channel.name}: ${this.#endpointStructure.resolveEventName(
176
+ requestPath
177
+ )}: ignore non-existing event`
178
+ );
179
+ continue;
180
+ }
181
+ const reportsForPath = new Array();
182
+ for (const { path, event } of events) {
183
+ try {
184
+ const matchingEvents = await this.readEvent(
185
+ path,
186
+ eventFilters,
187
+ event,
188
+ exchange,
189
+ isFabricFiltered,
190
+ message
191
+ );
192
+ logger.debug(
193
+ `Read event from ${exchange.channel.name}: ${this.#endpointStructure.resolveEventName(
194
+ path
195
+ )}=${Logger.toJSON(matchingEvents)}`
196
+ );
197
+ const { schema } = event;
198
+ reportsForPath.push(
199
+ ...matchingEvents.map(({ number, priority, epochTimestamp, payload }) => ({
200
+ hasFabricSensitiveData: event.hasFabricSensitiveData,
201
+ eventData: {
202
+ path,
203
+ eventNumber: number,
204
+ priority,
205
+ epochTimestamp,
206
+ payload,
207
+ schema
208
+ }
209
+ }))
210
+ );
211
+ } catch (error) {
212
+ logger.error(
213
+ `Error while reading event from ${exchange.channel.name} to ${this.#endpointStructure.resolveEventName(path)}:`,
214
+ error
215
+ );
216
+ StatusResponseError.accept(error);
217
+ if (isConcreteEventPath(requestPath)) {
218
+ eventReportsPayload?.push({
219
+ hasFabricSensitiveData: false,
220
+ eventStatus: { path, status: { status: error.code } }
221
+ });
222
+ }
223
+ }
224
+ }
225
+ eventReportsPayload.push(
226
+ ...reportsForPath.sort((a, b) => {
227
+ const eventNumberA = a.eventData?.eventNumber ?? EventNumber(0);
228
+ const eventNumberB = b.eventData?.eventNumber ?? EventNumber(0);
229
+ if (eventNumberA > eventNumberB) {
230
+ return 1;
231
+ } else if (eventNumberA < eventNumberB) {
232
+ return -1;
233
+ } else {
234
+ return 0;
235
+ }
236
+ })
237
+ );
238
+ }
175
239
  }
240
+ return eventReportsPayload;
241
+ }
242
+ /**
243
+ * Returns an iterator that yields the data reports and events data for the given read request.
244
+ */
245
+ *#iterateReadAttributesPaths({ attributeRequests, dataVersionFilters, isFabricFiltered }, eventReportsPayload, exchange, message) {
176
246
  const dataVersionFilterMap = new Map(
177
247
  dataVersionFilters?.map(({ path, dataVersion }) => [clusterPathToId(path), dataVersion]) ?? []
178
248
  );
@@ -181,7 +251,6 @@ class InteractionServer {
181
251
  `DataVersionFilters: ${Array.from(dataVersionFilterMap.entries()).map(([path, version]) => `${path}=${version}`).join(", ")}`
182
252
  );
183
253
  }
184
- const attributeReportsPayload = new Array();
185
254
  for (const requestPath of attributeRequests ?? []) {
186
255
  validateReadAttributesPath(requestPath);
187
256
  const attributes = this.#endpointStructure.getAttributes([requestPath]);
@@ -198,10 +267,10 @@ class InteractionServer {
198
267
  logger.debug(
199
268
  `Error reading attribute from ${exchange.channel.name}: ${this.#endpointStructure.resolveAttributeName(requestPath)}: unsupported path: Status=${e.code}`
200
269
  );
201
- attributeReportsPayload.push({
270
+ yield {
202
271
  hasFabricSensitiveData: false,
203
272
  attributeStatus: { path: requestPath, status: { status: e.code } }
204
- });
273
+ };
205
274
  }
206
275
  }
207
276
  logger.debug(
@@ -222,14 +291,7 @@ class InteractionServer {
222
291
  }
223
292
  let value, version;
224
293
  try {
225
- ({ value, version } = await this.readAttribute(
226
- path,
227
- attribute,
228
- exchange,
229
- isFabricFiltered,
230
- message,
231
- this.#endpointStructure.getEndpoint(endpointId)
232
- ));
294
+ ({ value, version } = this.readAttribute(path, attribute, exchange, isFabricFiltered, message));
233
295
  } catch (e) {
234
296
  NoAssociatedFabricError.accept(e);
235
297
  if (endpointId === void 0 || clusterId === void 0) {
@@ -257,10 +319,10 @@ class InteractionServer {
257
319
  )}=${Logger.toJSON(value)} (version=${version})`
258
320
  );
259
321
  const { schema } = attribute;
260
- attributeReportsPayload.push({
322
+ yield {
261
323
  hasFabricSensitiveData: attribute.hasFabricSensitiveData,
262
324
  attributeData: { path, dataVersion: version, payload: value, schema }
263
- });
325
+ };
264
326
  } catch (error) {
265
327
  logger.error(
266
328
  `Error while reading attribute from ${exchange.channel.name} to ${this.#endpointStructure.resolveAttributeName(path)}:`,
@@ -268,118 +330,91 @@ class InteractionServer {
268
330
  );
269
331
  StatusResponseError.accept(error);
270
332
  if (isConcreteAttributePath(requestPath)) {
271
- attributeReportsPayload.push({
333
+ yield {
272
334
  hasFabricSensitiveData: false,
273
335
  attributeStatus: { path, status: { status: error.code } }
274
- });
336
+ };
275
337
  }
276
338
  }
277
339
  }
278
340
  }
279
- let eventReportsPayload;
280
- if (eventRequests) {
281
- eventReportsPayload = [];
282
- for (const requestPath of eventRequests) {
283
- validateReadEventPath(requestPath);
284
- const events = this.#endpointStructure.getEvents([requestPath]);
285
- if (events.length === 0) {
286
- if (isConcreteEventPath(requestPath)) {
287
- const { endpointId, clusterId, eventId } = requestPath;
288
- try {
289
- this.#endpointStructure.validateConcreteEventPath(endpointId, clusterId, eventId);
290
- throw new InternalError(
291
- "validateConcreteEventPath should throw StatusResponseError but did not."
292
- );
293
- } catch (e) {
294
- StatusResponseError.accept(e);
295
- logger.debug(
296
- `Read event from ${exchange.channel.name}: ${this.#endpointStructure.resolveEventName(requestPath)}: unsupported path: Status=${e.code}`
297
- );
298
- eventReportsPayload?.push({
299
- hasFabricSensitiveData: false,
300
- eventStatus: { path: requestPath, status: { status: e.code } }
301
- });
302
- }
303
- }
304
- logger.debug(
305
- `Read event from ${exchange.channel.name}: ${this.#endpointStructure.resolveEventName(
306
- requestPath
307
- )}: ignore non-existing event`
308
- );
309
- continue;
310
- }
311
- const reportsForPath = new Array();
312
- for (const { path, event } of events) {
313
- try {
314
- const { endpointId } = path;
315
- const matchingEvents = await this.readEvent(
316
- path,
317
- eventFilters,
318
- event,
319
- exchange,
320
- isFabricFiltered,
321
- message,
322
- this.#endpointStructure.getEndpoint(endpointId)
323
- );
324
- logger.debug(
325
- `Read event from ${exchange.channel.name}: ${this.#endpointStructure.resolveEventName(
326
- path
327
- )}=${Logger.toJSON(matchingEvents)}`
328
- );
329
- const { schema } = event;
330
- reportsForPath.push(
331
- ...matchingEvents.map(({ number, priority, epochTimestamp, payload }) => ({
332
- hasFabricSensitiveData: event.hasFabricSensitiveData,
333
- eventData: {
334
- path,
335
- eventNumber: number,
336
- priority,
337
- epochTimestamp,
338
- payload,
339
- schema
340
- }
341
- }))
342
- );
343
- } catch (error) {
344
- logger.error(
345
- `Error while reading event from ${exchange.channel.name} to ${this.#endpointStructure.resolveEventName(path)}:`,
346
- error
347
- );
348
- StatusResponseError.accept(error);
349
- if (isConcreteEventPath(requestPath)) {
350
- eventReportsPayload?.push({
351
- hasFabricSensitiveData: false,
352
- eventStatus: { path, status: { status: error.code } }
353
- });
354
- }
355
- }
356
- }
357
- eventReportsPayload.push(
358
- ...reportsForPath.sort((a, b) => {
359
- const eventNumberA = a.eventData?.eventNumber ?? EventNumber(0);
360
- const eventNumberB = b.eventData?.eventNumber ?? EventNumber(0);
361
- if (eventNumberA > eventNumberB) {
362
- return 1;
363
- } else if (eventNumberA < eventNumberB) {
364
- return -1;
365
- } else {
366
- return 0;
367
- }
368
- })
369
- );
341
+ if (eventReportsPayload !== void 0) {
342
+ for (const eventReport of eventReportsPayload) {
343
+ yield eventReport;
370
344
  }
371
345
  }
346
+ }
347
+ async handleReadRequest(exchange, readRequest, message) {
348
+ const { attributeRequests, eventRequests, isFabricFiltered, interactionModelRevision } = readRequest;
349
+ logger.debug(
350
+ `Received read request from ${exchange.channel.name}: attributes:${attributeRequests?.map((path) => this.#endpointStructure.resolveAttributeName(path)).join(", ") ?? "none"}, events:${eventRequests?.map((path) => this.#endpointStructure.resolveEventName(path)).join(", ") ?? "none"} isFabricFiltered=${isFabricFiltered}`
351
+ );
352
+ if (interactionModelRevision > Specification.INTERACTION_MODEL_REVISION) {
353
+ logger.debug(
354
+ `Interaction model revision of sender ${interactionModelRevision} is higher than supported ${Specification.INTERACTION_MODEL_REVISION}.`
355
+ );
356
+ }
357
+ if (attributeRequests === void 0 && eventRequests === void 0) {
358
+ throw new StatusResponseError(
359
+ "Only Read requests with attributeRequests or eventRequests are supported right now",
360
+ StatusCode.UnsupportedRead
361
+ );
362
+ }
363
+ if (message.packetHeader.sessionType !== SessionType.Unicast) {
364
+ throw new StatusResponseError(
365
+ "Subscriptions are only allowed on unicast sessions",
366
+ StatusCode.InvalidAction
367
+ );
368
+ }
372
369
  return {
373
- interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
374
- suppressResponse: true,
375
- attributeReportsPayload,
376
- eventReportsPayload
370
+ dataReport: {
371
+ interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
372
+ suppressResponse: true
373
+ },
374
+ payload: this.#iterateReadAttributesPaths(
375
+ readRequest,
376
+ await this.#collectEventDataForRead(readRequest, exchange, message),
377
+ exchange,
378
+ message
379
+ )
377
380
  };
378
381
  }
379
- async readAttribute(_path, attribute, exchange, isFabricFiltered, message, _endpoint, offline = false) {
382
+ readAttribute(_path, attribute, exchange, isFabricFiltered, message, offline = false) {
380
383
  return attribute.getWithVersion(exchange.session, isFabricFiltered, offline ? void 0 : message);
381
384
  }
382
- async readEvent(_path, eventFilters, event, exchange, isFabricFiltered, message, _endpoint) {
385
+ /**
386
+ * Reads the attributes for the given endpoint.
387
+ * This can currently only be used for subscriptions because errors are ignored!
388
+ */
389
+ readEndpointAttributesForSubscription(_endpointId, attributes, exchange, isFabricFiltered, message, offline = false) {
390
+ const result = new Array();
391
+ for (const { path, attribute } of attributes) {
392
+ try {
393
+ const { version, value } = this.readAttribute(
394
+ path,
395
+ attribute,
396
+ exchange,
397
+ isFabricFiltered,
398
+ message,
399
+ offline
400
+ );
401
+ result.push({ path, value, version, attribute });
402
+ } catch (error) {
403
+ if (StatusResponseError.is(error, StatusCode.UnsupportedAccess)) {
404
+ logger.warn(
405
+ `Permission denied reading attribute ${this.#endpointStructure.resolveAttributeName(path)}`
406
+ );
407
+ } else {
408
+ logger.warn(
409
+ `Error reading attribute ${this.#endpointStructure.resolveAttributeName(path)}:`,
410
+ error
411
+ );
412
+ }
413
+ }
414
+ }
415
+ return result;
416
+ }
417
+ async readEvent(_path, eventFilters, event, exchange, isFabricFiltered, message) {
383
418
  return event.get(exchange.session, isFabricFiltered, message, eventFilters);
384
419
  }
385
420
  async handleWriteRequest(exchange, { suppressResponse, timedRequest, writeRequests, interactionModelRevision, moreChunkedMessages }, message) {
@@ -518,14 +553,7 @@ class InteractionServer {
518
553
  const value = listIndex === void 0 ? decodeAttributeValueWithSchema(schema, [writeRequest], defaultValue) : decodeListAttributeValueWithSchema(
519
554
  schema,
520
555
  [writeRequest],
521
- (await this.readAttribute(
522
- path,
523
- attribute,
524
- exchange,
525
- true,
526
- message,
527
- this.#endpointStructure.getEndpoint(endpointId)
528
- )).value ?? defaultValue
556
+ this.readAttribute(path, attribute, exchange, true, message).value ?? defaultValue
529
557
  );
530
558
  logger.debug(
531
559
  `Handle write request from ${exchange.channel.name} resolved to: ${this.#endpointStructure.resolveAttributeName(path)}=${Logger.toJSON(
@@ -691,24 +719,9 @@ class InteractionServer {
691
719
  const context = {
692
720
  session,
693
721
  structure: this.#endpointStructure,
694
- readAttribute: (path, attribute, offline) => this.readAttribute(
695
- path,
696
- attribute,
697
- exchange,
698
- isFabricFiltered,
699
- message,
700
- this.#endpointStructure.getEndpoint(path.endpointId),
701
- offline
702
- ),
703
- readEvent: (path, event, eventFilters2) => this.readEvent(
704
- path,
705
- eventFilters2,
706
- event,
707
- exchange,
708
- isFabricFiltered,
709
- message,
710
- this.#endpointStructure.getEndpoint(path.endpointId)
711
- ),
722
+ readAttribute: (path, attribute, offline) => this.readAttribute(path, attribute, exchange, isFabricFiltered, message, offline),
723
+ readEndpointAttributesForSubscription: (endpointId, attributes) => this.readEndpointAttributesForSubscription(endpointId, attributes, exchange, isFabricFiltered, message),
724
+ readEvent: (path, event, eventFilters2) => this.readEvent(path, eventFilters2, event, exchange, isFabricFiltered, message),
712
725
  initiateExchange: (address, protocolId) => this.#context.initiateExchange(address, protocolId)
713
726
  };
714
727
  const subscription = new ServerSubscription({
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/interaction/InteractionServer.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,QAAQ,YAAY,eAAe,QAAQ,uBAAuB;AAC3E,SAAS,gBAAgB,cAAc,cAAc,YAAY,aAAa,qBAAqB;AAGnG;AAAA,EACI;AAAA,EAIA;AAAA,EAGA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAMA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AACP,SAA6B,iBAAiB,mCAAmC;AAGjF,SAAkB,mBAAmB;AAIrC,SAAS,yBAAwC,2BAA2B;AAC5E;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAGP;AAAA,EAEI;AAAA,EAEA;AAAA,OAMG;AACP,SAAS,0BAAqD;AAC9D,SAAS,gCAAgC;AAEzC,MAAM,SAAS,OAAO,IAAI,mBAAmB;AAuCtC,SAAS,uBACZ,YACA,WACA,WACF;AACE,SAAO,GAAG,UAAU,IAAI,SAAS,IAAI,SAAS;AAClD;AAEO,SAAS,gBAAgB,EAAE,YAAY,WAAW,UAAU,GAAgB;AAC/E,SAAO,uBAAuB,YAAY,WAAW,SAAS;AAClE;AAEO,SAAS,kBAAkB,EAAE,YAAY,WAAW,YAAY,GAA4C;AAC/G,SAAO,uBAAuB,YAAY,WAAW,WAAW;AACpE;AAEO,SAAS,cAAc,EAAE,YAAY,WAAW,QAAQ,GAAwC;AACnG,SAAO,uBAAuB,YAAY,WAAW,OAAO;AAChE;AAEO,SAAS,gBAAgB,EAAE,QAAQ,YAAY,UAAU,GAA0C;AACtG,SAAO,GAAG,MAAM,IAAI,UAAU,IAAI,SAAS;AAC/C;AAEA,SAAS,wBACL,MAC+D;AAC/D,QAAM,EAAE,YAAY,WAAW,YAAY,IAAI;AAC/C,SAAO,eAAe,UAAa,cAAc,UAAa,gBAAgB;AAClF;AAEO,SAAS,2BAA2B,MAA+C,iBAAiB,OAAO;AAC9G,MAAI,gBAAgB;AAChB,UAAM,IAAI,oBAAoB,2CAA2C,WAAW,aAAa;AAAA,EACrG;AACA,QAAM,EAAE,WAAW,YAAY,IAAI;AACnC,MAAI,cAAc,UAAa,gBAAgB,QAAW;AACtD,QAAI,CAAC,WAAW,IAAI,WAAW,GAAG;AAC9B,YAAM,IAAI;AAAA,QACN,sEAAsE,WAAW;AAAA,QACjF,WAAW;AAAA,MACf;AAAA,IACJ;AAAA,EACJ;AACJ;AAEA,SAAS,4BAA4B,MAA+C,iBAAiB,OAAO;AACxG,QAAM,EAAE,YAAY,WAAW,YAAY,IAAI;AAC/C,MAAI,cAAc,UAAa,gBAAgB,QAAW;AACtD,UAAM,IAAI;AAAA,MACN;AAAA,MACA,WAAW;AAAA,IACf;AAAA,EACJ;AACA,MAAI,kBAAkB,eAAe,QAAW;AAC5C,UAAM,IAAI,oBAAoB,uDAAuD,WAAW,aAAa;AAAA,EACjH;AACJ;AAEA,SAAS,oBACL,MACuD;AACvD,QAAM,EAAE,YAAY,WAAW,QAAQ,IAAI;AAC3C,SAAO,eAAe,UAAa,cAAc,UAAa,YAAY;AAC9E;AAEO,SAAS,sBAAsB,MAA2C,iBAAiB,OAAO;AACrG,QAAM,EAAE,WAAW,QAAQ,IAAI;AAC/B,MAAI,cAAc,UAAa,YAAY,QAAW;AAClD,UAAM,IAAI,oBAAoB,iDAAiD,WAAW,aAAa;AAAA,EAC3G;AACA,MAAI,gBAAgB;AAChB,UAAM,IAAI,oBAAoB,2CAA2C,WAAW,aAAa;AAAA,EACrG;AACJ;AAEA,SAAS,sBACL,MAC2D;AAC3D,QAAM,EAAE,YAAY,WAAW,UAAU,IAAI;AAC7C,SAAO,eAAe,UAAa,cAAc,UAAa,cAAc;AAChF;AAEA,SAAS,oBAAoB,MAA6C,iBAAiB,OAAO;AAC9F,QAAM,EAAE,YAAY,WAAW,UAAU,IAAI;AAC7C,MAAI,cAAc,UAAa,cAAc,QAAW;AACpD,UAAM,IAAI;AAAA,MACN;AAAA,MACA,WAAW;AAAA,IACf;AAAA,EACJ;AACA,MAAI,kBAAkB,eAAe,QAAW;AAC5C,UAAM,IAAI,oBAAoB,uDAAuD,WAAW,aAAa;AAAA,EACjH;AACJ;AAEA,SAAS,sBAAsB,WAAsB;AACjD,SAAO,YAAY,SAAS,IAAI,cAAc,SAAS;AAC3D;AAEA,SAAS,+BAA+B,WAAsB,aAA0B;AACpF,SAAO,sBAAsB,SAAS,GAAG,IAAI,gBAAgB,WAAW;AAC5E;AAEA,SAAS,6BAA6B,WAAsB,WAAsB;AAC9E,SAAO,sBAAsB,SAAS,GAAG,IAAI,cAAc,SAAS;AACxE;AAgBO,MAAM,kBAAmE;AAAA,EAC5E;AAAA,EACA,sBAAsB,OAAO,gBAAgB;AAAA,EAC7C,aAAa;AAAA,EACJ;AAAA,EACA;AAAA,EAET,YAAY,SAA6B;AACrC,SAAK,WAAW;AAEhB,SAAK,sBAAsB,yBAAyB,GAAG,QAAQ,mBAAmB;AAClF,SAAK,qBAAqB,QAAQ,qBAAqB;AAEvD,SAAK,SAAS,UAAU,OAAO,GAAG,YAAY;AAC1C,WAAK,SAAS,SAAS,uBAAuB;AAAA,IAClD,CAAC;AAAA,EACL;AAAA,EAEA,QAAQ;AACJ,WAAO;AAAA,EACX;AAAA,EAEA,IAAc,YAAY;AACtB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,oBAAoB;AACpB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,cAAc,UAA2B;AAG3C,QAAI,KAAK,WAAY;AACrB,UAAM,IAAI,2BAA2B,QAAQ,EAAE,cAAc,IAAI;AAAA,EACrE;AAAA,EAEA,MAAM,kBACF,UACA;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GACA,SAC0B;AAC1B,WAAO;AAAA,MACH,8BAA8B,SAAS,QAAQ,IAAI,gBAC/C,mBAAmB,IAAI,UAAQ,KAAK,mBAAmB,qBAAqB,IAAI,CAAC,EAAE,KAAK,IAAI,KAAK,MACrG,YACI,eAAe,IAAI,UAAQ,KAAK,mBAAmB,iBAAiB,IAAI,CAAC,EAAE,KAAK,IAAI,KAAK,MAC7F,qBAAqB,gBAAgB;AAAA,IACzC;AAEA,QAAI,2BAA2B,cAAc,4BAA4B;AACrE,aAAO;AAAA,QACH,wCAAwC,wBAAwB,6BAA6B,cAAc,0BAA0B;AAAA,MACzI;AAAA,IACJ;AACA,QAAI,sBAAsB,UAAa,kBAAkB,QAAW;AAChE,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAAA,IACJ;AAEA,QAAI,QAAQ,aAAa,gBAAgB,YAAY,SAAS;AAC1D,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAAA,IACJ;AAEA,UAAM,uBAAuB,IAAI;AAAA,MAC7B,oBAAoB,IAAI,CAAC,EAAE,MAAM,YAAY,MAAM,CAAC,gBAAgB,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC;AAAA,IACjG;AACA,QAAI,qBAAqB,OAAO,GAAG;AAC/B,aAAO;AAAA,QACH,uBAAuB,MAAM,KAAK,qBAAqB,QAAQ,CAAC,EAC3D,IAAI,CAAC,CAAC,MAAM,OAAO,MAAM,GAAG,IAAI,IAAI,OAAO,EAAE,EAC7C,KAAK,IAAI,CAAC;AAAA,MACnB;AAAA,IACJ;AAEA,UAAM,0BAA0B,IAAI,MAA8B;AAClE,eAAW,eAAe,qBAAqB,CAAC,GAAG;AAC/C,iCAA2B,WAAW;AAEtC,YAAM,aAAa,KAAK,mBAAmB,cAAc,CAAC,WAAW,CAAC;AAGtE,UAAI,WAAW,WAAW,GAAG;AAEzB,YAAI,wBAAwB,WAAW,GAAG;AACtC,gBAAM,EAAE,YAAY,WAAW,YAAY,IAAI;AAE/C,cAAI;AACA,iBAAK,mBAAmB,8BAA8B,YAAY,WAAW,WAAW;AACxF,kBAAM,IAAI;AAAA,cACN;AAAA,YACJ;AAAA,UACJ,SAAS,GAAG;AACR,gCAAoB,OAAO,CAAC;AAC5B,mBAAO;AAAA,cACH,gCACI,SAAS,QAAQ,IACrB,KAAK,KAAK,mBAAmB,qBAAqB,WAAW,CAAC,8BAC1D,EAAE,IACN;AAAA,YACJ;AACA,oCAAwB,KAAK;AAAA,cACzB,wBAAwB;AAAA,cACxB,iBAAiB,EAAE,MAAM,aAAa,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;AAAA,YACrE,CAAC;AAAA,UACL;AAAA,QACJ;AAGA,eAAO;AAAA,UACH,aAAa,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,YAC3D;AAAA,UACJ,CAAC,KAAK,KAAK,mBAAmB,qBAAqB,WAAW,CAAC;AAAA,QACnE;AACA;AAAA,MACJ;AAGA,iBAAW,EAAE,MAAM,UAAU,KAAK,YAAY;AAC1C,cAAM,EAAE,QAAQ,YAAY,UAAU,IAAI;AAE1C,YAAI;AAEA,cAAI,+BAA+B,WAAW,UAAU,EAAE,GAAG,aAAa,OAAO;AAC7E,kBAAM,IAAI;AAAA,cACN,aAAa,UAAU,EAAE;AAAA,cACzB,WAAW;AAAA,YACf;AAAA,UACJ;AAEA,cAAI,OAAO;AACX,cAAI;AACA,aAAC,EAAE,OAAO,QAAQ,IAAI,MAAM,KAAK;AAAA,cAC7B;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,KAAK,mBAAmB,YAAY,UAAU;AAAA,YAClD;AAAA,UACJ,SAAS,GAAG;AACR,oCAAwB,OAAO,CAAC;AAOhC,gBAAI,eAAe,UAAa,cAAc,QAAW;AACrD,oBAAM,IAAI,gBAAgB,qBAAqB;AAAA,YACnD;AACA,kBAAM,UAAU,KAAK,mBAAmB,iBAAiB,YAAY,SAAS;AAC9E,gBAAI,YAAY,UAAa,QAAQ,cAAc,QAAW;AAC1D,oBAAM,IAAI,gBAAgB,qBAAqB;AAAA,YACnD;AACA,sBAAU,QAAQ,WAAW;AAC7B,oBAAQ,CAAC;AAAA,UACb;AAEA,gBAAM,qBACF,eAAe,UAAa,cAAc,SACpC,qBAAqB,IAAI,gBAAgB,EAAE,QAAQ,YAAY,UAAU,CAAC,CAAC,IAC3E;AACV,cAAI,uBAAuB,UAAa,uBAAuB,SAAS;AACpE,mBAAO;AAAA,cACH,uBAAuB,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,gBACrE;AAAA,cACJ,CAAC,IAAI,OAAO,OAAO,KAAK,CAAC,aAAa,OAAO;AAAA,YACjD;AACA;AAAA,UACJ;AAEA,iBAAO;AAAA,YACH,uBAAuB,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,cACrE;AAAA,YACJ,CAAC,IAAI,OAAO,OAAO,KAAK,CAAC,aAAa,OAAO;AAAA,UACjD;AAEA,gBAAM,EAAE,OAAO,IAAI;AACnB,kCAAwB,KAAK;AAAA,YACzB,wBAAwB,UAAU;AAAA,YAClC,eAAe,EAAE,MAAM,aAAa,SAAS,SAAS,OAAO,OAAO;AAAA,UACxE,CAAC;AAAA,QACL,SAAS,OAAO;AACZ,iBAAO;AAAA,YACH,sCACI,SAAS,QAAQ,IACrB,OAAO,KAAK,mBAAmB,qBAAqB,IAAI,CAAC;AAAA,YACzD;AAAA,UACJ;AAEA,8BAAoB,OAAO,KAAK;AAGhC,cAAI,wBAAwB,WAAW,GAAG;AACtC,oCAAwB,KAAK;AAAA,cACzB,wBAAwB;AAAA,cACxB,iBAAiB,EAAE,MAAM,QAAQ,EAAE,QAAQ,MAAM,KAAK,EAAE;AAAA,YAC5D,CAAC;AAAA,UACL;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI;AACJ,QAAI,eAAe;AACf,4BAAsB,CAAC;AACvB,iBAAW,eAAe,eAAe;AACrC,8BAAsB,WAAW;AAEjC,cAAM,SAAS,KAAK,mBAAmB,UAAU,CAAC,WAAW,CAAC;AAG9D,YAAI,OAAO,WAAW,GAAG;AACrB,cAAI,oBAAoB,WAAW,GAAG;AAClC,kBAAM,EAAE,YAAY,WAAW,QAAQ,IAAI;AAC3C,gBAAI;AACA,mBAAK,mBAAmB,0BAA0B,YAAY,WAAW,OAAO;AAChF,oBAAM,IAAI;AAAA,gBACN;AAAA,cACJ;AAAA,YACJ,SAAS,GAAG;AACR,kCAAoB,OAAO,CAAC;AAE5B,qBAAO;AAAA,gBACH,mBACI,SAAS,QAAQ,IACrB,KAAK,KAAK,mBAAmB,iBAAiB,WAAW,CAAC,8BACtD,EAAE,IACN;AAAA,cACJ;AACA,mCAAqB,KAAK;AAAA,gBACtB,wBAAwB;AAAA,gBACxB,aAAa,EAAE,MAAM,aAAa,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;AAAA,cACjE,CAAC;AAAA,YACL;AAAA,UACJ;AAEA,iBAAO;AAAA,YACH,mBAAmB,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,cACjE;AAAA,YACJ,CAAC;AAAA,UACL;AACA;AAAA,QACJ;AAEA,cAAM,iBAAiB,IAAI,MAA0B;AACrD,mBAAW,EAAE,MAAM,MAAM,KAAK,QAAQ;AAClC,cAAI;AACA,kBAAM,EAAE,WAAW,IAAI;AACvB,kBAAM,iBAAiB,MAAM,KAAK;AAAA,cAC9B;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,KAAK,mBAAmB,YAAY,UAAU;AAAA,YAClD;AACA,mBAAO;AAAA,cACH,mBAAmB,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,gBACjE;AAAA,cACJ,CAAC,IAAI,OAAO,OAAO,cAAc,CAAC;AAAA,YACtC;AACA,kBAAM,EAAE,OAAO,IAAI;AACnB,2BAAe;AAAA,cACX,GAAG,eAAe,IAAI,CAAC,EAAE,QAAQ,UAAU,gBAAgB,QAAQ,OAAO;AAAA,gBACtE,wBAAwB,MAAM;AAAA,gBAC9B,WAAW;AAAA,kBACP;AAAA,kBACA,aAAa;AAAA,kBACb;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,cACJ,EAAE;AAAA,YACN;AAAA,UACJ,SAAS,OAAO;AACZ,mBAAO;AAAA,cACH,kCACI,SAAS,QAAQ,IACrB,OAAO,KAAK,mBAAmB,iBAAiB,IAAI,CAAC;AAAA,cACrD;AAAA,YACJ;AAEA,gCAAoB,OAAO,KAAK;AAGhC,gBAAI,oBAAoB,WAAW,GAAG;AAClC,mCAAqB,KAAK;AAAA,gBACtB,wBAAwB;AAAA,gBACxB,aAAa,EAAE,MAAM,QAAQ,EAAE,QAAQ,MAAM,KAAK,EAAE;AAAA,cACxD,CAAC;AAAA,YACL;AAAA,UACJ;AAAA,QACJ;AACA,4BAAoB;AAAA,UAChB,GAAG,eAAe,KAAK,CAAC,GAAG,MAAM;AAC7B,kBAAM,eAAe,EAAE,WAAW,eAAe,YAAY,CAAC;AAC9D,kBAAM,eAAe,EAAE,WAAW,eAAe,YAAY,CAAC;AAC9D,gBAAI,eAAe,cAAc;AAC7B,qBAAO;AAAA,YACX,WAAW,eAAe,cAAc;AACpC,qBAAO;AAAA,YACX,OAAO;AACH,qBAAO;AAAA,YACX;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,0BAA0B,cAAc;AAAA,MACxC,kBAAkB;AAAA,MAClB;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAgB,cACZ,OACA,WACA,UACA,kBACA,SACA,WACA,UAAU,OACZ;AACE,WAAO,UAAU,eAAe,SAAS,SAAS,kBAAkB,UAAU,SAAY,OAAO;AAAA,EACrG;AAAA,EAEA,MAAgB,UACZ,OACA,cACA,OACA,UACA,kBACA,SACA,WACF;AACE,WAAO,MAAM,IAAI,SAAS,SAAS,kBAAkB,SAAS,YAAY;AAAA,EAC9E;AAAA,EAEA,MAAM,mBACF,UACA,EAAE,kBAAkB,cAAc,eAAe,0BAA0B,oBAAoB,GAC/F,SACsB;AACtB,UAAM,cAAc,QAAQ,aAAa;AACzC,WAAO;AAAA,MACH,+BAA+B,SAAS,QAAQ,IAAI,KAAK,cACpD,IAAI,SAAO,KAAK,mBAAmB,qBAAqB,IAAI,IAAI,CAAC,EACjE,KAAK,IAAI,CAAC,sBAAsB,gBAAgB,yBAAyB,mBAAmB;AAAA,IACrG;AAEA,QAAI,uBAAuB,kBAAkB;AACzC,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAAA,IACJ;AAEA,QAAI,2BAA2B,cAAc,4BAA4B;AACrE,aAAO;AAAA,QACH,wCAAwC,wBAAwB,6BAA6B,cAAc,0BAA0B;AAAA,MACzI;AAAA,IACJ;AAEA,UAAM,iCAAiC,SAAS,0BAA0B;AAE1E,QAAI,kCAAkC,qBAAqB;AACvD,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAAA,IACJ;AAEA,QAAI,SAAS,2BAA2B,GAAG;AACvC,eAAS,sBAAsB;AAC/B,YAAM,IAAI,oBAAoB,wDAAwD,WAAW,OAAO;AAAA,IAC5G;AAEA,QAAI,iBAAiB,SAAS,oBAAoB,GAAG;AACjD,YAAM,IAAI;AAAA,QACN,2CAA2C,YAAY,+CAA+C,8BAA8B;AAAA,QACpI,WAAW;AAAA,MACf;AAAA,IACJ;AAEA,QAAI,gCAAgC;AAChC,aAAO;AAAA,QACH,sBAAsB,SAAS,QAAQ,IAAI;AAAA,MAC/C;AACA,eAAS,sBAAsB;AAC/B,UAAI,gBAAgB,YAAY,SAAS;AACrC,cAAM,IAAI;AAAA,UACN;AAAA,UACA,WAAW;AAAA,QACf;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,gBAAgB,YAAY,SAAS,CAAC,kBAAkB;AACxD,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAAA,IACJ;AAEA,UAAM,YAAY,2BAA2B,eAAe,IAAI;AAEhE,UAAM,eAAe,IAAI,MAItB;AACH,UAAM,sBAAsB,oBAAI,IAA0B;AAC1D,UAAM,yBAAyB,oBAAI,IAAoB;AACvD,UAAM,oBAAoB,oBAAI,IAAY;AAI1C,eAAW,gBAAgB,WAAW;AAClC,YAAM,EAAE,MAAM,WAAW,YAAY,IAAI;AAEzC,kCAA4B,SAAS;AAErC,YAAM,aAAa,KAAK,mBAAmB,cAAc,CAAC,SAAS,GAAG,IAAI;AAG1E,UAAI,WAAW,WAAW,GAAG;AACzB,YAAI,wBAAwB,SAAS,GAAG;AACpC,gBAAM,EAAE,YAAY,WAAW,YAAY,IAAI;AAG/C,cAAI;AACA,iBAAK,mBAAmB,8BAA8B,YAAY,WAAW,WAAW;AAGxF,kBAAM,IAAI;AAAA,cACN,aAAa,WAAW;AAAA,cACxB,WAAW;AAAA,YACf;AAAA,UACJ,SAAS,GAAG;AACR,gCAAoB,OAAO,CAAC;AAE5B,mBAAO;AAAA,cACH,cAAc,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,gBAC5D;AAAA,cACJ,CAAC,wBAAwB,EAAE,IAAI;AAAA,YACnC;AACA,yBAAa,KAAK,EAAE,MAAM,WAAW,YAAY,EAAE,KAAK,CAAC;AAAA,UAC7D;AAAA,QACJ,OAAO;AAEH,iBAAO;AAAA,YACH,cAAc,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,cAC5D;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ;AACA;AAAA,MACJ;AAGA,UAAI,WAAW,WAAW,KAAK,wBAAwB,SAAS,GAAG;AAC/D,cAAM,EAAE,YAAY,UAAU,IAAI;AAClC,cAAM,EAAE,UAAU,IAAI,WAAW,CAAC;AAElC,YAAI,UAAU,4BAA4B,CAAC,gCAAgC;AACvE,iBAAO,MAAM,mEAAmE;AAChF,uBAAa,KAAK,EAAE,MAAM,WAAW,YAAY,WAAW,sBAAsB,CAAC;AACnF;AAAA,QACJ;AAEA,YACI,qBAAqB,gCACpB,CAAC,SAAS,QAAQ,YAAY,CAAE,SAAS,QAA0B,SACtE;AACE,iBAAO,MAAM,+EAA+E;AAC5F,uBAAa,KAAK,EAAE,MAAM,WAAW,YAAY,WAAW,kBAAkB,CAAC;AAC/E;AAAA,QACJ;AAKA,YAAI,gBAAgB,QAAW;AAC3B,gBAAM,aAAa,KAAK,mBAAmB,iBAAiB,YAAY,SAAS,GAAG;AACpF,gBAAM,EAAE,OAAO,IAAI;AACnB,gBAAM,aAAa,gBAAgB,EAAE,QAAQ,YAAY,UAAU,CAAC;AACpE,gBAAM,qBAAqB,uBAAuB,IAAI,UAAU,KAAK,YAAY;AAEjF,cAAI,uBAAuB,QAAW;AAClC,gBAAI,gBAAgB,oBAAoB;AACpC,qBAAO;AAAA,gBACH,gDAAgD,WAAW,0DAA0D,kBAAkB;AAAA,cAC3I;AACA,2BAAa,KAAK,EAAE,MAAM,WAAW,YAAY,WAAW,oBAAoB,CAAC;AACjF;AAAA,YACJ;AACA,mCAAuB,IAAI,YAAY,kBAAkB;AAAA,UAC7D;AAAA,QACJ;AAAA,MACJ;AAEA,iBAAW,EAAE,MAAM,UAAU,KAAK,YAAY;AAC1C,cAAM,EAAE,QAAQ,aAAa,IAAI;AACjC,cAAM,SAAS,kBAAkB,IAAI;AAErC,YAAI;AACA,cACI,EAAE,qBAAqB,oBACvB,EAAE,qBAAqB,8BACzB;AACE,kBAAM,IAAI;AAAA,cACN;AAAA,cACA,WAAW;AAAA,YACf;AAAA,UACJ;AAEA,cAAI,kBAAkB,IAAI,MAAM,GAAG;AAC/B,mBAAO,MAAM,0DAA0D;AACvE;AAAA,UACJ;AAEA,gBAAM,EAAE,WAAW,IAAI;AACvB,gBAAM,EAAE,UAAU,IAAI;AACtB,gBAAM,QACF,cAAc,SACR,+BAA+B,QAAQ,CAAC,YAAY,GAAG,YAAY,IACnE;AAAA,YACI;AAAA,YACA,CAAC,YAAY;AAAA,aAET,MAAM,KAAK;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,KAAK,mBAAmB,YAAY,UAAU;AAAA,YAClD,GACF,SAAS;AAAA,UACf;AACV,iBAAO;AAAA,YACH,6BACI,SAAS,QAAQ,IACrB,iBAAiB,KAAK,mBAAmB,qBAAqB,IAAI,CAAC,IAAI,OAAO;AAAA,cAC1E;AAAA,YACJ,CAAC,eAAe,SAAS,iBAAiB,WAAW;AAAA,UACzD;AAEA,cAAI,UAAU,4BAA4B,CAAC,gCAAgC;AACvE,mBAAO,MAAM,mEAAmE;AAChF,kBAAM,IAAI;AAAA,cACN;AAAA,cACA,WAAW;AAAA,YACf;AAAA,UACJ;AAEA,gBAAM,KAAK;AAAA,YACP;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,KAAK,mBAAmB,YAAY,UAAU;AAAA,YAC9C;AAAA,YACA,kBAAkB;AAAA,UACtB;AACA,cAAI,kBAAkB,eAAe,CAAC,oBAAoB,IAAI,SAAS,GAAG;AACtE,gCAAoB,IAAI,SAAS;AAAA,UACrC;AAAA,QACJ,SAAS,OAAY;AACjB,cAAI,oBAAoB,GAAG,OAAO,WAAW,iBAAiB,GAAG;AAC7D,8BAAkB,IAAI,MAAM;AAAA,UAChC;AACA,cAAI,WAAW,WAAW,KAAK,wBAAwB,SAAS,GAAG;AAE/D,mBAAO;AAAA,cACH,2CACI,SAAS,QAAQ,IACrB,OAAO,KAAK,mBAAmB,qBAAqB,IAAI,CAAC;AAAA,cACzD,iBAAiB,sBAAsB,MAAM,UAAU;AAAA,YAC3D;AACA,gBAAI,iBAAiB,qBAAqB;AACtC,2BAAa,KAAK,EAAE,MAAM,YAAY,MAAM,MAAM,mBAAmB,MAAM,YAAY,CAAC;AACxF;AAAA,YACJ;AACA,yBAAa,KAAK,EAAE,MAAM,YAAY,WAAW,gBAAgB,CAAC;AAClE;AAAA,UACJ,OAAO;AACH,mBAAO;AAAA,cACH,qCACI,SAAS,QAAQ,IACrB,OAAO,KAAK,mBAAmB,qBAAqB,IAAI,CAAC,aAAa,MAAM,OAAO;AAAA,YACvF;AAAA,UAmBJ;AAAA,QACJ;AACA,qBAAa,KAAK,EAAE,MAAM,YAAY,WAAW,QAAQ,CAAC;AAAA,MAC9D;AAAA,IAEJ;AAEA,UAAM,eAAe,aAAa,OAAO,CAAC,EAAE,WAAW,MAAM,eAAe,WAAW,OAAO;AAC9F,WAAO;AAAA,MACH,sBAAsB,SAAS,QAAQ,IAAI,SACvC,aAAa,SACP,0BAA0B,aACrB;AAAA,QACG,CAAC,EAAE,MAAM,WAAW,MAChB,GAAG,KAAK,mBAAmB,qBAAqB,IAAI,CAAC,IAAI,OAAO,OAAO,UAAU,CAAC;AAAA,MAC1F,EACC,KAAK,IAAI,CAAC,KACf,gBACV;AAAA,IACJ;AAEA,UAAM,WAAW;AAAA,MACb,0BAA0B,cAAc;AAAA,MACxC,gBAAgB,aAAa,IAAI,CAAC,EAAE,MAAM,YAAY,kBAAkB,OAAO;AAAA,QAC3E;AAAA,QACA,QAAQ,EAAE,QAAQ,YAAY,eAAe,kBAAkB;AAAA,MACnE,EAAE;AAAA,IACN;AAGA,eAAW,aAAa,oBAAoB,OAAO,GAAG;AAClD,UAAI;AACA,kBAAU,2BAA2B;AAAA,MACzC,SAAS,OAAO;AACZ,eAAO;AAAA,UACH,8CAA8C,SAAS,QAAQ,IAAI,OAAO,UAAU,IAAI;AAAA,UACxF;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAgB,eACZ,OACA,WACA,OACA,UACA,SACA,WACA,iCACA,cAAc,OAChB;AACE,cAAU,IAAI,OAAO,SAAS,SAAS,SAAS,WAAW;AAAA,EAC/D;AAAA,EAEA,MAAM,uBACF,UACA;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GACA,WACA,SACa;AACb,WAAO;AAAA,MACH,mCAAmC,SAAS,QAAQ,IAAI,uBAAuB,iBAAiB,sBAAsB,gBAAgB;AAAA,IAC1I;AAEA,QAAI,2BAA2B,cAAc,4BAA4B;AACrE,aAAO;AAAA,QACH,wCAAwC,wBAAwB,6BAA6B,cAAc,0BAA0B;AAAA,MACzI;AAAA,IACJ;AAEA,QAAI,QAAQ,aAAa,gBAAgB,YAAY,SAAS;AAC1D,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAAA,IACJ;AAEA,wBAAoB,SAAS,SAAS,uDAAuD;AAC7F,UAAM,UAAU,SAAS;AACzB,UAAM,SAAS,QAAQ;AACvB,QAAI,WAAW;AACX,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAEJ,QAAI,CAAC,mBAAmB;AACpB,YAAM,eAAe,MAAM,KAAK,SAAS,SAAS;AAAA,QAC9C,OAAO;AAAA,QACP,QAAQ;AAAA,QACR;AAAA,MACJ;AACA,UAAI,eAAe,GAAG;AAClB,eAAO;AAAA,UACH,WAAW,YAAY,sCAAsC,QAAQ,UAAU;AAAA,QACnF;AAAA,MACJ;AAAA,IACJ;AAEA,SACK,CAAC,MAAM,QAAQ,iBAAiB,KAAK,kBAAkB,WAAW,OAClE,CAAC,MAAM,QAAQ,aAAa,KAAK,cAAc,WAAW,IAC7D;AACE,YAAM,IAAI,oBAAoB,qCAAqC,WAAW,aAAa;AAAA,IAC/F;AAEA,WAAO;AAAA,MACH,2BACI,mBAAmB,IAAI,UAAQ,KAAK,mBAAmB,qBAAqB,IAAI,CAAC,EAAE,KAAK,IAAI,KAAK,MACrG,YACI,eAAe,IAAI,UAAQ,KAAK,mBAAmB,iBAAiB,IAAI,CAAC,EAAE,KAAK,IAAI,KAAK,MAC7F;AAAA,IACJ;AAEA,QAAI,uBAAuB,UAAa,mBAAmB,SAAS,GAAG;AACnE,aAAO;AAAA,QACH,uBAAuB,mBAClB;AAAA,UACG,CAAC,EAAE,MAAM,EAAE,QAAQ,YAAY,UAAU,GAAG,YAAY,MACpD,GAAG,gBAAgB,EAAE,QAAQ,YAAY,UAAU,CAAC,CAAC,IAAI,WAAW;AAAA,QAC5E,EACC,KAAK,IAAI,CAAC;AAAA,MACnB;AAAA,IACJ;AACA,QAAI,iBAAiB,UAAa,aAAa,SAAS;AACpD,aAAO;AAAA,QACH,kBAAkB,aAAa,IAAI,YAAU,GAAG,OAAO,MAAM,IAAI,OAAO,QAAQ,EAAE,EAAE,KAAK,IAAI,CAAC;AAAA,MAClG;AAGJ,uBAAmB,QAAQ,UAAQ,2BAA2B,IAAI,CAAC;AACnE,mBAAe,QAAQ,UAAQ,sBAAsB,IAAI,CAAC;AAE1D,QAAI,0BAA0B,GAAG;AAC7B,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAAA,IACJ;AACA,QAAI,4BAA4B,GAAG;AAC/B,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAAA,IACJ;AACA,QAAI,4BAA4B,yBAAyB;AACrD,YAAM,IAAI;AAAA,QACN;AAAA,QACA,WAAW;AAAA,MACf;AAAA,IACJ;AAEA,QAAI,KAAK,wBAAwB,WAAY,MAAK,sBAAsB;AACxE,UAAM,iBAAiB,KAAK;AAE5B,UAAM,UAAqC;AAAA,MACvC;AAAA,MACA,WAAW,KAAK;AAAA,MAEhB,eAAe,CAAC,MAAM,WAAW,YAC7B,KAAK;AAAA,QACD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK,mBAAmB,YAAY,KAAK,UAAU;AAAA,QACnD;AAAA,MACJ;AAAA,MAEJ,WAAW,CAAC,MAAM,OAAOA,kBACrB,KAAK;AAAA,QACD;AAAA,QACAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK,mBAAmB,YAAY,KAAK,UAAU;AAAA,MACvD;AAAA,MAEJ,kBAAkB,CAAC,SAAsB,eAAe,KAAK,SAAS,iBAAiB,SAAS,UAAU;AAAA,IAC9G;AAEA,UAAM,eAAe,IAAI,mBAAmB;AAAA,MACxC,IAAI;AAAA,MACJ;AAAA,MACA,UAAU;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ;AAAA,MACA,kBAAkB;AAAA,MAClB,oBAAoB;AAAA,MACpB,qBAAqB,KAAK;AAAA,IAC9B,CAAC;AAED,QAAI;AAEA,YAAM,aAAa,kBAAkB,SAAS;AAAA,IAClD,SAAS,OAAY;AACjB,aAAO;AAAA,QACH,gBAAgB,cAAc,gBAAgB,QAAQ,EAAE;AAAA,QACxD;AAAA,MACJ;AACA,YAAM,aAAa,MAAM;AACzB,UAAI,iBAAiB,qBAAqB;AACtC,eAAO,KAAK,2BAA2B,MAAM,IAAI,2BAA2B,MAAM,OAAO,EAAE;AAC3F,cAAM,UAAU,WAAW,MAAM,MAAM;AAAA,UACnC,YAAY;AAAA,YACR,KAAK;AAAA,UACT;AAAA,QACJ,CAAC;AAAA,MACL;AACA,YAAM,UAAU,MAAM;AACtB;AAAA,IACJ;AAEA,UAAM,cAAc,aAAa;AACjC,WAAO;AAAA,MACH,qCAAqC,cAAc,gBAC/C,QAAQ,EACZ,cAAc,uBAAuB,MAAM,yBAAyB,OAAO,WAAW,4BAA4B,aAAa,YAAY;AAAA,IAC/I;AAEA,UAAM,UAAU;AAAA,MACZ,YAAY;AAAA,MACZ,qBAAqB,OAAO;AAAA,QACxB;AAAA,QACA;AAAA,QACA,0BAA0B,cAAc;AAAA,MAC5C,CAAC;AAAA,MACD;AAAA,QACI,YAAY;AAAA,UACR,OAAO;AAAA,UACP;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAGA,iBAAa,uBAAuB;AAAA,EACxC;AAAA,EAEA,MAAM,oBACF,UACA,EAAE,gBAAgB,cAAc,kBAAkB,yBAAyB,GAC3E,WACA,SACa;AACb,WAAO;AAAA,MACH,gCAAgC,SAAS,QAAQ,IAAI,GAAG,eAAe,SAAS,IAAI,SAAS,eAAe,MAAM,cAAc,EAAE,KAAK,eAClI;AAAA,QAAI,CAAC,EAAE,aAAa,EAAE,YAAY,WAAW,UAAU,EAAE,MACtD,KAAK,mBAAmB,mBAAmB,EAAE,YAAY,WAAW,UAAU,CAAC;AAAA,MACnF,EACC,KAAK,IAAI,CAAC,sBAAsB,gBAAgB;AAAA,IACzD;AAEA,QAAI,2BAA2B,cAAc,4BAA4B;AACrE,aAAO;AAAA,QACH,wCAAwC,wBAAwB,6BAA6B,cAAc,0BAA0B;AAAA,MACzI;AAAA,IACJ;AAEA,UAAM,iCAAiC,SAAS,0BAA0B;AAC1E,QAAI,SAAS,2BAA2B,GAAG;AACvC,eAAS,sBAAsB;AAC/B,YAAM,IAAI,oBAAoB,yDAAyD,WAAW,OAAO;AAAA,IAC7G;AAEA,QAAI,iBAAiB,SAAS,oBAAoB,GAAG;AACjD,YAAM,IAAI;AAAA,QACN,4CAA4C,YAAY,+CAA+C,8BAA8B;AAAA,QACrI,WAAW;AAAA,MACf;AAAA,IACJ;AAEA,QAAI,gCAAgC;AAChC,aAAO,MAAM,uBAAuB,SAAS,QAAQ,IAAI,+CAA+C;AACxG,eAAS,sBAAsB;AAC/B,UAAI,QAAQ,aAAa,gBAAgB,YAAY,SAAS;AAC1D,cAAM,IAAI;AAAA,UACN;AAAA,UACA,WAAW;AAAA,QACf;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,eAAe,SAAS,KAAK,oBAAoB;AACjD,YAAM,IAAI;AAAA,QACN,QAAQ,KAAK,kBAAkB,wEAAwE,eAAe,MAAM;AAAA,QAC5H,WAAW;AAAA,MACf;AAAA,IACJ;AAGA,mBAAe,QAAQ,CAAC,EAAE,YAAY,MAAM,oBAAoB,WAAW,CAAC;AAG5E,QAAI,eAAe,SAAS,GAAG;AAC3B,YAAM,YAAY,oBAAI,IAAY;AAClC,YAAM,kBAAkB,oBAAI,IAAY;AACxC,qBAAe,QAAQ,CAAC,EAAE,aAAa,WAAW,MAAM;AACpD,YAAI,CAAC,sBAAsB,WAAW,GAAG;AACrC,gBAAM,IAAI,oBAAoB,yCAAyC,WAAW,aAAa;AAAA,QACnG;AAEA,cAAM,gBAAgB,gBAAgB,WAAW;AACjD,YAAI,UAAU,IAAI,aAAa,GAAG;AAC9B,gBAAM,IAAI;AAAA,YACN,2BAA2B,aAAa;AAAA,YACxC,WAAW;AAAA,UACf;AAAA,QACJ;AAEA,YAAI,eAAe,QAAW;AAC1B,gBAAM,IAAI;AAAA,YACN,gDAAgD,aAAa;AAAA,YAC7D,WAAW;AAAA,UACf;AAAA,QACJ;AAEA,YAAI,gBAAgB,IAAI,UAAU,GAAG;AACjC,gBAAM,IAAI;AAAA,YACN,+BAA+B,UAAU,iBAAiB,aAAa;AAAA,YACvE,WAAW;AAAA,UACf;AAAA,QACJ;AAEA,kBAAU,IAAI,aAAa;AAC3B,wBAAgB,IAAI,UAAU;AAAA,MAClC,CAAC;AAAA,IACL;AAEA,UAAM,iBAAiB,QAAQ,aAAa,gBAAgB,YAAY;AACxE,UAAM,wBAAyE;AAAA,MAC3E,kBAAkB;AAAA;AAAA,MAClB,0BAA0B,cAAc;AAAA,MACxC,iBAAiB,CAAC;AAAA,MAClB,qBAAqB,eAAe,SAAS;AAAA;AAAA,IACjD;AACA,UAAM,2BAA2B,yBAAyB,OAAO,qBAAqB;AACtF,QAAI,cAAc,yBAAyB;AAC3C,QAAI,yBAAyB;AAI7B,UAAM,wBAAwB,OAC1B,mBACgB;AAChB;AAEA,UAAI,gBAAgB;AAEhB;AAAA,MACJ;AACA,YAAM,wBAAwB,sBAAsB,UAAU,cAAc;AAC5E,YAAM,sBAAsB,OAAO,qBAAqB,qBAAqB;AAE7E,UACI,cAAc,sBAAsB,SAAS,kBAC7C,2BAA2B,eAAe,QAC5C;AACE,YAAI,uBAAuB;AAC3B,YAAI,cAAc,uBAAuB,SAAS,gBAAgB;AAE9D,gCAAsB,gBAAgB,KAAK,qBAAqB;AAChE,iCAAuB;AAAA,QAC3B;AAEA,YAAI,sBAAsB,gBAAgB,SAAS,GAAG;AAClD,cAAI,eAAe,SAAS,GAAG;AAC3B,mBAAO;AAAA,cACH,QAAQ,uBAAuB,WAAW,EAAE,uBAAuB,sBAAsB,eAAe;AAAA,YAC5G;AAAA,UACJ;AACA,gBAAM,sBAAsB,uBAAuB,SAAY;AAC/D,gBAAM,UAAU;AAAA,YACZ,YAAY;AAAA,YACZ,yBAAyB,OAAO;AAAA,cAC5B,GAAG;AAAA,cACH;AAAA,YACJ,CAAC;AAAA,YACD;AAAA,cACI,YAAY;AAAA,gBACR,gBAAgB,WAAW,QAAQ;AAAA,kBAC/B;AAAA,kBACA;AAAA,gBACJ,CAAC;AAAA,cACL;AAAA,YACJ;AAAA,UACJ;AACA,gCAAsB,kBAAkB,CAAC;AACzC,wBAAc,yBAAyB;AAAA,QAC3C;AACA,YAAI,CAAC,sBAAsB;AACvB;AACA,iBAAO,sBAAsB,cAAc;AAAA,QAC/C;AAAA,MACJ,OAAO;AACH,8BAAsB,gBAAgB,KAAK,qBAAqB;AAChE,uBAAe;AAAA,MACnB;AAAA,IACJ;AAIA,eAAW,EAAE,aAAa,eAAe,WAAW,KAAK,gBAAgB;AACrE,YAAM,WAAW,KAAK,mBAAmB,YAAY,CAAC,WAAW,CAAC;AAElE,UAAI,SAAS,WAAW,GAAG;AACvB,YAAI,sBAAsB,WAAW,GAAG;AACpC,gBAAM,EAAE,YAAY,WAAW,UAAU,IAAI;AAE7C,cAAI;AAEJ,cAAI;AACA,iBAAK,mBAAmB,4BAA4B,YAAY,WAAW,SAAS;AACpF,kBAAM,IAAI;AAAA,cACN;AAAA,YACJ;AAAA,UACJ,SAAS,GAAG;AACR,gCAAoB,OAAO,CAAC;AAE5B,mBAAO;AAAA,cACH,eAAe,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,gBAC7D;AAAA,cACJ,CAAC,6BAA6B,EAAE,IAAI;AAAA,YACxC;AACA,qBAAS,EAAE,QAAQ,EAAE,aAAa,QAAQ,EAAE,QAAQ,EAAE,KAAK,GAAG,WAAW,EAAE;AAAA,UAC/E;AAEA,gBAAM,sBAAsB,MAAM;AAAA,QACtC,OAAO;AAEH,iBAAO;AAAA,YACH,eAAe,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,cAC7D;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ;AACA;AAAA,MACJ;AAEA,YAAM,iBAAiB,sBAAsB,WAAW;AACxD,iBAAW,EAAE,SAAS,KAAK,KAAK,UAAU;AACtC,cAAM,EAAE,YAAY,WAAW,UAAU,IAAI;AAC7C,YAAI,eAAe,QAAW;AAE1B,iBAAO;AAAA,YACH,eAAe,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,cAC7D;AAAA,YACJ,CAAC;AAAA,UACL;AACA,cAAI,gBAAgB;AAChB,kBAAM,sBAAsB;AAAA,cACxB,QAAQ;AAAA,gBACJ,aAAa;AAAA,gBACb,QAAQ,EAAE,QAAQ,WAAW,oBAAoB;AAAA,gBACjD;AAAA,cACJ;AAAA,YACJ,CAAC;AAAA,UACL;AACA;AAAA,QACJ;AACA,cAAM,WAAW,KAAK,mBAAmB,YAAY,UAAU;AAC/D,YAAI,aAAa,QAAW;AAExB,iBAAO;AAAA,YACH,eAAe,SAAS,QAAQ,IAAI,KAAK,KAAK,mBAAmB;AAAA,cAC7D;AAAA,YACJ,CAAC;AAAA,UACL;AACA,cAAI,gBAAgB;AAChB,kBAAM,sBAAsB;AAAA,cACxB,QAAQ;AAAA,gBACJ,aAAa;AAAA,gBACb,QAAQ,EAAE,QAAQ,WAAW,oBAAoB;AAAA,gBACjD;AAAA,cACJ;AAAA,YACJ,CAAC;AAAA,UACL;AACA;AAAA,QACJ;AACA,YAAI,QAAQ,4BAA4B,CAAC,gCAAgC;AACrE,iBAAO,MAAM,oEAAoE;AACjF,cAAI,gBAAgB;AAChB,kBAAM,sBAAsB;AAAA,cACxB,QAAQ;AAAA,gBACJ,aAAa;AAAA,gBACb,QAAQ,EAAE,QAAQ,WAAW,sBAAsB;AAAA,gBACnD;AAAA,cACJ;AAAA,YACJ,CAAC;AAAA,UACL;AACA;AAAA,QACJ;AACA,YACI,6BAA6B,WAAW,SAAS,GAAG,iBACnD,CAAC,SAAS,QAAQ,YAAY,CAAE,SAAS,QAA0B,SACtE;AACE,iBAAO,MAAM,gFAAgF;AAC7F,cAAI,gBAAgB;AAChB,kBAAM,sBAAsB;AAAA,cACxB,QAAQ,EAAE,aAAa,MAAM,QAAQ,EAAE,QAAQ,WAAW,kBAAkB,GAAG,WAAW;AAAA,YAC9F,CAAC;AAAA,UACL;AACA;AAAA,QACJ;AAEA,YAAI;AACJ,YAAI;AACA,mBAAS,MAAM,KAAK;AAAA,YAChB;AAAA,YACA;AAAA,YACA;AAAA,YACA,iBAAiB,eAAe,UAAU,aAAa;AAAA,YACvD;AAAA,YACA;AAAA,YACA;AAAA,UACJ;AAAA,QACJ,SAAS,GAAG;AACR,8BAAoB,OAAO,CAAC;AAE5B,cAAI,YAAY,EAAE;AAClB,gBAAM,eAAe,SAAS,WAAW,IAAI,SAAS,CAAC,GACnD,EAAE,gBAAgB,SAAY,IAAI,WAAW,IAAI,EAAE,WAAW,CAAC,KAAK,EACxE,4BAA4B,EAAE,OAAO;AAErC,cAAI,aAAa,iBAAiB;AAC9B,mBAAO;AAAA,cACH,cAAc,YAAY,GAAG,EAAE,cAAc,SAAY,aAAa,EAAE,SAAS,KAAK,EAAE;AAAA,YAC5F;AACA,gBAAI,cAAc,WAAW,eAAe;AACxC,0BAAY,WAAW;AAAA,YAC3B;AAAA,UACJ,OAAO;AACH,mBAAO,KAAK,YAAY;AAAA,UAC5B;AAEA,mBAAS;AAAA,YACL,MAAM;AAAA,YACN,aAAa,EAAE;AAAA,YACf,YAAY,QAAQ;AAAA,YACpB,UAAU,cAAc,UAAU;AAAA,UACtC;AAAA,QACJ;AACA,cAAM,EAAE,MAAM,aAAa,YAAY,SAAS,IAAI;AACpD,YAAI,SAAS,WAAW,GAAG;AACvB,gBAAM,sBAAsB;AAAA,YACxB,QAAQ,EAAE,aAAa,MAAM,QAAQ,EAAE,QAAQ,MAAM,eAAe,YAAY,GAAG,WAAW;AAAA,UAClG,CAAC;AAAA,QACL,OAAO;AACH,gBAAM,sBAAsB;AAAA,YACxB,SAAS;AAAA,cACL,aAAa,EAAE,GAAG,MAAM,WAAW,WAAW;AAAA,cAC9C,eAAe;AAAA,cACf;AAAA,YACJ;AAAA,UACJ,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAgB,cACZ,OACA,SACA,UACA,eACA,SACA,UACA,kCAAkC,OACpC;AACE,WAAO,QAAQ,OAAO,SAAS,SAAS,eAAe,SAAS,QAAQ;AAAA,EAC5E;AAAA,EAEA,mBAAmB,UAA2B,EAAE,SAAS,yBAAyB,GAAiB;AAC/F,WAAO,MAAM,2BAA2B,OAAO,YAAY,SAAS,QAAQ,IAAI,EAAE;AAElF,QAAI,2BAA2B,cAAc,4BAA4B;AACrE,aAAO;AAAA,QACH,wCAAwC,wBAAwB,6BAA6B,cAAc,0BAA0B;AAAA,MACzI;AAAA,IACJ;AAEA,aAAS,sBAAsB,OAAO;AAAA,EAC1C;AAAA,EAEA,MAAM,QAAQ;AACV,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,IAAI,qBAAqB;AACrB,WAAO,KAAK,SAAS;AAAA,EACzB;AACJ;",
4
+ "mappings": "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",
5
5
  "names": ["eventFilters"]
6
6
  }
@@ -8,7 +8,7 @@ import { MaybePromise } from "#general";
8
8
  import { PeerAddress } from "#peer/PeerAddress.js";
9
9
  import type { MessageExchange } from "#protocol/MessageExchange.js";
10
10
  import { SecureSession } from "#session/SecureSession.js";
11
- import { TlvEventFilter, TlvSchema, TypeFromSchema } from "#types";
11
+ import { EndpointNumber, TlvEventFilter, TlvSchema, TypeFromSchema } from "#types";
12
12
  import { AnyAttributeServer } from "../cluster/server/AttributeServer.js";
13
13
  import { AnyEventServer } from "../cluster/server/EventServer.js";
14
14
  import { InteractionEndpointStructure } from "./InteractionEndpointStructure.js";
@@ -59,10 +59,20 @@ export declare namespace ServerSubscriptionConfig {
59
59
  export interface ServerSubscriptionContext {
60
60
  session: SecureSession;
61
61
  structure: InteractionEndpointStructure;
62
- readAttribute(path: AttributePath, attribute: AnyAttributeServer<unknown>, offline?: boolean): Promise<{
62
+ readAttribute(path: AttributePath, attribute: AnyAttributeServer<unknown>, offline?: boolean): {
63
63
  version: number;
64
64
  value: unknown;
65
- }>;
65
+ };
66
+ readEndpointAttributesForSubscription(endpointId: EndpointNumber, attributes: {
67
+ path: AttributePath;
68
+ attribute: AnyAttributeServer<unknown>;
69
+ offline?: boolean;
70
+ }[]): {
71
+ path: AttributePath;
72
+ attribute: AnyAttributeServer<unknown>;
73
+ version: number;
74
+ value: unknown;
75
+ }[];
66
76
  readEvent(path: EventPath, event: AnyEventServer<any, any>, eventFilters: TypeFromSchema<typeof TlvEventFilter>[] | undefined): Promise<NumberedOccurrence[]>;
67
77
  initiateExchange(address: PeerAddress, protocolId: number): MessageExchange;
68
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServerSubscription.d.ts","sourceRoot":"","sources":["../../../src/interaction/ServerSubscription.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerSubscription.d.ts","sourceRoot":"","sources":["../../../src/interaction/ServerSubscription.ts"],"names":[],"mappings":"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"}