occam-nominal 1.0.307 → 1.0.310

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 (73) hide show
  1. package/lib/context/file/nominal.js +2 -2
  2. package/lib/element/assertion/contained.js +5 -8
  3. package/lib/element/assertion/subproof.js +12 -15
  4. package/lib/element/combinator/bracketed.js +2 -2
  5. package/lib/element/combinator.js +2 -2
  6. package/lib/element/declaration/combinator.js +3 -3
  7. package/lib/element/declaration/metavariable.js +2 -2
  8. package/lib/element/declaration/variable.js +4 -4
  9. package/lib/element/deduction.js +5 -6
  10. package/lib/element/derivation.js +3 -3
  11. package/lib/element/equality.js +3 -4
  12. package/lib/element/frame.js +5 -5
  13. package/lib/element/goal.js +5 -8
  14. package/lib/element/judgement.js +4 -5
  15. package/lib/element/label.js +5 -6
  16. package/lib/element/metavariable.js +67 -67
  17. package/lib/element/procedureCall.js +25 -25
  18. package/lib/element/proofAssertion/premise.js +26 -19
  19. package/lib/element/proofAssertion/step.js +5 -5
  20. package/lib/element/proofAssertion/supposition.js +4 -5
  21. package/lib/element/proofAssertion.js +6 -13
  22. package/lib/element/rule.js +13 -13
  23. package/lib/element/statement.js +5 -5
  24. package/lib/element/subDerivation.js +3 -3
  25. package/lib/element/subproof.js +6 -6
  26. package/lib/element/substitution/frame.js +3 -5
  27. package/lib/element/substitution/term.js +3 -5
  28. package/lib/element/term.js +22 -22
  29. package/lib/element/topLevelAssertion.js +5 -5
  30. package/lib/pass/continuationZip.js +2 -2
  31. package/lib/process/unify.js +9 -9
  32. package/lib/process/validate.js +9 -9
  33. package/lib/process/validation.js +5 -5
  34. package/lib/process/verify.js +18 -18
  35. package/lib/utilities/compression.js +137 -0
  36. package/lib/utilities/continuation.js +5 -5
  37. package/package.json +3 -3
  38. package/src/context/file/nominal.js +1 -1
  39. package/src/element/assertion/contained.js +4 -10
  40. package/src/element/assertion/subproof.js +11 -17
  41. package/src/element/combinator/bracketed.js +1 -1
  42. package/src/element/combinator.js +1 -1
  43. package/src/element/declaration/combinator.js +2 -2
  44. package/src/element/declaration/metavariable.js +1 -1
  45. package/src/element/declaration/variable.js +3 -3
  46. package/src/element/deduction.js +4 -6
  47. package/src/element/derivation.js +2 -2
  48. package/src/element/equality.js +2 -4
  49. package/src/element/frame.js +4 -4
  50. package/src/element/goal.js +4 -10
  51. package/src/element/judgement.js +4 -6
  52. package/src/element/label.js +4 -6
  53. package/src/element/metavariable.js +79 -80
  54. package/src/element/procedureCall.js +28 -29
  55. package/src/element/proofAssertion/premise.js +32 -23
  56. package/src/element/proofAssertion/step.js +5 -5
  57. package/src/element/proofAssertion/supposition.js +5 -5
  58. package/src/element/proofAssertion.js +7 -19
  59. package/src/element/rule.js +12 -12
  60. package/src/element/statement.js +6 -4
  61. package/src/element/subDerivation.js +2 -2
  62. package/src/element/subproof.js +5 -5
  63. package/src/element/substitution/frame.js +4 -6
  64. package/src/element/substitution/term.js +4 -6
  65. package/src/element/term.js +25 -27
  66. package/src/element/topLevelAssertion.js +4 -4
  67. package/src/pass/continuationZip.js +1 -1
  68. package/src/process/unify.js +8 -9
  69. package/src/process/validate.js +8 -8
  70. package/src/process/validation.js +4 -4
  71. package/src/process/verify.js +17 -17
  72. package/src/utilities/compression.js +115 -0
  73. package/src/utilities/continuation.js +4 -4
@@ -52,8 +52,7 @@ const _default = (0, _elements.define)(class SubproofAssertion extends _assertio
52
52
  if (validAssertion !== null) {
53
53
  const subproofAssertion = validAssertion; ///
54
54
  context.debug(`...the '${subproofAssertionString}' subproof assertion is already valid.`);
55
- continuation(subproofAssertion);
56
- return;
55
+ return continuation(subproofAssertion);
57
56
  }
58
57
  let subproofAssertion = null;
59
58
  this.validateStatements(context, (statementsValidate)=>{
@@ -69,18 +68,18 @@ const _default = (0, _elements.define)(class SubproofAssertion extends _assertio
69
68
  if (validates) {
70
69
  context.debug(`...validated the '${subproofAssertionString}' subproof assertion.`);
71
70
  }
72
- continuation(subproofAssertion);
71
+ return continuation(subproofAssertion);
73
72
  });
74
73
  }
75
74
  validateStatements(context, continuation) {
76
- every(this.statements, (statement, continuation)=>{
75
+ return every(this.statements, (statement, continuation)=>{
77
76
  (0, _context.descend)((context)=>{
78
77
  statement.validate(context, (statement)=>{
79
78
  let statementValidates = false;
80
79
  if (statement !== null) {
81
80
  statementValidates = true;
82
81
  }
83
- continuation(statementValidates);
82
+ return continuation(statementValidates);
84
83
  });
85
84
  }, context);
86
85
  }, continuation);
@@ -108,8 +107,7 @@ const _default = (0, _elements.define)(class SubproofAssertion extends _assertio
108
107
  this.unifyLastStep(lastStep, generalContext, specificContext, (lastStepUnifies)=>{
109
108
  let subproofUnifies = false;
110
109
  if (!lastStepUnifies) {
111
- continuation(subproofUnifies);
112
- return;
110
+ return continuation(subproofUnifies);
113
111
  }
114
112
  const suppositions = subproof.getSuppositions();
115
113
  this.unifySuppositions(suppositions, generalContext, specificContext, (suppositionsUnify)=>{
@@ -119,7 +117,7 @@ const _default = (0, _elements.define)(class SubproofAssertion extends _assertio
119
117
  if (subproofUnifies) {
120
118
  context.debug(`...unified the '${subproofString}' subproof with the '${subproofAssertionString}' subproof assertion.`);
121
119
  }
122
- continuation(subproofUnifies);
120
+ return continuation(subproofUnifies);
123
121
  });
124
122
  });
125
123
  }
@@ -139,7 +137,7 @@ const _default = (0, _elements.define)(class SubproofAssertion extends _assertio
139
137
  if (lastStepUnifies) {
140
138
  context.debug(`...unified the '${lastStepString}' last step with the '${deducedStatementString}' deduced statement.`);
141
139
  }
142
- continuation(lastStepUnifies);
140
+ return continuation(lastStepUnifies);
143
141
  });
144
142
  }, specificContext);
145
143
  }
@@ -177,7 +175,7 @@ const _default = (0, _elements.define)(class SubproofAssertion extends _assertio
177
175
  if (suppositionUnifies) {
178
176
  context.debug(`...unified the '${suppositionString}' supposition with the '${supposedStatementString}' supposed statement.`);
179
177
  }
180
- continuation(suppositionUnifies);
178
+ return continuation(suppositionUnifies);
181
179
  });
182
180
  }, specificContext);
183
181
  }
