@accordproject/template-engine 1.0.19 → 1.0.23

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 (83) hide show
  1. package/dist/Common.js +9 -9
  2. package/dist/Common.js.map +1 -1
  3. package/dist/TemplateMarkInterpreter.js +113 -151
  4. package/dist/TemplateMarkInterpreter.js.map +1 -1
  5. package/dist/TemplateMarkToJavaScriptCompiler.js +31 -24
  6. package/dist/TemplateMarkToJavaScriptCompiler.js.map +1 -1
  7. package/dist/TemplateMarkToTypeScriptCompiler.js +90 -92
  8. package/dist/TemplateMarkToTypeScriptCompiler.js.map +1 -1
  9. package/dist/TypeScriptCompilationContext.js +29 -22
  10. package/dist/TypeScriptCompilationContext.js.map +1 -1
  11. package/dist/TypeScriptRuntime.d.ts +1 -0
  12. package/dist/TypeScriptRuntime.js +24 -12
  13. package/dist/TypeScriptRuntime.js.map +1 -1
  14. package/dist/TypeScriptToJavaScriptCompiler.js +18 -16
  15. package/dist/TypeScriptToJavaScriptCompiler.js.map +1 -1
  16. package/dist/compilers/Clause.d.ts +1 -1
  17. package/dist/compilers/Clause.js +18 -35
  18. package/dist/compilers/Clause.js.map +1 -1
  19. package/dist/compilers/Common.js +55 -80
  20. package/dist/compilers/Common.js.map +1 -1
  21. package/dist/compilers/Conditional.d.ts +1 -1
  22. package/dist/compilers/Conditional.js +12 -29
  23. package/dist/compilers/Conditional.js.map +1 -1
  24. package/dist/compilers/ContractDefinition.d.ts +1 -1
  25. package/dist/compilers/ContractDefinition.js +10 -27
  26. package/dist/compilers/ContractDefinition.js.map +1 -1
  27. package/dist/compilers/EnumVariable.d.ts +1 -1
  28. package/dist/compilers/EnumVariable.js +12 -29
  29. package/dist/compilers/EnumVariable.js.map +1 -1
  30. package/dist/compilers/FormattedVariable.d.ts +1 -1
  31. package/dist/compilers/FormattedVariable.js +14 -31
  32. package/dist/compilers/FormattedVariable.js.map +1 -1
  33. package/dist/compilers/Formula.d.ts +1 -1
  34. package/dist/compilers/Formula.js +14 -31
  35. package/dist/compilers/Formula.js.map +1 -1
  36. package/dist/compilers/Join.d.ts +1 -1
  37. package/dist/compilers/Join.js +12 -28
  38. package/dist/compilers/Join.js.map +1 -1
  39. package/dist/compilers/ListBlock.d.ts +1 -1
  40. package/dist/compilers/ListBlock.js +17 -35
  41. package/dist/compilers/ListBlock.js.map +1 -1
  42. package/dist/compilers/NodeCompilers.js +44 -44
  43. package/dist/compilers/NodeCompilers.js.map +1 -1
  44. package/dist/compilers/Optional.d.ts +1 -1
  45. package/dist/compilers/Optional.js +17 -34
  46. package/dist/compilers/Optional.js.map +1 -1
  47. package/dist/compilers/Variable.d.ts +1 -1
  48. package/dist/compilers/Variable.js +12 -29
  49. package/dist/compilers/Variable.js.map +1 -1
  50. package/dist/compilers/With.d.ts +1 -1
  51. package/dist/compilers/With.js +13 -30
  52. package/dist/compilers/With.js.map +1 -1
  53. package/dist/drafting/DateTime/index.js +3 -3
  54. package/dist/drafting/DateTime/index.js.map +1 -1
  55. package/dist/drafting/Double/format.js +5 -5
  56. package/dist/drafting/Double/format.js.map +1 -1
  57. package/dist/drafting/Double/index.js +2 -2
  58. package/dist/drafting/Double/index.js.map +1 -1
  59. package/dist/drafting/Integer/format.js +3 -3
  60. package/dist/drafting/Integer/format.js.map +1 -1
  61. package/dist/drafting/Integer/index.js +2 -2
  62. package/dist/drafting/Integer/index.js.map +1 -1
  63. package/dist/drafting/Long/index.js +2 -2
  64. package/dist/drafting/Long/index.js.map +1 -1
  65. package/dist/drafting/MonetaryAmount/index.js +4 -4
  66. package/dist/drafting/MonetaryAmount/index.js.map +1 -1
  67. package/dist/drafting/index.js +7 -7
  68. package/dist/drafting/index.js.map +1 -1
  69. package/dist/model-gen/concerto.d.ts +13 -0
  70. package/dist/model-gen/concerto.js +5 -0
  71. package/dist/model-gen/concerto.js.map +1 -0
  72. package/dist/model-gen/concerto.metamodel@1.0.0.d.ts +24 -1
  73. package/dist/model-gen/concerto@1.0.0.d.ts +3 -2
  74. package/dist/model-gen/org.accordproject.commonmark@0.5.0.d.ts +2 -2
  75. package/dist/model-gen/{org.accordproject.templatemark@0.4.0.d.ts → org.accordproject.templatemark@0.5.0.d.ts} +5 -1
  76. package/dist/model-gen/{org.accordproject.templatemark@0.4.0.js → org.accordproject.templatemark@0.5.0.js} +3 -2
  77. package/dist/model-gen/org.accordproject.templatemark@0.5.0.js.map +1 -0
  78. package/dist/runtime/runtime.d.ts +1 -1
  79. package/dist/runtime/runtime.js +1 -1
  80. package/dist/runtime/runtime.js.map +1 -1
  81. package/dist/runtime.tgz +0 -0
  82. package/package.json +8 -8
  83. package/dist/model-gen/org.accordproject.templatemark@0.4.0.js.map +0 -1
