ol 9.0.0-dev.1707154322322 → 9.0.0-dev.1707413332477
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.
- package/Map.d.ts +5 -10
- package/Map.d.ts.map +1 -1
- package/Map.js +3 -17
- package/VectorRenderTile.d.ts +0 -7
- package/VectorRenderTile.d.ts.map +1 -1
- package/VectorRenderTile.js +0 -6
- package/dist/ol.d.ts +2 -0
- package/dist/ol.d.ts.map +1 -1
- package/dist/ol.js +2 -2
- package/dist/ol.js.map +1 -1
- package/layer/BaseVector.d.ts +7 -22
- package/layer/BaseVector.d.ts.map +1 -1
- package/layer/BaseVector.js +12 -20
- package/layer/Layer.d.ts +12 -0
- package/layer/Layer.d.ts.map +1 -1
- package/layer/Layer.js +23 -0
- package/layer/VectorImage.d.ts +10 -6
- package/layer/VectorImage.d.ts.map +1 -1
- package/layer/VectorImage.js +5 -3
- package/layer/VectorTile.d.ts +22 -30
- package/layer/VectorTile.d.ts.map +1 -1
- package/layer/VectorTile.js +10 -14
- package/package.json +1 -1
- package/render/VectorContext.d.ts +22 -11
- package/render/VectorContext.d.ts.map +1 -1
- package/render/VectorContext.js +22 -11
- package/render/canvas/Builder.d.ts +2 -1
- package/render/canvas/Builder.d.ts.map +1 -1
- package/render/canvas/Builder.js +19 -3
- package/render/canvas/Executor.d.ts +18 -7
- package/render/canvas/Executor.d.ts.map +1 -1
- package/render/canvas/Executor.js +101 -57
- package/render/canvas/ExecutorGroup.d.ts +39 -9
- package/render/canvas/ExecutorGroup.d.ts.map +1 -1
- package/render/canvas/ExecutorGroup.js +96 -25
- package/render/canvas/ImageBuilder.d.ts +1 -1
- package/render/canvas/ImageBuilder.d.ts.map +1 -1
- package/render/canvas/ImageBuilder.js +30 -8
- package/render/canvas/Immediate.d.ts +11 -0
- package/render/canvas/Immediate.d.ts.map +1 -1
- package/render/canvas/LineStringBuilder.d.ts.map +1 -1
- package/render/canvas/LineStringBuilder.js +6 -4
- package/render/canvas/PolygonBuilder.d.ts.map +1 -1
- package/render/canvas/PolygonBuilder.js +9 -6
- package/render/canvas/TextBuilder.d.ts +4 -0
- package/render/canvas/TextBuilder.d.ts.map +1 -1
- package/render/canvas/TextBuilder.js +15 -6
- package/render/canvas/ZIndexContext.d.ts +56 -0
- package/render/canvas/ZIndexContext.d.ts.map +1 -0
- package/render/canvas/ZIndexContext.js +112 -0
- package/render/canvas/style.d.ts.map +1 -1
- package/render/canvas/style.js +9 -2
- package/render/canvas.d.ts +2 -2
- package/render/canvas.d.ts.map +1 -1
- package/render/canvas.js +6 -2
- package/renderer/Composite.d.ts +3 -2
- package/renderer/Composite.d.ts.map +1 -1
- package/renderer/Composite.js +26 -19
- package/renderer/Layer.d.ts +4 -0
- package/renderer/Layer.d.ts.map +1 -1
- package/renderer/Layer.js +5 -0
- package/renderer/Map.d.ts +0 -4
- package/renderer/Map.d.ts.map +1 -1
- package/renderer/Map.js +0 -5
- package/renderer/canvas/Layer.d.ts +4 -0
- package/renderer/canvas/Layer.d.ts.map +1 -1
- package/renderer/canvas/Layer.js +32 -0
- package/renderer/canvas/VectorImageLayer.d.ts.map +1 -1
- package/renderer/canvas/VectorImageLayer.js +8 -1
- package/renderer/canvas/VectorLayer.d.ts +6 -5
- package/renderer/canvas/VectorLayer.d.ts.map +1 -1
- package/renderer/canvas/VectorLayer.js +55 -58
- package/renderer/canvas/VectorTileLayer.d.ts +14 -3
- package/renderer/canvas/VectorTileLayer.d.ts.map +1 -1
- package/renderer/canvas/VectorTileLayer.js +129 -60
- package/renderer/vector.d.ts +3 -2
- package/renderer/vector.d.ts.map +1 -1
- package/renderer/vector.js +68 -126
- package/renderer/webgl/PointsLayer.d.ts +1 -0
- package/renderer/webgl/PointsLayer.d.ts.map +1 -1
- package/renderer/webgl/PointsLayer.js +2 -0
- package/source/Raster.js +1 -1
- package/source/WMTS.js +1 -1
- package/style/Circle.d.ts +2 -2
- package/style/Circle.d.ts.map +1 -1
- package/style/Circle.js +1 -1
- package/style/Icon.d.ts +1 -1
- package/style/Icon.d.ts.map +1 -1
- package/style/Icon.js +1 -1
- package/style/Image.d.ts +7 -6
- package/style/Image.d.ts.map +1 -1
- package/style/Image.js +4 -3
- package/style/RegularShape.d.ts +2 -2
- package/style/RegularShape.d.ts.map +1 -1
- package/style/RegularShape.js +1 -1
- package/style/Style.d.ts +17 -0
- package/style/Style.d.ts.map +1 -1
- package/style/Style.js +10 -0
- package/style/Text.d.ts +16 -0
- package/style/Text.d.ts.map +1 -1
- package/style/Text.js +17 -0
- package/style/flat.d.ts +11 -6
- package/style/flat.d.ts.map +1 -1
- package/style/flat.js +4 -3
- package/util.js +1 -1
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import CanvasBuilderGroup from '../../render/canvas/BuilderGroup.js';
|
|
5
5
|
import CanvasLayerRenderer, {canvasPool} from './Layer.js';
|
|
6
|
-
import ExecutorGroup
|
|
6
|
+
import ExecutorGroup, {
|
|
7
|
+
ALL,
|
|
8
|
+
DECLUTTER,
|
|
9
|
+
NON_DECLUTTER,
|
|
10
|
+
} from '../../render/canvas/ExecutorGroup.js';
|
|
7
11
|
import RenderEventType from '../../render/EventType.js';
|
|
8
12
|
import ViewHint from '../../ViewHint.js';
|
|
9
13
|
import {
|
|
@@ -139,11 +143,6 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
139
143
|
*/
|
|
140
144
|
this.replayGroupChanged = true;
|
|
141
145
|
|
|
142
|
-
/**
|
|
143
|
-
* @type {import("../../render/canvas/ExecutorGroup").default}
|
|
144
|
-
*/
|
|
145
|
-
this.declutterExecutorGroup = null;
|
|
146
|
-
|
|
147
146
|
/**
|
|
148
147
|
* Clipping to be performed by `renderFrame()`
|
|
149
148
|
* @type {boolean}
|
|
@@ -166,9 +165,10 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
166
165
|
/**
|
|
167
166
|
* @param {ExecutorGroup} executorGroup Executor group.
|
|
168
167
|
* @param {import("../../Map.js").FrameState} frameState Frame state.
|
|
169
|
-
* @param {
|
|
168
|
+
* @param {boolean} [declutterable] `true` to only render declutterable items,
|
|
169
|
+
* `false` to only render non-declutterable items, `undefined` to render all.
|
|
170
170
|
*/
|
|
171
|
-
renderWorlds(executorGroup, frameState,
|
|
171
|
+
renderWorlds(executorGroup, frameState, declutterable) {
|
|
172
172
|
const extent = frameState.extent;
|
|
173
173
|
const viewState = frameState.viewState;
|
|
174
174
|
const center = viewState.center;
|
|
@@ -177,6 +177,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
177
177
|
const rotation = viewState.rotation;
|
|
178
178
|
const projectionExtent = projection.getExtent();
|
|
179
179
|
const vectorSource = this.getLayer().getSource();
|
|
180
|
+
const declutter = this.getLayer().getDeclutter();
|
|
180
181
|
const pixelRatio = frameState.pixelRatio;
|
|
181
182
|
const viewHints = frameState.viewHints;
|
|
182
183
|
const snapToPixel = !(
|
|
@@ -206,12 +207,18 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
206
207
|
);
|
|
207
208
|
executorGroup.execute(
|
|
208
209
|
context,
|
|
209
|
-
|
|
210
|
+
[context.canvas.width, context.canvas.height],
|
|
210
211
|
transform,
|
|
211
212
|
rotation,
|
|
212
213
|
snapToPixel,
|
|
213
|
-
undefined
|
|
214
|
-
|
|
214
|
+
declutterable === undefined
|
|
215
|
+
? ALL
|
|
216
|
+
: declutterable
|
|
217
|
+
? DECLUTTER
|
|
218
|
+
: NON_DECLUTTER,
|
|
219
|
+
declutterable
|
|
220
|
+
? declutter && frameState.declutter[declutter]
|
|
221
|
+
: undefined,
|
|
215
222
|
);
|
|
216
223
|
} while (++world < endWorld);
|
|
217
224
|
}
|
|
@@ -246,15 +253,21 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
246
253
|
* @param {import("../../Map.js").FrameState} frameState Frame state.
|
|
247
254
|
*/
|
|
248
255
|
renderDeclutter(frameState) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
this.declutterExecutorGroup,
|
|
253
|
-
frameState,
|
|
254
|
-
frameState.declutterTree,
|
|
255
|
-
);
|
|
256
|
-
this.releaseCompositionContext_();
|
|
256
|
+
const declutter = this.getLayer().getDeclutter();
|
|
257
|
+
if (!declutter) {
|
|
258
|
+
return;
|
|
257
259
|
}
|
|
260
|
+
this.setupCompositionContext_(); //FIXME Check if this works, or if we need to defer something.
|
|
261
|
+
this.renderWorlds(this.replayGroup_, frameState, true);
|
|
262
|
+
this.releaseCompositionContext_();
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Render deferred instructions.
|
|
267
|
+
* @param {import("../../Map.js").FrameState} frameState Frame state.
|
|
268
|
+
*/
|
|
269
|
+
renderDeferredInternal(frameState) {
|
|
270
|
+
this.replayGroup_.renderDeferred();
|
|
258
271
|
}
|
|
259
272
|
|
|
260
273
|
/**
|
|
@@ -278,10 +291,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
278
291
|
const canvas = context.canvas;
|
|
279
292
|
|
|
280
293
|
const replayGroup = this.replayGroup_;
|
|
281
|
-
|
|
282
|
-
let render =
|
|
283
|
-
(replayGroup && !replayGroup.isEmpty()) ||
|
|
284
|
-
(declutterExecutorGroup && !declutterExecutorGroup.isEmpty());
|
|
294
|
+
let render = replayGroup && !replayGroup.isEmpty();
|
|
285
295
|
if (!render) {
|
|
286
296
|
const hasRenderListeners =
|
|
287
297
|
this.getLayer().hasListener(RenderEventType.PRERENDER) ||
|
|
@@ -324,7 +334,11 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
324
334
|
}
|
|
325
335
|
|
|
326
336
|
if (render) {
|
|
327
|
-
this.renderWorlds(
|
|
337
|
+
this.renderWorlds(
|
|
338
|
+
replayGroup,
|
|
339
|
+
frameState,
|
|
340
|
+
this.getLayer().getDeclutter() ? false : undefined,
|
|
341
|
+
);
|
|
328
342
|
}
|
|
329
343
|
|
|
330
344
|
if (clipped) {
|
|
@@ -501,9 +515,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
501
515
|
|
|
502
516
|
let result;
|
|
503
517
|
const executorGroups = [this.replayGroup_];
|
|
504
|
-
|
|
505
|
-
executorGroups.push(this.declutterExecutorGroup);
|
|
506
|
-
}
|
|
518
|
+
const declutter = this.getLayer().getDeclutter();
|
|
507
519
|
executorGroups.some((executorGroup) => {
|
|
508
520
|
return (result = executorGroup.forEachFeatureAtCoordinate(
|
|
509
521
|
coordinate,
|
|
@@ -511,9 +523,8 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
511
523
|
rotation,
|
|
512
524
|
hitTolerance,
|
|
513
525
|
featureCallback,
|
|
514
|
-
|
|
515
|
-
frameState.
|
|
516
|
-
? frameState.declutterTree.all().map((item) => item.value)
|
|
526
|
+
declutter && frameState.declutter[declutter]
|
|
527
|
+
? frameState.declutter[declutter].all().map((item) => item.value)
|
|
517
528
|
: null,
|
|
518
529
|
));
|
|
519
530
|
});
|
|
@@ -653,16 +664,6 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
653
664
|
pixelRatio,
|
|
654
665
|
);
|
|
655
666
|
|
|
656
|
-
let declutterBuilderGroup;
|
|
657
|
-
if (this.getLayer().getDeclutter()) {
|
|
658
|
-
declutterBuilderGroup = new CanvasBuilderGroup(
|
|
659
|
-
getRenderTolerance(resolution, pixelRatio),
|
|
660
|
-
extent,
|
|
661
|
-
resolution,
|
|
662
|
-
pixelRatio,
|
|
663
|
-
);
|
|
664
|
-
}
|
|
665
|
-
|
|
666
667
|
const userProjection = getUserProjection();
|
|
667
668
|
let userTransform;
|
|
668
669
|
if (userProjection) {
|
|
@@ -687,8 +688,9 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
687
688
|
const render =
|
|
688
689
|
/**
|
|
689
690
|
* @param {import("../../Feature.js").default} feature Feature.
|
|
691
|
+
* @param {number} index Index.
|
|
690
692
|
*/
|
|
691
|
-
(feature) => {
|
|
693
|
+
(feature, index) => {
|
|
692
694
|
let styles;
|
|
693
695
|
const styleFunction =
|
|
694
696
|
feature.getStyleFunction() || vectorLayer.getStyleFunction();
|
|
@@ -702,7 +704,8 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
702
704
|
styles,
|
|
703
705
|
replayGroup,
|
|
704
706
|
userTransform,
|
|
705
|
-
|
|
707
|
+
this.getLayer().getDeclutter(),
|
|
708
|
+
index,
|
|
706
709
|
);
|
|
707
710
|
ready = ready && !dirty;
|
|
708
711
|
}
|
|
@@ -715,7 +718,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
715
718
|
features.sort(vectorLayerRenderOrder);
|
|
716
719
|
}
|
|
717
720
|
for (let i = 0, ii = features.length; i < ii; ++i) {
|
|
718
|
-
render(features[i]);
|
|
721
|
+
render(features[i], i);
|
|
719
722
|
}
|
|
720
723
|
this.renderedFeatures_ = features;
|
|
721
724
|
this.ready = ready;
|
|
@@ -728,19 +731,9 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
728
731
|
vectorSource.getOverlaps(),
|
|
729
732
|
replayGroupInstructions,
|
|
730
733
|
vectorLayer.getRenderBuffer(),
|
|
734
|
+
!!frameState.declutter,
|
|
731
735
|
);
|
|
732
736
|
|
|
733
|
-
if (declutterBuilderGroup) {
|
|
734
|
-
this.declutterExecutorGroup = new ExecutorGroup(
|
|
735
|
-
extent,
|
|
736
|
-
resolution,
|
|
737
|
-
pixelRatio,
|
|
738
|
-
vectorSource.getOverlaps(),
|
|
739
|
-
declutterBuilderGroup.finish(),
|
|
740
|
-
vectorLayer.getRenderBuffer(),
|
|
741
|
-
);
|
|
742
|
-
}
|
|
743
|
-
|
|
744
737
|
this.renderedResolution_ = resolution;
|
|
745
738
|
this.renderedRevision_ = vectorLayerRevision;
|
|
746
739
|
this.renderedRenderOrder_ = vectorLayerRenderOrder;
|
|
@@ -762,7 +755,8 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
762
755
|
* @param {import("../../style/Style.js").default|Array<import("../../style/Style.js").default>} styles The style or array of styles.
|
|
763
756
|
* @param {import("../../render/canvas/BuilderGroup.js").default} builderGroup Builder group.
|
|
764
757
|
* @param {import("../../proj.js").TransformFunction} [transform] Transform from user to view projection.
|
|
765
|
-
* @param {
|
|
758
|
+
* @param {boolean} [declutter] Enable decluttering.
|
|
759
|
+
* @param {number} [index] Render order index.
|
|
766
760
|
* @return {boolean} `true` if an image is loading.
|
|
767
761
|
*/
|
|
768
762
|
renderFeature(
|
|
@@ -771,7 +765,8 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
771
765
|
styles,
|
|
772
766
|
builderGroup,
|
|
773
767
|
transform,
|
|
774
|
-
|
|
768
|
+
declutter,
|
|
769
|
+
index,
|
|
775
770
|
) {
|
|
776
771
|
if (!styles) {
|
|
777
772
|
return false;
|
|
@@ -787,7 +782,8 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
787
782
|
squaredTolerance,
|
|
788
783
|
this.boundHandleStyleImageChange_,
|
|
789
784
|
transform,
|
|
790
|
-
|
|
785
|
+
declutter,
|
|
786
|
+
index,
|
|
791
787
|
) || loading;
|
|
792
788
|
}
|
|
793
789
|
} else {
|
|
@@ -798,7 +794,8 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|
|
798
794
|
squaredTolerance,
|
|
799
795
|
this.boundHandleStyleImageChange_,
|
|
800
796
|
transform,
|
|
801
|
-
|
|
797
|
+
declutter,
|
|
798
|
+
index,
|
|
802
799
|
);
|
|
803
800
|
}
|
|
804
801
|
return loading;
|
|
@@ -27,11 +27,21 @@ declare class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer<impo
|
|
|
27
27
|
* @type {number}
|
|
28
28
|
*/
|
|
29
29
|
private renderedRotation_;
|
|
30
|
+
/**
|
|
31
|
+
* @private
|
|
32
|
+
* @type {number}
|
|
33
|
+
*/
|
|
34
|
+
private renderedOpacity_;
|
|
30
35
|
/**
|
|
31
36
|
* @private
|
|
32
37
|
* @type {import("../../transform.js").Transform}
|
|
33
38
|
*/
|
|
34
39
|
private tmpTransform_;
|
|
40
|
+
/**
|
|
41
|
+
* @private
|
|
42
|
+
* @type {Array<ZIndexContext>}
|
|
43
|
+
*/
|
|
44
|
+
private tileClipContexts_;
|
|
35
45
|
/**
|
|
36
46
|
* @param {import("../../VectorRenderTile.js").default} tile Tile.
|
|
37
47
|
* @param {number} pixelRatio Pixel ratio.
|
|
@@ -67,16 +77,18 @@ declare class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer<impo
|
|
|
67
77
|
* @param {import("../../layer/Layer.js").State} layerState Layer state.
|
|
68
78
|
*/
|
|
69
79
|
renderDeclutter(frameState: import("../../Map.js").FrameState, layerState: import("../../layer/Layer.js").State): void;
|
|
80
|
+
renderDeferredInternal(): void;
|
|
70
81
|
getTileRenderTransform(tile: any, frameState: any): number[];
|
|
71
82
|
/**
|
|
72
83
|
* @param {import("../../Feature.js").FeatureLike} feature Feature.
|
|
73
84
|
* @param {number} squaredTolerance Squared tolerance.
|
|
74
85
|
* @param {import("../../style/Style.js").default|Array<import("../../style/Style.js").default>} styles The style or array of styles.
|
|
75
86
|
* @param {import("../../render/canvas/BuilderGroup.js").default} builderGroup Replay group.
|
|
76
|
-
* @param {
|
|
87
|
+
* @param {boolean} [declutter] Enable decluttering.
|
|
88
|
+
* @param {number} [index] Render order index.
|
|
77
89
|
* @return {boolean} `true` if an image is loading.
|
|
78
90
|
*/
|
|
79
|
-
renderFeature(feature: import("../../Feature.js").FeatureLike, squaredTolerance: number, styles: import("../../style/Style.js").default | Array<import("../../style/Style.js").default>, builderGroup: import("../../render/canvas/BuilderGroup.js").default,
|
|
91
|
+
renderFeature(feature: import("../../Feature.js").FeatureLike, squaredTolerance: number, styles: import("../../style/Style.js").default | Array<import("../../style/Style.js").default>, builderGroup: import("../../render/canvas/BuilderGroup.js").default, declutter?: boolean | undefined, index?: number | undefined): boolean;
|
|
80
92
|
/**
|
|
81
93
|
* @param {import("../../VectorRenderTile.js").default} tile Tile.
|
|
82
94
|
* @return {boolean} A new tile image was rendered.
|
|
@@ -91,5 +103,4 @@ declare class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer<impo
|
|
|
91
103
|
private renderTileImage_;
|
|
92
104
|
}
|
|
93
105
|
import CanvasTileLayerRenderer from './TileLayer.js';
|
|
94
|
-
import CanvasBuilderGroup from '../../render/canvas/BuilderGroup.js';
|
|
95
106
|
//# sourceMappingURL=VectorTileLayer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorTileLayer.d.ts","sourceRoot":"","sources":["VectorTileLayer.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"VectorTileLayer.d.ts","sourceRoot":"","sources":["VectorTileLayer.js"],"names":[],"mappings":";AA4DA;;;;;GAKG;AACH;IACE;;OAEG;IACH,mBAFW,OAAO,2BAA2B,EAAE,OAAO,EA2CrD;IAtCC,eAAe;IACf,qCAA2E;IAE3E;;;OAGG;IACH,+BAA2B;IAE3B;;;OAGG;IACH,4CAA+C;IAE/C;;;OAGG;IACH,0BAAsB;IAEtB;;;OAGG;IACH,yBAAyB;IAEzB;;;OAGG;IACH,sBAAsC;IAEtC;;;OAGG;IACH,0BAA6B;IAG/B;;;;;OAKG;IACH,kBALW,OAAO,2BAA2B,EAAE,OAAO,cAC3C,MAAM,cACN,OAAO,uBAAuB,EAAE,OAAO,GACtC,OAAO,GAAC,SAAS,CAY5B;IAkCD;;;OAGG;IACH,qBAHW,OAAO,2BAA2B,EAAE,OAAO,GAC1C,OAAO,CAUlB;IAED;;OAEG;IACH,6BAEC;IAgBD;;;;;OAKG;IACH,6BAqHC;IAyND;;;;OAIG;IACH,gCAEC;IAED;;;;OAIG;IACH,4BAHW,OAAO,cAAc,EAAE,UAAU,cACjC,OAAO,sBAAsB,EAAE,KAAK,QAiC9C;IAED,+BA6CC;IAED,6DA+BC;IAgID;;;;;;;;OAQG;IACH,uBARW,OAAO,kBAAkB,EAAE,WAAW,oBACtC,MAAM,UACN,OAAO,sBAAsB,EAAE,OAAO,GAAC,MAAM,OAAO,sBAAsB,EAAE,OAAO,CAAC,gBACpF,OAAO,qCAAqC,EAAE,OAAO,gEAGpD,OAAO,CAyClB;IAED;;;;OAIG;IACH,8BAcC;IAED;;;;OAIG;IACH,yBAwDC;CACF;oCAr5BmC,gBAAgB"}
|