@@ -185,13 +183,12 @@ const _default = (0, _elements.define)(class SubproofAssertion extends _assertio
185
183
  const supposedStatements = this.getSupposedStatements(), suppositionsLength = suppositions.length, supposedStatementsLength = supposedStatements.length;
186
184
  if (suppositionsLength !== supposedStatementsLength) {
187
185
  const suppositionsUnify = false;
188
- continuation(suppositionsUnify);
189
- return;
186
+ return continuation(suppositionsUnify);
190
187
  }
191
188
  let index = -1;
192
- backwardsEvery(suppositions, (supposition, continuation)=>{
189
+ return backwardsEvery(suppositions, (supposition, continuation)=>{
193
190
  index++;
194
- this.unifySupposition(supposition, index, generalContext, specificContext, continuation);
191
+ return this.unifySupposition(supposition, index, generalContext, specificContext, continuation);
195
192
  }, continuation);
196
193
  }
197
194
  static name = "SubproofAssertion";
@@ -220,4 +217,4 @@ function statementsFromSubproofAssertionNode(subproofAssertionNode, context) {
220
217
  return statements;
221
218
  }
222
219
 
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zdWJwcm9vZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBBc3NlcnRpb24gZnJvbSBcIi4uL2Fzc2VydGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlU3VicHJvb2ZBc3NlcnRpb24gfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgZGVzY2VuZCwgcmVjb25jaWxlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgc3VicHJvb2ZBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5jb25zdCB7IGxhc3QsIGZyb250IH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWtQb2ludEZyb21KU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzLFxuICAgICAgeyBldmVyeSwgYmFja3dhcmRzRXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFN1YnByb29mQXNzZXJ0aW9uIGV4dGVuZHMgQXNzZXJ0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBzdGF0ZW1lbnRzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RhdGVtZW50cyA9IHN0YXRlbWVudHM7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudHM7XG4gIH1cblxuICBnZXREZWR1Y2VkU3RhdGVtZW50KCkge1xuICAgIGNvbnN0IGxhc3RTdGF0ZW1lbnQgPSBsYXN0KHRoaXMuc3RhdGVtZW50cyksXG4gICAgICAgICAgZGVkdWNlZFN0YXRlbWVudCA9IGxhc3RTdGF0ZW1lbnQ7IC8vL1xuXG4gICAgcmV0dXJuIGRlZHVjZWRTdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdXBwb3NlZFN0YXRlbWVudChpbmRleCkge1xuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMuc3RhdGVtZW50c1tpbmRleF0sXG4gICAgICAgICAgc3VwcG9zZWRTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7ICAvLy9cblxuICAgIHJldHVybiBzdXBwb3NlZFN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN1cHBvc2VkU3RhdGVtZW50cygpIHtcbiAgICBjb25zdCBmcm9udFN0YXRlbWVudHMgPSBmcm9udCh0aGlzLnN0YXRlbWVudHMpLFxuICAgICAgICAgIHN1cHBvc2VkU3RhdGVtZW50cyA9IGZyb250U3RhdGVtZW50czsgIC8vL1xuXG4gICAgcmV0dXJuIHN1cHBvc2VkU3RhdGVtZW50cztcbiAgfVxuXG4gIGdldFN1YnByb29mQXNzZXJ0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gc3VicHJvb2ZBc3NlcnRpb25Ob2RlO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3Qgc3VicHJvb2ZBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdWJwcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgdmFsaWRBc3NlcnRpb24gPSB0aGlzLmZpbmRWYWxpZEFzc2VydGlvbihjb250ZXh0KTtcblxuICAgIGlmICh2YWxpZEFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3VicHJvb2ZBc3NlcnRpb24gPSB2YWxpZEFzc2VydGlvbjsgLy8vXG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnRoZSAnJHtzdWJwcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIGFzc2VydGlvbiBpcyBhbHJlYWR5IHZhbGlkLmApO1xuXG4gICAgICBjb250aW51YXRpb24oc3VicHJvb2ZBc3NlcnRpb24pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHN1YnByb29mQXNzZXJ0aW9uID0gbnVsbDtcblxuICAgIHRoaXMudmFsaWRhdGVTdGF0ZW1lbnRzKGNvbnRleHQsIChzdGF0ZW1lbnRzVmFsaWRhdGUpID0+IHtcbiAgICAgIGxldCB2YWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgaWYgKHN0YXRlbWVudHNWYWxpZGF0ZSkge1xuICAgICAgICB2YWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnN0IGFzc2VydGlvbiA9IHRoaXM7IC8vL1xuXG4gICAgICAgIHN1YnByb29mQXNzZXJ0aW9uID0gYXNzZXJ0aW9uOyAgLy8vXG5cbiAgICAgICAgY29udGV4dC5hZGRBc3NlcnRpb24oYXNzZXJ0aW9uKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3N1YnByb29mQXNzZXJ0aW9uU3RyaW5nfScgc3VicHJvb2YgYXNzZXJ0aW9uLmApO1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24oc3VicHJvb2ZBc3NlcnRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGVTdGF0ZW1lbnRzKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGV2ZXJ5KHRoaXMuc3RhdGVtZW50cywgKHN0YXRlbWVudCwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICBkZXNjZW5kKChjb250ZXh0KSA9PiB7XG4gICAgICAgIHN0YXRlbWVudC52YWxpZGF0ZShjb250ZXh0LCAoc3RhdGVtZW50KSA9PiB7XG4gICAgICAgICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc3RhdGVtZW50VmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250aW51YXRpb24oc3RhdGVtZW50VmFsaWRhdGVzKTtcbiAgICAgICAgfSk7XG4gICAgICB9LCBjb250ZXh0KTtcbiAgICB9LCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgdW5pZnlTY2hlbWEoc2NoZW1hLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHNjaGVtYVVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQsICAvLy9cbiAgICAgICAgICBzY2hlbWFTdHJpbmcgPSBzY2hlbWEuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3NjaGVtYVN0cmluZ30nIHNjaGVtYSB3aXRoIHRoZSAnJHtzdWJwcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgZGVkdWN0aW9uID0gc2NoZW1hLmdldERlZHVjdGlvbigpLFxuICAgICAgICAgIGRlZHVjdGlvblVuaWZpZXMgPSB0aGlzLnVuaWZ5RGVkdWN0aW9uKGRlZHVjdGlvbiwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICBpZiAoZGVkdWN0aW9uVW5pZmllcykge1xuICAgICAgY29uc3Qgc3VwcG9zaXRpb25zID0gc2NoZW1hLmdldFN1cHBvc2l0aW9ucygpLFxuICAgICAgICAgICAgc3VwcG9zaXRpb25zVW5pZnkgPSB0aGlzLnVuaWZ5U3VwcG9zaXRpb25zKHN1cHBvc2l0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgIGlmIChzdXBwb3NpdGlvbnNVbmlmeSkge1xuICAgICAgICBzY2hlbWFVbmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2NoZW1hVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hIHdpdGggdGhlICcke3N1YnByb29mQXNzZXJ0aW9uU3RyaW5nfScgc3VicHJvb2YgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzY2hlbWFVbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdWJwcm9vZihzdWJwcm9vZiwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIHN1YnByb29mU3RyaW5nID0gc3VicHJvb2YuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlICcke3N1YnByb29mQXNzZXJ0aW9uU3RyaW5nfScgc3VicHJvb2YgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBsYXN0U3RlcCA9IHN1YnByb29mLmdldExhc3RTdGVwKCk7XG5cbiAgICB0aGlzLnVuaWZ5TGFzdFN0ZXAobGFzdFN0ZXAsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQsIChsYXN0U3RlcFVuaWZpZXMpID0+IHtcbiAgICAgIGxldCBzdWJwcm9vZlVuaWZpZXMgPSBmYWxzZTtcblxuICAgICAgaWYgKCFsYXN0U3RlcFVuaWZpZXMpIHtcbiAgICAgICAgY29udGludWF0aW9uKHN1YnByb29mVW5pZmllcyk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzdXBwb3NpdGlvbnMgPSBzdWJwcm9vZi5nZXRTdXBwb3NpdGlvbnMoKTtcblxuICAgICAgdGhpcy51bmlmeVN1cHBvc2l0aW9ucyhzdXBwb3NpdGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQsIChzdXBwb3NpdGlvbnNVbmlmeSkgPT4ge1xuICAgICAgICBpZiAoc3VwcG9zaXRpb25zVW5pZnkpIHtcbiAgICAgICAgICBzdWJwcm9vZlVuaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1YnByb29mVW5pZmllcykge1xuICAgICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgJyR7c3VicHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBzdWJwcm9vZiBhc3NlcnRpb24uYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51YXRpb24oc3VicHJvb2ZVbmlmaWVzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgdW5pZnlMYXN0U3RlcChsYXN0U3RlcCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIGxhc3RTdGVwU3RyaW5nID0gbGFzdFN0ZXAuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgZGVkdWNlZFN0YXRlbWVudCA9IHRoaXMuZ2V0RGVkdWNlZFN0YXRlbWVudCgpLFxuICAgICAgICAgIGRlZHVjZWRTdGF0ZW1lbnRTdHJpbmcgPSBkZWR1Y2VkU3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke2xhc3RTdGVwU3RyaW5nfScgbGFzdCBzdGVwIHdpdGggdGhlICcke2RlZHVjZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZWR1Y2VkIHN0YXRlbWVudC4uLmApXG5cbiAgICBjb25zdCBsYXN0U3RlcENvbnRleHQgPSBsYXN0U3RlcC5nZXRDb250ZXh0KCk7XG5cbiAgICBzcGVjaWZpY0NvbnRleHQgPSBsYXN0U3RlcENvbnRleHQ7ICAvLy9cblxuICAgIHJlY29uY2lsZSgoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBsYXN0U3RlcFN0YXRlbWVudCA9IGxhc3RTdGVwLmdldFN0YXRlbWVudCgpO1xuXG4gICAgICBkZWR1Y2VkU3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KGxhc3RTdGVwU3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCAobGFzdFN0ZXBTdGF0ZW1lbnRVbmlmaWVzKSA9PiB7XG4gICAgICAgIGxldCBsYXN0U3RlcFVuaWZpZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAobGFzdFN0ZXBTdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgbGFzdFN0ZXBVbmlmaWVzID0gdHJ1ZTtcblxuICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoY29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGFzdFN0ZXBVbmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7bGFzdFN0ZXBTdHJpbmd9JyBsYXN0IHN0ZXAgd2l0aCB0aGUgJyR7ZGVkdWNlZFN0YXRlbWVudFN0cmluZ30nIGRlZHVjZWQgc3RhdGVtZW50LmApXG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51YXRpb24obGFzdFN0ZXBVbmlmaWVzKTtcbiAgICAgIH0pO1xuICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG4gIH1cblxuICB1bmlmeURlZHVjdGlvbihkZWR1Y3Rpb24sIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBsZXQgZGVkdWN0aW9uVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIGRlZHVjdGlvblN0cmluZyA9IGRlZHVjdGlvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBkZWR1Y2VkU3RhdGVtZW50ID0gdGhpcy5nZXREZWR1Y2VkU3RhdGVtZW50KCksXG4gICAgICAgICAgZGVkdWNlZFN0YXRlbWVudFN0cmluZyA9IGRlZHVjZWRTdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7ZGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uIHdpdGggdGhlICcke2RlZHVjZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZWR1Y2VkIHN0YXRlbWVudC4uLmApXG5cbiAgICBjb25zdCBkZWR1Y3Rpb25Db250ZXh0ID0gZGVkdWN0aW9uLmdldENvbnRleHQoKTtcblxuICAgIHNwZWNpZmljQ29udGV4dCA9IGRlZHVjdGlvbkNvbnRleHQ7ICAvLy9cblxuICAgIHJlY29uY2lsZSgoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBkZWR1Y3Rpb25TdGF0ZW1lbnQgPSBkZWR1Y3Rpb24uZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgICBkZWR1Y3Rpb25TdGF0ZW1lbnRVbmlmaWVzID0gZGVkdWNlZFN0YXRlbWVudC51bmlmeVN0YXRlbWVudChkZWR1Y3Rpb25TdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICBpZiAoZGVkdWN0aW9uU3RhdGVtZW50VW5pZmllcykge1xuICAgICAgICBkZWR1Y3Rpb25VbmlmaWVzID0gdHJ1ZTtcblxuICAgICAgICBzcGVjaWZpY0NvbnRleHQuY29tbWl0KGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICBpZiAoZGVkdWN0aW9uVW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7ZGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uIHdpdGggdGhlICcke2RlZHVjZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZWR1Y2VkIHN0YXRlbWVudC5gKVxuICAgIH1cblxuICAgIHJldHVybiBkZWR1Y3Rpb25VbmlmaWVzO1xuICB9XG5cbiAgdW5pZnlTdXBwb3NpdGlvbihzdXBwb3NpdGlvbiwgaW5kZXgsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQsICAvLy9cbiAgICAgICAgICBzdXBwb3NlZFN0YXRlbWVudCA9IHRoaXMuZ2V0U3VwcG9zZWRTdGF0ZW1lbnQoaW5kZXgpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RyaW5nID0gc3VwcG9zaXRpb24uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgc3VwcG9zZWRTdGF0ZW1lbnRTdHJpbmcgPSBzdXBwb3NlZFN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uIHdpdGggdGhlICcke3N1cHBvc2VkU3RhdGVtZW50U3RyaW5nfScgc3VwcG9zZWQgc3RhdGVtZW50Li4uYClcblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uQ29udGV4dCA9IHN1cHBvc2l0aW9uLmdldENvbnRleHQoKTtcblxuICAgIHNwZWNpZmljQ29udGV4dCA9IHN1cHBvc2l0aW9uQ29udGV4dDsgIC8vL1xuXG4gICAgcmVjb25jaWxlKChzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN1cHBvc2l0aW9uU3RhdGVtZW50ID0gc3VwcG9zaXRpb24uZ2V0U3RhdGVtZW50KCk7XG5cbiAgICAgIHN1cHBvc2VkU3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN1cHBvc2l0aW9uU3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCAoc3VwcG9zaXRpb25TdGF0ZW1lbnRVbmlmaWVzKSA9PiB7XG4gICAgICAgIGxldCBzdXBwb3NpdGlvblVuaWZpZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAoc3VwcG9zaXRpb25TdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgc3VwcG9zaXRpb25VbmlmaWVzID0gdHJ1ZTtcblxuICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoY29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3VwcG9zaXRpb25VbmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbiB3aXRoIHRoZSAnJHtzdXBwb3NlZFN0YXRlbWVudFN0cmluZ30nIHN1cHBvc2VkIHN0YXRlbWVudC5gKVxuICAgICAgICB9XG5cbiAgICAgICAgY29udGludWF0aW9uKHN1cHBvc2l0aW9uVW5pZmllcyk7XG4gICAgICB9KTtcbiAgICB9LCBzcGVjaWZpY0NvbnRleHQpO1xuICB9XG5cbiAgdW5pZnlTdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdXBwb3NlZFN0YXRlbWVudHMgPSB0aGlzLmdldFN1cHBvc2VkU3RhdGVtZW50cygpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uc0xlbmd0aCA9IHN1cHBvc2l0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgc3VwcG9zZWRTdGF0ZW1lbnRzTGVuZ3RoID0gc3VwcG9zZWRTdGF0ZW1lbnRzLmxlbmd0aDtcblxuICAgIGlmIChzdXBwb3NpdGlvbnNMZW5ndGggIT09IHN1cHBvc2VkU3RhdGVtZW50c0xlbmd0aCkge1xuICAgICAgY29uc3Qgc3VwcG9zaXRpb25zVW5pZnkgPSBmYWxzZTtcblxuICAgICAgY29udGludWF0aW9uKHN1cHBvc2l0aW9uc1VuaWZ5KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBpbmRleCA9IC0xO1xuXG4gICAgYmFja3dhcmRzRXZlcnkoc3VwcG9zaXRpb25zLCAoc3VwcG9zaXRpb24sIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgdGhpcy51bmlmeVN1cHBvc2l0aW9uKHN1cHBvc2l0aW9uLCBpbmRleCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICB9LCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlN1YnByb29mQXNzZXJ0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgc3VicHJvb3JBc3NlcnRpb24gPSBudWxsO1xuXG4gICAgY29uc3QgeyBuYW1lIH0gPSBqc29uO1xuXG4gICAgaWYgKHRoaXMubmFtZSA9PT0gbmFtZSkge1xuICAgICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIHN1YnByb29mQXNzZXJ0aW9uTm9kZSA9IGluc3RhbnRpYXRlU3VicHJvb2ZBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IHN1YnByb29mQXNzZXJ0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnRzID0gc3RhdGVtZW50c0Zyb21TdWJwcm9vZkFzc2VydGlvbk5vZGUoc3VicHJvb2ZBc3NlcnRpb25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgICBzdWJwcm9vckFzc2VydGlvbiA9IG5ldyBTdWJwcm9vZkFzc2VydGlvbihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudHMpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29yQXNzZXJ0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb24gPSBzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHN1YnByb29mQXNzZXJ0aW9uO1xuICB9XG59KTtcblxuZnVuY3Rpb24gc3RhdGVtZW50c0Zyb21TdWJwcm9vZkFzc2VydGlvbk5vZGUoc3VicHJvb2ZBc3NlcnRpb25Ob2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGVzID0gc3VicHJvb2ZBc3NlcnRpb25Ob2RlLmdldFN0YXRlbWVudE5vZGVzKCksXG4gICAgICAgIHN0YXRlbWVudHMgPSBzdGF0ZW1lbnROb2Rlcy5tYXAoKHN0YXRlbWV0Tm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IGNvbnRleHQuZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZShzdGF0ZW1ldE5vZGUpO1xuXG4gICAgICAgICAgcmV0dXJuIHN0YXRlbWVudDtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudHM7XG59XG4iXSwibmFtZXMiOlsibGFzdCIsImZyb250IiwiYXJyYXlVdGlsaXRpZXMiLCJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZXZlcnkiLCJiYWNrd2FyZHNFdmVyeSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIlN1YnByb29mQXNzZXJ0aW9uIiwiQXNzZXJ0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50cyIsImdldFN0YXRlbWVudHMiLCJnZXREZWR1Y2VkU3RhdGVtZW50IiwibGFzdFN0YXRlbWVudCIsImRlZHVjZWRTdGF0ZW1lbnQiLCJnZXRTdXBwb3NlZFN0YXRlbWVudCIsImluZGV4Iiwic3RhdGVtZW50Iiwic3VwcG9zZWRTdGF0ZW1lbnQiLCJnZXRTdXBwb3NlZFN0YXRlbWVudHMiLCJmcm9udFN0YXRlbWVudHMiLCJzdXBwb3NlZFN0YXRlbWVudHMiLCJnZXRTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJnZXROb2RlIiwic3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwidmFsaWRhdGUiLCJjb250aW51YXRpb24iLCJzdWJwcm9vZkFzc2VydGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsaWRBc3NlcnRpb24iLCJmaW5kVmFsaWRBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbiIsImRlYnVnIiwidmFsaWRhdGVTdGF0ZW1lbnRzIiwic3RhdGVtZW50c1ZhbGlkYXRlIiwidmFsaWRhdGVzIiwiYXNzZXJ0aW9uIiwiYWRkQXNzZXJ0aW9uIiwiZGVzY2VuZCIsInN0YXRlbWVudFZhbGlkYXRlcyIsInVuaWZ5U2NoZW1hIiwic2NoZW1hIiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJzY2hlbWFVbmlmaWVzIiwic2NoZW1hU3RyaW5nIiwiZGVkdWN0aW9uIiwiZ2V0RGVkdWN0aW9uIiwiZGVkdWN0aW9uVW5pZmllcyIsInVuaWZ5RGVkdWN0aW9uIiwic3VwcG9zaXRpb25zIiwiZ2V0U3VwcG9zaXRpb25zIiwic3VwcG9zaXRpb25zVW5pZnkiLCJ1bmlmeVN1cHBvc2l0aW9ucyIsInVuaWZ5U3VicHJvb2YiLCJzdWJwcm9vZiIsInN1YnByb29mU3RyaW5nIiwibGFzdFN0ZXAiLCJnZXRMYXN0U3RlcCIsInVuaWZ5TGFzdFN0ZXAiLCJsYXN0U3RlcFVuaWZpZXMiLCJzdWJwcm9vZlVuaWZpZXMiLCJsYXN0U3RlcFN0cmluZyIsImRlZHVjZWRTdGF0ZW1lbnRTdHJpbmciLCJsYXN0U3RlcENvbnRleHQiLCJnZXRDb250ZXh0IiwicmVjb25jaWxlIiwibGFzdFN0ZXBTdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudCIsImxhc3RTdGVwU3RhdGVtZW50VW5pZmllcyIsImNvbW1pdCIsImRlZHVjdGlvblN0cmluZyIsImRlZHVjdGlvbkNvbnRleHQiLCJkZWR1Y3Rpb25TdGF0ZW1lbnQiLCJkZWR1Y3Rpb25TdGF0ZW1lbnRVbmlmaWVzIiwidW5pZnlTdXBwb3NpdGlvbiIsInN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25TdHJpbmciLCJzdXBwb3NlZFN0YXRlbWVudFN0cmluZyIsInN1cHBvc2l0aW9uQ29udGV4dCIsInN1cHBvc2l0aW9uU3RhdGVtZW50Iiwic3VwcG9zaXRpb25TdGF0ZW1lbnRVbmlmaWVzIiwic3VwcG9zaXRpb25VbmlmaWVzIiwic3VwcG9zaXRpb25zTGVuZ3RoIiwibGVuZ3RoIiwic3VwcG9zZWRTdGF0ZW1lbnRzTGVuZ3RoIiwibmFtZSIsImZyb21KU09OIiwianNvbiIsInN1YnByb29yQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZVN1YnByb29mQXNzZXJ0aW9uIiwic3RhdGVtZW50c0Zyb21TdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsInN1YnByb29mQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlcyIsImdldFN0YXRlbWVudE5vZGVz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
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zdWJwcm9vZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBBc3NlcnRpb24gZnJvbSBcIi4uL2Fzc2VydGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlU3VicHJvb2ZBc3NlcnRpb24gfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgZGVzY2VuZCwgcmVjb25jaWxlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgc3VicHJvb2ZBc3NlcnRpb25Gcm9tU3RhdGVtZW50Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5jb25zdCB7IGxhc3QsIGZyb250IH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWtQb2ludEZyb21KU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzLFxuICAgICAgeyBldmVyeSwgYmFja3dhcmRzRXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFN1YnByb29mQXNzZXJ0aW9uIGV4dGVuZHMgQXNzZXJ0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBzdGF0ZW1lbnRzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RhdGVtZW50cyA9IHN0YXRlbWVudHM7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudHM7XG4gIH1cblxuICBnZXREZWR1Y2VkU3RhdGVtZW50KCkge1xuICAgIGNvbnN0IGxhc3RTdGF0ZW1lbnQgPSBsYXN0KHRoaXMuc3RhdGVtZW50cyksXG4gICAgICAgICAgZGVkdWNlZFN0YXRlbWVudCA9IGxhc3RTdGF0ZW1lbnQ7IC8vL1xuXG4gICAgcmV0dXJuIGRlZHVjZWRTdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdXBwb3NlZFN0YXRlbWVudChpbmRleCkge1xuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMuc3RhdGVtZW50c1tpbmRleF0sXG4gICAgICAgICAgc3VwcG9zZWRTdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7ICAvLy9cblxuICAgIHJldHVybiBzdXBwb3NlZFN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN1cHBvc2VkU3RhdGVtZW50cygpIHtcbiAgICBjb25zdCBmcm9udFN0YXRlbWVudHMgPSBmcm9udCh0aGlzLnN0YXRlbWVudHMpLFxuICAgICAgICAgIHN1cHBvc2VkU3RhdGVtZW50cyA9IGZyb250U3RhdGVtZW50czsgIC8vL1xuXG4gICAgcmV0dXJuIHN1cHBvc2VkU3RhdGVtZW50cztcbiAgfVxuXG4gIGdldFN1YnByb29mQXNzZXJ0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb25Ob2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gc3VicHJvb2ZBc3NlcnRpb25Ob2RlO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3Qgc3VicHJvb2ZBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzdWJwcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIGFzc2VydGlvbi4uLmApO1xuXG4gICAgY29uc3QgdmFsaWRBc3NlcnRpb24gPSB0aGlzLmZpbmRWYWxpZEFzc2VydGlvbihjb250ZXh0KTtcblxuICAgIGlmICh2YWxpZEFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3VicHJvb2ZBc3NlcnRpb24gPSB2YWxpZEFzc2VydGlvbjsgLy8vXG5cbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnRoZSAnJHtzdWJwcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIGFzc2VydGlvbiBpcyBhbHJlYWR5IHZhbGlkLmApO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1YnByb29mQXNzZXJ0aW9uKTtcbiAgICB9XG5cbiAgICBsZXQgc3VicHJvb2ZBc3NlcnRpb24gPSBudWxsO1xuXG4gICAgdGhpcy52YWxpZGF0ZVN0YXRlbWVudHMoY29udGV4dCwgKHN0YXRlbWVudHNWYWxpZGF0ZSkgPT4ge1xuICAgICAgbGV0IHZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgICBpZiAoc3RhdGVtZW50c1ZhbGlkYXRlKSB7XG4gICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgY29uc3QgYXNzZXJ0aW9uID0gdGhpczsgLy8vXG5cbiAgICAgICAgc3VicHJvb2ZBc3NlcnRpb24gPSBhc3NlcnRpb247ICAvLy9cblxuICAgICAgICBjb250ZXh0LmFkZEFzc2VydGlvbihhc3NlcnRpb24pO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c3VicHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBzdWJwcm9vZiBhc3NlcnRpb24uYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VicHJvb2ZBc3NlcnRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgdmFsaWRhdGVTdGF0ZW1lbnRzKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIHJldHVybiBldmVyeSh0aGlzLnN0YXRlbWVudHMsIChzdGF0ZW1lbnQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgZGVzY2VuZCgoY29udGV4dCkgPT4ge1xuICAgICAgICBzdGF0ZW1lbnQudmFsaWRhdGUoY29udGV4dCwgKHN0YXRlbWVudCkgPT4ge1xuICAgICAgICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHN0YXRlbWVudFZhbGlkYXRlcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRWYWxpZGF0ZXMpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICB1bmlmeVNjaGVtYShzY2hlbWEsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBsZXQgc2NoZW1hVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIHNjaGVtYVN0cmluZyA9IHNjaGVtYS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzdWJwcm9vZkFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c2NoZW1hU3RyaW5nfScgc2NoZW1hIHdpdGggdGhlICcke3N1YnByb29mQXNzZXJ0aW9uU3RyaW5nfScgc3VicHJvb2YgYXNzZXJ0aW9uLi4uYCk7XG5cbiAgICBjb25zdCBkZWR1Y3Rpb24gPSBzY2hlbWEuZ2V0RGVkdWN0aW9uKCksXG4gICAgICAgICAgZGVkdWN0aW9uVW5pZmllcyA9IHRoaXMudW5pZnlEZWR1Y3Rpb24oZGVkdWN0aW9uLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChkZWR1Y3Rpb25VbmlmaWVzKSB7XG4gICAgICBjb25zdCBzdXBwb3NpdGlvbnMgPSBzY2hlbWEuZ2V0U3VwcG9zaXRpb25zKCksXG4gICAgICAgICAgICBzdXBwb3NpdGlvbnNVbmlmeSA9IHRoaXMudW5pZnlTdXBwb3NpdGlvbnMoc3VwcG9zaXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgaWYgKHN1cHBvc2l0aW9uc1VuaWZ5KSB7XG4gICAgICAgIHNjaGVtYVVuaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzY2hlbWFVbmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzY2hlbWFTdHJpbmd9JyBzY2hlbWEgd2l0aCB0aGUgJyR7c3VicHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBzdWJwcm9vZiBhc3NlcnRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjaGVtYVVuaWZpZXM7XG4gIH1cblxuICB1bmlmeVN1YnByb29mKHN1YnByb29mLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgc3VicHJvb2ZTdHJpbmcgPSBzdWJwcm9vZi5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzdWJwcm9vZkFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgJyR7c3VicHJvb2ZBc3NlcnRpb25TdHJpbmd9JyBzdWJwcm9vZiBhc3NlcnRpb24uLi5gKTtcblxuICAgIGNvbnN0IGxhc3RTdGVwID0gc3VicHJvb2YuZ2V0TGFzdFN0ZXAoKTtcblxuICAgIHRoaXMudW5pZnlMYXN0U3RlcChsYXN0U3RlcCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKGxhc3RTdGVwVW5pZmllcykgPT4ge1xuICAgICAgbGV0IHN1YnByb29mVW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICBpZiAoIWxhc3RTdGVwVW5pZmllcykge1xuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1YnByb29mVW5pZmllcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN1cHBvc2l0aW9ucyA9IHN1YnByb29mLmdldFN1cHBvc2l0aW9ucygpO1xuXG4gICAgICB0aGlzLnVuaWZ5U3VwcG9zaXRpb25zKHN1cHBvc2l0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKHN1cHBvc2l0aW9uc1VuaWZ5KSA9PiB7XG4gICAgICAgIGlmIChzdXBwb3NpdGlvbnNVbmlmeSkge1xuICAgICAgICAgIHN1YnByb29mVW5pZmllcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3VicHJvb2ZVbmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3VicHJvb2ZTdHJpbmd9JyBzdWJwcm9vZiB3aXRoIHRoZSAnJHtzdWJwcm9vZkFzc2VydGlvblN0cmluZ30nIHN1YnByb29mIGFzc2VydGlvbi5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VicHJvb2ZVbmlmaWVzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgdW5pZnlMYXN0U3RlcChsYXN0U3RlcCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIGxhc3RTdGVwU3RyaW5nID0gbGFzdFN0ZXAuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgZGVkdWNlZFN0YXRlbWVudCA9IHRoaXMuZ2V0RGVkdWNlZFN0YXRlbWVudCgpLFxuICAgICAgICAgIGRlZHVjZWRTdGF0ZW1lbnRTdHJpbmcgPSBkZWR1Y2VkU3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke2xhc3RTdGVwU3RyaW5nfScgbGFzdCBzdGVwIHdpdGggdGhlICcke2RlZHVjZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZWR1Y2VkIHN0YXRlbWVudC4uLmApXG5cbiAgICBjb25zdCBsYXN0U3RlcENvbnRleHQgPSBsYXN0U3RlcC5nZXRDb250ZXh0KCk7XG5cbiAgICBzcGVjaWZpY0NvbnRleHQgPSBsYXN0U3RlcENvbnRleHQ7ICAvLy9cblxuICAgIHJlY29uY2lsZSgoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBsYXN0U3RlcFN0YXRlbWVudCA9IGxhc3RTdGVwLmdldFN0YXRlbWVudCgpO1xuXG4gICAgICBkZWR1Y2VkU3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KGxhc3RTdGVwU3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCAobGFzdFN0ZXBTdGF0ZW1lbnRVbmlmaWVzKSA9PiB7XG4gICAgICAgIGxldCBsYXN0U3RlcFVuaWZpZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAobGFzdFN0ZXBTdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgICAgbGFzdFN0ZXBVbmlmaWVzID0gdHJ1ZTtcblxuICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoY29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGFzdFN0ZXBVbmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7bGFzdFN0ZXBTdHJpbmd9JyBsYXN0IHN0ZXAgd2l0aCB0aGUgJyR7ZGVkdWNlZFN0YXRlbWVudFN0cmluZ30nIGRlZHVjZWQgc3RhdGVtZW50LmApXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKGxhc3RTdGVwVW5pZmllcyk7XG4gICAgICB9KTtcbiAgICB9LCBzcGVjaWZpY0NvbnRleHQpO1xuICB9XG5cbiAgdW5pZnlEZWR1Y3Rpb24oZGVkdWN0aW9uLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IGRlZHVjdGlvblVuaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQsICAvLy9cbiAgICAgICAgICBkZWR1Y3Rpb25TdHJpbmcgPSBkZWR1Y3Rpb24uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgZGVkdWNlZFN0YXRlbWVudCA9IHRoaXMuZ2V0RGVkdWNlZFN0YXRlbWVudCgpLFxuICAgICAgICAgIGRlZHVjZWRTdGF0ZW1lbnRTdHJpbmcgPSBkZWR1Y2VkU3RhdGVtZW50LmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbiB3aXRoIHRoZSAnJHtkZWR1Y2VkU3RhdGVtZW50U3RyaW5nfScgZGVkdWNlZCBzdGF0ZW1lbnQuLi5gKVxuXG4gICAgY29uc3QgZGVkdWN0aW9uQ29udGV4dCA9IGRlZHVjdGlvbi5nZXRDb250ZXh0KCk7XG5cbiAgICBzcGVjaWZpY0NvbnRleHQgPSBkZWR1Y3Rpb25Db250ZXh0OyAgLy8vXG5cbiAgICByZWNvbmNpbGUoKHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgZGVkdWN0aW9uU3RhdGVtZW50ID0gZGVkdWN0aW9uLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgICAgZGVkdWN0aW9uU3RhdGVtZW50VW5pZmllcyA9IGRlZHVjZWRTdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoZGVkdWN0aW9uU3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgICAgaWYgKGRlZHVjdGlvblN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgZGVkdWN0aW9uVW5pZmllcyA9IHRydWU7XG5cbiAgICAgICAgc3BlY2lmaWNDb250ZXh0LmNvbW1pdChjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKGRlZHVjdGlvblVuaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbiB3aXRoIHRoZSAnJHtkZWR1Y2VkU3RhdGVtZW50U3RyaW5nfScgZGVkdWNlZCBzdGF0ZW1lbnQuYClcbiAgICB9XG5cbiAgICByZXR1cm4gZGVkdWN0aW9uVW5pZmllcztcbiAgfVxuXG4gIHVuaWZ5U3VwcG9zaXRpb24oc3VwcG9zaXRpb24sIGluZGV4LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gc3BlY2lmaWNDb250ZXh0LCAgLy8vXG4gICAgICAgICAgc3VwcG9zZWRTdGF0ZW1lbnQgPSB0aGlzLmdldFN1cHBvc2VkU3RhdGVtZW50KGluZGV4KSxcbiAgICAgICAgICBzdXBwb3NpdGlvblN0cmluZyA9IHN1cHBvc2l0aW9uLmdldFN0cmluZygpLFxuICAgICAgICAgIHN1cHBvc2VkU3RhdGVtZW50U3RyaW5nID0gc3VwcG9zZWRTdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbiB3aXRoIHRoZSAnJHtzdXBwb3NlZFN0YXRlbWVudFN0cmluZ30nIHN1cHBvc2VkIHN0YXRlbWVudC4uLmApXG5cbiAgICBjb25zdCBzdXBwb3NpdGlvbkNvbnRleHQgPSBzdXBwb3NpdGlvbi5nZXRDb250ZXh0KCk7XG5cbiAgICBzcGVjaWZpY0NvbnRleHQgPSBzdXBwb3NpdGlvbkNvbnRleHQ7ICAvLy9cblxuICAgIHJlY29uY2lsZSgoc3BlY2lmaWNDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBzdXBwb3NpdGlvblN0YXRlbWVudCA9IHN1cHBvc2l0aW9uLmdldFN0YXRlbWVudCgpO1xuXG4gICAgICBzdXBwb3NlZFN0YXRlbWVudC51bmlmeVN0YXRlbWVudChzdXBwb3NpdGlvblN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKHN1cHBvc2l0aW9uU3RhdGVtZW50VW5pZmllcykgPT4ge1xuICAgICAgICBsZXQgc3VwcG9zaXRpb25VbmlmaWVzID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHN1cHBvc2l0aW9uU3RhdGVtZW50VW5pZmllcykge1xuICAgICAgICAgIHN1cHBvc2l0aW9uVW5pZmllcyA9IHRydWU7XG5cbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQuY29tbWl0KGNvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN1cHBvc2l0aW9uVW5pZmllcykge1xuICAgICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24gd2l0aCB0aGUgJyR7c3VwcG9zZWRTdGF0ZW1lbnRTdHJpbmd9JyBzdXBwb3NlZCBzdGF0ZW1lbnQuYClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VwcG9zaXRpb25VbmlmaWVzKTtcbiAgICAgIH0pO1xuICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG4gIH1cblxuICB1bmlmeVN1cHBvc2l0aW9ucyhzdXBwb3NpdGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHN1cHBvc2VkU3RhdGVtZW50cyA9IHRoaXMuZ2V0U3VwcG9zZWRTdGF0ZW1lbnRzKCksXG4gICAgICAgICAgc3VwcG9zaXRpb25zTGVuZ3RoID0gc3VwcG9zaXRpb25zLmxlbmd0aCxcbiAgICAgICAgICBzdXBwb3NlZFN0YXRlbWVudHNMZW5ndGggPSBzdXBwb3NlZFN0YXRlbWVudHMubGVuZ3RoO1xuXG4gICAgaWYgKHN1cHBvc2l0aW9uc0xlbmd0aCAhPT0gc3VwcG9zZWRTdGF0ZW1lbnRzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdXBwb3NpdGlvbnNVbmlmeSA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1cHBvc2l0aW9uc1VuaWZ5KTtcbiAgICB9XG5cbiAgICBsZXQgaW5kZXggPSAtMTtcblxuICAgIHJldHVybiBiYWNrd2FyZHNFdmVyeShzdXBwb3NpdGlvbnMsIChzdXBwb3NpdGlvbiwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICBpbmRleCsrO1xuXG4gICAgICByZXR1cm4gdGhpcy51bmlmeVN1cHBvc2l0aW9uKHN1cHBvc2l0aW9uLCBpbmRleCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICB9LCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlN1YnByb29mQXNzZXJ0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgc3VicHJvb3JBc3NlcnRpb24gPSBudWxsO1xuXG4gICAgY29uc3QgeyBuYW1lIH0gPSBqc29uO1xuXG4gICAgaWYgKHRoaXMubmFtZSA9PT0gbmFtZSkge1xuICAgICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIHN1YnByb29mQXNzZXJ0aW9uTm9kZSA9IGluc3RhbnRpYXRlU3VicHJvb2ZBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IHN1YnByb29mQXNzZXJ0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnRzID0gc3RhdGVtZW50c0Zyb21TdWJwcm9vZkFzc2VydGlvbk5vZGUoc3VicHJvb2ZBc3NlcnRpb25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgICBzdWJwcm9vckFzc2VydGlvbiA9IG5ldyBTdWJwcm9vZkFzc2VydGlvbihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudHMpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnByb29yQXNzZXJ0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb24gPSBzdWJwcm9vZkFzc2VydGlvbkZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHN1YnByb29mQXNzZXJ0aW9uO1xuICB9XG59KTtcblxuZnVuY3Rpb24gc3RhdGVtZW50c0Zyb21TdWJwcm9vZkFzc2VydGlvbk5vZGUoc3VicHJvb2ZBc3NlcnRpb25Ob2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGVzID0gc3VicHJvb2ZBc3NlcnRpb25Ob2RlLmdldFN0YXRlbWVudE5vZGVzKCksXG4gICAgICAgIHN0YXRlbWVudHMgPSBzdGF0ZW1lbnROb2Rlcy5tYXAoKHN0YXRlbWV0Tm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IGNvbnRleHQuZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZShzdGF0ZW1ldE5vZGUpO1xuXG4gICAgICAgICAgcmV0dXJuIHN0YXRlbWVudDtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudHM7XG59XG4iXSwibmFtZXMiOlsibGFzdCIsImZyb250IiwiYXJyYXlVdGlsaXRpZXMiLCJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZXZlcnkiLCJiYWNrd2FyZHNFdmVyeSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIlN1YnByb29mQXNzZXJ0aW9uIiwiQXNzZXJ0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50cyIsImdldFN0YXRlbWVudHMiLCJnZXREZWR1Y2VkU3RhdGVtZW50IiwibGFzdFN0YXRlbWVudCIsImRlZHVjZWRTdGF0ZW1lbnQiLCJnZXRTdXBwb3NlZFN0YXRlbWVudCIsImluZGV4Iiwic3RhdGVtZW50Iiwic3VwcG9zZWRTdGF0ZW1lbnQiLCJnZXRTdXBwb3NlZFN0YXRlbWVudHMiLCJmcm9udFN0YXRlbWVudHMiLCJzdXBwb3NlZFN0YXRlbWVudHMiLCJnZXRTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJnZXROb2RlIiwic3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwidmFsaWRhdGUiLCJjb250aW51YXRpb24iLCJzdWJwcm9vZkFzc2VydGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsaWRBc3NlcnRpb24iLCJmaW5kVmFsaWRBc3NlcnRpb24iLCJzdWJwcm9vZkFzc2VydGlvbiIsImRlYnVnIiwidmFsaWRhdGVTdGF0ZW1lbnRzIiwic3RhdGVtZW50c1ZhbGlkYXRlIiwidmFsaWRhdGVzIiwiYXNzZXJ0aW9uIiwiYWRkQXNzZXJ0aW9uIiwiZGVzY2VuZCIsInN0YXRlbWVudFZhbGlkYXRlcyIsInVuaWZ5U2NoZW1hIiwic2NoZW1hIiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJzY2hlbWFVbmlmaWVzIiwic2NoZW1hU3RyaW5nIiwiZGVkdWN0aW9uIiwiZ2V0RGVkdWN0aW9uIiwiZGVkdWN0aW9uVW5pZmllcyIsInVuaWZ5RGVkdWN0aW9uIiwic3VwcG9zaXRpb25zIiwiZ2V0U3VwcG9zaXRpb25zIiwic3VwcG9zaXRpb25zVW5pZnkiLCJ1bmlmeVN1cHBvc2l0aW9ucyIsInVuaWZ5U3VicHJvb2YiLCJzdWJwcm9vZiIsInN1YnByb29mU3RyaW5nIiwibGFzdFN0ZXAiLCJnZXRMYXN0U3RlcCIsInVuaWZ5TGFzdFN0ZXAiLCJsYXN0U3RlcFVuaWZpZXMiLCJzdWJwcm9vZlVuaWZpZXMiLCJsYXN0U3RlcFN0cmluZyIsImRlZHVjZWRTdGF0ZW1lbnRTdHJpbmciLCJsYXN0U3RlcENvbnRleHQiLCJnZXRDb250ZXh0IiwicmVjb25jaWxlIiwibGFzdFN0ZXBTdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJ1bmlmeVN0YXRlbWVudCIsImxhc3RTdGVwU3RhdGVtZW50VW5pZmllcyIsImNvbW1pdCIsImRlZHVjdGlvblN0cmluZyIsImRlZHVjdGlvbkNvbnRleHQiLCJkZWR1Y3Rpb25TdGF0ZW1lbnQiLCJkZWR1Y3Rpb25TdGF0ZW1lbnRVbmlmaWVzIiwidW5pZnlTdXBwb3NpdGlvbiIsInN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25TdHJpbmciLCJzdXBwb3NlZFN0YXRlbWVudFN0cmluZyIsInN1cHBvc2l0aW9uQ29udGV4dCIsInN1cHBvc2l0aW9uU3RhdGVtZW50Iiwic3VwcG9zaXRpb25TdGF0ZW1lbnRVbmlmaWVzIiwic3VwcG9zaXRpb25VbmlmaWVzIiwic3VwcG9zaXRpb25zTGVuZ3RoIiwibGVuZ3RoIiwic3VwcG9zZWRTdGF0ZW1lbnRzTGVuZ3RoIiwibmFtZSIsImZyb21KU09OIiwianNvbiIsInN1YnByb29yQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZVN1YnByb29mQXNzZXJ0aW9uIiwic3RhdGVtZW50c0Zyb21TdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJmcm9tU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsInN1YnByb29mQXNzZXJ0aW9uRnJvbVN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlcyIsImdldFN0YXRlbWVudE5vZGVzIiwibWFwIiwic3RhdGVtZXROb2RlIiwiZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0JBOzs7ZUFBQTs7OzJCQWQrQjtnQ0FDNEI7a0VBRXJDOzBCQUVDOzZCQUNzQjt5QkFDRzt5QkFDRzs7Ozs7O0FBRW5ELE1BQU0sRUFBRUEsSUFBSSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MseUJBQWMsRUFDaEMsRUFBRUMsa0JBQWtCLEVBQUUsR0FBR0MsbUNBQW1CLEVBQzVDLEVBQUVDLEtBQUssRUFBRUMsY0FBYyxFQUFFLEdBQUdDLHFDQUFxQjtNQUV2RCxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDBCQUEwQkMsa0JBQVM7SUFDN0QsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxVQUFVLENBQUU7UUFDekQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNELFVBQVU7SUFDeEI7SUFFQUUsc0JBQXNCO1FBQ3BCLE1BQU1DLGdCQUFnQmxCLEtBQUssSUFBSSxDQUFDZSxVQUFVLEdBQ3BDSSxtQkFBbUJELGVBQWUsR0FBRztRQUUzQyxPQUFPQztJQUNUO0lBRUFDLHFCQUFxQkMsS0FBSyxFQUFFO1FBQzFCLE1BQU1DLFlBQVksSUFBSSxDQUFDUCxVQUFVLENBQUNNLE1BQU0sRUFDbENFLG9CQUFvQkQsV0FBWSxHQUFHO1FBRXpDLE9BQU9DO0lBQ1Q7SUFFQUMsd0JBQXdCO1FBQ3RCLE1BQU1DLGtCQUFrQnhCLE1BQU0sSUFBSSxDQUFDYyxVQUFVLEdBQ3ZDVyxxQkFBcUJELGlCQUFrQixHQUFHO1FBRWhELE9BQU9DO0lBQ1Q7SUFFQUMsMkJBQTJCO1FBQ3pCLE1BQU1kLE9BQU8sSUFBSSxDQUFDZSxPQUFPLElBQ25CQyx3QkFBd0JoQixNQUFN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
@@ -27,10 +27,10 @@ const _default = (0, _elements.define)(class BracketedCombinator extends _combin
27
27
  if (statementUnifies) {
28
28
  context.debug(`...unified the '${statementString}' statement with the bracketed combinator.`);
29
29
  }
30
- continuation(statementUnifies);
30
+ return continuation(statementUnifies);
31
31
  });
32
32
  }