package/dist/Common.js CHANGED
@@ -14,9 +14,9 @@
14
14
  */
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.getTemplateClassDeclaration = exports.NAVIGATION_NODES = exports.CONTRACT_DEFINITION_RE = exports.CLAUSE_DEFINITION_RE = exports.OPTIONAL_DEFINITION_RE = exports.JOIN_DEFINITION_RE = exports.LISTBLOCK_DEFINITION_RE = exports.WITH_DEFINITION_RE = exports.FORMATTED_VARIABLE_DEFINITION_RE = exports.ENUM_VARIABLE_DEFINITION_RE = exports.CONDITIONAL_DEFINITION_RE = exports.VARIABLE_DEFINITION_RE = exports.FORMULA_DEFINITION_RE = exports.TEMPLATEMARK_RE = void 0;
17
- var concerto_core_1 = require("@accordproject/concerto-core");
18
- var markdown_common_1 = require("@accordproject/markdown-common");
19
- var markdown_template_1 = require("@accordproject/markdown-template");
17
+ const concerto_core_1 = require("@accordproject/concerto-core");
18
+ const markdown_common_1 = require("@accordproject/markdown-common");
19
+ const markdown_template_1 = require("@accordproject/markdown-template");
20
20
  // use to create agreementmark from templatemark
21
21
  exports.TEMPLATEMARK_RE = /^(org\.accordproject\.templatemark)@(.+)\.(\w+)Definition$/;
22
22
  exports.FORMULA_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.FormulaDefinition$/;
@@ -35,14 +35,14 @@ exports.CONTRACT_DEFINITION_RE = /^(org\.accordproject\.templatemark)@(.+)\.Cont
35
35
  * by specifying the name of a property on the node.
36
36
  */
37
37
  exports.NAVIGATION_NODES = [
38
- "".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".ListBlockDefinition"),
39
- "".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".WithDefinition"),
40
- "".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".JoinDefinition"),
41
- "".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".OptionalDefinition"),
42
- "".concat(markdown_common_1.TemplateMarkModel.NAMESPACE, ".ClauseDefinition")
38
+ `${markdown_common_1.TemplateMarkModel.NAMESPACE}.ListBlockDefinition`,
39
+ `${markdown_common_1.TemplateMarkModel.NAMESPACE}.WithDefinition`,
40
+ `${markdown_common_1.TemplateMarkModel.NAMESPACE}.JoinDefinition`,
41
+ `${markdown_common_1.TemplateMarkModel.NAMESPACE}.OptionalDefinition`,
42
+ `${markdown_common_1.TemplateMarkModel.NAMESPACE}.ClauseDefinition`
43
43
  ];
44
44
  function getTemplateClassDeclaration(modelManager, templateConceptFqn) {
45
- var introspector = new concerto_core_1.Introspector(modelManager);
45
+ const introspector = new concerto_core_1.Introspector(modelManager);
46
46
  try {
47
47
  return markdown_template_1.templatemarkutil.findTemplateConcept(introspector, 'clause', templateConceptFqn);
48
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,8DAA4F;AAC5F,kEAAmE;AACnE,sEAAoE;AAEpE,gDAAgD;AACnC,QAAA,eAAe,GAAG,4DAA4D,CAAC;AAC/E,QAAA,qBAAqB,GAAG,8DAA8D,CAAC;AACvF,QAAA,sBAAsB,GAAG,+DAA+D,CAAC;AACzF,QAAA,yBAAyB,GAAG,kEAAkE,CAAC;AAC/F,QAAA,2BAA2B,GAAG,mEAAmE,CAAC;AAClG,QAAA,gCAAgC,GAAG,wEAAwE,CAAC;AAC5G,QAAA,kBAAkB,GAAG,2DAA2D,CAAC;AACjF,QAAA,uBAAuB,GAAG,gEAAgE,CAAC;AAC3F,QAAA,kBAAkB,GAAG,2DAA2D,CAAC;AACjF,QAAA,sBAAsB,GAAG,+DAA+D,CAAC;AACzF,QAAA,oBAAoB,GAAG,6DAA6D,CAAC;AACrF,QAAA,sBAAsB,GAAG,+DAA+D,CAAC;AAItG;;;GAGG;AACU,QAAA,gBAAgB,GAAG;IAC5B,UAAG,mCAAiB,CAAC,SAAS,yBAAsB;IACpD,UAAG,mCAAiB,CAAC,SAAS,oBAAiB;IAC/C,UAAG,mCAAiB,CAAC,SAAS,oBAAiB;IAC/C,UAAG,mCAAiB,CAAC,SAAS,wBAAqB;IACnD,UAAG,mCAAiB,CAAC,SAAS,sBAAmB;CACpD,CAAC;AAEF,SAAgB,2BAA2B,CAAC,YAA0B,EAAE,kBAA2B;IAC/F,IAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI;QACA,OAAO,oCAAgB,CAAC,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;KAC3F;IACD,OAAM,GAAG,EAAE;QACP,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,GAAG,CAAC;KACb;AACL,CAAC;AATD,kEASC"}
1
+ {"version":3,"file":"Common.js","sourceRoot":"","sources":["../src/Common.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,gEAA4F;AAC5F,oEAAmE;AACnE,wEAAoE;AAEpE,gDAAgD;AACnC,QAAA,eAAe,GAAG,4DAA4D,CAAC;AAC/E,QAAA,qBAAqB,GAAG,8DAA8D,CAAC;AACvF,QAAA,sBAAsB,GAAG,+DAA+D,CAAC;AACzF,QAAA,yBAAyB,GAAG,kEAAkE,CAAC;AAC/F,QAAA,2BAA2B,GAAG,mEAAmE,CAAC;AAClG,QAAA,gCAAgC,GAAG,wEAAwE,CAAC;AAC5G,QAAA,kBAAkB,GAAG,2DAA2D,CAAC;AACjF,QAAA,uBAAuB,GAAG,gEAAgE,CAAC;AAC3F,QAAA,kBAAkB,GAAG,2DAA2D,CAAC;AACjF,QAAA,sBAAsB,GAAG,+DAA+D,CAAC;AACzF,QAAA,oBAAoB,GAAG,6DAA6D,CAAC;AACrF,QAAA,sBAAsB,GAAG,+DAA+D,CAAC;AAItG;;;GAGG;AACU,QAAA,gBAAgB,GAAG;IAC5B,GAAG,mCAAiB,CAAC,SAAS,sBAAsB;IACpD,GAAG,mCAAiB,CAAC,SAAS,iBAAiB;IAC/C,GAAG,mCAAiB,CAAC,SAAS,iBAAiB;IAC/C,GAAG,mCAAiB,CAAC,SAAS,qBAAqB;IACnD,GAAG,mCAAiB,CAAC,SAAS,mBAAmB;CACpD,CAAC;AAEF,SAAgB,2BAA2B,CAAC,YAA0B,EAAE,kBAA2B;IAC/F,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,YAAY,CAAC,CAAC;IACpD,IAAI;QACA,OAAO,oCAAgB,CAAC,mBAAmB,CAAC,YAAY,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;KAC3F;IACD,OAAM,GAAG,EAAE;QACP,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,GAAG,CAAC;KACb;AACL,CAAC;AATD,kEASC"}
@@ -12,65 +12,27 @@
12
12
  * See the License for the specific language governing permissions and
13
13
  * limitations under the License.
14
14
  */
15
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
16
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
17
- return new (P || (P = Promise))(function (resolve, reject) {
18
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
19
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
20
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
21
- step((generator = generator.apply(thisArg, _arguments || [])).next());
22
- });
23
- };
24
- var __generator = (this && this.__generator) || function (thisArg, body) {
25
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
26
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
- function verb(n) { return function (v) { return step([n, v]); }; }
28
- function step(op) {
29
- if (f) throw new TypeError("Generator is already executing.");
30
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
31
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
32
- if (y = 0, t) op = [op[0] & 2, t.value];
33
- switch (op[0]) {
34
- case 0: case 1: t = op; break;
35
- case 4: _.label++; return { value: op[1], done: false };
36
- case 5: _.label++; y = op[1]; op = [0]; continue;
37
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
38
- default:
39
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
40
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
41
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
42
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
43
- if (t[2]) _.ops.pop();
44
- _.trys.pop(); continue;
45
- }
46
- op = body.call(thisArg, _);
47
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
48
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
49
- }
50
- };
51
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
52
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
53
- if (ar || !(i in from)) {
54
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
55
- ar[i] = from[i];
56
- }
57
- }
58
- return to.concat(ar || Array.prototype.slice.call(from));
59
- };
60
15
  var __importDefault = (this && this.__importDefault) || function (mod) {
61
16
  return (mod && mod.__esModule) ? mod : { "default": mod };
62
17
  };
