occam-verify-cli 0.0.909 → 0.0.911

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 (88) hide show
  1. package/lib/axiomLemmaTheoremConjecture.js +6 -6
  2. package/lib/conclusion.js +7 -7
  3. package/lib/consequent.js +3 -3
  4. package/lib/context/file.js +7 -35
  5. package/lib/context/local.js +14 -19
  6. package/lib/context/localMeta.js +16 -21
  7. package/lib/declaration.js +10 -10
  8. package/lib/equivalence.js +15 -15
  9. package/lib/frame.js +5 -5
  10. package/lib/frameAssertion.js +3 -3
  11. package/lib/metaConsequent.js +4 -4
  12. package/lib/metaLemmaMetatheorem.js +10 -10
  13. package/lib/metaSupposition.js +10 -10
  14. package/lib/metaType.js +7 -7
  15. package/lib/metavariable.js +7 -7
  16. package/lib/mixins/nodesVerifier/intrinsiclevel.js +3 -3
  17. package/lib/mixins/nodesVerifier/metaLevel.js +3 -3
  18. package/lib/premise.js +19 -19
  19. package/lib/rule.js +21 -21
  20. package/lib/step/metaproof.js +14 -53
  21. package/lib/step/proof.js +10 -22
  22. package/lib/substitution/metastatementForMetavariable.js +11 -11
  23. package/lib/substitution/statementForMetavariable.js +9 -8
  24. package/lib/substitution/termForVariable.js +9 -9
  25. package/lib/substitution.js +11 -11
  26. package/lib/supposition.js +3 -3
  27. package/lib/type.js +7 -7
  28. package/lib/utilities/match.js +96 -0
  29. package/lib/variable.js +8 -8
  30. package/lib/verify/containedAssertion.js +54 -20
  31. package/lib/verify/definedAssertion.js +67 -33
  32. package/lib/verify/frame.js +2 -2
  33. package/lib/verify/frameAssertion.js +3 -3
  34. package/lib/verify/metaDerivation.js +7 -7
  35. package/lib/verify/metaSubDerivation.js +6 -6
  36. package/lib/verify/metaproofStep.js +98 -0
  37. package/lib/verify/metastatement/unqualified.js +4 -7
  38. package/lib/verify/metastatement.js +35 -6
  39. package/lib/verify/ruleProofStep.js +25 -14
  40. package/lib/verify/statement/unqualified.js +3 -3
  41. package/lib/verify/statement.js +4 -7
  42. package/package.json +2 -2
  43. package/src/axiomLemmaTheoremConjecture.js +6 -6
  44. package/src/conclusion.js +6 -6
  45. package/src/consequent.js +2 -2
  46. package/src/context/file.js +6 -30
  47. package/src/context/local.js +13 -19
  48. package/src/context/localMeta.js +15 -21
  49. package/src/declaration.js +12 -12
  50. package/src/equivalence.js +14 -14
  51. package/src/frame.js +4 -4
  52. package/src/frameAssertion.js +2 -2
  53. package/src/metaConsequent.js +3 -3
  54. package/src/metaLemmaMetatheorem.js +10 -10
  55. package/src/metaSupposition.js +9 -9
  56. package/src/metaType.js +7 -7
  57. package/src/metavariable.js +6 -6
  58. package/src/mixins/nodesVerifier/intrinsiclevel.js +2 -2
  59. package/src/mixins/nodesVerifier/metaLevel.js +2 -2
  60. package/src/premise.js +18 -18
  61. package/src/rule.js +22 -22
  62. package/src/step/metaproof.js +12 -73
  63. package/src/step/proof.js +8 -26
  64. package/src/substitution/metastatementForMetavariable.js +10 -10
  65. package/src/substitution/statementForMetavariable.js +6 -4
  66. package/src/substitution/termForVariable.js +8 -8
  67. package/src/substitution.js +10 -10
  68. package/src/supposition.js +2 -2
  69. package/src/type.js +7 -7
  70. package/src/utilities/match.js +100 -0
  71. package/src/variable.js +11 -11
  72. package/src/verify/containedAssertion.js +76 -27
  73. package/src/verify/definedAssertion.js +90 -41
  74. package/src/verify/frame.js +1 -1
  75. package/src/verify/frameAssertion.js +2 -2
  76. package/src/verify/metaDerivation.js +6 -6
  77. package/src/verify/metaSubDerivation.js +6 -6
  78. package/src/verify/{metaProofStep.js → metaproofStep.js} +60 -19
  79. package/src/verify/metastatement/unqualified.js +3 -7
  80. package/src/verify/metastatement.js +46 -5
  81. package/src/verify/ruleProofStep.js +22 -1
  82. package/src/verify/statement/unqualified.js +2 -2
  83. package/src/verify/statement.js +2 -6
  84. package/lib/utilities/metaproof.js +0 -59
  85. package/lib/utilities/proof.js +0 -59
  86. package/lib/verify/metaProofStep.js +0 -76
  87. package/src/utilities/metaproof.js +0 -53
  88. package/src/utilities/proof.js +0 -53
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
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
+ bracketedMetastatementChildNodeFromMetastatementNode: function() {
13
+ return bracketedMetastatementChildNodeFromMetastatementNode;
14
+ },
15
+ bracketedStatementChildNodeFromStatementNode: function() {
16
+ return bracketedStatementChildNodeFromStatementNode;
17
+ },
18
+ matchMetastatementModuloBrackets: function() {
19
+ return matchMetastatementModuloBrackets;
20
+ },
21
+ matchStatementModuloBrackets: function() {
22
+ return matchStatementModuloBrackets;
23
+ }
24
+ });
25
+ var _bracketed = /*#__PURE__*/ _interop_require_default(require("../node/statement/bracketed"));
26
+ var _bracketed1 = /*#__PURE__*/ _interop_require_default(require("../node/metastatement/bracketed"));
27
+ var _query = require("../utilities/query");
28
+ var _constants = require("../constants");
29
+ function _interop_require_default(obj) {
30
+ return obj && obj.__esModule ? obj : {
31
+ default: obj
32
+ };
33
+ }
34
+ var bracketedStatementChildNodeQuery = (0, _query.nodeQuery)("/statement/metaArgument!/statement!"), bracketedMetastatementChildNodeQuery = (0, _query.nodeQuery)("/metastatement/metastatement!");
35
+ function matchStatementModuloBrackets(statementNodeA, statementNodeB) {
36
+ var statementMatchesModuloBrackets = false;
37
+ if (!statementMatchesModuloBrackets) {
38
+ var statementNodeAMatchesStatementNodeB = statementNodeA.match(statementNodeB);
39
+ statementMatchesModuloBrackets = statementNodeAMatchesStatementNodeB; ///
40
+ }
41
+ if (!statementMatchesModuloBrackets) {
42
+ var bracketedStatementChildNodeA = bracketedStatementChildNodeFromStatementNode(statementNodeA);
43
+ if (bracketedStatementChildNodeA !== null) {
44
+ var bracketedStatementChildNodeAMatchStatementNodeB = bracketedStatementChildNodeA.match(statementNodeB);
45
+ statementMatchesModuloBrackets = bracketedStatementChildNodeAMatchStatementNodeB; ///
46
+ }
47
+ }
48
+ if (!statementMatchesModuloBrackets) {
49
+ var bracketedStatementChildNodeB = bracketedStatementChildNodeFromStatementNode(statementNodeB);
50
+ if (bracketedStatementChildNodeB !== null) {
51
+ var statementNodeAMatchBracketedStatementChildNodeB = statementNodeA.match(bracketedStatementChildNodeB);
52
+ statementMatchesModuloBrackets = statementNodeAMatchBracketedStatementChildNodeB; ///
53
+ }
54
+ }
55
+ return statementMatchesModuloBrackets;
56
+ }
57
+ function matchMetastatementModuloBrackets(metastatementNodeA, metastatementNodeB) {
58
+ var metastatementMatches = false;
59
+ if (!metastatementMatches) {
60
+ var metastatementNodeMatches = metastatementNodeA.match(metastatementNodeB);
61
+ metastatementMatches = metastatementNodeMatches; ///
62
+ }
63
+ if (!metastatementMatches) {
64
+ var bracketedMetastatementChildNodeA = bracketedMetastatementChildNodeFromMetastatementNode(metastatementNodeA);
65
+ if (bracketedMetastatementChildNodeA !== null) {
66
+ var bracketedMetastatementChildNodeAMatchesMetastatementNodeB = bracketedMetastatementChildNodeA.match(metastatementNodeB);
67
+ metastatementMatches = bracketedMetastatementChildNodeAMatchesMetastatementNodeB; ///
68
+ }
69
+ }
70
+ if (!metastatementMatches) {
71
+ var bracketedMetastatementChildNodeB = bracketedMetastatementChildNodeFromMetastatementNode(metastatementNodeB);
72
+ if (bracketedMetastatementChildNodeB !== null) {
73
+ var metastatementNodeAMatchesBracketedMetastatementChildNodeB = metastatementNodeA.match(bracketedMetastatementChildNodeB);
74
+ metastatementMatches = metastatementNodeAMatchesBracketedMetastatementChildNodeB; ///
75
+ }
76
+ }
77
+ return metastatementMatches;
78
+ }
79
+ function bracketedStatementChildNodeFromStatementNode(statementNode) {
80
+ var bracketedStatementChildNode = null;
81
+ var depth = _constants.BRACKETED_STATEMENT_DEPTH, statementNodeMatchBracketedStatementNode = statementNode.match(_bracketed.default, depth);
82
+ if (statementNodeMatchBracketedStatementNode) {
83
+ bracketedStatementChildNode = bracketedStatementChildNodeQuery(statementNode);
84
+ }
85
+ return bracketedStatementChildNode;
86
+ }
87
+ function bracketedMetastatementChildNodeFromMetastatementNode(metastatementNode) {
88
+ var bracketedMetastatementChildNode = null;
89
+ var depth = _constants.BRACKETED_METASTATEMENT_DEPTH, metastatementNodeMatchesBracketedMetastatementNode = metastatementNode.match(_bracketed1.default, depth);
90
+ if (metastatementNodeMatchesBracketedMetastatementNode) {
91
+ bracketedMetastatementChildNode = bracketedMetastatementChildNodeQuery(metastatementNode);
92
+ }
93
+ return bracketedMetastatementChildNode;
94
+ }
95
+
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWF0Y2guanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBicmFja2V0ZWRTdGF0ZW1lbnROb2RlIGZyb20gXCIuLi9ub2RlL3N0YXRlbWVudC9icmFja2V0ZWRcIjtcbmltcG9ydCBicmFja2V0ZWRNZXRhc3RhdGVtZW50Tm9kZSBmcm9tIFwiLi4vbm9kZS9tZXRhc3RhdGVtZW50L2JyYWNrZXRlZFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBCUkFDS0VURURfU1RBVEVNRU5UX0RFUFRILCBCUkFDS0VURURfTUVUQVNUQVRFTUVOVF9ERVBUSCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuY29uc3QgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L21ldGFBcmd1bWVudCEvc3RhdGVtZW50IVwiKSxcbiAgICAgIGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhc3RhdGVtZW50L21ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hTdGF0ZW1lbnRNb2R1bG9CcmFja2V0cyhzdGF0ZW1lbnROb2RlQSwgc3RhdGVtZW50Tm9kZUIpIHtcbiAgbGV0IHN0YXRlbWVudE1hdGNoZXNNb2R1bG9CcmFja2V0cyA9IGZhbHNlO1xuXG4gIGlmICghc3RhdGVtZW50TWF0Y2hlc01vZHVsb0JyYWNrZXRzKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZUFNYXRjaGVzU3RhdGVtZW50Tm9kZUIgPSBzdGF0ZW1lbnROb2RlQS5tYXRjaChzdGF0ZW1lbnROb2RlQik7XG5cbiAgICBzdGF0ZW1lbnRNYXRjaGVzTW9kdWxvQnJhY2tldHMgPSBzdGF0ZW1lbnROb2RlQU1hdGNoZXNTdGF0ZW1lbnROb2RlQjsgIC8vL1xuICB9XG5cbiAgaWYgKCFzdGF0ZW1lbnRNYXRjaGVzTW9kdWxvQnJhY2tldHMpIHtcbiAgICBjb25zdCBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVBID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZUEpO1xuXG4gICAgaWYgKGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUEgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUFNYXRjaFN0YXRlbWVudE5vZGVCID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlQS5tYXRjaChzdGF0ZW1lbnROb2RlQik7XG5cbiAgICAgIHN0YXRlbWVudE1hdGNoZXNNb2R1bG9CcmFja2V0cyA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUFNYXRjaFN0YXRlbWVudE5vZGVCOyAvLy9cbiAgICB9XG4gIH1cblxuICBpZiAoIXN0YXRlbWVudE1hdGNoZXNNb2R1bG9CcmFja2V0cykge1xuICAgIGNvbnN0IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUIgPSBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlQik7XG5cbiAgICBpZiAoYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlQiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZUFNYXRjaEJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUIgPSBzdGF0ZW1lbnROb2RlQS5tYXRjaChicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVCKTtcblxuICAgICAgc3RhdGVtZW50TWF0Y2hlc01vZHVsb0JyYWNrZXRzID0gc3RhdGVtZW50Tm9kZUFNYXRjaEJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUI7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRNYXRjaGVzTW9kdWxvQnJhY2tldHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaE1ldGFzdGF0ZW1lbnRNb2R1bG9CcmFja2V0cyhtZXRhc3RhdGVtZW50Tm9kZUEsIG1ldGFzdGF0ZW1lbnROb2RlQikge1xuICBsZXQgbWV0YXN0YXRlbWVudE1hdGNoZXMgPSBmYWxzZTtcblxuICBpZiAoIW1ldGFzdGF0ZW1lbnRNYXRjaGVzKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gbWV0YXN0YXRlbWVudE5vZGVBLm1hdGNoKG1ldGFzdGF0ZW1lbnROb2RlQik7XG5cbiAgICBtZXRhc3RhdGVtZW50TWF0Y2hlcyA9IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlczsgIC8vL1xuICB9XG5cbiAgaWYgKCFtZXRhc3RhdGVtZW50TWF0Y2hlcykge1xuICAgIGNvbnN0IGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVBID0gYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZUZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZUEpO1xuXG4gICAgaWYgKGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVBICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlQU1hdGNoZXNNZXRhc3RhdGVtZW50Tm9kZUIgPSBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlQS5tYXRjaChtZXRhc3RhdGVtZW50Tm9kZUIpO1xuXG4gICAgICBtZXRhc3RhdGVtZW50TWF0Y2hlcyA9IGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVBTWF0Y2hlc01ldGFzdGF0ZW1lbnROb2RlQjsgLy8vXG4gICAgfVxuICB9XG5cbiAgaWYgKCFtZXRhc3RhdGVtZW50TWF0Y2hlcykge1xuICAgIGNvbnN0IGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVCID0gYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZUZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZUIpO1xuXG4gICAgaWYgKGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVCICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZUFNYXRjaGVzQnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZUIgPSBtZXRhc3RhdGVtZW50Tm9kZUEubWF0Y2goYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZUIpO1xuXG4gICAgICBtZXRhc3RhdGVtZW50TWF0Y2hlcyA9IG1ldGFzdGF0ZW1lbnROb2RlQU1hdGNoZXNCcmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlQjsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGFzdGF0ZW1lbnRNYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSkge1xuICBsZXQgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gbnVsbDtcblxuICBjb25zdCBkZXB0aCA9IEJSQUNLRVRFRF9TVEFURU1FTlRfREVQVEgsXG4gICAgICAgIHN0YXRlbWVudE5vZGVNYXRjaEJyYWNrZXRlZFN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlLm1hdGNoKGJyYWNrZXRlZFN0YXRlbWVudE5vZGUsIGRlcHRoKTtcblxuICBpZiAoc3RhdGVtZW50Tm9kZU1hdGNoQnJhY2tldGVkU3RhdGVtZW50Tm9kZSkge1xuICAgIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSA9IGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVGcm9tTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgbGV0IGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUgPSBudWxsO1xuXG4gIGNvbnN0IGRlcHRoID0gQlJBQ0tFVEVEX01FVEFTVEFURU1FTlRfREVQVEgsXG4gICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlc0JyYWNrZXRlZE1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGUubWF0Y2goYnJhY2tldGVkTWV0YXN0YXRlbWVudE5vZGUsIGRlcHRoKTtcblxuICBpZiAobWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzQnJhY2tldGVkTWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZVF1ZXJ5KG1ldGFzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlO1xufVxuIl0sIm5hbWVzIjpbImJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVGcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVGcm9tU3RhdGVtZW50Tm9kZSIsIm1hdGNoTWV0YXN0YXRlbWVudE1vZHVsb0JyYWNrZXRzIiwibWF0Y2hTdGF0ZW1lbnRNb2R1bG9CcmFja2V0cyIsImJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZUEiLCJzdGF0ZW1lbnROb2RlQiIsInN0YXRlbWVudE1hdGNoZXNNb2R1bG9CcmFja2V0cyIsInN0YXRlbWVudE5vZGVBTWF0Y2hlc1N0YXRlbWVudE5vZGVCIiwibWF0Y2giLCJicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVBIiwiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlQU1hdGNoU3RhdGVtZW50Tm9kZUIiLCJicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVCIiwic3RhdGVtZW50Tm9kZUFNYXRjaEJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZUIiLCJtZXRhc3RhdGVtZW50Tm9kZUEiLCJtZXRhc3RhdGVtZW50Tm9kZUIiLCJtZXRhc3RhdGVtZW50TWF0Y2hlcyIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsImJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVBIiwiYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZUFNYXRjaGVzTWV0YXN0YXRlbWVudE5vZGVCIiwiYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZUIiLCJtZXRhc3RhdGVtZW50Tm9kZUFNYXRjaGVzQnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZUIiLCJzdGF0ZW1lbnROb2RlIiwiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlIiwiZGVwdGgiLCJCUkFDS0VURURfU1RBVEVNRU5UX0RFUFRIIiwic3RhdGVtZW50Tm9kZU1hdGNoQnJhY2tldGVkU3RhdGVtZW50Tm9kZSIsImJyYWNrZXRlZFN0YXRlbWVudE5vZGUiLCJtZXRhc3RhdGVtZW50Tm9kZSIsImJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUiLCJCUkFDS0VURURfTUVUQVNUQVRFTUVOVF9ERVBUSCIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlc0JyYWNrZXRlZE1ldGFzdGF0ZW1lbnROb2RlIiwiYnJhY2tldGVkTWV0YXN0YXRlbWVudE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXdGZ0JBLG9EQUFvRDtlQUFwREE7O0lBYkFDLDRDQUE0QztlQUE1Q0E7O0lBaENBQyxnQ0FBZ0M7ZUFBaENBOztJQWhDQUMsNEJBQTRCO2VBQTVCQTs7O2dFQVRtQjtpRUFDSTtxQkFFYjt5QkFDK0M7Ozs7OztBQUV6RSxJQUFNQyxtQ0FBbUNDLElBQUFBLGdCQUFTLEVBQUMsd0NBQzdDQyx1Q0FBdUNELElBQUFBLGdCQUFTLEVBQUM7QUFFaEQsU0FBU0YsNkJBQTZCSSxjQUFjLEVBQUVDLGNBQWM7SUFDekUsSUFBSUMsaUNBQWlDO0lBRXJDLElBQUksQ0FBQ0EsZ0NBQWdDO1FBQ25DLElBQU1DLHNDQUFzQ0gsZUFBZUksS0FBSyxDQUFDSDtRQUVqRUMsaUNBQWlDQyxxQ0FBc0MsR0FBRztJQUM1RTtJQUVBLElBQUksQ0FBQ0QsZ0NBQWdDO1FBQ25DLElBQU1HLCtCQUErQlgsNkNBQTZDTTtRQUVsRixJQUFJSyxpQ0FBaUMsTUFBTTtZQUN6QyxJQUFNQyxrREFBa0RELDZCQUE2QkQsS0FBSyxDQUFDSDtZQUUzRkMsaUNBQWlDSSxpREFBaUQsR0FBRztRQUN2RjtJQUNGO0lBRUEsSUFBSSxDQUFDSixnQ0FBZ0M7UUFDbkMsSUFBTUssK0JBQStCYiw2Q0FBNkNPO1FBRWxGLElBQUlNLGlDQUFpQyxNQUFNO1lBQ3pDLElBQU1DLGtEQUFrRFIsZUFBZUksS0FBSyxDQUFDRztZQUU3RUwsaUNBQWlDTSxpREFBaUQsR0FBRztRQUN2RjtJQUNGO0lBRUEsT0FBT047QUFDVDtBQUVPLFNBQVNQLGlDQUFpQ2Msa0JBQWtCLEVBQUVDLGtCQUFrQjtJQUNyRixJQUFJQyx1QkFBdUI7SUFFM0IsSUFBSSxDQUFDQSxzQkFBc0I7UUFDekIsSUFBTUMsMkJBQTJCSCxtQkFBbUJMLEtBQUssQ0FBQ007UUFFMURDLHVCQUF1QkMsMEJBQTJCLEdBQUc7SUFDdkQ7SUFFQSxJQUFJLENBQUNELHNCQUFzQjtRQUN6QixJQUFNRSxtQ0FBbUNwQixxREFBcURnQjtRQUU5RixJQUFJSSxxQ0FBcUMsTUFBTTtZQUM3QyxJQUFNQyw0REFBNERELGlDQUFpQ1QsS0FBSyxDQUFDTTtZQUV6R0MsdUJBQXVCRywyREFBMkQsR0FBRztRQUN2RjtJQUNGO0lBRUEsSUFBSSxDQUFDSCxzQkFBc0I7UUFDekIsSUFBTUksbUNBQW1DdEIscURBQXFEaUI7UUFFOUYsSUFBSUsscUNBQXFDLE1BQU07WUFDN0MsSUFBTUMsNERBQTREUCxtQkFBbUJMLEtBQUssQ0FBQ1c7WUFFM0ZKLHVCQUF1QkssMkRBQTJELEdBQUc7UUFDdkY7SUFDRjtJQUVBLE9BQU9MO0FBQ1Q7QUFFTyxTQUFTakIsNkNBQTZDdUIsYUFBYTtJQUN4RSxJQUFJQyw4QkFBOEI7SUFFbEMsSUFBTUMsUUFBUUMsb0NBQXlCLEVBQ2pDQywyQ0FBMkNKLGNBQWNiLEtBQUssQ0FBQ2tCLGtCQUFzQixFQUFFSDtJQUU3RixJQUFJRSwwQ0FBMEM7UUFDNUNILDhCQUE4QnJCLGlDQUFpQ29CO0lBQ2pFO0lBRUEsT0FBT0M7QUFDVDtBQUVPLFNBQVN6QixxREFBcUQ4QixpQkFBaUI7SUFDcEYsSUFBSUMsa0NBQWtDO0lBRXRDLElBQU1MLFFBQVFNLHdDQUE2QixFQUNyQ0MscURBQXFESCxrQkFBa0JuQixLQUFLLENBQUN1QixtQkFBMEIsRUFBRVI7SUFFL0csSUFBSU8sb0RBQW9EO1FBQ3RERixrQ0FBa0N6QixxQ0FBcUN3QjtJQUN6RTtJQUVBLE9BQU9DO0FBQ1QifQ==
package/lib/variable.js CHANGED
@@ -52,29 +52,29 @@ var Variable = /*#__PURE__*/ function() {
52
52
  {
53
53
  key: "match",
54
54
  value: function match(variable) {
55
- var type = variable.getType(), node = variable.getNode(), typeMatches = this.matchType(type), nodeMatches = this.matchNode(node), matches = nodeMatches && typeMatches;
55
+ var type = variable.getType(), node = variable.getNode(), matchesType = this.matchType(type), matchesNode = this.matchNode(node), matches = matchesNode && matchesType;
56
56
  return matches;
57
57
  }
58
58
  },
59
59
  {
60
60
  key: "matchNode",
61
61
  value: function matchNode(node) {
62
- var nodeMatches = this.node.match(node);
63
- return nodeMatches;
62
+ var matchesNode = this.node.match(node);
63
+ return matchesNode;
64
64
  }
65
65
  },
66
66
  {
67
67
  key: "matchType",
68
68
  value: function matchType(type) {
69
- var typeMatches = this.type.match(type);
70
- return typeMatches;
69
+ var matchesType = this.type.match(type);
70
+ return matchesType;
71
71
  }
72
72
  },
73
73
  {
74
74
  key: "matchNodeAndType",
75
75
  value: function matchNodeAndType(node, type) {
76
- var nodeMatches = this.matchNode(node), typeMatches = this.matchType(type), nodeAndTypeMatch = nodeMatches && typeMatches;
77
- return nodeAndTypeMatch;
76
+ var matchesNode = this.matchNode(node), matchesType = this.matchType(type), matchesNodeAndType = matchesNode && matchesType;
77
+ return matchesNodeAndType;
78
78
  }
79
79
  },
80
80
  {
@@ -129,4 +129,4 @@ var Variable = /*#__PURE__*/ function() {
129
129
  return Variable;
130
130
  }();
131
131
 
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgdHlwZUZyb21KU09OQW5kRmlsZUNvbnRleHQgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWYXJpYWJsZSB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBtYXRjaCh2YXJpYWJsZSkge1xuICAgIGNvbnN0IHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgICB0eXBlTWF0Y2hlcyA9IHRoaXMubWF0Y2hUeXBlKHR5cGUpLFxuICAgICAgICAgIG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgbWF0Y2hlcyA9IG5vZGVNYXRjaGVzICYmIHR5cGVNYXRjaGVzO1xuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE5vZGUobm9kZSkge1xuICAgIGNvbnN0IG5vZGVNYXRjaGVzID0gdGhpcy5ub2RlLm1hdGNoKG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hUeXBlKHR5cGUpIHtcbiAgICBjb25zdCB0eXBlTWF0Y2hlcyA9IHRoaXMudHlwZS5tYXRjaCh0eXBlKTtcblxuICAgIHJldHVybiB0eXBlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTm9kZUFuZFR5cGUobm9kZSwgdHlwZSkge1xuICAgIGNvbnN0IG5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgdHlwZU1hdGNoZXMgPSB0aGlzLm1hdGNoVHlwZSh0eXBlKSxcbiAgICAgICAgICBub2RlQW5kVHlwZU1hdGNoID0gbm9kZU1hdGNoZXMgJiYgdHlwZU1hdGNoZXM7XG5cbiAgICByZXR1cm4gbm9kZUFuZFR5cGVNYXRjaDtcbiAgfVxuXG4gIGFzU3RyaW5nKHRva2Vucykge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gdGhpcy50eXBlLmdldE5hbWUoKTtcblxuICAgIGxldCBzdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5ub2RlLCB0b2tlbnMpO1xuXG4gICAgc3RyaW5nID0gYCR7c3RyaW5nfToke3R5cGVOYW1lfWA7IC8vL1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHRvSlNPTih0b2tlbnMpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHRoaXMudHlwZS50b0pTT04odG9rZW5zKSxcbiAgICAgICAgICBzdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5ub2RlLCB0b2tlbnMpLFxuICAgICAgICAgIG5vZGUgPSBzdHJpbmcsICAvL1xuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHsgbm9kZSB9ID0ganNvbjtcblxuICAgIGNvbnN0IGxleGVyICA9IGZpbGVDb250ZXh0LmdldExleGVyKCksXG4gICAgICAgICAgcGFyc2VyID0gZmlsZUNvbnRleHQuZ2V0UGFyc2VyKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSBub2RlLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlU3RyaW5nKHZhcmlhYmxlU3RyaW5nLCBsZXhlciwgcGFyc2VyKTtcblxuICAgIG5vZGUgPSB2YXJpYWJsZU5vZGU7ICAvLy9cblxuICAgIGxldCB7IHR5cGUgfSA9IGpzb247XG5cbiAgICBqc29uID0gdHlwZTsgIC8vL1xuXG4gICAgdHlwZSA9IHR5cGVGcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIGNvbnN0IHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKG5vZGUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZUFuZFR5cGUodmFyaWFibGUsIHR5cGUpIHtcbiAgICBjb25zdCBub2RlID0gdmFyaWFibGUuZ2V0Tm9kZSgpO1xuXG4gICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUobm9kZSwgdHlwZSk7ICAvLy9cblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSh2YXJpYWJsZU5vZGUsIHR5cGUpIHtcbiAgICBjb25zdCBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUobm9kZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJWYXJpYWJsZSIsIm5vZGUiLCJ0eXBlIiwiZ2V0Tm9kZSIsImdldFR5cGUiLCJtYXRjaCIsInZhcmlhYmxlIiwidHlwZU1hdGNoZXMiLCJtYXRjaFR5cGUiLCJub2RlTWF0Y2hlcyIsIm1hdGNoTm9kZSIsIm1hdGNoZXMiLCJtYXRjaE5vZGVBbmRUeXBlIiwibm9kZUFuZFR5cGVNYXRjaCIsImFzU3RyaW5nIiwidG9rZW5zIiwidHlwZU5hbWUiLCJnZXROYW1lIiwic3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidG9KU09OIiwidHlwZUpTT04iLCJqc29uIiwiZnJvbUpTT05BbmRGaWxlQ29udGV4dCIsImZpbGVDb250ZXh0IiwibGV4ZXIiLCJnZXRMZXhlciIsInBhcnNlciIsImdldFBhcnNlciIsInZhcmlhYmxlU3RyaW5nIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlU3RyaW5nIiwidHlwZUZyb21KU09OQW5kRmlsZUNvbnRleHQiLCJmcm9tVmFyaWFibGVBbmRUeXBlIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7O3NCQUpRO29CQUNjO29CQUNJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVoQyxJQUFBLEFBQU1BLHlCQUFELEFBQUw7YUFBTUEsU0FDUEMsSUFBSSxFQUFFQyxJQUFJO2dDQURIRjtRQUVqQixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7O2tCQUhLRjs7WUFNbkJHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxRQUFRO2dCQUNaLElBQU1KLE9BQU9JLFNBQVNGLE9BQU8sSUFDdkJILE9BQU9LLFNBQVNILE9BQU8sSUFDdkJJLGNBQWMsSUFBSSxDQUFDQyxTQUFTLENBQUNOLE9BQzdCTyxjQUFjLElBQUksQ0FBQ0MsU0FBUyxDQUFDVCxPQUM3QlUsVUFBVUYsZUFBZUY7Z0JBRS9CLE9BQU9JO1lBQ1Q7OztZQUVBRCxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVVQsSUFBSTtnQkFDWixJQUFNUSxjQUFjLElBQUksQ0FBQ1IsSUFBSSxDQUFDSSxLQUFLLENBQUNKO2dCQUVwQyxPQUFPUTtZQUNUOzs7WUFFQUQsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVOLElBQUk7Z0JBQ1osSUFBTUssY0FBYyxJQUFJLENBQUNMLElBQUksQ0FBQ0csS0FBSyxDQUFDSDtnQkFFcEMsT0FBT0s7WUFDVDs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUJYLElBQUksRUFBRUMsSUFBSTtnQkFDekIsSUFBTU8sY0FBYyxJQUFJLENBQUNDLFNBQVMsQ0FBQ1QsT0FDN0JNLGNBQWMsSUFBSSxDQUFDQyxTQUFTLENBQUNOLE9BQzdCVyxtQkFBbUJKLGVBQWVGO2dCQUV4QyxPQUFPTTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVNDLE1BQU07Z0JBQ2IsSUFBTUMsV0FBVyxJQUFJLENBQUNkLElBQUksQ0FBQ2UsT0FBTztnQkFFbEMsSUFBSUMsU0FBU0MsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNsQixJQUFJLEVBQUVjO2dCQUVyQ0csU0FBUyxBQUFDLEdBQVlGLE9BQVZFLFFBQU8sS0FBWSxPQUFURixXQUFZLEdBQUc7Z0JBRXJDLE9BQU9FO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsT0FBT0wsTUFBTTtnQkFDWCxJQUFNTSxXQUFXLElBQUksQ0FBQ25CLElBQUksQ0FBQ2tCLE1BQU0sQ0FBQ0wsU0FDNUJHLFNBQVNDLElBQUFBLG9CQUFZLEVBQUMsSUFBSSxDQUFDbEIsSUFBSSxFQUFFYyxTQUNqQ2QsT0FBT2lCLFFBQ1BoQixPQUFPbUIsVUFDUEMsT0FBTztvQkFDTHJCLE1BQUFBO29CQUNBQyxNQUFBQTtnQkFDRjtnQkFFTixPQUFPb0I7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSx1QkFBdUJELElBQUksRUFBRUUsV0FBVztnQkFDN0MsSUFBSSxBQUFFdkIsT0FBU3FCLEtBQVRyQjtnQkFFTixJQUFNd0IsUUFBU0QsWUFBWUUsUUFBUSxJQUM3QkMsU0FBU0gsWUFBWUksU0FBUyxJQUM5QkMsaUJBQWlCNUIsTUFDakI2QixlQUFlQyxJQUFBQSxvQ0FBOEIsRUFBQ0YsZ0JBQWdCSixPQUFPRTtnQkFFM0UxQixPQUFPNkIsY0FBZSxHQUFHO2dCQUV6QixJQUFJLEFBQUU1QixPQUFTb0IsS0FBVHBCO2dCQUVOb0IsT0FBT3BCLE1BQU8sR0FBRztnQkFFakJBLE9BQU84QixJQUFBQSxnQ0FBMEIsRUFBQ1YsTUFBTUU7Z0JBRXhDLElBQU1sQixXQUFXLElBbkZBTixTQW1GYUMsTUFBTUM7Z0JBRXBDLE9BQU9JO1lBQ1Q7OztZQUVPMkIsS0FBQUE7bUJBQVAsU0FBT0Esb0JBQW9CM0IsUUFBUSxFQUFFSixJQUFJO2dCQUN2QyxJQUFNRCxPQUFPSyxTQUFTSCxPQUFPO2dCQUU3QkcsV0FBVyxJQTNGTU4sU0EyRk9DLE1BQU1DLE9BQVEsR0FBRztnQkFFekMsT0FBT0k7WUFDVDs7O1lBRU80QixLQUFBQTttQkFBUCxTQUFPQSx3QkFBd0JKLFlBQVksRUFBRTVCLElBQUk7Z0JBQy9DLElBQU1ELE9BQU82QixjQUNQeEIsV0FBVyxJQWxHQU4sU0FrR2FDLE1BQU1DO2dCQUVwQyxPQUFPSTtZQUNUOzs7V0FyR21CTiJ9
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgdHlwZUZyb21KU09OQW5kRmlsZUNvbnRleHQgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWYXJpYWJsZSB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBtYXRjaCh2YXJpYWJsZSkge1xuICAgIGNvbnN0IHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgICBtYXRjaGVzVHlwZSA9IHRoaXMubWF0Y2hUeXBlKHR5cGUpLFxuICAgICAgICAgIG1hdGNoZXNOb2RlID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgbWF0Y2hlcyA9IG1hdGNoZXNOb2RlICYmIG1hdGNoZXNUeXBlO1xuXG4gICAgcmV0dXJuIG1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE5vZGUobm9kZSkge1xuICAgIGNvbnN0IG1hdGNoZXNOb2RlID0gdGhpcy5ub2RlLm1hdGNoKG5vZGUpO1xuXG4gICAgcmV0dXJuIG1hdGNoZXNOb2RlO1xuICB9XG5cbiAgbWF0Y2hUeXBlKHR5cGUpIHtcbiAgICBjb25zdCBtYXRjaGVzVHlwZSA9IHRoaXMudHlwZS5tYXRjaCh0eXBlKTtcblxuICAgIHJldHVybiBtYXRjaGVzVHlwZTtcbiAgfVxuXG4gIG1hdGNoTm9kZUFuZFR5cGUobm9kZSwgdHlwZSkge1xuICAgIGNvbnN0IG1hdGNoZXNOb2RlID0gdGhpcy5tYXRjaE5vZGUobm9kZSksXG4gICAgICAgICAgbWF0Y2hlc1R5cGUgPSB0aGlzLm1hdGNoVHlwZSh0eXBlKSxcbiAgICAgICAgICBtYXRjaGVzTm9kZUFuZFR5cGUgPSBtYXRjaGVzTm9kZSAmJiBtYXRjaGVzVHlwZTtcblxuICAgIHJldHVybiBtYXRjaGVzTm9kZUFuZFR5cGU7XG4gIH1cblxuICBhc1N0cmluZyh0b2tlbnMpIHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IHRoaXMudHlwZS5nZXROYW1lKCk7XG5cbiAgICBsZXQgc3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMubm9kZSwgdG9rZW5zKTtcblxuICAgIHN0cmluZyA9IGAke3N0cmluZ306JHt0eXBlTmFtZX1gOyAvLy9cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICB0b0pTT04odG9rZW5zKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0aGlzLnR5cGUudG9KU09OKHRva2VucyksXG4gICAgICAgICAgc3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMubm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBub2RlID0gc3RyaW5nLCAgLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT05BbmRGaWxlQ29udGV4dChqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCB7IG5vZGUgfSA9IGpzb247XG5cbiAgICBjb25zdCBsZXhlciAgPSBmaWxlQ29udGV4dC5nZXRMZXhlcigpLFxuICAgICAgICAgIHBhcnNlciA9IGZpbGVDb250ZXh0LmdldFBhcnNlcigpLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gbm9kZSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgbGV4ZXIsIHBhcnNlcik7XG5cbiAgICBub2RlID0gdmFyaWFibGVOb2RlOyAgLy8vXG5cbiAgICBsZXQgeyB0eXBlIH0gPSBqc29uO1xuXG4gICAganNvbiA9IHR5cGU7ICAvLy9cblxuICAgIHR5cGUgPSB0eXBlRnJvbUpTT05BbmRGaWxlQ29udGV4dChqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShub2RlLCB0eXBlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVBbmRUeXBlKHZhcmlhYmxlLCB0eXBlKSB7XG4gICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlLmdldE5vZGUoKTtcblxuICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKG5vZGUsIHR5cGUpOyAgLy8vXG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUodmFyaWFibGVOb2RlLCB0eXBlKSB7XG4gICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKG5vZGUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG59XG4iXSwibmFtZXMiOlsiVmFyaWFibGUiLCJub2RlIiwidHlwZSIsImdldE5vZGUiLCJnZXRUeXBlIiwibWF0Y2giLCJ2YXJpYWJsZSIsIm1hdGNoZXNUeXBlIiwibWF0Y2hUeXBlIiwibWF0Y2hlc05vZGUiLCJtYXRjaE5vZGUiLCJtYXRjaGVzIiwibWF0Y2hOb2RlQW5kVHlwZSIsIm1hdGNoZXNOb2RlQW5kVHlwZSIsImFzU3RyaW5nIiwidG9rZW5zIiwidHlwZU5hbWUiLCJnZXROYW1lIiwic3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidG9KU09OIiwidHlwZUpTT04iLCJqc29uIiwiZnJvbUpTT05BbmRGaWxlQ29udGV4dCIsImZpbGVDb250ZXh0IiwibGV4ZXIiLCJnZXRMZXhlciIsInBhcnNlciIsImdldFBhcnNlciIsInZhcmlhYmxlU3RyaW5nIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGVOb2RlRnJvbVZhcmlhYmxlU3RyaW5nIiwidHlwZUZyb21KU09OQW5kRmlsZUNvbnRleHQiLCJmcm9tVmFyaWFibGVBbmRUeXBlIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBTXFCQTs7O3NCQUpRO29CQUNjO29CQUNJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVoQyxJQUFBLEFBQU1BLHlCQUFELEFBQUw7YUFBTUEsU0FDUEMsSUFBSSxFQUFFQyxJQUFJO2dDQURIRjtRQUVqQixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7O2tCQUhLRjs7WUFNbkJHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsSUFBSTtZQUNsQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNQyxRQUFRO2dCQUNaLElBQU1KLE9BQU9JLFNBQVNGLE9BQU8sSUFDdkJILE9BQU9LLFNBQVNILE9BQU8sSUFDdkJJLGNBQWMsSUFBSSxDQUFDQyxTQUFTLENBQUNOLE9BQzdCTyxjQUFjLElBQUksQ0FBQ0MsU0FBUyxDQUFDVCxPQUM3QlUsVUFBVUYsZUFBZUY7Z0JBRS9CLE9BQU9JO1lBQ1Q7OztZQUVBRCxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVVQsSUFBSTtnQkFDWixJQUFNUSxjQUFjLElBQUksQ0FBQ1IsSUFBSSxDQUFDSSxLQUFLLENBQUNKO2dCQUVwQyxPQUFPUTtZQUNUOzs7WUFFQUQsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVOLElBQUk7Z0JBQ1osSUFBTUssY0FBYyxJQUFJLENBQUNMLElBQUksQ0FBQ0csS0FBSyxDQUFDSDtnQkFFcEMsT0FBT0s7WUFDVDs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUJYLElBQUksRUFBRUMsSUFBSTtnQkFDekIsSUFBTU8sY0FBYyxJQUFJLENBQUNDLFNBQVMsQ0FBQ1QsT0FDN0JNLGNBQWMsSUFBSSxDQUFDQyxTQUFTLENBQUNOLE9BQzdCVyxxQkFBcUJKLGVBQWVGO2dCQUUxQyxPQUFPTTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLFNBQVNDLE1BQU07Z0JBQ2IsSUFBTUMsV0FBVyxJQUFJLENBQUNkLElBQUksQ0FBQ2UsT0FBTztnQkFFbEMsSUFBSUMsU0FBU0MsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNsQixJQUFJLEVBQUVjO2dCQUVyQ0csU0FBUyxBQUFDLEdBQVlGLE9BQVZFLFFBQU8sS0FBWSxPQUFURixXQUFZLEdBQUc7Z0JBRXJDLE9BQU9FO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsT0FBT0wsTUFBTTtnQkFDWCxJQUFNTSxXQUFXLElBQUksQ0FBQ25CLElBQUksQ0FBQ2tCLE1BQU0sQ0FBQ0wsU0FDNUJHLFNBQVNDLElBQUFBLG9CQUFZLEVBQUMsSUFBSSxDQUFDbEIsSUFBSSxFQUFFYyxTQUNqQ2QsT0FBT2lCLFFBQ1BoQixPQUFPbUIsVUFDUEMsT0FBTztvQkFDTHJCLE1BQUFBO29CQUNBQyxNQUFBQTtnQkFDRjtnQkFFTixPQUFPb0I7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSx1QkFBdUJELElBQUksRUFBRUUsV0FBVztnQkFDN0MsSUFBSSxBQUFFdkIsT0FBU3FCLEtBQVRyQjtnQkFFTixJQUFNd0IsUUFBU0QsWUFBWUUsUUFBUSxJQUM3QkMsU0FBU0gsWUFBWUksU0FBUyxJQUM5QkMsaUJBQWlCNUIsTUFDakI2QixlQUFlQyxJQUFBQSxvQ0FBOEIsRUFBQ0YsZ0JBQWdCSixPQUFPRTtnQkFFM0UxQixPQUFPNkIsY0FBZSxHQUFHO2dCQUV6QixJQUFJLEFBQUU1QixPQUFTb0IsS0FBVHBCO2dCQUVOb0IsT0FBT3BCLE1BQU8sR0FBRztnQkFFakJBLE9BQU84QixJQUFBQSxnQ0FBMEIsRUFBQ1YsTUFBTUU7Z0JBRXhDLElBQU1sQixXQUFXLElBbkZBTixTQW1GYUMsTUFBTUM7Z0JBRXBDLE9BQU9JO1lBQ1Q7OztZQUVPMkIsS0FBQUE7bUJBQVAsU0FBT0Esb0JBQW9CM0IsUUFBUSxFQUFFSixJQUFJO2dCQUN2QyxJQUFNRCxPQUFPSyxTQUFTSCxPQUFPO2dCQUU3QkcsV0FBVyxJQTNGTU4sU0EyRk9DLE1BQU1DLE9BQVEsR0FBRztnQkFFekMsT0FBT0k7WUFDVDs7O1lBRU80QixLQUFBQTttQkFBUCxTQUFPQSx3QkFBd0JKLFlBQVksRUFBRTVCLElBQUk7Z0JBQy9DLElBQU1ELE9BQU82QixjQUNQeEIsV0FBVyxJQWxHQU4sU0FrR2FDLE1BQU1DO2dCQUVwQyxPQUFPSTtZQUNUOzs7V0FyR21CTiJ9
@@ -11,30 +11,64 @@ Object.defineProperty(exports, "default", {
11
11
  var _verify = require("../utilities/verify");
12
12
  var _query = require("../utilities/query");
13
13
  var variableNodeQuery = (0, _query.nodeQuery)("/containedAssertion/term/variable!"), metastatementVariableNodesQuery = (0, _query.nodesQuery)("/containedAssertion/statement//variable");
14
- function verifyContainedAssertion(containedAssertionNode) {
15
- var containedAssertionVerified = false;
16
- var containedAssertionNegated = (0, _verify.isAssertionNegated)(containedAssertionNode), variableNode = variableNodeQuery(containedAssertionNode), negated = containedAssertionNegated; ///
17
- if (false) {
18
- ///
19
- } else if (variableNode !== null) {
20
- var metastatementVariableNodes = metastatementVariableNodesQuery(containedAssertionNode), variableNodeMatchesMetaArgumentVariableNode = metastatementVariableNodes.some(function(metastatementVariableNode) {
21
- var variableNodeMatchesMetaArgumentVariableNode = variableNode.match(metastatementVariableNode);
22
- if (variableNodeMatchesMetaArgumentVariableNode) {
23
- return true;
14
+ function verifyContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
15
+ var containedAssertionVerified;
16
+ var containedAssertionString = localContext.nodeAsString(containedAssertionNode);
17
+ localContext.trace("Verifying the '".concat(containedAssertionString, "' contained assertion..."), containedAssertionNode);
18
+ var containedAssertionFunctions = [
19
+ verifyDerivedContainedAssertion,
20
+ verifyStatedContainedAssertion
21
+ ];
22
+ containedAssertionVerified = containedAssertionFunctions.some(function(containedAssertionFunction) {
23
+ var containedAssertionVerified = containedAssertionFunction(containedAssertionNode, assignments, derived, localContext);
24
+ if (containedAssertionVerified) {
25
+ return true;
26
+ }
27
+ });
28
+ if (containedAssertionVerified) {
29
+ localContext.debug("...verified the '".concat(containedAssertionString, "' contained assertion."), containedAssertionNode);
30
+ }
31
+ return containedAssertionVerified;
32
+ }
33
+ function verifyDerivedContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
34
+ var derivedContainedAssertionVerified = false;
35
+ if (derived) {
36
+ var containedAssertionString = localContext.nodeAsString(containedAssertionNode);
37
+ localContext.trace("Verifying the derived '".concat(containedAssertionString, "' contained assertion..."), containedAssertionNode);
38
+ var containedAssertionNegated = (0, _verify.isAssertionNegated)(containedAssertionNode), variableNode = variableNodeQuery(containedAssertionNode), negated = containedAssertionNegated; ///
39
+ if (false) {
40
+ ///
41
+ } else if (variableNode !== null) {
42
+ var metastatementVariableNodes = metastatementVariableNodesQuery(containedAssertionNode), variableNodeMatchesMetaArgumentVariableNode = metastatementVariableNodes.some(function(metastatementVariableNode) {
43
+ var variableNodeMatchesMetaArgumentVariableNode = variableNode.match(metastatementVariableNode);
44
+ if (variableNodeMatchesMetaArgumentVariableNode) {
45
+ return true;
46
+ }
47
+ });
48
+ if (!negated) {
49
+ if (variableNodeMatchesMetaArgumentVariableNode) {
50
+ derivedContainedAssertionVerified = true;
51
+ }
24
52
  }
25
- });
26
- if (!negated) {
27
- if (variableNodeMatchesMetaArgumentVariableNode) {
28
- containedAssertionVerified = true;
53
+ if (negated) {
54
+ if (!variableNodeMatchesMetaArgumentVariableNode) {
55
+ derivedContainedAssertionVerified = true;
56
+ }
29
57
  }
30
58
  }
31
- if (negated) {
32
- if (!variableNodeMatchesMetaArgumentVariableNode) {
33
- containedAssertionVerified = true;
34
- }
59
+ if (derivedContainedAssertionVerified) {
60
+ localContext.debug("...verified the derived '".concat(containedAssertionString, "' contained assertion."), containedAssertionNode);
35
61
  }
36
62
  }
37
- return containedAssertionVerified;
63
+ return derivedContainedAssertionVerified;
64
+ }
65
+ function verifyStatedContainedAssertion(containedAssertionNode, assignments, derived, localContext) {
66
+ var derivedStatedAssertionVerified = false;
67
+ if (!derived) {
68
+ var containedAssertionString = localContext.nodeAsString(containedAssertionNode);
69
+ localContext.debug("The stated '".concat(containedAssertionString, "' contained assertion cannot be verified."), containedAssertionNode);
70
+ }
71
+ return derivedStatedAssertionVerified;
38
72
  }
39
73
 
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29udGFpbmVkQXNzZXJ0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBpc0Fzc2VydGlvbk5lZ2F0ZWQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZlcmlmeVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb250YWluZWRBc3NlcnRpb24vdGVybS92YXJpYWJsZSFcIiksXG4gICAgICBtZXRhc3RhdGVtZW50VmFyaWFibGVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9jb250YWluZWRBc3NlcnRpb24vc3RhdGVtZW50Ly92YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpIHtcbiAgbGV0IGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uTmVnYXRlZCA9IGlzQXNzZXJ0aW9uTmVnYXRlZChjb250YWluZWRBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgIG5lZ2F0ZWQgPSBjb250YWluZWRBc3NlcnRpb25OZWdhdGVkOyAgLy8vXG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZXMgPSBtZXRhc3RhdGVtZW50VmFyaWFibGVOb2Rlc1F1ZXJ5KGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUgPSBtZXRhc3RhdGVtZW50VmFyaWFibGVOb2Rlcy5zb21lKChtZXRhc3RhdGVtZW50VmFyaWFibGVOb2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlLm1hdGNoKG1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICBpZiAodmFyaWFibGVOb2RlTWF0Y2hlc01ldGFBcmd1bWVudFZhcmlhYmxlTm9kZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgIGlmICghbmVnYXRlZCkge1xuICAgICAgaWYgKHZhcmlhYmxlTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuZWdhdGVkKSB7XG4gICAgICBpZiAoIXZhcmlhYmxlTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlDb250YWluZWRBc3NlcnRpb24iLCJ2YXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkIiwiY29udGFpbmVkQXNzZXJ0aW9uTmVnYXRlZCIsImlzQXNzZXJ0aW9uTmVnYXRlZCIsInZhcmlhYmxlTm9kZSIsIm5lZ2F0ZWQiLCJtZXRhc3RhdGVtZW50VmFyaWFibGVOb2RlcyIsInZhcmlhYmxlTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUiLCJzb21lIiwibWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZSIsIm1hdGNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQXdCQTs7O3NCQU5XO3FCQUNHO0FBRXRDLElBQU1DLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyx1Q0FDOUJDLGtDQUFrQ0MsSUFBQUEsaUJBQVUsRUFBQztBQUVwQyxTQUFTSix5QkFBeUJLLHNCQUFzQjtJQUNyRSxJQUFJQyw2QkFBNkI7SUFFakMsSUFBTUMsNEJBQTRCQyxJQUFBQSwwQkFBa0IsRUFBQ0gseUJBQy9DSSxlQUFlUixrQkFBa0JJLHlCQUNqQ0ssVUFBVUgsMkJBQTRCLEdBQUc7SUFFL0MsSUFBSSxPQUFPO0lBQ1QsR0FBRztJQUNMLE9BQU8sSUFBSUUsaUJBQWlCLE1BQU07UUFDaEMsSUFBTUUsNkJBQTZCUixnQ0FBZ0NFLHlCQUM3RE8sOENBQThDRCwyQkFBMkJFLElBQUksQ0FBQyxTQUFDQztZQUM3RSxJQUFNRiw4Q0FBOENILGFBQWFNLEtBQUssQ0FBQ0Q7WUFFdkUsSUFBSUYsNkNBQTZDO2dCQUMvQyxPQUFPO1lBQ1Q7UUFDRjtRQUVOLElBQUksQ0FBQ0YsU0FBUztZQUNaLElBQUlFLDZDQUE2QztnQkFDL0NOLDZCQUE2QjtZQUMvQjtRQUNGO1FBRUEsSUFBSUksU0FBUztZQUNYLElBQUksQ0FBQ0UsNkNBQTZDO2dCQUNoRE4sNkJBQTZCO1lBQy9CO1FBQ0Y7SUFDRjtJQUVBLE9BQU9BO0FBQ1QifQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvY29udGFpbmVkQXNzZXJ0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBpc0Fzc2VydGlvbk5lZ2F0ZWQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZlcmlmeVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb250YWluZWRBc3NlcnRpb24vdGVybS92YXJpYWJsZSFcIiksXG4gICAgICBtZXRhc3RhdGVtZW50VmFyaWFibGVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9jb250YWluZWRBc3NlcnRpb24vc3RhdGVtZW50Ly92YXJpYWJsZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGNvbnRhaW5lZCBhc3NlcnRpb24uLi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcblxuICBjb25zdCBjb250YWluZWRBc3NlcnRpb25GdW5jdGlvbnMgPSBbXG4gICAgdmVyaWZ5RGVyaXZlZENvbnRhaW5lZEFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZWRDb250YWluZWRBc3NlcnRpb25cbiAgXTtcblxuICBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IGNvbnRhaW5lZEFzc2VydGlvbkZ1bmN0aW9ucy5zb21lKChjb250YWluZWRBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkID0gY29udGFpbmVkQXNzZXJ0aW9uRnVuY3Rpb24oY29udGFpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGNvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7Y29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nfScgY29udGFpbmVkIGFzc2VydGlvbi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiBjb250YWluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZENvbnRhaW5lZEFzc2VydGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgZGVyaXZlZCAnJHtjb250YWluZWRBc3NlcnRpb25TdHJpbmd9JyBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBjb250YWluZWRBc3NlcnRpb25OZWdhdGVkID0gaXNBc3NlcnRpb25OZWdhdGVkKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZVF1ZXJ5KGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgIG5lZ2F0ZWQgPSBjb250YWluZWRBc3NlcnRpb25OZWdhdGVkOyAgLy8vXG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhc3RhdGVtZW50VmFyaWFibGVOb2RlcyA9IG1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGVzUXVlcnkoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgICB2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlID0gbWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZXMuc29tZSgobWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlLm1hdGNoKG1ldGFzdGF0ZW1lbnRWYXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAoIW5lZ2F0ZWQpIHtcbiAgICAgICAgaWYgKHZhcmlhYmxlTm9kZU1hdGNoZXNNZXRhQXJndW1lbnRWYXJpYWJsZU5vZGUpIHtcbiAgICAgICAgICBkZXJpdmVkQ29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZWdhdGVkKSB7XG4gICAgICAgIGlmICghdmFyaWFibGVOb2RlTWF0Y2hlc01ldGFBcmd1bWVudFZhcmlhYmxlTm9kZSkge1xuICAgICAgICAgIGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGVyaXZlZENvbnRhaW5lZEFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBkZXJpdmVkICcke2NvbnRhaW5lZEFzc2VydGlvblN0cmluZ30nIGNvbnRhaW5lZCBhc3NlcnRpb24uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVkQ29udGFpbmVkQXNzZXJ0aW9uKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRTdGF0ZWRBc3NlcnRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmICghZGVyaXZlZCkge1xuICAgIGNvbnN0IGNvbnRhaW5lZEFzc2VydGlvblN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQuZGVidWcoYFRoZSBzdGF0ZWQgJyR7Y29udGFpbmVkQXNzZXJ0aW9uU3RyaW5nfScgY29udGFpbmVkIGFzc2VydGlvbiBjYW5ub3QgYmUgdmVyaWZpZWQuYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFN0YXRlZEFzc2VydGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbiIsInZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJjb250YWluZWRBc3NlcnRpb25Ob2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0IiwiY29udGFpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJjb250YWluZWRBc3NlcnRpb25TdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsImNvbnRhaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWRDb250YWluZWRBc3NlcnRpb24iLCJ2ZXJpZnlTdGF0ZWRDb250YWluZWRBc3NlcnRpb24iLCJzb21lIiwiY29udGFpbmVkQXNzZXJ0aW9uRnVuY3Rpb24iLCJkZWJ1ZyIsImRlcml2ZWRDb250YWluZWRBc3NlcnRpb25WZXJpZmllZCIsImNvbnRhaW5lZEFzc2VydGlvbk5lZ2F0ZWQiLCJpc0Fzc2VydGlvbk5lZ2F0ZWQiLCJ2YXJpYWJsZU5vZGUiLCJuZWdhdGVkIiwibWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZXMiLCJ2YXJpYWJsZU5vZGVNYXRjaGVzTWV0YUFyZ3VtZW50VmFyaWFibGVOb2RlIiwibWV0YXN0YXRlbWVudFZhcmlhYmxlTm9kZSIsIm1hdGNoIiwiZGVyaXZlZFN0YXRlZEFzc2VydGlvblZlcmlmaWVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQXdCQTs7O3NCQU5XO3FCQUNHO0FBRXRDLElBQU1DLG9CQUFvQkMsSUFBQUEsZ0JBQVMsRUFBQyx1Q0FDOUJDLGtDQUFrQ0MsSUFBQUEsaUJBQVUsRUFBQztBQUVwQyxTQUFTSix5QkFBeUJLLHNCQUFzQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUN6RyxJQUFJQztJQUVKLElBQU1DLDJCQUEyQkYsYUFBYUcsWUFBWSxDQUFDTjtJQUUzREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQTBDLE9BQXpCRiwwQkFBeUIsNkJBQTJCTDtJQUV6RixJQUFNUSw4QkFBOEI7UUFDbENDO1FBQ0FDO0tBQ0Q7SUFFRE4sNkJBQTZCSSw0QkFBNEJHLElBQUksQ0FBQyxTQUFDQztRQUM3RCxJQUFNUiw2QkFBNkJRLDJCQUEyQlosd0JBQXdCQyxhQUFhQyxTQUFTQztRQUU1RyxJQUFJQyw0QkFBNEI7WUFDOUIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJQSw0QkFBNEI7UUFDOUJELGFBQWFVLEtBQUssQ0FBQyxBQUFDLG9CQUE0QyxPQUF6QlIsMEJBQXlCLDJCQUF5Qkw7SUFDM0Y7SUFFQSxPQUFPSTtBQUNUO0FBRUEsU0FBU0ssZ0NBQWdDVCxzQkFBc0IsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVk7SUFDakcsSUFBSVcsb0NBQW9DO0lBRXhDLElBQUlaLFNBQVM7UUFDWCxJQUFNRywyQkFBMkJGLGFBQWFHLFlBQVksQ0FBQ047UUFFM0RHLGFBQWFJLEtBQUssQ0FBQyxBQUFDLDBCQUFrRCxPQUF6QkYsMEJBQXlCLDZCQUEyQkw7UUFFakcsSUFBTWUsNEJBQTRCQyxJQUFBQSwwQkFBa0IsRUFBQ2hCLHlCQUMvQ2lCLGVBQWVyQixrQkFBa0JJLHlCQUNqQ2tCLFVBQVVILDJCQUE0QixHQUFHO1FBRS9DLElBQUksT0FBTztRQUNULEdBQUc7UUFDTCxPQUFPLElBQUlFLGlCQUFpQixNQUFNO1lBQ2hDLElBQU1FLDZCQUE2QnJCLGdDQUFnQ0UseUJBQzdEb0IsOENBQThDRCwyQkFBMkJSLElBQUksQ0FBQyxTQUFDVTtnQkFDN0UsSUFBTUQsOENBQThDSCxhQUFhSyxLQUFLLENBQUNEO2dCQUV2RSxJQUFJRCw2Q0FBNkM7b0JBQy9DLE9BQU87Z0JBQ1Q7WUFDRjtZQUVOLElBQUksQ0FBQ0YsU0FBUztnQkFDWixJQUFJRSw2Q0FBNkM7b0JBQy9DTixvQ0FBb0M7Z0JBQ3RDO1lBQ0Y7WUFFQSxJQUFJSSxTQUFTO2dCQUNYLElBQUksQ0FBQ0UsNkNBQTZDO29CQUNoRE4sb0NBQW9DO2dCQUN0QztZQUNGO1FBQ0Y7UUFFQSxJQUFJQSxtQ0FBbUM7WUFDckNYLGFBQWFVLEtBQUssQ0FBQyxBQUFDLDRCQUFvRCxPQUF6QlIsMEJBQXlCLDJCQUF5Qkw7UUFDbkc7SUFDRjtJQUVBLE9BQU9jO0FBQ1Q7QUFFQSxTQUFTSiwrQkFBK0JWLHNCQUFzQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUNoRyxJQUFJb0IsaUNBQWlDO0lBRXJDLElBQUksQ0FBQ3JCLFNBQVM7UUFDWixJQUFNRywyQkFBMkJGLGFBQWFHLFlBQVksQ0FBQ047UUFFM0RHLGFBQWFVLEtBQUssQ0FBQyxBQUFDLGVBQXVDLE9BQXpCUiwwQkFBeUIsOENBQTRDTDtJQUN6RztJQUVBLE9BQU91QjtBQUNUIn0=
@@ -18,46 +18,80 @@ function _interop_require_default(obj) {
18
18
  };
19
19
  }
20
20
  var termNodeQuery = (0, _query.nodeQuery)("/definedAssertion/term!"), variableNodeQuery = (0, _query.nodeQuery)("/definedAssertion/term/variable!");
21
- function verifyDefinedAssertion(definedAssertionNode, localContext) {
22
- var definedAssertionVerified = false;
23
- var definedAssertionNegated = (0, _verify.isAssertionNegated)(definedAssertionNode), variableNode = variableNodeQuery(definedAssertionNode), termNode = termNodeQuery(definedAssertionNode), negated = definedAssertionNegated; ///
24
- if (false) {
25
- ///
26
- } else if (variableNode !== null) {
27
- var variable = localContext.findVariableByVariableNode(variableNode);
28
- if (variable !== null) {
29
- var variableDefined = localContext.isVariableDefined(variable);
30
- if (!negated) {
31
- if (variableDefined) {
32
- definedAssertionVerified = true;
21
+ function verifyDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
22
+ var definedAssertionVerified;
23
+ var definedAssertionString = localContext.nodeAsString(definedAssertionNode);
24
+ localContext.trace("Verifying the '".concat(definedAssertionString, "' defined assertion..."), definedAssertionNode);
25
+ var definedAssertionFunctions = [
26
+ verifyDerivedDefinedAssertion,
27
+ verifyStatedDefinedAssertion
28
+ ];
29
+ definedAssertionVerified = definedAssertionFunctions.some(function(definedAssertionFunction) {
30
+ var definedAssertionVerified = definedAssertionFunction(definedAssertionNode, assignments, derived, localContext);
31
+ if (definedAssertionVerified) {
32
+ return true;
33
+ }
34
+ });
35
+ if (definedAssertionVerified) {
36
+ localContext.debug("...verified the '".concat(definedAssertionString, "' defined assertion."), definedAssertionNode);
37
+ }
38
+ return definedAssertionVerified;
39
+ }
40
+ function verifyDerivedDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
41
+ var derivedDefinedAssertionVerified = false;
42
+ if (derived) {
43
+ var definedAssertionString = localContext.nodeAsString(definedAssertionNode);
44
+ localContext.trace("Verifying the derived '".concat(definedAssertionString, "' defined assertion..."), definedAssertionNode);
45
+ var definedAssertionNegated = (0, _verify.isAssertionNegated)(definedAssertionNode), variableNode = variableNodeQuery(definedAssertionNode), termNode = termNodeQuery(definedAssertionNode), negated = definedAssertionNegated; ///
46
+ if (false) {
47
+ ///
48
+ } else if (variableNode !== null) {
49
+ var variable = localContext.findVariableByVariableNode(variableNode);
50
+ if (variable !== null) {
51
+ var variableDefined = localContext.isVariableDefined(variable);
52
+ if (!negated) {
53
+ if (variableDefined) {
54
+ derivedDefinedAssertionVerified = true;
55
+ }
33
56
  }
34
- }
35
- if (negated) {
36
- if (!variableDefined) {
37
- definedAssertionVerified = true;
57
+ if (negated) {
58
+ if (!variableDefined) {
59
+ derivedDefinedAssertionVerified = true;
60
+ }
38
61
  }
39
62
  }
40
- }
41
- } else if (termNode !== null) {
42
- var terms = [], termVerified = (0, _term.default)(termNode, terms, localContext, function() {
43
- var verifiedAhead = true;
44
- return verifiedAhead;
45
- });
46
- if (termVerified) {
47
- var firstTerm = (0, _array.first)(terms), term = firstTerm, termGrounded = localContext.isTermGrounded(term);
48
- if (!negated) {
49
- if (termGrounded) {
50
- definedAssertionVerified = true;
63
+ } else if (termNode !== null) {
64
+ var terms = [], termVerified = (0, _term.default)(termNode, terms, localContext, function() {
65
+ var verifiedAhead = true;
66
+ return verifiedAhead;
67
+ });
68
+ if (termVerified) {
69
+ var firstTerm = (0, _array.first)(terms), term = firstTerm, termGrounded = localContext.isTermGrounded(term);
70
+ if (!negated) {
71
+ if (termGrounded) {
72
+ derivedDefinedAssertionVerified = true;
73
+ }
51
74
  }
52
- }
53
- if (negated) {
54
- if (!termGrounded) {
55
- definedAssertionVerified = true;
75
+ if (negated) {
76
+ if (!termGrounded) {
77
+ derivedDefinedAssertionVerified = true;
78
+ }
56
79
  }
57
80
  }
58
81
  }
82
+ if (derivedDefinedAssertionVerified) {
83
+ localContext.debug("...verified the derived '".concat(definedAssertionString, "' defined assertion."), definedAssertionNode);
84
+ }
59
85
  }
60
- return definedAssertionVerified;
86
+ return derivedDefinedAssertionVerified;
87
+ }
88
+ function verifyStatedDefinedAssertion(definedAssertionNode, assignments, derived, localContext) {
89
+ var derivedStatedAssertionVerified = false;
90
+ if (!derived) {
91
+ var definedAssertionString = localContext.nodeAsString(definedAssertionNode);
92
+ localContext.debug("The stated '".concat(definedAssertionString, "' defined assertion cannot be verified."), definedAssertionNode);
93
+ }
94
+ return derivedStatedAssertionVerified;
61
95
  }
62
96
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVmaW5lZEFzc2VydGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4vdGVybVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGlzQXNzZXJ0aW9uTmVnYXRlZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmVyaWZ5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZGVmaW5lZEFzc2VydGlvbi90ZXJtIVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2RlZmluZWRBc3NlcnRpb24vdGVybS92YXJpYWJsZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeURlZmluZWRBc3NlcnRpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgZGVmaW5lZEFzc2VydGlvbk5lZ2F0ZWQgPSBpc0Fzc2VydGlvbk5lZ2F0ZWQoZGVmaW5lZEFzc2VydGlvbk5vZGUpLFxuICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeShkZWZpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVRdWVyeShkZWZpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgIG5lZ2F0ZWQgPSBkZWZpbmVkQXNzZXJ0aW9uTmVnYXRlZDsgIC8vL1xuXG4gIGlmIChmYWxzZSkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAodmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5lZCA9IGxvY2FsQ29udGV4dC5pc1ZhcmlhYmxlRGVmaW5lZCh2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghbmVnYXRlZCkge1xuICAgICAgICBpZiAodmFyaWFibGVEZWZpbmVkKSB7XG4gICAgICAgICAgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobmVnYXRlZCkge1xuICAgICAgICBpZiAoIXZhcmlhYmxlRGVmaW5lZCkge1xuICAgICAgICAgIGRlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZWxzZSBpZiAodGVybU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgICB9KTtcblxuICAgIGlmICh0ZXJtVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGZpcnN0VGVybSA9IGZpcnN0KHRlcm1zKSxcbiAgICAgICAgICAgIHRlcm0gPSBmaXJzdFRlcm0sIC8vL1xuICAgICAgICAgICAgdGVybUdyb3VuZGVkID0gbG9jYWxDb250ZXh0LmlzVGVybUdyb3VuZGVkKHRlcm0pO1xuXG4gICAgICBpZiAoIW5lZ2F0ZWQpIHtcbiAgICAgICAgaWYgKHRlcm1Hcm91bmRlZCkge1xuICAgICAgICAgIGRlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG5lZ2F0ZWQpIHtcbiAgICAgICAgaWYgKCF0ZXJtR3JvdW5kZWQpIHtcbiAgICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlZmluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uIiwidGVybU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZhcmlhYmxlTm9kZVF1ZXJ5IiwiZGVmaW5lZEFzc2VydGlvbk5vZGUiLCJsb2NhbENvbnRleHQiLCJkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJkZWZpbmVkQXNzZXJ0aW9uTmVnYXRlZCIsImlzQXNzZXJ0aW9uTmVnYXRlZCIsInZhcmlhYmxlTm9kZSIsInRlcm1Ob2RlIiwibmVnYXRlZCIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZURlZmluZWQiLCJpc1ZhcmlhYmxlRGVmaW5lZCIsInRlcm1zIiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFRlcm0iLCJmaXJzdCIsInRlcm0iLCJ0ZXJtR3JvdW5kZWQiLCJpc1Rlcm1Hcm91bmRlZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7OzsyREFURDtxQkFFRDtxQkFDSTtzQkFDUzs7Ozs7O0FBRW5DLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyw0QkFDMUJDLG9CQUFvQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQixTQUFTRix1QkFBdUJJLG9CQUFvQixFQUFFQyxZQUFZO0lBQy9FLElBQUlDLDJCQUEyQjtJQUUvQixJQUFNQywwQkFBMEJDLElBQUFBLDBCQUFrQixFQUFDSix1QkFDN0NLLGVBQWVOLGtCQUFrQkMsdUJBQ2pDTSxXQUFXVCxjQUFjRyx1QkFDekJPLFVBQVVKLHlCQUEwQixHQUFHO0lBRTdDLElBQUksT0FBTztJQUNULEdBQUc7SUFDTCxPQUFPLElBQUlFLGlCQUFpQixNQUFNO1FBQ2hDLElBQU1HLFdBQVdQLGFBQWFRLDBCQUEwQixDQUFDSjtRQUV6RCxJQUFJRyxhQUFhLE1BQU07WUFDckIsSUFBTUUsa0JBQWtCVCxhQUFhVSxpQkFBaUIsQ0FBQ0g7WUFFdkQsSUFBSSxDQUFDRCxTQUFTO2dCQUNaLElBQUlHLGlCQUFpQjtvQkFDbkJSLDJCQUEyQjtnQkFDN0I7WUFDRjtZQUVBLElBQUlLLFNBQVM7Z0JBQ1gsSUFBSSxDQUFDRyxpQkFBaUI7b0JBQ3BCUiwyQkFBMkI7Z0JBQzdCO1lBQ0Y7UUFDRjtJQUNGLE9BQU8sSUFBSUksYUFBYSxNQUFNO1FBQzVCLElBQU1NLFFBQVEsRUFBRSxFQUNWQyxlQUFlQyxJQUFBQSxhQUFVLEVBQUNSLFVBQVVNLE9BQU9YLGNBQWM7WUFDdkQsSUFBTWMsZ0JBQWdCO1lBRXRCLE9BQU9BO1FBQ1Q7UUFFTixJQUFJRixjQUFjO1lBQ2hCLElBQU1HLFlBQVlDLElBQUFBLFlBQUssRUFBQ0wsUUFDbEJNLE9BQU9GLFdBQ1BHLGVBQWVsQixhQUFhbUIsY0FBYyxDQUFDRjtZQUVqRCxJQUFJLENBQUNYLFNBQVM7Z0JBQ1osSUFBSVksY0FBYztvQkFDaEJqQiwyQkFBMkI7Z0JBQzdCO1lBQ0Y7WUFFQSxJQUFJSyxTQUFTO2dCQUNYLElBQUksQ0FBQ1ksY0FBYztvQkFDakJqQiwyQkFBMkI7Z0JBQzdCO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBT0E7QUFDVCJ9
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZGVmaW5lZEFzc2VydGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVRlcm0gZnJvbSBcIi4vdGVybVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IGlzQXNzZXJ0aW9uTmVnYXRlZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmVyaWZ5XCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZGVmaW5lZEFzc2VydGlvbi90ZXJtIVwiKSxcbiAgICAgIHZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2RlZmluZWRBc3NlcnRpb24vdGVybS92YXJpYWJsZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeURlZmluZWRBc3NlcnRpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZDtcblxuICBjb25zdCBkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2RlZmluZWRBc3NlcnRpb25TdHJpbmd9JyBkZWZpbmVkIGFzc2VydGlvbi4uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICBjb25zdCBkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeURlcml2ZWREZWZpbmVkQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlZERlZmluZWRBc3NlcnRpb25cbiAgXTtcblxuICBkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSBkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb25zLnNvbWUoKGRlZmluZWRBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IGRlZmluZWRBc3NlcnRpb25GdW5jdGlvbihkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAoZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nfScgZGVmaW5lZCBhc3NlcnRpb24uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlZmluZWRBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZERlZmluZWRBc3NlcnRpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSBkZXJpdmVkICcke2RlZmluZWRBc3NlcnRpb25TdHJpbmd9JyBkZWZpbmVkIGFzc2VydGlvbi4uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25OZWdhdGVkID0gaXNBc3NlcnRpb25OZWdhdGVkKGRlZmluZWRBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVRdWVyeShkZWZpbmVkQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KGRlZmluZWRBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICBuZWdhdGVkID0gZGVmaW5lZEFzc2VydGlvbk5lZ2F0ZWQ7ICAvLy9cblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gbG9jYWxDb250ZXh0LmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSk7XG5cbiAgICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB2YXJpYWJsZURlZmluZWQgPSBsb2NhbENvbnRleHQuaXNWYXJpYWJsZURlZmluZWQodmFyaWFibGUpO1xuXG4gICAgICAgIGlmICghbmVnYXRlZCkge1xuICAgICAgICAgIGlmICh2YXJpYWJsZURlZmluZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKCF2YXJpYWJsZURlZmluZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGVybU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgIGlmICh0ZXJtVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgZmlyc3RUZXJtID0gZmlyc3QodGVybXMpLFxuICAgICAgICAgICAgICB0ZXJtID0gZmlyc3RUZXJtLCAvLy9cbiAgICAgICAgICAgICAgdGVybUdyb3VuZGVkID0gbG9jYWxDb250ZXh0LmlzVGVybUdyb3VuZGVkKHRlcm0pO1xuXG4gICAgICAgIGlmICghbmVnYXRlZCkge1xuICAgICAgICAgIGlmICh0ZXJtR3JvdW5kZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZWdhdGVkKSB7XG4gICAgICAgICAgaWYgKCF0ZXJtR3JvdW5kZWQpIHtcbiAgICAgICAgICAgIGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZXJpdmVkRGVmaW5lZEFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSBkZXJpdmVkICcke2RlZmluZWRBc3NlcnRpb25TdHJpbmd9JyBkZWZpbmVkIGFzc2VydGlvbi5gLCBkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZERlZmluZWRBc3NlcnRpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRTdGF0ZWRBc3NlcnRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmICghZGVyaXZlZCkge1xuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgVGhlIHN0YXRlZCAnJHtkZWZpbmVkQXNzZXJ0aW9uU3RyaW5nfScgZGVmaW5lZCBhc3NlcnRpb24gY2Fubm90IGJlIHZlcmlmaWVkLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkU3RhdGVkQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RGVmaW5lZEFzc2VydGlvbiIsInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZU5vZGVRdWVyeSIsImRlZmluZWRBc3NlcnRpb25Ob2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0IiwiZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkIiwiZGVmaW5lZEFzc2VydGlvblN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwiZGVmaW5lZEFzc2VydGlvbkZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWREZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVkRGVmaW5lZEFzc2VydGlvbiIsInNvbWUiLCJkZWZpbmVkQXNzZXJ0aW9uRnVuY3Rpb24iLCJkZWJ1ZyIsImRlcml2ZWREZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQiLCJkZWZpbmVkQXNzZXJ0aW9uTmVnYXRlZCIsImlzQXNzZXJ0aW9uTmVnYXRlZCIsInZhcmlhYmxlTm9kZSIsInRlcm1Ob2RlIiwibmVnYXRlZCIsInZhcmlhYmxlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZURlZmluZWQiLCJpc1ZhcmlhYmxlRGVmaW5lZCIsInRlcm1zIiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFRlcm0iLCJmaXJzdCIsInRlcm0iLCJ0ZXJtR3JvdW5kZWQiLCJpc1Rlcm1Hcm91bmRlZCIsImRlcml2ZWRTdGF0ZWRBc3NlcnRpb25WZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7OzsyREFURDtxQkFFRDtxQkFDSTtzQkFDUzs7Ozs7O0FBRW5DLElBQU1DLGdCQUFnQkMsSUFBQUEsZ0JBQVMsRUFBQyw0QkFDMUJDLG9CQUFvQkQsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQixTQUFTRix1QkFBdUJJLG9CQUFvQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUNyRyxJQUFJQztJQUVKLElBQU1DLHlCQUF5QkYsYUFBYUcsWUFBWSxDQUFDTjtJQUV6REcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQXdDLE9BQXZCRix3QkFBdUIsMkJBQXlCTDtJQUVyRixJQUFNUSw0QkFBNEI7UUFDaENDO1FBQ0FDO0tBQ0Q7SUFFRE4sMkJBQTJCSSwwQkFBMEJHLElBQUksQ0FBQyxTQUFDQztRQUN6RCxJQUFNUiwyQkFBMkJRLHlCQUF5Qlosc0JBQXNCQyxhQUFhQyxTQUFTQztRQUV0RyxJQUFJQywwQkFBMEI7WUFDNUIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJQSwwQkFBMEI7UUFDNUJELGFBQWFVLEtBQUssQ0FBQyxBQUFDLG9CQUEwQyxPQUF2QlIsd0JBQXVCLHlCQUF1Qkw7SUFDdkY7SUFFQSxPQUFPSTtBQUNUO0FBRUEsU0FBU0ssOEJBQThCVCxvQkFBb0IsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVk7SUFDN0YsSUFBSVcsa0NBQWtDO0lBRXRDLElBQUlaLFNBQVM7UUFDWCxJQUFNRyx5QkFBeUJGLGFBQWFHLFlBQVksQ0FBQ047UUFFekRHLGFBQWFJLEtBQUssQ0FBQyxBQUFDLDBCQUFnRCxPQUF2QkYsd0JBQXVCLDJCQUF5Qkw7UUFFN0YsSUFBTWUsMEJBQTBCQyxJQUFBQSwwQkFBa0IsRUFBQ2hCLHVCQUM3Q2lCLGVBQWVsQixrQkFBa0JDLHVCQUNqQ2tCLFdBQVdyQixjQUFjRyx1QkFDekJtQixVQUFVSix5QkFBMEIsR0FBRztRQUU3QyxJQUFJLE9BQU87UUFDVCxHQUFHO1FBQ0wsT0FBTyxJQUFJRSxpQkFBaUIsTUFBTTtZQUNoQyxJQUFNRyxXQUFXakIsYUFBYWtCLDBCQUEwQixDQUFDSjtZQUV6RCxJQUFJRyxhQUFhLE1BQU07Z0JBQ3JCLElBQU1FLGtCQUFrQm5CLGFBQWFvQixpQkFBaUIsQ0FBQ0g7Z0JBRXZELElBQUksQ0FBQ0QsU0FBUztvQkFDWixJQUFJRyxpQkFBaUI7d0JBQ25CUixrQ0FBa0M7b0JBQ3BDO2dCQUNGO2dCQUVBLElBQUlLLFNBQVM7b0JBQ1gsSUFBSSxDQUFDRyxpQkFBaUI7d0JBQ3BCUixrQ0FBa0M7b0JBQ3BDO2dCQUNGO1lBQ0Y7UUFDRixPQUFPLElBQUlJLGFBQWEsTUFBTTtZQUM1QixJQUFNTSxRQUFRLEVBQUUsRUFDVkMsZUFBZUMsSUFBQUEsYUFBVSxFQUFDUixVQUFVTSxPQUFPckIsY0FBYztnQkFDdkQsSUFBTXdCLGdCQUFnQjtnQkFFdEIsT0FBT0E7WUFDVDtZQUVOLElBQUlGLGNBQWM7Z0JBQ2hCLElBQU1HLFlBQVlDLElBQUFBLFlBQUssRUFBQ0wsUUFDbEJNLE9BQU9GLFdBQ1BHLGVBQWU1QixhQUFhNkIsY0FBYyxDQUFDRjtnQkFFakQsSUFBSSxDQUFDWCxTQUFTO29CQUNaLElBQUlZLGNBQWM7d0JBQ2hCakIsa0NBQWtDO29CQUNwQztnQkFDRjtnQkFFQSxJQUFJSyxTQUFTO29CQUNYLElBQUksQ0FBQ1ksY0FBYzt3QkFDakJqQixrQ0FBa0M7b0JBQ3BDO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBLElBQUlBLGlDQUFpQztZQUNuQ1gsYUFBYVUsS0FBSyxDQUFDLEFBQUMsNEJBQWtELE9BQXZCUix3QkFBdUIseUJBQXVCTDtRQUMvRjtJQUNGO0lBRUEsT0FBT2M7QUFDVDtBQUVBLFNBQVNKLDZCQUE2QlYsb0JBQW9CLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQzVGLElBQUk4QixpQ0FBaUM7SUFFckMsSUFBSSxDQUFDL0IsU0FBUztRQUNaLElBQU1HLHlCQUF5QkYsYUFBYUcsWUFBWSxDQUFDTjtRQUV6REcsYUFBYVUsS0FBSyxDQUFDLEFBQUMsZUFBcUMsT0FBdkJSLHdCQUF1Qiw0Q0FBMENMO0lBQ3JHO0lBRUEsT0FBT2lDO0FBQ1QifQ==
@@ -19,7 +19,7 @@ function _interop_require_default(obj) {
19
19
  };
20
20
  }
21
21
  var declarationNodesQuery = (0, _query.nodesQuery)("/frame/declaration"), metavariableNodesQuery = (0, _query.nodesQuery)("/frame/metavariable");
22
- function verifyFrame(frameNode, frames, derived, localMetaContext) {
22
+ function verifyFrame(frameNode, frames, assignments, derived, localMetaContext) {
23
23
  var frameVerified;
24
24
  var frameString = localMetaContext.nodeAsString(frameNode);
25
25
  localMetaContext.trace("Verifying the '".concat(frameString, "' frame..."), frameNode);
@@ -72,4 +72,4 @@ function verifyMetavariable(metavariableNode, declarations, localMetaContext) {
72
72
  return metavariableVerified;
73
73
  }
74
74
 
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZnJhbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vZnJhbWVcIjtcbmltcG9ydCBmcmFtZU1ldGFUeXBlIGZyb20gXCIuLi9tZXRhVHlwZS9mcmFtZVwiO1xuaW1wb3J0IHZlcmlmeURlY2xhcmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVjbGFyYXRpb25cIjtcblxuaW1wb3J0IHsgcHVzaCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGRlY2xhcmF0aW9uTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZnJhbWUvZGVjbGFyYXRpb25cIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9mcmFtZS9tZXRhdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUZyYW1lKGZyYW1lTm9kZSwgZnJhbWVzLCBkZXJpdmVkLCBsb2NhbE1ldGFDb250ZXh0KSB7XG4gIGxldCBmcmFtZVZlcmlmaWVkO1xuXG4gIGNvbnN0IGZyYW1lU3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcoZnJhbWVOb2RlKTtcblxuICBsb2NhbE1ldGFDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUuLi5gLCBmcmFtZU5vZGUpO1xuXG4gIGNvbnN0IGRlY2xhcmF0aW9ucyA9IFtdLFxuICAgICAgICBkZWNsYXJhdGlvbk5vZGVzID0gZGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5KGZyYW1lTm9kZSksXG4gICAgICAgIGRlY2xhcmF0aW9uc1ZlcmlmaWVkID0gZGVjbGFyYXRpb25Ob2Rlcy5ldmVyeSgoZGVjbGFyYXRpb25Ob2RlKSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVjbGFyYXRpb25WZXJpZmllZCA9IHZlcmlmeURlY2xhcmF0aW9uKGRlY2xhcmF0aW9uTm9kZSwgZGVjbGFyYXRpb25zLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgICAgIHJldHVybiBkZWNsYXJhdGlvblZlcmlmaWVkO1xuICAgICAgICB9KTtcblxuICBpZiAoZGVjbGFyYXRpb25zVmVyaWZpZWQpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlcyA9IG1ldGF2YXJpYWJsZU5vZGVzUXVlcnkoZnJhbWVOb2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVzVmVyaWZpZWQgPSBtZXRhdmFyaWFibGVOb2Rlcy5ldmVyeSgobWV0YXZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgZGVjbGFyYXRpb25zLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgICAgICAgcmV0dXJuIG1ldGF2YXJpYWJsZVZlcmlmaWVkO1xuICAgICAgICAgIH0pO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZXNWZXJpZmllZCkge1xuICAgICAgY29uc3QgZnJhbWUgPSBGcmFtZS5mcm9tRGVjbGFyYXRpb25zKGRlY2xhcmF0aW9ucyk7XG5cbiAgICAgIGZyYW1lcy5wdXNoKGZyYW1lKTtcblxuICAgICAgZnJhbWVWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKGZyYW1lVmVyaWZpZWQpIHtcbiAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVTdHJpbmd9JyBmcmFtZS5gLCBmcmFtZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGZyYW1lVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGVOb2RlLCBkZWNsYXJhdGlvbnMsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgbG9jYWxNZXRhQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuLi5gLCBtZXRhdmFyaWFibGVOb2RlKTtcblxuICBjb25zdCBtZXRhdmFyaWFibGUgPSBsb2NhbE1ldGFDb250ZXh0LmZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1ldGFUeXBlID0gbWV0YXZhcmlhYmxlLmdldE1ldGFUeXBlKCk7XG5cbiAgICBpZiAobWV0YVR5cGUgPT09IGZyYW1lTWV0YVR5cGUpIHtcbiAgICAgIGNvbnN0IGZyYW1lQXNzZXJ0aW9uID0gbG9jYWxNZXRhQ29udGV4dC5maW5kRnJhbWVBc3NlcnRpb25CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgIGlmIChmcmFtZUFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmcmFtZUFzc2VydGlvbkRlY2xhcmF0aW9ucyA9IGZyYW1lQXNzZXJ0aW9uLmdldERlY2xhcmF0aW9ucygpO1xuXG4gICAgICAgIHB1c2goZGVjbGFyYXRpb25zLCBmcmFtZUFzc2VydGlvbkRlY2xhcmF0aW9ucyk7XG5cbiAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgVGhlcmUgaXMgbm8gZnJhbWUgYXNzZXJ0aW9uIGZvciB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmcmFtZU1ldGFUeXBlTmFtZSA9IGZyYW1lTWV0YVR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgbWV0YVR5cGVTdHJpbmcgPSBtZXRhVHlwZS5hc1N0cmluZygpO1xuXG4gICAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGBUaGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlJ3MgbWV0YS10eXBlIGlzICcke21ldGFUeXBlU3RyaW5nfScgd2hlbiBpdCBzaG91bGQgYmUgJyR7ZnJhbWVNZXRhVHlwZU5hbWV9Jy5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgVGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSBpcyBub3QgcHJlc2VudCcuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVZlcmlmaWVkO1xufSJdLCJuYW1lcyI6WyJ2ZXJpZnlGcmFtZSIsImRlY2xhcmF0aW9uTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJtZXRhdmFyaWFibGVOb2Rlc1F1ZXJ5IiwiZnJhbWVOb2RlIiwiZnJhbWVzIiwiZGVyaXZlZCIsImxvY2FsTWV0YUNvbnRleHQiLCJmcmFtZVZlcmlmaWVkIiwiZnJhbWVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsImRlY2xhcmF0aW9ucyIsImRlY2xhcmF0aW9uTm9kZXMiLCJkZWNsYXJhdGlvbnNWZXJpZmllZCIsImV2ZXJ5IiwiZGVjbGFyYXRpb25Ob2RlIiwiZGVjbGFyYXRpb25WZXJpZmllZCIsInZlcmlmeURlY2xhcmF0aW9uIiwibWV0YXZhcmlhYmxlTm9kZXMiLCJtZXRhdmFyaWFibGVzVmVyaWZpZWQiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhdmFyaWFibGUiLCJmcmFtZSIsIkZyYW1lIiwiZnJvbURlY2xhcmF0aW9ucyIsInB1c2giLCJkZWJ1ZyIsIm1ldGF2YXJpYWJsZVN0cmluZyIsIm1ldGF2YXJpYWJsZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhVHlwZSIsImdldE1ldGFUeXBlIiwiZnJhbWVNZXRhVHlwZSIsImZyYW1lQXNzZXJ0aW9uIiwiZmluZEZyYW1lQXNzZXJ0aW9uQnlNZXRhdmFyaWFibGVOb2RlIiwiZnJhbWVBc3NlcnRpb25EZWNsYXJhdGlvbnMiLCJnZXREZWNsYXJhdGlvbnMiLCJmcmFtZU1ldGFUeXBlTmFtZSIsImdldE5hbWUiLCJtZXRhVHlwZVN0cmluZyIsImFzU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXdCQTs7OzREQVZOOzZEQUNRO2tFQUNJO3FCQUVUO3FCQUNNOzs7Ozs7QUFFM0IsSUFBTUMsd0JBQXdCQyxJQUFBQSxpQkFBVSxFQUFDLHVCQUNuQ0MseUJBQXlCRCxJQUFBQSxpQkFBVSxFQUFDO0FBRTNCLFNBQVNGLFlBQVlJLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLGdCQUFnQjtJQUM5RSxJQUFJQztJQUVKLElBQU1DLGNBQWNGLGlCQUFpQkcsWUFBWSxDQUFDTjtJQUVsREcsaUJBQWlCSSxLQUFLLENBQUMsQUFBQyxrQkFBNkIsT0FBWkYsYUFBWSxlQUFhTDtJQUVsRSxJQUFNUSxlQUFlLEVBQUUsRUFDakJDLG1CQUFtQlosc0JBQXNCRyxZQUN6Q1UsdUJBQXVCRCxpQkFBaUJFLEtBQUssQ0FBQyxTQUFDQztRQUM3QyxJQUFNQyxzQkFBc0JDLElBQUFBLG9CQUFpQixFQUFDRixpQkFBaUJKLGNBQWNMO1FBRTdFLE9BQU9VO0lBQ1Q7SUFFTixJQUFJSCxzQkFBc0I7UUFDeEIsSUFBTUssb0JBQW9CaEIsdUJBQXVCQyxZQUMzQ2dCLHdCQUF3QkQsa0JBQWtCSixLQUFLLENBQUMsU0FBQ007WUFDL0MsSUFBTUMsdUJBQXVCQyxtQkFBbUJGLGtCQUFrQlQsY0FBY0w7WUFFaEYsT0FBT2U7UUFDVDtRQUVOLElBQUlGLHVCQUF1QjtZQUN6QixJQUFNSSxRQUFRQyxjQUFLLENBQUNDLGdCQUFnQixDQUFDZDtZQUVyQ1AsT0FBT3NCLElBQUksQ0FBQ0g7WUFFWmhCLGdCQUFnQjtRQUNsQjtJQUNGO0lBRUEsSUFBSUEsZUFBZTtRQUNqQkQsaUJBQWlCcUIsS0FBSyxDQUFDLEFBQUMsb0JBQStCLE9BQVpuQixhQUFZLGFBQVdMO0lBQ3BFO0lBRUEsT0FBT0k7QUFDVDtBQUVBLFNBQVNlLG1CQUFtQkYsZ0JBQWdCLEVBQUVULFlBQVksRUFBRUwsZ0JBQWdCO0lBQzFFLElBQUllLHVCQUF1QjtJQUUzQixJQUFNTyxxQkFBcUJ0QixpQkFBaUJHLFlBQVksQ0FBQ1c7SUFFekRkLGlCQUFpQkksS0FBSyxDQUFDLEFBQUMsa0JBQW9DLE9BQW5Ca0Isb0JBQW1CLHNCQUFvQlI7SUFFaEYsSUFBTVMsZUFBZXZCLGlCQUFpQndCLGtDQUFrQyxDQUFDVixrQkFBa0JkO0lBRTNGLElBQUl1QixpQkFBaUIsTUFBTTtRQUN6QixJQUFNRSxXQUFXRixhQUFhRyxXQUFXO1FBRXpDLElBQUlELGFBQWFFLGVBQWEsRUFBRTtZQUM5QixJQUFNQyxpQkFBaUI1QixpQkFBaUI2QixvQ0FBb0MsQ0FBQ2Y7WUFFN0UsSUFBSWMsbUJBQW1CLE1BQU07Z0JBQzNCLElBQU1FLDZCQUE2QkYsZUFBZUcsZUFBZTtnQkFFakVYLElBQUFBLFdBQUksRUFBQ2YsY0FBY3lCO2dCQUVuQmYsdUJBQXVCO1lBQ3pCLE9BQU87Z0JBQ0xmLGlCQUFpQnFCLEtBQUssQ0FBQyxBQUFDLHdDQUEwRCxPQUFuQkMsb0JBQW1CLG9CQUFrQlI7WUFDdEc7UUFDRixPQUFPO1lBQ0wsSUFBTWtCLG9CQUFvQkwsZUFBYSxDQUFDTSxPQUFPLElBQ3pDQyxpQkFBaUJULFNBQVNVLFFBQVE7WUFFeENuQyxpQkFBaUJxQixLQUFLLENBQUMsQUFBQyxRQUEyRGEsT0FBcERaLG9CQUFtQixtQ0FBdUVVLE9BQXRDRSxnQkFBZSx5QkFBeUMsT0FBbEJGLG1CQUFrQixPQUFLbEI7UUFDbEo7SUFDRixPQUFPO1FBQ0xkLGlCQUFpQnFCLEtBQUssQ0FBQyxBQUFDLFFBQTBCLE9BQW5CQyxvQkFBbUIsb0NBQWtDUjtJQUN0RjtJQUVBLElBQUlDLHNCQUFzQjtRQUN4QmYsaUJBQWlCcUIsS0FBSyxDQUFDLEFBQUMsb0JBQXNDLE9BQW5CQyxvQkFBbUIsb0JBQWtCUjtJQUNsRjtJQUVBLE9BQU9DO0FBQ1QifQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZnJhbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGcmFtZSBmcm9tIFwiLi4vZnJhbWVcIjtcbmltcG9ydCBmcmFtZU1ldGFUeXBlIGZyb20gXCIuLi9tZXRhVHlwZS9mcmFtZVwiO1xuaW1wb3J0IHZlcmlmeURlY2xhcmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVjbGFyYXRpb25cIjtcblxuaW1wb3J0IHsgcHVzaCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGRlY2xhcmF0aW9uTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvZnJhbWUvZGVjbGFyYXRpb25cIiksXG4gICAgICBtZXRhdmFyaWFibGVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9mcmFtZS9tZXRhdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeUZyYW1lKGZyYW1lTm9kZSwgZnJhbWVzLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgZnJhbWVWZXJpZmllZDtcblxuICBjb25zdCBmcmFtZVN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKGZyYW1lTm9kZSk7XG5cbiAgbG9jYWxNZXRhQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtmcmFtZVN0cmluZ30nIGZyYW1lLi4uYCwgZnJhbWVOb2RlKTtcblxuICBjb25zdCBkZWNsYXJhdGlvbnMgPSBbXSxcbiAgICAgICAgZGVjbGFyYXRpb25Ob2RlcyA9IGRlY2xhcmF0aW9uTm9kZXNRdWVyeShmcmFtZU5vZGUpLFxuICAgICAgICBkZWNsYXJhdGlvbnNWZXJpZmllZCA9IGRlY2xhcmF0aW9uTm9kZXMuZXZlcnkoKGRlY2xhcmF0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uVmVyaWZpZWQgPSB2ZXJpZnlEZWNsYXJhdGlvbihkZWNsYXJhdGlvbk5vZGUsIGRlY2xhcmF0aW9ucywgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgICAgICByZXR1cm4gZGVjbGFyYXRpb25WZXJpZmllZDtcbiAgICAgICAgfSk7XG5cbiAgaWYgKGRlY2xhcmF0aW9uc1ZlcmlmaWVkKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZXMgPSBtZXRhdmFyaWFibGVOb2Rlc1F1ZXJ5KGZyYW1lTm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlc1ZlcmlmaWVkID0gbWV0YXZhcmlhYmxlTm9kZXMuZXZlcnkoKG1ldGF2YXJpYWJsZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gdmVyaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZU5vZGUsIGRlY2xhcmF0aW9ucywgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgICAgICAgIHJldHVybiBtZXRhdmFyaWFibGVWZXJpZmllZDtcbiAgICAgICAgICB9KTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVzVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGZyYW1lID0gRnJhbWUuZnJvbURlY2xhcmF0aW9ucyhkZWNsYXJhdGlvbnMpO1xuXG4gICAgICBmcmFtZXMucHVzaChmcmFtZSk7XG5cbiAgICAgIGZyYW1lVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChmcmFtZVZlcmlmaWVkKSB7XG4gICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2ZyYW1lU3RyaW5nfScgZnJhbWUuYCwgZnJhbWVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgZGVjbGFyYXRpb25zLCBsb2NhbE1ldGFDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGxvY2FsTWV0YUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlID0gbG9jYWxNZXRhQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhVHlwZSA9IG1ldGF2YXJpYWJsZS5nZXRNZXRhVHlwZSgpO1xuXG4gICAgaWYgKG1ldGFUeXBlID09PSBmcmFtZU1ldGFUeXBlKSB7XG4gICAgICBjb25zdCBmcmFtZUFzc2VydGlvbiA9IGxvY2FsTWV0YUNvbnRleHQuZmluZEZyYW1lQXNzZXJ0aW9uQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICBpZiAoZnJhbWVBc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZnJhbWVBc3NlcnRpb25EZWNsYXJhdGlvbnMgPSBmcmFtZUFzc2VydGlvbi5nZXREZWNsYXJhdGlvbnMoKTtcblxuICAgICAgICBwdXNoKGRlY2xhcmF0aW9ucywgZnJhbWVBc3NlcnRpb25EZWNsYXJhdGlvbnMpO1xuXG4gICAgICAgIG1ldGF2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvY2FsTWV0YUNvbnRleHQuZGVidWcoYFRoZXJlIGlzIG5vIGZyYW1lIGFzc2VydGlvbiBmb3IgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZnJhbWVNZXRhVHlwZU5hbWUgPSBmcmFtZU1ldGFUeXBlLmdldE5hbWUoKSxcbiAgICAgICAgICAgIG1ldGFUeXBlU3RyaW5nID0gbWV0YVR5cGUuYXNTdHJpbmcoKTtcblxuICAgICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgVGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSdzIG1ldGEtdHlwZSBpcyAnJHttZXRhVHlwZVN0cmluZ30nIHdoZW4gaXQgc2hvdWxkIGJlICcke2ZyYW1lTWV0YVR5cGVOYW1lfScuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGxvY2FsTWV0YUNvbnRleHQuZGVidWcoYFRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUgaXMgbm90IHByZXNlbnQnLmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuICB9XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVZlcmlmaWVkKSB7XG4gICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIHJldHVybiBtZXRhdmFyaWFibGVWZXJpZmllZDtcbn0iXSwibmFtZXMiOlsidmVyaWZ5RnJhbWUiLCJkZWNsYXJhdGlvbk5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZXNRdWVyeSIsImZyYW1lTm9kZSIsImZyYW1lcyIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsTWV0YUNvbnRleHQiLCJmcmFtZVZlcmlmaWVkIiwiZnJhbWVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsImRlY2xhcmF0aW9ucyIsImRlY2xhcmF0aW9uTm9kZXMiLCJkZWNsYXJhdGlvbnNWZXJpZmllZCIsImV2ZXJ5IiwiZGVjbGFyYXRpb25Ob2RlIiwiZGVjbGFyYXRpb25WZXJpZmllZCIsInZlcmlmeURlY2xhcmF0aW9uIiwibWV0YXZhcmlhYmxlTm9kZXMiLCJtZXRhdmFyaWFibGVzVmVyaWZpZWQiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhdmFyaWFibGUiLCJmcmFtZSIsIkZyYW1lIiwiZnJvbURlY2xhcmF0aW9ucyIsInB1c2giLCJkZWJ1ZyIsIm1ldGF2YXJpYWJsZVN0cmluZyIsIm1ldGF2YXJpYWJsZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhVHlwZSIsImdldE1ldGFUeXBlIiwiZnJhbWVNZXRhVHlwZSIsImZyYW1lQXNzZXJ0aW9uIiwiZmluZEZyYW1lQXNzZXJ0aW9uQnlNZXRhdmFyaWFibGVOb2RlIiwiZnJhbWVBc3NlcnRpb25EZWNsYXJhdGlvbnMiLCJnZXREZWNsYXJhdGlvbnMiLCJmcmFtZU1ldGFUeXBlTmFtZSIsImdldE5hbWUiLCJtZXRhVHlwZVN0cmluZyIsImFzU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXdCQTs7OzREQVZOOzZEQUNRO2tFQUNJO3FCQUVUO3FCQUNNOzs7Ozs7QUFFM0IsSUFBTUMsd0JBQXdCQyxJQUFBQSxpQkFBVSxFQUFDLHVCQUNuQ0MseUJBQXlCRCxJQUFBQSxpQkFBVSxFQUFDO0FBRTNCLFNBQVNGLFlBQVlJLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsZ0JBQWdCO0lBQzNGLElBQUlDO0lBRUosSUFBTUMsY0FBY0YsaUJBQWlCRyxZQUFZLENBQUNQO0lBRWxESSxpQkFBaUJJLEtBQUssQ0FBQyxBQUFDLGtCQUE2QixPQUFaRixhQUFZLGVBQWFOO0lBRWxFLElBQU1TLGVBQWUsRUFBRSxFQUNqQkMsbUJBQW1CYixzQkFBc0JHLFlBQ3pDVyx1QkFBdUJELGlCQUFpQkUsS0FBSyxDQUFDLFNBQUNDO1FBQzdDLElBQU1DLHNCQUFzQkMsSUFBQUEsb0JBQWlCLEVBQUNGLGlCQUFpQkosY0FBY0w7UUFFN0UsT0FBT1U7SUFDVDtJQUVOLElBQUlILHNCQUFzQjtRQUN4QixJQUFNSyxvQkFBb0JqQix1QkFBdUJDLFlBQzNDaUIsd0JBQXdCRCxrQkFBa0JKLEtBQUssQ0FBQyxTQUFDTTtZQUMvQyxJQUFNQyx1QkFBdUJDLG1CQUFtQkYsa0JBQWtCVCxjQUFjTDtZQUVoRixPQUFPZTtRQUNUO1FBRU4sSUFBSUYsdUJBQXVCO1lBQ3pCLElBQU1JLFFBQVFDLGNBQUssQ0FBQ0MsZ0JBQWdCLENBQUNkO1lBRXJDUixPQUFPdUIsSUFBSSxDQUFDSDtZQUVaaEIsZ0JBQWdCO1FBQ2xCO0lBQ0Y7SUFFQSxJQUFJQSxlQUFlO1FBQ2pCRCxpQkFBaUJxQixLQUFLLENBQUMsQUFBQyxvQkFBK0IsT0FBWm5CLGFBQVksYUFBV047SUFDcEU7SUFFQSxPQUFPSztBQUNUO0FBRUEsU0FBU2UsbUJBQW1CRixnQkFBZ0IsRUFBRVQsWUFBWSxFQUFFTCxnQkFBZ0I7SUFDMUUsSUFBSWUsdUJBQXVCO0lBRTNCLElBQU1PLHFCQUFxQnRCLGlCQUFpQkcsWUFBWSxDQUFDVztJQUV6RGQsaUJBQWlCSSxLQUFLLENBQUMsQUFBQyxrQkFBb0MsT0FBbkJrQixvQkFBbUIsc0JBQW9CUjtJQUVoRixJQUFNUyxlQUFldkIsaUJBQWlCd0Isa0NBQWtDLENBQUNWLGtCQUFrQmQ7SUFFM0YsSUFBSXVCLGlCQUFpQixNQUFNO1FBQ3pCLElBQU1FLFdBQVdGLGFBQWFHLFdBQVc7UUFFekMsSUFBSUQsYUFBYUUsZUFBYSxFQUFFO1lBQzlCLElBQU1DLGlCQUFpQjVCLGlCQUFpQjZCLG9DQUFvQyxDQUFDZjtZQUU3RSxJQUFJYyxtQkFBbUIsTUFBTTtnQkFDM0IsSUFBTUUsNkJBQTZCRixlQUFlRyxlQUFlO2dCQUVqRVgsSUFBQUEsV0FBSSxFQUFDZixjQUFjeUI7Z0JBRW5CZix1QkFBdUI7WUFDekIsT0FBTztnQkFDTGYsaUJBQWlCcUIsS0FBSyxDQUFDLEFBQUMsd0NBQTBELE9BQW5CQyxvQkFBbUIsb0JBQWtCUjtZQUN0RztRQUNGLE9BQU87WUFDTCxJQUFNa0Isb0JBQW9CTCxlQUFhLENBQUNNLE9BQU8sSUFDekNDLGlCQUFpQlQsU0FBU1UsUUFBUTtZQUV4Q25DLGlCQUFpQnFCLEtBQUssQ0FBQyxBQUFDLFFBQTJEYSxPQUFwRFosb0JBQW1CLG1DQUF1RVUsT0FBdENFLGdCQUFlLHlCQUF5QyxPQUFsQkYsbUJBQWtCLE9BQUtsQjtRQUNsSjtJQUNGLE9BQU87UUFDTGQsaUJBQWlCcUIsS0FBSyxDQUFDLEFBQUMsUUFBMEIsT0FBbkJDLG9CQUFtQixvQ0FBa0NSO0lBQ3RGO0lBRUEsSUFBSUMsc0JBQXNCO1FBQ3hCZixpQkFBaUJxQixLQUFLLENBQUMsQUFBQyxvQkFBc0MsT0FBbkJDLG9CQUFtQixvQkFBa0JSO0lBQ2xGO0lBRUEsT0FBT0M7QUFDVCJ9
@@ -48,7 +48,7 @@ function verifyDerivedFrameAssertion(frameAssertionNode, assignments, derived, l
48
48
  if (metavariableVerified) {
49
49
  var frameAssertion = localMetaContext.findFrameAssertionByMetavariableNode(metavariableNode);
50
50
  if (frameAssertion !== null) {
51
- var frames = [], frameNode = frameNodeQuery(frameAssertionNode), frameVerified = (0, _frame.default)(frameNode, frames, derived, localMetaContext);
51
+ var frames = [], frameNode = frameNodeQuery(frameAssertionNode), frameVerified = (0, _frame.default)(frameNode, frames, assignments, derived, localMetaContext);
52
52
  if (frameVerified) {
53
53
  var firstFrame = (0, _array.first)(frames), frame = firstFrame, frameSingular = frame.isSingular();
54
54
  if (frameSingular) {
@@ -83,7 +83,7 @@ function verifyStatedFrameAssertion(frameAssertionNode, assignments, derived, lo
83
83
  localMetaContext.trace("Verifying the '".concat(frameAssertionString, "' stated frame assertion..."), frameAssertionNode);
84
84
  var metavariableNode = metavariableNodeQuery(frameAssertionNode), metavariableVerified = verifyMetavariable(metavariableNode, localMetaContext);
85
85
  if (metavariableVerified) {
86
- var frames = [], frameNode = frameNodeQuery(frameAssertionNode), frameVerified = (0, _frame.default)(frameNode, frames, derived, localMetaContext);
86
+ var frames = [], frameNode = frameNodeQuery(frameAssertionNode), frameVerified = (0, _frame.default)(frameNode, frames, assignments, derived, localMetaContext);
87
87
  if (frameVerified) {
88
88
  var firstFrame = (0, _array.first)(frames), frame = firstFrame, frameAssertion = _frameAssertion.default.fromFrameAssertionNodeFrameAndMetavariableNode(frameAssertionNode, frame, metavariableNode), frameAssertionAssignment = _frameAssertion1.default.fromFrameAssertion(frameAssertion), assignment = frameAssertionAssignment;
89
89
  assignments.push(assignment);
@@ -118,4 +118,4 @@ function verifyMetavariable(metavariableNode, localMetaContext) {
118
118
  return metavariableVerified;
119
119
  }
120
120
 
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZnJhbWVBc3NlcnRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlGcmFtZSBmcm9tIFwiLi4vdmVyaWZ5L2ZyYW1lXCI7XG5pbXBvcnQgZnJhbWVNZXRhVHlwZSBmcm9tIFwiLi4vbWV0YVR5cGUvZnJhbWVcIjtcbmltcG9ydCBGcmFtZUFzc2VydGlvbiBmcm9tIFwiLi4vZnJhbWVBc3NlcnRpb25cIjtcbmltcG9ydCBGcmFtZUFzc2VydGlvbkFzc2lnbm1lbnQgZnJvbSBcIi4uL2Fzc2lnbm1lbnQvZnJhbWVBc3NlcnRpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGZyYW1lTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lQXNzZXJ0aW9uL2ZyYW1lIVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9mcmFtZUFzc2VydGlvbi9tZXRhdmFyaWFibGUhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlGcmFtZUFzc2VydGlvbihmcmFtZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbE1ldGFDb250ZXh0KSB7XG4gIGxldCBmcmFtZUFzc2VydGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IGZyYW1lQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcoZnJhbWVBc3NlcnRpb25Ob2RlKTtcblxuICBsb2NhbE1ldGFDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ZyYW1lQXNzZXJ0aW9uU3RyaW5nfScgZnJhbWUgYXNzZXJ0aW9uLi4uYCwgZnJhbWVBc3NlcnRpb25Ob2RlKTtcblxuICBjb25zdCB2ZXJpZnlGcmFtZUFzc2VydGlvbkZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlEZXJpdmVkRnJhbWVBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVkRnJhbWVBc3NlcnRpb25cbiAgXTtcblxuICBmcmFtZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5RnJhbWVBc3NlcnRpb25GdW5jdGlvbnMuc29tZSgodmVyaWZ5RnJhbWVBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IGZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlGcmFtZUFzc2VydGlvbkZ1bmN0aW9uKGZyYW1lQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKGZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVBc3NlcnRpb25TdHJpbmd9JyBmcmFtZSBhc3NlcnRpb24uYCwgZnJhbWVBc3NlcnRpb25Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZUFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkRnJhbWVBc3NlcnRpb24oZnJhbWVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgZGVyaXZlZEZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IGZyYW1lQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcoZnJhbWVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsTWV0YUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZnJhbWVBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIGZyYW1lIGFzc2VydGlvbi4uLmAsIGZyYW1lQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KGZyYW1lQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGZyYW1lQXNzZXJ0aW9uID0gbG9jYWxNZXRhQ29udGV4dC5maW5kRnJhbWVBc3NlcnRpb25CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgIGlmIChmcmFtZUFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmcmFtZXMgPSBbXSxcbiAgICAgICAgICAgICAgZnJhbWVOb2RlID0gZnJhbWVOb2RlUXVlcnkoZnJhbWVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgICAgZnJhbWVWZXJpZmllZCA9IHZlcmlmeUZyYW1lKGZyYW1lTm9kZSwgZnJhbWVzLCBkZXJpdmVkLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgICBpZiAoZnJhbWVWZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IGZpcnN0RnJhbWUgPSBmaXJzdChmcmFtZXMpLFxuICAgICAgICAgICAgICAgIGZyYW1lID0gZmlyc3RGcmFtZSwgLy8vXG4gICAgICAgICAgICAgICAgZnJhbWVTaW5ndWxhciA9IGZyYW1lLmlzU2luZ3VsYXIoKTtcblxuICAgICAgICAgIGlmIChmcmFtZVNpbmd1bGFyKSB7XG4gICAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvbiA9IGZyYW1lLmdldERlY2xhcmF0aW9uKCksXG4gICAgICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlID0gZGVjbGFyYXRpb24uZ2V0TWV0YXZhcmlhYmxlTm9kZSgpLFxuICAgICAgICAgICAgICAgICAgbWV0YUxlbW1hID0gbG9jYWxNZXRhQ29udGV4dC5maW5kTWV0YUxlbW1hQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgICAgICAgICAgbWV0YXRoZW9yZW0gPSBsb2NhbE1ldGFDb250ZXh0LmZpbmRNZXRhdGhlb3JlbUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgICAgICAgIG1ldGFMZW1tYU1ldGF0aGVvcmVtID0gKG1ldGFMZW1tYSB8fCBtZXRhdGhlb3JlbSk7ICAvLy9cblxuICAgICAgICAgICAgaWYgKG1ldGFMZW1tYU1ldGF0aGVvcmVtICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uTWF0Y2hlc01ldGFMZW1tYU1ldGF0aGVvcmVtID0gZGVjbGFyYXRpb24ubWF0Y2hNZXRhTGVtbWFPck1ldGFUaGVvcmVtKG1ldGFMZW1tYU1ldGF0aGVvcmVtKSxcbiAgICAgICAgICAgICAgICAgICAgZnJhbWVBc3NlcnRpb25NYXRjaGVzTWV0YUxlbW1hTWV0YXRoZW9yZW0gPSBmcmFtZUFzc2VydGlvbi5tYXRjaE1ldGFMZW1tYU9yTWV0YVRoZW9yZW0obWV0YUxlbW1hTWV0YXRoZW9yZW0pO1xuXG4gICAgICAgICAgICAgIGRlcml2ZWRGcmFtZUFzc2VydGlvblZlcmlmaWVkID0gKGRlY2xhcmF0aW9uTWF0Y2hlc01ldGFMZW1tYU1ldGF0aGVvcmVtICYmIGZyYW1lQXNzZXJ0aW9uTWF0Y2hlc01ldGFMZW1tYU1ldGF0aGVvcmVtKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICAgIGxvY2FsTWV0YUNvbnRleHQuZGVidWcoYFRoZXJlIGFyZSBubyBtZXRhLWxlbW1hcyBvciBtZXRhdGhlb3JlbXMgY29ycmVzcG9uZGluZyB0byB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLmAsIGZyYW1lQXNzZXJ0aW9uTm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGZyYW1lU3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcoZnJhbWVOb2RlKTtcblxuICAgICAgICAgICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgVGhlICcke2ZyYW1lU3RyaW5nfScgaXMgbm90IHNpbmd1bGFyLmAsIGZyYW1lQXNzZXJ0aW9uTm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbE1ldGFDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGBUaGVyZSBpcyBubyBmcmFtZUFzc2VydGlvbiBwcmVzZW50IGZvciB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLmAsIGZyYW1lQXNzZXJ0aW9uTm9kZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRlcml2ZWRGcmFtZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIGZyYW1lIGFzc2VydGlvbi5gLCBmcmFtZUFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkRnJhbWVBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVkRnJhbWVBc3NlcnRpb24oZnJhbWVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgc3RhdGVkRnJhbWVBc3NlcnRpb25WZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmICghZGVyaXZlZCkge1xuICAgIGNvbnN0IGZyYW1lQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcoZnJhbWVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsTWV0YUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZnJhbWVBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgZnJhbWUgYXNzZXJ0aW9uLi4uYCwgZnJhbWVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkoZnJhbWVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZCA9IHZlcmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGVOb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgIGlmIChtZXRhdmFyaWFibGVWZXJpZmllZCkge1xuICAgICAgY29uc3QgZnJhbWVzID0gW10sXG4gICAgICAgICAgICBmcmFtZU5vZGUgPSBmcmFtZU5vZGVRdWVyeShmcmFtZUFzc2VydGlvbk5vZGUpLFxuICAgICAgICAgICAgZnJhbWVWZXJpZmllZCA9IHZlcmlmeUZyYW1lKGZyYW1lTm9kZSwgZnJhbWVzLCBkZXJpdmVkLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgaWYgKGZyYW1lVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgZmlyc3RGcmFtZSA9IGZpcnN0KGZyYW1lcyksXG4gICAgICAgICAgICAgIGZyYW1lID0gZmlyc3RGcmFtZSwgLy8vXG4gICAgICAgICAgICAgIGZyYW1lQXNzZXJ0aW9uID0gRnJhbWVBc3NlcnRpb24uZnJvbUZyYW1lQXNzZXJ0aW9uTm9kZUZyYW1lQW5kTWV0YXZhcmlhYmxlTm9kZShmcmFtZUFzc2VydGlvbk5vZGUsIGZyYW1lLCBtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgICAgZnJhbWVBc3NlcnRpb25Bc3NpZ25tZW50ID0gRnJhbWVBc3NlcnRpb25Bc3NpZ25tZW50LmZyb21GcmFtZUFzc2VydGlvbihmcmFtZUFzc2VydGlvbiksXG4gICAgICAgICAgICAgIGFzc2lnbm1lbnQgPSBmcmFtZUFzc2VydGlvbkFzc2lnbm1lbnQ7XG5cbiAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcblxuICAgICAgICBzdGF0ZWRGcmFtZUFzc2VydGlvblZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVkRnJhbWVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2ZyYW1lQXNzZXJ0aW9uU3RyaW5nfScgc3RhdGVkIGZyYW1lIGFzc2VydGlvbi5gLCBmcmFtZUFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZWRGcmFtZUFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbE1ldGFDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKTtcblxuICBsb2NhbE1ldGFDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS4uLmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZSA9IGxvY2FsTWV0YUNvbnRleHQuZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBsb2NhbE1ldGFDb250ZXh0KTtcblxuICBpZiAobWV0YXZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YVR5cGUgPSBtZXRhdmFyaWFibGUuZ2V0TWV0YVR5cGUoKTtcblxuICAgIGlmIChtZXRhVHlwZSA9PT0gZnJhbWVNZXRhVHlwZSkge1xuICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmcmFtZU1ldGFUeXBlTmFtZSA9IGZyYW1lTWV0YVR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgICAgbWV0YVR5cGVTdHJpbmcgPSBtZXRhVHlwZS5hc1N0cmluZygpO1xuXG4gICAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGBUaGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlJ3MgbWV0YS10eXBlIGlzICcke21ldGFUeXBlU3RyaW5nfScgd2hlbiBpdCBzaG91bGQgYmUgJyR7ZnJhbWVNZXRhVHlwZU5hbWV9Jy5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgVGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZSBpcyBub3QgcHJlc2VudCcuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeUZyYW1lQXNzZXJ0aW9uIiwiZnJhbWVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJmcmFtZUFzc2VydGlvbk5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbE1ldGFDb250ZXh0IiwiZnJhbWVBc3NlcnRpb25WZXJpZmllZCIsImZyYW1lQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ2ZXJpZnlGcmFtZUFzc2VydGlvbkZ1bmN0aW9ucyIsInZlcmlmeURlcml2ZWRGcmFtZUFzc2VydGlvbiIsInZlcmlmeVN0YXRlZEZyYW1lQXNzZXJ0aW9uIiwic29tZSIsInZlcmlmeUZyYW1lQXNzZXJ0aW9uRnVuY3Rpb24iLCJkZWJ1ZyIsImRlcml2ZWRGcmFtZUFzc2VydGlvblZlcmlmaWVkIiwibWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkIiwidmVyaWZ5TWV0YXZhcmlhYmxlIiwiZnJhbWVBc3NlcnRpb24iLCJmaW5kRnJhbWVBc3NlcnRpb25CeU1ldGF2YXJpYWJsZU5vZGUiLCJmcmFtZXMiLCJmcmFtZU5vZGUiLCJmcmFtZVZlcmlmaWVkIiwidmVyaWZ5RnJhbWUiLCJmaXJzdEZyYW1lIiwiZmlyc3QiLCJmcmFtZSIsImZyYW1lU2luZ3VsYXIiLCJpc1Npbmd1bGFyIiwiZGVjbGFyYXRpb24iLCJnZXREZWNsYXJhdGlvbiIsImdldE1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhTGVtbWEiLCJmaW5kTWV0YUxlbW1hQnlNZXRhdmFyaWFibGVOb2RlIiwibWV0YXRoZW9yZW0iLCJmaW5kTWV0YXRoZW9yZW1CeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhTGVtbWFNZXRhdGhlb3JlbSIsImRlY2xhcmF0aW9uTWF0Y2hlc01ldGFMZW1tYU1ldGF0aGVvcmVtIiwibWF0Y2hNZXRhTGVtbWFPck1ldGFUaGVvcmVtIiwiZnJhbWVBc3NlcnRpb25NYXRjaGVzTWV0YUxlbW1hTWV0YXRoZW9yZW0iLCJtZXRhdmFyaWFibGVTdHJpbmciLCJmcmFtZVN0cmluZyIsInN0YXRlZEZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQiLCJGcmFtZUFzc2VydGlvbiIsImZyb21GcmFtZUFzc2VydGlvbk5vZGVGcmFtZUFuZE1ldGF2YXJpYWJsZU5vZGUiLCJmcmFtZUFzc2VydGlvbkFzc2lnbm1lbnQiLCJGcmFtZUFzc2VydGlvbkFzc2lnbm1lbnQiLCJmcm9tRnJhbWVBc3NlcnRpb24iLCJhc3NpZ25tZW50IiwicHVzaCIsIm1ldGF2YXJpYWJsZSIsImZpbmRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhVHlwZSIsImdldE1ldGFUeXBlIiwiZnJhbWVNZXRhVHlwZSIsImZyYW1lTWV0YVR5cGVOYW1lIiwiZ2V0TmFtZSIsIm1ldGFUeXBlU3RyaW5nIiwiYXNTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBd0JBOzs7NERBWEE7NkRBQ0U7cUVBQ0M7c0VBQ1U7cUJBRWY7cUJBQ0k7Ozs7OztBQUUxQixJQUFNQyxpQkFBaUJDLElBQUFBLGdCQUFTLEVBQUMsMkJBQzNCQyx3QkFBd0JELElBQUFBLGdCQUFTLEVBQUM7QUFFekIsU0FBU0YscUJBQXFCSSxrQkFBa0IsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLGdCQUFnQjtJQUNyRyxJQUFJQztJQUVKLElBQU1DLHVCQUF1QkYsaUJBQWlCRyxZQUFZLENBQUNOO0lBRTNERyxpQkFBaUJJLEtBQUssQ0FBQyxBQUFDLGtCQUFzQyxPQUFyQkYsc0JBQXFCLHlCQUF1Qkw7SUFFckYsSUFBTVEsZ0NBQWdDO1FBQ3BDQztRQUNBQztLQUNEO0lBRUROLHlCQUF5QkksOEJBQThCRyxJQUFJLENBQUMsU0FBQ0M7UUFDM0QsSUFBTVIseUJBQXlCUSw2QkFBNkJaLG9CQUFvQkMsYUFBYUMsU0FBU0M7UUFFdEcsSUFBSUMsd0JBQXdCO1lBQzFCLE9BQU87UUFDVDtJQUNGO0lBRUEsSUFBSUEsd0JBQXdCO1FBQzFCRCxpQkFBaUJVLEtBQUssQ0FBQyxBQUFDLG9CQUF3QyxPQUFyQlIsc0JBQXFCLHVCQUFxQkw7SUFDdkY7SUFFQSxPQUFPSTtBQUNUO0FBRUEsU0FBU0ssNEJBQTRCVCxrQkFBa0IsRUFBRUMs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
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZnJhbWVBc3NlcnRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB2ZXJpZnlGcmFtZSBmcm9tIFwiLi4vdmVyaWZ5L2ZyYW1lXCI7XG5pbXBvcnQgZnJhbWVNZXRhVHlwZSBmcm9tIFwiLi4vbWV0YVR5cGUvZnJhbWVcIjtcbmltcG9ydCBGcmFtZUFzc2VydGlvbiBmcm9tIFwiLi4vZnJhbWVBc3NlcnRpb25cIjtcbmltcG9ydCBGcmFtZUFzc2VydGlvbkFzc2lnbm1lbnQgZnJvbSBcIi4uL2Fzc2lnbm1lbnQvZnJhbWVBc3NlcnRpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IGZyYW1lTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2ZyYW1lQXNzZXJ0aW9uL2ZyYW1lIVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9mcmFtZUFzc2VydGlvbi9tZXRhdmFyaWFibGUhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlGcmFtZUFzc2VydGlvbihmcmFtZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbE1ldGFDb250ZXh0KSB7XG4gIGxldCBmcmFtZUFzc2VydGlvblZlcmlmaWVkO1xuXG4gIGNvbnN0IGZyYW1lQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcoZnJhbWVBc3NlcnRpb25Ob2RlKTtcblxuICBsb2NhbE1ldGFDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ZyYW1lQXNzZXJ0aW9uU3RyaW5nfScgZnJhbWUgYXNzZXJ0aW9uLi4uYCwgZnJhbWVBc3NlcnRpb25Ob2RlKTtcblxuICBjb25zdCB2ZXJpZnlGcmFtZUFzc2VydGlvbkZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlEZXJpdmVkRnJhbWVBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVkRnJhbWVBc3NlcnRpb25cbiAgXTtcblxuICBmcmFtZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5RnJhbWVBc3NlcnRpb25GdW5jdGlvbnMuc29tZSgodmVyaWZ5RnJhbWVBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IGZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlGcmFtZUFzc2VydGlvbkZ1bmN0aW9uKGZyYW1lQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKGZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKGZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVBc3NlcnRpb25TdHJpbmd9JyBmcmFtZSBhc3NlcnRpb24uYCwgZnJhbWVBc3NlcnRpb25Ob2RlKTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZUFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlEZXJpdmVkRnJhbWVBc3NlcnRpb24oZnJhbWVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxNZXRhQ29udGV4dCkge1xuICBsZXQgZGVyaXZlZEZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IGZyYW1lQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcoZnJhbWVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsTWV0YUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7ZnJhbWVBc3NlcnRpb25TdHJpbmd9JyBkZXJpdmVkIGZyYW1lIGFzc2VydGlvbi4uLmAsIGZyYW1lQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KGZyYW1lQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGZyYW1lQXNzZXJ0aW9uID0gbG9jYWxNZXRhQ29udGV4dC5maW5kRnJhbWVBc3NlcnRpb25CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgIGlmIChmcmFtZUFzc2VydGlvbiAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBmcmFtZXMgPSBbXSxcbiAgICAgICAgICAgICAgZnJhbWVOb2RlID0gZnJhbWVOb2RlUXVlcnkoZnJhbWVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgICAgZnJhbWVWZXJpZmllZCA9IHZlcmlmeUZyYW1lKGZyYW1lTm9kZSwgZnJhbWVzLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKGZyYW1lVmVyaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCBmaXJzdEZyYW1lID0gZmlyc3QoZnJhbWVzKSxcbiAgICAgICAgICAgICAgICBmcmFtZSA9IGZpcnN0RnJhbWUsIC8vL1xuICAgICAgICAgICAgICAgIGZyYW1lU2luZ3VsYXIgPSBmcmFtZS5pc1Npbmd1bGFyKCk7XG5cbiAgICAgICAgICBpZiAoZnJhbWVTaW5ndWxhcikge1xuICAgICAgICAgICAgY29uc3QgZGVjbGFyYXRpb24gPSBmcmFtZS5nZXREZWNsYXJhdGlvbigpLFxuICAgICAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZSA9IGRlY2xhcmF0aW9uLmdldE1ldGF2YXJpYWJsZU5vZGUoKSxcbiAgICAgICAgICAgICAgICAgIG1ldGFMZW1tYSA9IGxvY2FsTWV0YUNvbnRleHQuZmluZE1ldGFMZW1tYUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgICAgICAgIG1ldGF0aGVvcmVtID0gbG9jYWxNZXRhQ29udGV4dC5maW5kTWV0YXRoZW9yZW1CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgICAgICBtZXRhTGVtbWFNZXRhdGhlb3JlbSA9IChtZXRhTGVtbWEgfHwgbWV0YXRoZW9yZW0pOyAgLy8vXG5cbiAgICAgICAgICAgIGlmIChtZXRhTGVtbWFNZXRhdGhlb3JlbSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBkZWNsYXJhdGlvbk1hdGNoZXNNZXRhTGVtbWFNZXRhdGhlb3JlbSA9IGRlY2xhcmF0aW9uLm1hdGNoTWV0YUxlbW1hT3JNZXRhVGhlb3JlbShtZXRhTGVtbWFNZXRhdGhlb3JlbSksXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lQXNzZXJ0aW9uTWF0Y2hlc01ldGFMZW1tYU1ldGF0aGVvcmVtID0gZnJhbWVBc3NlcnRpb24ubWF0Y2hNZXRhTGVtbWFPck1ldGFUaGVvcmVtKG1ldGFMZW1tYU1ldGF0aGVvcmVtKTtcblxuICAgICAgICAgICAgICBkZXJpdmVkRnJhbWVBc3NlcnRpb25WZXJpZmllZCA9IChkZWNsYXJhdGlvbk1hdGNoZXNNZXRhTGVtbWFNZXRhdGhlb3JlbSAmJiBmcmFtZUFzc2VydGlvbk1hdGNoZXNNZXRhTGVtbWFNZXRhdGhlb3JlbSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbE1ldGFDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgICAgICAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGBUaGVyZSBhcmUgbm8gbWV0YS1sZW1tYXMgb3IgbWV0YXRoZW9yZW1zIGNvcnJlc3BvbmRpbmcgdG8gdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gLCBmcmFtZUFzc2VydGlvbk5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBmcmFtZVN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKGZyYW1lTm9kZSk7XG5cbiAgICAgICAgICAgIGxvY2FsTWV0YUNvbnRleHQuZGVidWcoYFRoZSAnJHtmcmFtZVN0cmluZ30nIGlzIG5vdCBzaW5ndWxhci5gLCBmcmFtZUFzc2VydGlvbk5vZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxNZXRhQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgVGhlcmUgaXMgbm8gZnJhbWVBc3NlcnRpb24gcHJlc2VudCBmb3IgdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIG1ldGF2YXJpYWJsZS5gLCBmcmFtZUFzc2VydGlvbk5vZGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkZXJpdmVkRnJhbWVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgbG9jYWxNZXRhQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2ZyYW1lQXNzZXJ0aW9uU3RyaW5nfScgZGVyaXZlZCBmcmFtZSBhc3NlcnRpb24uYCwgZnJhbWVBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZEZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlZEZyYW1lQXNzZXJ0aW9uKGZyYW1lQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpIHtcbiAgbGV0IHN0YXRlZEZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoIWRlcml2ZWQpIHtcbiAgICBjb25zdCBmcmFtZUFzc2VydGlvblN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKGZyYW1lQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbE1ldGFDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ZyYW1lQXNzZXJ0aW9uU3RyaW5nfScgc3RhdGVkIGZyYW1lIGFzc2VydGlvbi4uLmAsIGZyYW1lQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KGZyYW1lQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB2ZXJpZnlNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlTm9kZSwgbG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGZyYW1lcyA9IFtdLFxuICAgICAgICAgICAgZnJhbWVOb2RlID0gZnJhbWVOb2RlUXVlcnkoZnJhbWVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgIGZyYW1lVmVyaWZpZWQgPSB2ZXJpZnlGcmFtZShmcmFtZU5vZGUsIGZyYW1lcywgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICBpZiAoZnJhbWVWZXJpZmllZCkge1xuICAgICAgICBjb25zdCBmaXJzdEZyYW1lID0gZmlyc3QoZnJhbWVzKSxcbiAgICAgICAgICAgICAgZnJhbWUgPSBmaXJzdEZyYW1lLCAvLy9cbiAgICAgICAgICAgICAgZnJhbWVBc3NlcnRpb24gPSBGcmFtZUFzc2VydGlvbi5mcm9tRnJhbWVBc3NlcnRpb25Ob2RlRnJhbWVBbmRNZXRhdmFyaWFibGVOb2RlKGZyYW1lQXNzZXJ0aW9uTm9kZSwgZnJhbWUsIG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgICAgICBmcmFtZUFzc2VydGlvbkFzc2lnbm1lbnQgPSBGcmFtZUFzc2VydGlvbkFzc2lnbm1lbnQuZnJvbUZyYW1lQXNzZXJ0aW9uKGZyYW1lQXNzZXJ0aW9uKSxcbiAgICAgICAgICAgICAgYXNzaWdubWVudCA9IGZyYW1lQXNzZXJ0aW9uQXNzaWdubWVudDtcblxuICAgICAgICBhc3NpZ25tZW50cy5wdXNoKGFzc2lnbm1lbnQpO1xuXG4gICAgICAgIHN0YXRlZEZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzdGF0ZWRGcmFtZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZnJhbWVBc3NlcnRpb25TdHJpbmd9JyBzdGF0ZWQgZnJhbWUgYXNzZXJ0aW9uLmAsIGZyYW1lQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlZEZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGVOb2RlLCBsb2NhbE1ldGFDb250ZXh0KSB7XG4gIGxldCBtZXRhdmFyaWFibGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsTWV0YUNvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGxvY2FsTWV0YUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlLi4uYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlID0gbG9jYWxNZXRhQ29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUsIGxvY2FsTWV0YUNvbnRleHQpO1xuXG4gIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhVHlwZSA9IG1ldGF2YXJpYWJsZS5nZXRNZXRhVHlwZSgpO1xuXG4gICAgaWYgKG1ldGFUeXBlID09PSBmcmFtZU1ldGFUeXBlKSB7XG4gICAgICBtZXRhdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZyYW1lTWV0YVR5cGVOYW1lID0gZnJhbWVNZXRhVHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgICBtZXRhVHlwZVN0cmluZyA9IG1ldGFUeXBlLmFzU3RyaW5nKCk7XG5cbiAgICAgIGxvY2FsTWV0YUNvbnRleHQuZGVidWcoYFRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUncyBtZXRhLXR5cGUgaXMgJyR7bWV0YVR5cGVTdHJpbmd9JyB3aGVuIGl0IHNob3VsZCBiZSAnJHtmcmFtZU1ldGFUeXBlTmFtZX0nLmAsIG1ldGF2YXJpYWJsZU5vZGUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBsb2NhbE1ldGFDb250ZXh0LmRlYnVnKGBUaGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgbWV0YXZhcmlhYmxlIGlzIG5vdCBwcmVzZW50Jy5gLCBtZXRhdmFyaWFibGVOb2RlKTtcbiAgfVxuXG4gIGlmIChtZXRhdmFyaWFibGVWZXJpZmllZCkge1xuICAgIGxvY2FsTWV0YUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBtZXRhdmFyaWFibGUuYCwgbWV0YXZhcmlhYmxlTm9kZSk7XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5RnJhbWVBc3NlcnRpb24iLCJmcmFtZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGF2YXJpYWJsZU5vZGVRdWVyeSIsImZyYW1lQXNzZXJ0aW9uTm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsTWV0YUNvbnRleHQiLCJmcmFtZUFzc2VydGlvblZlcmlmaWVkIiwiZnJhbWVBc3NlcnRpb25TdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeUZyYW1lQXNzZXJ0aW9uRnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZEZyYW1lQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVkRnJhbWVBc3NlcnRpb24iLCJzb21lIiwidmVyaWZ5RnJhbWVBc3NlcnRpb25GdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZEZyYW1lQXNzZXJ0aW9uVmVyaWZpZWQiLCJtZXRhdmFyaWFibGVOb2RlIiwibWV0YXZhcmlhYmxlVmVyaWZpZWQiLCJ2ZXJpZnlNZXRhdmFyaWFibGUiLCJmcmFtZUFzc2VydGlvbiIsImZpbmRGcmFtZUFzc2VydGlvbkJ5TWV0YXZhcmlhYmxlTm9kZSIsImZyYW1lcyIsImZyYW1lTm9kZSIsImZyYW1lVmVyaWZpZWQiLCJ2ZXJpZnlGcmFtZSIsImZpcnN0RnJhbWUiLCJmaXJzdCIsImZyYW1lIiwiZnJhbWVTaW5ndWxhciIsImlzU2luZ3VsYXIiLCJkZWNsYXJhdGlvbiIsImdldERlY2xhcmF0aW9uIiwiZ2V0TWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFMZW1tYSIsImZpbmRNZXRhTGVtbWFCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdGhlb3JlbSIsImZpbmRNZXRhdGhlb3JlbUJ5TWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFMZW1tYU1ldGF0aGVvcmVtIiwiZGVjbGFyYXRpb25NYXRjaGVzTWV0YUxlbW1hTWV0YXRoZW9yZW0iLCJtYXRjaE1ldGFMZW1tYU9yTWV0YVRoZW9yZW0iLCJmcmFtZUFzc2VydGlvbk1hdGNoZXNNZXRhTGVtbWFNZXRhdGhlb3JlbSIsIm1ldGF2YXJpYWJsZVN0cmluZyIsImZyYW1lU3RyaW5nIiwic3RhdGVkRnJhbWVBc3NlcnRpb25WZXJpZmllZCIsIkZyYW1lQXNzZXJ0aW9uIiwiZnJvbUZyYW1lQXNzZXJ0aW9uTm9kZUZyYW1lQW5kTWV0YXZhcmlhYmxlTm9kZSIsImZyYW1lQXNzZXJ0aW9uQXNzaWdubWVudCIsIkZyYW1lQXNzZXJ0aW9uQXNzaWdubWVudCIsImZyb21GcmFtZUFzc2VydGlvbiIsImFzc2lnbm1lbnQiLCJwdXNoIiwibWV0YXZhcmlhYmxlIiwiZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFUeXBlIiwiZ2V0TWV0YVR5cGUiLCJmcmFtZU1ldGFUeXBlIiwiZnJhbWVNZXRhVHlwZU5hbWUiLCJnZXROYW1lIiwibWV0YVR5cGVTdHJpbmciLCJhc1N0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUF3QkE7Ozs0REFYQTs2REFDRTtxRUFDQztzRUFDVTtxQkFFZjtxQkFDSTs7Ozs7O0FBRTFCLElBQU1DLGlCQUFpQkMsSUFBQUEsZ0JBQVMsRUFBQywyQkFDM0JDLHdCQUF3QkQsSUFBQUEsZ0JBQVMsRUFBQztBQUV6QixTQUFTRixxQkFBcUJJLGtCQUFrQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsZ0JBQWdCO0lBQ3JHLElBQUlDO0lBRUosSUFBTUMsdUJBQXVCRixpQkFBaUJHLFlBQVksQ0FBQ047SUFFM0RHLGlCQUFpQkksS0FBSyxDQUFDLEFBQUMsa0JBQXNDLE9BQXJCRixzQkFBcUIseUJBQXVCTDtJQUVyRixJQUFNUSxnQ0FBZ0M7UUFDcENDO1FBQ0FDO0tBQ0Q7SUFFRE4seUJBQXlCSSw4QkFBOEJHLElBQUksQ0FBQyxTQUFDQztRQUMzRCxJQUFNUix5QkFBeUJRLDZCQUE2Qlosb0JBQW9CQyxhQUFhQyxTQUFTQztRQUV0RyxJQUFJQyx3QkFBd0I7WUFDMUIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJQSx3QkFBd0I7UUFDMUJELGlCQUFpQlUsS0FBSyxDQUFDLEFBQUMsb0JBQXdDLE9BQXJCUixzQkFBcUIsdUJBQXFCTDtJQUN2RjtJQUVBLE9BQU9JO0FBQ1Q7QUFFQSxT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