33
33
  static name = "BracketedCombinator";
34
34
  });
35
35
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2NvbWJpbmF0b3IvYnJhY2tldGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgQ29tYmluYXRvciBmcm9tIFwiLi4vY29tYmluYXRvclwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEJyYWNrZXRlZENvbWJpbmF0b3IgZXh0ZW5kcyBDb21iaW5hdG9yIHtcbiAgZ2V0QnJhY2tldGVkQ29tYmluYXRvck5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3JOb2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gYnJhY2tldGVkQ29tYmluYXRvck5vZGU7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgYnJhY2tldGVkIGNvbWJpbmF0b3IuLi5gKTtcblxuICAgIHN1cGVyLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCwgKHN0YXRlbWVudFVuaWZpZXMpID0+IHtcbiAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBicmFja2V0ZWQgY29tYmluYXRvci5gKTtcbiAgICAgIH1cblxuICAgICAgY29udGludWF0aW9uKHN0YXRlbWVudFVuaWZpZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkJyYWNrZXRlZENvbWJpbmF0b3JcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkJyYWNrZXRlZENvbWJpbmF0b3IiLCJDb21iaW5hdG9yIiwiZ2V0QnJhY2tldGVkQ29tYmluYXRvck5vZGUiLCJub2RlIiwiZ2V0Tm9kZSIsImJyYWNrZXRlZENvbWJpbmF0b3JOb2RlIiwidW5pZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnQiLCJjb250ZXh0IiwiY29udGludWF0aW9uIiwic3RhdGVtZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJzdGF0ZW1lbnRVbmlmaWVzIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OzttRUFKdUI7MEJBRUE7Ozs7OztNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDRCQUE0QkMsbUJBQVU7SUFDaEVDLDZCQUE2QjtRQUMzQixNQUFNQyxPQUFPLElBQUksQ0FBQ0MsT0FBTyxJQUNuQkMsMEJBQTBCRixNQUFNLEdBQUc7UUFFekMsT0FBT0U7SUFDVDtJQUVBQyxlQUFlQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsWUFBWSxFQUFFO1FBQy9DLE1BQU1DLGtCQUFrQkgsVUFBVUksU0FBUztRQUUzQ0gsUUFBUUksS0FBSyxDQUFDLENBQUMsY0FBYyxFQUFFRixnQkFBZ0IsNENBQTRDLENBQUM7UUFFNUYsS0FBSyxDQUFDSixlQUFlQyxXQUFXQyxTQUFTLENBQUNLO1lBQ3hDLElBQUlBLGtCQUFrQjtnQkFDcEJMLFFBQVFNLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFSixnQkFBZ0IsMENBQTBDLENBQUM7WUFDOUY7WUFFQUQsYUFBYUk7UUFDZjtJQUNGO0lBRUEsT0FBT0UsT0FBTyxzQkFBc0I7QUFDdEMifQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2NvbWJpbmF0b3IvYnJhY2tldGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgQ29tYmluYXRvciBmcm9tIFwiLi4vY29tYmluYXRvclwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEJyYWNrZXRlZENvbWJpbmF0b3IgZXh0ZW5kcyBDb21iaW5hdG9yIHtcbiAgZ2V0QnJhY2tldGVkQ29tYmluYXRvck5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3JOb2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gYnJhY2tldGVkQ29tYmluYXRvck5vZGU7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgYnJhY2tldGVkIGNvbWJpbmF0b3IuLi5gKTtcblxuICAgIHN1cGVyLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCwgKHN0YXRlbWVudFVuaWZpZXMpID0+IHtcbiAgICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBicmFja2V0ZWQgY29tYmluYXRvci5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRVbmlmaWVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJCcmFja2V0ZWRDb21iaW5hdG9yXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJCcmFja2V0ZWRDb21iaW5hdG9yIiwiQ29tYmluYXRvciIsImdldEJyYWNrZXRlZENvbWJpbmF0b3JOb2RlIiwibm9kZSIsImdldE5vZGUiLCJicmFja2V0ZWRDb21iaW5hdG9yTm9kZSIsInVuaWZ5U3RhdGVtZW50Iiwic3RhdGVtZW50IiwiY29udGV4dCIsImNvbnRpbnVhdGlvbiIsInN0YXRlbWVudFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwic3RhdGVtZW50VW5pZmllcyIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7bUVBSnVCOzBCQUVBOzs7Ozs7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyw0QkFBNEJDLG1CQUFVO0lBQ2hFQyw2QkFBNkI7UUFDM0IsTUFBTUMsT0FBTyxJQUFJLENBQUNDLE9BQU8sSUFDbkJDLDBCQUEwQkYsTUFBTSxHQUFHO1FBRXpDLE9BQU9FO0lBQ1Q7SUFFQUMsZUFBZUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFlBQVksRUFBRTtRQUMvQyxNQUFNQyxrQkFBa0JILFVBQVVJLFNBQVM7UUFFM0NILFFBQVFJLEtBQUssQ0FBQyxDQUFDLGNBQWMsRUFBRUYsZ0JBQWdCLDRDQUE0QyxDQUFDO1FBRTVGLEtBQUssQ0FBQ0osZUFBZUMsV0FBV0MsU0FBUyxDQUFDSztZQUN4QyxJQUFJQSxrQkFBa0I7Z0JBQ3BCTCxRQUFRTSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUosZ0JBQWdCLDBDQUEwQyxDQUFDO1lBQzlGO1lBRUEsT0FBT0QsYUFBYUk7UUFDdEI7SUFDRjtJQUVBLE9BQU9FLE9BQU8sc0JBQXNCO0FBQ3RDIn0=
@@ -71,7 +71,7 @@ const _default = (0, _elements.define)(class Combinator extends _occamlanguages.
71
71
  if (statementUnifies) {
72
72
  context.debug(`...unified the '${statementString}' statement with the '${combinatorString}' combinator.`);
73
73
  }
74
- continuation(statementUnifies);
74
+ return continuation(statementUnifies);
75
75
  });
