bruce-cesium 7.3.7 → 7.3.9

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 (30) hide show
  1. package/dist/bruce-cesium.es5.js +431 -53
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +429 -51
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +1 -1
  6. package/dist/lib/rendering/displaced-surface-primitive.js +63 -24
  7. package/dist/lib/rendering/displaced-surface-primitive.js.map +1 -1
  8. package/dist/lib/rendering/entity-gatherer.js +249 -16
  9. package/dist/lib/rendering/entity-gatherer.js.map +1 -1
  10. package/dist/lib/rendering/entity-render-engine.js +22 -0
  11. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  12. package/dist/lib/rendering/render-managers/common/historic-utils.js +64 -7
  13. package/dist/lib/rendering/render-managers/common/historic-utils.js.map +1 -1
  14. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +5 -0
  15. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +1 -1
  16. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +8 -3
  17. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
  18. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +5 -0
  19. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
  20. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +5 -0
  21. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  22. package/dist/lib/rendering/visuals-register.js +8 -0
  23. package/dist/lib/rendering/visuals-register.js.map +1 -1
  24. package/dist/types/bruce-cesium.d.ts +1 -1
  25. package/dist/types/rendering/displaced-surface-primitive.d.ts +4 -0
  26. package/dist/types/rendering/entity-gatherer.d.ts +27 -4
  27. package/dist/types/rendering/entity-render-engine.d.ts +9 -0
  28. package/dist/types/rendering/render-managers/common/historic-utils.d.ts +12 -4
  29. package/dist/types/rendering/visuals-register.d.ts +5 -0
  30. package/package.json +1 -1
@@ -4,6 +4,7 @@ exports.EntityGatherer = void 0;
4
4
  const bruce_models_1 = require("bruce-models");
5
5
  const Cesium = require("cesium");
6
6
  const historic_utils_1 = require("./render-managers/common/historic-utils");
