@fncts/schema 0.0.23 → 0.0.25
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/AST.d.ts +60 -29
- package/ASTAnnotationMap.d.ts +4 -1
- package/LICENSE +26 -0
- package/ParseError/ParseError.d.ts +28 -13
- package/_cjs/AST.cjs +1096 -1087
- package/_cjs/AST.cjs.map +1 -1
- package/_cjs/ASTAnnotation.cjs +114 -83
- package/_cjs/ASTAnnotation.cjs.map +1 -1
- package/_cjs/ASTAnnotationMap.cjs +43 -32
- package/_cjs/ASTAnnotationMap.cjs.map +1 -1
- package/_cjs/Eq.cjs +113 -145
- package/_cjs/Eq.cjs.map +1 -1
- package/_cjs/Gen.cjs +131 -167
- package/_cjs/Gen.cjs.map +1 -1
- package/_cjs/Guard.cjs +167 -267
- package/_cjs/Guard.cjs.map +1 -1
- package/_cjs/InvalidInterpretationError.cjs +9 -15
- package/_cjs/InvalidInterpretationError.cjs.map +1 -1
- package/_cjs/ParseError/ParseError.cjs +285 -209
- package/_cjs/ParseError/ParseError.cjs.map +1 -1
- package/_cjs/ParseError/ParseErrorFormatter.cjs +0 -2
- package/_cjs/ParseError/PathFormatter.cjs +55 -87
- package/_cjs/ParseError/PathFormatter.cjs.map +1 -1
- package/_cjs/ParseError/TreeFormatter.cjs +70 -102
- package/_cjs/ParseError/TreeFormatter.cjs.map +1 -1
- package/_cjs/ParseError.cjs +35 -50
- package/_cjs/ParseResult.cjs +15 -15
- package/_cjs/ParseResult.cjs.map +1 -1
- package/_cjs/Parser/api.cjs +54 -50
- package/_cjs/Parser/api.cjs.map +1 -1
- package/_cjs/Parser/definition.cjs +17 -16
- package/_cjs/Parser/definition.cjs.map +1 -1
- package/_cjs/Parser/interpreter.cjs +276 -358
- package/_cjs/Parser/interpreter.cjs.map +1 -1
- package/_cjs/Parser.cjs +12 -39
- package/_cjs/Schema/api/conc.cjs +64 -59
- package/_cjs/Schema/api/conc.cjs.map +1 -1
- package/_cjs/Schema/api/either.cjs +73 -72
- package/_cjs/Schema/api/either.cjs.map +1 -1
- package/_cjs/Schema/api/hashMap.cjs +85 -85
- package/_cjs/Schema/api/hashMap.cjs.map +1 -1
- package/_cjs/Schema/api/hashSet.cjs +75 -69
- package/_cjs/Schema/api/hashSet.cjs.map +1 -1
- package/_cjs/Schema/api/list.cjs +74 -64
- package/_cjs/Schema/api/list.cjs.map +1 -1
- package/_cjs/Schema/api/map.cjs +81 -83
- package/_cjs/Schema/api/map.cjs.map +1 -1
- package/_cjs/Schema/api/maybe.cjs +56 -49
- package/_cjs/Schema/api/maybe.cjs.map +1 -1
- package/_cjs/Schema/api/set.cjs +68 -61
- package/_cjs/Schema/api/set.cjs.map +1 -1
- package/_cjs/Schema/api.cjs +332 -350
- package/_cjs/Schema/api.cjs.map +1 -1
- package/_cjs/Schema/definition.cjs +28 -27
- package/_cjs/Schema/definition.cjs.map +1 -1
- package/_cjs/Schema/derivations.cjs +85 -100
- package/_cjs/Schema/derivations.cjs.map +1 -1
- package/_cjs/Schema.cjs +95 -127
- package/_cjs/Show.cjs +91 -151
- package/_cjs/Show.cjs.map +1 -1
- package/_cjs/chunk.cjs +28 -0
- package/_cjs/global.cjs +0 -2
- package/_cjs/index.cjs +0 -2
- package/_cjs/utils.cjs +41 -46
- package/_cjs/utils.cjs.map +1 -1
- package/_mjs/AST.mjs +1007 -1031
- package/_mjs/AST.mjs.map +1 -1
- package/_mjs/ASTAnnotation.mjs +77 -71
- package/_mjs/ASTAnnotation.mjs.map +1 -1
- package/_mjs/ASTAnnotationMap.mjs +36 -25
- package/_mjs/ASTAnnotationMap.mjs.map +1 -1
- package/_mjs/Eq.mjs +101 -134
- package/_mjs/Eq.mjs.map +1 -1
- package/_mjs/Gen.mjs +117 -157
- package/_mjs/Gen.mjs.map +1 -1
- package/_mjs/Guard.mjs +154 -257
- package/_mjs/Guard.mjs.map +1 -1
- package/_mjs/InvalidInterpretationError.mjs +8 -9
- package/_mjs/InvalidInterpretationError.mjs.map +1 -1
- package/_mjs/ParseError/ParseError.mjs +270 -190
- package/_mjs/ParseError/ParseError.mjs.map +1 -1
- package/_mjs/ParseError/ParseErrorFormatter.mjs +0 -2
- package/_mjs/ParseError/PathFormatter.mjs +51 -80
- package/_mjs/ParseError/PathFormatter.mjs.map +1 -1
- package/_mjs/ParseError/TreeFormatter.mjs +62 -94
- package/_mjs/ParseError/TreeFormatter.mjs.map +1 -1
- package/_mjs/ParseError.mjs +5 -6
- package/_mjs/ParseResult.mjs +13 -9
- package/_mjs/ParseResult.mjs.map +1 -1
- package/_mjs/Parser/api.mjs +43 -39
- package/_mjs/Parser/api.mjs.map +1 -1
- package/_mjs/Parser/definition.mjs +12 -8
- package/_mjs/Parser/definition.mjs.map +1 -1
- package/_mjs/Parser/interpreter.mjs +262 -348
- package/_mjs/Parser/interpreter.mjs.map +1 -1
- package/_mjs/Parser.mjs +4 -5
- package/_mjs/Schema/api/conc.mjs +41 -45
- package/_mjs/Schema/api/conc.mjs.map +1 -1
- package/_mjs/Schema/api/either.mjs +55 -61
- package/_mjs/Schema/api/either.mjs.map +1 -1
- package/_mjs/Schema/api/hashMap.mjs +61 -71
- package/_mjs/Schema/api/hashMap.mjs.map +1 -1
- package/_mjs/Schema/api/hashSet.mjs +53 -56
- package/_mjs/Schema/api/hashSet.mjs.map +1 -1
- package/_mjs/Schema/api/list.mjs +50 -51
- package/_mjs/Schema/api/list.mjs.map +1 -1
- package/_mjs/Schema/api/map.mjs +59 -69
- package/_mjs/Schema/api/map.mjs.map +1 -1
- package/_mjs/Schema/api/maybe.mjs +34 -36
- package/_mjs/Schema/api/maybe.mjs.map +1 -1
- package/_mjs/Schema/api/set.mjs +47 -48
- package/_mjs/Schema/api/set.mjs.map +1 -1
- package/_mjs/Schema/api.mjs +304 -346
- package/_mjs/Schema/api.mjs.map +1 -1
- package/_mjs/Schema/definition.mjs +21 -18
- package/_mjs/Schema/definition.mjs.map +1 -1
- package/_mjs/Schema/derivations.mjs +71 -90
- package/_mjs/Schema/derivations.mjs.map +1 -1
- package/_mjs/Schema.mjs +12 -15
- package/_mjs/Show.mjs +79 -139
- package/_mjs/Show.mjs.map +1 -1
- package/_mjs/global.mjs +0 -2
- package/_mjs/index.mjs +0 -2
- package/_mjs/utils.mjs +35 -37
- package/_mjs/utils.mjs.map +1 -1
- package/_src/AST.ts +226 -28
- package/_src/ASTAnnotationMap.ts +14 -1
- package/_src/ParseError/ParseError.ts +128 -13
- package/_src/Schema/api/hashMap.ts +1 -1
- package/_src/Schema/api/hashSet.ts +1 -1
- package/_src/Schema/api/list.ts +3 -1
- package/_src/Schema/api/map.ts +1 -1
- package/_src/Schema/api/set.ts +1 -1
- package/package.json +7 -3
- package/_cjs/ParseError/ParseErrorFormatter.cjs.map +0 -1
- package/_cjs/ParseError.cjs.map +0 -1
- package/_cjs/Parser.cjs.map +0 -1
- package/_cjs/Schema.cjs.map +0 -1
- package/_cjs/global.cjs.map +0 -1
- package/_cjs/index.cjs.map +0 -1
- package/_mjs/ParseError/ParseErrorFormatter.mjs.map +0 -1
- package/_mjs/ParseError.mjs.map +0 -1
- package/_mjs/Parser.mjs.map +0 -1
- package/_mjs/Schema.mjs.map +0 -1
- package/_mjs/global.mjs.map +0 -1
- package/_mjs/index.mjs.map +0 -1
package/_cjs/Parser/api.cjs
CHANGED
|
@@ -1,70 +1,74 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
var _interpreter = /*#__PURE__*/require("./interpreter.cjs");
|
|
17
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
18
|
-
const encode = exports.encode = encode_1;
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_chunk = require("../chunk.cjs");
|
|
3
|
+
const require_Parser_interpreter = require("./interpreter.cjs");
|
|
4
|
+
let _fncts_schema_AST = require("@fncts/schema/AST");
|
|
5
|
+
_fncts_schema_AST = require_chunk.__toESM(_fncts_schema_AST, 1);
|
|
6
|
+
let _fncts_base_data_function_api = require("@fncts/base/data/function/api");
|
|
7
|
+
_fncts_base_data_function_api = require_chunk.__toESM(_fncts_base_data_function_api, 1);
|
|
8
|
+
let _fncts_base_data_Either_api = require("@fncts/base/data/Either/api");
|
|
9
|
+
_fncts_base_data_Either_api = require_chunk.__toESM(_fncts_base_data_Either_api, 1);
|
|
10
|
+
let _fncts_schema_ParseError_TreeFormatter = require("@fncts/schema/ParseError/TreeFormatter");
|
|
11
|
+
_fncts_schema_ParseError_TreeFormatter = require_chunk.__toESM(_fncts_schema_ParseError_TreeFormatter, 1);
|
|
12
|
+
let _fncts_base_data_Either_destructors = require("@fncts/base/data/Either/destructors");
|
|
13
|
+
_fncts_base_data_Either_destructors = require_chunk.__toESM(_fncts_base_data_Either_destructors, 1);
|
|
14
|
+
//#region build/esm/Parser/api.js
|
|
15
|
+
const encode = encode_1;
|
|
19
16
|
/**
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
* @tsplus getter fncts.schema.Schema decode
|
|
18
|
+
* @tsplus getter fncts.schema.Parser decode
|
|
19
|
+
*/
|
|
23
20
|
function decode(schema) {
|
|
24
|
-
|
|
21
|
+
return require_Parser_interpreter.parserFor(schema.ast, true);
|
|
25
22
|
}
|
|
26
23
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
* @tsplus getter fncts.schema.Schema decodeMaybe
|
|
25
|
+
* @tsplus getter fncts.schema.Parser decodeMaybe
|
|
26
|
+
*/
|
|
30
27
|
function decodeMaybe(schema) {
|
|
31
|
-
|
|
28
|
+
return parseMaybe(_fncts_schema_AST.getTo(schema.ast));
|
|
32
29
|
}
|
|
33
30
|
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
* @tsplus getter fncts.schema.Schema encode
|
|
32
|
+
* @tsplus getter fncts.schema.Parser encode
|
|
33
|
+
*/
|
|
37
34
|
function encode_1(schema) {
|
|
38
|
-
|
|
35
|
+
return require_Parser_interpreter.parserFor(schema.ast, false);
|
|
39
36
|
}
|
|
40
37
|
/**
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
* @tsplus getter fncts.schema.Schema encodeMaybe
|
|
39
|
+
* @tsplus getter fncts.schema.Parser encodeMaybe
|
|
40
|
+
*/
|
|
44
41
|
function encodeMaybe(schema) {
|
|
45
|
-
|
|
42
|
+
return (input, options) => _fncts_base_data_Either_api.toMaybe(encode_1(schema)(input, options));
|
|
46
43
|
}
|
|
47
44
|
function parseMaybe(ast) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
const parse = require_Parser_interpreter.parserFor(ast, true);
|
|
46
|
+
return (input, options) => {
|
|
47
|
+
return _fncts_base_data_Either_api.toMaybe(parse(input, options));
|
|
48
|
+
};
|
|
52
49
|
}
|
|
53
50
|
function parseOrThrow(ast) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
const parser = require_Parser_interpreter.parserFor(ast, true);
|
|
52
|
+
return (input, options) => {
|
|
53
|
+
return _fncts_base_data_Either_destructors.match((failure) => {
|
|
54
|
+
throw new Error(_fncts_schema_ParseError_TreeFormatter.format(failure));
|
|
55
|
+
}, _fncts_base_data_function_api.identity)(parser(input, options));
|
|
56
|
+
};
|
|
60
57
|
}
|
|
61
58
|
/**
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
* @tsplus getter fncts.schema.Schema asserts
|
|
60
|
+
* @tsplus getter fncts.schema.Parser asserts
|
|
61
|
+
*/
|
|
65
62
|
function asserts(schema) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
return (input, options) => {
|
|
64
|
+
parseOrThrow(_fncts_schema_AST.getTo(schema.ast))(input, options);
|
|
65
|
+
};
|
|
69
66
|
}
|
|
67
|
+
//#endregion
|
|
68
|
+
exports.asserts = asserts;
|
|
69
|
+
exports.decode = decode;
|
|
70
|
+
exports.decodeMaybe = decodeMaybe;
|
|
71
|
+
exports.encode = encode;
|
|
72
|
+
exports.encodeMaybe = encodeMaybe;
|
|
73
|
+
|
|
70
74
|
//# sourceMappingURL=api.cjs.map
|
package/_cjs/Parser/api.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.cjs","names":["
|
|
1
|
+
{"version":3,"file":"api.cjs","names":["parserFor","tsplus_module_1","tsplus_module_2","tsplus_module_5","tsplus_module_3","tsplus_module_4"],"sources":["../../esm/Parser/api.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/schema/AST\";\nimport * as tsplus_module_2 from \"@fncts/base/data/Either/api\";\nimport * as tsplus_module_3 from \"@fncts/schema/ParseError/TreeFormatter\";\nimport * as tsplus_module_4 from \"@fncts/base/data/function/api\";\nimport * as tsplus_module_5 from \"@fncts/base/data/Either/destructors\";\nexport const encode = encode_1;\nimport { parserFor } from \"./interpreter.js\";\n/**\n * @tsplus getter fncts.schema.Schema decode\n * @tsplus getter fncts.schema.Parser decode\n */\nexport function decode(schema) {\n return parserFor(schema.ast, true);\n}\n/**\n * @tsplus getter fncts.schema.Schema decodeMaybe\n * @tsplus getter fncts.schema.Parser decodeMaybe\n */\nexport function decodeMaybe(schema) {\n return parseMaybe(tsplus_module_1.getTo(schema.ast));\n}\n/**\n * @tsplus getter fncts.schema.Schema encode\n * @tsplus getter fncts.schema.Parser encode\n */\nfunction encode_1(schema) {\n return parserFor(schema.ast, false);\n}\n/**\n * @tsplus getter fncts.schema.Schema encodeMaybe\n * @tsplus getter fncts.schema.Parser encodeMaybe\n */\nexport function encodeMaybe(schema) {\n return (input, options) => tsplus_module_2.toMaybe(encode_1(schema)(input, options));\n}\nfunction parseMaybe(ast) {\n const parse = parserFor(ast, true);\n return (input, options) => {\n return tsplus_module_2.toMaybe(parse(input, options));\n };\n}\nfunction parseOrThrow(ast) {\n const parser = parserFor(ast, true);\n return (input, options) => {\n return tsplus_module_5.match((failure) => {\n throw new Error(tsplus_module_3.format(failure));\n }, tsplus_module_4.identity)(parser(input, options));\n };\n}\n/**\n * @tsplus getter fncts.schema.Schema asserts\n * @tsplus getter fncts.schema.Parser asserts\n */\nexport function asserts(schema) {\n return (input, options) => {\n parseOrThrow(tsplus_module_1.getTo(schema.ast))(input, options);\n };\n}\n//# sourceMappingURL=api.js.map"],"mappings":";;;;;;;;;;;;;;AAKA,MAAa,SAAS;;;;;AAMtB,SAAgB,OAAO,QAAQ;AAC3B,QAAOA,2BAAAA,UAAU,OAAO,KAAK,KAAK;;;;;;AAMtC,SAAgB,YAAY,QAAQ;AAChC,QAAO,WAAWC,kBAAgB,MAAM,OAAO,IAAI,CAAC;;;;;;AAMxD,SAAS,SAAS,QAAQ;AACtB,QAAOD,2BAAAA,UAAU,OAAO,KAAK,MAAM;;;;;;AAMvC,SAAgB,YAAY,QAAQ;AAChC,SAAQ,OAAO,YAAYE,4BAAgB,QAAQ,SAAS,OAAO,CAAC,OAAO,QAAQ,CAAC;;AAExF,SAAS,WAAW,KAAK;CACrB,MAAM,QAAQF,2BAAAA,UAAU,KAAK,KAAK;AAClC,SAAQ,OAAO,YAAY;AACvB,SAAOE,4BAAgB,QAAQ,MAAM,OAAO,QAAQ,CAAC;;;AAG7D,SAAS,aAAa,KAAK;CACvB,MAAM,SAASF,2BAAAA,UAAU,KAAK,KAAK;AACnC,SAAQ,OAAO,YAAY;AACvB,SAAOG,oCAAgB,OAAO,YAAY;AACtC,SAAM,IAAI,MAAMC,uCAAgB,OAAO,QAAQ,CAAC;KACjDC,8BAAgB,SAAS,CAAC,OAAO,OAAO,QAAQ,CAAC;;;;;;;AAO5D,SAAgB,QAAQ,QAAQ;AAC5B,SAAQ,OAAO,YAAY;AACvB,eAAaJ,kBAAgB,MAAM,OAAO,IAAI,CAAC,CAAC,OAAO,QAAQ"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/schema/ParseResult"));
|
|
9
|
-
var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/schema/ParseError/ParseError"));
|
|
10
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_chunk = require("../chunk.cjs");
|
|
3
|
+
let _fncts_schema_ParseResult = require("@fncts/schema/ParseResult");
|
|
4
|
+
_fncts_schema_ParseResult = require_chunk.__toESM(_fncts_schema_ParseResult, 1);
|
|
5
|
+
let _fncts_schema_ParseError_ParseError = require("@fncts/schema/ParseError/ParseError");
|
|
6
|
+
_fncts_schema_ParseError_ParseError = require_chunk.__toESM(_fncts_schema_ParseError_ParseError, 1);
|
|
7
|
+
//#region build/esm/Parser/definition.js
|
|
11
8
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
* @tsplus static fncts.schema.ParserOps make
|
|
10
|
+
*/
|
|
14
11
|
function make(parse) {
|
|
15
|
-
|
|
12
|
+
return parse;
|
|
16
13
|
}
|
|
17
14
|
/**
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
* @tsplus static fncts.schema.ParserOps fromRefinement
|
|
16
|
+
*/
|
|
20
17
|
function fromRefinement(ast, refinement) {
|
|
21
|
-
|
|
18
|
+
return (u) => refinement(u) ? _fncts_schema_ParseResult.succeed(u) : _fncts_schema_ParseResult.fail(_fncts_schema_ParseError_ParseError.typeError(ast, u));
|
|
22
19
|
}
|
|
20
|
+
//#endregion
|
|
21
|
+
exports.fromRefinement = fromRefinement;
|
|
22
|
+
exports.make = make;
|
|
23
|
+
|
|
23
24
|
//# sourceMappingURL=definition.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.cjs","names":["
|
|
1
|
+
{"version":3,"file":"definition.cjs","names":["tsplus_module_1","tsplus_module_2"],"sources":["../../esm/Parser/definition.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/schema/ParseResult\";\nimport * as tsplus_module_2 from \"@fncts/schema/ParseError/ParseError\";\n/**\n * @tsplus static fncts.schema.ParserOps make\n */\nexport function make(parse) {\n return parse;\n}\n/**\n * @tsplus static fncts.schema.ParserOps fromRefinement\n */\nexport function fromRefinement(ast, refinement) {\n return (u) => (refinement(u) ? tsplus_module_1.succeed(u) : tsplus_module_1.fail(tsplus_module_2.typeError(ast, u)));\n}\n//# sourceMappingURL=definition.js.map"],"mappings":";;;;;;;;;;AAKA,SAAgB,KAAK,OAAO;AACxB,QAAO;;;;;AAKX,SAAgB,eAAe,KAAK,YAAY;AAC5C,SAAQ,MAAO,WAAW,EAAE,GAAGA,0BAAgB,QAAQ,EAAE,GAAGA,0BAAgB,KAAKC,oCAAgB,UAAU,KAAK,EAAE,CAAC"}
|