76
76
  }
77
77
  toJSON() {
@@ -103,4 +103,4 @@ const _default = (0, _elements.define)(class Combinator extends _occamlanguages.
103
103
  }
104
104
  });
105
105
 
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbWJpbmF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVDb21iaW5hdG9yIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHN0YXRlbWVudEZyb21Db21iaW5hdG9yTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgdW5pZnlTdGF0ZW1lbnRXaXRoQ29tYmluYXRvciB9IGZyb20gXCIuLi9wcm9jZXNzL3VuaWZ5XCI7XG5pbXBvcnQgeyB2YWxpZGF0ZVN0YXRlbWVudEFzQ29tYmluYXRvciB9IGZyb20gXCIuLi9wcm9jZXNzL3ZhbGlkYXRlXCI7XG5pbXBvcnQgeyBhdHRlbXB0LCBzZXJpYWxpc2UsIHVuc2VyaWFsaXNlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5jb25zdCB7IGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBDb21iaW5hdG9yIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RhdGVtZW50ID0gc3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIGdldENvbWJpbmF0b3J5Tm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29tYmluYXRvck5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gY29tYmluYXRvck5vZGU7XG4gIH1cblxuICB2ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29tYmluYXRvclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuLi5gKTtcblxuICAgIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCwgKHN0YXRlbWVudFZhbGlkYXRlcykgPT4ge1xuICAgICAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG5cbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51YXRpb24odmVyaWZpZXMpO1xuICAgICAgfSk7XG4gICAgfSwgY29udGV4dClcbiAgfVxuXG4gIHZhbGlkYXRlU3RhdGVtZW50KGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGNvbWJpbmF0b3JTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvcidzIHN0YXRlbWVudC4uLmApO1xuXG4gICAgdmFsaWRhdGVTdGF0ZW1lbnRBc0NvbWJpbmF0b3IodGhpcy5zdGF0ZW1lbnQsIGNvbnRleHQsIChzdGF0ZW1lbnRWYWxpZGF0ZXNBc0NvbWJpbmF0b3IpID0+IHtcbiAgICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlc0FzQ29tYmluYXRvcikge1xuICAgICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IncyBzdGF0ZW1lbnQuYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRWYWxpZGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgY29tYmluYXRvclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuLi5gKTtcblxuICAgIGNvbnN0IGNvbWJpbmF0b3IgPSB0aGlzLCAvLy9cbiAgICAgICAgICBjb21iaW5hdG9yQ29udGV4dCA9IGNvbWJpbmF0b3IuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gY29tYmluYXRvckNvbnRleHQsIC8vL1xuICAgICAgICAgIHNwZWNpZmlDb250ZXh0ID0gY29udGV4dDsgLy8vXG5cbiAgICB1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yKHN0YXRlbWVudCwgY29tYmluYXRvciwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmlDb250ZXh0LCAoc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yKSA9PiB7XG4gICAgICBsZXQgc3RhdGVtZW50VW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yKSB7XG4gICAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRVbmlmaWVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICByZXR1cm4gc2VyaWFsaXNlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgICAgY29uc3QganNvbiA9IHtcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgc3RyaW5nLFxuICAgICAgICBicmVha1BvaW50XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4ganNvbjtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb21iaW5hdG9yXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgY29tYmluYXRvcjtcblxuICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICB1bnNlcmlhbGlzZSgoanNvbiwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgICAgY29tYmluYXRvck5vZGUgPSBpbnN0YW50aWF0ZUNvbWJpbmF0b3Ioc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IGNvbWJpbmF0b3JOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICAgIHN0YXRlbWVudCA9IHN0YXRlbWVudEZyb21Db21iaW5hdG9yTm9kZShjb21iaW5hdG9yTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgY29tYmluYXRvciA9IG5ldyBDb21iaW5hdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50KTtcbiAgICAgIH0sIGpzb24sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3I7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkNvbWJpbmF0b3IiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiZ2V0Q29tYmluYXRvcnlOb2RlIiwiZ2V0Tm9kZSIsImNvbWJpbmF0b3JOb2RlIiwidmVyaWZ5IiwiY29udGludWF0aW9uIiwiY29tYmluYXRvclN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiYXR0ZW1wdCIsInZhbGlkYXRlU3RhdGVtZW50Iiwic3RhdGVtZW50VmFsaWRhdGVzIiwidmVyaWZpZXMiLCJjb21taXQiLCJkZWJ1ZyIsInZhbGlkYXRlU3RhdGVtZW50QXNDb21iaW5hdG9yIiwic3RhdGVtZW50VmFsaWRhdGVzQXNDb21iaW5hdG9yIiwidW5pZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnRTdHJpbmciLCJjb21iaW5hdG9yIiwiY29tYmluYXRvckNvbnRleHQiLCJnZXRDb250ZXh0IiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpQ29udGV4dCIsInVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3IiLCJzdGF0ZW1lbnRVbmlmaWVzV2l0aENvbWJpbmF0b3IiLCJzdGF0ZW1lbnRVbmlmaWVzIiwidG9KU09OIiwic2VyaWFsaXNlIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwidW5zZXJpYWxpc2UiLCJpbnN0YW50aWF0ZUNvbWJpbmF0b3IiLCJzdGF0ZW1lbnRGcm9tQ29tYmluYXRvck5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBQTs7O2dDQVg2QzswQkFFdEI7NkJBQ2U7eUJBQ007dUJBQ0M7MEJBQ0M7eUJBQ2U7QUFFN0QsTUFBTSxFQUFFQSxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTlFLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsbUJBQW1CQyx1QkFBTztJQUNwRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsQ0FBRTtRQUN4RCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNE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
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbWJpbmF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVDb21iaW5hdG9yIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHN0YXRlbWVudEZyb21Db21iaW5hdG9yTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgdW5pZnlTdGF0ZW1lbnRXaXRoQ29tYmluYXRvciB9IGZyb20gXCIuLi9wcm9jZXNzL3VuaWZ5XCI7XG5pbXBvcnQgeyB2YWxpZGF0ZVN0YXRlbWVudEFzQ29tYmluYXRvciB9IGZyb20gXCIuLi9wcm9jZXNzL3ZhbGlkYXRlXCI7XG5pbXBvcnQgeyBhdHRlbXB0LCBzZXJpYWxpc2UsIHVuc2VyaWFsaXNlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5jb25zdCB7IGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBDb21iaW5hdG9yIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RhdGVtZW50ID0gc3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIGdldENvbWJpbmF0b3J5Tm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29tYmluYXRvck5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gY29tYmluYXRvck5vZGU7XG4gIH1cblxuICB2ZXJpZnkoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29tYmluYXRvclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuLi5gKTtcblxuICAgIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCwgKHN0YXRlbWVudFZhbGlkYXRlcykgPT4ge1xuICAgICAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG5cbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51YXRpb24odmVyaWZpZXMpO1xuICAgICAgfSk7XG4gICAgfSwgY29udGV4dClcbiAgfVxuXG4gIHZhbGlkYXRlU3RhdGVtZW50KGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGNvbWJpbmF0b3JTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvcidzIHN0YXRlbWVudC4uLmApO1xuXG4gICAgdmFsaWRhdGVTdGF0ZW1lbnRBc0NvbWJpbmF0b3IodGhpcy5zdGF0ZW1lbnQsIGNvbnRleHQsIChzdGF0ZW1lbnRWYWxpZGF0ZXNBc0NvbWJpbmF0b3IpID0+IHtcbiAgICAgIGxldCBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSBmYWxzZTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlc0FzQ29tYmluYXRvcikge1xuICAgICAgICBzdGF0ZW1lbnRWYWxpZGF0ZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGVtZW50VmFsaWRhdGVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IncyBzdGF0ZW1lbnQuYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRWYWxpZGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgY29tYmluYXRvclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuLi5gKTtcblxuICAgIGNvbnN0IGNvbWJpbmF0b3IgPSB0aGlzLCAvLy9cbiAgICAgICAgICBjb21iaW5hdG9yQ29udGV4dCA9IGNvbWJpbmF0b3IuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGdlbmVyYWxDb250ZXh0ID0gY29tYmluYXRvckNvbnRleHQsIC8vL1xuICAgICAgICAgIHNwZWNpZmlDb250ZXh0ID0gY29udGV4dDsgLy8vXG5cbiAgICB1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yKHN0YXRlbWVudCwgY29tYmluYXRvciwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmlDb250ZXh0LCAoc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yKSA9PiB7XG4gICAgICBsZXQgc3RhdGVtZW50VW5pZmllcyA9IGZhbHNlO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yKSB7XG4gICAgICAgIHN0YXRlbWVudFVuaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuYCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3RhdGVtZW50VW5pZmllcyk7XG4gICAgfSk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIHNlcmlhbGlzZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHN0cmluZyxcbiAgICAgICAgYnJlYWtQb2ludFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQ29tYmluYXRvclwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IGNvbWJpbmF0b3I7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIGNvbWJpbmF0b3JOb2RlID0gaW5zdGFudGlhdGVDb21iaW5hdG9yKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICAgIG5vZGUgPSBjb21iaW5hdG9yTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRGcm9tQ29tYmluYXRvck5vZGUoY29tYmluYXRvck5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgIGNvbWJpbmF0b3IgPSBuZXcgQ29tYmluYXRvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCk7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBjb21iaW5hdG9yO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJDb21iaW5hdG9yIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsImdldENvbWJpbmF0b3J5Tm9kZSIsImdldE5vZGUiLCJjb21iaW5hdG9yTm9kZSIsInZlcmlmeSIsImNvbnRpbnVhdGlvbiIsImNvbWJpbmF0b3JTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImF0dGVtcHQiLCJ2YWxpZGF0ZVN0YXRlbWVudCIsInN0YXRlbWVudFZhbGlkYXRlcyIsInZlcmlmaWVzIiwiY29tbWl0IiwiZGVidWciLCJ2YWxpZGF0ZVN0YXRlbWVudEFzQ29tYmluYXRvciIsInN0YXRlbWVudFZhbGlkYXRlc0FzQ29tYmluYXRvciIsInVuaWZ5U3RhdGVtZW50Iiwic3RhdGVtZW50U3RyaW5nIiwiY29tYmluYXRvciIsImNvbWJpbmF0b3JDb250ZXh0IiwiZ2V0Q29udGV4dCIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaUNvbnRleHQiLCJ1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yIiwic3RhdGVtZW50VW5pZmllc1dpdGhDb21iaW5hdG9yIiwic3RhdGVtZW50VW5pZmllcyIsInRvSlNPTiIsInNlcmlhbGlzZSIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJpbnN0YW50aWF0ZSIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGVDb21iaW5hdG9yIiwic3RhdGVtZW50RnJvbUNvbWJpbmF0b3JOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQUE7OztnQ0FYNkM7MEJBRXRCOzZCQUNlO3lCQUNNO3VCQUNDOzBCQUNDO3lCQUNlO0FBRTdELE1BQU0sRUFBRUEsa0JBQWtCLEVBQUVDLDBCQUEwQixFQUFFLEdBQUdDLG1DQUFtQjtNQUU5RSxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG1CQUFtQkMsdUJBQU87SUFDcEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxTQUFTLENBQUU7UUFDeEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDbkI7SUFFQUMsZUFBZTtRQUNiLE9BQU8sSUFB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
@@ -41,7 +41,7 @@ const _default = (0, _elements.define)(class CombinatorDeclaration extends _decl
41
41
  if (verifies) {
42
42
  context.debug(`...verified the '${combinatorDeclarationString}' combinator declaration.`);
43
43
  }
44
- continuation(verifies);
44
+ return continuation(verifies);
45
45
  });
