occam-verify-cli 0.0.1061 → 0.0.1065

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 (78) hide show
  1. package/bin/action/verify.js +2 -0
  2. package/lib/assertion/contained.js +184 -0
  3. package/lib/assertion/defined.js +171 -0
  4. package/lib/assertion/subproof.js +5 -5
  5. package/lib/assertion/type.js +13 -6
  6. package/lib/conclusion.js +5 -8
  7. package/lib/consequent.js +5 -8
  8. package/lib/context/release.js +3 -2
  9. package/lib/declaration.js +6 -50
  10. package/lib/equality.js +6 -7
  11. package/lib/equivalence.js +3 -2
  12. package/lib/frame.js +160 -64
  13. package/lib/metavariable.js +49 -39
  14. package/lib/mixins/statement/verify.js +24 -32
  15. package/lib/premise.js +5 -8
  16. package/lib/proofStep.js +2 -2
  17. package/lib/statement/unqualified.js +14 -1
  18. package/lib/statement.js +77 -23
  19. package/lib/substitution/statement.js +17 -2
  20. package/lib/substitution/statementForMetavariable.js +22 -27
  21. package/lib/substitution/termForVariable.js +9 -9
  22. package/lib/supposition.js +5 -8
  23. package/lib/term.js +46 -3
  24. package/lib/unifier/intrinsicLevel.js +4 -4
  25. package/lib/unifier/metaLevel.js +9 -13
  26. package/lib/unifier/metavariable.js +4 -4
  27. package/lib/unify/simpleSubstitutionStatementWithComplexSubstitutionStatement.js +3 -3
  28. package/lib/unify/statementWithSttaemetnGivenEquivalences.js +5 -5
  29. package/lib/utilities/unify.js +4 -21
  30. package/lib/variable.js +19 -3
  31. package/lib/verifier/intrinsicLevel.js +4 -4
  32. package/lib/verifier/metaLevel.js +4 -4
  33. package/lib/verifier/substitution.js +161 -0
  34. package/lib/verifier/topLevel.js +4 -4
  35. package/package.json +1 -1
  36. package/src/assertion/contained.js +170 -0
  37. package/src/assertion/defined.js +161 -0
  38. package/src/assertion/subproof.js +5 -4
  39. package/src/assertion/type.js +18 -7
  40. package/src/conclusion.js +5 -18
  41. package/src/consequent.js +5 -18
  42. package/src/context/release.js +3 -1
  43. package/src/declaration.js +49 -49
  44. package/src/equality.js +7 -8
  45. package/src/equivalence.js +3 -1
  46. package/src/frame.js +204 -59
  47. package/src/metavariable.js +82 -45
  48. package/src/mixins/statement/verify.js +30 -42
  49. package/src/premise.js +5 -18
  50. package/src/proofStep.js +1 -1
  51. package/src/statement/unqualified.js +17 -0
  52. package/src/statement.js +116 -32
  53. package/src/substitution/statement.js +22 -2
  54. package/src/substitution/statementForMetavariable.js +27 -34
  55. package/src/substitution/termForVariable.js +15 -12
  56. package/src/supposition.js +5 -18
  57. package/src/term.js +61 -3
  58. package/src/unifier/intrinsicLevel.js +3 -3
  59. package/src/unifier/metaLevel.js +16 -21
  60. package/src/unifier/metavariable.js +3 -3
  61. package/src/unify/simpleSubstitutionStatementWithComplexSubstitutionStatement.js +2 -2
  62. package/src/unify/statementWithSttaemetnGivenEquivalences.js +4 -4
  63. package/src/utilities/unify.js +0 -14
  64. package/src/variable.js +27 -3
  65. package/src/verifier/intrinsicLevel.js +3 -3
  66. package/src/verifier/metaLevel.js +3 -3
  67. package/src/verifier/substitution.js +75 -0
  68. package/src/verifier/topLevel.js +3 -3
  69. package/lib/unify/frameWithMetaType.js +0 -24
  70. package/lib/verify/assertion/contained.js +0 -107
  71. package/lib/verify/assertion/defined.js +0 -98
  72. package/lib/verify/assertion/subproof.js +0 -16
  73. package/lib/verify/frameGivenMetaType.js +0 -37
  74. package/src/unify/frameWithMetaType.js +0 -14
  75. package/src/verify/assertion/contained.js +0 -134
  76. package/src/verify/assertion/defined.js +0 -120
  77. package/src/verify/assertion/subproof.js +0 -9
  78. package/src/verify/frameGivenMetaType.js +0 -31
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _shim = /*#__PURE__*/ _interop_require_default(require("./shim"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("./context/local"));
13
- var _metaLevel = /*#__PURE__*/ _interop_require_default(require("./unifier/metaLevel"));
14
12
  var _subproof = /*#__PURE__*/ _interop_require_default(require("./assertion/subproof"));
15
13
  var _unqualified = /*#__PURE__*/ _interop_require_default(require("./statement/unqualified"));
16
14
  var _query = require("./utilities/query");
@@ -129,12 +127,11 @@ var Supposition = /*#__PURE__*/ function() {
129
127
  key: "unifyStatement",
130
128
  value: function unifyStatement(statement, substitutions, localContext) {
131
129
  var statementUnified;
132
- var supposition = this, statementString = statement.getString(), suppositionStatement = supposition.getStatement(), suppositionStatementString = suppositionStatement.getString();
133
- localContext.trace("Unifying the '".concat(statementString, "' statement with the supposition's '").concat(suppositionStatementString, "' statement..."));
134
- var statementNode = statement.getNode(), suppositionStatementNode = suppositionStatement.getNode(), nodeA = suppositionStatementNode, nodeB = statementNode, fileContextA = this.fileContext, localContextA = _local.default.fromFileContext(fileContextA), localContextB = localContext, unified = _metaLevel.default.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
135
- statementUnified = unified; ///
130
+ var statementString = statement.getString(), suppositionString = this.getString();
131
+ localContext.trace("Unifying the '".concat(statementString, "' statement with the '").concat(suppositionString, "' supposition..."));
132
+ statementUnified = this.unqualifiedStatement.unifyStatement(statement, substitutions, this.fileContext, localContext);
136
133
  if (statementUnified) {
137
- localContext.debug("...unified the '".concat(statementString, "' statement with the supposition's '").concat(suppositionStatementString, "' statement."));
134
+ localContext.debug("...unified the '".concat(statementString, "' statement with the '").concat(suppositionString, "' supposition."));
138
135
  }
139
136
  return statementUnified;
140
137
  }
@@ -170,4 +167,4 @@ var Supposition = /*#__PURE__*/ function() {
170
167
  return Supposition;
171
168
  }();
172
169
 
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdXBwb3NpdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgbWV0YUxldmVsVW5pZmllciBmcm9tIFwiLi91bmlmaWVyL21ldGFMZXZlbFwiO1xuaW1wb3J0IFN1YnByb29mQXNzZXJ0aW9uIGZyb20gXCIuL2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IFVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuL3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGFzc2lnbkFzc2lnbm1lbnRzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2Fzc2lnbm1lbnRzXCI7XG5cbmNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N1cHBvc2l0aW9uL3VucXVhbGlmaWVkU3RhdGVtZW50XCIpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdXBwb3NpdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGZpbGVDb250ZXh0LCB1bnF1YWxpZmllZFN0YXRlbWVudCkge1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgICB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50ID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dDtcbiAgfVxuXG4gIGdldFVucXVhbGlmaWVkU3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkgeyByZXR1cm4gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC5nZXRTdHJpbmcoKTsgfVxuXG4gIGdldFN0YXRlbWVudCgpIHsgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCk7IH1cblxuICB2ZXJpZnkobG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdXBwb3NpdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlZCA9IHRydWUsXG4gICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBhc3NpZ25tZW50c0Fzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudHMoYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChhc3NpZ25tZW50c0Fzc2lnbmVkKSB7XG4gICAgICAgIGNvbnN0IHsgUHJvb2ZTdGVwIH0gPSBzaGltLFxuICAgICAgICAgICAgICBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50KHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQpO1xuXG4gICAgICAgIGxvY2FsQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcblxuICAgICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdWJwcm9vZlVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uID0gdGhpcywgLy8vXG4gICAgICAgICAgc3VicHJvb2ZTdHJpbmcgPSBzdWJwcm9vZi5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzdXBwb3NpdGlvblN0YXRlbWVudCA9IHN1cHBvc2l0aW9uLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50U3RyaW5nID0gc3VwcG9zaXRpb25TdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlIHN1cHBvc2l0aW9uJ3MgJyR7c3VwcG9zaXRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb24gPSBTdWJwcm9vZkFzc2VydGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCB0aGlzLmZpbGVDb250ZXh0KTtcblxuICAgIGlmIChzdWJwcm9vZkFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgc3VicHJvb2ZVbmlmaWVkID0gc3VicHJvb2ZBc3NlcnRpb24udW5pZnlTdWJwcm9vZihzdWJwcm9vZiwgc3Vic3RpdHV0aW9ucywgdGhpcy5maWxlQ29udGV4dCwgbG9jYWxDb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoc3VicHJvb2ZVbmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgc3VwcG9zaXRpb24ncyAnJHtzdXBwb3NpdGlvblN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VicHJvb2ZVbmlmaWVkO1xuICB9XG5cbiAgdW5pZnlQcm9vZlN0ZXAocHJvb2ZTdGVwLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgcHJvb2ZTdGVwVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3VicHJvb2YgPSBwcm9vZlN0ZXAuZ2V0U3VicHJvb2YoKSxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBwcm9vZlN0ZXAuZ2V0U3RhdGVtZW50KCk7XG5cbiAgICBzdWJzdGl0dXRpb25zLnNuYXBzaG90KCk7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAoc3VicHJvb2YgIT09IG51bGwpIHtcbiAgICAgIHByb29mU3RlcFVuaWZpZWQgPSB0aGlzLnVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG4gICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHByb29mU3RlcFVuaWZpZWQgPSB0aGlzLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcm9vZlN0ZXBVbmlmaWVkID9cbiAgICAgIHN1YnN0aXR1dGlvbnMuY29udGludWUoKSA6XG4gICAgICAgIHN1YnN0aXR1dGlvbnMucm9sbGJhY2sobG9jYWxDb250ZXh0KTtcblxuICAgIHJldHVybiBwcm9vZlN0ZXBVbmlmaWVkO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VW5pZmllZDtcblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uID0gdGhpcywgLy8vXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50ID0gc3VwcG9zaXRpb24uZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3VwcG9zaXRpb25TdGF0ZW1lbnRTdHJpbmcgPSBzdXBwb3NpdGlvblN0YXRlbWVudC5nZXRTdHJpbmcoKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBzdXBwb3NpdGlvbidzICcke3N1cHBvc2l0aW9uU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50Li4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50LmdldE5vZGUoKSxcbiAgICAgICAgICBzdXBwb3NpdGlvblN0YXRlbWVudE5vZGUgPSBzdXBwb3NpdGlvblN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZUEgPSBzdXBwb3NpdGlvblN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBub2RlQiA9IHN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBmaWxlQ29udGV4dEEgPSB0aGlzLmZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgICAgbG9jYWxDb250ZXh0QSA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHRBKSxcbiAgICAgICAgICBsb2NhbENvbnRleHRCID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICB1bmlmaWVkID0gbWV0YUxldmVsVW5pZmllci51bmlmeShub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgc3RhdGVtZW50VW5pZmllZCA9IHVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlIHN1cHBvc2l0aW9uJ3MgJyR7c3VwcG9zaXRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnRKU09OID0gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC50b0pTT04oKSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50SlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCB7IHVucXVhbGlmaWVkU3RhdGVtZW50IH0gPSBqc29uO1xuXG4gICAganNvbiA9IHVucXVhbGlmaWVkU3RhdGVtZW50OyAgLy8vXG5cbiAgICB1bnF1YWxpZmllZFN0YXRlbWVudCA9IFVucXVhbGlmaWVkU3RhdGVtZW50LmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uID0gbmV3IFN1cHBvc2l0aW9uKGZpbGVDb250ZXh0LCB1bnF1YWxpZmllZFN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVN1cHBvc2l0aW9uTm9kZShzdXBwb3NpdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkoc3VwcG9zaXRpb25Ob2RlKSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudCA9IFVucXVhbGlmaWVkU3RhdGVtZW50LmZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3VwcG9zaXRpb24gPSBuZXcgU3VwcG9zaXRpb24oZmlsZUNvbnRleHQsIHVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgIHJldHVybiBzdXBwb3NpdGlvblxuICB9XG59XG4iXSwibmFtZXMiOlsiU3VwcG9zaXRpb24iLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImZpbGVDb250ZXh0IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJnZXRGaWxlQ29udGV4dCIsImdldFVucXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0U3RyaW5nIiwiZ2V0U3RhdGVtZW50IiwidmVyaWZ5IiwibG9jYWxDb250ZXh0IiwidmVyaWZpZWQiLCJzdXBwb3NpdGlvblN0cmluZyIsInRyYWNlIiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYXNzaWdubWVudHNBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnRzIiwiUHJvb2ZTdGVwIiwic2hpbSIsInByb29mU3RlcCIsImZyb21VbnF1YWxpZmllZFN0YXRlbWVudCIsImFkZFByb29mU3RlcCIsImRlYnVnIiwidW5pZnlTdWJwcm9vZiIsInN1YnByb29mIiwic3Vic3RpdHV0aW9ucyIsInN1YnByb29mVW5pZmllZCIsInN1cHBvc2l0aW9uIiwic3VicHJvb2ZTdHJpbmciLCJzdXBwb3NpdGlvblN0YXRlbWVudCIsInN1cHBvc2l0aW9uU3RhdGVtZW50U3RyaW5nIiwic3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJzdWJwcm9vZkFzc2VydGlvbiIsIlN1YnByb29mQXNzZXJ0aW9uIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJ1bmlmeVByb29mU3RlcCIsInByb29mU3RlcFVuaWZpZWQiLCJnZXRTdWJwcm9vZiIsInNuYXBzaG90IiwidW5pZnlTdGF0ZW1lbnQiLCJjb250aW51ZSIsInJvbGxiYWNrIiwic3RhdGVtZW50VW5pZmllZCIsInN0YXRlbWVudFN0cmluZyIsInN1cHBvc2l0aW9uU3RhdGVtZW50Tm9kZSIsIm5vZGVBIiwibm9kZUIiLCJmaWxlQ29udGV4dEEiLCJsb2NhbENvbnRleHRBIiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwibG9jYWxDb250ZXh0QiIsInVuaWZpZWQiLCJtZXRhTGV2ZWxVbmlmaWVyIiwidW5pZnkiLCJ0b0pTT04iLCJ1bnF1YWxpZmllZFN0YXRlbWVudEpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJVbnF1YWxpZmllZFN0YXRlbWVudCIsImZyb21TdXBwb3NpdGlvbk5vZGUiLCJzdXBwb3NpdGlvbk5vZGUiLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJmcm9tVW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQWFxQkE7OzsyREFYSjs0REFDUTtnRUFDSTsrREFDQztrRUFDRztxQkFFUDsyQkFDUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsQyxJQUFNQyxnQ0FBZ0NDLElBQUFBLGdCQUFTLEVBQUM7QUFFakMsSUFBQSxBQUFNRiw0QkFBTjthQUFNQSxZQUNQRyxXQUFXLEVBQUVDLG9CQUFvQjtnQ0FEMUJKO1FBRWpCLElBQUksQ0FBQ0csV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLG9CQUFvQixHQUFHQTs7a0JBSFhKOztZQU1uQkssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixXQUFXO1lBQ3pCOzs7WUFFQUcsS0FB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
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zdXBwb3NpdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IFN1YnByb29mQXNzZXJ0aW9uIGZyb20gXCIuL2Fzc2VydGlvbi9zdWJwcm9vZlwiO1xuaW1wb3J0IFVucXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuL3N0YXRlbWVudC91bnF1YWxpZmllZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGFzc2lnbkFzc2lnbm1lbnRzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2Fzc2lnbm1lbnRzXCI7XG5cbmNvbnN0IHVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N1cHBvc2l0aW9uL3VucXVhbGlmaWVkU3RhdGVtZW50XCIpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTdXBwb3NpdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGZpbGVDb250ZXh0LCB1bnF1YWxpZmllZFN0YXRlbWVudCkge1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgICB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50ID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dDtcbiAgfVxuXG4gIGdldFVucXVhbGlmaWVkU3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnVucXVhbGlmaWVkU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkgeyByZXR1cm4gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC5nZXRTdHJpbmcoKTsgfVxuXG4gIGdldFN0YXRlbWVudCgpIHsgcmV0dXJuIHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCk7IH1cblxuICB2ZXJpZnkobG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBzdXBwb3NpdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlZCA9IHRydWUsXG4gICAgICAgICAgYXNzaWdubWVudHMgPSBbXSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC52ZXJpZnkoYXNzaWdubWVudHMsIHN0YXRlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmICh1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBhc3NpZ25tZW50c0Fzc2lnbmVkID0gYXNzaWduQXNzaWdubWVudHMoYXNzaWdubWVudHMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIGlmIChhc3NpZ25tZW50c0Fzc2lnbmVkKSB7XG4gICAgICAgIGNvbnN0IHsgUHJvb2ZTdGVwIH0gPSBzaGltLFxuICAgICAgICAgICAgICBwcm9vZlN0ZXAgPSBQcm9vZlN0ZXAuZnJvbVVucXVhbGlmaWVkU3RhdGVtZW50KHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQpO1xuXG4gICAgICAgIGxvY2FsQ29udGV4dC5hZGRQcm9vZlN0ZXAocHJvb2ZTdGVwKTtcblxuICAgICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdXBwb3NpdGlvblN0cmluZ30nIHN1cHBvc2l0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdWJwcm9vZlVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uID0gdGhpcywgLy8vXG4gICAgICAgICAgc3VicHJvb2ZTdHJpbmcgPSBzdWJwcm9vZi5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzdXBwb3NpdGlvblN0YXRlbWVudCA9IHN1cHBvc2l0aW9uLmdldFN0YXRlbWVudCgpLFxuICAgICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50U3RyaW5nID0gc3VwcG9zaXRpb25TdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdWJwcm9vZlN0cmluZ30nIHN1YnByb29mIHdpdGggdGhlIHN1cHBvc2l0aW9uJ3MgJyR7c3VwcG9zaXRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudCA9IHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudC5nZXROb2RlKCksXG4gICAgICAgICAgc3VicHJvb2ZBc3NlcnRpb24gPSBTdWJwcm9vZkFzc2VydGlvbi5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCB0aGlzLmZpbGVDb250ZXh0KTtcblxuICAgIGlmIChzdWJwcm9vZkFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgc3VicHJvb2ZVbmlmaWVkID0gc3VicHJvb2ZBc3NlcnRpb24udW5pZnlTdWJwcm9vZihzdWJwcm9vZiwgc3Vic3RpdHV0aW9ucywgdGhpcy5maWxlQ29udGV4dCwgbG9jYWxDb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoc3VicHJvb2ZVbmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N1YnByb29mU3RyaW5nfScgc3VicHJvb2Ygd2l0aCB0aGUgc3VwcG9zaXRpb24ncyAnJHtzdXBwb3NpdGlvblN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VicHJvb2ZVbmlmaWVkO1xuICB9XG5cbiAgdW5pZnlQcm9vZlN0ZXAocHJvb2ZTdGVwLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgcHJvb2ZTdGVwVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc3VicHJvb2YgPSBwcm9vZlN0ZXAuZ2V0U3VicHJvb2YoKSxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBwcm9vZlN0ZXAuZ2V0U3RhdGVtZW50KCk7XG5cbiAgICBzdWJzdGl0dXRpb25zLnNuYXBzaG90KCk7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAoc3VicHJvb2YgIT09IG51bGwpIHtcbiAgICAgIHByb29mU3RlcFVuaWZpZWQgPSB0aGlzLnVuaWZ5U3VicHJvb2Yoc3VicHJvb2YsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG4gICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgIT09IG51bGwpIHtcbiAgICAgIHByb29mU3RlcFVuaWZpZWQgPSB0aGlzLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcm9vZlN0ZXBVbmlmaWVkID9cbiAgICAgIHN1YnN0aXR1dGlvbnMuY29udGludWUoKSA6XG4gICAgICAgIHN1YnN0aXR1dGlvbnMucm9sbGJhY2sobG9jYWxDb250ZXh0KTtcblxuICAgIHJldHVybiBwcm9vZlN0ZXBVbmlmaWVkO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgc3RhdGVtZW50VW5pZmllZDtcblxuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IHN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzdXBwb3NpdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7c3VwcG9zaXRpb25TdHJpbmd9JyBzdXBwb3NpdGlvbi4uLmApO1xuXG4gICAgc3RhdGVtZW50VW5pZmllZCA9IHRoaXMudW5xdWFsaWZpZWRTdGF0ZW1lbnQudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBzdWJzdGl0dXRpb25zLCB0aGlzLmZpbGVDb250ZXh0LCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFVuaWZpZWQpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke3N1cHBvc2l0aW9uU3RyaW5nfScgc3VwcG9zaXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnRKU09OID0gdGhpcy51bnF1YWxpZmllZFN0YXRlbWVudC50b0pTT04oKSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudCA9IHVucXVhbGlmaWVkU3RhdGVtZW50SlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCB7IHVucXVhbGlmaWVkU3RhdGVtZW50IH0gPSBqc29uO1xuXG4gICAganNvbiA9IHVucXVhbGlmaWVkU3RhdGVtZW50OyAgLy8vXG5cbiAgICB1bnF1YWxpZmllZFN0YXRlbWVudCA9IFVucXVhbGlmaWVkU3RhdGVtZW50LmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIGNvbnN0IHN1cHBvc2l0aW9uID0gbmV3IFN1cHBvc2l0aW9uKGZpbGVDb250ZXh0LCB1bnF1YWxpZmllZFN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVN1cHBvc2l0aW9uTm9kZShzdXBwb3NpdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlID0gdW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkoc3VwcG9zaXRpb25Ob2RlKSxcbiAgICAgICAgICB1bnF1YWxpZmllZFN0YXRlbWVudCA9IFVucXVhbGlmaWVkU3RhdGVtZW50LmZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3VwcG9zaXRpb24gPSBuZXcgU3VwcG9zaXRpb24oZmlsZUNvbnRleHQsIHVucXVhbGlmaWVkU3RhdGVtZW50KTtcblxuICAgIHJldHVybiBzdXBwb3NpdGlvblxuICB9XG59XG4iXSwibmFtZXMiOlsiU3VwcG9zaXRpb24iLCJ1bnF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImZpbGVDb250ZXh0IiwidW5xdWFsaWZpZWRTdGF0ZW1lbnQiLCJnZXRGaWxlQ29udGV4dCIsImdldFVucXVhbGlmaWVkU3RhdGVtZW50IiwiZ2V0U3RyaW5nIiwiZ2V0U3RhdGVtZW50IiwidmVyaWZ5IiwibG9jYWxDb250ZXh0IiwidmVyaWZpZWQiLCJzdXBwb3NpdGlvblN0cmluZyIsInRyYWNlIiwic3RhdGVkIiwiYXNzaWdubWVudHMiLCJ1bnF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkIiwiYXNzaWdubWVudHNBc3NpZ25lZCIsImFzc2lnbkFzc2lnbm1lbnRzIiwiUHJvb2ZTdGVwIiwic2hpbSIsInByb29mU3RlcCIsImZyb21VbnF1YWxpZmllZFN0YXRlbWVudCIsImFkZFByb29mU3RlcCIsImRlYnVnIiwidW5pZnlTdWJwcm9vZiIsInN1YnByb29mIiwic3Vic3RpdHV0aW9ucyIsInN1YnByb29mVW5pZmllZCIsInN1cHBvc2l0aW9uIiwic3VicHJvb2ZTdHJpbmciLCJzdXBwb3NpdGlvblN0YXRlbWVudCIsInN1cHBvc2l0aW9uU3RhdGVtZW50U3RyaW5nIiwic3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZSIsImdldE5vZGUiLCJzdWJwcm9vZkFzc2VydGlvbiIsIlN1YnByb29mQXNzZXJ0aW9uIiwiZnJvbVN0YXRlbWVudE5vZGUiLCJ1bmlmeVByb29mU3RlcCIsInByb29mU3RlcFVuaWZpZWQiLCJnZXRTdWJwcm9vZiIsInNuYXBzaG90IiwidW5pZnlTdGF0ZW1lbnQiLCJjb250aW51ZSIsInJvbGxiYWNrIiwic3RhdGVtZW50VW5pZmllZCIsInN0YXRlbWVudFN0cmluZyIsInRvSlNPTiIsInVucXVhbGlmaWVkU3RhdGVtZW50SlNPTiIsImpzb24iLCJmcm9tSlNPTiIsIlVucXVhbGlmaWVkU3RhdGVtZW50IiwiZnJvbVN1cHBvc2l0aW9uTm9kZSIsInN1cHBvc2l0aW9uTm9kZSIsInVucXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImZyb21VbnF1YWxpZmllZFN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBV3FCQTs7OzJEQVRKOytEQUNhO2tFQUNHO3FCQUVQOzJCQUNROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxDLElBQU1DLGdDQUFnQ0MsSUFBQUEsZ0JBQVMsRUFBQztBQUVqQyxJQUFBLEFBQU1GLDRCQUFOO2FBQU1BLFlBQ1BHLFdBQVcsRUFBRUMsb0JBQW9CO2dDQUQxQko7UUFFakIsSUFBSSxDQUFDRyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0Msb0JBQW9CLEdBQUdBOztrQkFIWEo7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
package/lib/term.js CHANGED
@@ -16,6 +16,7 @@ var _termAsConstructor = /*#__PURE__*/ _interop_require_default(require("./verif
16
16
  var _type = require("./type");
17
17
  var _query = require("./utilities/query");
18
18
  var _node = require("./utilities/node");
19
+ var _name = require("./utilities/name");
19
20
  function _class_call_check(instance, Constructor) {
20
21
  if (!(instance instanceof Constructor)) {
21
22
  throw new TypeError("Cannot call a class as a function");
@@ -41,7 +42,7 @@ function _interop_require_default(obj) {
41
42
  };
42
43
  }
43
44
  var filter = _necessary.arrayUtilities.filter;
44
- var variableNodesQuery = (0, _query.nodesQuery)("//variable");
45
+ var termNodeQuery = (0, _query.nodeQuery)("/*/term[0]"), variableNodeQuery = (0, _query.nodeQuery)("/term/variable!"), variableNodesQuery = (0, _query.nodesQuery)("//variable");
45
46
  var Term = /*#__PURE__*/ function() {
46
47
  function Term(string, node, type) {
47
48
  _class_call_check(this, Term);
@@ -81,12 +82,24 @@ var Term = /*#__PURE__*/ function() {
81
82
  return matches;
82
83
  }
83
84
  },
85
+ {
86
+ key: "getVariable",
87
+ value: function getVariable(localContext) {
88
+ var variable = null;
89
+ var variableNode = variableNodeQuery(this.node);
90
+ if (variableNode !== null) {
91
+ var variableName = (0, _name.variableNameFromVariableNode)(variableNode);
92
+ variable = localContext.findVariableByVariableName(variableName);
93
+ }
94
+ return variable;
95
+ }
96
+ },
84
97
  {
85
98
  key: "getVariables",
86
99
  value: function getVariables(localContext) {
87
100
  var variables = [], variableNodes = variableNodesQuery(this.node);
88
101
  variableNodes.forEach(function(variableNode) {
89
- var variable = localContext.findVariableByVariableNode(variableNode), variablesIncludesVariable = variables.includes(variable);
102
+ var variableName = (0, _name.variableNameFromVariableNode)(variableNode), variable = localContext.findVariableByVariableName(variableName), variablesIncludesVariable = variables.includes(variable);
90
103
  if (!variablesIncludesVariable) {
91
104
  variables.push(variable);
92
105
  }
@@ -255,6 +268,36 @@ var Term = /*#__PURE__*/ function() {
255
268
  var node = termNode, string = localContext.nodeAsString(node), term = new Term(string, node, type);
256
269
  return term;
257
270
  }
271
+ },
272
+ {
273
+ key: "fromDefinedAssertionNode",
274
+ value: function fromDefinedAssertionNode(definedAssertionNode, localContext) {
275
+ var term = null;
276
+ var termNode = termNodeQuery(definedAssertionNode);
277
+ if (termNode !== null) {
278
+ var variableNode = variableNodeQuery(termNode);
279
+ if (variableNode !== null) {
280
+ var node = termNode, string = localContext.nodeAsString(node), type = null;
281
+ term = new Term(string, node, type);
282
+ }
283
+ }
284
+ return term;
285
+ }
286
+ },
287
+ {
288
+ key: "fromContainedAssertionNode",
289
+ value: function fromContainedAssertionNode(containedAssertionNode, localContext) {
290
+ var term = null;
291
+ var termNode = termNodeQuery(containedAssertionNode);
292
+ if (termNode !== null) {
293
+ var variableNode = variableNodeQuery(termNode);
294
+ if (variableNode !== null) {
295
+ var node = termNode, string = localContext.nodeAsString(node), type = null;
296
+ term = new Term(string, node, type);
297
+ }
298
+ }
299
+ return term;
300
+ }
258
301
  }
259
302
  ]);
260
303
  return Term;
@@ -270,4 +313,4 @@ function typeFromJSON(json, fileContext) {
270
313
  return type;
271
314
  }
272
315
 
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IHVuaWZ5TWl4aW5zIGZyb20gXCIuL21peGlucy90ZXJtL3VuaWZ5XCI7XG5pbXBvcnQgdmVyaWZ5TWl4aW5zIGZyb20gXCIuL21peGlucy90ZXJtL3ZlcmlmeVwiO1xuaW1wb3J0IHRlcm1Bc0NvbnN0cnVjdG9yVmVyaWZpZXIgZnJvbSBcIi4vdmVyaWZpZXIvdGVybUFzQ29uc3RydWN0b3JcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIlxuaW1wb3J0IHsgdGVybU5vZGVGcm9tVGVybVN0cmluZyB9IGZyb20gXCIuL3V0aWxpdGllcy9ub2RlXCI7XG5cbmNvbnN0IHsgZmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuY29uc3QgdmFyaWFibGVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi8vdmFyaWFibGVcIik7XG5cbmNsYXNzIFRlcm0ge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIG1hdGNoKHRlcm0pIHtcbiAgICBjb25zdCBub2RlID0gdGVybS5nZXROb2RlKCksXG4gICAgICAgICAgbWF0Y2hlcyA9IHRoaXMubm9kZS5tYXRjaChub2RlKTtcblxuICAgIHJldHVybiBtYXRjaGVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKGxvY2FsQ29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZXMgPSB2YXJpYWJsZU5vZGVzUXVlcnkodGhpcy5ub2RlKTtcblxuICAgIHZhcmlhYmxlTm9kZXMuZm9yRWFjaCgodmFyaWFibGVOb2RlKSA9PiB7XG4gICAgICBjb25zdCB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgICAgdmFyaWFibGVzSW5jbHVkZXNWYXJpYWJsZSA9IHZhcmlhYmxlcy5pbmNsdWRlcyh2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghdmFyaWFibGVzSW5jbHVkZXNWYXJpYWJsZSkge1xuICAgICAgICB2YXJpYWJsZXMucHVzaCh2YXJpYWJsZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgaXNHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBsb2NhbENvbnRleHQpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSB0aGlzLmdldFZhcmlhYmxlcyhsb2NhbENvbnRleHQpO1xuXG4gICAgZmlsdGVyKHZhcmlhYmxlcywgKHZhcmlhYmxlKSA9PiB7XG4gICAgICBjb25zdCBkZWZpbmVkVmFyaWFibGVzSW5jbHVkZXNWYXJpYWJsZSA9IGRlZmluZWRWYXJpYWJsZXMuaW5jbHVkZXModmFyaWFibGUpO1xuXG4gICAgICBpZiAoIWRlZmluZWRWYXJpYWJsZXNJbmNsdWRlc1ZhcmlhYmxlKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgdW5kZWZpbmVkVmFyaWFibGVzID0gdmFyaWFibGVzLCAvLy9cbiAgICAgICAgICB1bmRlZmluZWRWYXJpYWJsZXNMZW5ndGggPSB1bmRlZmluZWRWYXJpYWJsZXMubGVuZ3RoLFxuICAgICAgICAgIGdyb3VuZGVkID0gKHVuZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA8PSAxKTtcblxuICAgIHJldHVybiBncm91bmRlZDtcbiAgfVxuXG4gIG1hdGNoVGVybU5vZGUodGVybU5vZGUpIHtcbiAgICBjb25zdCB0ZXJtTm9kZU1hdGNoZXMgPSB0aGlzLm5vZGUubWF0Y2godGVybU5vZGUpO1xuXG4gICAgcmV0dXJuIHRlcm1Ob2RlTWF0Y2hlcztcbiAgfVxuXG4gIGlzSW5pdGlhbGx5R3JvdW5kZWQobG9jYWxDb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gdGhpcy5nZXRWYXJpYWJsZXMobG9jYWxDb250ZXh0KSxcbiAgICAgICAgICB2YXJpYWJsZXNMZW5ndGggPSB2YXJpYWJsZXMubGVuZ3RoLFxuICAgICAgICAgIGluaXRpYWxseUdyb3VuZGVkID0gKHZhcmlhYmxlc0xlbmd0aCA9PT0gMCk7XG5cbiAgICByZXR1cm4gaW5pdGlhbGx5R3JvdW5kZWQ7XG4gIH1cblxuICBpc0ltcGxpY2l0bHlHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBsb2NhbENvbnRleHQpIHtcbiAgICBjb25zdCBncm91bmRlZCA9IHRoaXMuaXNHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBsb2NhbENvbnRleHQpLFxuICAgICAgICAgIGltcGxpY2l0bHlHcm91bmRlZCA9IGdyb3VuZGVkOyAgLy8vXG5cbiAgICByZXR1cm4gaW1wbGljaXRseUdyb3VuZGVkO1xuICB9XG5cbiAgdmVyaWZ5KGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgdmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHRlcm0gPSB0aGlzLCAvLy9cbiAgICAgICAgICB0ZXJtU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgaWYgKCF2ZXJpZmllZCkge1xuICAgICAgY29uc3QgdW5pZmllZCA9IHVuaWZ5TWl4aW5zLnNvbWUoKHVuaWZ5TWl4aW4pID0+IHsgLy8vXG4gICAgICAgIGNvbnN0IHVuaWZpZWQgPSB1bmlmeU1peGluKHRlcm0sIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICAgIGlmICh1bmlmaWVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB2ZXJpZmllZCA9IHVuaWZpZWQ7IC8vL1xuICAgIH1cblxuICAgIGlmICghdmVyaWZpZWQpIHtcbiAgICAgIHZlcmlmaWVkID0gdmVyaWZ5TWl4aW5zLnNvbWUoKHZlcmlmeU1peGluKSA9PiB7XG4gICAgICAgIGNvbnN0IHZlcmlmaWVkID0gdmVyaWZ5TWl4aW4odGVybSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VHlwZShmaWxlQ29udGV4dCkge1xuICAgIGxldCB0eXBlVmVyaWZpZWQ7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBvYmplY3RUeXBlKSB7XG4gICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlTmFtZSA9IHRoaXMudHlwZS5nZXROYW1lKCk7XG5cbiAgICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVOYW1lfScgdHlwZS4uLmApO1xuXG4gICAgICBjb25zdCB0eXBlID0gZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbWlzc2luZy5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7IC8vL1xuXG4gICAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeUdpdmVuVHlwZSh0eXBlLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRHaXZlblR5cGU7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgIHRlcm1TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGdpdmVuIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuLi5gKTtcblxuICAgIGNvbnN0IHZlcmlmaWVkID0gdGhpcy52ZXJpZnkobG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgY29uc3QgdHlwZUVxdWFsVG9PclN1YlR5cGVPZkdpdmVuVHlwZVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvT3JTdWJUeXBlT2YodHlwZSk7XG5cbiAgICAgIGlmICh0eXBlRXF1YWxUb09yU3ViVHlwZU9mR2l2ZW5UeXBlVHlwZSkge1xuICAgICAgICB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgfSk7XG5cbiAgICB2ZXJpZmllZEdpdmVuVHlwZSA9IHZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEdpdmVuVHlwZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gZ2l2ZW4gdGhlICcke3R5cGVOYW1lfScgdHlwZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRHaXZlblR5cGU7XG4gIH1cblxuICB2ZXJpZnlBdFRvcExldmVsKGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkQXRUb3BMZXZlbDtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0aGlzLnN0cmluZzsgIC8vL1xuXG4gICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXQgdG9wIGxldmVsLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtTm9kZSA9IHRoaXMubm9kZSwgLy8vXG4gICAgICAgICAgdGVybVZlcmlmaWVkQXNDb25zdHJ1Y3RvciA9IHRlcm1Bc0NvbnN0cnVjdG9yVmVyaWZpZXIudmVyaWZ5VGVybSh0ZXJtTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgaWYgKHRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3IpIHtcbiAgICAgIGNvbnN0IHR5cGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VHlwZShmaWxlQ29udGV4dCk7XG5cbiAgICAgIHZlcmlmaWVkQXRUb3BMZXZlbCA9IHR5cGVWZXJpZmllZDsgIC8vL1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZEF0VG9wTGV2ZWwpIHtcbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gYXQgdG9wIGxldmVsLmAsIHRlcm1Ob2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRBdFRvcExldmVsO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHR5cGVKU09OID0gdGhpcy50eXBlLnRvSlNPTigpLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuc3RyaW5nLFxuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgdGVybVN0cmluZyA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIGxleGVyID0gZmlsZUNvbnRleHQuZ2V0TGV4ZXIoKSxcbiAgICAgICAgICBwYXJzZXIgPSBmaWxlQ29udGV4dC5nZXRQYXJzZXIoKSxcbiAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlRnJvbVRlcm1TdHJpbmcodGVybVN0cmluZywgbGV4ZXIsIHBhcnNlciksXG4gICAgICAgICAgbm9kZSA9IHRlcm1Ob2RlLCAgLy8vXG4gICAgICAgICAgdHlwZSA9IHR5cGVGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgdGVybSA9IG5ldyBUZXJtKHN0cmluZywgbm9kZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVGVybU5vZGUodGVybU5vZGUsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCB0ZXJtID0gbnVsbDtcblxuICAgIGlmICh0ZXJtTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZSA9IHRlcm1Ob2RlLCAgLy8vXG4gICAgICAgICAgICBzdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgdHlwZSA9IG51bGw7XG5cbiAgICAgIHRlcm0gPSBuZXcgVGVybShzdHJpbmcsIG5vZGUsIHR5cGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgc3RhdGljIGZyb21UZXJtTm9kZUFuZFR5cGUodGVybU5vZGUsIHR5cGUsIGxvY2FsQ29udGV4dCkge1xuICAgIGNvbnN0IG5vZGUgPSB0ZXJtTm9kZSwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgdGVybSA9IG5ldyBUZXJtKHN0cmluZywgbm9kZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKHNoaW0sIHtcbiAgVGVybVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRlcm07XG5cbmZ1bmN0aW9uIHR5cGVGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyB0eXBlIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgbmFtZSB9ID0gdHlwZSxcbiAgICAgICAgdHlwZU5hbWUgPSBuYW1lOyAgLy8vXG5cbiAgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgcmV0dXJuIHR5cGU7XG59XG4iXSwibmFtZXMiOlsiZmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJ2YXJpYWJsZU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiVGVybSIsInN0cmluZyIsIm5vZGUiLCJ0eXBlIiwiZ2V0U3RyaW5nIiwiZ2V0Tm9kZSIsImdldFR5cGUiLCJzZXRUeXBlIiwibWF0Y2giLCJ0ZXJtIiwibWF0Y2hlcyIsImdldFZhcmlhYmxlcyIsImxvY2FsQ29udGV4dCIsInZhcmlhYmxlcyIsInZhcmlhYmxlTm9kZXMiLCJmb3JFYWNoIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlc0luY2x1ZGVzVmFyaWFibGUiLCJpbmNsdWRlcyIsInB1c2giLCJpc0dyb3VuZGVkIiwiZGVmaW5lZFZhcmlhYmxlcyIsImRlZmluZWRWYXJpYWJsZXNJbmNsdWRlc1ZhcmlhYmxlIiwidW5kZWZpbmVkVmFyaWFibGVzIiwidW5kZWZpbmVkVmFyaWFibGVzTGVuZ3RoIiwibGVuZ3RoIiwiZ3JvdW5kZWQiLCJtYXRjaFRlcm1Ob2RlIiwidGVybU5vZGUiLCJ0ZXJtTm9kZU1hdGNoZXMiLCJpc0luaXRpYWxseUdyb3VuZGVkIiwidmFyaWFibGVzTGVuZ3RoIiwiaW5pdGlhbGx5R3JvdW5kZWQiLCJpc0ltcGxpY2l0bHlHcm91bmRlZCIsImltcGxpY2l0bHlHcm91bmRlZCIsInZlcmlmeSIsInZlcmlmeUFoZWFkIiwidmVyaWZpZWQiLCJ0ZXJtU3RyaW5nIiwidHJhY2UiLCJ1bmlmaWVkIiwidW5pZnlNaXhpbnMiLCJzb21lIiwidW5pZnlNaXhpbiIsInZlcmlmeU1peGlucyIsInZlcmlmeU1peGluIiwiZGVidWciLCJ2ZXJpZnlUeXBlIiwiZmlsZUNvbnRleHQiLCJ0eXBlVmVyaWZpZWQiLCJvYmplY3RUeXBlIiwidHlwZU5hbWUiLCJnZXROYW1lIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwidmVyaWZ5R2l2ZW5UeXBlIiwidmVyaWZpZWRHaXZlblR5cGUiLCJ2ZXJpZmllZEFoZWFkIiwidHlwZUVxdWFsVG9PclN1YlR5cGVPZkdpdmVuVHlwZVR5cGUiLCJpc0VxdWFsVG9PclN1YlR5cGVPZiIsInZlcmlmeUF0VG9wTGV2ZWwiLCJ2ZXJpZmllZEF0VG9wTGV2ZWwiLCJ0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yIiwidGVybUFzQ29uc3RydWN0b3JWZXJpZmllciIsInZlcmlmeVRlcm0iLCJ0b0pTT04iLCJ0eXBlSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImxleGVyIiwiZ2V0TGV4ZXIiLCJwYXJzZXIiLCJnZXRQYXJzZXIiLCJ0ZXJtTm9kZUZyb21UZXJtU3RyaW5nIiwidHlwZUZyb21KU09OIiwiZnJvbVRlcm1Ob2RlIiwibm9kZUFzU3RyaW5nIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSIsIk9iamVjdCIsImFzc2lnbiIsInNoaW0iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkErUUE7OztlQUFBOzs7eUJBN1ErQjsyREFFZDs0REFDTzs2REFDQzt3RUFDYTtvQkFFWDtxQkFDQTtvQkFDWTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV2QyxJQUFNLEFBQUVBLFNBQVdDLHlCQUFjLENBQXpCRDtBQUVSLElBQU1FLHFCQUFxQkMsSUFBQUEsaUJBQVUsRUFBQztBQUV0QyxJQUFBLEFBQU1DLHFCQUFOO2FBQU1BLEtBQ1FDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJO2dDQUQxQkg7UUFFRixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7O2tCQUpWSDs7WUFPSkksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxNQUFNO1lBQ3BCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxJQUFJO1lBQ2xCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxJQUFJO1lBQ2xCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFKLElBQUk7Z0JBQ1YsSUFBSSxDQUFDQSxJQUFJLEdBQUdBO1lBQ2Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTUMsSUFBSTtnQkFDUixJQUFNUCxPQUFPTyxLQUFLSixPQUFPLElBQ25CSyxVQUFVLElBQUksQ0FBQ1IsSUFBSSxDQUFDTSxLQUFLLENBQUNOO2dCQUVoQyxPQUFPUTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGFBQWFDLFlBQVk7Z0JBQ3ZCLElBQU1DLFlBQVksRUFBRSxFQUNkQyxnQkFBZ0JoQixtQkFBbUIsSUFBSSxD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
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXJtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IHVuaWZ5TWl4aW5zIGZyb20gXCIuL21peGlucy90ZXJtL3VuaWZ5XCI7XG5pbXBvcnQgdmVyaWZ5TWl4aW5zIGZyb20gXCIuL21peGlucy90ZXJtL3ZlcmlmeVwiO1xuaW1wb3J0IHRlcm1Bc0NvbnN0cnVjdG9yVmVyaWZpZXIgZnJvbSBcIi4vdmVyaWZpZXIvdGVybUFzQ29uc3RydWN0b3JcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiXG5pbXBvcnQgeyB0ZXJtTm9kZUZyb21UZXJtU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25vZGVcIjtcbmltcG9ydCB7IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCB7IGZpbHRlciB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvKi90ZXJtWzBdXCIpLFxuICAgICAgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS92YXJpYWJsZSFcIiksXG4gICAgICB2YXJpYWJsZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiLy92YXJpYWJsZVwiKTtcblxuY2xhc3MgVGVybSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbm9kZSwgdHlwZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBzZXRUeXBlKHR5cGUpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgbWF0Y2godGVybSkge1xuICAgIGNvbnN0IG5vZGUgPSB0ZXJtLmdldE5vZGUoKSxcbiAgICAgICAgICBtYXRjaGVzID0gdGhpcy5ub2RlLm1hdGNoKG5vZGUpO1xuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBnZXRWYXJpYWJsZShsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGhpcy5ub2RlKTtcblxuICAgIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICAgICAgdmFyaWFibGUgPSBsb2NhbENvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBnZXRWYXJpYWJsZXMobG9jYWxDb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gW10sXG4gICAgICAgICAgdmFyaWFibGVOb2RlcyA9IHZhcmlhYmxlTm9kZXNRdWVyeSh0aGlzLm5vZGUpO1xuXG4gICAgdmFyaWFibGVOb2Rlcy5mb3JFYWNoKCh2YXJpYWJsZU5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgIHZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgICB2YXJpYWJsZXNJbmNsdWRlc1ZhcmlhYmxlID0gdmFyaWFibGVzLmluY2x1ZGVzKHZhcmlhYmxlKTtcblxuICAgICAgaWYgKCF2YXJpYWJsZXNJbmNsdWRlc1ZhcmlhYmxlKSB7XG4gICAgICAgIHZhcmlhYmxlcy5wdXNoKHZhcmlhYmxlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBpc0dyb3VuZGVkKGRlZmluZWRWYXJpYWJsZXMsIGxvY2FsQ29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuZ2V0VmFyaWFibGVzKGxvY2FsQ29udGV4dCk7XG5cbiAgICBmaWx0ZXIodmFyaWFibGVzLCAodmFyaWFibGUpID0+IHtcbiAgICAgIGNvbnN0IGRlZmluZWRWYXJpYWJsZXNJbmNsdWRlc1ZhcmlhYmxlID0gZGVmaW5lZFZhcmlhYmxlcy5pbmNsdWRlcyh2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCB1bmRlZmluZWRWYXJpYWJsZXMgPSB2YXJpYWJsZXMsIC8vL1xuICAgICAgICAgIHVuZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IHVuZGVmaW5lZFZhcmlhYmxlcy5sZW5ndGgsXG4gICAgICAgICAgZ3JvdW5kZWQgPSAodW5kZWZpbmVkVmFyaWFibGVzTGVuZ3RoIDw9IDEpO1xuXG4gICAgcmV0dXJuIGdyb3VuZGVkO1xuICB9XG5cbiAgbWF0Y2hUZXJtTm9kZSh0ZXJtTm9kZSkge1xuICAgIGNvbnN0IHRlcm1Ob2RlTWF0Y2hlcyA9IHRoaXMubm9kZS5tYXRjaCh0ZXJtTm9kZSk7XG5cbiAgICByZXR1cm4gdGVybU5vZGVNYXRjaGVzO1xuICB9XG5cbiAgaXNJbml0aWFsbHlHcm91bmRlZChsb2NhbENvbnRleHQpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSB0aGlzLmdldFZhcmlhYmxlcyhsb2NhbENvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlc0xlbmd0aCA9IHZhcmlhYmxlcy5sZW5ndGgsXG4gICAgICAgICAgaW5pdGlhbGx5R3JvdW5kZWQgPSAodmFyaWFibGVzTGVuZ3RoID09PSAwKTtcblxuICAgIHJldHVybiBpbml0aWFsbHlHcm91bmRlZDtcbiAgfVxuXG4gIGlzSW1wbGljaXRseUdyb3VuZGVkKGRlZmluZWRWYXJpYWJsZXMsIGxvY2FsQ29udGV4dCkge1xuICAgIGNvbnN0IGdyb3VuZGVkID0gdGhpcy5pc0dyb3VuZGVkKGRlZmluZWRWYXJpYWJsZXMsIGxvY2FsQ29udGV4dCksXG4gICAgICAgICAgaW1wbGljaXRseUdyb3VuZGVkID0gZ3JvdW5kZWQ7ICAvLy9cblxuICAgIHJldHVybiBpbXBsaWNpdGx5R3JvdW5kZWQ7XG4gIH1cblxuICB2ZXJpZnkobG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCB2ZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVybSA9IHRoaXMsIC8vL1xuICAgICAgICAgIHRlcm1TdHJpbmcgPSB0aGlzLnN0cmluZzsgIC8vL1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLi4uYCk7XG5cbiAgICBpZiAoIXZlcmlmaWVkKSB7XG4gICAgICBjb25zdCB1bmlmaWVkID0gdW5pZnlNaXhpbnMuc29tZSgodW5pZnlNaXhpbikgPT4geyAvLy9cbiAgICAgICAgY29uc3QgdW5pZmllZCA9IHVuaWZ5TWl4aW4odGVybSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgaWYgKHVuaWZpZWQpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHZlcmlmaWVkID0gdW5pZmllZDsgLy8vXG4gICAgfVxuXG4gICAgaWYgKCF2ZXJpZmllZCkge1xuICAgICAgdmVyaWZpZWQgPSB2ZXJpZnlNaXhpbnMuc29tZSgodmVyaWZ5TWl4aW4pID0+IHtcbiAgICAgICAgY29uc3QgdmVyaWZpZWQgPSB2ZXJpZnlNaXhpbih0ZXJtLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlUeXBlKGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHR5cGVWZXJpZmllZDtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGVOYW1lID0gdGhpcy50eXBlLmdldE5hbWUoKTtcblxuICAgICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLi4uYCk7XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBmaWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVOYW1lfScgdHlwZSBpcyBtaXNzaW5nLmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTsgLy8vXG5cbiAgICAgICAgdHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVWZXJpZmllZCkge1xuICAgICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVOYW1lfScgdHlwZS5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5R2l2ZW5UeXBlKHR5cGUsIGxvY2FsQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZEdpdmVuVHlwZTtcblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgdGVybVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gZ2l2ZW4gdGhlICcke3R5cGVOYW1lfScgdHlwZS4uLmApO1xuXG4gICAgY29uc3QgdmVyaWZpZWQgPSB0aGlzLnZlcmlmeShsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgIGxldCB2ZXJpZmllZEFoZWFkO1xuXG4gICAgICBjb25zdCB0eXBlRXF1YWxUb09yU3ViVHlwZU9mR2l2ZW5UeXBlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG9PclN1YlR5cGVPZih0eXBlKTtcblxuICAgICAgaWYgKHR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZHaXZlblR5cGVUeXBlKSB7XG4gICAgICAgIHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICB9KTtcblxuICAgIHZlcmlmaWVkR2l2ZW5UeXBlID0gdmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkR2l2ZW5UeXBlKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBnaXZlbiB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZEdpdmVuVHlwZTtcbiAgfVxuXG4gIHZlcmlmeUF0VG9wTGV2ZWwoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRBdFRvcExldmVsO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRoaXMuc3RyaW5nOyAgLy8vXG5cbiAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhdCB0b3AgbGV2ZWwuLi5gKTtcblxuICAgIGNvbnN0IHRlcm1Ob2RlID0gdGhpcy5ub2RlLCAvLy9cbiAgICAgICAgICB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yID0gdGVybUFzQ29uc3RydWN0b3JWZXJpZmllci52ZXJpZnlUZXJtKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICBpZiAodGVybVZlcmlmaWVkQXNDb25zdHJ1Y3Rvcikge1xuICAgICAgY29uc3QgdHlwZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlUeXBlKGZpbGVDb250ZXh0KTtcblxuICAgICAgdmVyaWZpZWRBdFRvcExldmVsID0gdHlwZVZlcmlmaWVkOyAgLy8vXG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkQXRUb3BMZXZlbCkge1xuICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhdCB0b3AgbGV2ZWwuYCwgdGVybU5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZEF0VG9wTGV2ZWw7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0aGlzLnR5cGUudG9KU09OKCksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5zdHJpbmcsXG4gICAgICAgICAgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICB0ZXJtU3RyaW5nID0gc3RyaW5nLCAgLy8vXG4gICAgICAgICAgbGV4ZXIgPSBmaWxlQ29udGV4dC5nZXRMZXhlcigpLFxuICAgICAgICAgIHBhcnNlciA9IGZpbGVDb250ZXh0LmdldFBhcnNlcigpLFxuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVGcm9tVGVybVN0cmluZyh0ZXJtU3RyaW5nLCBsZXhlciwgcGFyc2VyKSxcbiAgICAgICAgICBub2RlID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICB0ZXJtID0gbmV3IFRlcm0oc3RyaW5nLCBub2RlLCB0eXBlKTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgc3RhdGljIGZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHRlcm0gPSBudWxsO1xuXG4gICAgaWYgKHRlcm1Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgICB0eXBlID0gbnVsbDtcblxuICAgICAgdGVybSA9IG5ldyBUZXJtKHN0cmluZywgbm9kZSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBzdGF0aWMgZnJvbVRlcm1Ob2RlQW5kVHlwZSh0ZXJtTm9kZSwgdHlwZSwgbG9jYWxDb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IHRlcm1Ob2RlLCAgLy8vXG4gICAgICAgICAgc3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICB0ZXJtID0gbmV3IFRlcm0oc3RyaW5nLCBub2RlLCB0eXBlKTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgc3RhdGljIGZyb21EZWZpbmVkQXNzZXJ0aW9uTm9kZShkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHRlcm0gPSBudWxsO1xuXG4gICAgY29uc3QgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGlmICh0ZXJtTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gICAgICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IG5vZGUgPSB0ZXJtTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBzdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgICB0eXBlID0gbnVsbDtcblxuICAgICAgICB0ZXJtID0gbmV3IFRlcm0oc3RyaW5nLCBub2RlLCB0eXBlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBsb2NhbENvbnRleHQpIHtcbiAgICBsZXQgdGVybSA9IG51bGw7XG5cbiAgICBjb25zdCB0ZXJtTm9kZSA9IHRlcm1Ob2RlUXVlcnkoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBpZiAodGVybU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KHRlcm1Ob2RlKTtcblxuICAgICAgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBub2RlID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgICAgICAgc3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICAgICAgdHlwZSA9IG51bGw7XG5cbiAgICAgICAgdGVybSA9IG5ldyBUZXJtKHN0cmluZywgbm9kZSwgdHlwZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihzaGltLCB7XG4gIFRlcm1cbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBUZXJtO1xuXG5mdW5jdGlvbiB0eXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgdHlwZSB9ID0ganNvbjtcblxuICBjb25zdCB7IG5hbWUgfSA9IHR5cGUsXG4gICAgICAgIHR5cGVOYW1lID0gbmFtZTsgIC8vL1xuXG4gIHR5cGUgPSBmaWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gIHJldHVybiB0eXBlO1xufVxuIl0sIm5hbWVzIjpbImZpbHRlciIsImFycmF5VXRpbGl0aWVzIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZhcmlhYmxlTm9kZVF1ZXJ5IiwidmFyaWFibGVOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsIlRlcm0iLCJzdHJpbmciLCJub2RlIiwidHlwZSIsImdldFN0cmluZyIsImdldE5vZGUiLCJnZXRUeXBlIiwic2V0VHlwZSIsIm1hdGNoIiwidGVybSIsIm1hdGNoZXMiLCJnZXRWYXJpYWJsZSIsImxvY2FsQ29udGV4dCIsInZhcmlhYmxlIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwiZ2V0VmFyaWFibGVzIiwidmFyaWFibGVzIiwidmFyaWFibGVOb2RlcyIsImZvckVhY2giLCJ2YXJpYWJsZXNJbmNsdWRlc1ZhcmlhYmxlIiwiaW5jbHVkZXMiLCJwdXNoIiwiaXNHcm91bmRlZCIsImRlZmluZWRWYXJpYWJsZXMiLCJkZWZpbmVkVmFyaWFibGVzSW5jbHVkZXNWYXJpYWJsZSIsInVuZGVmaW5lZFZhcmlhYmxlcyIsInVuZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCIsImxlbmd0aCIsImdyb3VuZGVkIiwibWF0Y2hUZXJtTm9kZSIsInRlcm1Ob2RlIiwidGVybU5vZGVNYXRjaGVzIiwiaXNJbml0aWFsbHlHcm91bmRlZCIsInZhcmlhYmxlc0xlbmd0aCIsImluaXRpYWxseUdyb3VuZGVkIiwiaXNJbXBsaWNpdGx5R3JvdW5kZWQiLCJpbXBsaWNpdGx5R3JvdW5kZWQiLCJ2ZXJpZnkiLCJ2ZXJpZnlBaGVhZCIsInZlcmlmaWVkIiwidGVybVN0cmluZyIsInRyYWNlIiwidW5pZmllZCIsInVuaWZ5TWl4aW5zIiwic29tZSIsInVuaWZ5TWl4aW4iLCJ2ZXJpZnlNaXhpbnMiLCJ2ZXJpZnlNaXhpbiIsImRlYnVnIiwidmVyaWZ5VHlwZSIsImZpbGVDb250ZXh0IiwidHlwZVZlcmlmaWVkIiwib2JqZWN0VHlwZSIsInR5cGVOYW1lIiwiZ2V0TmFtZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInZlcmlmeUdpdmVuVHlwZSIsInZlcmlmaWVkR2l2ZW5UeXBlIiwidmVyaWZpZWRBaGVhZCIsInR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZHaXZlblR5cGVUeXBlIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2YiLCJ2ZXJpZnlBdFRvcExldmVsIiwidmVyaWZpZWRBdFRvcExldmVsIiwidGVybVZlcmlmaWVkQXNDb25zdHJ1Y3RvciIsInRlcm1Bc0NvbnN0cnVjdG9yVmVyaWZpZXIiLCJ2ZXJpZnlUZXJtIiwidG9KU09OIiwidHlwZUpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJsZXhlciIsImdldExleGVyIiwicGFyc2VyIiwiZ2V0UGFyc2VyIiwidGVybU5vZGVGcm9tVGVybVN0cmluZyIsInR5cGVGcm9tSlNPTiIsImZyb21UZXJtTm9kZSIsIm5vZGVBc1N0cmluZyIsImZyb21UZXJtTm9kZUFuZFR5cGUiLCJmcm9tRGVmaW5lZEFzc2VydGlvbk5vZGUiLCJkZWZpbmVkQXNzZXJ0aW9uTm9kZSIsImZyb21Db250YWluZWRBc3NlcnRpb25Ob2RlIiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsIk9iamVjdCIsImFzc2lnbiIsInNoaW0iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF5VUE7OztlQUFBOzs7eUJBdlUrQjsyREFFZDs0REFDTzs2REFDQzt3RUFDYTtvQkFFWDtxQkFDVztvQkFDQztvQkFDTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU3QyxJQUFNLEFBQUVBLFNBQVdDLHlCQUFjLENBQXpCRDtBQUVSLElBQU1FLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxlQUMxQkMsb0JBQW9CRCxJQUFBQSxnQkFBUyxFQUFDLG9CQUM5QkUscUJBQXFCQyxJQUFBQSxpQkFBVSxFQUFDO0FBRXRDLElBQUEsQUFBTUMscUJBQU47YUFBTUEsS0FDUUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUk7Z0NBRDFCSDtRQUVGLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTs7a0JBSlZIOztZQU9KSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILE1BQU07WUFDcEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILElBQUk7WUFDbEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILElBQUk7WUFDbEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsUUFBUUosSUFBSTtnQkFDVixJQUFJLENBQUNBLElBQUksR0FBR0E7WUFDZDs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxJQUFJO2dCQUNSLElBQU1QLE9BQU9PLEtBQUtKLE9BQU8sSUFDbkJLLFVBQVUsSUFBSSxDQUFDUixJQUFJLENBQUNNLEtBQUssQ0FBQ047Z0JBRWhDLE9BQU9RO1lBQ1Q7OztZQUVBQyxLQUFB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
@@ -114,10 +114,10 @@ var IntrinsicLevelUnifier = /*#__PURE__*/ function(Unifier) {
114
114
  {
115
115
  key: "unify",
116
116
  value: function unify(nodeA, nodeB, substitutions, localContextA, localContextB) {
117
- var unified;
117
+ var unifiedAtIntrinsicLevel;
118
118
  var nonTerminalNodeA = nodeA, nonTerminalNodeB = nodeB, nonTerminalNodeUnified = this.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB);
119
- unified = nonTerminalNodeUnified; ///
120
- return unified;
119
+ unifiedAtIntrinsicLevel = nonTerminalNodeUnified; ///
120
+ return unifiedAtIntrinsicLevel;
121
121
  }
122
122
  }
123
123
  ]);
@@ -141,4 +141,4 @@ _define_property(IntrinsicLevelUnifier, "maps", [
141
141
  var intrinsicLevelUnifier = new IntrinsicLevelUnifier();
142
142
  var _default = intrinsicLevelUnifier;
143
143
 
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL2ludHJpbnNpY0xldmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi4vc2hpbVwiO1xuaW1wb3J0IFVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXJcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0hXCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpO1xuXG5jbGFzcyBJbnRyaW5zaWNMZXZlbFVuaWZpZXIgZXh0ZW5kcyBVbmlmaWVyIHtcbiAgdW5pZnkobm9kZUEsIG5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gICAgbGV0IHVuaWZpZWQ7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gbm9kZUEsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBub2RlQiwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVW5pZmllZCA9IHRoaXMudW5pZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICB1bmlmaWVkID0gbm9uVGVybWluYWxOb2RlVW5pZmllZDsgLy8vXG5cbiAgICByZXR1cm4gdW5pZmllZDtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeUE6IHRlcm1WYXJpYWJsZU5vZGVRdWVyeSxcbiAgICAgIG5vZGVRdWVyeUI6IHRlcm1Ob2RlUXVlcnksXG4gICAgICB1bmlmeTogKHRlcm1WYXJpYWJsZU5vZGVBLCB0ZXJtTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpID0+IHtcbiAgICAgICAgbGV0IHRlcm1VbmlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdGVybVZhcmlhYmxlTm9kZUEsIC8vL1xuICAgICAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgIHZhcmlhYmxlID0gbG9jYWxDb250ZXh0QS5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHsgVGVybSB9ID0gc2hpbSxcbiAgICAgICAgICAgICAgICBsb2NhbENvbnRleHQgPSBsb2NhbENvbnRleHRCLCAvLy9cbiAgICAgICAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlQiwgLy8vXG4gICAgICAgICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgICAgIHRlcm1VbmlmaWVkID0gdmFyaWFibGUudW5pZnlUZXJtKHRlcm0sIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGVybVVuaWZpZWQ7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jb25zdCBpbnRyaW5zaWNMZXZlbFVuaWZpZXIgPSBuZXcgSW50cmluc2ljTGV2ZWxVbmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGludHJpbnNpY0xldmVsVW5pZmllcjtcbiJdLCJuYW1lcyI6WyJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidGVybVZhcmlhYmxlTm9kZVF1ZXJ5IiwiSW50cmluc2ljTGV2ZWxVbmlmaWVyIiwidW5pZnkiLCJub2RlQSIsIm5vZGVCIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dEEiLCJsb2NhbENvbnRleHRCIiwidW5pZmllZCIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibm9uVGVybWluYWxOb2RlVW5pZmllZCIsInVuaWZ5Tm9uVGVybWluYWxOb2RlIiwiVW5pZmllciIsIm1hcHMiLCJub2RlUXVlcnlBIiwibm9kZVF1ZXJ5QiIsInRlcm1WYXJpYWJsZU5vZGVBIiwidGVybU5vZGVCIiwidGVybVVuaWZpZWQiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsIlRlcm0iLCJzaGltIiwibG9jYWxDb250ZXh0IiwidGVybU5vZGUiLCJ0ZXJtIiwiZnJvbVRlcm1Ob2RlIiwidW5pZnlUZXJtIiwiaW50cmluc2ljTGV2ZWxVbmlmaWVyIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFvREE7OztlQUFBOzs7MkRBbERpQjs4REFDRztxQkFFTTtvQkFDbUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdDLElBQU1BLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyxXQUMxQkMsd0JBQXdCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXhDLElBQUEsQUFBTUUsc0NBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO2lDQUFBQTs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhO2dCQUM3RCxJQUFJQztnQkFFSixJQUFNQyxtQkFBbUJOLE9BQ25CTyxtQkFBbUJOLE9BQ25CTyx5QkFBeUIsSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQ0gsa0JBQWtCQyxrQkFBa0JMLGVBQWVDLGVBQWVDO2dCQUUzSEMsVUFBVUcsd0JBQXdCLEdBQUc7Z0JBRXJDLE9BQU9IO1lBQ1Q7OztXQVhJUDtFQUE4QlksZ0JBQU87QUFhekMsaUJBYklaLHVCQWFHYSxRQUFPO0lBQ1o7UUFDRUMsWUFBWWY7UUFDWmdCLFlBQVlsQjtRQUNaSSxPQUFPLFNBQUNlLG1CQUFtQkMsV0FBV2IsZUFBZUMsZUFBZUM7WUFDbEUsSUFBSVksY0FBYztZQUVsQixJQUFNQyxlQUFlSCxtQkFDZkksZUFBZUMsSUFBQUEsa0NBQTRCLEVBQUNGLGVBQzVDRyxXQUFXakIsY0FBY2tCLDBCQUEwQixDQUFDSDtZQUUxRCxJQUFJRSxhQUFhLE1BQU07Z0JBQ3JCLElBQU0sQUFBRUUsT0FBU0MsYUFBSSxDQUFiRCxNQUNGRSxlQUFlcEIsZUFDZnFCLFdBQVdWLFdBQ1hXLE9BQU9KLEtBQUtLLFlBQVksQ0FBQ0YsVUFBVXJCO2dCQUV6Q1ksY0FBY0ksU0FBU1EsU0FBUyxDQUFDRixNQUFNeEIsZUFBZXNCO1lBQ3hEO1lBRUEsT0FBT1I7UUFDVDtJQUNGO0NBQ0Q7QUFHSCxJQUFNYSx3QkFBd0IsSUFBSS9CO0lBRWxDLFdBQWUrQiJ9
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL2ludHJpbnNpY0xldmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgc2hpbSBmcm9tIFwiLi4vc2hpbVwiO1xuaW1wb3J0IFVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXJcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0hXCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpO1xuXG5jbGFzcyBJbnRyaW5zaWNMZXZlbFVuaWZpZXIgZXh0ZW5kcyBVbmlmaWVyIHtcbiAgdW5pZnkobm9kZUEsIG5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gICAgbGV0IHVuaWZpZWRBdEludHJpbnNpY0xldmVsO1xuXG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQSA9IG5vZGVBLCAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gbm9kZUIsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSB0aGlzLnVuaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgdW5pZmllZEF0SW50cmluc2ljTGV2ZWwgPSBub25UZXJtaW5hbE5vZGVVbmlmaWVkOyAvLy9cblxuICAgIHJldHVybiB1bmlmaWVkQXRJbnRyaW5zaWNMZXZlbDtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeUE6IHRlcm1WYXJpYWJsZU5vZGVRdWVyeSxcbiAgICAgIG5vZGVRdWVyeUI6IHRlcm1Ob2RlUXVlcnksXG4gICAgICB1bmlmeTogKHRlcm1WYXJpYWJsZU5vZGVBLCB0ZXJtTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpID0+IHtcbiAgICAgICAgbGV0IHRlcm1VbmlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdGVybVZhcmlhYmxlTm9kZUEsIC8vL1xuICAgICAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgIHZhcmlhYmxlID0gbG9jYWxDb250ZXh0QS5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHsgVGVybSB9ID0gc2hpbSxcbiAgICAgICAgICAgICAgICBsb2NhbENvbnRleHQgPSBsb2NhbENvbnRleHRCLCAvLy9cbiAgICAgICAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlQiwgLy8vXG4gICAgICAgICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgICAgIHRlcm1VbmlmaWVkID0gdmFyaWFibGUudW5pZnlUZXJtKHRlcm0sIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGVybVVuaWZpZWQ7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jb25zdCBpbnRyaW5zaWNMZXZlbFVuaWZpZXIgPSBuZXcgSW50cmluc2ljTGV2ZWxVbmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IGludHJpbnNpY0xldmVsVW5pZmllcjtcbiJdLCJuYW1lcyI6WyJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidGVybVZhcmlhYmxlTm9kZVF1ZXJ5IiwiSW50cmluc2ljTGV2ZWxVbmlmaWVyIiwidW5pZnkiLCJub2RlQSIsIm5vZGVCIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dEEiLCJsb2NhbENvbnRleHRCIiwidW5pZmllZEF0SW50cmluc2ljTGV2ZWwiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsIm5vblRlcm1pbmFsTm9kZVVuaWZpZWQiLCJ1bmlmeU5vblRlcm1pbmFsTm9kZSIsIlVuaWZpZXIiLCJtYXBzIiwibm9kZVF1ZXJ5QSIsIm5vZGVRdWVyeUIiLCJ0ZXJtVmFyaWFibGVOb2RlQSIsInRlcm1Ob2RlQiIsInRlcm1VbmlmaWVkIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJUZXJtIiwic2hpbSIsImxvY2FsQ29udGV4dCIsInRlcm1Ob2RlIiwidGVybSIsImZyb21UZXJtTm9kZSIsInVuaWZ5VGVybSIsImludHJpbnNpY0xldmVsVW5pZmllciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBb0RBOzs7ZUFBQTs7OzJEQWxEaUI7OERBQ0c7cUJBRU07b0JBQ21COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU3QyxJQUFNQSxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsV0FDMUJDLHdCQUF3QkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV4QyxJQUFBLEFBQU1FLHNDQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtpQ0FBQUE7O2tCQUFBQTs7WUFDSkMsS0FBQUE7bUJBQUFBLFNBQUFBLE1BQU1DLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtnQkFDN0QsSUFBSUM7Z0JBRUosSUFBTUMsbUJBQW1CTixPQUNuQk8sbUJBQW1CTixPQUNuQk8seUJBQXlCLElBQUksQ0FBQ0Msb0JBQW9CLENBQUNILGtCQUFrQkMsa0JBQWtCTCxlQUFlQyxlQUFlQztnQkFFM0hDLDBCQUEwQkcsd0JBQXdCLEdBQUc7Z0JBRXJELE9BQU9IO1lBQ1Q7OztXQVhJUDtFQUE4QlksZ0JBQU87QUFhekMsaUJBYklaLHVCQWFHYSxRQUFPO0lBQ1o7UUFDRUMsWUFBWWY7UUFDWmdCLFlBQVlsQjtRQUNaSSxPQUFPLFNBQUNlLG1CQUFtQkMsV0FBV2IsZUFBZUMsZUFBZUM7WUFDbEUsSUFBSVksY0FBYztZQUVsQixJQUFNQyxlQUFlSCxtQkFDZkksZUFBZUMsSUFBQUEsa0NBQTRCLEVBQUNGLGVBQzVDRyxXQUFXakIsY0FBY2tCLDBCQUEwQixDQUFDSDtZQUUxRCxJQUFJRSxhQUFhLE1BQU07Z0JBQ3JCLElBQU0sQUFBRUUsT0FBU0MsYUFBSSxDQUFiRCxNQUNGRSxlQUFlcEIsZUFDZnFCLFdBQVdWLFdBQ1hXLE9BQU9KLEtBQUtLLFlBQVksQ0FBQ0YsVUFBVXJCO2dCQUV6Q1ksY0FBY0ksU0FBU1EsU0FBUyxDQUFDRixNQUFNeEIsZUFBZXNCO1lBQ3hEO1lBRUEsT0FBT1I7UUFDVDtJQUNGO0NBQ0Q7QUFHSCxJQUFNYSx3QkFBd0IsSUFBSS9CO0lBRWxDLFdBQWUrQiJ9
@@ -115,10 +115,10 @@ var MetaLevelUnifier = /*#__PURE__*/ function(Unifier) {
115
115
  {
116
116
  key: "unify",
117
117
  value: function unify(nodeA, nodeB, substitutions, localContextA, localContextB) {
118
- var unified;
118
+ var unifiedAtMetaLevel;
119
119
  var nonTerminalNodeA = nodeA, nonTerminalNodeB = nodeB, nonTerminalNodeUnified = this.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB);
120
- unified = nonTerminalNodeUnified; ///
121
- return unified;
120
+ unifiedAtMetaLevel = nonTerminalNodeUnified; ///
121
+ return unifiedAtMetaLevel;
122
122
  }
123
123
  }
124
124
  ]);
@@ -134,18 +134,13 @@ _define_property(MetaLevelUnifier, "maps", [
134
134
  if (matches) {
135
135
  statementUnified = true;
136
136
  } else {
137
- var Statement = _shim.default.Statement, statementB = Statement.fromStatementNode(statementNodeB, localContextB), statementMetavariableNodeA = statementMetavariableNodeQuery(statementNodeA);
138
- if (statementMetavariableNodeA !== null) {
139
- var statement;
140
- var statementA = Statement.fromStatementNode(statementNodeA, localContextA);
141
- statement = statementA; ///
142
- var substitution = statement.getSubstitution();
143
- statement = statementB; ///
144
- var localContext = localContextB, metavariableNode = statementMetavariableNodeA, metavariableName = (0, _name.metavariableNameFromMetavariableNode)(metavariableNode), metavariable = localContextA.findMetavariableByMetavariableName(metavariableName);
137
+ var statementNode = statementNodeA, statementMetavariableNode = statementMetavariableNodeQuery(statementNode);
138
+ if (statementMetavariableNode !== null) {
139
+ var Statement = _shim.default.Statement, metavariableNode = statementMetavariableNode, metavariableName = (0, _name.metavariableNameFromMetavariableNode)(metavariableNode), metavariable = localContextA.findMetavariableByMetavariableName(metavariableName), substitution = substitutionA, localContext = localContextB, statementNode1 = statementNodeB, statement = Statement.fromStatementNode(statementNode1, localContext);
145
140
  if (substitution === null) {
146
141
  statementUnified = metavariable.unifyStatement(statement, substitutions, localContext);
147
142
  } else {
148
- var statementUnifiedGivenSubstitution = metavariableNode.unifyStatementGivenSubstitution(statement, substitution, substitutions, localContext);
143
+ var statementUnifiedGivenSubstitution = metavariable.unifyStatementGivenSubstitution(statement, substitution, substitutions, localContext);
149
144
  statementUnified = statementUnifiedGivenSubstitution; ///
150
145
  }
151
146
  } else {
@@ -181,8 +176,9 @@ _define_property(MetaLevelUnifier, "maps", [
181
176
  var metaLevelUnifier = new MetaLevelUnifier();
182
177
  var _default = metaLevelUnifier;
183
178
  function unifyStatementWithStatement(statementNodeA, statementNodeB, substitutions, localContextA, localContextB) {
179
+ substitutionA = null;
184
180
  var nonTerminalNodeA = statementNodeA, nonTerminalNodeB = statementNodeB, nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), childNodesA = nonTerminalNodeAChildNodes, childNodesB = nonTerminalNodeBChildNodes, childNodesVerified = metaLevelUnifier.unifyChildNodes(childNodesA, childNodesB, substitutions, localContextA, localContextB), statementUnified = childNodesVerified; ///
185
181
  return statementUnified;
186
182
  }
187
183
 
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL21ldGFMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyXCI7XG5pbXBvcnQgdW5pZnlNZXRhdmFyaWFibGVXaXRoRnJhbWUgZnJvbSBcIi4uL3VuaWZ5L21ldGF2YXJpYWJsZVdpdGhGcmFtZVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlLCBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtIVwiKSxcbiAgICAgIGZyYW1lTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lIVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQhXCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgZnJhbWVNZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZnJhbWUvbWV0YXZhcmlhYmxlIVwiKSxcbiAgICAgIHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvbWV0YXZhcmlhYmxlIVwiKTtcblxuY2xhc3MgTWV0YUxldmVsVW5pZmllciBleHRlbmRzIFVuaWZpZXIge1xuICB1bmlmeShub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgICBsZXQgdW5pZmllZDtcblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSBub2RlQSwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IG5vZGVCLCAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVVbmlmaWVkID0gdGhpcy51bmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgIHVuaWZpZWQgPSBub25UZXJtaW5hbE5vZGVVbmlmaWVkOyAvLy9cblxuICAgIHJldHVybiB1bmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5QTogc3RhdGVtZW50Tm9kZVF1ZXJ5LFxuICAgICAgbm9kZVF1ZXJ5Qjogc3RhdGVtZW50Tm9kZVF1ZXJ5LFxuICAgICAgdW5pZnk6IChzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpID0+IHtcbiAgICAgICAgbGV0IHN0YXRlbWVudFVuaWZpZWQ7XG5cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHN0YXRlbWVudE5vZGVBLm1hdGNoKHN0YXRlbWVudE5vZGVCKTtcblxuICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHsgU3RhdGVtZW50IH0gPSBzaGltLFxuICAgICAgICAgICAgICAgIHN0YXRlbWVudEIgPSBTdGF0ZW1lbnQuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZUIsIGxvY2FsQ29udGV4dEIpLFxuICAgICAgICAgICAgICAgIHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVBID0gc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGVBKTtcblxuICAgICAgICAgIGlmIChzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlQSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IHN0YXRlbWVudDtcblxuICAgICAgICAgICAgY29uc3Qgc3RhdGVtZW50QSA9IFN0YXRlbWVudC5mcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlQSwgbG9jYWxDb250ZXh0QSk7XG5cbiAgICAgICAgICAgIHN0YXRlbWVudCA9IHN0YXRlbWVudEE7IC8vL1xuXG4gICAgICAgICAgICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdGF0ZW1lbnQuZ2V0U3Vic3RpdHV0aW9uKCk7XG5cbiAgICAgICAgICAgIHN0YXRlbWVudCA9IHN0YXRlbWVudEI7IC8vL1xuXG4gICAgICAgICAgICBjb25zdCBsb2NhbENvbnRleHQgPSBsb2NhbENvbnRleHRCLCAvLy9cbiAgICAgICAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlQSwgIC8vL1xuICAgICAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IGxvY2FsQ29udGV4dEEuZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gbWV0YXZhcmlhYmxlLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IHN0YXRlbWVudFVuaWZpZWRHaXZlblN1YnN0aXR1dGlvbiA9IG1ldGF2YXJpYWJsZU5vZGUudW5pZnlTdGF0ZW1lbnRHaXZlblN1YnN0aXR1dGlvbihzdGF0ZW1lbnQsIHN1YnN0aXR1dGlvbiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gc3RhdGVtZW50VW5pZmllZEdpdmVuU3Vic3RpdHV0aW9uOyAvLy9cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhdGVtZW50VW5pZmllZCA9IHVuaWZ5U3RhdGVtZW50V2l0aFN0YXRlbWVudChzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5QTogZnJhbWVNZXRhdmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBub2RlUXVlcnlCOiBmcmFtZU5vZGVRdWVyeSxcbiAgICAgIHVuaWZ5OiAoZnJhbWVNZXRhdmFyaWFibGVOb2RlQSwgZnJhbWVOb2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0QikgPT4ge1xuICAgICAgICBkZWJ1Z2dlclxuXG4gICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVBID0gZnJhbWVNZXRhdmFyaWFibGVOb2RlQSwgLy8vXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoRnJhbWUgPSB1bmlmeU1ldGF2YXJpYWJsZVdpdGhGcmFtZShtZXRhdmFyaWFibGVOb2RlQSwgZnJhbWVOb2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICAgICAgcmV0dXJuIG1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoRnJhbWU7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnlBOiB0ZXJtVmFyaWFibGVOb2RlUXVlcnksXG4gICAgICBub2RlUXVlcnlCOiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgdW5pZnk6ICh0ZXJtVmFyaWFibGVOb2RlQSwgdGVybU5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSA9PiB7XG4gICAgICAgIGxldCB0ZXJtVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHRlcm1WYXJpYWJsZU5vZGVBLCAvLy9cbiAgICAgICAgICAgICAgdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgICAgICB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dEEuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgICAgICBpZiAodmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgICAgICBjb25zdCB7IFRlcm0gfSA9IHNoaW0sXG4gICAgICAgICAgICAgICAgbG9jYWxDb250ZXh0ID0gbG9jYWxDb250ZXh0QiwgLy8vXG4gICAgICAgICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZUIsIC8vL1xuICAgICAgICAgICAgICAgIHRlcm0gPSBUZXJtLmZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICAgICAgICB0ZXJtVW5pZmllZCA9IHZhcmlhYmxlLnVuaWZ5VGVybSh0ZXJtLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRlcm1VbmlmaWVkO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgbWV0YUxldmVsVW5pZmllciA9IG5ldyBNZXRhTGV2ZWxVbmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IG1ldGFMZXZlbFVuaWZpZXI7XG5cbmZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aFN0YXRlbWVudChzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgY29uc3Qgbm9uVGVybWluYWxOb2RlQSA9IHN0YXRlbWVudE5vZGVBLCAvLy9cbiAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IHN0YXRlbWVudE5vZGVCLCAvLy9cbiAgICAgICAgbm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGVBLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgbm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGVCLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgY2hpbGROb2Rlc0EgPSBub25UZXJtaW5hbE5vZGVBQ2hpbGROb2RlcywgLy8vXG4gICAgICAgIGNoaWxkTm9kZXNCID0gbm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICBjaGlsZE5vZGVzVmVyaWZpZWQgPSBtZXRhTGV2ZWxVbmlmaWVyLnVuaWZ5Q2hpbGROb2RlcyhjaGlsZE5vZGVzQSwgY2hpbGROb2Rlc0IsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpLFxuICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gY2hpbGROb2Rlc1ZlcmlmaWVkOyAvLy9cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiZnJhbWVOb2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJ0ZXJtVmFyaWFibGVOb2RlUXVlcnkiLCJmcmFtZU1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsInN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsIk1ldGFMZXZlbFVuaWZpZXIiLCJ1bmlmeSIsIm5vZGVBIiwibm9kZUIiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJ1bmlmaWVkIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub25UZXJtaW5hbE5vZGVVbmlmaWVkIiwidW5pZnlOb25UZXJtaW5hbE5vZGUiLCJVbmlmaWVyIiwibWFwcyIsIm5vZGVRdWVyeUEiLCJub2RlUXVlcnlCIiwic3RhdGVtZW50Tm9kZUEiLCJzdGF0ZW1lbnROb2RlQiIsInN0YXRlbWVudFVuaWZpZWQiLCJtYXRjaGVzIiwibWF0Y2giLCJTdGF0ZW1lbnQiLCJzaGltIiwic3RhdGVtZW50QiIsImZyb21TdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZUEiLCJzdGF0ZW1lbnQiLCJzdGF0ZW1lbnRBIiwic3Vic3RpdHV0aW9uIiwiZ2V0U3Vic3RpdHV0aW9uIiwibG9jYWxDb250ZXh0IiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGUiLCJmaW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lIiwidW5pZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnRVbmlmaWVkR2l2ZW5TdWJzdGl0dXRpb24iLCJ1bmlmeVN0YXRlbWVudEdpdmVuU3Vic3RpdHV0aW9uIiwidW5pZnlTdGF0ZW1lbnRXaXRoU3RhdGVtZW50IiwiZnJhbWVNZXRhdmFyaWFibGVOb2RlQSIsImZyYW1lTm9kZUIiLCJtZXRhdmFyaWFibGVOb2RlQSIsIm1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoRnJhbWUiLCJ1bmlmeU1ldGF2YXJpYWJsZVdpdGhGcmFtZSIsInRlcm1WYXJpYWJsZU5vZGVBIiwidGVybU5vZGVCIiwidGVybVVuaWZpZWQiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsIlRlcm0iLCJ0ZXJtTm9kZSIsInRlcm0iLCJmcm9tVGVybU5vZGUiLCJ1bmlmeVRlcm0iLCJtZXRhTGV2ZWxVbmlmaWVyIiwibm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwibm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMiLCJjaGlsZE5vZGVzQSIsImNoaWxkTm9kZXNCIiwiY2hpbGROb2Rlc1ZlcmlmaWVkIiwidW5pZnlDaGlsZE5vZGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFtSEE7OztlQUFBOzs7MkRBakhpQjs4REFDRzs0RUFDbUI7cUJBRWI7b0JBQ3lEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuRixJQUFNQSxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsV0FDMUJDLGlCQUFpQkQsSUFBQUEsZ0JBQVMsRUFBQyxZQUMzQkUscUJBQXFCRixJQUFBQSxnQkFBUyxFQUFDLGdCQUMvQkcsd0JBQXdCSCxJQUFBQSxnQkFBUyxFQUFDLG9CQUNsQ0ksNkJBQTZCSixJQUFBQSxnQkFBUyxFQUFDLHlCQUN2Q0ssaUNBQWlDTCxJQUFBQSxnQkFBUyxFQUFDO0FBRWpELElBQUEsQUFBTU0saUNBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO2lDQUFBQTs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhO2dCQUM3RCxJQUFJQztnQkFFSixJQUFNQyxtQkFBbUJOLE9BQ25CTyxtQkFBbUJOLE9BQ25CTyx5QkFBeUIsSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQ0gsa0JBQWtCQyxrQkFBa0JMLGVBQWVDLGVBQWVDO2dCQUUzSEMsVUFBVUcsd0JBQXdCLEdBQUc7Z0JBRXJDLE9BQU9IO1lBQ1Q7OztXQVhJUDtFQUF5QlksZ0JBQU87QUFhcEMsaUJBYklaLGtCQWFHYSxRQUFPO0lBQ1o7UUFDRUMsWUFBWWxCO1FBQ1ptQixZQUFZbkI7UUFDWkssT0FBTyxTQUFDZSxnQkFBZ0JDLGdCQUFnQmIsZUFBZUMsZUFBZUM7WUFDcEUsSUFBSVk7WUFFSixJQUFNQyxVQUFVSCxlQUFlSSxLQUFLLENBQUNIO1lBRXJDLElBQUlFLFNBQVM7Z0JBQ1hELG1CQUFtQjtZQUNyQixPQUFPO2dCQUNMLElBQU0sQUFBRUcsWUFBY0MsYUFBSSxDQUFsQkQsV0FDRkUsYUFBYUYsVUFBVUcsaUJBQWlCLENBQUNQLGdCQUFnQlgsZ0JBQ3pEbUIsNkJBQTZCMUIsK0JBQStCaUI7Z0JBRWxFLElBQUlTLCtCQUErQixNQUFNO29CQUN2QyxJQUFJQztvQkFFSixJQUFNQyxhQUFhTixVQUFVRyxpQkFBaUIsQ0FBQ1IsZ0JBQWdCWDtvQkFFL0RxQixZQUFZQyxZQUFZLEdBQUc7b0JBRTNCLElBQU1DLGVBQWVGLFVBQVVHLGVBQWU7b0JBRTlDSCxZQUFZSCxZQUFZLEdBQUc7b0JBRTNCLElBQU1PLGVBQWV4QixlQUNmeUIsbUJBQW1CTiw0QkFDbkJPLG1CQUFtQkMsSUFBQUEsMENBQW9DLEVBQUNGLG1CQUN4REcsZUFBZTdCLGNBQWM4QixrQ0FBa0MsQ0FBQ0g7b0JBRXRFLElBQUlKLGlCQUFpQixNQUFNO3dCQUN6QlYsbUJBQW1CZ0IsYUFBYUUsY0FBYyxDQUFDVixXQUFXdEIsZUFBZTBCO29CQUMzRSxPQUFPO3dCQUNMLElBQU1PLG9DQUFvQ04saUJBQWlCTywrQkFBK0IsQ0FBQ1osV0FBV0UsY0FBY3hCLGVBQWUwQjt3QkFFbklaLG1CQUFtQm1CLG1DQUFtQyxHQUFHO29CQUMzRDtnQkFDRixPQUFPO29CQUNMbkIsbUJBQW1CcUIsNEJBQTRCdkIsZ0JBQWdCQyxnQkFBZ0JiLGVBQWVDLGVBQWVDO2dCQUMvRztZQUNGO1lBRUEsT0FBT1k7UUFDVDtJQUNGO0lBQ0E7UUFDRUosWUFBWWhCO1FBQ1ppQixZQUFZcEI7UUFDWk0sT0FBTyxTQUFDdUMsd0JBQXdCQyxZQUFZckMsZUFBZUMsZUFBZUM7WUFDeEUsUUFBUTtZQUVSLElBQU1vQyxvQkFBb0JGLHdCQUNwQkcsK0JBQStCQyxJQUFBQSw4QkFBMEIsRUFBQ0YsbUJBQW1CRCxZQUFZckMsZUFBZUMsZUFBZUM7WUFFN0gsT0FBT3FDO1FBQ1Q7SUFDRjtJQUNBO1FBQ0U3QixZQUFZakI7UUFDWmtCLFlBQVl0QjtRQUNaUSxPQUFPLFNBQUM0QyxtQkFBbUJDLFdBQVcxQyxlQUFlQyxlQUFlQztZQUNsRSxJQUFJeUMsY0FBYztZQUVsQixJQUFNQyxlQUFlSCxtQkFDZkksZUFBZUMsSUFBQUEsa0NBQTRCLEVBQUNGLGVBQzVDRyxXQUFXOUMsY0FBYytDLDBCQUEwQixDQUFDSDtZQUUxRCxJQUFJRSxhQUFhLE1BQU07Z0JBQ3JCLElBQU0sQUFBRUUsT0FBUy9CLGFBQUksQ0FBYitCLE1BQ0Z2QixlQUFleEIsZUFDZmdELFdBQVdSLFdBQ1hTLE9BQU9GLEtBQUtHLFlBQVksQ0FBQ0YsVUFBVWhEO2dCQUV6Q3lDLGNBQWNJLFNBQVNNLFNBQVMsQ0FBQ0YsTUFBTW5ELGVBQWUwQjtZQUN4RDtZQUVBLE9BQU9pQjtRQUNUO0lBQ0Y7Q0FDRDtBQUdILElBQU1XLG1CQUFtQixJQUFJMUQ7SUFFN0IsV0FBZTBEO0FBRWYsU0FBU25CLDRCQUE0QnZCLGNBQWMsRUFBRUMsY0FBYyxFQUFFYixhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUM5RyxJQUFNRSxtQkFBbUJRLGdCQUNuQlAsbUJBQW1CUSxnQkFDbkIwQyw2QkFBNkJuRCxpQkFBaUJvRCxhQUFhLElBQzNEQyw2QkFBNkJwRCxpQkFBaUJtRCxhQUFhLElBQzNERSxjQUFjSCw0QkFDZEksY0FBY0YsNEJBQ2RHLHFCQUFxQk4saUJBQWlCTyxlQUFlLENBQUNILGFBQWFDLGFBQWEzRCxlQUFlQyxlQUFlQyxnQkFDOUdZLG1CQUFtQjhDLG9CQUFvQixHQUFHO0lBRWhELE9BQU85QztBQUNUIn0=
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL21ldGFMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyXCI7XG5pbXBvcnQgdW5pZnlNZXRhdmFyaWFibGVXaXRoRnJhbWUgZnJvbSBcIi4uL3VuaWZ5L21ldGF2YXJpYWJsZVdpdGhGcmFtZVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlLCBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtIVwiKSxcbiAgICAgIGZyYW1lTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lIVwiKSxcbiAgICAgIHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQhXCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgZnJhbWVNZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZnJhbWUvbWV0YXZhcmlhYmxlIVwiKSxcbiAgICAgIHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvbWV0YXZhcmlhYmxlIVwiKTtcblxuY2xhc3MgTWV0YUxldmVsVW5pZmllciBleHRlbmRzIFVuaWZpZXIge1xuICB1bmlmeShub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgICBsZXQgdW5pZmllZEF0TWV0YUxldmVsO1xuXG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQSA9IG5vZGVBLCAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gbm9kZUIsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVVuaWZpZWQgPSB0aGlzLnVuaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgdW5pZmllZEF0TWV0YUxldmVsID0gbm9uVGVybWluYWxOb2RlVW5pZmllZDsgLy8vXG5cbiAgICByZXR1cm4gdW5pZmllZEF0TWV0YUxldmVsO1xuICB9XG5cbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5QTogc3RhdGVtZW50Tm9kZVF1ZXJ5LFxuICAgICAgbm9kZVF1ZXJ5Qjogc3RhdGVtZW50Tm9kZVF1ZXJ5LFxuICAgICAgdW5pZnk6IChzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpID0+IHtcbiAgICAgICAgbGV0IHN0YXRlbWVudFVuaWZpZWQ7XG5cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHN0YXRlbWVudE5vZGVBLm1hdGNoKHN0YXRlbWVudE5vZGVCKTtcblxuICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlQSwgLy8vXG4gICAgICAgICAgICAgICAgc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSA9IHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICAgIGlmIChzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCB7IFN0YXRlbWVudCB9ID0gc2hpbSxcbiAgICAgICAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgICAgICBtZXRhdmFyaWFibGUgPSBsb2NhbENvbnRleHRBLmZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUobWV0YXZhcmlhYmxlTmFtZSksXG4gICAgICAgICAgICAgICAgICBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25BLCAgLy8vXG4gICAgICAgICAgICAgICAgICBsb2NhbENvbnRleHQgPSBsb2NhbENvbnRleHRCLCAvLy9cbiAgICAgICAgICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlQiwgLy8vXG4gICAgICAgICAgICAgICAgICBzdGF0ZW1lbnQgPSBTdGF0ZW1lbnQuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gbWV0YXZhcmlhYmxlLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IHN0YXRlbWVudFVuaWZpZWRHaXZlblN1YnN0aXR1dGlvbiA9IG1ldGF2YXJpYWJsZS51bmlmeVN0YXRlbWVudEdpdmVuU3Vic3RpdHV0aW9uKHN0YXRlbWVudCwgc3Vic3RpdHV0aW9uLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSBzdGF0ZW1lbnRVbmlmaWVkR2l2ZW5TdWJzdGl0dXRpb247IC8vL1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGF0ZW1lbnRVbmlmaWVkID0gdW5pZnlTdGF0ZW1lbnRXaXRoU3RhdGVtZW50KHN0YXRlbWVudE5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWQ7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnlBOiBmcmFtZU1ldGF2YXJpYWJsZU5vZGVRdWVyeSxcbiAgICAgIG5vZGVRdWVyeUI6IGZyYW1lTm9kZVF1ZXJ5LFxuICAgICAgdW5pZnk6IChmcmFtZU1ldGF2YXJpYWJsZU5vZGVBLCBmcmFtZU5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSA9PiB7XG4gICAgICAgIGRlYnVnZ2VyXG5cbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZUEgPSBmcmFtZU1ldGF2YXJpYWJsZU5vZGVBLCAvLy9cbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhGcmFtZSA9IHVuaWZ5TWV0YXZhcmlhYmxlV2l0aEZyYW1lKG1ldGF2YXJpYWJsZU5vZGVBLCBmcmFtZU5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhGcmFtZTtcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeUE6IHRlcm1WYXJpYWJsZU5vZGVRdWVyeSxcbiAgICAgIG5vZGVRdWVyeUI6IHRlcm1Ob2RlUXVlcnksXG4gICAgICB1bmlmeTogKHRlcm1WYXJpYWJsZU5vZGVBLCB0ZXJtTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpID0+IHtcbiAgICAgICAgbGV0IHRlcm1VbmlmaWVkID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdGVybVZhcmlhYmxlTm9kZUEsIC8vL1xuICAgICAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgIHZhcmlhYmxlID0gbG9jYWxDb250ZXh0QS5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHsgVGVybSB9ID0gc2hpbSxcbiAgICAgICAgICAgICAgICBsb2NhbENvbnRleHQgPSBsb2NhbENvbnRleHRCLCAvLy9cbiAgICAgICAgICAgICAgICB0ZXJtTm9kZSA9IHRlcm1Ob2RlQiwgLy8vXG4gICAgICAgICAgICAgICAgdGVybSA9IFRlcm0uZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgICAgIHRlcm1VbmlmaWVkID0gdmFyaWFibGUudW5pZnlUZXJtKHRlcm0sIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGVybVVuaWZpZWQ7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jb25zdCBtZXRhTGV2ZWxVbmlmaWVyID0gbmV3IE1ldGFMZXZlbFVuaWZpZXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgbWV0YUxldmVsVW5pZmllcjtcblxuZnVuY3Rpb24gdW5pZnlTdGF0ZW1lbnRXaXRoU3RhdGVtZW50KHN0YXRlbWVudE5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICBzdWJzdGl0dXRpb25BID0gbnVsbDtcblxuICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gc3RhdGVtZW50Tm9kZUEsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gc3RhdGVtZW50Tm9kZUIsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVBQ2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZUEuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZUIuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICBjaGlsZE5vZGVzQSA9IG5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgY2hpbGROb2Rlc0IgPSBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcywgLy8vXG4gICAgICAgIGNoaWxkTm9kZXNWZXJpZmllZCA9IG1ldGFMZXZlbFVuaWZpZXIudW5pZnlDaGlsZE5vZGVzKGNoaWxkTm9kZXNBLCBjaGlsZE5vZGVzQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0QiksXG4gICAgICAgIHN0YXRlbWVudFVuaWZpZWQgPSBjaGlsZE5vZGVzVmVyaWZpZWQ7IC8vL1xuXG4gIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJmcmFtZU5vZGVRdWVyeSIsInN0YXRlbWVudE5vZGVRdWVyeSIsInRlcm1WYXJpYWJsZU5vZGVRdWVyeSIsImZyYW1lTWV0YXZhcmlhYmxlTm9kZVF1ZXJ5Iiwic3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwiTWV0YUxldmVsVW5pZmllciIsInVuaWZ5Iiwibm9kZUEiLCJub2RlQiIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInVuaWZpZWRBdE1ldGFMZXZlbCIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibm9uVGVybWluYWxOb2RlVW5pZmllZCIsInVuaWZ5Tm9uVGVybWluYWxOb2RlIiwiVW5pZmllciIsIm1hcHMiLCJub2RlUXVlcnlBIiwibm9kZVF1ZXJ5QiIsInN0YXRlbWVudE5vZGVBIiwic3RhdGVtZW50Tm9kZUIiLCJzdGF0ZW1lbnRVbmlmaWVkIiwibWF0Y2hlcyIsIm1hdGNoIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUiLCJTdGF0ZW1lbnQiLCJzaGltIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGUiLCJmaW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lIiwic3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uQSIsImxvY2FsQ29udGV4dCIsInN0YXRlbWVudCIsImZyb21TdGF0ZW1lbnROb2RlIiwidW5pZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnRVbmlmaWVkR2l2ZW5TdWJzdGl0dXRpb24iLCJ1bmlmeVN0YXRlbWVudEdpdmVuU3Vic3RpdHV0aW9uIiwidW5pZnlTdGF0ZW1lbnRXaXRoU3RhdGVtZW50IiwiZnJhbWVNZXRhdmFyaWFibGVOb2RlQSIsImZyYW1lTm9kZUIiLCJtZXRhdmFyaWFibGVOb2RlQSIsIm1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoRnJhbWUiLCJ1bmlmeU1ldGF2YXJpYWJsZVdpdGhGcmFtZSIsInRlcm1WYXJpYWJsZU5vZGVBIiwidGVybU5vZGVCIiwidGVybVVuaWZpZWQiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsIlRlcm0iLCJ0ZXJtTm9kZSIsInRlcm0iLCJmcm9tVGVybU5vZGUiLCJ1bmlmeVRlcm0iLCJtZXRhTGV2ZWxVbmlmaWVyIiwibm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwibm9uVGVybWluYWxOb2RlQkNoaWxkTm9kZXMiLCJjaGlsZE5vZGVzQSIsImNoaWxkTm9kZXNCIiwiY2hpbGROb2Rlc1ZlcmlmaWVkIiwidW5pZnlDaGlsZE5vZGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE0R0E7OztlQUFBOzs7MkRBMUdpQjs4REFDRzs0RUFDbUI7cUJBRWI7b0JBQ3lEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVuRixJQUFNQSxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsV0FDMUJDLGlCQUFpQkQsSUFBQUEsZ0JBQVMsRUFBQyxZQUMzQkUscUJBQXFCRixJQUFBQSxnQkFBUyxFQUFDLGdCQUMvQkcsd0JBQXdCSCxJQUFBQSxnQkFBUyxFQUFDLG9CQUNsQ0ksNkJBQTZCSixJQUFBQSxnQkFBUyxFQUFDLHlCQUN2Q0ssaUNBQWlDTCxJQUFBQSxnQkFBUyxFQUFDO0FBRWpELElBQUEsQUFBTU0saUNBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO2lDQUFBQTs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTUMsS0FBSyxFQUFFQyxLQUFLLEVBQUVDLGFBQWEsRUFBRUMsYUFBYSxFQUFFQyxhQUFhO2dCQUM3RCxJQUFJQztnQkFFSixJQUFNQyxtQkFBbUJOLE9BQ25CTyxtQkFBbUJOLE9BQ25CTyx5QkFBeUIsSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQ0gsa0JBQWtCQyxrQkFBa0JMLGVBQWVDLGVBQWVDO2dCQUUzSEMscUJBQXFCRyx3QkFBd0IsR0FBRztnQkFFaEQsT0FBT0g7WUFDVDs7O1dBWElQO0VBQXlCWSxnQkFBTztBQWFwQyxpQkFiSVosa0JBYUdhLFFBQU87SUFDWjtRQUNFQyxZQUFZbEI7UUFDWm1CLFlBQVluQjtRQUNa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
@@ -114,10 +114,10 @@ var MetavariableUnifier = /*#__PURE__*/ function(Unifier) {
114
114
  {
115
115
  key: "unify",
116
116
  value: function unify(metavariableNodeA, metavariableNodeB, localContext) {
117
- var unified;
117
+ var metavariableUnified;
118
118
  var nonTerminalNodeA = metavariableNodeA, nonTerminalNodeB = metavariableNodeB, nonTerminalNodeUnified = this.unifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext);
119
- unified = nonTerminalNodeUnified; ///
120
- return unified;
119
+ metavariableUnified = nonTerminalNodeUnified; ///
120
+ return metavariableUnified;
121
121
  }
122
122
  }
123
123
  ]);
@@ -143,4 +143,4 @@ _define_property(MetavariableUnifier, "maps", [
143
143
  var metavariableUnifier = new MetavariableUnifier();
144
144
  var _default = metavariableUnifier;
145
145
 
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL21ldGF2YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IHR5cGVOYW1lRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XG5cbmNvbnN0IHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZSFcIiksXG4gICAgICB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0hXCIpO1xuXG5jbGFzcyBNZXRhdmFyaWFibGVVbmlmaWVyIGV4dGVuZHMgVW5pZmllciB7XG4gIHVuaWZ5KG1ldGF2YXJpYWJsZU5vZGVBLCBtZXRhdmFyaWFibGVOb2RlQiwgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHVuaWZpZWQ7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gbWV0YXZhcmlhYmxlTm9kZUEsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBtZXRhdmFyaWFibGVOb2RlQiwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVW5pZmllZCA9IHRoaXMudW5pZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgbG9jYWxDb250ZXh0KTtcblxuICAgIHVuaWZpZWQgPSBub25UZXJtaW5hbE5vZGVVbmlmaWVkOyAvLy9cblxuICAgIHJldHVybiB1bmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5QTogdGVybU5vZGVRdWVyeSxcbiAgICAgIG5vZGVRdWVyeUI6IHR5cGVOb2RlUXVlcnksXG4gICAgICB1bmlmeTogKHRlcm1Ob2RlQSwgdHlwZU5vZGVCLCBsb2NhbENvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHVuaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCB7IFRlcm0gfSA9IHNoaW0sXG4gICAgICAgICAgICAgIHR5cGVOb2RlID0gdHlwZU5vZGVCLCAvLy9cbiAgICAgICAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgICAgICAgIHR5cGUgPSBsb2NhbENvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgICAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHRlcm1Ob2RlID0gdGVybU5vZGVBLCAvLy9cbiAgICAgICAgICAgICAgICB0ZXJtID0gVGVybS5mcm9tVGVybU5vZGUodGVybU5vZGUsIGxvY2FsQ29udGV4dCksXG4gICAgICAgICAgICAgICAgdGVybVZlcmlmaWVkR2l2ZW5UeXBlID0gdGVybS52ZXJpZnlHaXZlblR5cGUodHlwZSwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgIGlmICh0ZXJtVmVyaWZpZWRHaXZlblR5cGUpIHtcbiAgICAgICAgICAgIHVuaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmlmaWVkO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgbWV0YXZhcmlhYmxlVW5pZmllciA9IG5ldyBNZXRhdmFyaWFibGVVbmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IG1ldGF2YXJpYWJsZVVuaWZpZXI7XG4iXSwibmFtZXMiOlsidHlwZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInRlcm1Ob2RlUXVlcnkiLCJNZXRhdmFyaWFibGVVbmlmaWVyIiwidW5pZnkiLCJtZXRhdmFyaWFibGVOb2RlQSIsIm1ldGF2YXJpYWJsZU5vZGVCIiwibG9jYWxDb250ZXh0IiwidW5pZmllZCIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibm9uVGVybWluYWxOb2RlVW5pZmllZCIsInVuaWZ5Tm9uVGVybWluYWxOb2RlIiwiVW5pZmllciIsIm1hcHMiLCJub2RlUXVlcnlBIiwibm9kZVF1ZXJ5QiIsInRlcm1Ob2RlQSIsInR5cGVOb2RlQiIsIlRlcm0iLCJzaGltIiwidHlwZU5vZGUiLCJ0eXBlTmFtZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwidHlwZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInRlcm1Ob2RlIiwidGVybSIsImZyb21UZXJtTm9kZSIsInRlcm1WZXJpZmllZEdpdmVuVHlwZSIsInZlcmlmeUdpdmVuVHlwZSIsIm1ldGF2YXJpYWJsZVVuaWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXNEQTs7O2VBQUE7OzsyREFwRGlCOzhEQUNHO3FCQUVNO29CQUNXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyQyxJQUFNQSxnQkFBZ0JDLElBQUFBLGdCQUFTLEVBQUMsV0FDMUJDLGdCQUFnQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVoQyxJQUFBLEFBQU1FLG9DQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtpQ0FBQUE7O2tCQUFBQTs7WUFDSkMsS0FBQUE7bUJBQUFBLFNBQUFBLE1BQU1DLGlCQUFpQixFQUFFQyxpQkFBaUIsRUFBRUMsWUFBWTtnQkFDdEQsSUFBSUM7Z0JBRUosSUFBTUMsbUJBQW1CSixtQkFDbkJLLG1CQUFtQkosbUJBQ25CSyx5QkFBeUIsSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQ0gsa0JBQWtCQyxrQkFBa0JIO2dCQUU3RkMsVUFBVUcsd0JBQXdCLEdBQUc7Z0JBRXJDLE9BQU9IO1lBQ1Q7OztXQVhJTDtFQUE0QlUsZ0JBQU87QUFhdkMsaUJBYklWLHFCQWFHVyxRQUFPO0lBQ1o7UUFDRUMsWUFBWWI7UUFDWmMsWUFBWWhCO1FBQ1pJLE9BQU8sU0FBQ2EsV0FBV0MsV0FBV1g7WUFDNUIsSUFBSUMsVUFBVTtZQUVkLElBQU0sQUFBRVcsT0FBU0MsYUFBSSxDQUFiRCxNQUNGRSxXQUFXSCxXQUNYSSxXQUFXQyxJQUFBQSwwQkFBb0IsRUFBQ0YsV0FDaENHLE9BQU9qQixhQUFha0Isa0JBQWtCLENBQUNIO1lBRTdDLElBQUlFLFNBQVMsTUFBTTtnQkFDakIsSUFBTUUsV0FBV1QsV0FDWFUsT0FBT1IsS0FBS1MsWUFBWSxDQUFDRixVQUFVbkIsZUFDbkNzQix3QkFBd0JGLEtBQUtHLGVBQWUsQ0FBQ04sTUFBTWpCO2dCQUV6RCxJQUFJc0IsdUJBQXVCO29CQUN6QnJCLFVBQVU7Z0JBQ1o7WUFDRjtZQUVBLE9BQU9BO1FBQ1Q7SUFDRjtDQUNEO0FBR0gsSUFBTXVCLHNCQUFzQixJQUFJNUI7SUFFaEMsV0FBZTRCIn0=
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmaWVyL21ldGF2YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4uL3NoaW1cIjtcbmltcG9ydCBVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IHR5cGVOYW1lRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XG5cbmNvbnN0IHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZSFcIiksXG4gICAgICB0ZXJtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0hXCIpO1xuXG5jbGFzcyBNZXRhdmFyaWFibGVVbmlmaWVyIGV4dGVuZHMgVW5pZmllciB7XG4gIHVuaWZ5KG1ldGF2YXJpYWJsZU5vZGVBLCBtZXRhdmFyaWFibGVOb2RlQiwgbG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IG1ldGF2YXJpYWJsZVVuaWZpZWQ7XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gbWV0YXZhcmlhYmxlTm9kZUEsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBtZXRhdmFyaWFibGVOb2RlQiwgLy8vXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVW5pZmllZCA9IHRoaXMudW5pZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgbG9jYWxDb250ZXh0KTtcblxuICAgIG1ldGF2YXJpYWJsZVVuaWZpZWQgPSBub25UZXJtaW5hbE5vZGVVbmlmaWVkOyAvLy9cblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVVbmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5QTogdGVybU5vZGVRdWVyeSxcbiAgICAgIG5vZGVRdWVyeUI6IHR5cGVOb2RlUXVlcnksXG4gICAgICB1bmlmeTogKHRlcm1Ob2RlQSwgdHlwZU5vZGVCLCBsb2NhbENvbnRleHQpID0+IHtcbiAgICAgICAgbGV0IHVuaWZpZWQgPSBmYWxzZTtcblxuICAgICAgICBjb25zdCB7IFRlcm0gfSA9IHNoaW0sXG4gICAgICAgICAgICAgIHR5cGVOb2RlID0gdHlwZU5vZGVCLCAvLy9cbiAgICAgICAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgICAgICAgIHR5cGUgPSBsb2NhbENvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgICAgICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IHRlcm1Ob2RlID0gdGVybU5vZGVBLCAvLy9cbiAgICAgICAgICAgICAgICB0ZXJtID0gVGVybS5mcm9tVGVybU5vZGUodGVybU5vZGUsIGxvY2FsQ29udGV4dCksXG4gICAgICAgICAgICAgICAgdGVybVZlcmlmaWVkR2l2ZW5UeXBlID0gdGVybS52ZXJpZnlHaXZlblR5cGUodHlwZSwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgIGlmICh0ZXJtVmVyaWZpZWRHaXZlblR5cGUpIHtcbiAgICAgICAgICAgIHVuaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmlmaWVkO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgbWV0YXZhcmlhYmxlVW5pZmllciA9IG5ldyBNZXRhdmFyaWFibGVVbmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IG1ldGF2YXJpYWJsZVVuaWZpZXI7XG4iXSwibmFtZXMiOlsidHlwZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInRlcm1Ob2RlUXVlcnkiLCJNZXRhdmFyaWFibGVVbmlmaWVyIiwidW5pZnkiLCJtZXRhdmFyaWFibGVOb2RlQSIsIm1ldGF2YXJpYWJsZU5vZGVCIiwibG9jYWxDb250ZXh0IiwibWV0YXZhcmlhYmxlVW5pZmllZCIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibm9uVGVybWluYWxOb2RlVW5pZmllZCIsInVuaWZ5Tm9uVGVybWluYWxOb2RlIiwiVW5pZmllciIsIm1hcHMiLCJub2RlUXVlcnlBIiwibm9kZVF1ZXJ5QiIsInRlcm1Ob2RlQSIsInR5cGVOb2RlQiIsInVuaWZpZWQiLCJUZXJtIiwic2hpbSIsInR5cGVOb2RlIiwidHlwZU5hbWUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJ0ZXJtTm9kZSIsInRlcm0iLCJmcm9tVGVybU5vZGUiLCJ0ZXJtVmVyaWZpZWRHaXZlblR5cGUiLCJ2ZXJpZnlHaXZlblR5cGUiLCJtZXRhdmFyaWFibGVVbmlmaWVyIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFzREE7OztlQUFBOzs7MkRBcERpQjs4REFDRztxQkFFTTtvQkFDVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFckMsSUFBTUEsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLFdBQzFCQyxnQkFBZ0JELElBQUFBLGdCQUFTLEVBQUM7QUFFaEMsSUFBQSxBQUFNRSxvQ0FBTjtjQUFNQTthQUFBQTtnQ0FBQUE7aUNBQUFBOztrQkFBQUE7O1lBQ0pDLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxpQkFBaUIsRUFBRUMsaUJBQWlCLEVBQUVDLFlBQVk7Z0JBQ3RELElBQUlDO2dCQUVKLElBQU1DLG1CQUFtQkosbUJBQ25CSyxtQkFBbUJKLG1CQUNuQksseUJBQXlCLElBQUksQ0FBQ0Msb0JBQW9CLENBQUNILGtCQUFrQkMsa0JBQWtCSDtnQkFFN0ZDLHNCQUFzQkcsd0JBQXdCLEdBQUc7Z0JBRWpELE9BQU9IO1lBQ1Q7OztXQVhJTDtFQUE0QlUsZ0JBQU87QUFhdkMsaUJBYklWLHFCQWFHVyxRQUFPO0lBQ1o7UUFDRUMsWUFBWWI7UUFDWmMsWUFBWWhCO1FBQ1pJLE9BQU8sU0FBQ2EsV0FBV0MsV0FBV1g7WUFDNUIsSUFBSVksVUFBVTtZQUVkLElBQU0sQUFBRUMsT0FBU0MsYUFBSSxDQUFiRCxNQUNGRSxXQUFXSixXQUNYSyxXQUFXQyxJQUFBQSwwQkFBb0IsRUFBQ0YsV0FDaENHLE9BQU9sQixhQUFhbUIsa0JBQWtCLENBQUNIO1lBRTdDLElBQUlFLFNBQVMsTUFBTTtnQkFDakIsSUFBTUUsV0FBV1YsV0FDWFcsT0FBT1IsS0FBS1MsWUFBWSxDQUFDRixVQUFVcEIsZUFDbkN1Qix3QkFBd0JGLEtBQUtHLGVBQWUsQ0FBQ04sTUFBTWxCO2dCQUV6RCxJQUFJdUIsdUJBQXVCO29CQUN6QlgsVUFBVTtnQkFDWjtZQUNGO1lBRUEsT0FBT0E7UUFDVDtJQUNGO0NBQ0Q7QUFHSCxJQUFNYSxzQkFBc0IsSUFBSTdCO0lBRWhDLFdBQWU2QiJ9
@@ -20,12 +20,12 @@ function unifyComplexSubstitutionStatementWithSimpleSubstitutionStatement(simple
20
20
  localContextB.trace("Unifying the simple substitution's '".concat(simpleSubstitutionStatementString, "' statement with the complex substitution's '").concat(complexSubstitutionStatementString, "' statement..."), simpleSubstitutionStatementNode);
21
21
  var nodeA = complexSubstitutionStatementNode, nodeB = simpleSubstitutionStatementNode; ///
22
22
  localContextA = localContextB; ///
23
- var unified = _metaLevel.default.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
24
- simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement = unified; ///
23
+ var unifiedAtMetaLevel = _metaLevel.default.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
24
+ simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement = unifiedAtMetaLevel; ///
25
25
  if (simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement) {
26
26
  localContextB.trace("...unified the simple substitution's '".concat(simpleSubstitutionStatementString, "' statement with the complex substitution's '").concat(complexSubstitutionStatementString, "' statement."), simpleSubstitutionStatementNode);
27
27
  }
28
28
  return simpleSubstitutionStatementUnifiedWithComplexSubstitutionStatement;
29
29
  }
30
30
 
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGFMZXZlbFVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YUxldmVsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5Q29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFdpdGhTaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnQoc2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSwgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgbGV0IHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudDtcblxuICBjb25zdCBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHRCLm5vZGVBc1N0cmluZyhzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dEIubm9kZUFzU3RyaW5nKGNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHRCLnRyYWNlKGBVbmlmeWluZyB0aGUgc2ltcGxlIHN1YnN0aXR1dGlvbidzICcke3NpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBjb21wbGV4IHN1YnN0aXR1dGlvbidzICcke2NvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gLCBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBub2RlQSA9IGNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIG5vZGVCID0gc2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZTsgIC8vL1xuXG4gIGxvY2FsQ29udGV4dEEgPSBsb2NhbENvbnRleHRCOyAgLy8vXG5cbiAgY29uc3QgdW5pZmllZCA9IG1ldGFMZXZlbFVuaWZpZXIudW5pZnkobm9kZUEsIG5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRVbmlmaWVkV2l0aENvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnQgPSB1bmlmaWVkOyAgLy8vXG5cbiAgaWYgKHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudCkge1xuICAgIGxvY2FsQ29udGV4dEIudHJhY2UoYC4uLnVuaWZpZWQgdGhlIHNpbXBsZSBzdWJzdGl0dXRpb24ncyAnJHtzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgY29tcGxleCBzdWJzdGl0dXRpb24ncyAnJHtjb21wbGV4U3Vic3RpdHV0aW9uU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50LmAsIHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudDtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeUNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnRXaXRoU2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Iiwic2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSIsImNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlIiwic3Vic3RpdHV0aW9ucyIsImxvY2FsQ29udGV4dEEiLCJsb2NhbENvbnRleHRCIiwic2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50VW5pZmllZFdpdGhDb21wbGV4U3Vic3RpdHV0aW9uU3RhdGVtZW50Iiwic2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50U3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZyIsInRyYWNlIiwibm9kZUEiLCJub2RlQiIsInVuaWZpZWQiLCJtZXRhTGV2ZWxVbmlmaWVyIiwidW5pZnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBd0JBOzs7Z0VBRks7Ozs7OztBQUVkLFNBQVNBLGlFQUFpRUMsK0JBQStCLEVBQUVDLGdDQUFnQyxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUNyTSxJQUFJQztJQUVKLElBQU1DLG9DQUFvQ0YsY0FBY0csWUFBWSxDQUFDUCxrQ0FDL0RRLHFDQUFxQ0osY0FBY0csWUFBWSxDQUFDTjtJQUV0RUcsY0FBY0ssS0FBSyxDQUFDLEFBQUMsdUNBQXVIRCxPQUFqRkYsbUNBQWtDLGlEQUFrRixPQUFuQ0Usb0NBQW1DLG1CQUFpQlI7SUFFaE0sSUFBTVUsUUFBUVQsa0NBQ1JVLFFBQVFYLGlDQUFrQyxHQUFHO0lBRW5ERyxnQkFBZ0JDLGVBQWdCLEdBQUc7SUFFbkMsSUFBTVEsVUFBVUMsa0JBQWdCLENBQUNDLEtBQUssQ0FBQ0osT0FBT0MsT0FBT1QsZUFBZUMsZUFBZUM7SUFFbkZDLHFFQUFxRU8sU0FBVSxHQUFHO0lBRWxGLElBQUlQLG9FQUFvRTtRQUN0RUQsY0FBY0ssS0FBSyxDQUFDLEFBQUMseUNBQXlIRCxPQUFqRkYsbUNBQWtDLGlEQUFrRixPQUFuQ0Usb0NBQW1DLGlCQUFlUjtJQUNsTTtJQUVBLE9BQU9LO0FBQ1QifQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG1ldGFMZXZlbFVuaWZpZXIgZnJvbSBcIi4uL3VuaWZpZXIvbWV0YUxldmVsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5Q29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFdpdGhTaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnQoc2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSwgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpIHtcbiAgbGV0IHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudDtcblxuICBjb25zdCBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHRCLm5vZGVBc1N0cmluZyhzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgY29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dEIubm9kZUFzU3RyaW5nKGNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHRCLnRyYWNlKGBVbmlmeWluZyB0aGUgc2ltcGxlIHN1YnN0aXR1dGlvbidzICcke3NpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSBjb21wbGV4IHN1YnN0aXR1dGlvbidzICcke2NvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQuLi5gLCBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBub2RlQSA9IGNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIG5vZGVCID0gc2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZTsgIC8vL1xuXG4gIGxvY2FsQ29udGV4dEEgPSBsb2NhbENvbnRleHRCOyAgLy8vXG5cbiAgY29uc3QgdW5pZmllZEF0TWV0YUxldmVsID0gbWV0YUxldmVsVW5pZmllci51bmlmeShub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gIHNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudCA9IHVuaWZpZWRBdE1ldGFMZXZlbDsgIC8vL1xuXG4gIGlmIChzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRVbmlmaWVkV2l0aENvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnQpIHtcbiAgICBsb2NhbENvbnRleHRCLnRyYWNlKGAuLi51bmlmaWVkIHRoZSBzaW1wbGUgc3Vic3RpdHV0aW9uJ3MgJyR7c2ltcGxlU3Vic3RpdHV0aW9uU3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlIGNvbXBsZXggc3Vic3RpdHV0aW9uJ3MgJyR7Y29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzaW1wbGVTdWJzdGl0dXRpb25TdGF0ZW1lbnRVbmlmaWVkV2l0aENvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnQ7XG59XG4iXSwibmFtZXMiOlsidW5pZnlDb21wbGV4U3Vic3RpdHV0aW9uU3RhdGVtZW50V2l0aFNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudCIsInNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudE5vZGUiLCJjb21wbGV4U3Vic3RpdHV0aW9uU3RhdGVtZW50Tm9kZSIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsInNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFVuaWZpZWRXaXRoQ29tcGxleFN1YnN0aXR1dGlvblN0YXRlbWVudCIsInNpbXBsZVN1YnN0aXR1dGlvblN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsImNvbXBsZXhTdWJzdGl0dXRpb25TdGF0ZW1lbnRTdHJpbmciLCJ0cmFjZSIsIm5vZGVBIiwibm9kZUIiLCJ1bmlmaWVkQXRNZXRhTGV2ZWwiLCJtZXRhTGV2ZWxVbmlmaWVyIiwidW5pZnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBd0JBOzs7Z0VBRks7Ozs7OztBQUVkLFNBQVNBLGlFQUFpRUMsK0JBQStCLEVBQUVDLGdDQUFnQyxFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUNyTSxJQUFJQztJQUVKLElBQU1DLG9DQUFvQ0YsY0FBY0csWUFBWSxDQUFDUCxrQ0FDL0RRLHFDQUFxQ0osY0FBY0csWUFBWSxDQUFDTjtJQUV0RUcsY0FBY0ssS0FBSyxDQUFDLEFBQUMsdUNBQXVIRCxPQUFqRkYsbUNBQWtDLGlEQUFrRixPQUFuQ0Usb0NBQW1DLG1CQUFpQlI7SUFFaE0sSUFBTVUsUUFBUVQsa0NBQ1JVLFFBQVFYLGlDQUFrQyxHQUFHO0lBRW5ERyxnQkFBZ0JDLGVBQWdCLEdBQUc7SUFFbkMsSUFBTVEscUJBQXFCQyxrQkFBZ0IsQ0FBQ0MsS0FBSyxDQUFDSixPQUFPQyxPQUFPVCxlQUFlQyxlQUFlQztJQUU5RkMscUVBQXFFTyxvQkFBcUIsR0FBRztJQUU3RixJQUFJUCxvRUFBb0U7UUFDdEVELGNBQWNLLEtBQUssQ0FBQyxBQUFDLHlDQUF5SEQsT0FBakZGLG1DQUFrQyxpREFBa0YsT0FBbkNFLG9DQUFtQyxpQkFBZVI7SUFDbE07SUFFQSxPQUFPSztBQUNUIn0=
@@ -20,8 +20,8 @@ function unifyStatementWithStatementGivenEquivalences(statementNodeA, statementN
20
20
  var statementStringA = localContextA.nodeAsString(statementNodeA), statementStringB = localContextB.nodeAsString(statementNodeB);
21
21
  localContextB.trace("Unifying the '".concat(statementStringB, "' statement with the '").concat(statementStringA, "' statement given equivalences..."), statementNodeB);
22
22
  if (!statementUnifiedWithStatementGivenEquivalences) {
23
- var substitutions = _substitutions.default.fromNothing(), nodeA = statementNodeA, nodeB = statementNodeB, unified = _intrinsicLevel.default.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
24
- if (unified) {
23
+ var substitutions = _substitutions.default.fromNothing(), nodeA = statementNodeA, nodeB = statementNodeB, unifiedAtIntrinsicLevel = _intrinsicLevel.default.unify(nodeA, nodeB, substitutions, localContextA, localContextB);
24
+ if (unifiedAtIntrinsicLevel) {
25
25
  var substitutionsUnifiedWithEquivalences = substitutions.unifyWithEquivalences(equivalences, localContextA, localContextB);
26
26
  statementUnifiedWithStatementGivenEquivalences = substitutionsUnifiedWithEquivalences; ///
27
27
  }
@@ -30,8 +30,8 @@ function unifyStatementWithStatementGivenEquivalences(statementNodeA, statementN
30
30
  var localContext = localContextA; ///
31
31
  localContextA = localContextB; ///
32
32
  localContextB = localContext; ///
33
- var substitutions1 = _substitutions.default.fromNothing(), nodeA1 = statementNodeB, nodeB1 = statementNodeA, unified1 = _intrinsicLevel.default.unify(nodeA1, nodeB1, substitutions1, localContextA, localContextB);
34
- if (unified1) {
33
+ var substitutions1 = _substitutions.default.fromNothing(), nodeA1 = statementNodeB, nodeB1 = statementNodeA, unifiedAtIntrinsicLevel1 = _intrinsicLevel.default.unify(nodeA1, nodeB1, substitutions1, localContextA, localContextB);
34
+ if (unifiedAtIntrinsicLevel1) {
35
35
  var substitutionsUnifiedWithEquivalences1 = substitutions1.unifyWithEquivalences(equivalences, localContextA, localContextB);
36
36
  statementUnifiedWithStatementGivenEquivalences = substitutionsUnifiedWithEquivalences1; ///
37
37
  }
@@ -42,4 +42,4 @@ function unifyStatementWithStatementGivenEquivalences(statementNodeA, statementN
42
42
  return statementUnifiedWithStatementGivenEquivalences;
43
43
  }
44
44
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnRXaXRoU3R0YWVtZXRuR2l2ZW5FcXVpdmFsZW5jZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBTdWJzdGl0dXRpb25zIGZyb20gXCIuLi9zdWJzdGl0dXRpb25zXCI7XG5pbXBvcnQgaW50cmluc2ljTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL2ludHJpbnNpY0xldmVsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aFN0YXRlbWVudEdpdmVuRXF1aXZhbGVuY2VzKHN0YXRlbWVudE5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgZXF1aXZhbGVuY2VzLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkV2l0aFN0YXRlbWVudEdpdmVuRXF1aXZhbGVuY2VzID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nQSA9IGxvY2FsQ29udGV4dEEubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGVBKSxcbiAgICAgICAgc3RhdGVtZW50U3RyaW5nQiA9IGxvY2FsQ29udGV4dEIubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGVCKTtcblxuICBsb2NhbENvbnRleHRCLnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nQn0nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmdBfScgc3RhdGVtZW50IGdpdmVuIGVxdWl2YWxlbmNlcy4uLmAsIHN0YXRlbWVudE5vZGVCKTtcblxuICBpZiAoIXN0YXRlbWVudFVuaWZpZWRXaXRoU3RhdGVtZW50R2l2ZW5FcXVpdmFsZW5jZXMpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gU3Vic3RpdHV0aW9ucy5mcm9tTm90aGluZygpLFxuICAgICAgICAgIG5vZGVBID0gc3RhdGVtZW50Tm9kZUEsICAvLy9cbiAgICAgICAgICBub2RlQiA9IHN0YXRlbWVudE5vZGVCLCAgLy8vXG4gICAgICAgICAgdW5pZmllZCA9IGludHJpbnNpY0xldmVsVW5pZmllci51bmlmeShub2RlQSwgbm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgaWYgKHVuaWZpZWQpIHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnNVbmlmaWVkV2l0aEVxdWl2YWxlbmNlcyA9IHN1YnN0aXR1dGlvbnMudW5pZnlXaXRoRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICAgIHN0YXRlbWVudFVuaWZpZWRXaXRoU3RhdGVtZW50R2l2ZW5FcXVpdmFsZW5jZXMgPSBzdWJzdGl0dXRpb25zVW5pZmllZFdpdGhFcXVpdmFsZW5jZXM7ICAvLy9cbiAgICB9XG4gIH1cblxuICBpZiAoIXN0YXRlbWVudFVuaWZpZWRXaXRoU3RhdGVtZW50R2l2ZW5FcXVpdmFsZW5jZXMpIHtcbiAgICBjb25zdCBsb2NhbENvbnRleHQgPSBsb2NhbENvbnRleHRBOyAvLy9cblxuICAgIGxvY2FsQ29udGV4dEEgPSBsb2NhbENvbnRleHRCOyAgLy8vXG5cbiAgICBsb2NhbENvbnRleHRCID0gbG9jYWxDb250ZXh0OyAvLy9cblxuICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgbm9kZUEgPSBzdGF0ZW1lbnROb2RlQiwgIC8vL1xuICAgICAgICAgIG5vZGVCID0gc3RhdGVtZW50Tm9kZUEsICAvLy9cbiAgICAgICAgICB1bmlmaWVkID0gaW50cmluc2ljTGV2ZWxVbmlmaWVyLnVuaWZ5KG5vZGVBLCBub2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICBpZiAodW5pZmllZCkge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uc1VuaWZpZWRXaXRoRXF1aXZhbGVuY2VzID0gc3Vic3RpdHV0aW9ucy51bmlmeVdpdGhFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnRHaXZlbkVxdWl2YWxlbmNlcyA9IHN1YnN0aXR1dGlvbnNVbmlmaWVkV2l0aEVxdWl2YWxlbmNlczsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIGlmIChzdGF0ZW1lbnRVbmlmaWVkV2l0aFN0YXRlbWVudEdpdmVuRXF1aXZhbGVuY2VzKSB7XG4gICAgbG9jYWxDb250ZXh0Qi5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nQn0nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmdBfScgc3RhdGVtZW50IGdpdmVuIGVxdWl2YWxlbmNlcy5gLCBzdGF0ZW1lbnROb2RlQik7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnRHaXZlbkVxdWl2YWxlbmNlcztcbn0iXSwibmFtZXMiOlsidW5pZnlTdGF0ZW1lbnRXaXRoU3RhdGVtZW50R2l2ZW5FcXVpdmFsZW5jZXMiLCJzdGF0ZW1lbnROb2RlQSIsInN0YXRlbWVudE5vZGVCIiwiZXF1aXZhbGVuY2VzIiwibG9jYWxDb250ZXh0QSIsImxvY2FsQ29udGV4dEIiLCJzdGF0ZW1lbnRVbmlmaWVkV2l0aFN0YXRlbWVudEdpdmVuRXF1aXZhbGVuY2VzIiwic3RhdGVtZW50U3RyaW5nQSIsIm5vZGVBc1N0cmluZyIsInN0YXRlbWVudFN0cmluZ0IiLCJ0cmFjZSIsInN1YnN0aXR1dGlvbnMiLCJTdWJzdGl0dXRpb25zIiwiZnJvbU5vdGhpbmciLCJub2RlQSIsIm5vZGVCIiwidW5pZmllZCIsImludHJpbnNpY0xldmVsVW5pZmllciIsInVuaWZ5Iiwic3Vic3RpdHV0aW9uc1VuaWZpZWRXaXRoRXF1aXZhbGVuY2VzIiwidW5pZnlXaXRoRXF1aXZhbGVuY2VzIiwibG9jYWxDb250ZXh0IiwiZGVidWciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUtBOzs7ZUFBd0JBOzs7b0VBSEU7cUVBQ1E7Ozs7OztBQUVuQixTQUFTQSw2Q0FBNkNDLGNBQWMsRUFBRUMsY0FBYyxFQUFFQyxZQUFZLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUM3SSxJQUFJQyxpREFBaUQ7SUFFckQsSUFBTUMsbUJBQW1CSCxjQUFjSSxZQUFZLENBQUNQLGlCQUM5Q1EsbUJBQW1CSixjQUFjRyxZQUFZLENBQUNOO0lBRXBERyxjQUFjSyxLQUFLLENBQUMsQUFBQyxpQkFBeURILE9BQXpDRSxrQkFBaUIsMEJBQXlDLE9BQWpCRixrQkFBaUIsc0NBQW9DTDtJQUVuSSxJQUFJLENBQUNJLGdEQUFnRDtRQUNuRCxJQUFNSyxnQkFBZ0JDLHNCQUFhLENBQUNDLFdBQVcsSUFDekNDLFFBQVFiLGdCQUNSYyxRQUFRYixnQkFDUmMsVUFBVUMsdUJBQXFCLENBQUNDLEtBQUssQ0FBQ0osT0FBT0MsT0FBT0osZUFBZVAsZUFBZUM7UUFFeEYsSUFBSVcsU0FBUztZQUNYLElBQU1HLHVDQUF1Q1IsY0FBY1MscUJBQXFCLENBQUNqQixjQUFjQyxlQUFlQztZQUU5R0MsaURBQWlEYSxzQ0FBdUMsR0FBRztRQUM3RjtJQUNGO0lBRUEsSUFBSSxDQUFDYixnREFBZ0Q7UUFDbkQsSUFBTWUsZUFBZWpCLGVBQWUsR0FBRztRQUV2Q0EsZ0JBQWdCQyxlQUFnQixHQUFHO1FBRW5DQSxnQkFBZ0JnQixjQUFjLEdBQUc7UUFFakMsSUFBTVYsaUJBQWdCQyxzQkFBYSxDQUFDQyxXQUFXLElBQ3pDQyxTQUFRWixnQkFDUmEsU0FBUWQsZ0JBQ1JlLFdBQVVDLHVCQUFxQixDQUFDQyxLQUFLLENBQUNKLFFBQU9DLFFBQU9KLGdCQUFlUCxlQUFlQztRQUV4RixJQUFJVyxVQUFTO1lBQ1gsSUFBTUcsd0NBQXVDUixlQUFjUyxxQkFBcUIsQ0FBQ2pCLGNBQWNDLGVBQWVDO1lBRTlHQyxpREFBaURhLHVDQUF1QyxHQUFHO1FBQzdGO0lBQ0Y7SUFFQSxJQUFJYixnREFBZ0Q7UUFDbERELGNBQWNpQixLQUFLLENBQUMsQUFBQyxtQkFBMkRmLE9BQXpDRSxrQkFBaUIsMEJBQXlDLE9BQWpCRixrQkFBaUIsb0NBQWtDTDtJQUNySTtJQUVBLE9BQU9JO0FBQ1QifQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9zdGF0ZW1lbnRXaXRoU3R0YWVtZXRuR2l2ZW5FcXVpdmFsZW5jZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBTdWJzdGl0dXRpb25zIGZyb20gXCIuLi9zdWJzdGl0dXRpb25zXCI7XG5pbXBvcnQgaW50cmluc2ljTGV2ZWxVbmlmaWVyIGZyb20gXCIuLi91bmlmaWVyL2ludHJpbnNpY0xldmVsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVuaWZ5U3RhdGVtZW50V2l0aFN0YXRlbWVudEdpdmVuRXF1aXZhbGVuY2VzKHN0YXRlbWVudE5vZGVBLCBzdGF0ZW1lbnROb2RlQiwgZXF1aXZhbGVuY2VzLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSB7XG4gIGxldCBzdGF0ZW1lbnRVbmlmaWVkV2l0aFN0YXRlbWVudEdpdmVuRXF1aXZhbGVuY2VzID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nQSA9IGxvY2FsQ29udGV4dEEubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGVBKSxcbiAgICAgICAgc3RhdGVtZW50U3RyaW5nQiA9IGxvY2FsQ29udGV4dEIubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGVCKTtcblxuICBsb2NhbENvbnRleHRCLnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nQn0nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmdBfScgc3RhdGVtZW50IGdpdmVuIGVxdWl2YWxlbmNlcy4uLmAsIHN0YXRlbWVudE5vZGVCKTtcblxuICBpZiAoIXN0YXRlbWVudFVuaWZpZWRXaXRoU3RhdGVtZW50R2l2ZW5FcXVpdmFsZW5jZXMpIHtcbiAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gU3Vic3RpdHV0aW9ucy5mcm9tTm90aGluZygpLFxuICAgICAgICAgIG5vZGVBID0gc3RhdGVtZW50Tm9kZUEsICAvLy9cbiAgICAgICAgICBub2RlQiA9IHN0YXRlbWVudE5vZGVCLCAgLy8vXG4gICAgICAgICAgdW5pZmllZEF0SW50cmluc2ljTGV2ZWwgPSBpbnRyaW5zaWNMZXZlbFVuaWZpZXIudW5pZnkobm9kZUEsIG5vZGVCLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgIGlmICh1bmlmaWVkQXRJbnRyaW5zaWNMZXZlbCkge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uc1VuaWZpZWRXaXRoRXF1aXZhbGVuY2VzID0gc3Vic3RpdHV0aW9ucy51bmlmeVdpdGhFcXVpdmFsZW5jZXMoZXF1aXZhbGVuY2VzLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKTtcblxuICAgICAgc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnRHaXZlbkVxdWl2YWxlbmNlcyA9IHN1YnN0aXR1dGlvbnNVbmlmaWVkV2l0aEVxdWl2YWxlbmNlczsgIC8vL1xuICAgIH1cbiAgfVxuXG4gIGlmICghc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnRHaXZlbkVxdWl2YWxlbmNlcykge1xuICAgIGNvbnN0IGxvY2FsQ29udGV4dCA9IGxvY2FsQ29udGV4dEE7IC8vL1xuXG4gICAgbG9jYWxDb250ZXh0QSA9IGxvY2FsQ29udGV4dEI7ICAvLy9cblxuICAgIGxvY2FsQ29udGV4dEIgPSBsb2NhbENvbnRleHQ7IC8vL1xuXG4gICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBub2RlQSA9IHN0YXRlbWVudE5vZGVCLCAgLy8vXG4gICAgICAgICAgbm9kZUIgPSBzdGF0ZW1lbnROb2RlQSwgIC8vL1xuICAgICAgICAgIHVuaWZpZWRBdEludHJpbnNpY0xldmVsID0gaW50cmluc2ljTGV2ZWxVbmlmaWVyLnVuaWZ5KG5vZGVBLCBub2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICBpZiAodW5pZmllZEF0SW50cmluc2ljTGV2ZWwpIHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnNVbmlmaWVkV2l0aEVxdWl2YWxlbmNlcyA9IHN1YnN0aXR1dGlvbnMudW5pZnlXaXRoRXF1aXZhbGVuY2VzKGVxdWl2YWxlbmNlcywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qik7XG5cbiAgICAgIHN0YXRlbWVudFVuaWZpZWRXaXRoU3RhdGVtZW50R2l2ZW5FcXVpdmFsZW5jZXMgPSBzdWJzdGl0dXRpb25zVW5pZmllZFdpdGhFcXVpdmFsZW5jZXM7ICAvLy9cbiAgICB9XG4gIH1cblxuICBpZiAoc3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnRHaXZlbkVxdWl2YWxlbmNlcykge1xuICAgIGxvY2FsQ29udGV4dEIuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ0J9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nQX0nIHN0YXRlbWVudCBnaXZlbiBlcXVpdmFsZW5jZXMuYCwgc3RhdGVtZW50Tm9kZUIpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWRXaXRoU3RhdGVtZW50R2l2ZW5FcXVpdmFsZW5jZXM7XG59Il0sIm5hbWVzIjpbInVuaWZ5U3RhdGVtZW50V2l0aFN0YXRlbWVudEdpdmVuRXF1aXZhbGVuY2VzIiwic3RhdGVtZW50Tm9kZUEiLCJzdGF0ZW1lbnROb2RlQiIsImVxdWl2YWxlbmNlcyIsImxvY2FsQ29udGV4dEEiLCJsb2NhbENvbnRleHRCIiwic3RhdGVtZW50VW5pZmllZFdpdGhTdGF0ZW1lbnRHaXZlbkVxdWl2YWxlbmNlcyIsInN0YXRlbWVudFN0cmluZ0EiLCJub2RlQXNTdHJpbmciLCJzdGF0ZW1lbnRTdHJpbmdCIiwidHJhY2UiLCJzdWJzdGl0dXRpb25zIiwiU3Vic3RpdHV0aW9ucyIsImZyb21Ob3RoaW5nIiwibm9kZUEiLCJub2RlQiIsInVuaWZpZWRBdEludHJpbnNpY0xldmVsIiwiaW50cmluc2ljTGV2ZWxVbmlmaWVyIiwidW5pZnkiLCJzdWJzdGl0dXRpb25zVW5pZmllZFdpdGhFcXVpdmFsZW5jZXMiLCJ1bmlmeVdpdGhFcXVpdmFsZW5jZXMiLCJsb2NhbENvbnRleHQiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBS0E7OztlQUF3QkE7OztvRUFIRTtxRUFDUTs7Ozs7O0FBRW5CLFNBQVNBLDZDQUE2Q0MsY0FBYyxFQUFFQyxjQUFjLEVBQUVDLFlBQVksRUFBRUMsYUFBYSxFQUFFQyxhQUFhO0lBQzdJLElBQUlDLGlEQUFpRDtJQUVyRCxJQUFNQyxtQkFBbUJILGNBQWNJLFlBQVksQ0FBQ1AsaUJBQzlDUSxtQkFBbUJKLGNBQWNHLFlBQVksQ0FBQ047SUFFcERHLGNBQWNLLEtBQUssQ0FBQyxBQUFDLGlCQUF5REgsT0FBekNFLGtCQUFpQiwwQkFBeUMsT0FBakJGLGtCQUFpQixzQ0FBb0NMO0lBRW5JLElBQUksQ0FBQ0ksZ0RBQWdEO1FBQ25ELElBQU1LLGdCQUFnQkMsc0JBQWEsQ0FBQ0MsV0FBVyxJQUN6Q0MsUUFBUWIsZ0JBQ1JjLFFBQVFiLGdCQUNSYywwQkFBMEJDLHVCQUFxQixDQUFDQyxLQUFLLENBQUNKLE9BQU9DLE9BQU9KLGVBQWVQLGVBQWVDO1FBRXhHLElBQUlXLHlCQUF5QjtZQUMzQixJQUFNRyx1Q0FBdUNSLGNBQWNTLHFCQUFxQixDQUFDakIsY0FBY0MsZUFBZUM7WUFFOUdDLGlEQUFpRGEsc0NBQXVDLEdBQUc7UUFDN0Y7SUFDRjtJQUVBLElBQUksQ0FBQ2IsZ0RBQWdEO1FBQ25ELElBQU1lLGVBQWVqQixlQUFlLEdBQUc7UUFFdkNBLGdCQUFnQkMsZUFBZ0IsR0FBRztRQUVuQ0EsZ0JBQWdCZ0IsY0FBYyxHQUFHO1FBRWpDLElBQU1WLGlCQUFnQkMsc0JBQWEsQ0FBQ0MsV0FBVyxJQUN6Q0MsU0FBUVosZ0JBQ1JhLFNBQVFkLGdCQUNSZSwyQkFBMEJDLHVCQUFxQixDQUFDQyxLQUFLLENBQUNKLFFBQU9DLFFBQU9KLGdCQUFlUCxlQUFlQztRQUV4RyxJQUFJVywwQkFBeUI7WUFDM0IsSUFBTUcsd0NBQXVDUixlQUFjUyxxQkFBcUIsQ0FBQ2pCLGNBQWNDLGVBQWVDO1lBRTlHQyxpREFBaURhLHVDQUF1QyxHQUFHO1FBQzdGO0lBQ0Y7SUFFQSxJQUFJYixnREFBZ0Q7UUFDbERELGNBQWNpQixLQUFLLENBQUMsQUFBQyxtQkFBMkRmLE9BQXpDRSxrQkFBaUIsMEJBQXlDLE9BQWpCRixrQkFBaUIsb0NBQWtDTDtJQUNySTtJQUVBLE9BQU9JO0FBQ1QifQ==
@@ -2,18 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- metavariableFromFrameNode: function() {
5
+ Object.defineProperty(exports, "metavariableFromFrameNode", {
6
+ enumerable: true,
7
+ get: function() {
13
8
  return metavariableFromFrameNode;
14
- },
15
- metavariableFromStatementNode: function() {
16
- return metavariableFromStatementNode;
17
9
  }
18
10
  });
19
11
  var _query = require("../utilities/query");
@@ -28,14 +20,5 @@ function metavariableFromFrameNode(frameNode, localContext) {
28
20
  }
29
21
  return metavariable;
30
22
  }
31
- function metavariableFromStatementNode(statementNode, localContext) {
32
- var metavariable = null;
33
- var statementMetavariableNode1 = statementMetavariableNodeQuery(statementNode);
34
- if (statementMetavariableNode1 !== null) {
35
- var metavariableNode = statementMetavariableNode1, metavariableName = (0, _name.metavariableNameFromMetavariableNode)(metavariableNode);
36
- metavariable = localContext.findMetavariableByMetavariableName(metavariableName);
37
- }
38
- return metavariable;
39
- }
40
23
 
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdW5pZnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZX0gIGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCBmcmFtZU1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9mcmFtZS9tZXRhdmFyaWFibGVcIiksXG4gICAgICBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L21ldGF2YXJpYWJsZVwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGF2YXJpYWJsZUZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZSA9IG51bGw7XG5cbiAgY29uc3QgZnJhbWVNZXRhdmFyaWFibGVOb2RlID0gZnJhbWVNZXRhdmFyaWFibGVOb2RlUXVlcnkoZnJhbWVOb2RlKVxuXG4gIGlmIChmcmFtZU1ldGF2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIG1ldGF2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGF2YXJpYWJsZUZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlID0gbnVsbDtcblxuICBjb25zdCBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlID0gc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpXG5cbiAgaWYgKHN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIG1ldGF2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbn1cbiJdLCJuYW1lcyI6WyJtZXRhdmFyaWFibGVGcm9tRnJhbWVOb2RlIiwibWV0YXZhcmlhYmxlRnJvbVN0YXRlbWVudE5vZGUiLCJmcmFtZU1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsImZyYW1lTm9kZSIsImxvY2FsQ29udGV4dCIsIm1ldGF2YXJpYWJsZSIsImZyYW1lTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUiLCJzdGF0ZW1lbnROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFRZ0JBLHlCQUF5QjtlQUF6QkE7O0lBZUFDLDZCQUE2QjtlQUE3QkE7OztxQkFyQlU7b0JBQzJCO0FBRXJELElBQU1DLDZCQUE2QkMsSUFBQUEsZ0JBQVMsRUFBQyx3QkFDdkNDLGlDQUFpQ0QsSUFBQUEsZ0JBQVMsRUFBQztBQUUxQyxTQUFTSCwwQkFBMEJLLFNBQVMsRUFBRUMsWUFBWTtJQUMvRCxJQUFJQyxlQUFlO0lBRW5CLElBQU1DLHdCQUF3Qk4sMkJBQTJCRztJQUV6RCxJQUFJRywwQkFBMEIsTUFBTTtRQUNsQyxJQUFNQyxtQkFBbUJDLDJCQUNuQkMsbUJBQW1CQyxJQUFBQSwwQ0FBb0MsRUFBQ0g7UUFFOURGLGVBQWVELGFBQWFPLGtDQUFrQyxDQUFDRjtJQUNqRTtJQUVBLE9BQU9KO0FBQ1Q7QUFFTyxTQUFTTiw4QkFBOEJhLGFBQWEsRUFBRVIsWUFBWTtJQUN2RSxJQUFJQyxlQUFlO0lBRW5CLElBQU1HLDZCQUE0Qk4sK0JBQStCVTtJQUVqRSxJQUFJSiwrQkFBOEIsTUFBTTtRQUN0QyxJQUFNRCxtQkFBbUJDLDRCQUNuQkMsbUJBQW1CQyxJQUFBQSwwQ0FBb0MsRUFBQ0g7UUFFOURGLGVBQWVELGFBQWFPLGtDQUFrQyxDQUFDRjtJQUNqRTtJQUVBLE9BQU9KO0FBQ1QifQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdW5pZnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZX0gIGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuXG5jb25zdCBmcmFtZU1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9mcmFtZS9tZXRhdmFyaWFibGVcIiksXG4gICAgICBzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L21ldGF2YXJpYWJsZVwiKTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGF2YXJpYWJsZUZyb21GcmFtZU5vZGUoZnJhbWVOb2RlLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZSA9IG51bGw7XG5cbiAgY29uc3QgZnJhbWVNZXRhdmFyaWFibGVOb2RlID0gZnJhbWVNZXRhdmFyaWFibGVOb2RlUXVlcnkoZnJhbWVOb2RlKVxuXG4gIGlmIChmcmFtZU1ldGF2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gc3RhdGVtZW50TWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgbWV0YXZhcmlhYmxlTmFtZSA9IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIG1ldGF2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbn1cblxuIl0sIm5hbWVzIjpbIm1ldGF2YXJpYWJsZUZyb21GcmFtZU5vZGUiLCJmcmFtZU1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInN0YXRlbWVudE1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsImZyYW1lTm9kZSIsImxvY2FsQ29udGV4dCIsIm1ldGF2YXJpYWJsZSIsImZyYW1lTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJzdGF0ZW1lbnRNZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFnQkE7OztlQUFBQTs7O3FCQU5VO29CQUMyQjtBQUVyRCxJQUFNQyw2QkFBNkJDLElBQUFBLGdCQUFTLEVBQUMsd0JBQ3ZDQyxpQ0FBaUNELElBQUFBLGdCQUFTLEVBQUM7QUFFMUMsU0FBU0YsMEJBQTBCSSxTQUFTLEVBQUVDLFlBQVk7SUFDL0QsSUFBSUMsZUFBZTtJQUVuQixJQUFNQyx3QkFBd0JOLDJCQUEyQkc7SUFFekQsSUFBSUcsMEJBQTBCLE1BQU07UUFDbEMsSUFBTUMsbUJBQW1CQywyQkFDbkJDLG1CQUFtQkMsSUFBQUEsMENBQW9DLEVBQUNIO1FBRTlERixlQUFlRCxhQUFhTyxrQ0FBa0MsQ0FBQ0Y7SUFDakU7SUFFQSxPQUFPSjtBQUNUIn0=