63
18
  Object.defineProperty(exports, "__esModule", { value: true });
64
19
  exports.TemplateMarkInterpreter = void 0;
65
- var dayjs_1 = __importDefault(require("dayjs"));
66
- var jsonpath_1 = __importDefault(require("jsonpath"));
67
- var traverse_1 = __importDefault(require("traverse"));
68
- var concerto_core_1 = require("@accordproject/concerto-core");
69
- var drafting_1 = require("./drafting");
70
- var markdown_common_1 = require("@accordproject/markdown-common");
71
- var concerto_core_2 = require("@accordproject/concerto-core");
72
- var Common_1 = require("./Common");
73
- var TemplateMarkToJavaScriptCompiler_1 = require("./TemplateMarkToJavaScriptCompiler");
20
+ const dayjs_1 = __importDefault(require("dayjs"));
21
+ const jsonpath_1 = __importDefault(require("jsonpath"));
22
+ const traverse_1 = __importDefault(require("traverse"));
23
+ const concerto_core_1 = require("@accordproject/concerto-core");
24
+ const drafting_1 = require("./drafting");
25
+ const markdown_common_1 = require("@accordproject/markdown-common");
26
+ const concerto_core_2 = require("@accordproject/concerto-core");
27
+ const Common_1 = require("./Common");
28
+ const TemplateMarkToJavaScriptCompiler_1 = require("./TemplateMarkToJavaScriptCompiler");
29
+ const org_accordproject_templatemark_0_5_0_1 = require("./model-gen/org.accordproject.templatemark@0.5.0");
30
+ const TypeScriptRuntime_1 = require("./TypeScriptRuntime");
31
+ function checkCode(code) {
32
+ if (code.type !== org_accordproject_templatemark_0_5_0_1.CodeType.ES_2020) {
33
+ throw new Error(`Cannot run ${code.contents} as it is not ES_2020 JavaScript.`);
34
+ }
35
+ }
74
36
  /**
75
37
  * Evaluates a JS expression
76
38
  * @param {*} clauseLibrary the clause library
@@ -81,32 +43,32 @@ var TemplateMarkToJavaScriptCompiler_1 = require("./TemplateMarkToJavaScriptComp
81
43
  */
82
44
  function evaluateJavaScript(clauseLibrary, data, fn, now) {
83
45
  if (!data || !fn) {
84
- throw new Error("Cannot evaluate JS ".concat(fn, " against ").concat(data));
46
+ throw new Error(`Cannot evaluate JS ${fn} against ${data}`);
85
47
  }
86
- var runtimeNow = now ? now : (0, dayjs_1.default)();
87
- var functionArgNames = new Array();
48
+ const runtimeNow = now ? now : (0, dayjs_1.default)();
49
+ const functionArgNames = new Array();
88
50
  functionArgNames.push('data');
89
51
  functionArgNames.push('library');
90
52
  functionArgNames.push('now');
91
53
  functionArgNames.push('jp');
92
54
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
- var functionArgValues = new Array();
55
+ const functionArgValues = new Array();
94
56
  functionArgValues.push(data);
95
57
  functionArgValues.push(clauseLibrary);
96
58
  functionArgValues.push(runtimeNow);
97
59
  functionArgValues.push(jsonpath_1.default);
98
60
  // chop the function header and closing
99
- var expression = fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'));
61
+ const expression = fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}'));
100
62
  if (expression.trim().length === 0) {
101
63
  throw new Error('Empty expression');
102
64
  }
103
65
  try {
104
- var fun = new (Function.bind.apply(Function, __spreadArray(__spreadArray([void 0], functionArgNames, false), [expression], false)))(); // SECURITY!
105
- var result = fun.apply(void 0, functionArgValues);
66
+ const fun = new Function(...functionArgNames, expression); // SECURITY!
67
+ const result = fun(...functionArgValues);
106
68
  return result;
107
69
  }
108
70
  catch (err) {
109
- throw new Error("Caught error ".concat(err, " evaluating ").concat(expression, " with arguments ").concat(functionArgValues));
71
+ throw new Error(`Caught error ${err} evaluating ${expression} with arguments ${functionArgValues}`);
110
72
  }
111
73
  }