46
46
  });
47
47
  verifyCombinator(context, continuation) {
@@ -51,10 +51,10 @@ const _default = (0, _elements.define)(class CombinatorDeclaration extends _decl
51
51
  if (combinatorVerifies) {
52
52
  context.debug(`...verified the '${combinatorDeclarationString}' combinator declaration's combinator.`);
53
53
  }
54
- continuation(combinatorVerifies);
54
+ return continuation(combinatorVerifies);
55
55
  });
56
56
  }
57
57
  static name = "CombinatorDeclaration";
58
58
  });
59
59
 
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL2NvbWJpbmF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBEZWNsYXJhdGlvbiBmcm9tIFwiLi4vZGVjbGFyYXRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5cbmNvbnN0IHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgQ29tYmluYXRvckRlY2xhcmF0aW9uIGV4dGVuZHMgRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGNvbWJpbmF0b3IpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5jb21iaW5hdG9yID0gY29tYmluYXRvcjtcbiAgfVxuXG4gIGdldENvbWJpbmF0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tYmluYXRvcjtcbiAgfVxuXG4gIGdldENvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlO1xuICB9XG5cbiAgdmVyaWZ5ID0gYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBjb21iaW5hdG9yRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbWJpbmF0b3JEZWNsYXJhdGlvblN0cmluZ30nIGNvbWJpbmF0b3IgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIHRoaXMudmVyaWZ5Q29tYmluYXRvcihjb250ZXh0LCAoY29tYmluYXRvclZlcmlmaWVzKSA9PiB7XG4gICAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgICAgaWYgKGNvbWJpbmF0b3JWZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LmFkZENvbWJpbmF0b3IodGhpcy5jb21iaW5hdG9yKTtcblxuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29tYmluYXRvckRlY2xhcmF0aW9uU3RyaW5nfScgY29tYmluYXRvciBkZWNsYXJhdGlvbi5gKTtcbiAgICAgIH1cblxuICAgICAgY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgdmVyaWZ5Q29tYmluYXRvcihjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBjb21iaW5hdG9yRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbWJpbmF0b3JEZWNsYXJhdGlvblN0cmluZ30nIGNvbWJpbmF0b3IgZGVjbGFyYXRpb24ncyBjb21iaW5hdG9yLi4uYCk7XG5cbiAgICB0aGlzLmNvbWJpbmF0b3IudmVyaWZ5KGNvbnRleHQsIChjb21iaW5hdG9yVmVyaWZpZXMpID0+IHtcbiAgICAgIGlmIChjb21iaW5hdG9yVmVyaWZpZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbWJpbmF0b3JEZWNsYXJhdGlvblN0cmluZ30nIGNvbWJpbmF0b3IgZGVjbGFyYXRpb24ncyBjb21iaW5hdG9yLmApO1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24oY29tYmluYXRvclZlcmlmaWVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb21iaW5hdG9yRGVjbGFyYXRpb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJDb21iaW5hdG9yRGVjbGFyYXRpb24iLCJEZWNsYXJhdGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImNvbWJpbmF0b3IiLCJnZXRDb21iaW5hdG9yIiwiZ2V0Q29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsImdldE5vZGUiLCJjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwidmVyaWZ5IiwiY29udGludWF0aW9uIiwiY29tYmluYXRvckRlY2xhcmF0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2ZXJpZnlDb21iaW5hdG9yIiwiY29tYmluYXRvclZlcmlmaWVzIiwidmVyaWZpZXMiLCJhZGRDb21iaW5hdG9yIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSb0M7b0VBRVo7MEJBRUQ7Ozs7OztBQUV2QixNQUFNLEVBQUVBLFNBQVMsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFekMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyw4QkFBOEJDLG9CQUFXO0lBQ25FLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxDQUFFO1FBQ3pELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO0lBQ3BCO0lBRUFDLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDRCxVQUFVO0lBQ3hCO0lBRUFFLCtCQUErQjtRQUM3QixNQUFNSixPQUFPLElBQUksQ0FBQ0ssT0FBTyxJQUNuQkMsNEJBQTRCTixNQUFNLEdBQUc7UUFFM0MsT0FBT007SUFDVDtJQUVBQyxTQUFTZCxVQUFVLFNBQVVLLE9BQU8sRUFBRVUsWUFBWTtRQUNoRCxNQUFNQyw4QkFBOEIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUUxRFosUUFBUWEsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFRiw0QkFBNEIsMkJBQTJCLENBQUM7UUFFeEYsSUFBSSxDQUFDRyxnQkFBZ0IsQ0FBQ2QsU0FBUyxDQUFDZTtZQUM5QixJQUFJQyxXQUFXO1lBRWYsSUFBSUQsb0JBQW9CO2dCQUN0QmYsUUFBUWlCLGFBQWEsQ0FBQyxJQUFJLENBQUNiLFVBQVU7Z0JBRXJDWSxXQUFXO1lBQ2I7WUFFQSxJQUFJQSxVQUFVO2dCQUNaaEIsUUFBUWtCLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFUCw0QkFBNEIseUJBQXlCLENBQUM7WUFDMUY7WUFFQUQsYUFBYU07UUFDZjtJQUNGLEdBQUc7SUFFSEYsaUJBQWlCZCxPQUFPLEVBQUVVLFlBQVksRUFBRTtRQUN0QyxNQUFNQyw4QkFBOEIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUUxRFosUUFBUWEsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFRiw0QkFBNEIsd0NBQXdDLENBQUM7UUFFckcsSUFBSSxDQUFDUCxVQUFVLENBQUNLLE1BQU0sQ0FBQ1QsU0FBUyxDQUFDZTtZQUMvQixJQUFJQSxvQkFBb0I7Z0JBQ3RCZixRQUFRa0IsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUVQLDRCQUE0QixzQ0FBc0MsQ0FBQztZQUN2RztZQUVBRCxhQUFhSztRQUNmO0lBQ0Y7SUFFQSxPQUFPSSxPQUFPLHdCQUF3QjtBQUN4QyJ9
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL2NvbWJpbmF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBEZWNsYXJhdGlvbiBmcm9tIFwiLi4vZGVjbGFyYXRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5cbmNvbnN0IHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgQ29tYmluYXRvckRlY2xhcmF0aW9uIGV4dGVuZHMgRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGNvbWJpbmF0b3IpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5jb21iaW5hdG9yID0gY29tYmluYXRvcjtcbiAgfVxuXG4gIGdldENvbWJpbmF0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tYmluYXRvcjtcbiAgfVxuXG4gIGdldENvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlO1xuICB9XG5cbiAgdmVyaWZ5ID0gYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBjb21iaW5hdG9yRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbWJpbmF0b3JEZWNsYXJhdGlvblN0cmluZ30nIGNvbWJpbmF0b3IgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIHRoaXMudmVyaWZ5Q29tYmluYXRvcihjb250ZXh0LCAoY29tYmluYXRvclZlcmlmaWVzKSA9PiB7XG4gICAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgICAgaWYgKGNvbWJpbmF0b3JWZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LmFkZENvbWJpbmF0b3IodGhpcy5jb21iaW5hdG9yKTtcblxuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29tYmluYXRvckRlY2xhcmF0aW9uU3RyaW5nfScgY29tYmluYXRvciBkZWNsYXJhdGlvbi5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2ZXJpZmllcyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHZlcmlmeUNvbWJpbmF0b3IoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29tYmluYXRvckRlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb21iaW5hdG9yRGVjbGFyYXRpb25TdHJpbmd9JyBjb21iaW5hdG9yIGRlY2xhcmF0aW9uJ3MgY29tYmluYXRvci4uLmApO1xuXG4gICAgdGhpcy5jb21iaW5hdG9yLnZlcmlmeShjb250ZXh0LCAoY29tYmluYXRvclZlcmlmaWVzKSA9PiB7XG4gICAgICBpZiAoY29tYmluYXRvclZlcmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtjb21iaW5hdG9yRGVjbGFyYXRpb25TdHJpbmd9JyBjb21iaW5hdG9yIGRlY2xhcmF0aW9uJ3MgY29tYmluYXRvci5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihjb21iaW5hdG9yVmVyaWZpZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbWJpbmF0b3JEZWNsYXJhdGlvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkNvbWJpbmF0b3JEZWNsYXJhdGlvbiIsIkRlY2xhcmF0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiY29tYmluYXRvciIsImdldENvbWJpbmF0b3IiLCJnZXRDb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiZ2V0Tm9kZSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJ2ZXJpZnkiLCJjb250aW51YXRpb24iLCJjb21iaW5hdG9yRGVjbGFyYXRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZlcmlmeUNvbWJpbmF0b3IiLCJjb21iaW5hdG9yVmVyaWZpZXMiLCJ2ZXJpZmllcyIsImFkZENvbWJpbmF0b3IiLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJvQztvRUFFWjswQkFFRDs7Ozs7O0FBRXZCLE1BQU0sRUFBRUEsU0FBUyxFQUFFLEdBQUdDLG1DQUFtQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLDhCQUE4QkMsb0JBQVc7SUFDbkUsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxVQUFVLENBQUU7UUFDekQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNELFVBQVU7SUFDeEI7SUFFQUUsK0JBQStCO1FBQzdCLE1BQU1KLE9BQU8sSUFBSSxDQUFDSyxPQUFPLElBQ25CQyw0QkFBNEJOLE1BQU0sR0FBRztRQUUzQyxPQUFPTTtJQUNUO0lBRUFDLFNBQVNkLFVBQVUsU0FBVUssT0FBTyxFQUFFVSxZQUFZO1FBQ2hELE1BQU1DLDhCQUE4QixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRTFEWixRQUFRYSxLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVGLDRCQUE0QiwyQkFBMkIsQ0FBQztRQUV4RixJQUFJLENBQUNHLGdCQUFnQixDQUFDZCxTQUFTLENBQUNlO1lBQzlCLElBQUlDLFdBQVc7WUFFZixJQUFJRCxvQkFBb0I7Z0JBQ3RCZixRQUFRaUIsYUFBYSxDQUFDLElBQUksQ0FBQ2IsVUFBVTtnQkFFckNZLFdBQVc7WUFDYjtZQUVBLElBQUlBLFVBQVU7Z0JBQ1poQixRQUFRa0IsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUVQLDRCQUE0Qix5QkFBeUIsQ0FBQztZQUMxRjtZQUVBLE9BQU9ELGFBQWFNO1FBQ3RCO0lBQ0YsR0FBRztJQUVIRixpQkFBaUJkLE9BQU8sRUFBRVUsWUFBWSxFQUFFO1FBQ3RDLE1BQU1DLDhCQUE4QixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRTFEWixRQUFRYSxLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVGLDRCQUE0Qix3Q0FBd0MsQ0FBQztRQUVyRyxJQUFJLENBQUNQLFVBQVUsQ0FBQ0ssTUFBTSxDQUFDVCxTQUFTLENBQUNlO1lBQy9CLElBQUlBLG9CQUFvQjtnQkFDdEJmLFFBQVFrQixLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRVAsNEJBQTRCLHNDQUFzQyxDQUFDO1lBQ3ZHO1lBRUEsT0FBT0QsYUFBYUs7UUFDdEI7SUFDRjtJQUVBLE9BQU9JLE9BQU8sd0JBQXdCO0FBQ3hDIn0=
@@ -45,7 +45,7 @@ const _default = (0, _elements.define)(class MetavariableDeclaration extends _de
45
45
  if (verifies) {
46
46
  context.debug(`...verified the '${metavariableDeclarationString}' metavariable declaration.`);
47
47
  }
48
- continuation(verifies);
48
+ return continuation(verifies);
49
49
  });
50
50
  verifyMetaType(context) {
51
51
  let metaTypeVerifies = true;
@@ -75,4 +75,4 @@ const _default = (0, _elements.define)(class MetavariableDeclaration extends _de
75
75
  static name = "MetavariableDeclaration";
76
76
  });
77
77
 
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL21ldGF2YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gXCIuLi9kZWNsYXJhdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBNZXRhdmFyaWFibGVEZWNsYXJhdGlvbiBleHRlbmRzIERlY2xhcmF0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBtZXRhVHlwZSwgbWV0YXZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubWV0YVR5cGUgPSBtZXRhVHlwZTtcbiAgICB0aGlzLm1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldE1ldGFUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFUeXBlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0IHZlcmlmaWVzO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyBtZXRhdmFyaWFibGUgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIGNvbnN0IG1ldGF2YXJpYWJsZVZlcmlmaWVzID0gdGhpcy52ZXJpZnlNZXRhdmFyaWFibGUoY29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZXMpIHtcbiAgICAgIGNvbnN0IG1ldGFUeXBlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeU1ldGFUeXBlKGNvbnRleHQpO1xuXG4gICAgICBpZiAobWV0YVR5cGVWZXJpZmllcykge1xuICAgICAgICBjb25zdCBkZWNsYXJlZE1ldGF2YXJpYWJsZSA9IHRoaXMubWV0YXZhcmlhYmxlOyAvLy9cblxuICAgICAgICBjb250ZXh0LmFkZERlY2xhcmVkTWV0YXZhcmlhYmxlKGRlY2xhcmVkTWV0YXZhcmlhYmxlKTtcblxuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyBtZXRhdmFyaWFibGUgZGVjbGFyYXRpb24uYCk7XG4gICAgfVxuXG4gICAgY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgfSk7XG5cbiAgdmVyaWZ5TWV0YVR5cGUoY29udGV4dCkge1xuICAgIGxldCBtZXRhVHlwZVZlcmlmaWVzID0gdHJ1ZTtcblxuICAgIGNvbnN0IG1ldGFUeXBlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YVR5cGVEZWNsYXJhdGlvblN0cmluZ30nIG1ldGF2YXJpYWJsZSBkZWNsYXJhdGlvbidzIG1ldGFUeXBlLi4uYCk7XG5cbiAgICB0aGlzLm1ldGF2YXJpYWJsZS5zZXRNZXRhVHlwZSh0aGlzLm1ldGFUeXBlKTtcblxuICAgIGlmIChtZXRhVHlwZVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YVR5cGVEZWNsYXJhdGlvblN0cmluZ30nIG1ldGF2YXJpYWJsZSBkZWNsYXJhdGlvbidzIG1ldGFUeXBlLmApO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhVHlwZVZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5TWV0YXZhcmlhYmxlKGNvbnRleHQpIHtcbiAgICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nfScgbWV0YXZhcmlhYmxlIGRlY2xhcmF0aW9uJ3MgbWV0YXZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gdGhpcy5tZXRhdmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgIGRlY2xhcmVkTWV0YXZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNEZWNsYXJlZE1ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSk7XG5cbiAgICBpZiAoIWRlY2xhcmVkTWV0YXZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZXMgPSB0aGlzLm1ldGF2YXJpYWJsZS52ZXJpZnkoY29udGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHttZXRhdmFyaWFibGVOYW1lfScgZGVjbGFyZWQgbWV0YXZhcmlhYmxlIGlzIGFscmVhZHkgcHJlc2VudC5gKTtcbiAgICB9XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIG1ldGF2YXJpYWJsZSBkZWNsYXJhdGlvbidzIG1ldGF2YXJpYWJsZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTWV0YXZhcmlhYmxlRGVjbGFyYXRpb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJNZXRhdmFyaWFibGVEZWNsYXJhdGlvbiIsIkRlY2xhcmF0aW9uIiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibWV0YVR5cGUiLCJtZXRhdmFyaWFibGUiLCJnZXRNZXRhVHlwZSIsImdldE1ldGF2YXJpYWJsZSIsInZlcmlmeSIsImNvbnRpbnVhdGlvbiIsInZlcmlmaWVzIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVzIiwidmVyaWZ5TWV0YXZhcmlhYmxlIiwibWV0YVR5cGVWZXJpZmllcyIsInZlcmlmeU1ldGFUeXBlIiwiZGVjbGFyZWRNZXRhdmFyaWFibGUiLCJhZGREZWNsYXJlZE1ldGF2YXJpYWJsZSIsImRlYnVnIiwibWV0YVR5cGVEZWNsYXJhdGlvblN0cmluZyIsInNldE1ldGFUeXBlIiwibWV0YXZhcmlhYmxlTmFtZSIsImdldE5hbWUiLCJkZWNsYXJlZE1ldGF2YXJpYWJsZVByZXNlbnQiLCJpc0RlY2xhcmVkTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZSIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJvQztvRUFFWjswQkFFRDs7Ozs7O0FBRXZCLE1BQU0sRUFBRUEsU0FBUyxFQUFFLEdBQUdDLG1DQUFtQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGdDQUFnQ0Msb0JBQVc7SUFD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
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL21ldGF2YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gXCIuLi9kZWNsYXJhdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBNZXRhdmFyaWFibGVEZWNsYXJhdGlvbiBleHRlbmRzIERlY2xhcmF0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBtZXRhVHlwZSwgbWV0YXZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubWV0YVR5cGUgPSBtZXRhVHlwZTtcbiAgICB0aGlzLm1ldGF2YXJpYWJsZSA9IG1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGdldE1ldGFUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFUeXBlO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0IHZlcmlmaWVzO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyBtZXRhdmFyaWFibGUgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIGNvbnN0IG1ldGF2YXJpYWJsZVZlcmlmaWVzID0gdGhpcy52ZXJpZnlNZXRhdmFyaWFibGUoY29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZXMpIHtcbiAgICAgIGNvbnN0IG1ldGFUeXBlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeU1ldGFUeXBlKGNvbnRleHQpO1xuXG4gICAgICBpZiAobWV0YVR5cGVWZXJpZmllcykge1xuICAgICAgICBjb25zdCBkZWNsYXJlZE1ldGF2YXJpYWJsZSA9IHRoaXMubWV0YXZhcmlhYmxlOyAvLy9cblxuICAgICAgICBjb250ZXh0LmFkZERlY2xhcmVkTWV0YXZhcmlhYmxlKGRlY2xhcmVkTWV0YXZhcmlhYmxlKTtcblxuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyBtZXRhdmFyaWFibGUgZGVjbGFyYXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2ZXJpZmllcyk7XG4gIH0pO1xuXG4gIHZlcmlmeU1ldGFUeXBlKGNvbnRleHQpIHtcbiAgICBsZXQgbWV0YVR5cGVWZXJpZmllcyA9IHRydWU7XG5cbiAgICBjb25zdCBtZXRhVHlwZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGFUeXBlRGVjbGFyYXRpb25TdHJpbmd9JyBtZXRhdmFyaWFibGUgZGVjbGFyYXRpb24ncyBtZXRhVHlwZS4uLmApO1xuXG4gICAgdGhpcy5tZXRhdmFyaWFibGUuc2V0TWV0YVR5cGUodGhpcy5tZXRhVHlwZSk7XG5cbiAgICBpZiAobWV0YVR5cGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGFUeXBlRGVjbGFyYXRpb25TdHJpbmd9JyBtZXRhdmFyaWFibGUgZGVjbGFyYXRpb24ncyBtZXRhVHlwZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YVR5cGVWZXJpZmllcztcbiAgfVxuXG4gIHZlcmlmeU1ldGF2YXJpYWJsZShjb250ZXh0KSB7XG4gICAgbGV0IG1ldGF2YXJpYWJsZVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhdmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIG1ldGF2YXJpYWJsZSBkZWNsYXJhdGlvbidzIG1ldGF2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTmFtZSA9IHRoaXMubWV0YXZhcmlhYmxlLmdldE5hbWUoKSxcbiAgICAgICAgICBkZWNsYXJlZE1ldGF2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzRGVjbGFyZWRNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKCFkZWNsYXJlZE1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVzID0gdGhpcy5tZXRhdmFyaWFibGUudmVyaWZ5KGNvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7bWV0YXZhcmlhYmxlTmFtZX0nIGRlY2xhcmVkIG1ldGF2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gICAgfVxuXG4gICAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyBtZXRhdmFyaWFibGUgZGVjbGFyYXRpb24ncyBtZXRhdmFyaWFibGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZVZlcmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk1ldGF2YXJpYWJsZURlY2xhcmF0aW9uXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiTWV0YXZhcmlhYmxlRGVjbGFyYXRpb24iLCJEZWNsYXJhdGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm1ldGFUeXBlIiwibWV0YXZhcmlhYmxlIiwiZ2V0TWV0YVR5cGUiLCJnZXRNZXRhdmFyaWFibGUiLCJ2ZXJpZnkiLCJjb250aW51YXRpb24iLCJ2ZXJpZmllcyIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJtZXRhdmFyaWFibGVWZXJpZmllcyIsInZlcmlmeU1ldGF2YXJpYWJsZSIsIm1ldGFUeXBlVmVyaWZpZXMiLCJ2ZXJpZnlNZXRhVHlwZSIsImRlY2xhcmVkTWV0YXZhcmlhYmxlIiwiYWRkRGVjbGFyZWRNZXRhdmFyaWFibGUiLCJkZWJ1ZyIsIm1ldGFUeXBlRGVjbGFyYXRpb25TdHJpbmciLCJzZXRNZXRhVHlwZSIsIm1ldGF2YXJpYWJsZU5hbWUiLCJnZXROYW1lIiwiZGVjbGFyZWRNZXRhdmFyaWFibGVQcmVzZW50IiwiaXNEZWNsYXJlZE1ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5hbWUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSb0M7b0VBRVo7MEJBRUQ7Ozs7OztBQUV2QixNQUFNLEVBQUVBLFNBQVMsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFekMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxnQ0FBZ0NDLG9C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
@@ -53,7 +53,7 @@ const _default = (0, _elements.define)(class VariableDeclaration extends _declar
53
53
  if (verifies) {
54
54
  context.debug(`...verified the '${variableDeclarationString}' variable declaration.`);
55
55
  }
56
- continuation(verifies);
56
+ return continuation(verifies);
57
57
  });
