@xyo-network/module-abstract 2.51.10

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.
Files changed (151) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +13 -0
  3. package/dist/cjs/AbstractModule.js +253 -0
  4. package/dist/cjs/AbstractModule.js.map +1 -0
  5. package/dist/cjs/BaseEmitter.js +40 -0
  6. package/dist/cjs/BaseEmitter.js.map +1 -0
  7. package/dist/cjs/Error.js +21 -0
  8. package/dist/cjs/Error.js.map +1 -0
  9. package/dist/cjs/IdLogger.js +38 -0
  10. package/dist/cjs/IdLogger.js.map +1 -0
  11. package/dist/cjs/ModuleWrapper.js +226 -0
  12. package/dist/cjs/ModuleWrapper.js.map +1 -0
  13. package/dist/cjs/Query/QueryBoundWitnessBuilder.js +25 -0
  14. package/dist/cjs/Query/QueryBoundWitnessBuilder.js.map +1 -0
  15. package/dist/cjs/Query/QueryBoundWitnessValidator.js +38 -0
  16. package/dist/cjs/Query/QueryBoundWitnessValidator.js.map +1 -0
  17. package/dist/cjs/Query/QueryBoundWitnessWrapper.js +47 -0
  18. package/dist/cjs/Query/QueryBoundWitnessWrapper.js.map +1 -0
  19. package/dist/cjs/Query/index.js +7 -0
  20. package/dist/cjs/Query/index.js.map +1 -0
  21. package/dist/cjs/QueryValidator/ModuleConfigQueryValidator.js +65 -0
  22. package/dist/cjs/QueryValidator/ModuleConfigQueryValidator.js.map +1 -0
  23. package/dist/cjs/QueryValidator/QueryValidator.js +3 -0
  24. package/dist/cjs/QueryValidator/QueryValidator.js.map +1 -0
  25. package/dist/cjs/QueryValidator/SupportedQueryValidator.js +20 -0
  26. package/dist/cjs/QueryValidator/SupportedQueryValidator.js.map +1 -0
  27. package/dist/cjs/QueryValidator/index.js +7 -0
  28. package/dist/cjs/QueryValidator/index.js.map +1 -0
  29. package/dist/cjs/Resolver/CompositeModuleResolver.js +66 -0
  30. package/dist/cjs/Resolver/CompositeModuleResolver.js.map +1 -0
  31. package/dist/cjs/Resolver/ResolverEventEmitter.js +38 -0
  32. package/dist/cjs/Resolver/ResolverEventEmitter.js.map +1 -0
  33. package/dist/cjs/Resolver/SimpleModuleResolver.js +91 -0
  34. package/dist/cjs/Resolver/SimpleModuleResolver.js.map +1 -0
  35. package/dist/cjs/Resolver/index.js +12 -0
  36. package/dist/cjs/Resolver/index.js.map +1 -0
  37. package/dist/cjs/index.js +12 -0
  38. package/dist/cjs/index.js.map +1 -0
  39. package/dist/cjs/lib/duplicateModules.js +17 -0
  40. package/dist/cjs/lib/duplicateModules.js.map +1 -0
  41. package/dist/cjs/lib/index.js +6 -0
  42. package/dist/cjs/lib/index.js.map +1 -0
  43. package/dist/cjs/lib/serializable.js +38 -0
  44. package/dist/cjs/lib/serializable.js.map +1 -0
  45. package/dist/docs.json +70567 -0
  46. package/dist/esm/AbstractModule.js +241 -0
  47. package/dist/esm/AbstractModule.js.map +1 -0
  48. package/dist/esm/BaseEmitter.js +37 -0
  49. package/dist/esm/BaseEmitter.js.map +1 -0
  50. package/dist/esm/Error.js +19 -0
  51. package/dist/esm/Error.js.map +1 -0
  52. package/dist/esm/IdLogger.js +31 -0
  53. package/dist/esm/IdLogger.js.map +1 -0
  54. package/dist/esm/ModuleWrapper.js +209 -0
  55. package/dist/esm/ModuleWrapper.js.map +1 -0
  56. package/dist/esm/Query/QueryBoundWitnessBuilder.js +22 -0
  57. package/dist/esm/Query/QueryBoundWitnessBuilder.js.map +1 -0
  58. package/dist/esm/Query/QueryBoundWitnessValidator.js +35 -0
  59. package/dist/esm/Query/QueryBoundWitnessValidator.js.map +1 -0
  60. package/dist/esm/Query/QueryBoundWitnessWrapper.js +41 -0
  61. package/dist/esm/Query/QueryBoundWitnessWrapper.js.map +1 -0
  62. package/dist/esm/Query/index.js +4 -0
  63. package/dist/esm/Query/index.js.map +1 -0
  64. package/dist/esm/QueryValidator/ModuleConfigQueryValidator.js +62 -0
  65. package/dist/esm/QueryValidator/ModuleConfigQueryValidator.js.map +1 -0
  66. package/dist/esm/QueryValidator/QueryValidator.js +2 -0
  67. package/dist/esm/QueryValidator/QueryValidator.js.map +1 -0
  68. package/dist/esm/QueryValidator/SupportedQueryValidator.js +16 -0
  69. package/dist/esm/QueryValidator/SupportedQueryValidator.js.map +1 -0
  70. package/dist/esm/QueryValidator/index.js +4 -0
  71. package/dist/esm/QueryValidator/index.js.map +1 -0
  72. package/dist/esm/Resolver/CompositeModuleResolver.js +60 -0
  73. package/dist/esm/Resolver/CompositeModuleResolver.js.map +1 -0
  74. package/dist/esm/Resolver/ResolverEventEmitter.js +33 -0
  75. package/dist/esm/Resolver/ResolverEventEmitter.js.map +1 -0
  76. package/dist/esm/Resolver/SimpleModuleResolver.js +84 -0
  77. package/dist/esm/Resolver/SimpleModuleResolver.js.map +1 -0
  78. package/dist/esm/Resolver/index.js +8 -0
  79. package/dist/esm/Resolver/index.js.map +1 -0
  80. package/dist/esm/index.js +9 -0
  81. package/dist/esm/index.js.map +1 -0
  82. package/dist/esm/lib/duplicateModules.js +13 -0
  83. package/dist/esm/lib/duplicateModules.js.map +1 -0
  84. package/dist/esm/lib/index.js +3 -0
  85. package/dist/esm/lib/index.js.map +1 -0
  86. package/dist/esm/lib/serializable.js +32 -0
  87. package/dist/esm/lib/serializable.js.map +1 -0
  88. package/dist/types/AbstractModule.d.ts +42 -0
  89. package/dist/types/AbstractModule.d.ts.map +1 -0
  90. package/dist/types/BaseEmitter.d.ts +16 -0
  91. package/dist/types/BaseEmitter.d.ts.map +1 -0
  92. package/dist/types/Error.d.ts +16 -0
  93. package/dist/types/Error.d.ts.map +1 -0
  94. package/dist/types/IdLogger.d.ts +14 -0
  95. package/dist/types/IdLogger.d.ts.map +1 -0
  96. package/dist/types/ModuleWrapper.d.ts +73 -0
  97. package/dist/types/ModuleWrapper.d.ts.map +1 -0
  98. package/dist/types/Query/QueryBoundWitnessBuilder.d.ts +12 -0
  99. package/dist/types/Query/QueryBoundWitnessBuilder.d.ts.map +1 -0
  100. package/dist/types/Query/QueryBoundWitnessValidator.d.ts +10 -0
  101. package/dist/types/Query/QueryBoundWitnessValidator.d.ts.map +1 -0
  102. package/dist/types/Query/QueryBoundWitnessWrapper.d.ts +16 -0
  103. package/dist/types/Query/QueryBoundWitnessWrapper.d.ts.map +1 -0
  104. package/dist/types/Query/index.d.ts +4 -0
  105. package/dist/types/Query/index.d.ts.map +1 -0
  106. package/dist/types/QueryValidator/ModuleConfigQueryValidator.d.ts +15 -0
  107. package/dist/types/QueryValidator/ModuleConfigQueryValidator.d.ts.map +1 -0
  108. package/dist/types/QueryValidator/QueryValidator.d.ts +7 -0
  109. package/dist/types/QueryValidator/QueryValidator.d.ts.map +1 -0
  110. package/dist/types/QueryValidator/SupportedQueryValidator.d.ts +18 -0
  111. package/dist/types/QueryValidator/SupportedQueryValidator.d.ts.map +1 -0
  112. package/dist/types/QueryValidator/index.d.ts +4 -0
  113. package/dist/types/QueryValidator/index.d.ts.map +1 -0
  114. package/dist/types/Resolver/CompositeModuleResolver.d.ts +16 -0
  115. package/dist/types/Resolver/CompositeModuleResolver.d.ts.map +1 -0
  116. package/dist/types/Resolver/ResolverEventEmitter.d.ts +10 -0
  117. package/dist/types/Resolver/ResolverEventEmitter.d.ts.map +1 -0
  118. package/dist/types/Resolver/SimpleModuleResolver.d.ts +19 -0
  119. package/dist/types/Resolver/SimpleModuleResolver.d.ts.map +1 -0
  120. package/dist/types/Resolver/index.d.ts +7 -0
  121. package/dist/types/Resolver/index.d.ts.map +1 -0
  122. package/dist/types/index.d.ts +9 -0
  123. package/dist/types/index.d.ts.map +1 -0
  124. package/dist/types/lib/duplicateModules.d.ts +32 -0
  125. package/dist/types/lib/duplicateModules.d.ts.map +1 -0
  126. package/dist/types/lib/index.d.ts +3 -0
  127. package/dist/types/lib/index.d.ts.map +1 -0
  128. package/dist/types/lib/serializable.d.ts +3 -0
  129. package/dist/types/lib/serializable.d.ts.map +1 -0
  130. package/package.json +73 -0
  131. package/src/AbstractModule.ts +307 -0
  132. package/src/BaseEmitter.ts +47 -0
  133. package/src/Error.ts +25 -0
  134. package/src/IdLogger.ts +37 -0
  135. package/src/ModuleWrapper.ts +330 -0
  136. package/src/Query/QueryBoundWitnessBuilder.ts +29 -0
  137. package/src/Query/QueryBoundWitnessValidator.ts +41 -0
  138. package/src/Query/QueryBoundWitnessWrapper.ts +55 -0
  139. package/src/Query/index.ts +3 -0
  140. package/src/QueryValidator/ModuleConfigQueryValidator.ts +67 -0
  141. package/src/QueryValidator/QueryValidator.ts +8 -0
  142. package/src/QueryValidator/SupportedQueryValidator.ts +22 -0
  143. package/src/QueryValidator/index.ts +3 -0
  144. package/src/Resolver/CompositeModuleResolver.ts +70 -0
  145. package/src/Resolver/ResolverEventEmitter.ts +46 -0
  146. package/src/Resolver/SimpleModuleResolver.ts +118 -0
  147. package/src/Resolver/index.ts +8 -0
  148. package/src/index.ts +8 -0
  149. package/src/lib/duplicateModules.ts +14 -0
  150. package/src/lib/index.ts +2 -0
  151. package/src/lib/serializable.ts +41 -0
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimpleModuleResolver = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const compact_1 = tslib_1.__importDefault(require("lodash/compact"));
6
+ const flatten_1 = tslib_1.__importDefault(require("lodash/flatten"));
7
+ //This class is now package private (not exported from index.ts)
8
+ class SimpleModuleResolver {
9
+ constructor() {
10
+ this.addressToName = {};
11
+ this.modules = {};
12
+ }
13
+ get isModuleResolver() {
14
+ return true;
15
+ }
16
+ add(module) {
17
+ if (Array.isArray(module)) {
18
+ module.forEach((module) => this.addSingleModule(module));
19
+ }
20
+ else {
21
+ this.addSingleModule(module);
22
+ }
23
+ return this;
24
+ }
25
+ addResolver(_resolver) {
26
+ throw 'Adding resolvers not supported';
27
+ }
28
+ remove(address) {
29
+ if (Array.isArray(address)) {
30
+ address.forEach((address) => this.removeSingleModule(address));
31
+ }
32
+ else {
33
+ this.removeSingleModule(address);
34
+ }
35
+ return this;
36
+ }
37
+ removeResolver(_resolver) {
38
+ throw 'Removing resolvers not supported';
39
+ }
40
+ resolve(filter) {
41
+ const filteredByName = this.resolveByName(Object.values(this.modules), filter === null || filter === void 0 ? void 0 : filter.name);
42
+ const filteredByAddress = (filter === null || filter === void 0 ? void 0 : filter.address)
43
+ ? this.resolveByAddress(filteredByName, filter === null || filter === void 0 ? void 0 : filter.address)
44
+ : filteredByName;
45
+ const filteredByQuery = (filter === null || filter === void 0 ? void 0 : filter.query)
46
+ ? this.resolveByQuery(filteredByAddress, filter === null || filter === void 0 ? void 0 : filter.query)
47
+ : filteredByAddress;
48
+ return filteredByQuery;
49
+ }
50
+ addSingleModule(module) {
51
+ if (module) {
52
+ this.modules[module.address] = module;
53
+ }
54
+ }
55
+ removeSingleModule(address) {
56
+ if (address) {
57
+ if (this.modules[address]) {
58
+ delete this.modules[address];
59
+ const name = this.addressToName[address];
60
+ if (name) {
61
+ delete this.addressToName[address];
62
+ }
63
+ }
64
+ }
65
+ }
66
+ resolveByAddress(modules, address) {
67
+ return address
68
+ ? (0, compact_1.default)((0, flatten_1.default)(address === null || address === void 0 ? void 0 : address.map((address) => {
69
+ return modules.filter((module) => module.address === address);
70
+ })))
71
+ : modules;
72
+ }
73
+ resolveByName(modules, name) {
74
+ if (name) {
75
+ return (0, compact_1.default)(name.map((name) => modules.filter((module) => module.config.name === name)).flat());
76
+ }
77
+ return modules;
78
+ }
79
+ resolveByQuery(modules, query) {
80
+ return query
81
+ ? (0, compact_1.default)(modules.filter((module) => query === null || query === void 0 ? void 0 : query.reduce((supported, queryList) => {
82
+ return (queryList.reduce((supported, query) => {
83
+ const queryable = module.queries.includes(query);
84
+ return supported && queryable;
85
+ }, true) || supported);
86
+ }, false)))
87
+ : modules;
88
+ }
89
+ }
90
+ exports.SimpleModuleResolver = SimpleModuleResolver;
91
+ //# sourceMappingURL=SimpleModuleResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleModuleResolver.js","sourceRoot":"","sources":["../../../src/Resolver/SimpleModuleResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimpleModuleResolver = exports.CompositeModuleResolver = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const CompositeModuleResolver_1 = require("./CompositeModuleResolver");
6
+ Object.defineProperty(exports, "CompositeModuleResolver", { enumerable: true, get: function () { return CompositeModuleResolver_1.CompositeModuleResolver; } });
7
+ tslib_1.__exportStar(require("./ResolverEventEmitter"), exports);
8
+ /** @deprecated use ModuleResolver */
9
+ class SimpleModuleResolver extends CompositeModuleResolver_1.CompositeModuleResolver {
10
+ }
11
+ exports.SimpleModuleResolver = SimpleModuleResolver;
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Resolver/index.ts"],"names":[],"mappings":";;;;AAAA,uEAAmE;AAO1D,wGAPA,iDAAuB,OAOA;AANhC,iEAAsC;AAEtC,qCAAqC;AACrC,MAAM,oBAAqB,SAAQ,iDAAuB;CAAG;AAG3B,oDAAoB"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./AbstractModule"), exports);
5
+ tslib_1.__exportStar(require("./BaseEmitter"), exports);
6
+ tslib_1.__exportStar(require("./Error"), exports);
7
+ tslib_1.__exportStar(require("./lib"), exports);
8
+ tslib_1.__exportStar(require("./ModuleWrapper"), exports);
9
+ tslib_1.__exportStar(require("./Query"), exports);
10
+ tslib_1.__exportStar(require("./QueryValidator"), exports);
11
+ tslib_1.__exportStar(require("./Resolver"), exports);
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAgC;AAChC,wDAA6B;AAC7B,kDAAuB;AACvB,gDAAqB;AACrB,0DAA+B;AAC/B,kDAAuB;AACvB,2DAAgC;AAChC,qDAA0B"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.duplicateModules = void 0;
4
+ /**
5
+ * Used to filter duplicates from an array of modules
6
+ * @example: modulesArray.filter(duplicateModules)
7
+ * @param value Current Module
8
+ * @param index Current Module's index
9
+ * @param array Module Array
10
+ * @returns True if the Module's address is the first occurrence of
11
+ * that address in the array, false otherwise
12
+ */
13
+ const duplicateModules = (value, index, array) => {
14
+ return array.findIndex((v) => v.address === value.address) === index;
15
+ };
16
+ exports.duplicateModules = duplicateModules;
17
+ //# sourceMappingURL=duplicateModules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplicateModules.js","sourceRoot":"","sources":["../../../src/lib/duplicateModules.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;GAQG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,KAAa,EAAE,KAAe,EAAmB,EAAE;IACjG,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,CAAA;AACtE,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./duplicateModules"), exports);
5
+ tslib_1.__exportStar(require("./serializable"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;AAAA,6DAAkC;AAClC,yDAA8B"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ // Inspired by https://stackoverflow.com/a/49079549/2803259
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.serializableField = exports.serializable = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const every_1 = tslib_1.__importDefault(require("lodash/every"));
7
+ const isArray_1 = tslib_1.__importDefault(require("lodash/isArray"));
8
+ const isBoolean_1 = tslib_1.__importDefault(require("lodash/isBoolean"));
9
+ const isNull_1 = tslib_1.__importDefault(require("lodash/isNull"));
10
+ const isNumber_1 = tslib_1.__importDefault(require("lodash/isNumber"));
11
+ const isPlainObject_1 = tslib_1.__importDefault(require("lodash/isPlainObject"));
12
+ const isString_1 = tslib_1.__importDefault(require("lodash/isString"));
13
+ const isUndefined_1 = tslib_1.__importDefault(require("lodash/isUndefined"));
14
+ const overSome_1 = tslib_1.__importDefault(require("lodash/overSome"));
15
+ const JSONPrimitiveChecks = [isUndefined_1.default, isNull_1.default, isBoolean_1.default, isNumber_1.default, isString_1.default];
16
+ const JSONComplexChecks = [isPlainObject_1.default, isArray_1.default];
17
+ const serializable = (field, depth) => {
18
+ let depthExceeded = false;
19
+ const decrementDepth = () => (depth ? depth-- : undefined);
20
+ const recursiveSerializable = (field) => {
21
+ if (depth !== undefined && depth < 1) {
22
+ depthExceeded = true;
23
+ return false;
24
+ }
25
+ // decrement during every recursion
26
+ decrementDepth();
27
+ const nestedSerializable = (field) => (0, overSome_1.default)(JSONComplexChecks)(field) && (0, every_1.default)(field, recursiveSerializable);
28
+ return (0, overSome_1.default)([...JSONPrimitiveChecks, nestedSerializable])(field);
29
+ };
30
+ const valid = recursiveSerializable(field);
31
+ return depthExceeded ? null : valid;
32
+ };
33
+ exports.serializable = serializable;
34
+ const serializableField = (field) => {
35
+ return (0, overSome_1.default)([...JSONPrimitiveChecks, ...JSONComplexChecks])(field);
36
+ };
37
+ exports.serializableField = serializableField;
38
+ //# sourceMappingURL=serializable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializable.js","sourceRoot":"","sources":["../../../src/lib/serializable.ts"],"names":[],"mappings":";AAAA,2DAA2D;;;;AAE3D,iEAAgC;AAChC,qEAAoC;AACpC,yEAAwC;AACxC,mEAAkC;AAClC,uEAAsC;AACtC,iFAAgD;AAChD,uEAAsC;AACtC,6EAA4C;AAC5C,uEAAsC;AAEtC,MAAM,mBAAmB,GAAG,CAAC,qBAAW,EAAE,gBAAM,EAAE,mBAAS,EAAE,kBAAQ,EAAE,kBAAQ,CAAC,CAAA;AAChF,MAAM,iBAAiB,GAAG,CAAC,uBAAa,EAAE,iBAAO,CAAC,CAAA;AAE3C,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,KAAc,EAAkB,EAAE;IAC7E,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAE1D,MAAM,qBAAqB,GAAG,CAAC,KAAc,EAAE,EAAE;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE;YACpC,aAAa,GAAG,IAAI,CAAA;YACpB,OAAO,KAAK,CAAA;SACb;QAED,mCAAmC;QACnC,cAAc,EAAE,CAAA;QAEhB,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAW,EAAE,CAAC,IAAA,kBAAQ,EAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,IAAI,IAAA,eAAK,EAAC,KAAe,EAAE,qBAAqB,CAAC,CAAA;QAE3I,OAAO,IAAA,kBAAQ,EAAC,CAAC,GAAG,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACtE,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAE1C,OAAO,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;AACrC,CAAC,CAAA;AArBY,QAAA,YAAY,gBAqBxB;AAEM,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAE,EAAE;IAClD,OAAO,IAAA,kBAAQ,EAAC,CAAC,GAAG,mBAAmB,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACxE,CAAC,CAAA;AAFY,QAAA,iBAAiB,qBAE7B"}