112
74
  /**
@@ -125,33 +87,33 @@ function getJsonPath(rootData, currentNode, paths) {
125
87
  throw new Error('Node must be supplied');
126
88
  }
127
89
  if (!currentNode.name) {
128
- throw new Error("Node must have a name: ".concat(JSON.stringify(currentNode)));
90
+ throw new Error(`Node must have a name: ${JSON.stringify(currentNode)}`);
129
91
  }
130
92
  if (currentNode.name.indexOf('.') >= 0) {
131
93
  // prevent JSON path injection
132
- throw new Error("Invalid name property ".concat(currentNode.name));
94
+ throw new Error(`Invalid name property ${currentNode.name}`);
133
95
  }
134
96
  if (!paths || !paths.length || paths.length < 1) {
135
97
  throw new Error('Paths must be supplied');
136
98
  }
137
- var withPath = [];
138
- for (var n = 1; n < paths.length; n++) {
139
- var sub = paths.slice(0, n);
140
- var obj = traverse_1.default.get(rootData, sub);
99
+ const withPath = [];
100
+ for (let n = 1; n < paths.length; n++) {
101
+ const sub = paths.slice(0, n);
102
+ const obj = traverse_1.default.get(rootData, sub);
141
103
  // HACK
142
104
  // if(obj===undefined) {
143
105
  // throw new Error(`Failed to find data with path ${sub} and data ${JSON.stringify(rootData, null, 2)}`);
144
106
  // }
145
107
  if (obj && obj.$class) {
146
108
  if (Common_1.NAVIGATION_NODES.indexOf(obj.$class) >= 0) {
147
- withPath.push("['".concat(obj.name, "']"));
109
+ withPath.push(`['${obj.name}']`);
148
110
  }
149
111
  }
150
112
  }
151
113
  if (currentNode.name !== 'this') {
152
- withPath.push("['".concat(currentNode.name, "']"));
114
+ withPath.push(`['${currentNode.name}']`);
153
115
  }
154
- return withPath.length > 0 ? "$".concat(withPath.join('')) : '$';
116
+ return withPath.length > 0 ? `$${withPath.join('')}` : '$';
155
117
  }
156
118
  /**
157
119
  * Generates an AgreementMark JSON document from a template plus data.
@@ -163,19 +125,19 @@ function getJsonPath(rootData, currentNode, paths) {
163
125
  * @returns {*} the AgreementMark JSON
164
126
  */