7
+ const cesium_utils_1 = require("../internal/cesium-utils");
7
8
  class EntityGatherer {
8
9
  get OnQueueProgress() {
9
10
  if (!this._onQueueProgress) {
@@ -41,6 +42,19 @@ class EntityGatherer {
41
42
  // All IDs that have ever been queued.
42
43
  // When nothing is in queue, we'll re-request the existing IDs based on timeline changes.
43
44
  this.allEIds = new Set();
45
+ // IDs a historic read has actually answered with a record, rather than falling back to a stub.
46
+ // A refresh serves these before the ones that have never produced anything.
47
+ this.everFound = new Set();
48
+ // Every known Entity bucketed by the ground cell its position falls in, so a refresh can ask
49
+ // what the view reaches instead of walking the whole set. Built as IDs arrive.
50
+ this.cells = new Map();
51
+ // IDs the position source could not place yet. They are always refreshed.
52
+ this.unplaced = new Set();
53
+ // The IDs the last decision found inside the view, so a camera move can queue the difference
54
+ // rather than re-requesting everything it already asked about.
55
+ this.lastInView = new Set();
56
+ // Unsubscribes the view monitor listener that queues what the camera has moved onto.
57
+ this.monitorRemoval = null;
44
58
  // Indicates a tick is active.
45
59
  // When true, we won't bother calling onTick again.
46
60
  this.runningTick = false;
@@ -91,6 +105,16 @@ class EntityGatherer {
91
105
  }
92
106
  this.historic = historic;
93
107
  this.expandSources = expandSources;
108
+ if (this.historic) {
109
+ // Anything already known was taken in before the index was being built, so it is filed
110
+ // a bounded number at a time from here rather than in one pass now.
111
+ for (const entityId of this.allEIds) {
112
+ this.unplaced.add(entityId);
113
+ }
114
+ }
115
+ else {
116
+ this.clearIndex();
117
+ }
94
118
  if (this.historic) {
95
119
  // 4 ticks per second.
96
120
  // The fastest data we are working with is 5 times per second.
@@ -142,6 +166,8 @@ class EntityGatherer {
142
166
  this.lastOrderFocus = null;
143
167
  this.allEIds.clear();
144
168
  this.lastFoundDateTimes.clear();
169
+ this.everFound.clear();
170
+ this.clearIndex();
145
171
  this.lastDateTime = null;
146
172
  }
147
173
  ReQueueAll() {
@@ -152,22 +178,193 @@ class EntityGatherer {
152
178
  this.eIdQueued = new Set(this.eIdQueue);
153
179
  this.priorityCount = 0;
154
180
  this.lastOrderFocus = null;
181
+ this.clearIndex();
155
182
  }
156
183
  /**
157
- * Supplies a lookup from Entity ID to world position, letting the queue resolve what the camera
158
- * is nearest first. Sources that cannot answer should not call this, and are served in order.
184
+ * Supplies a lookup from Entity ID to world position, letting the queue resolve what the camera is nearest first.
185
+ * Sources that cannot answer should not call this, and are served in order.
159
186
  */
160
187
  SetPositionSource(positionOf) {
161
188
  this.positionOf = positionOf;
162
189
  this.lastOrderFocus = null;
190
+ this.cells.clear();
191
+ this.lastInView.clear();
192
+ for (const entityId of this.allEIds) {
193
+ this.unplaced.add(entityId);
194
+ }
163
195
  }
164
196
  /**
165
- * Supplies the view monitor, so the order follows the ground the camera is aimed at and prefers
166
- * what is on screen. Without one the ordering falls back to distance from the camera itself.
197
+ * Supplies the view monitor, so the order follows the ground the camera is aimed at and prefers what is on screen.
198
+ * Without one the ordering falls back to distance from the camera itself.
167
199
  */
168
200
  SetViewMonitor(monitor) {
201
+ var _a;
202
+ (_a = this.monitorRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
203
+ this.monitorRemoval = null;
169
204
  this.monitor = monitor;
170
205
  this.lastOrderFocus = null;
206
+ if (!monitor) {
207
+ return;
208
+ }
209
+ this.monitorRemoval = monitor.Updated().Subscribe(() => {
210
+ this.admitNewlyInView();
211
+ });
212
+ }
213
+ /*
214
+ * Queues whatever the camera has moved onto since the last decision.
215
+ */
216
+ admitNewlyInView() {
217
+ if (this.disposed || !this.historic) {
218
+ return;
219
+ }
220
+ const inView = this.decideInView();
221
+ if (!inView) {
222
+ return;
223
+ }
224
+ const admit = [];
225
+ for (const entityId of inView) {
226
+ if (!this.lastInView.has(entityId)) {
227
+ admit.push(entityId);
228
+ }
229
+ }
230
+ this.lastInView = new Set(inView);
231
+ if (admit.length) {
232
+ this.Queue(admit);
233
+ }
234
+ }
235
+ /*
236
+ * Returns the IDs a refresh should ask about, or null when the view cannot say and the answer has to be everything.
237
+ */
238
+ decideInView() {
239
+ if (!this.historic || !this.positionOf || !this.monitor) {
240
+ return null;
241
+ }
242
+ const area = this.refreshArea();
243
+ if (!area) {
244
+ return null;
245
+ }
246
+ const inView = [];
247
+ for (const key of this.candidateCellKeys(area)) {
248
+ const cell = this.cells.get(key);
249
+ if (!cell) {
250
+ continue;
251
+ }
252
+ for (let i = 0; i < cell.ids.length; i++) {
253
+ if (historic_utils_1.HistoricFetchOrder.InDegreeBounds(cell.lats[i], cell.lons[i], area)) {
254
+ inView.push(cell.ids[i]);
255
+ }
256
+ }
257
+ }
258
+ // Anything the source cannot place yet is asked about rather than quietly dropped.
259
+ for (const entityId of this.unplaced) {
260
+ inView.push(entityId);
261
+ }
262
+ return inView;
263
+ }
264
+ /*
265
+ * Returns the cell keys a rectangle can reach.
266
+ */
267
+ candidateCellKeys(area) {
268
+ const size = EntityGatherer.CELL_DEGREES;
269
+ const southCell = Math.floor(area.south / size);
270
+ const northCell = Math.floor(area.north / size);
271
+ const spans = (area.west > area.east ? [
272
+ {
273
+ from: Math.floor(area.west / size),
274
+ to: Math.floor(180 / size)
275
+ },
276
+ {
277
+ from: Math.floor(-180 / size),
278
+ to: Math.floor(area.east / size)
279
+ }
280
+ ] :
281
+ [{
282
+ from: Math.floor(area.west / size),
283
+ to: Math.floor(area.east / size)
284
+ }]);
285
+ let width = 0;
286
+ for (const span of spans) {
287
+ width += (span.to - span.from) + 1;
288
+ }
289
+ const wanted = ((northCell - southCell) + 1) * width;
290
+ if (!(wanted > 0) || wanted > this.cells.size) {
291
+ return Array.from(this.cells.keys());
292
+ }
293
+ const keys = [];
294
+ for (let lat = southCell; lat <= northCell; lat++) {
295
+ for (const span of spans) {
296
+ for (let lon = span.from; lon <= span.to; lon++) {
297
+ keys.push(lat + ":" + lon);
298
+ }
299
+ }
300
+ }
301
+ return keys;
302
+ }
303
+ /*
304
+ * Files an Entity in the cell its position falls in.
305
+ */
306
+ place(entityId) {
307
+ const degrees = this.degreesOf(entityId);
308
+ if (!degrees) {
309
+ this.unplaced.add(entityId);
310
+ return;
311
+ }
312
+ const size = EntityGatherer.CELL_DEGREES;
313
+ const key = Math.floor(degrees.lat / size) + ":" + Math.floor(degrees.lon / size);
314
+ let cell = this.cells.get(key);
315
+ if (!cell) {
316
+ cell = { ids: [], lats: [], lons: [] };
317
+ this.cells.set(key, cell);
318
+ }
319
+ cell.ids.push(entityId);
320
+ cell.lats.push(degrees.lat);
321
+ cell.lons.push(degrees.lon);
322
+ this.unplaced.delete(entityId);
323
+ }
324
+ /*
325
+ * Retries a bounded number of the Entities the source could not place before, so a late baked
326
+ * position joins the index without any one tick paying for all of them.
327
+ */
328
+ placeStragglers() {
329
+ if (!this.unplaced.size || !this.positionOf) {
330
+ return;
331
+ }
332
+ let budget = EntityGatherer.PLACE_BATCH;
333
+ for (const entityId of this.unplaced) {
334
+ if (budget-- <= 0) {
335
+ return;
336
+ }
337
+ this.place(entityId);
338
+ }
339
+ }
340
+ clearIndex() {
341
+ this.cells.clear();
342
+ this.unplaced.clear();
343
+ this.lastInView.clear();
344
+ }
345
+ /*
346
+ * Returns where an Entity sits in degrees, or null when the source cannot place it.
347
+ */
348
+ degreesOf(entityId) {
349
+ let pos = null;
350
+ try {
351
+ pos = this.positionOf ? this.positionOf(entityId) : null;
352
+ }
353
+ catch {
354
+ pos = null;
355
+ }
356
+ return pos ? (0, cesium_utils_1.CartesianToDegrees)(pos) : null;
357
+ }
358
+ /*
359
+ * Returns the visible rectangle plus the margin a refresh still reaches into,
360
+ * or null when the view cannot say, which is what leaves every Entity in.
361
+ */
362
+ refreshArea() {
363
+ const focus = historic_utils_1.HistoricFetchOrder.FocusFrom({ viewer: this.viewer, monitor: this.monitor });
364
+ if (!(focus === null || focus === void 0 ? void 0 : focus.bounds)) {
365
+ return null;
366
+ }
367
+ return historic_utils_1.HistoricFetchOrder.GrowBounds(focus.bounds, historic_utils_1.HistoricFetchOrder.RefreshMarginFor(focus.bounds));
171
368
  }
172
369
  /**
173
370
  * Re-bands the pending queue so the nearest Entities are requested first.
@@ -180,8 +377,6 @@ class EntityGatherer {
180
377
  if (!focus) {
181
378
  return;
182
379
  }
183
- // Re-banding on every batch would cost a full pass per request for no change in the answer.
184
- // Measured on the focus, so panning across the ground counts even when the eye barely moves.
185
380
  if (this.lastOrderFocus && !EntityGatherer.boundsChanged(this.lastOrderFocus, focus) &&
186
381
  Cesium.Cartesian3.distance(this.lastOrderFocus.origin, focus.origin) < EntityGatherer.REORDER_MOVE_METRES) {
187
382
  return;
@@ -228,26 +423,47 @@ class EntityGatherer {
228
423
  });
229
424
  const ordered = [];
230
425
  for (const band of banded) {
426
+ // Within a band, the ones a read has answered for go first.
427
+ // A building that has never produced a record is the one least likely to start now, so it waits.
428
+ const withData = [];
429
+ const withoutData = [];
231
430
  for (const entityId of band) {
431
+ (this.everFound.has(entityId) ? withData : withoutData).push(entityId);
432
+ }
433
+ for (const entityId of withData) {
434
+ ordered.push(entityId);
435
+ }
436
+ for (const entityId of withoutData) {
232
437
  ordered.push(entityId);
233
438
  }
234
439
  }
235
440
  return ordered;
236
441
  }
442
+ /*
443
+ * Takes an ID into the known set, filing it in the index the first time it is seen.
444
+ */
445
+ remember(entityId) {
446
+ if (this.allEIds.has(entityId)) {
447
+ return;
448
+ }
449
+ this.allEIds.add(entityId);
450
+ // Only a historic refresh reads the index, so nothing else pays to build it.
451
+ if (this.historic) {
452
+ this.place(entityId);
453
+ }
454
+ }
237
455
  Queue(entityIds, topOfQueue = false) {
238
456
  if (this.disposed || !(entityIds === null || entityIds === void 0 ? void 0 : entityIds.length)) {
239
457
  return;
240
458
  }
241
459
  let changes = 0;
242
460
  if (topOfQueue) {
243
- // Walked back to front so a repeated ID keeps the position of its last occurrence, then
244
- // laid down in that order, which is where inserting one at a time leaves them.
245
461
  const toFront = [];
246
462
  const promoting = new Set();
247
463
  let anyAlreadyQueued = false;
248
464
  for (let i = entityIds.length - 1; i >= 0; i--) {
249
465
  const eId = entityIds[i];
250
- this.allEIds.add(eId);
466
+ this.remember(eId);
251
467
  if (promoting.has(eId)) {
252
468
  continue;
253
469
  }
@@ -283,7 +499,7 @@ class EntityGatherer {
283
499
  else {
284
500
  for (let i = 0; i < entityIds.length; i++) {
285
501
  const eId = entityIds[i];
286
- this.allEIds.add(eId);
502
+ this.remember(eId);
287
503
  if (this.eIdQueued.has(eId)) {
288
504
  continue;
289
505
  }
@@ -298,19 +514,22 @@ class EntityGatherer {
298
514
  this.onTick(false);
299
515
  }
300
516
  Dispose() {
517
+ var _a;
301
518
  if (this.disposed) {
302
519
  return;
303
520
  }
304
521
  this.disposed = true;
522
+ (_a = this.monitorRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
523
+ this.monitorRemoval = null;
305
524
  this.hDisposals.forEach((d) => d());
306
525
  this.hDisposals = [];
307
- // A tick still awaiting a response resumes after this, and anything left here would have it
308
- // ask for the whole set again on the way out.
309
526
  this.eIdQueue = [];
310
527
  this.eIdQueued.clear();
311
528
  this.priorityCount = 0;
312
529
  this.allEIds.clear();
313
530
  this.lastFoundDateTimes.clear();
531
+ this.everFound.clear();
532
+ this.clearIndex();
314
533
  this.entityDataOverrides.clear();
315
534
  }
316
535
  checkRange(force) {
@@ -334,6 +553,7 @@ class EntityGatherer {
334
553
  this.lastDateTime = rTime;
335
554
  (async () => {
336
555
  this.runningTick = true;
556
+ this.placeStragglers();
337
557
  let rerun = false;
338
558
  try {
339
559
  const handleResponse = async (requestedBatch, entities) => {
@@ -346,6 +566,13 @@ class EntityGatherer {
346
566
  foundById.set(entityId, entity);
347
567
  }
348
568
  }
569
+ if (this.historic) {
570
+ for (const entityId of requestedBatch || []) {
571
+ if (foundById.has(entityId)) {
572
+ this.everFound.add(entityId);
573
+ }
574
+ }
575
+ }
349
576
  for (const entityId of requestedBatch || []) {
350
577
  const override = this.entityDataOverrides.get(entityId);
351
578
  if (override) {
@@ -474,15 +701,16 @@ class EntityGatherer {
474
701
  this._onQueueProgress.Trigger(100);
475
702
  }
476
703
  }
477
- // Now run through all IDs that we've seen and request them.
704
+ // Now run through the IDs we've seen that the view still reaches, and request them.
478
705
  // We'll skip those that we just requested.
479
- let allEIds = Array.from(this.allEIds);
706
+ const inView = this.decideInView();
707
+ this.lastInView = inView ? new Set(inView) : new Set();
708
+ let allEIds = inView || Array.from(this.allEIds);
480
709
  if (requestedIds.size) {
481
710
  allEIds = allEIds.filter((eId) => !requestedIds.has(eId));
482
711
  }
483
712
  if (allEIds.length) {
484
- // A historic tick re-reads the whole set, so the near ones are worth resolving
485
- // first here even more than in the queue above.
713
+ // The near ones are resolved first out of whatever the view still reaches.
486
714
  allEIds = this.bandIds(allEIds);
487
715
  while (allEIds.length && !this.disposed && !this.eIdQueue.length) {
488
716
  if (this.historic && this.lastDateTime !== rTime) {
@@ -521,6 +749,11 @@ class EntityGatherer {
521
749
  }
522
750
  // Below this the whole queue clears in one or two requests, so ordering it buys nothing.
523
751
  EntityGatherer.MIN_ORDER_QUEUE = 500;
752
+ // Side of the ground cells Entities are bucketed into, in degrees.
753
+ // About a kilometre, so a view covers a handful of them rather than hundreds.
754
+ EntityGatherer.CELL_DEGREES = 0.01;
755
+ // How many Entities one tick will try to place in the index.
756
+ EntityGatherer.PLACE_BATCH = 20000;
524
757
  // How far the point being looked at has to move before the queue is worth re-banding, in metres.
525
758
  // Under the nearest band's width, so a move that could change what is nearest still triggers one.
526
759
  EntityGatherer.REORDER_MOVE_METRES = 250;
@@ -1 +1 @@
1
- {"version":3,"file":"entity-gatherer.js","sourceRoot":"","sources":["../../../src/rendering/entity-gatherer.ts"],"names":[],"mappings":";;;AAAA,+CAAmF;AACnF,iCAAiC;AACjC,4EAA6E;AAG7E,MAAa,cAAc;IAkEvB,IAAW,eAAe;QACtB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,yBAAU,EAAU,CAAC;SACpD;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAGD,YAAY,GAAiB,EAAE,MAAqB,EAAE,YAA0E;QAnExH,aAAQ,GAAY,KAAK,CAAC;QAK1B,kBAAa,GAAY,KAAK,CAAC;QAC/B,aAAQ,GAAY,IAAI,CAAC;QACzB,eAAU,GAAmB,EAAE,CAAC;QAMxC,uCAAuC;QAC/B,iBAAY,GAAW,IAAI,CAAC;QAEpC,6CAA6C;QACrC,oBAAe,GAAW,IAAI,CAAC;QAC/B,oBAAe,GAAW,IAAI,CAAC;QAEvC,wCAAwC;QACxC,kGAAkG;QAC1F,uBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEvD,8CAA8C;QACtC,aAAQ,GAAa,EAAE,CAAC;QAEhC,kDAAkD;QAC1C,cAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEtC,qFAAqF;QACrF,iGAAiG;QACzF,eAAU,GAAqD,IAAI,CAAC;QAE5E,0EAA0E;QAC1E,sFAAsF;QAC9E,kBAAa,GAAW,CAAC,CAAC;QAElC,6CAA6C;QACrC,mBAAc,GAAkC,IAAI,CAAC;QAE7D,uEAAuE;QAC/D,YAAO,GAA8B,IAAI,CAAC;QAElD,sCAAsC;QACtC,yFAAyF;QACjF,YAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,8BAA8B;QAC9B,mDAAmD;QAC3C,gBAAW,GAAY,KAAK,CAAC;QAErC,4BAA4B;QAC5B,oGAAoG;QAC5F,wBAAmB,GAAG,IAAI,GAAG,EAA0B,CAAC;QAEhE,6CAA6C;QAC7C,yEAAyE;QACjE,qBAAgB,GAAuB,IAAI,CAAC;QAUhD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAEO,oBAAoB,CAAC,QAAgB;QACzC,OAAQ;YACJ,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE;gBACH,EAAE,EAAE,QAAQ;aACf;SAC0B,CAAC;IACpC,CAAC;IAEM,qBAAqB,CAAC,GAAW,EAAE,MAAsB;QAC5D,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QACD,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SAC7C;aACI;YACD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACxC;IACL,CAAC;IAED;;;;;OAKG;IACI,IAAI,CAAC,QAAiB,EAAE,aAAsB;QACjD,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,SAAS,EAAE;YAC3C,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SAC5B;QACD,IAAI,aAAa,IAAI,IAAI,IAAI,aAAa,IAAI,SAAS,EAAE;YACrD,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;SACtC;QAED,IAAI,QAAQ,KAAK,IAAI,CAAC,QAAQ,IAAI,aAAa,KAAK,IAAI,CAAC,aAAa,EAAE;YACpE,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,sBAAsB;YACtB,8DAA8D;YAC9D,IAAI,SAAS,GAAG,IAAI,yBAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAEd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtB,IAAI,SAAS,EAAE;oBACX,SAAS,CAAC,OAAO,EAAE,CAAC;iBACvB;gBACD,SAAS,GAAG,IAAI,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,mDAAmD;YACnD,IAAI,QAAQ,GAAW,IAAI,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE;gBAChE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACzD,IAAI,OAAO,KAAK,QAAQ,EAAE;oBACtB,OAAO;iBACV;gBACD,QAAQ,GAAG,OAAO,CAAC;gBAEnB,IAAI,SAAS,EAAE;oBACX,SAAS,CAAC,IAAI,EAAE,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC,CAAC;YAEJ,gGAAgG;YAChG,IAAI,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtB,IAAI,kBAAkB,EAAE;oBACpB,aAAa,CAAC,kBAAkB,CAAC,CAAC;iBACrC;gBACD,kBAAkB,GAAG,IAAI,CAAC;YAC9B,CAAC,CAAC,CAAC;SACN;aACI;YACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACxB;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEM,KAAK;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEM,UAAU;QACb,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,UAA0D;QAC/E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,OAAkC;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,kBAAkB;QACtB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE;YAC3E,OAAO;SACV;QACD,MAAM,KAAK,GAAG,mCAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,4FAA4F;QAC5F,6FAA6F;QAC7F,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;YAChF,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,mBAAmB,EAAE;YAC3G,OAAO;SACV;QACD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC9F,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,aAAa,CAAC,CAAgC,EAAE,CAAgC;QAC3F,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE;YACxB,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAClD;QACD,OAAO,CACH,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK;YACjC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK;YACjC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI;YAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAClC,CAAC;IACN,CAAC;IAED;;OAEG;IACK,OAAO,CAAC,SAAmB,EAAE,KAAqC;QACtE,MAAM,IAAI,GAAG,KAAK,IAAI,mCAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAChD,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,MAAM,GAAG,mCAAkB,CAAC,kBAAkB,CAAC;YACjD,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAChB,IAAI;oBACA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;iBACpC;gBACD,MAAM;oBACF,OAAO,IAAI,CAAC;iBACf;YACL,CAAC;SACJ,CAAC,CAAC;QAEH,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE;YACvB,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE;gBACzB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC1B;SACJ;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IAEM,KAAK,CAAC,SAAmB,EAAE,aAAsB,KAAK;QACzD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,CAAA,EAAE;YACrC,OAAO;SACV;QACD,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,IAAI,UAAU,EAAE;YACZ,wFAAwF;YACxF,+EAA+E;YAC/E,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;YACpC,IAAI,gBAAgB,GAAG,KAAK,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACpB,SAAS;iBACZ;gBACD,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACzB,gBAAgB,GAAG,IAAI,CAAC;iBAC3B;aACJ;YAED,IAAI,gBAAgB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC1C,MAAM,IAAI,GAAa,EAAE,CAAC;gBAC1B,IAAI,mBAAmB,GAAG,CAAC,CAAC;gBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC7B,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;wBACpB,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE;4BACxB,mBAAmB,IAAI,CAAC,CAAC;yBAC5B;wBACD,SAAS;qBACZ;oBACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBAClB;gBACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC,CAAC;aAC9E;YAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;YACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;aAClC;YACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;SAC5B;aACI;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACzB,SAAS;iBACZ;gBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACxB,OAAO,IAAI,CAAC,CAAC;aAChB;SACJ;QAED,IAAI,CAAC,OAAO,EAAE;YACV,OAAO;SACV;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,OAAO;SACV;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,4FAA4F;QAC5F,8CAA8C;QAC9C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAEO,UAAU,CAAC,KAAc;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,KAAK,IAAI,IAAI,CAAC,eAAe,KAAK,GAAG,IAAI,IAAI,CAAC,eAAe,KAAK,GAAG,EAAE;YACvE,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAE3B,yEAAyE;YACzE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACrB;IACL,CAAC;IAEO,MAAM,CAAC,KAAc;QACzB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,OAAO;SACV;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QACvD,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;YACjF,OAAO;SACV;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,CAAC,KAAK,IAAI,EAAE;YACR,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAExB,IAAI,KAAK,GAAY,KAAK,CAAC;YAC3B,IAAI;gBACA,MAAM,cAAc,GAAG,KAAK,EAAE,cAAwB,EAAE,QAAiC,EAAE,EAAE;;oBACzF,MAAM,gBAAgB,GAAqB,EAAE,CAAC;oBAC9C,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;oBACpD,KAAK,MAAM,MAAM,IAAI,QAAQ,IAAI,EAAE,EAAE;wBACjC,MAAM,QAAQ,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,EAAE,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAA,CAAC;wBACjD,IAAI,QAAQ,EAAE;4BACV,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;yBACnC;qBACJ;oBAED,KAAK,MAAM,QAAQ,IAAI,cAAc,IAAI,EAAE,EAAE;wBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACxD,IAAI,QAAQ,EAAE;4BACV,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BAChC,SAAS;yBACZ;wBAED,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;wBACtC,IAAI,KAAK,EAAE;4BACP,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAC7B,SAAS;yBACZ;wBAED,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;qBAC9D;oBAED,KAAK,MAAM,MAAM,IAAI,QAAQ,IAAI,EAAE,EAAE;wBACjC,MAAM,QAAQ,GAAG,CAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,EAAE,MAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAA,CAAC;wBACjD,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM,KAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA,EAAE;4BACvF,SAAS;yBACZ;wBACD,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACjC;oBAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;wBAC1B,OAAO;qBACV;oBAED,0CAA0C;oBAC1C,IAAI,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;oBAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC9C,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;wBACnC,IAAI,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAG,UAAU,CAAC,0CAAE,MAAM,EAAE;4BACrC,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;4BACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gCACrC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gCACzB,IAAI,KAAK,EAAE;oCACP,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iCACrB;6BACJ;yBACJ;qBACJ;oBAED,kBAAkB;oBAClB,IAAI,IAAI,GAAqB,EAAE,CAAC;oBAChC,IAAI,MAAM,CAAC,IAAI,EAAE;wBACb,IAAI,GAAG,CAAC,MAAM,wBAAS,CAAC,YAAY,CAAC;4BACjC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;4BAC1B,GAAG,EAAE,IAAI,CAAC,GAAG;yBAChB,CAAC,CAAC,CAAC,IAAI,CAAC;qBACZ;oBAED,uCAAuC;oBACvC,8BAA8B;oBAC9B,6BAA6B;oBAC7B,IAAI,SAAS,GAAe,CAAC,CAAC;oBAC9B,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE;wBAChE,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACrF;oBAED,IAAI,MAAwB,CAAC;oBAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACf,sFAAsF;wBACtF,wEAAwE;wBACxE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;;4BACnC,MAAM,QAAQ,GAAG,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,0CAAE,EAAE,MAAI,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,EAAE,CAAA,CAAC;4BACvC,MAAM,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;4BAChE,IAAI,iBAAiB,EAAE;gCACnB,IAAI,SAAS,KAAK,CAAC,EAAE;oCACjB,OAAO,iBAAiB,IAAI,KAAK,CAAC;iCACrC;qCACI,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;oCACvB,OAAO,iBAAiB,IAAI,KAAK,CAAC;iCACrC;6BACJ;4BACD,OAAO,IAAI,CAAC;wBAChB,CAAC,CAAC,CAAC;wBAEH,8DAA8D;wBAC9D,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;;4BACjB,MAAM,QAAQ,GAAG,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,0CAAE,EAAE,MAAI,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,EAAE,CAAA,CAAC;4BACvC,IAAI,QAAQ,EAAE;gCACV,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;6BAChD;wBACL,CAAC,CAAC,CAAC;qBACN;yBACI;wBACD,sDAAsD;wBACtD,MAAM,GAAG,gBAAgB,CAAC;qBAC7B;oBAED,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACpC,CAAC,CAAC;gBAEF,MAAM,gBAAgB,GAAG,GAAG,CAAC;gBAC7B,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;gBAEvC,sDAAsD;gBACtD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACnC,IAAI,IAAI,GAAG,CAAC,CAAC;oBAEb,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;wBAC3C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;4BAC9C,MAAM;yBACT;wBACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;wBACxD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;wBACpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACnC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;yBACnC;wBACD,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,qBAAM,CAAC,YAAY,CAAC;4BACzC,SAAS,EAAE,KAAK;4BAChB,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;4BAC3C,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,gBAAgB,EAAE,EAAE,GAAG,CAAC;yBAC3B,CAAC,CAAA;wBACF,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACnC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC9B;wBAED,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;wBACrB,IAAI,IAAI,CAAC,gBAAgB,EAAE;4BACvB,IAAI,QAAQ,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;4BACpC,IAAI,QAAQ,GAAG,GAAG,EAAE;gCAChB,QAAQ,GAAG,GAAG,CAAC;6BAClB;4BACD,IAAI,QAAQ,GAAG,CAAC,EAAE;gCACd,QAAQ,GAAG,CAAC,CAAC;6BAChB;4BACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;yBAC3C;qBACJ;oBAED,IAAI,IAAI,CAAC,gBAAgB,EAAE;wBACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;qBACtC;iBACJ;gBAED,4DAA4D;gBAC5D,2CAA2C;gBAC3C,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvC,IAAI,YAAY,CAAC,IAAI,EAAE;oBACnB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC7D;gBACD,IAAI,OAAO,CAAC,MAAM,EAAE;oBAChB,+EAA+E;oBAC/E,gDAAgD;oBAChD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAChC,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;wBAC9D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;4BAC9C,MAAM;yBACT;wBACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;wBAClD,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,qBAAM,CAAC,YAAY,CAAC;4BACzC,SAAS,EAAE,KAAK;4BAChB,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;4BAC3C,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,gBAAgB,EAAE,EAAE,GAAG,CAAC;yBAC3B,CAAC,CAAA;wBACF,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACnC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC9B;qBACJ;iBACJ;gBAED,4EAA4E;gBAC5E,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;oBACxC,KAAK,GAAG,IAAI,CAAC;iBAChB;aACJ;YACD,OAAO,CAAC,EAAE;gBACN,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACpB;oBACO;gBACJ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC5B;YAED,IAAI,KAAK,EAAE;gBACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACrB;QACL,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;;AAllBD,yFAAyF;AAClE,8BAAe,GAAG,GAAG,AAAN,CAAO;AAC7C,iGAAiG;AACjG,kGAAkG;AAC3E,kCAAmB,GAAG,GAAG,AAAN,CAAO;AALxC,wCAAc"}
1
+ {"version":3,"file":"entity-gatherer.js","sourceRoot":"","sources":["../../../src/rendering/entity-gatherer.ts"],"names":[],"mappings":"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"}
@@ -482,6 +482,28 @@ var EntityRenderEngine;
482
482
  };
483
483
  }
484
484
  EntityRenderEngine.Render = Render;
485
+ /**
486
+ * Removes what a render produced that nothing has a record of, for a render whose caller has gone away.
487
+ * @param params
488
+ */
489
+ function RemoveAll(params) {
490
+ const { viewer, entities, register } = params;
491
+ if (!entities || viewer.isDestroyed()) {
492
+ return;
493
+ }
494
+ entities.forEach((entity) => {
495
+ if (!entity || (register === null || register === void 0 ? void 0 : register.HasRego(entity))) {
496
+ return;
497
+ }
498
+ try {
499
+ Remove({ viewer, entity });
500
+ }
501
+ catch (e) {
502
+ console.error("EntityRenderEngine.RemoveAll: failed to remove a visual:", e);
503
+ }
504
+ });
505
+ }
506
+ EntityRenderEngine.RemoveAll = RemoveAll;
485
507
  function Remove(params) {
486
508
  function doRemove(params) {
487
509
  const { viewer, entity, ignoreParent } = params;
@@ -1 +1 @@
1
- {"version":3,"file":"entity-render-engine.js","sourceRoot":"","sources":["../../../src/rendering/entity-render-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-render-engine.js","sourceRoot":"","sources":["../../../src/rendering/entity-render-engine.ts"],"names":[],"mappings":"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"}