@dx-do/client 6.1.1 → 6.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/dist/index.cjs.js +749 -418
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +713 -419
- package/dist/index.esm.js.map +1 -1
- package/dist/src/lib/model/datastore/audit/query.d.ts +5 -0
- package/dist/src/lib/model/datastore/audit/query.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/audit/record.d.ts +5 -0
- package/dist/src/lib/model/datastore/audit/record.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/audit/response.d.ts +6 -0
- package/dist/src/lib/model/datastore/audit/response.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/blobstorage/file-envelope.d.ts +24 -0
- package/dist/src/lib/model/datastore/blobstorage/file-envelope.d.ts.map +1 -0
- package/dist/src/lib/model/datastore/blobstorage/filters.d.ts +3 -0
- package/dist/src/lib/model/datastore/blobstorage/filters.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/blobstorage/index.d.ts +1 -0
- package/dist/src/lib/model/datastore/blobstorage/index.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/blobstorage/query.d.ts +4 -0
- package/dist/src/lib/model/datastore/blobstorage/query.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/blobstorage/response.d.ts +2 -0
- package/dist/src/lib/model/datastore/blobstorage/response.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/features/feature.d.ts +2 -0
- package/dist/src/lib/model/datastore/features/feature.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/features/query.d.ts +5 -0
- package/dist/src/lib/model/datastore/features/query.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/features/response.d.ts +1 -0
- package/dist/src/lib/model/datastore/features/response.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/index.d.ts +1 -0
- package/dist/src/lib/model/datastore/index.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/nass/store.d.ts +30 -34
- package/dist/src/lib/model/datastore/nass/store.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/states/filters.d.ts +12 -0
- package/dist/src/lib/model/datastore/states/filters.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/states/query.d.ts +5 -0
- package/dist/src/lib/model/datastore/states/query.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/states/response.d.ts +1 -0
- package/dist/src/lib/model/datastore/states/response.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/tokens/query.d.ts +7 -0
- package/dist/src/lib/model/datastore/tokens/query.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/tokens/response.d.ts +1 -0
- package/dist/src/lib/model/datastore/tokens/response.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/views/filters.d.ts +7 -0
- package/dist/src/lib/model/datastore/views/filters.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/views/query.d.ts +2 -0
- package/dist/src/lib/model/datastore/views/query.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/views/response.d.ts.map +1 -1
- package/dist/src/lib/model/log/ingest.d.ts +14 -22
- package/dist/src/lib/model/log/ingest.d.ts.map +1 -1
- package/dist/src/lib/services/datastore/datastore-nass.service.d.ts +6 -0
- package/dist/src/lib/services/datastore/datastore-nass.service.d.ts.map +1 -1
- package/dist/src/lib/services/logs.service.d.ts +18 -3
- package/dist/src/lib/services/logs.service.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/model/datastore/views/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;iBAGxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;
|
|
1
|
+
{"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/model/datastore/views/filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,0BAA0B;AAC1B,eAAO,MAAM,mBAAmB;;iBAE9B,CAAC;AAEH,2BAA2B;AAC3B,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAEH,iCAAiC;AACjC,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;iBAGxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB;;;;;;iBAMpC,CAAC;AAEH,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,yCAAyC;AACzC,eAAO,MAAM,kBAAkB;;;iBAG7B,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAOjD,CAAC;AAEH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod/v4';
|
|
2
|
+
/** Access role granted to a user or group on a view. */
|
|
2
3
|
export declare const ViewAccessRoleSchema: z.ZodEnum<{
|
|
3
4
|
"read-only": "read-only";
|
|
4
5
|
"read-write": "read-write";
|
|
@@ -46,6 +47,7 @@ export declare const ViewSpecsSchema: z.ZodObject<{
|
|
|
46
47
|
}, z.core.$loose>>;
|
|
47
48
|
}, z.core.$loose>;
|
|
48
49
|
export type ViewSpecs = z.infer<typeof ViewSpecsSchema>;
|
|
50
|
+
/** Product that owns the view. */
|
|
49
51
|
export declare const ViewOwnerSchema: z.ZodEnum<{
|
|
50
52
|
OI: "OI";
|
|
51
53
|
APM: "APM";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/model/datastore/views/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,eAAO,MAAM,oBAAoB;;;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/model/datastore/views/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,wDAAwD;AACxD,eAAO,MAAM,oBAAoB;;;EAEY,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,qBAAqB;;;;;;iBAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;iBAG3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,eAAe;;;;;;;iBAG1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,kCAAkC;AAClC,eAAO,MAAM,eAAe;;;;EAEe,CAAC;AAE5C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,oBAAoB;;;;;;;;iBAI/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,2BAA2B;;;iBAMtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/model/datastore/views/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAQ3B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/model/datastore/views/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAQ3B,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAK7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAEa,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,0BAA0B;;;iBAMrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
@@ -1,26 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
1
2
|
export declare namespace LogIngest {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/** Container ID for the log entry (default: same as host). */
|
|
16
|
-
containerId?: string;
|
|
17
|
-
/** Container name for the log entry (default: same as agentInstance). */
|
|
18
|
-
containerName?: string;
|
|
19
|
-
/** Source file label (default: `"dx-do.cli"`). */
|
|
20
|
-
file?: string;
|
|
21
|
-
/** Source IP address (default: first non-loopback IPv4, falls back to `"127.0.0.1"`). */
|
|
22
|
-
ip?: string;
|
|
23
|
-
}
|
|
3
|
+
const LogIngestOptionsSchema: z.ZodObject<{
|
|
4
|
+
logtype: z.ZodOptional<z.ZodString>;
|
|
5
|
+
host: z.ZodOptional<z.ZodString>;
|
|
6
|
+
message: z.ZodString;
|
|
7
|
+
timestamp: z.ZodOptional<z.ZodString>;
|
|
8
|
+
agentName: z.ZodOptional<z.ZodString>;
|
|
9
|
+
agentInstance: z.ZodOptional<z.ZodString>;
|
|
10
|
+
containerId: z.ZodOptional<z.ZodString>;
|
|
11
|
+
containerName: z.ZodOptional<z.ZodString>;
|
|
12
|
+
file: z.ZodOptional<z.ZodString>;
|
|
13
|
+
ip: z.ZodOptional<z.ZodString>;
|
|
14
|
+
}, z.core.$loose>;
|
|
15
|
+
type LogIngestOptions = z.infer<typeof LogIngestOptionsSchema>;
|
|
24
16
|
/** @deprecated Use {@link LogIngestOptions} with a separate `additionalFields` argument. */
|
|
25
17
|
interface LogEntry {
|
|
26
18
|
logtype: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../../../../src/lib/model/log/ingest.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ingest.d.ts","sourceRoot":"","sources":["../../../../../src/lib/model/log/ingest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,yBAAiB,SAAS,CAAC;IAClB,MAAM,sBAAsB;;;;;;;;;;;qBA0CjC,CAAC;IAEH,KAAY,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;IAEtE,4FAA4F;IAC5F,UAAiB,QAAQ;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB;CACF"}
|
|
@@ -36,6 +36,12 @@ export declare class DataStoreNASSService {
|
|
|
36
36
|
* @param values - Array of {@link NassDatapoint} tuples. Each tuple must
|
|
37
37
|
* begin with a registered metric ID obtained from
|
|
38
38
|
* {@link DataStoreMetricsMetadataService.registerMetric}.
|
|
39
|
+
*
|
|
40
|
+
* @remarks The request is validated against {@link NassStoreRequestSchema}.
|
|
41
|
+
* If the response fails schema validation, a warning is logged but the raw
|
|
42
|
+
* API response is still returned.
|
|
43
|
+
*
|
|
44
|
+
* @throws ZodError if any datapoint fails schema validation.
|
|
39
45
|
*/
|
|
40
46
|
storeMetricValues(values: NassDatapoint[]): Promise<NassStoreResponse>;
|
|
41
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datastore-nass.service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/services/datastore/datastore-nass.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"datastore-nass.service.d.ts","sourceRoot":"","sources":["../../../../../src/lib/services/datastore/datastore-nass.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,OAAO,KAAK,EACV,aAAa,EAEb,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBADH,aAAa,EAAE,aAAa,EAC5B,GAAG,EAAE,SAAS;IAGjC;;;;;;;;;;;;OAYG;IACG,iBAAiB,CACrB,MAAM,EAAE,aAAa,EAAE,GACtB,OAAO,CAAC,iBAAiB,CAAC;CAgB9B"}
|
|
@@ -13,14 +13,29 @@ export declare class LogsService {
|
|
|
13
13
|
/**
|
|
14
14
|
* Builds the enriched payload object for a single log entry.
|
|
15
15
|
*
|
|
16
|
-
* @
|
|
16
|
+
* @remarks `options` is validated against
|
|
17
|
+
* {@link LogIngest.LogIngestOptionsSchema} before the payload is assembled.
|
|
18
|
+
* @param options - Known log entry fields (`message` required; the rest
|
|
19
|
+
* optional with sensible defaults).
|
|
17
20
|
* @param additionalFields - Arbitrary extra fields to include in the indexed document.
|
|
18
21
|
* @returns The payload object ready to POST to the uim_logs ingestion endpoint.
|
|
22
|
+
* @throws ZodError if `options` fails schema validation.
|
|
19
23
|
*/
|
|
20
24
|
buildLogPayload(options: LogIngest.LogIngestOptions, additionalFields?: Record<string, unknown>): unknown;
|
|
21
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Ingests a single log entry into the log gateway.
|
|
27
|
+
*
|
|
28
|
+
* @remarks The gateway returns an opaque ingestion acknowledgement with no
|
|
29
|
+
* stable schema, so the response is intentionally typed `unknown` and not
|
|
30
|
+
* validated. `options` is validated by {@link buildLogPayload}.
|
|
31
|
+
*/
|
|
22
32
|
ingestLog(options: LogIngest.LogIngestOptions, additionalFields?: Record<string, unknown>): Promise<unknown>;
|
|
23
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Ingests a batch of log entries into the log gateway.
|
|
35
|
+
*
|
|
36
|
+
* @remarks Each entry's `options` is validated by {@link buildLogPayload}.
|
|
37
|
+
* The gateway response is an opaque ack (typed `unknown`, not validated).
|
|
38
|
+
*/
|
|
24
39
|
ingestLogs(entries: Array<{
|
|
25
40
|
options: LogIngest.LogIngestOptions;
|
|
26
41
|
additionalFields?: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/logs.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAehD;;GAEG;AACH,qBAAa,WAAW;IAEV,OAAO,CAAC,QAAQ,CAAC,aAAa;IAD1C,iDAAiD;gBACpB,aAAa,EAAE,aAAa;IAEzD,oEAAoE;IAC7D,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,mBAAmB;IAO3D
|
|
1
|
+
{"version":3,"file":"logs.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/services/logs.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAehD;;GAEG;AACH,qBAAa,WAAW;IAEV,OAAO,CAAC,QAAQ,CAAC,aAAa;IAD1C,iDAAiD;gBACpB,aAAa,EAAE,aAAa;IAEzD,oEAAoE;IAC7D,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,mBAAmB;IAO3D;;;;;;;;;;OAUG;IACI,eAAe,CACpB,OAAO,EAAE,SAAS,CAAC,gBAAgB,EACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,OAAO;IAwCV;;;;;;OAMG;IACI,SAAS,CACd,OAAO,EAAE,SAAS,CAAC,gBAAgB,EACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,OAAO,CAAC,OAAO,CAAC;IAOnB;;;;;OAKG;IACI,UAAU,CACf,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC;QACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC,GACD,OAAO,CAAC,OAAO,CAAC;CAMpB"}
|