signalk-livedepth-plugin 0.1.0 → 0.2.0
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/README.md +3 -1
- package/dist/collector.d.ts +4 -1
- package/dist/collector.d.ts.map +1 -1
- package/dist/collector.js +2 -2
- package/dist/collector.js.map +1 -1
- package/dist/config.d.ts +15 -74
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +17 -104
- package/dist/config.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +51 -2
- package/dist/plugin.js.map +1 -1
- package/dist/streams/live.d.ts +4 -2
- package/dist/streams/live.d.ts.map +1 -1
- package/dist/streams/live.js +15 -14
- package/dist/streams/live.js.map +1 -1
- package/dist/tiles/api.d.ts +1 -1
- package/dist/tiles/api.d.ts.map +1 -1
- package/dist/tiles/api.js +1 -1
- package/dist/tiles/api.js.map +1 -1
- package/dist/tiles/index.d.ts +1 -2
- package/dist/tiles/index.d.ts.map +1 -1
- package/dist/tiles/index.js +1 -2
- package/dist/tiles/index.js.map +1 -1
- package/dist/tiles/seed.d.ts +4 -2
- package/dist/tiles/seed.d.ts.map +1 -1
- package/dist/tiles/seed.js +23 -7
- package/dist/tiles/seed.js.map +1 -1
- package/dist/tiles/store.d.ts +1 -23
- package/dist/tiles/store.d.ts.map +1 -1
- package/dist/tiles/store.js +4 -1
- package/dist/tiles/store.js.map +1 -1
- package/dist/tiles/writer.d.ts +1 -1
- package/dist/tiles/writer.d.ts.map +1 -1
- package/dist/tiles/writer.js +6 -3
- package/dist/tiles/writer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -1
package/dist/tiles/index.js
CHANGED
package/dist/tiles/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tiles/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tiles/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
|
package/dist/tiles/seed.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ServerAPI } from "@signalk/server-api";
|
|
|
2
2
|
import type { HistoryApi } from "@signalk/server-api/history";
|
|
3
3
|
import { Temporal } from "@js-temporal/polyfill";
|
|
4
4
|
import { Config } from "../config.js";
|
|
5
|
-
import { TileStore } from "
|
|
5
|
+
import { TileStore, TransducerOffset } from "signalk-livedepth-tiles";
|
|
6
6
|
/** Highest granularity we ask the History API for, in seconds. */
|
|
7
7
|
export declare const DEFAULT_SEED_RESOLUTION = 0.1;
|
|
8
8
|
/** Hours of history fetched per request, to bound each response. */
|
|
@@ -31,6 +31,8 @@ export interface SeedOptions {
|
|
|
31
31
|
chunkHours?: number;
|
|
32
32
|
/** Override the History API (used by tests). */
|
|
33
33
|
history?: HistoryApi;
|
|
34
|
+
/** Shift each sounding from the recorded position to the transducer. */
|
|
35
|
+
offset?: TransducerOffset;
|
|
34
36
|
signal?: AbortSignal;
|
|
35
37
|
onProgress?: (progress: SeedProgress) => void;
|
|
36
38
|
}
|
|
@@ -41,5 +43,5 @@ export interface SeedOptions {
|
|
|
41
43
|
* tiles (min-pooling as it goes). The live stream keeps the store current from
|
|
42
44
|
* then on.
|
|
43
45
|
*/
|
|
44
|
-
export declare function seedFromHistory({ app, store, config, from, to, resolution, chunkHours, history, signal, onProgress, }: SeedOptions): Promise<SeedProgress>;
|
|
46
|
+
export declare function seedFromHistory({ app, store, config, from, to, resolution, chunkHours, history, offset, signal, onProgress, }: SeedOptions): Promise<SeedProgress>;
|
|
45
47
|
//# sourceMappingURL=seed.d.ts.map
|
package/dist/tiles/seed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EACV,UAAU,EAGX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EACL,SAAS,EACT,gBAAgB,EAIjB,MAAM,yBAAyB,CAAC;AAEjC,kEAAkE;AAClE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,oEAAoE;AACpE,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,sEAAsE;AACtE,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACxB,kDAAkD;IAClD,EAAE,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACtB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,EACpC,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,EAA2B,EAC3B,UAAoC,EACpC,UAAqC,EACrC,OAAO,EACP,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAwFrC"}
|
package/dist/tiles/seed.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Temporal } from "@js-temporal/polyfill";
|
|
2
2
|
import { BATHY_EPOCH } from "../constants.js";
|
|
3
3
|
import { getHistoryAPI, columnsByPath } from "../history.js";
|
|
4
|
-
import { createTileAccumulator, rebuildAncestors } from "
|
|
4
|
+
import { correctToTransducer, createTileAccumulator, rebuildAncestors, } from "signalk-livedepth-tiles";
|
|
5
5
|
/** Highest granularity we ask the History API for, in seconds. */
|
|
6
6
|
export const DEFAULT_SEED_RESOLUTION = 0.1;
|
|
7
7
|
/** Hours of history fetched per request, to bound each response. */
|
|
@@ -15,7 +15,7 @@ export const SEED_CURSOR_KEY = "seed.cursor";
|
|
|
15
15
|
* tiles (min-pooling as it goes). The live stream keeps the store current from
|
|
16
16
|
* then on.
|
|
17
17
|
*/
|
|
18
|
-
export async function seedFromHistory({ app, store, config, from, to = Temporal.Now.instant(), resolution = DEFAULT_SEED_RESOLUTION, chunkHours = DEFAULT_SEED_CHUNK_HOURS, history, signal, onProgress, }) {
|
|
18
|
+
export async function seedFromHistory({ app, store, config, from, to = Temporal.Now.instant(), resolution = DEFAULT_SEED_RESOLUTION, chunkHours = DEFAULT_SEED_CHUNK_HOURS, history, offset, signal, onProgress, }) {
|
|
19
19
|
const api = history ?? (await getHistoryAPI({ app }));
|
|
20
20
|
if (!api) {
|
|
21
21
|
throw new Error("No History API provider is available to seed from");
|
|
@@ -40,6 +40,16 @@ export async function seedFromHistory({ app, store, config, from, to = Temporal.
|
|
|
40
40
|
aggregate: "min",
|
|
41
41
|
parameter: [],
|
|
42
42
|
},
|
|
43
|
+
// Heading, only when needed to place the sounding at the transducer.
|
|
44
|
+
...(offset
|
|
45
|
+
? [
|
|
46
|
+
{
|
|
47
|
+
path: "navigation.headingTrue",
|
|
48
|
+
aggregate: "average",
|
|
49
|
+
parameter: [],
|
|
50
|
+
},
|
|
51
|
+
]
|
|
52
|
+
: []),
|
|
43
53
|
];
|
|
44
54
|
const accumulator = createTileAccumulator(store, { ancestors: false });
|
|
45
55
|
const progress = {
|
|
@@ -63,7 +73,7 @@ export async function seedFromHistory({ app, store, config, from, to = Temporal.
|
|
|
63
73
|
resolution,
|
|
64
74
|
pathSpecs,
|
|
65
75
|
});
|
|
66
|
-
progress.points += fold(accumulator, res, depthPath, pathSpecs);
|
|
76
|
+
progress.points += fold(accumulator, res, depthPath, pathSpecs, offset);
|
|
67
77
|
accumulator.flush();
|
|
68
78
|
// Advance the cursor only after the chunk is safely written, so an
|
|
69
79
|
// interrupted seed resumes where it stopped rather than from the start.
|
|
@@ -101,10 +111,11 @@ function cursorFromStore(store) {
|
|
|
101
111
|
}
|
|
102
112
|
}
|
|
103
113
|
/** Fold a values response's rows into the accumulator; returns points added. */
|
|
104
|
-
function fold(accumulator, res, depthPath, pathSpecs) {
|
|
114
|
+
function fold(accumulator, res, depthPath, pathSpecs, offset) {
|
|
105
115
|
const columns = columnsByPath(res.values, pathSpecs);
|
|
106
116
|
const positionColumn = columns.get("navigation.position");
|
|
107
117
|
const depthColumn = columns.get(depthPath);
|
|
118
|
+
const headingColumn = columns.get("navigation.headingTrue");
|
|
108
119
|
if (positionColumn === undefined || depthColumn === undefined)
|
|
109
120
|
return 0;
|
|
110
121
|
let added = 0;
|
|
@@ -118,10 +129,15 @@ function fold(accumulator, res, depthPath, pathSpecs) {
|
|
|
118
129
|
Number.isFinite(longitude) &&
|
|
119
130
|
typeof latitude === "number" &&
|
|
120
131
|
Number.isFinite(latitude)) {
|
|
132
|
+
const heading = headingColumn === undefined
|
|
133
|
+
? undefined
|
|
134
|
+
: row[headingColumn];
|
|
135
|
+
const { lon, lat } = offset
|
|
136
|
+
? correctToTransducer({ lon: longitude, lat: latitude }, typeof heading === "number" ? heading : undefined, offset)
|
|
137
|
+
: { lon: longitude, lat: latitude };
|
|
121
138
|
accumulator.add({
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
latitude,
|
|
139
|
+
lon,
|
|
140
|
+
lat,
|
|
125
141
|
depth,
|
|
126
142
|
});
|
|
127
143
|
added++;
|
package/dist/tiles/seed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/tiles/seed.ts"],"names":[],"mappings":"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"}
|
package/dist/tiles/store.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DatabaseSync } from "node:sqlite";
|
|
2
|
-
import {
|
|
2
|
+
import { TileStore } from "signalk-livedepth-tiles";
|
|
3
3
|
/**
|
|
4
4
|
* The derived, gridded store the chart reads from. It sits beside the raw
|
|
5
5
|
* `bathymetry` sounding log: the log stays the provenance/upload source of
|
|
@@ -10,27 +10,5 @@ import { TileCells } from "./grid.js";
|
|
|
10
10
|
* of keyed lookups — no scanning, no interpolation at query time.
|
|
11
11
|
*/
|
|
12
12
|
export declare function createTileDB(filename: string): DatabaseSync;
|
|
13
|
-
export interface TileStore {
|
|
14
|
-
/** A tile's cells, or undefined when it holds no soundings. */
|
|
15
|
-
read(z: number, x: number, y: number): TileCells | undefined;
|
|
16
|
-
/** Replace a tile (deletes it when empty). */
|
|
17
|
-
write(z: number, x: number, y: number, cells: TileCells): void;
|
|
18
|
-
/** Merge cells into a tile, keeping the shallowest depth and summing counts. */
|
|
19
|
-
merge(z: number, x: number, y: number, incoming: TileCells): void;
|
|
20
|
-
/** Rebuild every ancestor of a changed base tile, up to {@link MIN_ZOOM}. */
|
|
21
|
-
updateAncestors(z: number, x: number, y: number): void;
|
|
22
|
-
/** Every occupied tile at a level (for a bulk pyramid rebuild). */
|
|
23
|
-
listTiles(z: number): {
|
|
24
|
-
x: number;
|
|
25
|
-
y: number;
|
|
26
|
-
}[];
|
|
27
|
-
/** Read a store-level key. */
|
|
28
|
-
getMeta(key: string): string | undefined;
|
|
29
|
-
/** Write a store-level key. */
|
|
30
|
-
setMeta(key: string, value: string): void;
|
|
31
|
-
/** Run `fn` inside a single transaction. */
|
|
32
|
-
transaction<T>(fn: () => T): T;
|
|
33
|
-
close(): void;
|
|
34
|
-
}
|
|
35
13
|
export declare function createTileStore(db: DatabaseSync): TileStore;
|
|
36
14
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tiles/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tiles/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAGL,SAAS,EAKV,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAuB3D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,SAAS,CAkG3D"}
|
package/dist/tiles/store.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DatabaseSync } from "node:sqlite";
|
|
2
|
-
import { MIN_ZOOM, decodeTile, encodeTile, mergeCell, minPoolTile, } from "
|
|
2
|
+
import { MIN_ZOOM, decodeTile, encodeTile, mergeCell, minPoolTile, } from "signalk-livedepth-tiles";
|
|
3
3
|
/**
|
|
4
4
|
* The derived, gridded store the chart reads from. It sits beside the raw
|
|
5
5
|
* `bathymetry` sounding log: the log stays the provenance/upload source of
|
|
@@ -108,6 +108,9 @@ export function createTileStore(db) {
|
|
|
108
108
|
setMetaStmt.run(key, value);
|
|
109
109
|
},
|
|
110
110
|
transaction,
|
|
111
|
+
clear: () => {
|
|
112
|
+
db.exec("DELETE FROM tiles");
|
|
113
|
+
},
|
|
111
114
|
close: () => db.close(),
|
|
112
115
|
};
|
|
113
116
|
}
|
package/dist/tiles/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/tiles/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/tiles/store.ts"],"names":[],"mappings":"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"}
|
package/dist/tiles/writer.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/tiles/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/tiles/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAEL,SAAS,EAEV,MAAM,yBAAyB,CAAC;AAEjC,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,EAChB,EACE,QAAoB,EACpB,eAAkC,GACnC,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GACtD,QAAQ,CAqCV"}
|
package/dist/tiles/writer.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Writable } from "stream";
|
|
2
|
-
import { BASE_ZOOM } from "
|
|
3
|
-
import { createTileAccumulator } from "./accumulator.js";
|
|
2
|
+
import { BASE_ZOOM, createTileAccumulator, } from "signalk-livedepth-tiles";
|
|
4
3
|
/** How long soundings are batched before being written to the store. */
|
|
5
4
|
export const DEFAULT_FLUSH_MS = 1000;
|
|
6
5
|
/**
|
|
@@ -17,7 +16,11 @@ export function createTileWriter(store, { baseZoom = BASE_ZOOM, flushIntervalMs
|
|
|
17
16
|
objectMode: true,
|
|
18
17
|
write(data, _encoding, callback) {
|
|
19
18
|
try {
|
|
20
|
-
accumulator.add(
|
|
19
|
+
accumulator.add({
|
|
20
|
+
lon: data.longitude,
|
|
21
|
+
lat: data.latitude,
|
|
22
|
+
depth: data.depth,
|
|
23
|
+
});
|
|
21
24
|
callback();
|
|
22
25
|
}
|
|
23
26
|
catch (err) {
|
package/dist/tiles/writer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/tiles/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/tiles/writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EACL,SAAS,EAET,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAgB,EAChB,EACE,QAAQ,GAAG,SAAS,EACpB,eAAe,GAAG,gBAAgB,GACnC,GAAoD,EAAE;IAEvD,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE/D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,eAAe,CAAC,CAAC;IACtE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;IAEhB,OAAO,IAAI,QAAQ,CAAC;QAClB,UAAU,EAAE,IAAI;QAChB,KAAK,CAAC,IAAoB,EAAE,SAAS,EAAE,QAAQ;YAC7C,IAAI,CAAC;gBACH,WAAW,CAAC,GAAG,CAAC;oBACd,GAAG,EAAE,IAAI,CAAC,SAAS;oBACnB,GAAG,EAAE,IAAI,CAAC,QAAQ;oBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC,CAAC;gBACH,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAY,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,QAAQ;YACZ,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,CAAC;gBACH,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpB,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAY,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,uEAAuE;QACvE,wEAAwE;QACxE,sEAAsE;QACtE,OAAO,CAAC,KAAK,EAAE,QAAQ;YACrB,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|