165
127
  function generateAgreement(modelManager, clauseLibrary, templateMark, data, now) {
166
- var introspector = new concerto_core_1.Introspector(modelManager);
128
+ const introspector = new concerto_core_1.Introspector(modelManager);
167
129
  return (0, traverse_1.default)(templateMark).map(function (context) {
168
- var stopHere = false;
130
+ let stopHere = false;
169
131
  if (typeof context === 'object' && context.$class && typeof context.$class === 'string') {
170
- var nodeClass = context.$class;
132
+ const nodeClass = context.$class;
171
133
  // rewrite node types, mapping from TemplateMark namespace to CiceroMark
172
- var match = nodeClass.match(Common_1.TEMPLATEMARK_RE);
134
+ const match = nodeClass.match(Common_1.TEMPLATEMARK_RE);
173
135
  if (match && match.length > 1) {
174
- context.$class = "".concat(markdown_common_1.CiceroMarkModel.NAMESPACE, ".").concat(match[3]);
136
+ context.$class = `${markdown_common_1.CiceroMarkModel.NAMESPACE}.${match[3]}`;
175
137
  }
176
138
  // convert a contract node to a clause note HACK
177
139
  if (Common_1.CONTRACT_DEFINITION_RE.test(nodeClass)) {
178
- context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Paragraph");
140
+ context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.Paragraph`;
179
141
  delete context.name;
180
142
  delete context.elementType;
181
143
  }
@@ -183,7 +145,7 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
183
145
  // not 100% sure we want to do that ... we may need to process
184
146
  // the child variable nodes and reparent them?
185
147
  if (Common_1.WITH_DEFINITION_RE.test(nodeClass)) {
186
- context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Paragraph");
148
+ context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.Paragraph`;
187
149
  delete context.name;
188
150
  delete context.elementType;
189
151
  }
@@ -191,7 +153,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
191
153
  // with the result of evaluating the JS code
192
154
  else if (Common_1.FORMULA_DEFINITION_RE.test(nodeClass)) {
193
155
  if (context.code) {
194
- var result = evaluateJavaScript(clauseLibrary, data, context.code.contents, now);
156
+ checkCode(context.code);
157
+ const result = evaluateJavaScript(clauseLibrary, data, context.code.contents, now);
195
158
  if (result === null) {
196
159
  context.value = '<null>';
197
160
  }
@@ -209,25 +172,25 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
209
172
  }
210
173
  // evaluate lists, recursing on each list item
211
174
  else if (Common_1.LISTBLOCK_DEFINITION_RE.test(nodeClass)) {
212
- var path = getJsonPath(templateMark, context, this.path);
213
- var variableValues = jsonpath_1.default.query(data, path, 1);
175
+ const path = getJsonPath(templateMark, context, this.path);
176
+ const variableValues = jsonpath_1.default.query(data, path, 1);
214
177
  if (variableValues.length === 0) {
215
- throw new Error("No values found for path '".concat(path, "' in data ").concat(data, "."));
178
+ throw new Error(`No values found for path '${path}' in data ${data}.`);
216
179
  }
217
180
  else {
218
- var arrayData = variableValues[0];
181
+ const arrayData = variableValues[0];
219
182
  if (!Array.isArray(arrayData)) {
220
- throw new Error("Values found for path '".concat(path, "' in data ").concat(data, " is not an array: ").concat(arrayData, "."));
183
+ throw new Error(`Values found for path '${path}' in data ${data} is not an array: ${arrayData}.`);
221
184
  }
222
185
  else {
223
- context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".List");
186
+ context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.List`;
224
187
  delete context.elementType;
225
188
  delete context.name;
226
- context.nodes = arrayData.map(function (arrayItem) {
189
+ context.nodes = arrayData.map(arrayItem => {
227
190
  // arrayItem is now the data for the nested traversal
228
- var subResult = generateAgreement(modelManager, clauseLibrary, context.nodes[0].nodes[0], arrayItem);
191
+ const subResult = generateAgreement(modelManager, clauseLibrary, context.nodes[0].nodes[0], arrayItem);
229
192
  return {
230
- $class: "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Item"),
193
+ $class: `${markdown_common_1.CommonMarkModel.NAMESPACE}.Item`,
231
194
  nodes: subResult.nodes ? subResult.nodes : []
232
195
  };
233
196
  });
@@ -237,25 +200,28 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
237
200
  }
238
201
  // map over an array of items, joining them into a Text node
239
202
  else if (Common_1.JOIN_DEFINITION_RE.test(nodeClass)) {
240
- var path = getJsonPath(templateMark, context, this.path);
241
- var variableValues = jsonpath_1.default.query(data, path, 1);
203
+ const path = getJsonPath(templateMark, context, this.path);
204
+ const variableValues = jsonpath_1.default.query(data, path, 1);
242
205
  if (variableValues.length === 0) {
243
- throw new Error("No values found for path '".concat(path, "' in data ").concat(data, "."));
206
+ throw new Error(`No values found for path '${path}' in data ${data}.`);
244
207
  }
245
208
  else {
246
- var arrayData = variableValues[0];
209
+ const arrayData = variableValues[0];
247
210
  if (!Array.isArray(arrayData)) {
248
- throw new Error("Values found for path '".concat(path, "' in data ").concat(data, " is not an array: ").concat(arrayData, "."));
211
+ throw new Error(`Values found for path '${path}' in data ${data} is not an array: ${arrayData}.`);
249
212
  }
250
213
  else {
251
- context.$class = "".concat(markdown_common_1.CommonMarkModel.NAMESPACE, ".Text");
252
- var drafter_1 = (0, drafting_1.getDrafter)(context.elementType);
253
- context.text = arrayData.map(function (arrayItem) {
254
- return drafter_1 ? drafter_1(arrayItem, context.format) : arrayItem;
255
- }).join(context.separator);
214
+ context.$class = `${markdown_common_1.CommonMarkModel.NAMESPACE}.Text`;
215
+ const drafter = (0, drafting_1.getDrafter)(context.elementType);
216
+ context.text = (0, TypeScriptRuntime_1.joinList)(arrayData.map(arrayItem => {
217
+ return drafter ? drafter(arrayItem, context.format) : arrayItem;
218
+ }), context);
256
219
  delete context.elementType;
257
220
  delete context.name;
258
221
  delete context.separator;
222
+ delete context.locale;
223
+ delete context.type;
224
+ delete context.style;
259
225
  delete context.nodes;
260
226
  stopHere = true; // do not process child nodes, we've already done it above...
261
227
  }
@@ -267,26 +233,26 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
267
233
  Common_1.ENUM_VARIABLE_DEFINITION_RE.test(nodeClass) ||
268
234
  Common_1.FORMATTED_VARIABLE_DEFINITION_RE.test(nodeClass)) {
269
235
  if (typeof data === 'object') {
270
- var path = getJsonPath(templateMark, context, this.path);
271
- var variableValues = jsonpath_1.default.query(data, path, 1);
236
+ const path = getJsonPath(templateMark, context, this.path);
237
+ const variableValues = jsonpath_1.default.query(data, path, 1);
272
238
  if (variableValues.length === 0) {
273
- throw new Error("No values found for path '".concat(path, "' in data ").concat(data, "."));
239
+ throw new Error(`No values found for path '${path}' in data ${data}.`);
274
240
  }
275
241
  else {
276
242
  // convert the value to a string, optionally using the formatter
277
- var variableValue = variableValues[0];
278
- var type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
243
+ const variableValue = variableValues[0];
244
+ const type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
279
245
  // we want to draft Enums as strings, not objects
280
- var drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
246
+ const drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
281
247
  context.value = drafter ? drafter(variableValue, context.format) : JSON.stringify(variableValue);
282
248
  }
283
249
  }
284
250
  else {
285
251
  // a list of enum values or primitives brings us here
286
- var variableValue = data;
287
- var type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
252
+ const variableValue = data;
253
+ const type = concerto_core_2.ModelUtil.isPrimitiveType(context.elementType) ? null : introspector.getClassDeclaration(context.elementType);
288
254
  // we want to draft Enums as strings, not objects
289
- var drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
255
+ const drafter = (0, drafting_1.getDrafter)(type && type.isEnum() ? 'String' : context.elementType);
290
256
  context.value = drafter ? drafter(variableValue, context.format) : JSON.stringify(variableValue);
291
257
  }
292
258
  }
@@ -294,17 +260,18 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
294
260
  // with the result of evaluating the JS code or a boolean property
295
261
  else if (Common_1.CONDITIONAL_DEFINITION_RE.test(nodeClass)) {
296
262
  if (context.condition) {
263
+ checkCode(context.condition);
297
264
  context.isTrue = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
298
265
  }
299
266
  else {
300
- var path = getJsonPath(templateMark, context, this.path);
301
- var variableValues = jsonpath_1.default.query(data, path, 1);
267
+ const path = getJsonPath(templateMark, context, this.path);
268
+ const variableValues = jsonpath_1.default.query(data, path, 1);
302
269
  if (variableValues && variableValues.length) {
303
270
  if (variableValues.length === 1) {
304
271
  context.isTrue = !!variableValues[0];
305
272
  }
306
273
  else {
307
- throw new Error("Multiple values found for path '".concat(path, "' in data ").concat(data, "."));
274
+ throw new Error(`Multiple values found for path '${path}' in data ${data}.`);
308
275
  }
309
276
  }
310
277
  else {
@@ -319,7 +286,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
319
286
  // only include the children of a clause if its condition is true
320
287
  else if (Common_1.CLAUSE_DEFINITION_RE.test(nodeClass)) {
321
288
  if (context.condition) {
322
- var result = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
289
+ checkCode(context.condition);
290
+ const result = !!evaluateJavaScript(clauseLibrary, data, context.condition.contents, now);
323
291
  if (!result) {
324
292
  delete context.nodes;
325
293
  stopHere = true;
@@ -330,15 +298,15 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
330
298
  }
331
299
  // add a 'hasSome' property to OptionalDefinition
332
300
  else if (Common_1.OPTIONAL_DEFINITION_RE.test(nodeClass)) {
333
- var path = getJsonPath(templateMark, context, this.path);
334
- var variableValues = jsonpath_1.default.query(data, path, 1);
301
+ const path = getJsonPath(templateMark, context, this.path);
302
+ const variableValues = jsonpath_1.default.query(data, path, 1);
335
303
  if (variableValues && variableValues.length) {
336
304
  if (variableValues.length === 1) {
337
305
  context.hasSome = true;
338
306
  context.whenNone = [];
339
307
  }
340
308
  else {
341
- throw new Error("Multiple values found for path '".concat(path, "' in data ").concat(data, "."));
309
+ throw new Error(`Multiple values found for path '${path}' in data ${data}.`);
342
310
  }
343
311
  }
344
312
  else {
@@ -355,8 +323,8 @@ function generateAgreement(modelManager, clauseLibrary, templateMark, data, now)
355
323
  * A template engine: merges the markup and logic of a template with
356
324
  * JSON data to produce JSON data.
357
325
  */
358
- var TemplateMarkInterpreter = /** @class */ (function () {
359
- function TemplateMarkInterpreter(modelManager, clauseLibrary, templateConceptFqn) {
326
+ class TemplateMarkInterpreter {
327
+ constructor(modelManager, clauseLibrary, templateConceptFqn) {
360
328
  this.modelManager = modelManager;
361
329
  this.clauseLibrary = clauseLibrary;
362
330
  this.templateClass = (0, Common_1.getTemplateClassDeclaration)(this.modelManager, templateConceptFqn);
@@ -372,67 +340,61 @@ var TemplateMarkInterpreter = /** @class */ (function () {
372
340
  * @returns {*} TemplateMark JSON that has been typed checked and has type metadata added
373
341
  * @throws {Error} if the templateMark document is invalid
374
342
  */
375
- TemplateMarkInterpreter.prototype.checkTypes = function (templateMark) {
376
- var modelManager = new concerto_core_1.ModelManager({ strict: true });
343
+ checkTypes(templateMark) {
344
+ const modelManager = new concerto_core_1.ModelManager({ strict: true });
377
345
  modelManager.addCTOModel(markdown_common_1.ConcertoMetaModel.MODEL, 'concertometamodel.cto');
378
346
  modelManager.addCTOModel(markdown_common_1.CommonMarkModel.MODEL, 'commonmark.cto');
379
347
  modelManager.addCTOModel(markdown_common_1.TemplateMarkModel.MODEL, 'templatemark.cto');
380
- var factory = new concerto_core_1.Factory(modelManager);
381
- var serializer = new concerto_core_1.Serializer(factory, modelManager);
348
+ const factory = new concerto_core_1.Factory(modelManager);
349
+ const serializer = new concerto_core_1.Serializer(factory, modelManager);
382
350
  try {
383
351
  serializer.fromJSON(templateMark);
384
352
  return templateMark;
385
353
  }
386
354
  catch (err) {
387
- throw new Error("Generated invalid agreement: ".concat(err, ": ").concat(JSON.stringify(templateMark, null, 2)));
355
+ throw new Error(`Generated invalid agreement: ${err}: ${JSON.stringify(templateMark, null, 2)}`);
388
356
  }
389
- };
357
+ }
390
358
  /**
391
359
  * Compiles the code nodes containing TS to code nodes containing JS.
392
360
  * @param {*} templateMark the TemplateMark JSON object
393
361
  * @returns {*} TemplateMark JSON with JS nodes
394
362
  * @throws {Error} if the templateMark document is invalid
395
363
  */
396
- TemplateMarkInterpreter.prototype.compileTypeScriptToJavaScript = function (templateMark) {
397
- var templateConcept = templateMark.nodes[0].elementType;
364
+ compileTypeScriptToJavaScript(templateMark) {
365
+ const templateConcept = templateMark.nodes[0].elementType;
398
366
  if (!templateConcept) {
399
367
  throw new Error('TemplateMark is not typed');
400
368
  }
401
- var compiler = new TemplateMarkToJavaScriptCompiler_1.TemplateMarkToJavaScriptCompiler(this.modelManager, templateConcept);
369
+ const compiler = new TemplateMarkToJavaScriptCompiler_1.TemplateMarkToJavaScriptCompiler(this.modelManager, templateConcept);
402
370
  return compiler.compile(templateMark);
403
- };
404
- TemplateMarkInterpreter.prototype.validateCiceroMark = function (ciceroMark) {
405
- var modelManager = new concerto_core_1.ModelManager({ strict: true });
371
+ }
372
+ validateCiceroMark(ciceroMark) {
373
+ const modelManager = new concerto_core_1.ModelManager({ strict: true });
406
374
  modelManager.addCTOModel(markdown_common_1.ConcertoMetaModel.MODEL, 'concertometamodel.cto');
407
375
  modelManager.addCTOModel(markdown_common_1.CommonMarkModel.MODEL, 'commonmark.cto');
408
376
  modelManager.addCTOModel(markdown_common_1.CiceroMarkModel.MODEL, 'ciceromark.cto');
409
- var factory = new concerto_core_1.Factory(modelManager);
410
- var serializer = new concerto_core_1.Serializer(factory, modelManager);
377
+ const factory = new concerto_core_1.Factory(modelManager);
378
+ const serializer = new concerto_core_1.Serializer(factory, modelManager);
411
379
  try {
412
380
  return serializer.fromJSON(ciceroMark);
413
381
  }
414
382
  catch (err) {
415
- throw new Error("Generated invalid agreement: ".concat(err, ": ").concat(JSON.stringify(ciceroMark, null, 2)));
383
+ throw new Error(`Generated invalid agreement: ${err}: ${JSON.stringify(ciceroMark, null, 2)}`);
416
384
  }
417
- };
418
- TemplateMarkInterpreter.prototype.generate = function (templateMark, data, now) {
419
- return __awaiter(this, void 0, void 0, function () {
420
- var factory, serializer, templateData, typedTemplateMark, jsTemplateMark, ciceroMark;
421
- return __generator(this, function (_a) {
422
- factory = new concerto_core_1.Factory(this.modelManager);
423
- serializer = new concerto_core_1.Serializer(factory, this.modelManager);
424
- templateData = serializer.fromJSON(data);
425
- if (templateData.getFullyQualifiedType() !== this.templateClass.getFullyQualifiedName()) {
426
- throw new Error("Template data must be of type '".concat(this.templateClass.getFullyQualifiedName(), "'."));
427
- }
428
- typedTemplateMark = this.checkTypes(templateMark);
429
- jsTemplateMark = this.compileTypeScriptToJavaScript(typedTemplateMark);
430
- ciceroMark = generateAgreement(this.modelManager, this.clauseLibrary, jsTemplateMark, data, now);
431
- return [2 /*return*/, this.validateCiceroMark(ciceroMark)];
432
- });
433
- });
434
- };
435
- return TemplateMarkInterpreter;
436
- }());
385
+ }
386
+ async generate(templateMark, data, now) {
387
+ const factory = new concerto_core_1.Factory(this.modelManager);
388
+ const serializer = new concerto_core_1.Serializer(factory, this.modelManager);
389
+ const templateData = serializer.fromJSON(data);
390
+ if (templateData.getFullyQualifiedType() !== this.templateClass.getFullyQualifiedName()) {
391
+ throw new Error(`Template data must be of type '${this.templateClass.getFullyQualifiedName()}'.`);
392
+ }
393
+ const typedTemplateMark = this.checkTypes(templateMark);
394
+ const jsTemplateMark = this.compileTypeScriptToJavaScript(typedTemplateMark);
395
+ const ciceroMark = generateAgreement(this.modelManager, this.clauseLibrary, jsTemplateMark, data, now);
396
+ return this.validateCiceroMark(ciceroMark);
397
+ }
398
+ }
437
399
  exports.TemplateMarkInterpreter = TemplateMarkInterpreter;
438
400
  //# sourceMappingURL=TemplateMarkInterpreter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateMarkInterpreter.js","sourceRoot":"","sources":["../src/TemplateMarkInterpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TemplateMarkInterpreter.js","sourceRoot":"","sources":["../src/TemplateMarkInterpreter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;AAEH,kDAA0B;AAC1B,wDAA0B;AAC1B,wDAAgC;AAEhC,gEAAiH;AACjH,yCAAwC;AACxC,oEAAwH;AACxH,gEAAyD;AAEzD,qCAgBkB;AAClB,yFAAsF;AACtF,2GAAmF;AACnF,2DAA+C;AAE/C,SAAS,SAAS,CAAC,IAAU;IACzB,IAAG,IAAI,CAAC,IAAI,KAAK,+CAAQ,CAAC,OAAO,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,QAAQ,mCAAmC,CAAC,CAAC;KACnF;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,aAAoB,EAAE,IAAkB,EAAE,EAAU,EAAE,GAAiB;IAC/F,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;KAC/D;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,eAAK,GAAE,CAAC;IACvC,MAAM,gBAAgB,GAAG,IAAI,KAAK,EAAU,CAAC;IAC7C,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5B,8DAA8D;IAC9D,MAAM,iBAAiB,GAAG,IAAI,KAAK,EAAO,CAAC;IAC3C,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,iBAAiB,CAAC,IAAI,CAAC,kBAAE,CAAC,CAAC;IAE3B,uCAAuC;IACvC,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,IAAG,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;KACvC;IACD,IAAI;QACA,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,gBAAgB,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY;QACvE,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;KACjB;IACD,OAAM,GAAG,EAAE;QACP,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,eAAe,UAAU,mBAAmB,iBAAiB,EAAE,CAAC,CAAC;KACvG;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,WAAW,CAAC,QAAY,EAAE,WAAe,EAAE,KAAc;IAC9D,IAAG,CAAC,WAAW,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAC5C;IACD,IAAG,CAAC,WAAW,CAAC,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC5E;IACD,IAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAG,CAAC,EAAE;QAClC,8BAA8B;QAC9B,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;KAChE;IACD,IAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAE,CAAC,EAAG;QAC5C,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;KAC7C;IACD,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,kBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO;QACP,wBAAwB;QACxB,6GAA6G;QAC7G,IAAI;QACJ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE;YACnB,IAAG,yBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBAC1C,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;aACpC;SACJ;KACJ;IAED,IAAG,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE;QAC5B,QAAQ,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;KAC5C;IAED,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,YAAyB,EAAE,aAAoB,EAAE,YAAoB,EAAE,IAAkB,EAAE,GAAgB;IAClI,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,YAAY,CAAC,CAAC;IACpD,OAAO,IAAA,kBAAQ,EAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,OAAY;QACpD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE;YACrF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAgB,CAAC;YAE3C,wEAAwE;YACxE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,wBAAe,CAAC,CAAC;YAC/C,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,OAAO,CAAC,MAAM,GAAG,GAAG,iCAAe,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D;YAED,gDAAgD;YAChD,IAAI,+BAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACxC,OAAO,CAAC,MAAM,GAAG,GAAG,iCAAe,CAAC,SAAS,YAAY,CAAC;gBAC1D,OAAO,OAAO,CAAC,IAAI,CAAC;gBACpB,OAAO,OAAO,CAAC,WAAW,CAAC;aAC9B;YAED,wDAAwD;YACxD,8DAA8D;YAC9D,8CAA8C;YAC9C,IAAI,2BAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACpC,OAAO,CAAC,MAAM,GAAG,GAAG,iCAAe,CAAC,SAAS,YAAY,CAAC;gBAC1D,OAAO,OAAO,CAAC,IAAI,CAAC;gBACpB,OAAO,OAAO,CAAC,WAAW,CAAC;aAC9B;YAED,8CAA8C;YAC9C,4CAA4C;iBACvC,IAAI,8BAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC5C,IAAI,OAAO,CAAC,IAAI,EAAE;oBACd,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACxB,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBACnF,IAAG,MAAM,KAAK,IAAI,EAAE;wBAChB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;qBAC5B;yBACI,IAAG,OAAO,MAAM,KAAK,QAAQ,EAAE;wBAChC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;qBAC1B;yBACI;wBACD,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;qBAC1C;oBACD,OAAO,OAAO,CAAC,IAAI,CAAC;iBACvB;qBACI;oBACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;iBACpD;aACJ;YAED,8CAA8C;iBACzC,IAAI,gCAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC9C,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,cAAc,GAAG,kBAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAE/C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;iBAC1E;qBACI;oBACD,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,aAAa,IAAI,qBAAqB,SAAS,GAAG,CAAC,CAAC;qBACrG;yBACI;wBACD,OAAO,CAAC,MAAM,GAAG,GAAG,iCAAe,CAAC,SAAS,OAAO,CAAC;wBACrD,OAAO,OAAO,CAAC,WAAW,CAAC;wBAC3B,OAAO,OAAO,CAAC,IAAI,CAAC;wBACpB,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAE,SAAS,CAAC,EAAE;4BACvC,qDAAqD;4BACrD,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;4BACvG,OAAO;gCACH,MAAM,EAAE,GAAG,iCAAe,CAAC,SAAS,OAAO;gCAC3C,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;6BAChD,CAAC;wBACN,CAAC,CAAC,CAAC;wBACH,QAAQ,GAAG,IAAI,CAAC,CAAC,6DAA6D;qBACjF;iBACJ;aACJ;YAED,4DAA4D;iBACvD,IAAI,2BAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBACzC,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,cAAc,GAAG,kBAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAE/C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;iBAC1E;qBACI;oBACD,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;oBACpC,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;wBAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,aAAa,IAAI,qBAAqB,SAAS,GAAG,CAAC,CAAC;qBACrG;yBACI;wBACD,OAAO,CAAC,MAAM,GAAG,GAAG,iCAAe,CAAC,SAAS,OAAO,CAAC;wBACrD,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBAChD,OAAO,CAAC,IAAI,GAAG,IAAA,4BAAQ,EAAC,SAAS,CAAC,GAAG,CAAE,SAAS,CAAC,EAAE;4BAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAmB,CAAC;wBAC9E,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;wBACb,OAAO,OAAO,CAAC,WAAW,CAAC;wBAC3B,OAAO,OAAO,CAAC,IAAI,CAAC;wBACpB,OAAO,OAAO,CAAC,SAAS,CAAC;wBACzB,OAAO,OAAO,CAAC,MAAM,CAAC;wBACtB,OAAO,OAAO,CAAC,IAAI,CAAC;wBACpB,OAAO,OAAO,CAAC,KAAK,CAAC;wBACrB,OAAO,OAAO,CAAC,KAAK,CAAC;wBACrB,QAAQ,GAAG,IAAI,CAAC,CAAC,6DAA6D;qBACjF;iBACJ;aACJ;YAED,+CAA+C;YAC/C,6CAA6C;iBACxC,IAAI,+BAAsB,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3C,oCAA2B,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC3C,yCAAgC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAClD,IAAG,OAAO,IAAI,KAAK,QAAQ,EAAE;oBACzB,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3D,MAAM,cAAc,GAAG,kBAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC/C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;qBAC1E;yBACI;wBACD,gEAAgE;wBAChE,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;wBACxC,MAAM,IAAI,GAAI,yBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBACpI,iDAAiD;wBACjD,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;wBACnF,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAW,CAAC;qBAC9G;iBACJ;qBACI;oBACD,qDAAqD;oBACrD,MAAM,aAAa,GAAG,IAAI,CAAC;oBAC3B,MAAM,IAAI,GAAI,yBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACpI,iDAAiD;oBACjD,MAAM,OAAO,GAAG,IAAA,qBAAU,EAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACnF,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAW,CAAC;iBAC9G;aACJ;YAED,iDAAiD;YACjD,kEAAkE;iBAC7D,IAAI,kCAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAChD,IAAI,OAAO,CAAC,SAAS,EAAE;oBACnB,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC7B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAuB,CAAC;iBACrH;qBACI;oBACD,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3D,MAAM,cAAc,GAAG,kBAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC/C,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;wBACzC,IAAG,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;4BAC5B,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;yBACxC;6BACI;4BACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;yBAChF;qBACJ;yBACI;wBACD,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;qBAC1B;iBACJ;gBACD,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;gBACtE,OAAO,OAAO,CAAC,SAAS,CAAC;gBACzB,OAAO,OAAO,CAAC,YAAY,CAAC;gBAC5B,OAAO,OAAO,CAAC,YAAY,CAAC;aAC/B;YAED,iEAAiE;iBAC5D,IAAI,6BAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC3C,IAAI,OAAO,CAAC,SAAS,EAAE;oBACnB,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC7B,MAAM,MAAM,GAAG,CAAC,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAuB,CAAC;oBAChH,IAAG,CAAC,MAAM,EAAE;wBACR,OAAO,OAAO,CAAC,KAAK,CAAC;wBACrB,QAAQ,GAAG,IAAI,CAAC;qBACnB;iBACJ;gBACD,OAAO,OAAO,CAAC,SAAS,CAAC;gBACzB,OAAO,OAAO,CAAC,YAAY,CAAC;aAC/B;YAED,iDAAiD;iBAC5C,IAAI,+BAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,MAAM,cAAc,GAAG,kBAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC/C,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,EAAE;oBACzC,IAAG,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;wBAC5B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;wBACvB,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;qBACzB;yBACI;wBACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;qBAChF;iBACJ;qBACI;oBACD,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;oBACxB,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;iBACzB;gBACD,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;aACzE;SACJ;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;GAGG;AACH,MAAa,uBAAuB;IAKhC,YAAY,YAA0B,EAAE,aAAoB,EAAE,kBAA2B;QACrF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,IAAA,oCAA2B,EAAC,IAAI,CAAC,YAAY,EAAC,kBAAkB,CAAC,CAAC;IAC3F,CAAC;IAED;;;;;;;;;;OAUG;IACH,UAAU,CAAC,YAAoB;QAC3B,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,YAAY,CAAC,WAAW,CAAC,mCAAiB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAC3E,YAAY,CAAC,WAAW,CAAC,iCAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAClE,YAAY,CAAC,WAAW,CAAC,mCAAiB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACtE,MAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,0BAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI;YACA,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAClC,OAAO,YAAY,CAAC;SACvB;QACD,OAAM,GAAG,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SACpG;IACL,CAAC;IAED;;;;;OAKG;IACH,6BAA6B,CAAC,YAAoB;QAC9C,MAAM,eAAe,GAAI,YAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACnE,IAAG,CAAC,eAAe,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAChD;QACD,MAAM,QAAQ,GAAG,IAAI,mEAAgC,CAAC,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;QAC1F,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACjC,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,YAAY,CAAC,WAAW,CAAC,mCAAiB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;QAC3E,YAAY,CAAC,WAAW,CAAC,iCAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAClE,YAAY,CAAC,WAAW,CAAC,iCAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,0BAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACzD,IAAI;YACA,OAAO,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAC1C;QACD,OAAM,GAAG,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SAClG;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,YAAoB,EAAE,IAAkB,EAAE,GAAgB;QACrE,MAAM,OAAO,GAAG,IAAI,uBAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,0BAAU,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,YAAY,CAAC,qBAAqB,EAAE,KAAK,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,EAAE;YACrF,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;SACrG;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACvG,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;CACJ;AAhFD,0DAgFC"}