58
58
  });
59
59
  verifyType(context, continuation) {
@@ -78,7 +78,7 @@ const _default = (0, _elements.define)(class VariableDeclaration extends _declar
78
78
  if (typeVerifies) {
79
79
  context.debug(`...verified the '${variableDeclarationString}' variable declaration's type.`);
80
80
  }
81
- continuation(typeVerifies);
81
+ return continuation(typeVerifies);
82
82
  }
83
83
  verifyVariable(context, continuation) {
84
84
  let variableVerifies = false;
@@ -93,9 +93,9 @@ const _default = (0, _elements.define)(class VariableDeclaration extends _declar
93
93
  if (variableVerifies) {
94
94
  context.debug(`...verified the '${variableDeclarationString}' variable declaration's '${variableString}' variable.`);
95
95
  }
96
- continuation(variableVerifies);
96
+ return continuation(variableVerifies);
97
97
  }
98
98
  static name = "VariableDeclaration";
99
99
  });
100
100
 
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL3ZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRGVjbGFyYXRpb24gZnJvbSBcIi4uL2RlY2xhcmF0aW9uXCI7XG5cbmltcG9ydCB7IGFsbCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGludWF0aW9uXCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBWYXJpYWJsZURlY2xhcmF0aW9uIGV4dGVuZHMgRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHZhcmlhYmxlLCBwcm92aXNpb25hbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLnByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWw7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGlzUHJvdmlzaW9uYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvdmlzaW9uYWw7XG4gIH1cblxuICBnZXRWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZTtcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgdmFyaWFibGVEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIGNvbnN0IHR5cGVWZXJpZmllcyA9IHRoaXMudmVyaWZ5VHlwZS5iaW5kKHRoaXMpLFxuICAgICAgICAgIHZhcmlhYmxlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVZhcmlhYmxlLmJpbmQodGhpcyk7XG5cbiAgICBhbGwoW1xuICAgICAgdHlwZVZlcmlmaWVzLFxuICAgICAgdmFyaWFibGVWZXJpZmllc1xuICAgIF0sICBjb250ZXh0LCAodmVyaWZpZXMpID0+IHtcbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICBjb25zdCBkZWNsYXJlZFZhcmlhYmxlID0gdGhpcy52YXJpYWJsZTtcblxuICAgICAgICBjb250ZXh0LmFkZERlY2xhcmVkVmFyaWFibGUoZGVjbGFyZWRWYXJpYWJsZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uLmApO1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24odmVyaWZpZXMpO1xuICAgIH0pO1xuICB9KTtcblxuICB2ZXJpZnlUeXBlKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGxldCB0eXBlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uJ3MgdHlwZS4uLmApO1xuXG4gICAgY29uc3Qgbm9taW5hbFR5cGVOYW1lID0gdGhpcy50eXBlLmdldE5vbWluYWxUeXBlTmFtZSgpLFxuICAgICAgICAgIHR5cGUgPSBjb250ZXh0LmZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUobm9taW5hbFR5cGVOYW1lKSxcbiAgICAgICAgICB0eXBlUHJlc2VudCA9ICh0eXBlICE9PSBudWxsKVxuXG4gICAgaWYgKCF0eXBlUHJlc2VudCkge1xuICAgICAgY29uc3QgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlQ29tcGFyZXNUb1Byb3Zpc2lvbmFsID0gdHlwZS5jb21wYXJlUHJvdmlzaW9uYWwodGhpcy5wcm92aXNpb25hbCk7XG5cbiAgICAgIGlmICghdHlwZUNvbXBhcmVzVG9Qcm92aXNpb25hbCkge1xuICAgICAgICBjb25zdCB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpO1xuXG4gICAgICAgIHRoaXMucHJvdmlzaW9uYWwgP1xuICAgICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24ncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVzZW50IGJ1dCBub3QgcHJvdmlzaW9uYWwuYCkgOlxuICAgICAgICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3ZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyB2YXJpYWJsZSBkZWNsYXJhdGlvbidzICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIHByZXNlbnQgYnV0IHByb3Zpc2lvbmFsLmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YXJpYWJsZS5zZXRUeXBlKHR5cGUpO1xuXG4gICAgICAgIHRoaXMudmFyaWFibGUuc2V0UHJvdmlzaW9uYWwodGhpcy5wcm92aXNpb25hbCk7XG5cbiAgICAgICAgdHlwZVZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uJ3MgdHlwZS5gKTtcbiAgICB9XG5cbiAgICBjb250aW51YXRpb24odHlwZVZlcmlmaWVzKTtcbiAgfVxuXG4gIHZlcmlmeVZhcmlhYmxlKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGxldCAgdmFyaWFibGVWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uJ3MgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgdmFyaWFibGVJZGVudGlmaWVyID0gdGhpcy52YXJpYWJsZS5nZXRJZGVudGlmaWVyKCksXG4gICAgICAgICAgZGVjbGFyZWRWYXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzRGVjbGFyZWRWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIpO1xuXG4gICAgaWYgKGRlY2xhcmVkVmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyBkZWNsYXJlZCB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhcmlhYmxlVmVyaWZpZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh2YXJpYWJsZVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uJ3MgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS5gKTtcbiAgICB9XG5cbiAgICBjb250aW51YXRpb24odmFyaWFibGVWZXJpZmllcyk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlZhcmlhYmxlRGVjbGFyYXRpb24iLCJEZWNsYXJhdGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJ2YXJpYWJsZSIsInByb3Zpc2lvbmFsIiwiZ2V0VHlwZSIsImdldFZhcmlhYmxlIiwiaXNQcm92aXNpb25hbCIsImdldFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiZ2V0Tm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmVyaWZ5IiwiY29udGludWF0aW9uIiwidmFyaWFibGVEZWNsYXJhdGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidHlwZVZlcmlmaWVzIiwidmVyaWZ5VHlwZSIsImJpbmQiLCJ2YXJpYWJsZVZlcmlmaWVzIiwidmVyaWZ5VmFyaWFibGUiLCJhbGwiLCJ2ZXJpZmllcyIsImRlY2xhcmVkVmFyaWFibGUiLCJhZGREZWNsYXJlZFZhcmlhYmxlIiwiZGVidWciLCJub21pbmFsVHlwZU5hbWUiLCJnZXROb21pbmFsVHlwZU5hbWUiLCJmaW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lIiwidHlwZVByZXNlbnQiLCJ0eXBlU3RyaW5nIiwidHlwZUNvbXBhcmVzVG9Qcm92aXNpb25hbCIsImNvbXBhcmVQcm92aXNpb25hbCIsInNldFR5cGUiLCJzZXRQcm92aXNpb25hbCIsInZhcmlhYmxlU3RyaW5nIiwidmFyaWFibGVJZGVudGlmaWVyIiwiZ2V0SWRlbnRpZmllciIsImRlY2xhcmVkVmFyaWFibGVQcmVzZW50IiwiaXNEZWNsYXJlZFZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVJZGVudGlmaWVyIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7Z0NBVG9DO29FQUVaOzhCQUVKOzBCQUNHOzs7Ozs7QUFFdkIsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsNEJBQTRCQyxvQkFBVztJQUNqRSxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxXQUFXLENBQUU7UUFDMUUsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO0lBQ3JCO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNILFFBQVE7SUFDdEI7SUFFQUksZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNILFdBQVc7SUFDekI7SUFFQUksNkJBQTZCO1FBQzNCLE1BQU1SLE9BQU8sSUFBSSxDQUFDUyxPQUFPLElBQ25CQywwQkFBMEJWLE1BQU0sR0FBRztRQUV6QyxPQUFPVTtJQUNUO0lBRUFDLFNBQVNsQixVQUFVLFNBQVVLLE9BQU8sRUFBRWMsWUFBWTtRQUNoRCxNQUFNQyw0QkFBNEIsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUV2RGhCLFFBQVFpQixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVGLDBCQUEwQix5QkFBeUIsQ0FBQztRQUVwRixNQUFNRyxlQUFlLElBQUksQ0FBQ0MsVUFBVSxDQUFDQyxJQUFJLENBQUMsSUFBSSxHQUN4Q0MsbUJBQW1CLElBQUksQ0FBQ0MsY0FBYyxDQUFDRixJQUFJLENBQUMsSUFBSTtRQUV0REcsSUFBQUEsaUJBQUcsRUFBQztZQUNGTDtZQUNBRztTQUNELEVBQUdyQixTQUFTLENBQUN3QjtZQUNaLElBQUlBLFVBQVU7Z0JBQ1osTUFBTUMsbUJBQW1CLElBQUksQ0FBQ3BCLFFBQVE7Z0JBRXRDTCxRQUFRMEIsbUJBQW1CLENBQUNEO1lBQzlCO1lBRUEsSUFBSUQsVUFBVTtnQkFDWnhCLFFBQVEyQixLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRVosMEJBQTBCLHVCQUF1QixDQUFDO1lBQ3RGO1lBRUFELGFBQWFVO1FBQ2Y7SUFDRixHQUFHO0lBRUhMLFdBQVduQixPQUFPLEVBQUVjLFlBQVksRUFBRTtRQUNoQyxJQUFJSSxlQUFlO1FBRW5CLE1BQU1ILDRCQUE0QixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXZEaEIsUUFBUWlCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUYsMEJBQTBCLGdDQUFnQyxDQUFDO1FBRTNGLE1BQU1hLGtCQUFrQixJQUFJLENBQUN4QixJQUFJLENBQUN5QixrQkFBa0IsSUFDOUN6QixPQUFPSixRQUFROEIseUJBQXlCLENBQUNGLGtCQUN6Q0csY0FBZTNCLFNBQVM7UUFFOUIsSUFBSSxDQUFDMkIsYUFBYTtZQUNoQixNQUFNQyxhQUFhLElBQUksQ0FBQzVCLElBQUksQ0FBQ1ksU0FBUztZQUV0Q2hCLFFBQVEyQixLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUVLLFdBQVcsc0JBQXNCLENBQUM7UUFDMUQsT0FBTztZQUNMLE1BQU1DLDRCQUE0QjdCLEtBQUs4QixrQkFBa0IsQ0FBQyxJQUFJLENBQUM1QixXQUFXO1lBRTFFLElBQUksQ0FBQzJCLDJCQUEyQjtnQkFDOUIsTUFBTUQsYUFBYSxJQUFJLENBQUM1QixJQUFJLENBQUNZLFNBQVM7Z0JBRXRDLElBQUksQ0FBQ1YsV0FBVyxHQUNkTixRQUFRMkIsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFWiwwQkFBMEIsMEJBQTBCLEVBQUVpQixXQUFXLHNDQUFzQyxDQUFDLElBQzVIaEMsUUFBUTJCLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRVosMEJBQTBCLDBCQUEwQixFQUFFaUIsV0FBVyxrQ0FBa0MsQ0FBQztZQUNoSSxPQUFPO2dCQUNMLElBQUksQ0FBQzNCLFFBQVEsQ0FBQzhCLE9BQU8sQ0FBQy9CO2dCQUV0QixJQUFJLENBQUNDLFFBQVEsQ0FBQytCLGNBQWMsQ0FBQyxJQUFJLENBQUM5QixXQUFXO2dCQUU3Q1ksZUFBZTtZQUNqQjtRQUNGO1FBRUEsSUFBSUEsY0FBYztZQUNoQmxCLFFBQVEyQixLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRVosMEJBQTBCLDhCQUE4QixDQUFDO1FBQzdGO1FBRUFELGFBQWFJO0lBQ2Y7SUFFQUksZUFBZXRCLE9BQU8sRUFBRWMsWUFBWSxFQUFFO1FBQ3BDLElBQUtPLG1CQUFtQjtRQUV4QixNQUFNZ0IsaUJBQWlCLElBQUksQ0FBQ2hDLFFBQVEsQ0FBQ1csU0FBUyxJQUN4Q0QsNEJBQTRCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFdkRoQixRQUFRaUIsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFRiwwQkFBMEIsMEJBQTBCLEVBQUVzQixlQUFlLGFBQWEsQ0FBQztRQUVuSCxNQUFNQyxxQkFBcUIsSUFBSSxDQUFDakMsUUFBUSxDQUFDa0MsYUFBYSxJQUNoREMsMEJBQTBCeEMsUUFBUXlDLDZDQUE2QyxDQUFDSDtRQUV0RixJQUFJRSx5QkFBeUI7WUFDM0J4QyxRQUFRMkIsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFVSxlQUFlLHVDQUF1QyxDQUFDO1FBQy9FLE9BQU87WUFDTGhCLG1CQUFtQjtRQUNyQjtRQUVBLElBQUlBLGtCQUFrQjtZQUNwQnJCLFFBQVEyQixLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRVosMEJBQTBCLDBCQUEwQixFQUFFc0IsZUFBZSxXQUFXLENBQUM7UUFDckg7UUFFQXZCLGFBQWFPO0lBQ2Y7SUFFQSxPQUFPcUIsT0FBTyxzQkFBc0I7QUFDdEMifQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2RlY2xhcmF0aW9uL3ZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRGVjbGFyYXRpb24gZnJvbSBcIi4uL2RlY2xhcmF0aW9uXCI7XG5cbmltcG9ydCB7IGFsbCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGludWF0aW9uXCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBWYXJpYWJsZURlY2xhcmF0aW9uIGV4dGVuZHMgRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHZhcmlhYmxlLCBwcm92aXNpb25hbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLnByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWw7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGlzUHJvdmlzaW9uYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvdmlzaW9uYWw7XG4gIH1cblxuICBnZXRWYXJpYWJsZURlY2xhcmF0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZTtcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgdmFyaWFibGVEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIGNvbnN0IHR5cGVWZXJpZmllcyA9IHRoaXMudmVyaWZ5VHlwZS5iaW5kKHRoaXMpLFxuICAgICAgICAgIHZhcmlhYmxlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVZhcmlhYmxlLmJpbmQodGhpcyk7XG5cbiAgICBhbGwoW1xuICAgICAgdHlwZVZlcmlmaWVzLFxuICAgICAgdmFyaWFibGVWZXJpZmllc1xuICAgIF0sICBjb250ZXh0LCAodmVyaWZpZXMpID0+IHtcbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICBjb25zdCBkZWNsYXJlZFZhcmlhYmxlID0gdGhpcy52YXJpYWJsZTtcblxuICAgICAgICBjb250ZXh0LmFkZERlY2xhcmVkVmFyaWFibGUoZGVjbGFyZWRWYXJpYWJsZSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uLmApO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHZlcmlmaWVzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgdmVyaWZ5VHlwZShjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyB2YXJpYWJsZSBkZWNsYXJhdGlvbidzIHR5cGUuLi5gKTtcblxuICAgIGNvbnN0IG5vbWluYWxUeXBlTmFtZSA9IHRoaXMudHlwZS5nZXROb21pbmFsVHlwZU5hbWUoKSxcbiAgICAgICAgICB0eXBlID0gY29udGV4dC5maW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSksXG4gICAgICAgICAgdHlwZVByZXNlbnQgPSAodHlwZSAhPT0gbnVsbClcblxuICAgIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZUNvbXBhcmVzVG9Qcm92aXNpb25hbCA9IHR5cGUuY29tcGFyZVByb3Zpc2lvbmFsKHRoaXMucHJvdmlzaW9uYWwpO1xuXG4gICAgICBpZiAoIXR5cGVDb21wYXJlc1RvUHJvdmlzaW9uYWwpIHtcbiAgICAgICAgY29uc3QgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgICB0aGlzLnByb3Zpc2lvbmFsID9cbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgcHJlc2VudCBidXQgbm90IHByb3Zpc2lvbmFsLmApIDpcbiAgICAgICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24ncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVzZW50IGJ1dCBwcm92aXNpb25hbC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFyaWFibGUuc2V0VHlwZSh0eXBlKTtcblxuICAgICAgICB0aGlzLnZhcmlhYmxlLnNldFByb3Zpc2lvbmFsKHRoaXMucHJvdmlzaW9uYWwpO1xuXG4gICAgICAgIHR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyB2YXJpYWJsZSBkZWNsYXJhdGlvbidzIHR5cGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih0eXBlVmVyaWZpZXMpO1xuICB9XG5cbiAgdmVyaWZ5VmFyaWFibGUoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0ICB2YXJpYWJsZVZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMudmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24ncyAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZUlkZW50aWZpZXIgPSB0aGlzLnZhcmlhYmxlLmdldElkZW50aWZpZXIoKSxcbiAgICAgICAgICBkZWNsYXJlZFZhcmlhYmxlUHJlc2VudCA9IGNvbnRleHQuaXNEZWNsYXJlZFZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcik7XG5cbiAgICBpZiAoZGVjbGFyZWRWYXJpYWJsZVByZXNlbnQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIGRlY2xhcmVkIHZhcmlhYmxlIGlzIGFscmVhZHkgcHJlc2VudC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyaWFibGVWZXJpZmllcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHZhcmlhYmxlVmVyaWZpZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24ncyAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiBjb250aW51YXRpb24odmFyaWFibGVWZXJpZmllcyk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVEZWNsYXJhdGlvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlZhcmlhYmxlRGVjbGFyYXRpb24iLCJEZWNsYXJhdGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJ2YXJpYWJsZSIsInByb3Zpc2lvbmFsIiwiZ2V0VHlwZSIsImdldFZhcmlhYmxlIiwiaXNQcm92aXNpb25hbCIsImdldFZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiZ2V0Tm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmVyaWZ5IiwiY29udGludWF0aW9uIiwidmFyaWFibGVEZWNsYXJhdGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidHlwZVZlcmlmaWVzIiwidmVyaWZ5VHlwZSIsImJpbmQiLCJ2YXJpYWJsZVZlcmlmaWVzIiwidmVyaWZ5VmFyaWFibGUiLCJhbGwiLCJ2ZXJpZmllcyIsImRlY2xhcmVkVmFyaWFibGUiLCJhZGREZWNsYXJlZFZhcmlhYmxlIiwiZGVidWciLCJub21pbmFsVHlwZU5hbWUiLCJnZXROb21pbmFsVHlwZU5hbWUiLCJmaW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lIiwidHlwZVByZXNlbnQiLCJ0eXBlU3RyaW5nIiwidHlwZUNvbXBhcmVzVG9Qcm92aXNpb25hbCIsImNvbXBhcmVQcm92aXNpb25hbCIsInNldFR5cGUiLCJzZXRQcm92aXNpb25hbCIsInZhcmlhYmxlU3RyaW5nIiwidmFyaWFibGVJZGVudGlmaWVyIiwiZ2V0SWRlbnRpZmllciIsImRlY2xhcmVkVmFyaWFibGVQcmVzZW50IiwiaXNEZWNsYXJlZFZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVJZGVudGlmaWVyIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7Z0NBVG9DO29FQUVaOzhCQUVKOzBCQUNHOzs7Ozs7QUFFdkIsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsNEJBQTRCQyxvQkFBVztJQUNqRSxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsUUFBUSxFQUFFQyxXQUFXLENBQUU7UUFDMUUsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO0lBQ3JCO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNILFFBQVE7SUFDdEI7SUFFQUksZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNILFdBQVc7SUFDekI7SUFFQUksNkJBQTZCO1FBQzNCLE1BQU1SLE9BQU8sSUFBSSxDQUFDUyxPQUFPLElBQ25CQyww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
@@ -36,8 +36,7 @@ const _default = (0, _elements.define)(class Deduction extends _occamlanguages.E
36
36
  if (nonsensical) {
37
37
  const verifies = false;
38
38
  context.debug(`Unable to verify the '${deductionString}' deduction because it is nonsense.`);
39
- continuation(verifies);
40
- return;
39
+ return continuation(verifies);
41
40
  }
42
41
  (0, _context.declare)((context)=>{
43
42
  (0, _context.elide)((context)=>{
@@ -49,7 +48,7 @@ const _default = (0, _elements.define)(class Deduction extends _occamlanguages.E
49
48
  if (verifies) {
50
49
  context.debug(`...verified the '${deductionString}' deduction.`);
51
50
  }
52
- continuation(verifies);
51
+ return continuation(verifies);
53
52
  });
54
53
  }, context);
55
54
  }, context);
