@effect-app/infra 4.0.0-beta.316 → 4.0.0-beta.317
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/CHANGELOG.md +24 -0
- package/dist/Store/Cosmos/query.d.ts +2 -1
- package/dist/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/Store/Cosmos/query.js +60 -2
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +17 -12
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +12 -7
- package/dist/Store/Memory.d.ts +2 -1
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +28 -15
- package/dist/Store/SQL/Pg.d.ts.map +1 -1
- package/dist/Store/SQL/Pg.js +15 -11
- package/dist/Store/SQL/query.d.ts +5 -1
- package/dist/Store/SQL/query.d.ts.map +1 -1
- package/dist/Store/SQL/query.js +131 -2
- package/dist/Store/SQL.d.ts +1 -1
- package/dist/Store/SQL.d.ts.map +1 -1
- package/dist/Store/SQL.js +24 -18
- package/dist/Store/codeFilter.d.ts.map +1 -1
- package/dist/Store/codeFilter.js +67 -20
- package/dist/Store/jsonDocument.d.ts +13 -0
- package/dist/Store/jsonDocument.d.ts.map +1 -0
- package/dist/Store/jsonDocument.js +31 -0
- package/dist/Store/utils.d.ts +16 -0
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +245 -6
- package/dist/logger.d.ts +5 -5
- package/examples/query.ts +4 -4
- package/package.json +3 -3
- package/src/Store/Cosmos/query.ts +65 -9
- package/src/Store/Cosmos.ts +17 -11
- package/src/Store/Disk.ts +28 -7
- package/src/Store/Memory.ts +40 -17
- package/src/Store/SQL/Pg.ts +23 -10
- package/src/Store/SQL/query.ts +152 -7
- package/src/Store/SQL.ts +37 -17
- package/src/Store/codeFilter.ts +71 -23
- package/src/Store/jsonDocument.ts +43 -0
- package/src/Store/utils.ts +275 -5
- package/test/cosmos-query.test.ts +100 -5
- package/test/dist/json-lower.test.d.ts.map +1 -0
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/json-lower.test.ts +115 -0
- package/test/query.test.ts +261 -12
- package/test/sql-store.test.ts +233 -39
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @effect-app/infra
|
|
2
2
|
|
|
3
|
+
## 4.0.0-beta.317
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 186de3a: Stop forcing Date/Map/Set Encoded shapes to JSON.
|
|
8
|
+
|
|
9
|
+
`Schema.Date` / `ReadonlySet` / `ReadonlyMap` now keep native Encoded types (`Date`, `Set`, `Map`). Use `DateFromString`, `ReadonlySetFromArray`, and `ReadonlyMapFromArray` when the Encoded form must be JSON. The query DSL accepts those native values, including array ops (`includes` / `in` / `includes-any`) on `Date[]` and `ReadonlySet` fields. Memory, Disk, SQL, and Cosmos convert Encoded Date/Map/Set through `Schema.toCodecJson` on write/read; query parameters and defaults lower the same way from the store schema. App types such as DateOnly stay native Encoded and JSON-lower via that schema — not a type registry.
|
|
10
|
+
|
|
11
|
+
- 186de3a: Query maps as JSON arrays of `[key, value]` tuples.
|
|
12
|
+
|
|
13
|
+
`where("meta", "hasKey" | "hasValue" | "hasKeyValue", ...)` (and `not*` / `*-any` / `*-all` variants) filter `ReadonlyMap` fields. Memory, Disk, SQLite, Postgres, and Cosmos compile those ops against the encoded tuple array.
|
|
14
|
+
|
|
15
|
+
- 186de3a: JSON stores lower native Encoded values (Date, Map, Set, and app types such as DateOnly) through the store's document schema.
|
|
16
|
+
|
|
17
|
+
`makeRepo` already passes that schema. Adapters encode documents, query parameters, and defaults with `Schema.toCodecJson(toEncoded(schema))` at the field path. No type registry. Schemaless stores still lower Date/Map/Set structurally.
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- 186de3a: Declare `@sentry/node` as a runtime dependency of `@effect-app/infra`. `errorReporter.ts` imports it statically, so `pnpm install --prod` of linked source (Docker) must install it next to the package, not only as a peer of the app.
|
|
22
|
+
- Updated dependencies [186de3a]
|
|
23
|
+
- Updated dependencies [186de3a]
|
|
24
|
+
- Updated dependencies [186de3a]
|
|
25
|
+
- effect-app@4.0.0-beta.317
|
|
26
|
+
|
|
3
27
|
## 4.0.0-beta.316
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -3,6 +3,7 @@ import * as Effect from "effect-app/Effect";
|
|
|
3
3
|
import type { FilterResult } from "effect-app/Model/filter/filterApi";
|
|
4
4
|
import type { AggregateIrExpression, ComputedProjectionIrExpression } from "effect-app/Model/query";
|
|
5
5
|
import type { SupportedValues } from "effect-app/Store";
|
|
6
|
+
import { type JsonLower } from "../utils.js";
|
|
6
7
|
export declare function logQuery(q: {
|
|
7
8
|
query: string;
|
|
8
9
|
parameters: {
|
|
@@ -25,7 +26,7 @@ export declare function buildWhereCosmosQuery3(idKey: PropertyKey, filter: reado
|
|
|
25
26
|
}>, order?: NonEmptyReadonlyArray<{
|
|
26
27
|
key: string;
|
|
27
28
|
direction: "ASC" | "DESC";
|
|
28
|
-
}>, skip?: number, limit?: number): {
|
|
29
|
+
}>, skip?: number, limit?: number, json?: JsonLower): {
|
|
29
30
|
query: string;
|
|
30
31
|
parameters: {
|
|
31
32
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/Store/Cosmos/query.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,EAAW,YAAY,EAAO,MAAM,mCAAmC,CAAA;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,8BAA8B,EAAsC,MAAM,wBAAwB,CAAA;AACvI,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/Store/Cosmos/query.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,EAAW,YAAY,EAAO,MAAM,mCAAmC,CAAA;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,8BAA8B,EAAsC,MAAM,wBAAwB,CAAA;AACvI,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAIvD,OAAO,EAAiB,KAAK,SAAS,EAAoB,MAAM,aAAa,CAAA;AAE7E,wBAAgB,QAAQ,CAAC,CAAC,EAAE;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,eAAe,GAAG,SAAS,eAAe,EAAE,CAAA;KACpD,EAAE,CAAA;CACJ,qCAcA;AAQD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,CAAC,EAAE,qBAAqB,CAC5B,MAAM,GAAG;IACP,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;CAC3B,GAAG;IACF,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,8BAA8B,CAAA;CACzC,GAAG;IACF,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb,GAAG;IACF,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,qBAAqB,CAAA;CACjC,CACF,EACD,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;CAAE,CAAC,EACzE,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,SAAS;IAgcd,KAAK;IAQL,UAAU;;eAIc,GAAG;;EAM9B"}
|
|
@@ -5,6 +5,7 @@ import * as Effect from "effect-app/Effect";
|
|
|
5
5
|
import { assertUnreachable } from "effect-app/utils";
|
|
6
6
|
import { InfraLogger } from "../../logger.js";
|
|
7
7
|
import { isRelationCheck } from "../codeFilter.js";
|
|
8
|
+
import { jsonifyFilter, toJsonQueryValue } from "../utils.js";
|
|
8
9
|
export function logQuery(q) {
|
|
9
10
|
return InfraLogger
|
|
10
11
|
.logDebug("cosmos query")
|
|
@@ -20,7 +21,10 @@ const dottedToAccess = (path) => path
|
|
|
20
21
|
.split(".")
|
|
21
22
|
.map((p, i) => i === 0 ? p : `["${p}"]`)
|
|
22
23
|
.join("");
|
|
23
|
-
export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, select, order, skip, limit) {
|
|
24
|
+
export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, select, order, skip, limit, json) {
|
|
25
|
+
const toJson = json?.toJson ?? toJsonQueryValue;
|
|
26
|
+
filter = (json?.jsonifyFilter ?? jsonifyFilter)(filter);
|
|
27
|
+
defaultValues = toJson(defaultValues);
|
|
24
28
|
const statement = (x, i) => {
|
|
25
29
|
if (x.path === idKey) {
|
|
26
30
|
x = { ...x, path: "id" };
|
|
@@ -50,6 +54,42 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
50
54
|
return `ARRAY_CONTAINS_ALL(${k}, ${x.value.map((_, i) => `${v}__${i}`).join(", ")})`;
|
|
51
55
|
case "notIncludes-all":
|
|
52
56
|
return `(NOT ARRAY_CONTAINS_ALL(${k}, ${x.value.map((_, i) => `${v}__${i}`).join(", ")}))`;
|
|
57
|
+
case "hasKey":
|
|
58
|
+
return `EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[0] = ${v})`;
|
|
59
|
+
case "notHasKey":
|
|
60
|
+
return `(NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[0] = ${v}))`;
|
|
61
|
+
case "hasValue":
|
|
62
|
+
return `EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[1] = ${v})`;
|
|
63
|
+
case "notHasValue":
|
|
64
|
+
return `(NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[1] = ${v}))`;
|
|
65
|
+
case "hasKeyValue":
|
|
66
|
+
return `ARRAY_CONTAINS(${k}, ${v})`;
|
|
67
|
+
case "notHasKeyValue":
|
|
68
|
+
return `(NOT ARRAY_CONTAINS(${k}, ${v}))`;
|
|
69
|
+
case "hasKey-any":
|
|
70
|
+
return `EXISTS(SELECT VALUE p FROM p IN ${k} WHERE ARRAY_CONTAINS(${v}, p[0]))`;
|
|
71
|
+
case "notHasKey-any":
|
|
72
|
+
return `(NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE ARRAY_CONTAINS(${v}, p[0])))`;
|
|
73
|
+
case "hasKey-all":
|
|
74
|
+
return `(NOT EXISTS(SELECT VALUE key FROM key IN ${v} WHERE NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[0] = key)))`;
|
|
75
|
+
case "notHasKey-all":
|
|
76
|
+
return `EXISTS(SELECT VALUE key FROM key IN ${v} WHERE NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[0] = key))`;
|
|
77
|
+
case "hasValue-any":
|
|
78
|
+
return `EXISTS(SELECT VALUE p FROM p IN ${k} WHERE ARRAY_CONTAINS(${v}, p[1]))`;
|
|
79
|
+
case "notHasValue-any":
|
|
80
|
+
return `(NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE ARRAY_CONTAINS(${v}, p[1])))`;
|
|
81
|
+
case "hasValue-all":
|
|
82
|
+
return `(NOT EXISTS(SELECT VALUE val FROM val IN ${v} WHERE NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[1] = val)))`;
|
|
83
|
+
case "notHasValue-all":
|
|
84
|
+
return `EXISTS(SELECT VALUE val FROM val IN ${v} WHERE NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[1] = val))`;
|
|
85
|
+
case "hasKeyValue-any":
|
|
86
|
+
return `EXISTS(SELECT VALUE pair FROM pair IN ${v} WHERE ARRAY_CONTAINS(${k}, pair))`;
|
|
87
|
+
case "notHasKeyValue-any":
|
|
88
|
+
return `(NOT EXISTS(SELECT VALUE pair FROM pair IN ${v} WHERE ARRAY_CONTAINS(${k}, pair)))`;
|
|
89
|
+
case "hasKeyValue-all":
|
|
90
|
+
return `(NOT EXISTS(SELECT VALUE pair FROM pair IN ${v} WHERE NOT ARRAY_CONTAINS(${k}, pair)))`;
|
|
91
|
+
case "notHasKeyValue-all":
|
|
92
|
+
return `EXISTS(SELECT VALUE pair FROM pair IN ${v} WHERE NOT ARRAY_CONTAINS(${k}, pair))`;
|
|
53
93
|
case "contains":
|
|
54
94
|
return `CONTAINS(${k}, ${v}, true)`;
|
|
55
95
|
case "startsWith":
|
|
@@ -106,6 +146,24 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
106
146
|
"notIncludes-any": "includes-any",
|
|
107
147
|
"includes-all": "notIncludes-all",
|
|
108
148
|
"notIncludes-all": "includes-all",
|
|
149
|
+
hasKey: "notHasKey",
|
|
150
|
+
notHasKey: "hasKey",
|
|
151
|
+
hasValue: "notHasValue",
|
|
152
|
+
notHasValue: "hasValue",
|
|
153
|
+
hasKeyValue: "notHasKeyValue",
|
|
154
|
+
notHasKeyValue: "hasKeyValue",
|
|
155
|
+
"hasKey-any": "notHasKey-any",
|
|
156
|
+
"notHasKey-any": "hasKey-any",
|
|
157
|
+
"hasKey-all": "notHasKey-all",
|
|
158
|
+
"notHasKey-all": "hasKey-all",
|
|
159
|
+
"hasValue-any": "notHasValue-any",
|
|
160
|
+
"notHasValue-any": "hasValue-any",
|
|
161
|
+
"hasValue-all": "notHasValue-all",
|
|
162
|
+
"notHasValue-all": "hasValue-all",
|
|
163
|
+
"hasKeyValue-any": "notHasKeyValue-any",
|
|
164
|
+
"notHasKeyValue-any": "hasKeyValue-any",
|
|
165
|
+
"hasKeyValue-all": "notHasKeyValue-all",
|
|
166
|
+
"notHasKeyValue-all": "hasKeyValue-all",
|
|
109
167
|
in: "notIn",
|
|
110
168
|
notIn: "in"
|
|
111
169
|
};
|
|
@@ -384,4 +442,4 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
384
442
|
.concat(Array.isArray(x.value) ? x.value.map((_, i2) => ({ name: `@v${i}__${i2}`, value: _ })) : []))
|
|
385
443
|
};
|
|
386
444
|
}
|
|
387
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU3RvcmUvQ29zbW9zL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCx3REFBd0Q7QUFDeEQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBSTNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFbEQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxDQU14QjtJQUNDLE9BQU8sV0FBVztTQUNmLFFBQVEsQ0FBQyxjQUFjLENBQUM7U0FDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1FBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQ3hCLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQTtZQUNyQixPQUFPLEdBQUcsQ0FBQTtRQUNaLENBQUMsRUFBRSxFQUFrRSxDQUFDLEVBQ3RFLFNBQVMsRUFDVCxDQUFDLENBQ0Y7S0FDRixDQUFDLENBQUMsQ0FBQTtBQUNQLENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQ3RDLElBQUk7S0FDRCxLQUFLLENBQUMsR0FBRyxDQUFDO0tBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFD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
|
|
445
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU3RvcmUvQ29zbW9zL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCx3REFBd0Q7QUFDeEQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBSTNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBa0IsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFN0UsTUFBTSxVQUFVLFFBQVEsQ0FBQyxDQU14QjtJQUNDLE9BQU8sV0FBVztTQUNmLFFBQVEsQ0FBQyxjQUFjLENBQUM7U0FDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1FBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQ3hCLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQTtZQUNyQixPQUFPLEdBQUcsQ0FBQTtRQUNaLENBQUMsRUFBRSxFQUFrRSxDQUFDLEVBQ3RFLFNBQVMsRUFDVCxDQUFDLENBQ0Y7S0FDRixDQUFDLENBQUMsQ0FBQTtBQUNQLENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQ3RDLElBQUk7S0FDRCxLQUFLLENBQUMsR0FBRyxDQUFDO0tBQ1YsR0FBRyxDQUFDLENBQUMs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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../src/Store/Cosmos.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,EAA8C,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../src/Store/Cosmos.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,EAA8C,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAunBpJ,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,yCAIlD"}
|
package/dist/Store/Cosmos.js
CHANGED
|
@@ -15,6 +15,8 @@ import { DatabaseError, OptimisticConcurrencyException } from "../errors.js";
|
|
|
15
15
|
import { InfraLogger } from "../logger.js";
|
|
16
16
|
import { annotateCosmosResponse, annotateDb } from "../otel.js";
|
|
17
17
|
import { buildWhereCosmosQuery3, logQuery } from "./Cosmos/query.js";
|
|
18
|
+
import { makeJsonDocumentCodec } from "./jsonDocument.js";
|
|
19
|
+
import { makeJsonLower } from "./utils.js";
|
|
18
20
|
const makeMapId = (idKey) => ({ [idKey]: id, ...e }) => ({
|
|
19
21
|
...e,
|
|
20
22
|
id
|
|
@@ -62,6 +64,10 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
62
64
|
make: Effect.fnUntraced(function* (name, idKey, seed, config) {
|
|
63
65
|
const mapId = makeMapId(idKey);
|
|
64
66
|
const mapReverseId = makeReverseMapId(idKey);
|
|
67
|
+
const codec = makeJsonDocumentCodec(config?.schema);
|
|
68
|
+
const json = makeJsonLower(config);
|
|
69
|
+
const defaultValues = json.toJson(config?.defaultValues ?? {});
|
|
70
|
+
const fromStored = (raw) => codec.decode({ ...defaultValues, ...mapReverseId(raw) });
|
|
65
71
|
const containerId = `${prefix}${name}`;
|
|
66
72
|
yield* Effect.promise(() => db.containers.createIfNotExists(dropUndefinedT({
|
|
67
73
|
id: containerId,
|
|
@@ -88,7 +94,6 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
88
94
|
}
|
|
89
95
|
return namespace;
|
|
90
96
|
}));
|
|
91
|
-
const defaultValues = config?.defaultValues ?? {};
|
|
92
97
|
const container = db.container(containerId);
|
|
93
98
|
const bulk = container.items.bulk.bind(container.items);
|
|
94
99
|
const execBatch = container.items.batch.bind(container.items);
|
|
@@ -141,7 +146,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
141
146
|
onNone: () => dropUndefinedT({
|
|
142
147
|
operationType: "Create",
|
|
143
148
|
resourceBody: {
|
|
144
|
-
...Struct.omit(x, ["_etag", idKey]),
|
|
149
|
+
...Struct.omit(codec.encode(x), ["_etag", idKey]),
|
|
145
150
|
id: x[idKey],
|
|
146
151
|
_partitionKey: nsPartitionValue(ns, x)
|
|
147
152
|
}
|
|
@@ -152,7 +157,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
152
157
|
operationType: "Replace",
|
|
153
158
|
id: x[idKey],
|
|
154
159
|
resourceBody: {
|
|
155
|
-
...Struct.omit(x, ["_etag", idKey]),
|
|
160
|
+
...Struct.omit(codec.encode(x), ["_etag", idKey]),
|
|
156
161
|
id: x[idKey],
|
|
157
162
|
_partitionKey: nsPartitionValue(ns, x)
|
|
158
163
|
},
|
|
@@ -219,7 +224,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
219
224
|
onNone: () => ({
|
|
220
225
|
operationType: "Create",
|
|
221
226
|
resourceBody: {
|
|
222
|
-
...Struct.omit(x, ["_etag", idKey]),
|
|
227
|
+
...Struct.omit(codec.encode(x), ["_etag", idKey]),
|
|
223
228
|
id: x[idKey],
|
|
224
229
|
_partitionKey: nsPartitionValue(ns, x)
|
|
225
230
|
}
|
|
@@ -230,7 +235,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
230
235
|
operationType: "Replace",
|
|
231
236
|
id: x[idKey],
|
|
232
237
|
resourceBody: {
|
|
233
|
-
...Struct.omit(x, ["_etag", idKey]),
|
|
238
|
+
...Struct.omit(codec.encode(x), ["_etag", idKey]),
|
|
234
239
|
id: x[idKey],
|
|
235
240
|
_partitionKey: nsPartitionValue(ns, x)
|
|
236
241
|
},
|
|
@@ -313,7 +318,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
313
318
|
.gen(function* () {
|
|
314
319
|
const response = yield* tryCosmos(() => container.items.query(q, { partitionKey: nsBasePartitionKey(ns) }).fetchAll());
|
|
315
320
|
yield* annotateFeed(response);
|
|
316
|
-
return response.resources.map((_) => (
|
|
321
|
+
return response.resources.map((_) => fromStored(_));
|
|
317
322
|
})
|
|
318
323
|
.pipe(annotateDb({
|
|
319
324
|
operation: "all",
|
|
@@ -332,7 +337,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
332
337
|
const filter = f.filter;
|
|
333
338
|
return Effect
|
|
334
339
|
.all({
|
|
335
|
-
q: Effect.sync(() => buildWhereCosmosQuery3(idKey, filter ? [{ t: "where-scope", result: filter, relation: "some" }] : [], name, defaultValues, f.select, f.order, skip, limit)),
|
|
340
|
+
q: Effect.sync(() => buildWhereCosmosQuery3(idKey, filter ? [{ t: "where-scope", result: filter, relation: "some" }] : [], name, defaultValues, f.select, f.order, skip, limit, json)),
|
|
336
341
|
ns: resolveNamespace
|
|
337
342
|
})
|
|
338
343
|
.pipe(Effect.tap(({ q }) => logQuery(q)), Effect
|
|
@@ -348,7 +353,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
348
353
|
}
|
|
349
354
|
const response = yield* tryCosmos(() => container.items.query(q, { partitionKey: nsBasePartitionKey(ns) }).fetchAll());
|
|
350
355
|
yield* annotateFeed(response);
|
|
351
|
-
return response.resources.map(({ f }) => (
|
|
356
|
+
return response.resources.map(({ f }) => fromStored(f));
|
|
352
357
|
})
|
|
353
358
|
.pipe(annotateDb({
|
|
354
359
|
operation: "filter",
|
|
@@ -365,7 +370,7 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
365
370
|
.item(id, nsPartitionValue(ns, { [idKey]: id }))
|
|
366
371
|
.read());
|
|
367
372
|
yield* annotateItem(response);
|
|
368
|
-
return Option.fromNullishOr(response.resource).pipe(Option.map((_) => (
|
|
373
|
+
return Option.fromNullishOr(response.resource).pipe(Option.map((_) => fromStored(_)));
|
|
369
374
|
})
|
|
370
375
|
.pipe(annotateDb({
|
|
371
376
|
operation: "find",
|
|
@@ -385,10 +390,10 @@ const makeCosmosStore = Effect.fnUntraced(function* ({ prefix }) {
|
|
|
385
390
|
.match(Option
|
|
386
391
|
.fromNullishOr(e._etag), {
|
|
387
392
|
onNone: () => container.items.create({
|
|
388
|
-
...mapId(e),
|
|
393
|
+
...mapId(codec.encode(e)),
|
|
389
394
|
_partitionKey: nsPartitionValue(ns, e)
|
|
390
395
|
}),
|
|
391
|
-
onSome: (eTag) => container.item(e[idKey], nsPartitionValue(ns, e)).replace({ ...mapId(e), _partitionKey: nsPartitionValue(ns, e) }, {
|
|
396
|
+
onSome: (eTag) => container.item(e[idKey], nsPartitionValue(ns, e)).replace({ ...mapId(codec.encode(e)), _partitionKey: nsPartitionValue(ns, e) }, {
|
|
392
397
|
accessCondition: {
|
|
393
398
|
type: "IfMatch",
|
|
394
399
|
condition: eTag
|
|
@@ -433,4 +438,4 @@ export function CosmosStoreLayer(cfg) {
|
|
|
433
438
|
.toLayer(makeCosmosStore(cfg))
|
|
434
439
|
.pipe(Layer.provide(CosmosClientLayer(Redacted.value(cfg.url), cfg.dbName)));
|
|
435
440
|
}
|
|
436
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL0Nvc21vcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBR3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFnRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDcEosT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0QyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLDhCQUE4QixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFcEUsTUFBTSxTQUFTLEdBQ2IsQ0FBMkQsS0FBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxL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
|
|
441
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29zbW9zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0b3JlL0Nvc21vcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDbEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBR3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFnRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDcEosT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0QyxPQUFPLEtBQUssUUFBUSxNQUFNLGlCQUFpQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLDhCQUE4QixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUUxQyxNQUFNLFNBQVMsR0FDYixDQUEyRCxLQUFZLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLEdBQUcsQ0FBQztJQUNKLEVBQUU7Q0FDSCxDQUFDLENBQUE7QUFDSixNQUFNLGdCQUFnQixHQUNwQixDQUEyRCxLQUFZLEVBQUUsRUFBRSxDQUMzRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUErRCxFQUFFLEVBQUUsQ0FDNUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQXlDLENBQUE7QUFFbkUseUVBQXlFO0FBQ3pFLHFDQUFxQztBQUNyQyxNQUFNLHVCQUF1QixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDbEUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0FBRTdFLGlGQUFpRjtBQUNqRix3REFBd0Q7QUFDeEQsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQVUsRUFBVyxFQUFFO0lBQ2hELE1BQU0sSUFBSSxHQUFJLENBQVMsRUFBRSxJQUFJLElBQUssQ0FBUyxFQUFFLFVBQVUsQ0FBQTtJQUN2RCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFDOUUsTUFBTSxHQUFHLEdBQUcsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RELE9BQU8sK0pBQStKO1NBQ25LLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNkLENBQUMsQ0FBQTtBQUVELHlFQUF5RTtBQUN6RSxnRkFBZ0Y7QUFDaEYsOEVBQThFO0FBQzlFLE1BQU0sU0FBUyxHQUFHLENBQUksQ0FBbUIsRUFBbUMsRUFBRSxDQUM1RSxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2hCLEdBQUcsRUFBRSxDQUFDO0lBQ04sS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDWCxJQUFJLGFBQWEsQ0FBQztRQUNoQixPQUFPLEVBQUUsMEJBQTBCLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMvRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQy9CLEtBQUssRUFBRSxDQUFDO0tBQ1QsQ0FBQztDQUNMLENBQUMsQ0FBQTtBQUVKLE1BQU0sU0FBUyxHQUFHLENBQ2hCLElBQXdHLEVBQ3hHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLDJCQUEyQixFQUFFLGlDQUFpQyxJQUFJLENBQUMsQ0FBQTtBQUUxRixNQUFNLFlBQVksR0FBRyxDQUFDLElBSXJCLEVBQUUsRUFBRSxDQUNILHNCQUFzQixDQUFDO0lBQ3JCLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtJQUNqQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO0lBQ25DLGFBQWEsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDO0NBQy9CLENBQUMsQ0FBQTtBQUVKLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFJckIsRUFBRSxFQUFFLENBQ0gsc0JBQXNCLENBQUM7SUFDckIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO0lBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtJQUMzQixhQUFhLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQztDQUMvQixDQUFDLENBQUE7QUFFSixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFDLEVBQUUsTUFBTSxFQUFpQjtJQUMzRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFBO0lBQ2xDLE9BQU87UUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFDL0IsSUFBWSxFQUNaLEtBQVksRUFDWixJQUE2QyxFQUM3QyxNQUE2QjtZQUU3QixNQUFNLEtBQUssR0FBRyxTQUFTLENBQWlCLEtBQUssQ0FBQyxDQUFBO1lBQzlDLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFpQixLQUFLLENBQUMsQ0FBQTtZQUM1RCxNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBVSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUE7WUFDNUQsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2xDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLGFBQWEsSUFBSSxFQUFFLENBQXFCLENBQUE7WUFDbEYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLFlBQVksQ0FBQyxHQUFVLENBQUMsRUFBRSxDQUFDLENBQUE7WUFHcEcsTUFBTSxXQUFXLEdBQUcsR0FBRyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUE7WUFDdEMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDekIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUM7Z0JBQzdDLEVBQUUsRUFBRSxXQUFXO2dCQUNmLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVTtvQkFDakMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVLEVBQUU7b0JBQ25DLENBQUMsQ0FBQyxTQUFTO2dCQUNiLFlBQVksRUFBRTtvQkFDWixLQUFLLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDekIsT0FBTyxFQUFFLENBQUMsQ0FBQyx5RkFBeUY7aUJBQ3JHO2FBQ0YsQ0FBQyxDQUFDLENBQ0osQ0FBQTtZQUVELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxFQUFFLGNBQWMsRUFBRSxJQUFJLFNBQVMsQ0FBQTtZQUM5RCxNQUFNLFFBQVEsR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFBO1lBQ2xFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxFQUFVLEVBQUUsQ0FBVyxFQUFFLEVBQUU7Z0JBQ25ELE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFBO2dCQUNuRCxPQUFPLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFBO1lBQ2pDLENBQUMsQ0FBQTtZQUNELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLENBQUE7WUFDL0UsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxjQUFjO2dCQUM5QyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtvQkFDdEMsSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO3dCQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsU0FBUyxlQUFlLENBQUMsQ0FBQTtvQkFDeEQsQ0FBQztvQkFDRCxPQUFPLFNBQVMsQ0FBQTtnQkFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUVMLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUE7WUFDM0MsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUN2RCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQzdELHlGQUF5RjtZQUN6RixvR0FBb0c7WUFDcEcsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUE7WUFFcEMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBSyxDQUFBO1lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUErQixDQUFBO1lBQ3hELE1BQU0sY0FBYyxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUU7Z0JBQ3BDLE1BQU0sUUFBUSxHQUFHLEVBQUUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixLQUFLLEVBQUUsRUFBRSxDQUFBO2dCQUNuRixPQUFPLE1BQU07cUJBQ1YsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUNaLFNBQVM7cUJBQ04sSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7cUJBQ3hCLElBQUksRUFBa0I7cUJBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDMUQ7cUJBQ0EsSUFBSSxDQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDeEIsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQzt3QkFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUE7b0JBQzdDLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsSUFBSSxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ2xGLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSyxDQUFDLEVBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNuQixNQUFNLENBQUMsYUFBYSxDQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN2QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUNqRCxDQUNGLEVBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FDWixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUNsQixTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQzt3QkFDckIsYUFBYSxFQUFFLFFBQVE7d0JBQ3ZCLEVBQUUsRUFBRSxRQUFRO3dCQUNaLEdBQUcsRUFBRSxDQUFDLENBQUM7cUJBQ1IsQ0FBQyxDQUNILENBQ0YsRUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUNuQixNQUFNLENBQUMsS0FBSyxDQUNiLENBQUE7Z0JBQ0gsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsSUFBSSxPQUFPLEVBQUUsMkJBQTJCLENBQUMsRUFDaEYsVUFBVSxDQUFDO29CQUNULFNBQVMsRUFBRSxNQUFNO29CQUNqQixNQUFNLEVBQUUsVUFBVTtvQkFDbEIsVUFBVSxFQUFFLFdBQVc7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO29CQUNiLE1BQU0sRUFBRSxJQUFJO2lCQUNiLENBQUMsQ0FDSCxDQUFBO1lBQ0wsQ0FBQyxDQUFBO1lBQ0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxFQUFVO2dCQUNuRSxJQUFJLENBQUMsSUFBSTtvQkFBRSxPQUFNO2dCQUNqQixJQUFJLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUM5QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ1osTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUN6RSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFDM0IsQ0FBQztnQkFDRCxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUE7WUFDZixDQUFDLENBQUMsQ0FBQTtZQUNGLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBZ0MsRUFBRSxFQUFVLEVBQUUsRUFBRSxDQUN2RSxNQUFNO2lCQUNILEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQ1osMkNBQTJDO2dCQUMzQywrQ0FBK0M7Z0JBQy9DLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7cUJBQ2pCLEdBQUcsQ0FDRixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0o7b0JBQ0UsQ0FBQztvQkFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO3dCQUMxQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQ1gsY0FBYyxDQUFDOzRCQUNiLGFBQWEsRUFBRSxRQUFpQjs0QkFDaEMsWUFBWSxFQUFFO2dDQUNaLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dDQUNqRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQ0FDWixhQUFhLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzs2QkFDdkM7NEJBQ0QsOEdBQThHOzRCQUM5RywwQ0FBMEM7eUJBQzNDLENBQUM7d0JBQ0osTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDZixjQUFjLENBQUM7NEJBQ2IsYUFBYSxFQUFFLFNBQWtCOzRCQUNqQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQzs0QkFDWixZQUFZLEVBQUU7Z0NBQ1osR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0NBQ2pELEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO2dDQUNaLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDOzZCQUN2Qzs0QkFDRCxPQUFPLEVBQUUsSUFBSTs0QkFDYiw4R0FBOEc7NEJBQzlHLDBDQUEwQzt5QkFDM0MsQ0FBQztxQkFDTCxDQUFDO2lCQUNNLENBQ2IsQ0FBQTtnQkFDSCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUU1RCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUN2QyxPQUFPO3FCQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBVSxDQUFDLEVBQ2pDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDN0MsSUFBSSxDQUNILE1BQU07cUJBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUM1QyxNQUFNO3FCQUNILE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO29CQUNsQixNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDN0IsQ0FBQyxDQUFDLFVBQVUsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsS0FBSyxHQUFHLENBQ3JFLENBQUE7b0JBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDTixPQUFPLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZCLElBQUksOEJBQThCLENBQ2hDOzRCQUNFLElBQUksRUFBRSxJQUFJOzRCQUNWLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDMUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxVQUFVOzRCQUNsQixHQUFHLEVBQUUsU0FBUzt5QkFDZixDQUNGLENBQ0YsQ0FBQTtvQkFDSCxDQUFDO29CQUNELE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQ3ZCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLENBQzFFLENBQUE7b0JBQ0QsSUFBSSxFQUFFLEVBQUUsQ0FBQzt3QkFDUCxPQUFPLEtBQUssQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDOzRCQUM5QixPQUFPLEVBQUUsOEJBQThCLEdBQUcsRUFBRSxDQUFDLFVBQVU7NEJBQ3ZELFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDOzRCQUMzQyxLQUFLLEVBQUUsU0FBUzt5QkFDakIsQ0FBQyxDQUFBO29CQUNKLENBQUM7b0JBQ0QsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FDdkIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUNoRCxDQUFBO29CQUNELElBQUksRUFBRSxFQUFFLENBQUM7d0JBQ1AsT0FBTyxLQUFLLENBQUMsQ0FBQyxJQUFJLGFBQWEsQ0FBQzs0QkFDOUIsT0FBTyxFQUFFLDhCQUE4QixHQUFHLEVBQUUsQ0FBQyxVQUFVOzRCQUN2RCxTQUFTLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQzs0QkFDM0MsS0FBSyxFQUFFLFNBQVM7eUJBQ2pCLENBQUMsQ0FBQTtvQkFDSixDQUFDO29CQUNELE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO3dCQUM1QixHQUFHLENBQUM7d0JBQ0osb0VBQW9FO3dCQUNwRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBRSxDQUFDLElBQUk7cUJBQzFCLENBQUMsQ0FBQyxDQUFBO2dCQUNMLENBQUMsQ0FBQyxDQUNILENBQ0osQ0FDTixDQUFBO2dCQUVELE9BQU8sV0FBVyxDQUFDLElBQUksRUFBK0MsQ0FBQTtZQUN4RSxDQUFDLENBQUM7aUJBQ0QsSUFBSSxDQUNILFVBQVUsQ0FBQztnQkFDVCxTQUFTLEVBQUUsU0FBUztnQkFDcEIsTUFBTSxFQUFFLFVBQVU7Z0JBQ2xCLFVBQVUsRUFBRSxXQUFXO2dCQUN2QixTQUFTLEVBQUUsRUFBRTtnQkFDYixNQUFNLEVBQUUsSUFBSTthQUNiLENBQUMsQ0FDSCxDQUFBO1lBRUwsTUFBTSxPQUFPLEdBQUcsQ0FBQyxLQUFnQyxFQUFFLEVBQUUsQ0FDbkQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBRTNFLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBZ0MsRUFBRSxFQUFFO2dCQUNwRCxPQUFPLGdCQUFnQjtxQkFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUMxQixNQUFNO3FCQUNILE9BQU8sQ0FBQyxHQUFHLEVBQUU7b0JBQ1osTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FDMUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKO3dCQUNFLENBQUM7d0JBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRTs0QkFDMUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0NBQ2IsYUFBYSxFQUFFLFFBQWlCO2dDQUNoQyxZQUFZLEVBQUU7b0NBQ1osR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7b0NBQ2pELEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO29DQUNaLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lDQUN2QztnQ0FDRCw4R0FBOEc7Z0NBQzlHLDBDQUEwQzs2QkFDM0MsQ0FBQzs0QkFDRixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0NBQ2pCLGFBQWEsRUFBRSxTQUFrQjtnQ0FDakMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0NBQ1osWUFBWSxFQUFFO29DQUNaLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO29DQUNqRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztvQ0FDWixhQUFhLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztpQ0FDdkM7Z0NBQ0QsOEdBQThHO2dDQUM5RywwQ0FBMEM7Z0NBQzFDLE9BQU8sRUFBRSxJQUFJOzZCQUNkLENBQUM7eUJBQ0gsQ0FBQztxQkFDTSxDQUNiLENBQUE7b0JBRUQsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBRWxDLE9BQU8sU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQzt5QkFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDO3dCQUNoRCxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQTt3QkFDN0IsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDN0IsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUNyRCxDQUFBO3dCQUNELElBQUksV0FBVyxFQUFFLENBQUM7NEJBQ2hCLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFBOzRCQUN4QyxJQUFJLElBQUksS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLEdBQUcsSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7Z0NBQ2pELE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSw4QkFBOEIsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBOzRCQUNyRixDQUFDOzRCQUVELE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUM7Z0NBQzlCLE9BQU8sRUFBRSw2QkFBNkIsR0FBRyxJQUFJO2dDQUM3QyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDO2dDQUNsQyxLQUFLLEVBQUUsQ0FBQzs2QkFDVCxDQUFDLENBQUE7d0JBQ0osQ0FBQzt3QkFFRCxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDNUIsR0FBRyxDQUFDOzRCQUNKLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSTt5QkFDdkIsQ0FBQyxDQUE4QyxDQUFBO29CQUNsRCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ1IsQ0FBQyxDQUFDO3FCQUNELElBQUksQ0FBQyxVQUFVLENBQUM7b0JBQ2YsU0FBUyxFQUFFLFVBQVU7b0JBQ3JCLE1BQU0sRUFBRSxVQUFVO29CQUNsQixVQUFVLEVBQUUsV0FBVztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQyxDQUFDLENBQ04sQ0FBQyxDQUFBO1lBQ04sQ0FBQyxDQUFBO1lBRUQsTUFBTSxDQUFDLEdBQTBCO2dCQUMvQixhQUFhLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBRXhDLFFBQVEsRUFBRSxDQUFNLEtBQTZCLEVBQUUsRUFBRSxDQUMvQyxNQUFNO3FCQUNILEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUM7cUJBQzNFLElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQzNCLE1BQU07cUJBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQztvQkFDWixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ3JDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQ25GLENBQUE7b0JBQ0QsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBO29CQUM3QixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUMzQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsYUFBYSxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQVEsQ0FBQyxFQUFFLENBQVEsQ0FDaEUsQ0FBQTtnQkFDSCxDQUFDLENBQUM7cUJBQ0QsSUFBSSxDQUNILFVBQVUsQ0FBQztvQkFDVCxTQUFTLEVBQUUsVUFBVTtvQkFDckIsTUFBTSxFQUFFLFVBQVU7b0JBQ2xCLFVBQVUsRUFBRSxXQUFXO29CQUN2QixTQUFTLEVBQUUsRUFBRTtvQkFDYixNQUFNLEVBQUUsSUFBSTtvQkFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7aUJBQ2YsQ0FBQyxDQUNILENBQ0osQ0FDRjtnQkFDTCxXQUFXLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBcUIsRUFBRSxFQUFFLENBQzFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDMUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNiLFNBQVMsQ0FDUCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ3JCLGNBQWMsQ0FBQztvQkFDYixhQUFhLEVBQUUsUUFBaUI7b0JBQ2hDLEVBQUU7b0JBQ0YsOEdBQThHO29CQUM5RyxtRUFBbUU7aUJBQ3BFLENBQUMsQ0FDSCxDQUFDLEVBQ0YsWUFBWSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUN2QyxDQUNGO3FCQUNFLElBQUksQ0FDSCxVQUFVLENBQUM7b0JBQ1QsU0FBUyxFQUFFLGFBQWE7b0JBQ3hCLE1BQU0sRUFBRSxVQUFVO29CQUNsQixVQUFVLEVBQUUsV0FBVztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQyxDQUNILENBQ0osQ0FBQztnQkFDSixHQUFHLEVBQUUsTUFBTTtxQkFDUixHQUFHLENBQUM7b0JBQ0gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQzt3QkFDcEIsS0FBSyxFQUFFLGlCQUFpQixJQUFJLEVBQUU7d0JBQzlCLFVBQVUsRUFBRSxFQUFFO3FCQUNmLENBQUMsQ0FBQztvQkFDSCxFQUFFLEVBQUUsZ0JBQWdCO2lCQUNyQixDQUFDO3FCQUNELElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQzNCLE1BQU07cUJBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQztvQkFDWixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ3JDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFXLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQ3hGLENBQUE7b0JBQ0QsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBO29CQUM3QixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBdUIsQ0FBQyxDQUFDLENBQUE7Z0JBQzNFLENBQUMsQ0FBQztxQkFDRCxJQUFJLENBQ0gsVUFBVSxDQUFDO29CQUNULFNBQVMsRUFBRSxLQUFLO29CQUNoQixNQUFNLEVBQUUsVUFBVTtvQkFDbEIsVUFBVSxFQUFFLFdBQVc7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO29CQUNiLE1BQU0sRUFBRSxJQUFJO29CQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztpQkFDZixDQUFDLENBQ0gsQ0FDSixDQUNGO2dCQUNIOzttQkFFRztnQkFDSCxNQUFNLEVBQUUsQ0FDTixDQUF5QixFQUN6QixFQUFFO29CQUNGLE1BQU0sSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUE7b0JBQ3BCLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUE7b0JBQ3RCLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUE7b0JBRXZCLE9BQU8sTUFBTTt5QkFDVixHQUFHLENBQUM7d0JBQ0gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQ2xCLHNCQUFzQixDQUNwQixLQUFLLEVBQ0wsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3RFLElBQUksRUFDSixhQUFhLEVBQ2IsQ0FBQyxDQUFDLE1BVVcsRUFDYixDQUFDLENBQUMsS0FBc0YsRUFDeEYsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLENBQ0wsQ0FDRjt3QkFDRCxFQUFFLEVBQUUsZ0JBQWdCO3FCQUNyQixDQUFDO3lCQUNELElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xDLE1BQU07eUJBQ0gsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNyQixNQUFNO3lCQUNILEdBQUcsQ0FBQyxRQUFRLENBQUM7d0JBQ1osSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ2IsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNyQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBSSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUNqRixDQUFBOzRCQUNELEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQTs0QkFDN0IsT0FBTyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQ0FDcEMsR0FBRyxJQUFJLENBQ0wsYUFBYSxFQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBWSxDQUFDLENBQ3ZFO2dDQUNELEdBQUcsWUFBWSxDQUFDLENBQVEsQ0FBQzs2QkFDMUIsQ0FBQyxDQUFDLENBQUE7d0JBQ0wsQ0FBQzt3QkFDRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ3JDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFXLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQ3hGLENBQUE7d0JBQ0QsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBO3dCQUM3QixPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQVksQ0FBUSxDQUFDLENBQUE7b0JBQzNFLENBQUMsQ0FBQzt5QkFDRCxJQUFJLENBQ0gsVUFBVSxDQUFDO3dCQUNULFNBQVMsRUFBRSxRQUFRO3dCQUNuQixNQUFNLEVBQUUsVUFBVTt3QkFDbEIsVUFBVSxFQUFFLFdBQVc7d0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO3dCQUNiLE1BQU0sRUFBRSxJQUFJO3dCQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDZixDQUFDLENBQ0gsQ0FDSixDQUNKLENBQUE7Z0JBQ0wsQ0FBQztnQkFDRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUNYLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDMUMsTUFBTTtxQkFDSCxHQUFHLENBQUMsUUFBUSxDQUFDO29CQUNaLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDckMsU0FBUzt5QkFDTixJQUFJLENBQUMsRUFBRSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFhLENBQUMsQ0FBQzt5QkFDMUQsSUFBSSxFQUFXLENBQ25CLENBQUE7b0JBQ0QsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBO29CQUM3QixPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDakQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pDLENBQUE7Z0JBQ0gsQ0FBQyxDQUFDO3FCQUNELElBQUksQ0FBQyxVQUFVLENBQUM7b0JBQ2YsU0FBUyxFQUFFLE1BQU07b0JBQ2pCLE1BQU0sRUFBRSxVQUFVO29CQUNsQixVQUFVLEVBQUUsV0FBVztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsTUFBTSxFQUFFLElBQUk7b0JBQ1osS0FBSyxFQUFFO3dCQUNMLHdDQUF3QyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFhLENBQUM7d0JBQzFGLGVBQWUsRUFBRSxFQUFFO3FCQUNwQjtpQkFDRixDQUFDLENBQUMsQ0FDTixDQUFDO2dCQUNKLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ1QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtnQkFDMUMsdUVBQXVFO2dCQUN2RSx1RUFBdUU7Z0JBQ3ZFLFNBQVMsQ0FBQyxHQUFrRCxFQUFFLENBQzVELE1BQU07cUJBQ0gsS0FBSyxDQUNKLE1BQU07cUJBQ0gsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDekI7b0JBQ0UsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUNYLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO3dCQUNyQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN6QixhQUFhLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztxQkFDdkMsQ0FBQztvQkFDSixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNmLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDdkQsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUNyRTt3QkFDRSxlQUFlLEVBQUU7NEJBQ2YsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsU0FBUyxFQUFFLElBQUk7eUJBQ2hCO3FCQUNGLENBQ0Y7aUJBQ0osQ0FDRixDQUNKO3FCQUNFLElBQUksQ0FDSCxNQUFNO3FCQUNILE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBcUUsRUFBRTtvQkFDaEYsSUFBSSxDQUFDLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRSxDQUFDO3dCQUN6RSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLElBQUksOEJBQThCLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUNyRixDQUFBO29CQUNILENBQUM7b0JBQ0QsSUFBSSxDQUFDLENBQUMsVUFBVSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDO3dCQUM3QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLElBQUksYUFBYSxDQUFDOzRCQUNoQixPQUFPLEVBQUUsNkJBQTZCLEdBQUcsQ0FBQyxDQUFDLFVBQVU7NEJBQ3JELFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDOzRCQUMxQyxLQUFLLEVBQUUsQ0FBQzt5QkFDVCxDQUFDLENBQ0gsQ0FBQTtvQkFDSCxDQUFDO29CQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO3dCQUN4QixHQUFHLENBQUM7d0JBQ0osS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJO3FCQUNkLENBQUMsQ0FBQyxDQUFBO2dCQUNMLENBQUMsQ0FBQyxFQUNKLFVBQVUsQ0FBQztvQkFDVCxTQUFTLEVBQUUsS0FBSztvQkFDaEIsTUFBTSxFQUFFLFVBQVU7b0JBQ2xCLFVBQVUsRUFBRSxXQUFXO29CQUN2QixTQUFTLEVBQUUsRUFBRTtvQkFDYixNQUFNLEVBQUUsSUFBSTtvQkFDWixLQUFLLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2lCQUNyQyxDQUFDLENBQ0gsQ0FDSixDQUFDO2dCQUNKLFFBQVE7Z0JBQ1IsT0FBTzthQUNSLENBQUE7WUFFRCxtREFBbUQ7WUFDbkQsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBRS9CLE9BQU8sQ0FBQyxDQUFBO1FBQ1YsQ0FBQyxDQUFDO0tBQ0gsQ0FBQTtBQUNILENBQUMsQ0FBQyxDQUFBO0FBRUYsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEdBQWtCO0lBQ2pELE9BQU8sVUFBVTtTQUNkLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNoRixDQUFDIn0=
|
package/dist/Store/Disk.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../src/Store/Disk.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAW,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"Disk.d.ts","sourceRoot":"","sources":["../../src/Store/Disk.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,KAAK,WAAW,EAAW,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAiKnI;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM;WAM5B,KAAK,SAAS,MAAM,OAAO,EAAE,OAAO,SAAS,WAAW,EAAE,CAAC,EAAE,CAAC;iBA6ErG;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,0DAEhE"}
|
package/dist/Store/Disk.js
CHANGED
|
@@ -7,8 +7,11 @@ import * as Console from "effect/Console";
|
|
|
7
7
|
import { flow } from "effect/Function";
|
|
8
8
|
import * as Semaphore from "effect/Semaphore";
|
|
9
9
|
import { annotateDb } from "../otel.js";
|
|
10
|
+
import { makeJsonDocumentCodec } from "./jsonDocument.js";
|
|
10
11
|
import { makeMemoryStoreInt } from "./Memory.js";
|
|
11
|
-
|
|
12
|
+
import { makeJsonLower } from "./utils.js";
|
|
13
|
+
function makeDiskStoreInt(prefix, idKey, namespace, dir, name, seed, defaultValues, schema, json) {
|
|
14
|
+
const codec = makeJsonDocumentCodec(schema);
|
|
12
15
|
return Effect.gen(function* () {
|
|
13
16
|
if (namespace !== "primary") {
|
|
14
17
|
dir = dir + "/" + namespace;
|
|
@@ -28,7 +31,7 @@ function makeDiskStoreInt(prefix, idKey, namespace, dir, name, seed, defaultValu
|
|
|
28
31
|
namespace,
|
|
29
32
|
entity: name,
|
|
30
33
|
extra: fileExtra
|
|
31
|
-
}), Effect.flatMap((x) => Effect.sync(() => JSON.parse(x)).pipe(annotateDb({
|
|
34
|
+
}), Effect.flatMap((x) => Effect.sync(() => JSON.parse(x).map((row) => codec.decode(row))).pipe(annotateDb({
|
|
32
35
|
operation: "read.parse",
|
|
33
36
|
system: "disk",
|
|
34
37
|
collection: name,
|
|
@@ -44,7 +47,7 @@ function makeDiskStoreInt(prefix, idKey, namespace, dir, name, seed, defaultValu
|
|
|
44
47
|
extra: fileExtra
|
|
45
48
|
})),
|
|
46
49
|
setRaw: (v) => Effect
|
|
47
|
-
.sync(() => JSON.stringify([...v], undefined, 2))
|
|
50
|
+
.sync(() => JSON.stringify([...v].map((row) => codec.encode(row)), undefined, 2))
|
|
48
51
|
.pipe(annotateDb({
|
|
49
52
|
operation: "stringify",
|
|
50
53
|
system: "disk",
|
|
@@ -77,7 +80,7 @@ function makeDiskStoreInt(prefix, idKey, namespace, dir, name, seed, defaultValu
|
|
|
77
80
|
const shouldSeed = !(fs.existsSync(file));
|
|
78
81
|
const store = yield* makeMemoryStoreInt(name, idKey, namespace, shouldSeed
|
|
79
82
|
? seed
|
|
80
|
-
: fsStore.get, defaultValues);
|
|
83
|
+
: fsStore.get, defaultValues, schema, json);
|
|
81
84
|
if (shouldSeed) {
|
|
82
85
|
yield* store.all.pipe(Effect.flatMap(fsStore.setRaw));
|
|
83
86
|
}
|
|
@@ -108,7 +111,9 @@ export function makeDiskStore({ prefix }, dir) {
|
|
|
108
111
|
}
|
|
109
112
|
return {
|
|
110
113
|
make: Effect.fnUntraced(function* (name, idKey, seed, config) {
|
|
111
|
-
const
|
|
114
|
+
const json = makeJsonLower(config);
|
|
115
|
+
const primary = yield* makeDiskStoreInt(prefix, idKey, "primary", dir, name, seed, config?.defaultValues, config?.schema, json)
|
|
116
|
+
.pipe(Effect.orDie);
|
|
112
117
|
const stores = new Map([["primary", primary]]);
|
|
113
118
|
const ctx = yield* Effect.context();
|
|
114
119
|
const semaphores = new Map();
|
|
@@ -127,7 +132,7 @@ export function makeDiskStore({ prefix }, dir) {
|
|
|
127
132
|
if (config?.allowNamespace && !config.allowNamespace(namespace)) {
|
|
128
133
|
throw new Error(`Namespace ${namespace} not allowed!`);
|
|
129
134
|
}
|
|
130
|
-
return makeDiskStoreInt(prefix, idKey, namespace, dir, name, seed, config?.defaultValues)
|
|
135
|
+
return makeDiskStoreInt(prefix, idKey, namespace, dir, name, seed, config?.defaultValues, config?.schema, json)
|
|
131
136
|
.pipe(Effect.orDie, Effect.provide(ctx), Effect.tap((store) => Effect.sync(() => stores.set(namespace, store))));
|
|
132
137
|
}));
|
|
133
138
|
const getStore = !config?.allowNamespace
|
|
@@ -152,4 +157,4 @@ export function makeDiskStore({ prefix }, dir) {
|
|
|
152
157
|
export function DiskStoreLayer(config, dir) {
|
|
153
158
|
return StoreMaker.toLayer(makeDiskStore(config, dir));
|
|
154
159
|
}
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9TdG9yZS9EaXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXBDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUVuQixPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBRTNDLE9BQU8sRUFBK0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ25JLE9BQU8sS0FBSyxPQUFPLE1BQU0sZ0JBQWdCLENBQUE7QUFDekMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RDLE9BQU8sS0FBSyxTQUFTLE1BQU0sa0JBQWtCLENBQUE7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDaEQsT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFMUQsU0FBUyxnQkFBZ0IsQ0FDdkIsTUFBYyxFQUNkLEtBQVksRUFDWixTQUFpQixFQUNqQixHQUFXLEVBQ1gsSUFBWSxFQUNaLElBQTZDLEVBQzdDLGFBQWdDLEVBQ2hDLE1BQXVDLEVBQ3ZDLElBQWdCO0lBR2hCLE1BQU0sS0FBSyxHQUFHLHFCQUFxQixDQUFVLE1BQU0sQ0FBQyxDQUFBO0lBQ3BELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDekIsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFBO1lBQzNCLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLE1BQU0sR0FBRyxJQUFJLEdBQUcsT0FBTyxDQUFBO1FBQ2hELE1BQU0sU0FBUyxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUE7UUFDNUMsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLEVBQUUsRUFBRTtpQkFDSixZQUFZLENBQUMsSUFBSSxDQUFDO2lCQUNsQixJQUFJLENBQ0gsVUFBVSxDQUFDO2dCQUNULFNBQVMsRUFBRSxlQUFlO2dCQUMxQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsU0FBUztnQkFDVCxNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsU0FBUzthQUNqQixDQUFDLEVBQ0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDN0UsVUFBVSxDQUFDO2dCQUNULFNBQVMsRUFBRSxZQUFZO2dCQUN2QixNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsU0FBUztnQkFDVCxNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsU0FBUzthQUNqQixDQUFDLENBQ0gsQ0FDRixFQUNELE1BQU0sQ0FBQyxLQUFLLEVBQ1osVUFBVSxDQUFDO2dCQUNULFNBQVMsRUFBRSxNQUFNO2dCQUNqQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsU0FBUztnQkFDVCxNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsU0FBUzthQUNqQixDQUFDLENBQ0g7WUFDSCxNQUFNLEVBQUUsQ0FBQyxDQUFlLEVBQUUsRUFBRSxDQUMxQixNQUFNO2lCQUNILElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ2hGLElBQUksQ0FDSCxVQUFVLENBQUM7Z0JBQ1QsU0FBUyxFQUFFLFdBQVc7Z0JBQ3RCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixTQUFTO2dCQUNULE1BQU0sRUFBRSxJQUFJO2dCQUNaLEtBQUssRUFBRSxTQUFTO2FBQ2pCLENBQUMsRUFDRixNQUFNO2lCQUNILE9BQU8sQ0FDTixDQUFDLElBQUksRUFBRSxFQUFFLENBQ1AsRUFBRTtpQkFDQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztpQkFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDZixTQUFTLEVBQUUsaUJBQWlCO2dCQUM1QixNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsU0FBUztnQkFDVCxNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO2FBQ3ZELENBQUMsQ0FBQyxDQUNSLEVBQ0gsVUFBVSxDQUFDO2dCQUNULFNBQVMsRUFBRSxPQUFPO2dCQUNsQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsU0FBUztnQkFDVCxNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsU0FBUzthQUNqQixDQUFDLENBQ0g7U0FDTixDQUFBO1FBRUQsaUVBQWlFO1FBRWpFLHFGQUFxRjtRQUNyRixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUNsQyxJQUFJLEVBQ0osTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDbEIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUV6QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsQ0FDckMsSUFBSSxFQUNKLEtBQUssRUFDTCxTQUFTLEVBQ1QsVUFBVTtnQkFDUixDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFDZixhQUFhLEVBQ2IsTUFBTSxFQUNOLElBQUksQ0FDTCxDQUFBO1lBQ0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1lBQ3ZELENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUMsQ0FBQyxDQUNILENBQUE7UUFFRCxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ25DLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDckMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDOUUsTUFBTSx1QkFBdUIsR0FBRyxXQUFXO2FBQ3hDLElBQUksQ0FDSCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFDOUIsTUFBTSxDQUFDLGVBQWUsRUFDdEIsTUFBTSxDQUFDLFVBQVUsQ0FDbEIsQ0FBQTtRQUVILE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixRQUFRLEVBQUUsSUFBSSxDQUNaLEtBQUssQ0FBQyxRQUFRLEVBQ2QsTUFBTSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUNwQztZQUNELFdBQVcsRUFBRSxJQUFJLENBQ2YsS0FBSyxDQUFDLFdBQVcsRUFDakIsTUFBTSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUNwQztZQUNELE9BQU8sRUFBRSxJQUFJLENBQ1gsS0FBSyxDQUFDLE9BQU8sRUFDYixNQUFNLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQ3BDO1lBQ0QsR0FBRyxFQUFFLElBQUksQ0FDUCxLQUFLLENBQUMsR0FBRyxFQUNULE1BQU0sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FDcEM7U0FDOEIsQ0FBQTtJQUNuQyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFpQixFQUFFLEdBQVc7SUFDbEUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUN0QixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbkIsQ0FBQztRQUNELE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFDL0IsSUFBWSxFQUNaLEtBQVksRUFDWixJQUE2QyxFQUM3QyxNQUE2QjtnQkFFN0IsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUNsQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FDckMsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsR0FBRyxFQUNILElBQUksRUFDSixJQUFJLEVBQ0osTUFBTSxFQUFFLGFBQWEsRUFDckIsTUFBTSxFQUFFLE1BQU0sRUFDZCxJQUFJLENBQ0w7cUJBQ0UsSUFBSSxDQUNILE1BQU0sQ0FBQyxLQUFLLENBQ2IsQ0FBQTtnQkFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBZ0MsQ0FBQyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQzdFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUssQ0FBQTtnQkFDdEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUE7Z0JBQ3pELE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUU7b0JBQzVCLElBQUksR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7b0JBQzVCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDVCxHQUFHLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTt3QkFDN0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUE7b0JBQ3pCLENBQUM7b0JBQ0QsT0FBTyxHQUFHLENBQUE7Z0JBQ1osQ0FBQyxDQUFBO2dCQUNELE1BQU0sV0FBVyxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQ3hDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQzlCLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO29CQUNsQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFBO29CQUN0QyxJQUFJLFFBQVE7d0JBQUUsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO29CQUM3QyxJQUFJLE1BQU0sRUFBRSxjQUFjLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7d0JBQ2hFLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxTQUFTLGVBQWUsQ0FBQyxDQUFBO29CQUN4RCxDQUFDO29CQUNELE9BQU8sZ0JBQWdCLENBQ3JCLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULEdBQUcsRUFDSCxJQUFJLEVBQ0osSUFBSSxFQUNKLE1BQU0sRUFBRSxhQUFhLEVBQ3JCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxDQUNMO3lCQUNFLElBQUksQ0FDSCxNQUFNLENBQUMsS0FBSyxFQUNaLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQ25CLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUN2RSxDQUFBO2dCQUNMLENBQUMsQ0FBQyxDQUNILENBQUE7Z0JBQ0gsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFNLEVBQUUsY0FBYztvQkFDdEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO29CQUN6QixDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUV2RSxNQUFNLENBQUMsR0FBMEI7b0JBQy9CLGFBQWEsRUFBRSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO29CQUN4RSxHQUFHLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQzNDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUNuRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDdkUsR0FBRyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7b0JBQ2pFLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUMzRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDekUsV0FBVyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7b0JBQ2pGLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2lCQUM1RSxDQUFBO2dCQUNELE9BQU8sQ0FBQyxDQUFBO1lBQ1YsQ0FBQyxDQUFDO1NBQ0gsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBcUIsRUFBRSxHQUFXO0lBQy9ELE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7QUFDdkQsQ0FBQyJ9
|