@@ -69,7 +68,7 @@ const _default = (0, _elements.define)(class Deduction extends _occamlanguages.E
69
68
  if (validates) {
70
69
  context.debug(`...validated the '${deductionString}' deduction.`);
71
70
  }
72
- continuation(validates);
71
+ return continuation(validates);
73
72
  });
74
73
  }, context);
75
74
  }
@@ -113,7 +112,7 @@ const _default = (0, _elements.define)(class Deduction extends _occamlanguages.E
113
112
  if (statementUnifies) {
114
113
  context.debug(`...unified the '${statementString}' statement with the '${deductionString}' deduction's statement.`);
115
114
  }
116
- continuation(statementUnifies);
115
+ return continuation(statementUnifies);
117
116
  });
118
117
  }
119
118
  toJSON() {
@@ -149,4 +148,4 @@ function statementFromDeductionNode(deductionNode, context) {
149
148
  return statement;
150
149
  }
151
150
 
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2RlZHVjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZURlZHVjdGlvbiB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBlbGlkZSwgZGVjbGFyZSwgYXR0ZW1wdCwgc2VyaWFsaXNlLCB1bnNlcmlhbGlzZSwgaW5zdGFudGlhdGUsIHJlY29uY2lsZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSwgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIERlZHVjdGlvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXREZWR1Y3Rpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBkZWR1Y3Rpb25Ob2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gZGVkdWN0aW9uTm9kZTtcbiAgfVxuXG4gIGlzTm9uQnJlYWthYmxlKCkge1xuICAgIGNvbnN0IG5vbnNlbnNpY2FsID0gKHRoaXMuc3RhdGVtZW50ID09PSBudWxsKTtcblxuICAgIHJldHVybiBub25zZW5zaWNhbDtcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgZGVkdWN0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uLi5gKTtcblxuICAgIGNvbnN0IG5vbnNlbnNpY2FsID0gdGhpcy5pc05vbkJyZWFrYWJsZSgpO1xuXG4gICAgaWYgKG5vbnNlbnNpY2FsKSB7XG4gICAgICBjb25zdCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24gYmVjYXVzZSBpdCBpcyBub25zZW5zZS5gKTtcblxuICAgICAgY29udGludWF0aW9uKHZlcmlmaWVzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGRlY2xhcmUoKGNvbnRleHQpID0+IHtcbiAgICAgIGVsaWRlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIHRoaXMudmFsaWRhdGUoY29udGV4dCwgKHZhbGlkYXRlcykgPT4ge1xuICAgICAgICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgICAgICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi5gKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb250aW51YXRpb24odmVyaWZpZXMpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuICB9KTtcblxuICB2YWxpZGF0ZShjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBkZWR1Y3Rpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uLi5gKTtcblxuICAgIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCwgKHN0YXRlbWVudFZhbGlkYXRlcykgPT4ge1xuICAgICAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51YXRpb24odmFsaWRhdGVzKTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgdmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgZGVkdWN0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7ZGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uJ3Mgc3RhdGVtZW50Li4uYCk7XG5cbiAgICB0aGlzLnN0YXRlbWVudC52YWxpZGF0ZShjb250ZXh0LCAoc3RhdGVtZW50KSA9PiB7XG4gICAgICBsZXQgc3RhdGVtZW50VmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgICAgc3RhdGVtZW50VmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICBjb250ZXh0LnRyYWNlKGAuLi52YWxpZGF0ZWQgdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbidzIHN0YXRlbWVudC5gKTtcbiAgICAgIH1cblxuICAgICAgY29udGludWF0aW9uKHN0YXRlbWVudFZhbGlkYXRlcyk7XG4gICAgfSk7XG4gIH1cblxuICB1bmlmeVN0ZXAoc3RlcCwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3Qgc3RlcFN0cmluZyA9IHN0ZXAuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgZGVkdWN0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0ZXBTdHJpbmd9JyBzdGVwIHdpdGggdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbi4uLmApO1xuXG4gICAgY29uc3Qgc3RlcENvbnRleHQgPSBzdGVwLmdldENvbnRleHQoKSxcbiAgICAgICAgICBkZWR1Y3Rpb25Db250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksICAvLy9cbiAgICAgICAgICBnZW5lcmFsQ29udGV4dCA9IGRlZHVjdGlvbkNvbnRleHQsIC8vL1xuICAgICAgICAgIHNwZWNpZmljQ29udGV4dCA9IHN0ZXBDb250ZXh0OyAgLy8vXG5cbiAgICByZWNvbmNpbGUoKHNwZWNpZmljQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVtZW50ID0gc3RlcC5nZXRTdGF0ZW1lbnQoKTtcblxuICAgICAgdGhpcy5zdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCAoc3RhdGVtZW50VW5pZmllcykgPT4ge1xuICAgICAgICBsZXQgc3RlcFVuaWZpZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgICAgIHNwZWNpZmljQ29udGV4dC5jb21taXQoY29udGV4dCk7XG5cbiAgICAgICAgICBzdGVwVW5pZmllcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RlcFVuaWZpZXMpIHtcbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCB3aXRoIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb250aW51YXRpb24oc3RlcFVuaWZpZXMpO1xuICAgICAgfSk7XG4gICAgfSwgc3BlY2lmaWNDb250ZXh0KTtcbiAgfVxuXG4gIHVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgIGRlZHVjdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7ZGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uJ3Mgc3RhdGVtZW50Li4uYCk7XG5cbiAgICB0aGlzLnN0YXRlbWVudC51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQsIChzdGF0ZW1lbnRVbmlmaWVzKSA9PiB7XG4gICAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7ZGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uJ3Mgc3RhdGVtZW50LmApO1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24oc3RhdGVtZW50VW5pZmllcyk7XG4gICAgfSk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIHNlcmlhbGlzZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHN0cmluZyxcbiAgICAgICAgYnJlYWtQb2ludFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGpzb247XG4gICAgfSwgY29udGV4dCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRGVkdWN0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgZGVkdWN0aW9uO1xuXG4gICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIHVuc2VyaWFsaXNlKChqc29uLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgICBkZWR1Y3Rpb25Ob2RlID0gaW5zdGFudGlhdGVEZWR1Y3Rpb24oc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IGRlZHVjdGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbURlZHVjdGlvbk5vZGUoZGVkdWN0aW9uTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgZGVkdWN0aW9uID0gbmV3IERlZHVjdGlvbihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCk7XG4gICAgICB9LCBqc29uLCBjb250ZXh0KTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBkZWR1Y3Rpb247XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBzdGF0ZW1lbnRGcm9tRGVkdWN0aW9uTm9kZShkZWR1Y3Rpb25Ob2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBkZWR1Y3Rpb25Ob2RlLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgc3RhdGVtZW50ID0gY29udGV4dC5maW5kU3RhdGVtZW50QnlTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gIHJldHVybiBzdGF0ZW1lbnQ7XG59XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiYnJlYWtQb2ludEZyb21KU09OIiwiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiRGVkdWN0aW9uIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInN0YXRlbWVudCIsImdldFN0YXRlbWVudCIsImdldERlZHVjdGlvbk5vZGUiLCJnZXROb2RlIiwiZGVkdWN0aW9uTm9kZSIsImlzTm9uQnJlYWthYmxlIiwibm9uc2Vuc2ljYWwiLCJ2ZXJpZnkiLCJjb250aW51YXRpb24iLCJkZWR1Y3Rpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZlcmlmaWVzIiwiZGVidWciLCJkZWNsYXJlIiwiZWxpZGUiLCJ2YWxpZGF0ZSIsInZhbGlkYXRlcyIsImF0dGVtcHQiLCJ2YWxpZGF0ZVN0YXRlbWVudCIsInN0YXRlbWVudFZhbGlkYXRlcyIsImNvbW1pdCIsInVuaWZ5U3RlcCIsInN0ZXAiLCJzdGVwU3RyaW5nIiwic3RlcENvbnRleHQiLCJnZXRDb250ZXh0IiwiZGVkdWN0aW9uQ29udGV4dCIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0IiwicmVjb25jaWxlIiwidW5pZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnRVbmlmaWVzIiwic3RlcFVuaWZpZXMiLCJzdGF0ZW1lbnRTdHJpbmciLCJ0b0pTT04iLCJzZXJpYWxpc2UiLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwiZGVkdWN0aW9uIiwiaW5zdGFudGlhdGUiLCJ1bnNlcmlhbGlzZSIsImluc3RhbnRpYXRlRGVkdWN0aW9uIiwic3RhdGVtZW50RnJvbURlZHVjdGlvbk5vZGUiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsImZpbmRTdGF0ZW1lbnRCeVN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVI2QzswQkFFdEI7NkJBQ2M7eUJBQ21EO0FBRXhGLE1BQU0sRUFBRUEsU0FBUyxFQUFFQyxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpGLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsQ0FBRTtRQUN4RCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsU0FB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
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2RlZHVjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZURlZHVjdGlvbiB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBlbGlkZSwgZGVjbGFyZSwgYXR0ZW1wdCwgc2VyaWFsaXNlLCB1bnNlcmlhbGlzZSwgaW5zdGFudGlhdGUsIHJlY29uY2lsZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSwgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIERlZHVjdGlvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHN0YXRlbWVudCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXREZWR1Y3Rpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBkZWR1Y3Rpb25Ob2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gZGVkdWN0aW9uTm9kZTtcbiAgfVxuXG4gIGlzTm9uQnJlYWthYmxlKCkge1xuICAgIGNvbnN0IG5vbnNlbnNpY2FsID0gKHRoaXMuc3RhdGVtZW50ID09PSBudWxsKTtcblxuICAgIHJldHVybiBub25zZW5zaWNhbDtcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgZGVkdWN0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uLi5gKTtcblxuICAgIGNvbnN0IG5vbnNlbnNpY2FsID0gdGhpcy5pc05vbkJyZWFrYWJsZSgpO1xuXG4gICAgaWYgKG5vbnNlbnNpY2FsKSB7XG4gICAgICBjb25zdCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24gYmVjYXVzZSBpdCBpcyBub25zZW5zZS5gKTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2ZXJpZmllcyk7XG4gICAgfVxuXG4gICAgZGVjbGFyZSgoY29udGV4dCkgPT4ge1xuICAgICAgZWxpZGUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZShjb250ZXh0LCAodmFsaWRhdGVzKSA9PiB7XG4gICAgICAgICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uLmApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24odmVyaWZpZXMpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuICB9KTtcblxuICB2YWxpZGF0ZShjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBkZWR1Y3Rpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uLi5gKTtcblxuICAgIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGVTdGF0ZW1lbnQoY29udGV4dCwgKHN0YXRlbWVudFZhbGlkYXRlcykgPT4ge1xuICAgICAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFZhbGlkYXRlcykge1xuICAgICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uYCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHZhbGlkYXRlcyk7XG4gICAgICB9KTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHZhbGlkYXRlU3RhdGVtZW50KGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGRlZHVjdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbidzIHN0YXRlbWVudC4uLmApO1xuXG4gICAgdGhpcy5zdGF0ZW1lbnQudmFsaWRhdGUoY29udGV4dCwgKHN0YXRlbWVudCkgPT4ge1xuICAgICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgICAgIHN0YXRlbWVudFZhbGlkYXRlcyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC50cmFjZShgLi4udmFsaWRhdGVkIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24ncyBzdGF0ZW1lbnQuYCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRWYWxpZGF0ZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgdW5pZnlTdGVwKHN0ZXAsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHN0ZXBTdHJpbmcgPSBzdGVwLmdldFN0cmluZygpLFxuICAgICAgICAgIGRlZHVjdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGVwU3RyaW5nfScgc3RlcCB3aXRoIHRoZSAnJHtkZWR1Y3Rpb25TdHJpbmd9JyBkZWR1Y3Rpb24uLi5gKTtcblxuICAgIGNvbnN0IHN0ZXBDb250ZXh0ID0gc3RlcC5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZGVkdWN0aW9uQ29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLCAgLy8vXG4gICAgICAgICAgZ2VuZXJhbENvbnRleHQgPSBkZWR1Y3Rpb25Db250ZXh0LCAvLy9cbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQgPSBzdGVwQ29udGV4dDsgIC8vL1xuXG4gICAgcmVjb25jaWxlKChzcGVjaWZpY0NvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudCA9IHN0ZXAuZ2V0U3RhdGVtZW50KCk7XG5cbiAgICAgIHRoaXMuc3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCwgKHN0YXRlbWVudFVuaWZpZXMpID0+IHtcbiAgICAgICAgbGV0IHN0ZXBVbmlmaWVzID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHQuY29tbWl0KGNvbnRleHQpO1xuXG4gICAgICAgICAgc3RlcFVuaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0ZXBVbmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RlcFN0cmluZ30nIHN0ZXAgd2l0aCB0aGUgJyR7ZGVkdWN0aW9uU3RyaW5nfScgZGVkdWN0aW9uLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGludWF0aW9uKHN0ZXBVbmlmaWVzKTtcbiAgICAgIH0pO1xuICAgIH0sIHNwZWNpZmljQ29udGV4dCk7XG4gIH1cblxuICB1bmlmeVN0YXRlbWVudChzdGF0ZW1lbnQsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQsICAvLy9cbiAgICAgICAgICBkZWR1Y3Rpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbidzIHN0YXRlbWVudC4uLmApO1xuXG4gICAgdGhpcy5zdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0LCAoc3RhdGVtZW50VW5pZmllcykgPT4ge1xuICAgICAgaWYgKHN0YXRlbWVudFVuaWZpZXMpIHtcbiAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2RlZHVjdGlvblN0cmluZ30nIGRlZHVjdGlvbidzIHN0YXRlbWVudC5gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdGF0ZW1lbnRVbmlmaWVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICByZXR1cm4gc2VyaWFsaXNlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgICAgY29uc3QganNvbiA9IHtcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgc3RyaW5nLFxuICAgICAgICBicmVha1BvaW50XG4gICAgICB9O1xuXG4gICAgICByZXR1cm4ganNvbjtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJEZWR1Y3Rpb25cIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGxldCBkZWR1Y3Rpb247XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgdW5zZXJpYWxpc2UoKGpzb24sIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICAgIGRlZHVjdGlvbk5vZGUgPSBpbnN0YW50aWF0ZURlZHVjdGlvbihzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBub2RlID0gZGVkdWN0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRGcm9tRGVkdWN0aW9uTm9kZShkZWR1Y3Rpb25Ob2RlLCBjb250ZXh0KTtcblxuICAgICAgICBkZWR1Y3Rpb24gPSBuZXcgRGVkdWN0aW9uKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50KTtcbiAgICAgIH0sIGpzb24sIGNvbnRleHQpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGRlZHVjdGlvbjtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHN0YXRlbWVudEZyb21EZWR1Y3Rpb25Ob2RlKGRlZHVjdGlvbk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IGRlZHVjdGlvbk5vZGUuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICBzdGF0ZW1lbnQgPSBjb250ZXh0LmZpbmRTdGF0ZW1lbnRCeVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgcmV0dXJuIHN0YXRlbWVudDtcbn1cbiJdLCJuYW1lcyI6WyJicmVha2FibGUiLCJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJEZWR1Y3Rpb24iLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiZ2V0RGVkdWN0aW9uTm9kZSIsImdldE5vZGUiLCJkZWR1Y3Rpb25Ob2RlIiwiaXNOb25CcmVha2FibGUiLCJub25zZW5zaWNhbCIsInZlcmlmeSIsImNvbnRpbnVhdGlvbiIsImRlZHVjdGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmVyaWZpZXMiLCJkZWJ1ZyIsImRlY2xhcmUiLCJlbGlkZSIsInZhbGlkYXRlIiwidmFsaWRhdGVzIiwiYXR0ZW1wdCIsInZhbGlkYXRlU3RhdGVtZW50Iiwic3RhdGVtZW50VmFsaWRhdGVzIiwiY29tbWl0IiwidW5pZnlTdGVwIiwic3RlcCIsInN0ZXBTdHJpbmciLCJzdGVwQ29udGV4dCIsImdldENvbnRleHQiLCJkZWR1Y3Rpb25Db250ZXh0IiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJyZWNvbmNpbGUiLCJ1bmlmeVN0YXRlbWVudCIsInN0YXRlbWVudFVuaWZpZXMiLCJzdGVwVW5pZmllcyIsInN0YXRlbWVudFN0cmluZyIsInRvSlNPTiIsInNlcmlhbGlzZSIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJkZWR1Y3Rpb24iLCJpbnN0YW50aWF0ZSIsInVuc2VyaWFsaXNlIiwiaW5zdGFudGlhdGVEZWR1Y3Rpb24iLCJzdGF0ZW1lbnRGcm9tRGVkdWN0aW9uTm9kZSIsInN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwiZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7Z0NBUjZDOzBCQUV0Qjs2QkFDYzt5QkFDbUQ7QUFFeEYsTUFBTSxFQUFFQSxTQUFTLEVBQUVDLGtCQUFrQixFQUFFQywwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFekYsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxDQUFFO1FBQ3hELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFB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
@@ -29,17 +29,17 @@ const _default = (0, _elements.define)(class Derivation extends _occamlanguages.
29
29
  return lastStep;
30
30
  }
31
31
  verify(context, continuation) {
32
- every(this.subproofOrProofAssertions, (subproofOrProofAssertion, continuation)=>{
32
+ return every(this.subproofOrProofAssertions, (subproofOrProofAssertion, continuation)=>{
33
33
  subproofOrProofAssertion.verify(context, (subproofOrProofAssertionVerifies)=>{
34
34
  if (subproofOrProofAssertionVerifies) {
35
35
  context.assignAssignments();
36
36
  context.addSubproofOrProofAssertion(subproofOrProofAssertion);
37
37
  }
38
- continuation(subproofOrProofAssertionVerifies);
38
+ return continuation(subproofOrProofAssertionVerifies);
39
39
  });
40
40
  }, continuation);
41
41
  }
42
42
  static name = "Derivation";
43
43
  });
44
44
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2Rlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgRWxlbWVudCwgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBsYXN0IH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIERlcml2YXRpb24gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyA9IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnM7XG4gIH1cblxuICBnZXRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnN1YnByb29mT3JQcm9vZkFzc2VydGlvbnM7XG4gIH1cblxuICBnZXREZXJpdmF0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgZGVyaXZhdGlvbk5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gZGVyaXZhdGlvbk5vZGU7XG4gIH1cblxuICBnZXRMYXN0U3RlcCgpIHtcbiAgICBjb25zdCBsYXN0U3VicHJvb2ZPclByb29mQXNzZXJ0aW9uID0gbGFzdCh0aGlzLnN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMpLFxuICAgICAgICAgIGxhc3RQcm9vZkFzc2VydGlvbiA9IGxhc3RTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24sICAvLy9cbiAgICAgICAgICBsYXN0U3RlcCA9IGxhc3RQcm9vZkFzc2VydGlvbjsgIC8vL1xuXG4gICAgcmV0dXJuIGxhc3RTdGVwO1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGV2ZXJ5KHRoaXMuc3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucywgKHN1YnByb29mT3JQcm9vZkFzc2VydGlvbiwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24udmVyaWZ5KGNvbnRleHQsIChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25WZXJpZmllcykgPT4ge1xuICAgICAgICBpZiAoc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uVmVyaWZpZXMpIHtcbiAgICAgICAgICBjb250ZXh0LmFzc2lnbkFzc2lnbm1lbnRzKCk7XG5cbiAgICAgICAgICBjb250ZXh0LmFkZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbihzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29udGludWF0aW9uKHN1YnByb29mT3JQcm9vZkFzc2VydGlvblZlcmlmaWVzKTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRGVyaXZhdGlvblwiO1xufSk7XG5cbiJdLCJuYW1lcyI6WyJsYXN0IiwiYXJyYXlVdGlsaXRpZXMiLCJldmVyeSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIkRlcml2YXRpb24iLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyIsImdldFN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMiLCJnZXREZXJpdmF0aW9uTm9kZSIsImdldE5vZGUiLCJkZXJpdmF0aW9uTm9kZSIsImdldExhc3RTdGVwIiwibGFzdFN1YnByb29mT3JQcm9vZkFzc2VydGlvbiIsImxhc3RQcm9vZkFzc2VydGlvbiIsImxhc3RTdGVwIiwidmVyaWZ5IiwiY29udGludWF0aW9uIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwic3VicHJvb2ZPclByb29mQXNzZXJ0aW9uVmVyaWZpZXMiLCJhc3NpZ25Bc3NpZ25tZW50cyIsImFkZFN1YnByb29mT3JQcm9vZkFzc2VydGlvbiIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7OzJCQVIrQjtnQ0FDZ0I7MEJBRXhCO0FBRXZCLE1BQU0sRUFBRUEsSUFBSSxFQUFFLEdBQUdDLHlCQUFjLEVBQ3pCLEVBQUVDLEtBQUssRUFBRSxHQUFHQyxxQ0FBcUI7TUFFdkMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxtQkFBbUJDLHVCQUFPO0lBQ3BELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMseUJBQXlCLENBQUU7UUFDeEUsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLHlCQUF5QixHQUFHQTtJQUNuQztJQUVBQywrQkFBK0I7UUFDN0IsT0FBTyxJQUFJLENBQUNELHlCQUF5QjtJQUN2QztJQUVBRSxvQkFBb0I7UUFDbEIsTUFBTUosT0FBTyxJQUFJLENBQUNLLE9BQU8sSUFDbkJDLGlCQUFpQk4sTUFBTyxHQUFHO1FBRWpDLE9BQU9NO0lBQ1Q7SUFFQUMsY0FBYztRQUNaLE1BQU1DLCtCQUErQmpCLEtBQUssSUFBSSxDQUFDVyx5QkFBeUIsR0FDbEVPLHFCQUFxQkQsOEJBQ3JCRSxXQUFXRCxvQkFBcUIsR0FBRztRQUV6QyxPQUFPQztJQUNUO0lBRUFDLE9BQU9iLE9BQU8sRUFBRWMsWUFBWSxFQUFFO1FBQzVCbkIsTUFBTSxJQUFJLENBQUNTLHlCQUF5QixFQUFFLENBQUNXLDBCQUEwQkQ7WUFDL0RDLHlCQUF5QkYsTUFBTSxDQUFDYixTQUFTLENBQUNnQjtnQkFDeEMsSUFBSUEsa0NBQWtDO29CQUNwQ2hCLFFBQVFpQixpQkFBaUI7b0JBRXpCakIsUUFBUWtCLDJCQUEyQixDQUFDSDtnQkFDdEM7Z0JBRUFELGFBQWFFO1lBQ2Y7UUFDRixHQUFHRjtJQUNMO0lBRUEsT0FBT0ssT0FBTyxhQUFhO0FBQzdCIn0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2Rlcml2YXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgRWxlbWVudCwgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBsYXN0IH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIERlcml2YXRpb24gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyA9IHN1YnByb29mT3JQcm9vZkFzc2VydGlvbnM7XG4gIH1cblxuICBnZXRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnN1YnByb29mT3JQcm9vZkFzc2VydGlvbnM7XG4gIH1cblxuICBnZXREZXJpdmF0aW9uTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgZGVyaXZhdGlvbk5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gZGVyaXZhdGlvbk5vZGU7XG4gIH1cblxuICBnZXRMYXN0U3RlcCgpIHtcbiAgICBjb25zdCBsYXN0U3VicHJvb2ZPclByb29mQXNzZXJ0aW9uID0gbGFzdCh0aGlzLnN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMpLFxuICAgICAgICAgIGxhc3RQcm9vZkFzc2VydGlvbiA9IGxhc3RTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24sICAvLy9cbiAgICAgICAgICBsYXN0U3RlcCA9IGxhc3RQcm9vZkFzc2VydGlvbjsgIC8vL1xuXG4gICAgcmV0dXJuIGxhc3RTdGVwO1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIHJldHVybiBldmVyeSh0aGlzLnN1YnByb29mT3JQcm9vZkFzc2VydGlvbnMsIChzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24sIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uLnZlcmlmeShjb250ZXh0LCAoc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uVmVyaWZpZXMpID0+IHtcbiAgICAgICAgaWYgKHN1YnByb29mT3JQcm9vZkFzc2VydGlvblZlcmlmaWVzKSB7XG4gICAgICAgICAgY29udGV4dC5hc3NpZ25Bc3NpZ25tZW50cygpO1xuXG4gICAgICAgICAgY29udGV4dC5hZGRTdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24oc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VicHJvb2ZPclByb29mQXNzZXJ0aW9uVmVyaWZpZXMpO1xuICAgICAgfSk7XG4gICAgfSwgY29udGludWF0aW9uKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJEZXJpdmF0aW9uXCI7XG59KTtcblxuIl0sIm5hbWVzIjpbImxhc3QiLCJhcnJheVV0aWxpdGllcyIsImV2ZXJ5IiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiZGVmaW5lIiwiRGVyaXZhdGlvbiIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25zIiwiZ2V0U3VicHJvb2ZPclByb29mQXNzZXJ0aW9ucyIsImdldERlcml2YXRpb25Ob2RlIiwiZ2V0Tm9kZSIsImRlcml2YXRpb25Ob2RlIiwiZ2V0TGFzdFN0ZXAiLCJsYXN0U3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwibGFzdFByb29mQXNzZXJ0aW9uIiwibGFzdFN0ZXAiLCJ2ZXJpZnkiLCJjb250aW51YXRpb24iLCJzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb24iLCJzdWJwcm9vZk9yUHJvb2ZBc3NlcnRpb25WZXJpZmllcyIsImFzc2lnbkFzc2lnbm1lbnRzIiwiYWRkU3VicHJvb2ZPclByb29mQXNzZXJ0aW9uIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7MkJBUitCO2dDQUNnQjswQkFFeEI7QUFFdkIsTUFBTSxFQUFFQSxJQUFJLEVBQUUsR0FBR0MseUJBQWMsRUFDekIsRUFBRUMsS0FBSyxFQUFFLEdBQUdDLHFDQUFxQjtNQUV2QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG1CQUFtQkMsdUJBQU87SUFDcEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyx5QkFBeUIsQ0FBRTtRQUN4RSxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MseUJBQXlCLEdBQUdBO0lBQ25DO0lBRUFDLCtCQUErQjtRQUM3QixPQUFPLElBQUksQ0FBQ0QseUJBQXlCO0lBQ3ZDO0lBRUFFLG9CQUFvQjtRQUNsQixNQUFNSixPQUFPLElBQUksQ0FBQ0ssT0FBTyxJQUNuQkMsaUJBQWlCTixNQUFPLEdBQUc7UUFFakMsT0FBT007SUFDVDtJQUVBQyxjQUFjO1FBQ1osTUFBTUMsK0JBQStCakIsS0FBSyxJQUFJLENBQUNXLHlCQUF5QixHQUNsRU8scUJBQXFCRCw4QkFDckJFLFdBQVdELG9CQUFxQixHQUFHO1FBRXpDLE9BQU9DO0lBQ1Q7SUFFQUMsT0FBT2IsT0FBTyxFQUFFYyxZQUFZLEVBQUU7UUFDNUIsT0FBT25CLE1BQU0sSUFBSSxDQUFDUyx5QkFBeUIsRUFBRSxDQUFDVywwQkFBMEJEO1lBQ3RFQyx5QkFBeUJGLE1BQU0sQ0FBQ2IsU0FBUyxDQUFDZ0I7Z0JBQ3hDLElBQUlBLGtDQUFrQztvQkFDcENoQixRQUFRaUIsaUJBQWlCO29CQUV6QmpCLFFBQVFrQiwyQkFBMkIsQ0FBQ0g7Z0JBQ3RDO2dCQUVBLE9BQU9ELGFBQWFFO1lBQ3RCO1FBQ0YsR0FBR0Y7SUFDTDtJQUVBLE9BQU9LLE9BQU8sYUFBYTtBQUM3QiJ9