occam-verify-cli 0.0.506 → 0.0.507

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 (48) hide show
  1. package/lib/conclusion.js +5 -160
  2. package/lib/consequence.js +3 -81
  3. package/lib/matcher/conclusion.js +194 -0
  4. package/lib/matcher/consequence.js +194 -0
  5. package/lib/matcher/premise.js +199 -0
  6. package/lib/matcher/supposition.js +199 -0
  7. package/lib/matcher.js +36 -0
  8. package/lib/metaMatcher/conclusion.js +194 -0
  9. package/lib/metaMatcher/premise.js +199 -0
  10. package/lib/metaMatcher.js +36 -0
  11. package/lib/metaSubstitution.js +7 -6
  12. package/lib/mixins/matcher.js +109 -0
  13. package/lib/premise.js +9 -178
  14. package/lib/ruleNames.js +5 -1
  15. package/lib/step/metaproof.js +5 -5
  16. package/lib/substitution.js +7 -6
  17. package/lib/supposition.js +5 -92
  18. package/lib/utilities/substitution.js +61 -0
  19. package/lib/verify/metaproof.js +3 -3
  20. package/lib/verify/proof.js +3 -3
  21. package/lib/verify/ruleProof.js +3 -3
  22. package/package.json +1 -1
  23. package/src/conclusion.js +6 -277
  24. package/src/consequence.js +3 -141
  25. package/src/matcher/conclusion.js +86 -0
  26. package/src/matcher/consequence.js +89 -0
  27. package/src/matcher/premise.js +94 -0
  28. package/src/matcher/supposition.js +97 -0
  29. package/src/matcher.js +9 -0
  30. package/src/metaMatcher/conclusion.js +86 -0
  31. package/src/metaMatcher/premise.js +94 -0
  32. package/src/metaMatcher.js +9 -0
  33. package/src/metaSubstitution.js +4 -3
  34. package/src/mixins/matcher.js +81 -0
  35. package/src/premise.js +10 -298
  36. package/src/ruleNames.js +1 -0
  37. package/src/step/metaproof.js +1 -1
  38. package/src/substitution.js +3 -2
  39. package/src/supposition.js +12 -159
  40. package/src/utilities/{node.js → substitution.js} +4 -74
  41. package/src/verify/metaproof.js +2 -2
  42. package/src/verify/proof.js +2 -2
  43. package/src/verify/ruleProof.js +2 -2
  44. package/lib/metaSupposition.js +0 -167
  45. package/lib/utilities/node.js +0 -106
  46. package/lib/verify/metaSupposition.js +0 -41
  47. package/src/metaSupposition.js +0 -196
  48. package/src/verify/metaSupposition.js +0 -44
@@ -2,7 +2,7 @@
2
2
 
3
3
  import verifyMetaDerivation from "../verify/metaDerivation";
4
4
 
5
- import { matchNode } from "../utilities/node";
5
+ import { matcher } from "../matcher";
6
6
  import { nodeQuery } from "../utilities/query";
7
7
 
8
8
  const metaDerivationNodeQuery = nodeQuery("/metaproof/metaDerivation!");
@@ -22,7 +22,7 @@ export default function verifyMetaproof(metaproofNode, conclusion, metaproofCont
22
22
  conclusionMetastatementNode = conclusion.getMetastatementNode(),
23
23
  nodeA = metastatementNode, ///
24
24
  nodeB = conclusionMetastatementNode, ///
25
- nodeMatches = matchNode(nodeA, nodeB);
25
+ nodeMatches = matcher.matchNode(nodeA, nodeB);
26
26
 
27
27
  metaproofVerified = nodeMatches; ///
28
28
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import verifyDerivation from "../verify/derivation";
4
4
 
5
- import { matchNode } from "../utilities/node";
5
+ import { matcher } from "../matcher";
6
6
  import { nodeQuery } from "../utilities/query";
7
7
 
8
8
  const derivationNodeQuery = nodeQuery("/proof/derivation!");
@@ -22,7 +22,7 @@ export default function verifyProof(proofNode, conclusion, proofContext) {
22
22
  conclusionStatementNode = conclusion.getStatementNode(),
23
23
  nodeA = statementNode, ///
24
24
  nodeB = conclusionStatementNode, ///
25
- nodeMatches = matchNode(nodeA, nodeB);
25
+ nodeMatches = matcher.matchNode(nodeA, nodeB);
26
26
 
27
27
  proofVerified = nodeMatches; ///
28
28
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import verifyRuleDerivation from "../verify/ruleDerivation";
4
4
 
5
- import { matchNode } from "../utilities/node";
5
+ import { matcher } from "../matcher";
6
6
  import { nodeQuery } from "../utilities/query";
7
7
 
8
8
  const ruleDerivationNodeQuery = nodeQuery("/ruleProof/ruleDerivation!");
@@ -22,7 +22,7 @@ export default function verifyRuleProof(ruleProofNode, conclusion, metaproofCont
22
22
  conclusionMetastatementNode = conclusion.getMetastatementNode(),
23
23
  nodeA = metastatementNode, ///
24
24
  nodeB = conclusionMetastatementNode, ///
25
- nodeMatches = matchNode(nodeA, nodeB);
25
+ nodeMatches = matcher.matchNode(nodeA, nodeB);
26
26
 
27
27
  ruleProofVerified = nodeMatches; ///
28
28
  }
@@ -1,167 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return MetaSupposition;
9
- }
10
- });
11
- var _metaSubstitution = /*#__PURE__*/ _interopRequireDefault(require("./metaSubstitution"));
12
- var _array = require("./utilities/array");
13
- var _string = require("./utilities/string");
14
- var _query = require("./utilities/query");
15
- var _ruleNames = require("./ruleNames");
16
- function _classCallCheck(instance, Constructor) {
17
- if (!(instance instanceof Constructor)) {
18
- throw new TypeError("Cannot call a class as a function");
19
- }
20
- }
21
- function _defineProperties(target, props) {
22
- for(var i = 0; i < props.length; i++){
23
- var descriptor = props[i];
24
- descriptor.enumerable = descriptor.enumerable || false;
25
- descriptor.configurable = true;
26
- if ("value" in descriptor) descriptor.writable = true;
27
- Object.defineProperty(target, descriptor.key, descriptor);
28
- }
29
- }
30
- function _createClass(Constructor, protoProps, staticProps) {
31
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
32
- if (staticProps) _defineProperties(Constructor, staticProps);
33
- return Constructor;
34
- }
35
- function _interopRequireDefault(obj) {
36
- return obj && obj.__esModule ? obj : {
37
- default: obj
38
- };
39
- }
40
- var MetaSupposition = /*#__PURE__*/ function() {
41
- function MetaSupposition(metastatementNode) {
42
- _classCallCheck(this, MetaSupposition);
43
- this.metastatementNode = metastatementNode;
44
- }
45
- _createClass(MetaSupposition, [
46
- {
47
- key: "getMetastatementNode",
48
- value: function getMetastatementNode() {
49
- return this.metastatementNode;
50
- }
51
- },
52
- {
53
- key: "matchMetastatementNode",
54
- value: function matchMetastatementNode(metastatementNode, metaSubstitutions) {
55
- var nonTerminalNode = metastatementNode, metaSuppositionNonTerminalNode = this.metastatementNode, metaSuppositionNonTerminalNodeMatches = matchMetaSuppositionNonTerminalNode(metaSuppositionNonTerminalNode, nonTerminalNode, metaSubstitutions), metastatementNodeMatches = metaSuppositionNonTerminalNodeMatches; ///
56
- return metastatementNodeMatches;
57
- }
58
- },
59
- {
60
- key: "toJSON",
61
- value: function toJSON() {
62
- var metastatementString = (0, _string.nodeAsString)(this.metastatementNode), metastatement = metastatementString, json = {
63
- metastatement: metastatement
64
- };
65
- return json;
66
- }
67
- }
68
- ], [
69
- {
70
- key: "fromJSON",
71
- value: function fromJSON(json, releaseContext) {
72
- var metastatement = json.metastatement, metastatementString = metastatement, metastatementNode = (0, _string.metastatementNodeFromMetastatementString)(metastatementString, releaseContext), metaSupposition = new MetaSupposition(metastatementNode);
73
- return metaSupposition;
74
- }
75
- },
76
- {
77
- key: "fromMetastatementNode",
78
- value: function fromMetastatementNode(metastatementNode) {
79
- var metaSupposition = new MetaSupposition(metastatementNode);
80
- return metaSupposition;
81
- }
82
- }
83
- ]);
84
- return MetaSupposition;
85
- }();
86
- function matchMetaSuppositionNode(metaSuppositionNode, node, metaSubstitutions) {
87
- var metaSuppositionNodeMatches = false;
88
- var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = metaSuppositionNode.isTerminalNode();
89
- if (nodeTerminalNode === ruleNodeTerminalNode) {
90
- if (nodeTerminalNode) {
91
- var terminalNode = node, metaSuppositionTerminalNode = metaSuppositionNode, metaSuppositionTerminalNodeMatches = matchMetaSuppositionTerminalNode(metaSuppositionTerminalNode, terminalNode, metaSubstitutions);
92
- metaSuppositionNodeMatches = metaSuppositionTerminalNodeMatches; ///
93
- } else {
94
- var nonTerminalNode = node, metaSuppositionNonTerminalNode = metaSuppositionNode, metaSuppositionNonTerminalNodeMatches = matchMetaSuppositionNonTerminalNode(metaSuppositionNonTerminalNode, nonTerminalNode, metaSubstitutions);
95
- metaSuppositionNodeMatches = metaSuppositionNonTerminalNodeMatches; ///
96
- }
97
- }
98
- return metaSuppositionNodeMatches;
99
- }
100
- function matchMetaSuppositionNodes(metaSuppositionNodes, nodes, metaSubstitutions) {
101
- var metaSuppositionNodesMatches = false;
102
- var nodesLength = nodes.length, metaSuppositionNodesLength = metaSuppositionNodes.length;
103
- if (nodesLength === metaSuppositionNodesLength) {
104
- metaSuppositionNodesMatches = nodes.every(function(node, index) {
105
- var metaSuppositionNode = metaSuppositionNodes[index], metaSuppositionNodeMatches = matchMetaSuppositionNode(metaSuppositionNode, node, metaSubstitutions);
106
- if (metaSuppositionNodeMatches) {
107
- return true;
108
- }
109
- });
110
- }
111
- return metaSuppositionNodesMatches;
112
- }
113
- function matchMetaSuppositionMetavariable(metaSuppositionMetavariableNode, nodes, metaSubstitutions) {
114
- var metaSuppositionMetavariableMatches;
115
- var metaSuppositionMetavariableName = (0, _query.metavariableNameFromMetavariableNode)(metaSuppositionMetavariableNode), metaSubstitution = metaSubstitutions.find(function(metaSubstitution) {
116
- var metavariableName = metaSubstitution.getMetavariableName();
117
- if (metavariableName === metaSuppositionMetavariableName) {
118
- return true;
119
- }
120
- }) || null;
121
- if (metaSubstitution !== null) {
122
- var metaSubstitutionNodesMatch = metaSubstitution.matchNodes(nodes);
123
- metaSuppositionMetavariableMatches = metaSubstitutionNodesMatch; ///
124
- } else {
125
- var metavariableName = metaSuppositionMetavariableName, metaSubstitution1 = _metaSubstitution.default.fromMetavariableNameAndNodes(metavariableName, nodes);
126
- metaSubstitutions.push(metaSubstitution1);
127
- metaSuppositionMetavariableMatches = true;
128
- }
129
- return metaSuppositionMetavariableMatches;
130
- }
131
- function matchMetaSuppositionTerminalNode(metaSuppositionTerminalNode, terminalNode, metaSubstitutions) {
132
- var matches = metaSuppositionTerminalNode.match(terminalNode), metaSuppositionTerminalNodeMatches = matches;
133
- return metaSuppositionTerminalNodeMatches;
134
- }
135
- function matchMetaSuppositionNonTerminalNode(metaSuppositionNonTerminalNode, nonTerminalNode, metaSubstitutions) {
136
- var metaSuppositionNonTerminalNodeMatches = false;
137
- var ruleName = nonTerminalNode.getRuleName(), metaSuppositionRuleName = metaSuppositionNonTerminalNode.getRuleName(); ///
138
- if (ruleName === metaSuppositionRuleName) {
139
- var childNodes = nonTerminalNode.getChildNodes(), metaSuppositionChildNodes = metaSuppositionNonTerminalNode.getChildNodes(), nodes = childNodes, metaSuppositionNodes = metaSuppositionChildNodes, metaSuppositionChildNodesMatches = matchMetaSuppositionNodes(metaSuppositionNodes, nodes, metaSubstitutions);
140
- metaSuppositionNonTerminalNodeMatches = metaSuppositionChildNodesMatches; ///
141
- if (!metaSuppositionNonTerminalNodeMatches) {
142
- var ruleNameMetastatementRuleName = ruleName === _ruleNames.METASTATEMENT_RULE_NAME;
143
- if (ruleNameMetastatementRuleName) {
144
- var metastatementNode = nonTerminalNode, metaSuppositionMetastatementNode = metaSuppositionNonTerminalNode, metaSuppositionMetastatementNodeMatches = matchMetaSuppositionMetastatementNode(metaSuppositionMetastatementNode, metastatementNode, metaSubstitutions);
145
- metaSuppositionNonTerminalNodeMatches = metaSuppositionMetastatementNodeMatches; ///
146
- }
147
- }
148
- }
149
- return metaSuppositionNonTerminalNodeMatches;
150
- }
151
- function matchMetaSuppositionMetastatementNode(metaSuppositionMetastatementNode, metastatementNode, metaSubstitutions) {
152
- var metaSuppositionMetastatementNodeMatches = false;
153
- var metaSuppositionNonTerminalNode = metaSuppositionMetastatementNode, metaSuppositionChildNodes = metaSuppositionNonTerminalNode.getChildNodes(), metaSuppositionChildNodesLength = metaSuppositionChildNodes.length;
154
- if (metaSuppositionChildNodesLength === 1) {
155
- var firstMetaSuppositionChildNode = (0, _array.first)(metaSuppositionChildNodes), metaSuppositionChildNode = firstMetaSuppositionChildNode, metaSuppositionChildNodeNonTerminalNode = metaSuppositionChildNode.isNonTerminalNode();
156
- if (metaSuppositionChildNodeNonTerminalNode) {
157
- var metaSuppositionNonTerminalChildNode = metaSuppositionChildNode, metaSuppositionNonTerminalChildNodeRuleName = metaSuppositionNonTerminalChildNode.getRuleName(), metaSuppositionNonTerminalChildNodeRuleNameMetavariableRuleName = metaSuppositionNonTerminalChildNodeRuleName === _ruleNames.METAVARIABLE_RULE_NAME;
158
- if (metaSuppositionNonTerminalChildNodeRuleNameMetavariableRuleName) {
159
- var metaSuppositionMetavariableNode = metaSuppositionNonTerminalChildNode, nonTerminalNode = metastatementNode, childNodes = nonTerminalNode.getChildNodes(), nodes = childNodes, metaSuppositionMetavariableMatches = matchMetaSuppositionMetavariable(metaSuppositionMetavariableNode, nodes, metaSubstitutions);
160
- metaSuppositionMetastatementNodeMatches = metaSuppositionMetavariableMatches; ///
161
- }
162
- }
163
- }
164
- return metaSuppositionMetastatementNodeMatches;
165
- }
166
-
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhU3VwcG9zaXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNZXRhU3Vic3RpdHV0aW9uIGZyb20gXCIuL21ldGFTdWJzdGl0dXRpb25cIjtcblxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IG1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgbWV0YXN0YXRlbWVudE5vZGVGcm9tTWV0YXN0YXRlbWVudFN0cmluZyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IE1FVEFWQVJJQUJMRV9SVUxFX05BTUUsIE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FIH0gZnJvbSBcIi4vcnVsZU5hbWVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1ldGFTdXBwb3NpdGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgdGhpcy5tZXRhc3RhdGVtZW50Tm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0TWV0YXN0YXRlbWVudE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBtYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlID0gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIG1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsTm9kZShtZXRhU3VwcG9zaXRpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7IC8vL1xuXG4gICAgcmV0dXJuIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBtZXRhc3RhdGVtZW50U3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMubWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnQgPSBtZXRhc3RhdGVtZW50U3RyaW5nLCAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbWV0YXN0YXRlbWVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCByZWxlYXNlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgbWV0YXN0YXRlbWVudCB9ID0ganNvbixcbiAgICAgICAgICBtZXRhc3RhdGVtZW50U3RyaW5nID0gbWV0YXN0YXRlbWVudCwgIC8vL1xuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGVGcm9tTWV0YXN0YXRlbWVudFN0cmluZyhtZXRhc3RhdGVtZW50U3RyaW5nLCByZWxlYXNlQ29udGV4dCksXG4gICAgICAgICAgbWV0YVN1cHBvc2l0aW9uID0gbmV3IE1ldGFTdXBwb3NpdGlvbihtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gbWV0YVN1cHBvc2l0aW9uO1xuICB9XG5cbiAgc3RhdGljIGZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IG1ldGFTdXBwb3NpdGlvbiA9IG5ldyBNZXRhU3VwcG9zaXRpb24obWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIG1ldGFTdXBwb3NpdGlvbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaE1ldGFTdXBwb3NpdGlvbk5vZGUobWV0YVN1cHBvc2l0aW9uTm9kZSwgbm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IG1ldGFTdXBwb3NpdGlvbk5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgcnVsZU5vZGVUZXJtaW5hbE5vZGUgPSBtZXRhU3VwcG9zaXRpb25Ob2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgaWYgKG5vZGVUZXJtaW5hbE5vZGUgPT09IHJ1bGVOb2RlVGVybWluYWxOb2RlKSB7XG4gICAgaWYgKG5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICAgIG1ldGFTdXBwb3NpdGlvblRlcm1pbmFsTm9kZSA9IG1ldGFTdXBwb3NpdGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgIG1ldGFTdXBwb3NpdGlvblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFTdXBwb3NpdGlvblRlcm1pbmFsTm9kZShtZXRhU3VwcG9zaXRpb25UZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBtZXRhU3VwcG9zaXRpb25Ob2RlTWF0Y2hlcyA9IG1ldGFTdXBwb3NpdGlvblRlcm1pbmFsTm9kZU1hdGNoZXM7ICAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgLy8vXG4gICAgICAgICAgICBtZXRhU3VwcG9zaXRpb25Ob25UZXJtaW5hbE5vZGUgPSBtZXRhU3VwcG9zaXRpb25Ob2RlLCAgLy8vXG4gICAgICAgICAgICBtZXRhU3VwcG9zaXRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hNZXRhU3VwcG9zaXRpb25Ob25UZXJtaW5hbE5vZGUobWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgbWV0YVN1cHBvc2l0aW9uTm9kZU1hdGNoZXMgPSBtZXRhU3VwcG9zaXRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YVN1cHBvc2l0aW9uTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTWV0YVN1cHBvc2l0aW9uTm9kZXMobWV0YVN1cHBvc2l0aW9uTm9kZXMsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgbWV0YVN1cHBvc2l0aW9uTm9kZXNNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZXNMZW5ndGggPSBub2Rlcy5sZW5ndGgsXG4gICAgICAgIG1ldGFTdXBwb3NpdGlvbk5vZGVzTGVuZ3RoID0gbWV0YVN1cHBvc2l0aW9uTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChub2Rlc0xlbmd0aCA9PT0gbWV0YVN1cHBvc2l0aW9uTm9kZXNMZW5ndGgpIHtcbiAgICBtZXRhU3VwcG9zaXRpb25Ob2Rlc01hdGNoZXMgPSBub2Rlcy5ldmVyeSgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IG1ldGFTdXBwb3NpdGlvbk5vZGUgPSBtZXRhU3VwcG9zaXRpb25Ob2Rlc1tpbmRleF0sXG4gICAgICAgICAgICBtZXRhU3VwcG9zaXRpb25Ob2RlTWF0Y2hlcyA9IG1hdGNoTWV0YVN1cHBvc2l0aW9uTm9kZShtZXRhU3VwcG9zaXRpb25Ob2RlLCBub2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGlmIChtZXRhU3VwcG9zaXRpb25Ob2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBtZXRhU3VwcG9zaXRpb25Ob2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTWV0YVN1cHBvc2l0aW9uTWV0YXZhcmlhYmxlKG1ldGFTdXBwb3NpdGlvbk1ldGF2YXJpYWJsZU5vZGUsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgbWV0YVN1cHBvc2l0aW9uTWV0YXZhcmlhYmxlTWF0Y2hlcztcblxuICBjb25zdCBtZXRhU3VwcG9zaXRpb25NZXRhdmFyaWFibGVOYW1lID0gbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGFTdXBwb3NpdGlvbk1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBtZXRhU3Vic3RpdHV0aW9uID0gbWV0YVN1YnN0aXR1dGlvbnMuZmluZCgobWV0YVN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhU3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5hbWUoKTtcblxuICAgICAgICAgIGlmIChtZXRhdmFyaWFibGVOYW1lID09PSBtZXRhU3VwcG9zaXRpb25NZXRhdmFyaWFibGVOYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIHx8IG51bGw7XG5cbiAgaWYgKG1ldGFTdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaCA9IG1ldGFTdWJzdGl0dXRpb24ubWF0Y2hOb2Rlcyhub2Rlcyk7XG5cbiAgICBtZXRhU3VwcG9zaXRpb25NZXRhdmFyaWFibGVNYXRjaGVzID0gbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2g7ICAvLy9cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gbWV0YVN1cHBvc2l0aW9uTWV0YXZhcmlhYmxlTmFtZSwgLy8vXG4gICAgICAgICAgbWV0YVN1YnN0aXR1dGlvbiA9IE1ldGFTdWJzdGl0dXRpb24uZnJvbU1ldGF2YXJpYWJsZU5hbWVBbmROb2RlcyhtZXRhdmFyaWFibGVOYW1lLCBub2Rlcyk7XG5cbiAgICBtZXRhU3Vic3RpdHV0aW9ucy5wdXNoKG1ldGFTdWJzdGl0dXRpb24pO1xuXG4gICAgbWV0YVN1cHBvc2l0aW9uTWV0YXZhcmlhYmxlTWF0Y2hlcyA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gbWV0YVN1cHBvc2l0aW9uTWV0YXZhcmlhYmxlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hNZXRhU3VwcG9zaXRpb25UZXJtaW5hbE5vZGUobWV0YVN1cHBvc2l0aW9uVGVybWluYWxOb2RlLCB0ZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBtZXRhU3VwcG9zaXRpb25UZXJtaW5hbE5vZGUubWF0Y2godGVybWluYWxOb2RlKSxcbiAgICAgICAgbWV0YVN1cHBvc2l0aW9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7XG5cbiAgcmV0dXJuIG1ldGFTdXBwb3NpdGlvblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlKG1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgIG1ldGFTdXBwb3NpdGlvblJ1bGVOYW1lID0gbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gIGlmIChydWxlTmFtZSA9PT0gbWV0YVN1cHBvc2l0aW9uUnVsZU5hbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBtZXRhU3VwcG9zaXRpb25DaGlsZE5vZGVzID0gbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIG1ldGFTdXBwb3NpdGlvbk5vZGVzID0gbWV0YVN1cHBvc2l0aW9uQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgbWV0YVN1cHBvc2l0aW9uQ2hpbGROb2Rlc01hdGNoZXMgPSBtYXRjaE1ldGFTdXBwb3NpdGlvbk5vZGVzKG1ldGFTdXBwb3NpdGlvbk5vZGVzLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1ldGFTdXBwb3NpdGlvbkNoaWxkTm9kZXNNYXRjaGVzOyAvLy9cblxuICAgIGlmICghbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcykge1xuICAgICAgY29uc3QgcnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUgPSAocnVsZU5hbWUgPT09IE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FKTtcblxuICAgICAgaWYgKHJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlID0gbm9uVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIG1ldGFTdXBwb3NpdGlvbk1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIG1ldGFTdXBwb3NpdGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoTWV0YVN1cHBvc2l0aW9uTWV0YXN0YXRlbWVudE5vZGUobWV0YVN1cHBvc2l0aW9uTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1ldGFTdXBwb3NpdGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlczsgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoTWV0YVN1cHBvc2l0aW9uTWV0YXN0YXRlbWVudE5vZGUobWV0YVN1cHBvc2l0aW9uTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgbWV0YVN1cHBvc2l0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxOb2RlID0gbWV0YVN1cHBvc2l0aW9uTWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgbWV0YVN1cHBvc2l0aW9uQ2hpbGROb2RlcyA9IG1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIG1ldGFTdXBwb3NpdGlvbkNoaWxkTm9kZXNMZW5ndGggPSBtZXRhU3VwcG9zaXRpb25DaGlsZE5vZGVzLmxlbmd0aDtcblxuICBpZiAobWV0YVN1cHBvc2l0aW9uQ2hpbGROb2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGZpcnN0TWV0YVN1cHBvc2l0aW9uQ2hpbGROb2RlID0gZmlyc3QobWV0YVN1cHBvc2l0aW9uQ2hpbGROb2RlcyksXG4gICAgICAgICAgbWV0YVN1cHBvc2l0aW9uQ2hpbGROb2RlID0gZmlyc3RNZXRhU3VwcG9zaXRpb25DaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICBtZXRhU3VwcG9zaXRpb25DaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgPSBtZXRhU3VwcG9zaXRpb25DaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChtZXRhU3VwcG9zaXRpb25DaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IG1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsQ2hpbGROb2RlID0gbWV0YVN1cHBvc2l0aW9uQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBtZXRhU3VwcG9zaXRpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lID0gbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxDaGlsZE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICAgIG1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSA9IChtZXRhU3VwcG9zaXRpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lID09PSBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FKTtcblxuICAgICAgaWYgKG1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSkge1xuICAgICAgICBjb25zdCBtZXRhU3VwcG9zaXRpb25NZXRhdmFyaWFibGVOb2RlID0gbWV0YVN1cHBvc2l0aW9uTm9uVGVybWluYWxDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgIG1ldGFTdXBwb3NpdGlvbk1ldGF2YXJpYWJsZU1hdGNoZXMgPSBtYXRjaE1ldGFTdXBwb3NpdGlvbk1ldGF2YXJpYWJsZShtZXRhU3VwcG9zaXRpb25NZXRhdmFyaWFibGVOb2RlLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIG1ldGFTdXBwb3NpdGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1ldGFTdXBwb3NpdGlvbk1ldGF2YXJpYWJsZU1hdGNoZXM7IC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhU3VwcG9zaXRpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsiTWV0YVN1cHBvc2l0aW9uIiwibWV0YXN0YXRlbWVudE5vZGUiLCJnZXRNZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoTWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhU3Vic3RpdHV0aW9ucyIsIm5vblRlcm1pbmFsTm9kZSIsIm1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsTm9kZSIsIm1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaE1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsTm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsInRvSlNPTiIsIm1ldGFzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJtZXRhc3RhdGVtZW50IiwianNvbiIsImZyb21KU09OIiwicmVsZWFzZUNvbnRleHQiLCJtZXRhc3RhdGVtZW50Tm9kZUZyb21NZXRhc3RhdGVtZW50U3RyaW5nIiwibWV0YVN1cHBvc2l0aW9uIiwiZnJvbU1ldGFzdGF0ZW1lbnROb2RlIiwibWF0Y2hNZXRhU3VwcG9zaXRpb25Ob2RlIiwibWV0YVN1cHBvc2l0aW9uTm9kZSIsIm5vZGUiLCJtZXRhU3VwcG9zaXRpb25Ob2RlTWF0Y2hlcyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInJ1bGVOb2RlVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwibWV0YVN1cHBvc2l0aW9uVGVybWluYWxOb2RlIiwibWV0YVN1cHBvc2l0aW9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YVN1cHBvc2l0aW9uVGVybWluYWxOb2RlIiwibWF0Y2hNZXRhU3VwcG9zaXRpb25Ob2RlcyIsIm1ldGFTdXBwb3NpdGlvbk5vZGVzIiwibm9kZXMiLCJtZXRhU3VwcG9zaXRpb25Ob2Rlc01hdGNoZXMiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsIm1ldGFTdXBwb3NpdGlvbk5vZGVzTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoTWV0YVN1cHBvc2l0aW9uTWV0YXZhcmlhYmxlIiwibWV0YVN1cHBvc2l0aW9uTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGFTdXBwb3NpdGlvbk1ldGF2YXJpYWJsZU1hdGNoZXMiLCJtZXRhU3VwcG9zaXRpb25NZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIiwibWV0YVN1YnN0aXR1dGlvbiIsImZpbmQiLCJtZXRhdmFyaWFibGVOYW1lIiwiZ2V0TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoIiwibWF0Y2hOb2RlcyIsIk1ldGFTdWJzdGl0dXRpb24iLCJmcm9tTWV0YXZhcmlhYmxlTmFtZUFuZE5vZGVzIiwicHVzaCIsIm1hdGNoZXMiLCJtYXRjaCIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJtZXRhU3VwcG9zaXRpb25SdWxlTmFtZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwibWV0YVN1cHBvc2l0aW9uQ2hpbGROb2RlcyIsIm1ldGFTdXBwb3NpdGlvbkNoaWxkTm9kZXNNYXRjaGVzIiwicnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUiLCJNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSIsIm1ldGFTdXBwb3NpdGlvbk1ldGFzdGF0ZW1lbnROb2RlIiwibWV0YVN1cHBvc2l0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hNZXRhU3VwcG9zaXRpb25NZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFTdXBwb3NpdGlvbkNoaWxkTm9kZXNMZW5ndGgiLCJmaXJzdE1ldGFTdXBwb3NpdGlvbkNoaWxkTm9kZSIsImZpcnN0IiwibWV0YVN1cHBvc2l0aW9uQ2hpbGROb2RlIiwibWV0YVN1cHBvc2l0aW9uQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJtZXRhU3VwcG9zaXRpb25Ob25UZXJtaW5hbENoaWxkTm9kZSIsIm1ldGFTdXBwb3NpdGlvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUiLCJtZXRhU3VwcG9zaXRpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lTWV0YXZhcmlhYmxlUnVsZU5hbWUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVVxQkE7OztxRUFSUTtxQkFFUDtzQkFDTztxQkFDd0I7eUJBRVc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFakQsSUFBQSxBQUFNQSxnQ0E0Q2xCLEFBNUNZO2FBQU1BLGdCQUNQQyxpQkFBaUI7OEJBRFZEO1FBRWpCLElBQUksQ0FBQ0MsaUJBQWlCLEdBQUdBOztpQkFGUkQ7O1lBS25CRSxLQUFBQTttQkFBQUEsU0FBQUEsdUJBQXVCO2dCQUNyQixPQUFPLElBQUksQ0FBQ0QsaUJBQWlCO1lBQy9COzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBLHVCQUF1QkYsaUJBQWlCLEVBQUVHLGlCQUFpQixFQUFFO2dCQUMzRCxJQUFNQyxrQkFBa0JKLG1CQUNsQkssaUNBQWlDLElBQUksQ0FBQ0wsaUJBQWlCLEVBQ3ZETSx3Q0FBd0NDLG9DQUFvQ0YsZ0NBQWdDRCxpQkFBaUJELG9CQUM3SEssMkJBQTJCRix1Q0FBdUMsR0FBRztnQkFFM0UsT0FBT0U7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTO2dCQUNQLElBQU1DLHNCQUFzQkMsSUFBQUEsb0JBQVksRUFBQyxJQUFJLENBQUNYLGlCQUFpQixHQUN6RFksZ0JBQWdCRixxQkFDaEJHLE9BQU87b0JBQ0xELGVBQUFBO2dCQUNGO2dCQUVOLE9BQU9DO1lBQ1Q7Ozs7WUFFT0MsS0FBQUE7bUJBQVAsU0FBT0EsU0FBU0QsSUFBSSxF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
@@ -1,106 +0,0 @@
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
- matchNode: function() {
13
- return matchNode;
14
- },
15
- matchNodes: function() {
16
- return matchNodes;
17
- },
18
- matchBracketedNonTerminalNode: function() {
19
- return matchBracketedNonTerminalNode;
20
- },
21
- bracketedNonTerminalChildNodeFromChildNodes: function() {
22
- return bracketedNonTerminalChildNodeFromChildNodes;
23
- }
24
- });
25
- var _array = require("./array");
26
- var _ruleNames = require("../ruleNames");
27
- var _constants = require("../constants");
28
- function matchNode(nodeA, nodeB) {
29
- var nodeMatches = false;
30
- var nodeATerminalNode = nodeA.isTerminalNode(), nodeBTerminalNode = nodeB.isTerminalNode();
31
- if (nodeATerminalNode === nodeBTerminalNode) {
32
- if (nodeATerminalNode) {
33
- var terminalNodeA = nodeA, terminalNodeB = nodeB, terminalNodeMatches = matchTerminalNode(terminalNodeA, terminalNodeB);
34
- nodeMatches = terminalNodeMatches; ///
35
- } else {
36
- var nonTerminalNodeA = nodeA, nonTerminalNodeB = nodeB, nonTerminalNodeMatches = matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB);
37
- nodeMatches = nonTerminalNodeMatches; ///
38
- }
39
- }
40
- return nodeMatches;
41
- }
42
- function matchNodes(nodesA, nodesB) {
43
- var nodesMatch = false;
44
- var nodesALength = nodesA.length, nodesBLength = nodesB.length;
45
- if (nodesALength === nodesBLength) {
46
- nodesMatch = nodesA.every(function(nodeA, index) {
47
- var nodeB = nodesB[index], nodeMatches = matchNode(nodeA, nodeB);
48
- if (nodeMatches) {
49
- return true;
50
- }
51
- });
52
- }
53
- return nodesMatch;
54
- }
55
- function matchBracketedNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB) {
56
- var bracketedNodeMatches = false;
57
- if (!bracketedNodeMatches) {
58
- var nonTerminalNodeMatches = matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB);
59
- bracketedNodeMatches = nonTerminalNodeMatches; ///
60
- }
61
- if (!bracketedNodeMatches) {
62
- var nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), childNodesA = nonTerminalNodeAChildNodes, bracketedNonTerminalChildNodeA = bracketedNonTerminalChildNodeFromChildNodes(childNodesA);
63
- if (bracketedNonTerminalChildNodeA !== null) {
64
- var nodeA = bracketedNonTerminalChildNodeA, nodeB = nonTerminalNodeB, nodeMatches = matchNode(nodeA, nodeB);
65
- bracketedNodeMatches = nodeMatches; ///
66
- }
67
- }
68
- if (!bracketedNodeMatches) {
69
- var nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), childNodesB = nonTerminalNodeBChildNodes, bracketedNonTerminalChildNodeB = bracketedNonTerminalChildNodeFromChildNodes(childNodesB);
70
- if (bracketedNonTerminalChildNodeB !== null) {
71
- var nodeB1 = bracketedNonTerminalChildNodeB, nodeA1 = nonTerminalNodeA, nodeMatches1 = matchNode(nodeA1, nodeB1);
72
- bracketedNodeMatches = nodeMatches1; ///
73
- }
74
- }
75
- return bracketedNodeMatches;
76
- }
77
- function bracketedNonTerminalChildNodeFromChildNodes(childNodes) {
78
- var ruleName = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : _ruleNames.METASTATEMENT_RULE_NAME;
79
- var bracketedNonTerminalChildNode = null;
80
- var childNodesLength = childNodes.length;
81
- if (childNodesLength === _constants.BRACKETED_CHILD_NODES_LENGTH) {
82
- var firstChildNode = (0, _array.first)(childNodes), thirdChildNode = (0, _array.third)(childNodes), secondChildNode = (0, _array.second)(childNodes), firstChildNodeTerminalNode = firstChildNode.isTerminalNode(), thirdChildNodeTerminalNode = thirdChildNode.isTerminalNode(), secondChildNodeNonTerminalNode = secondChildNode.isNonTerminalNode();
83
- if (firstChildNodeTerminalNode && secondChildNodeNonTerminalNode && thirdChildNodeTerminalNode) {
84
- var nonTerminalNode = secondChildNode, firstTerminalNode = firstChildNode, secondTerminalNode = thirdChildNode, nonTerminalNodeRuleName = nonTerminalNode.getRuleName(), firstTerminalNodeContent = firstTerminalNode.getContent(), secondTerminalNodeContent = secondTerminalNode.getContent(), nonTerminalNodeRuleNameRuleName = nonTerminalNodeRuleName === ruleName, firstTerminalNodeContentLeftBracket = firstTerminalNodeContent === _constants.LEFT_BRACKET, secondTerminalNodeContentRightBracket = secondTerminalNodeContent === _constants.RIGHT_BRACKET;
85
- if (nonTerminalNodeRuleNameRuleName && firstTerminalNodeContentLeftBracket && secondTerminalNodeContentRightBracket) {
86
- bracketedNonTerminalChildNode = nonTerminalNode; ///
87
- }
88
- }
89
- }
90
- return bracketedNonTerminalChildNode;
91
- }
92
- function matchTerminalNode(terminalNodeA, terminalNodeB) {
93
- var matches = terminalNodeA.match(terminalNodeB), terminalNodeMatches = matches; ///
94
- return terminalNodeMatches;
95
- }
96
- function matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB) {
97
- var nonTerminalNodeMatches = false;
98
- var nonTerminalNodeARuleName = nonTerminalNodeA.getRuleName(), nonTerminalNodeBRuleName = nonTerminalNodeB.getRuleName(); ///
99
- if (nonTerminalNodeARuleName === nonTerminalNodeBRuleName) {
100
- var nonTerminalNodeAChildNodes = nonTerminalNodeA.getChildNodes(), nonTerminalNodeBChildNodes = nonTerminalNodeB.getChildNodes(), nodesA = nonTerminalNodeAChildNodes, nodesB = nonTerminalNodeBChildNodes, nodesMatch = matchNodes(nodesA, nodesB);
101
- nonTerminalNodeMatches = nodesMatch; ///
102
- }
103
- return nonTerminalNodeMatches;
104
- }
105
-
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCwgdGhpcmQgfSBmcm9tIFwiLi9hcnJheVwiO1xuaW1wb3J0IHsgTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5pbXBvcnQgeyBCUkFDS0VURURfQ0hJTERfTk9ERVNfTEVOR1RILCBMRUZUX0JSQUNLRVQsIFJJR0hUX0JSQUNLRVQgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaE5vZGUobm9kZUEsIG5vZGVCKSB7XG4gIGxldCBub2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVBVGVybWluYWxOb2RlID0gbm9kZUEuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgbm9kZUJUZXJtaW5hbE5vZGUgPSBub2RlQi5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlQVRlcm1pbmFsTm9kZSA9PT0gbm9kZUJUZXJtaW5hbE5vZGUpIHtcbiAgICBpZiAobm9kZUFUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1pbmFsTm9kZUEgPSBub2RlQSwgIC8vL1xuICAgICAgICAgICAgdGVybWluYWxOb2RlQiA9IG5vZGVCLCAgLy8vXG4gICAgICAgICAgICB0ZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlQSwgdGVybWluYWxOb2RlQik7XG5cbiAgICAgIG5vZGVNYXRjaGVzID0gdGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGVBID0gbm9kZUEsICAvLy9cbiAgICAgICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBub2RlQiwgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQik7XG5cbiAgICAgIG5vZGVNYXRjaGVzID0gbm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vZGVNYXRjaGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hOb2Rlcyhub2Rlc0EsIG5vZGVzQikge1xuICBsZXQgbm9kZXNNYXRjaCA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzQUxlbmd0aCA9IG5vZGVzQS5sZW5ndGgsXG4gICAgICAgIG5vZGVzQkxlbmd0aCA9IG5vZGVzQi5sZW5ndGg7XG5cbiAgaWYgKG5vZGVzQUxlbmd0aCA9PT0gbm9kZXNCTGVuZ3RoKSB7XG4gICAgbm9kZXNNYXRjaCA9IG5vZGVzQS5ldmVyeSgobm9kZUEsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBub2RlQiA9IG5vZGVzQltpbmRleF0sXG4gICAgICAgICAgICBub2RlTWF0Y2hlcyA9IG1hdGNoTm9kZShub2RlQSwgbm9kZUIpO1xuXG4gICAgICBpZiAobm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBub2Rlc01hdGNoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hCcmFja2V0ZWROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQikge1xuICBsZXQgYnJhY2tldGVkTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBpZiAoIWJyYWNrZXRlZE5vZGVNYXRjaGVzKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoTm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIpO1xuXG4gICAgYnJhY2tldGVkTm9kZU1hdGNoZXMgPSBub25UZXJtaW5hbE5vZGVNYXRjaGVzOyAgLy8vXG4gIH1cblxuICBpZiAoIWJyYWNrZXRlZE5vZGVNYXRjaGVzKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGVBLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjaGlsZE5vZGVzQSA9IG5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZUEgPSBicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZUZyb21DaGlsZE5vZGVzKGNoaWxkTm9kZXNBKTtcblxuICAgIGlmIChicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZUEgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGVBID0gYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVBLCAgLy8vXG4gICAgICAgICAgICBub2RlQiA9IG5vblRlcm1pbmFsTm9kZUIsIC8vL1xuICAgICAgICAgICAgbm9kZU1hdGNoZXMgPSBtYXRjaE5vZGUobm9kZUEsIG5vZGVCKTtcblxuICAgICAgYnJhY2tldGVkTm9kZU1hdGNoZXMgPSBub2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgaWYgKCFicmFja2V0ZWROb2RlTWF0Y2hlcykge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUJDaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlQi5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0IgPSBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVCID0gYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyhjaGlsZE5vZGVzQik7XG5cbiAgICBpZiAoYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVCICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlQiA9IGJyYWNrZXRlZE5vblRlcm1pbmFsQ2hpbGROb2RlQiwgIC8vL1xuICAgICAgICAgICAgbm9kZUEgPSBub25UZXJtaW5hbE5vZGVBLCAvLy9cbiAgICAgICAgICAgIG5vZGVNYXRjaGVzID0gbWF0Y2hOb2RlKG5vZGVBLCBub2RlQik7XG5cbiAgICAgIGJyYWNrZXRlZE5vZGVNYXRjaGVzID0gbm9kZU1hdGNoZXM7IC8vL1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWROb2RlTWF0Y2hlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyYWNrZXRlZE5vblRlcm1pbmFsQ2hpbGROb2RlRnJvbUNoaWxkTm9kZXMoY2hpbGROb2RlcywgcnVsZU5hbWUgPSBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSkge1xuICBsZXQgYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGUgPSBudWxsO1xuXG4gIGNvbnN0IGNoaWxkTm9kZXNMZW5ndGggPSBjaGlsZE5vZGVzLmxlbmd0aDtcblxuICBpZiAoY2hpbGROb2Rlc0xlbmd0aCA9PT0gQlJBQ0tFVEVEX0NISUxEX05PREVTX0xFTkdUSCkge1xuICAgIGNvbnN0IGZpcnN0Q2hpbGROb2RlID0gZmlyc3QoY2hpbGROb2RlcyksXG4gICAgICAgICAgdGhpcmRDaGlsZE5vZGUgPSB0aGlyZChjaGlsZE5vZGVzKSxcbiAgICAgICAgICBzZWNvbmRDaGlsZE5vZGUgPSBzZWNvbmQoY2hpbGROb2RlcyksXG4gICAgICAgICAgZmlyc3RDaGlsZE5vZGVUZXJtaW5hbE5vZGUgPSBmaXJzdENoaWxkTm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHRoaXJkQ2hpbGROb2RlVGVybWluYWxOb2RlID0gdGhpcmRDaGlsZE5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICBzZWNvbmRDaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgPSBzZWNvbmRDaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChmaXJzdENoaWxkTm9kZVRlcm1pbmFsTm9kZSAmJiBzZWNvbmRDaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgdGhpcmRDaGlsZE5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHNlY29uZENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgZmlyc3RUZXJtaW5hbE5vZGUgPSBmaXJzdENoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICBzZWNvbmRUZXJtaW5hbE5vZGUgPSB0aGlyZENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICAgIGZpcnN0VGVybWluYWxOb2RlQ29udGVudCA9IGZpcnN0VGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICAgIHNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnQgPSBzZWNvbmRUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlUnVsZU5hbWVSdWxlTmFtZSA9IChub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9PT0gcnVsZU5hbWUpLFxuICAgICAgICAgICAgZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50TGVmdEJyYWNrZXQgPSAoZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50ID09PSBMRUZUX0JSQUNLRVQpLFxuICAgICAgICAgICAgc2Vjb25kVGVybWluYWxOb2RlQ29udGVudFJpZ2h0QnJhY2tldCA9IChzZWNvbmRUZXJtaW5hbE5vZGVDb250ZW50ID09PSBSSUdIVF9CUkFDS0VUKTtcblxuICAgICAgaWYgKG5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lUnVsZU5hbWUgJiYgZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50TGVmdEJyYWNrZXQgJiYgc2Vjb25kVGVybWluYWxOb2RlQ29udGVudFJpZ2h0QnJhY2tldCkge1xuICAgICAgICBicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZSA9IG5vblRlcm1pbmFsTm9kZTsgIC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZTtcbn1cblxuZnVuY3Rpb24gbWF0Y2hUZXJtaW5hbE5vZGUodGVybWluYWxOb2RlQSwgdGVybWluYWxOb2RlQikge1xuICBjb25zdCBtYXRjaGVzID0gdGVybWluYWxOb2RlQS5tYXRjaCh0ZXJtaW5hbE5vZGVCKSxcbiAgICAgICAgdGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7ICAvLy9cblxuICByZXR1cm4gdGVybWluYWxOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQikge1xuICBsZXQgbm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZUEuZ2V0UnVsZU5hbWUoKSwgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZUJSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZUIuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgaWYgKG5vblRlcm1pbmFsTm9kZUFSdWxlTmFtZSA9PT0gbm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGVBLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZUIuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vZGVzQSA9IG5vblRlcm1pbmFsTm9kZUFDaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBub2Rlc0IgPSBub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgbm9kZXNNYXRjaCA9IG1hdGNoTm9kZXMobm9kZXNBLCBub2Rlc0IpO1xuXG4gICAgbm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG5vZGVzTWF0Y2g7IC8vL1xuICB9XG5cbiAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsibWF0Y2hOb2RlIiwibWF0Y2hOb2RlcyIsIm1hdGNoQnJhY2tldGVkTm9uVGVybWluYWxOb2RlIiwiYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyIsIm5vZGVBIiwibm9kZUIiLCJub2RlTWF0Y2hlcyIsIm5vZGVBVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJub2RlQlRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZUEiLCJ0ZXJtaW5hbE5vZGVCIiwidGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub25UZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hOb25UZXJtaW5hbE5vZGUiLCJub2Rlc0EiLCJub2Rlc0IiLCJub2Rlc01hdGNoIiwibm9kZXNBTGVuZ3RoIiwibGVuZ3RoIiwibm9kZXNCTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsImJyYWNrZXRlZE5vZGVNYXRjaGVzIiwibm9uVGVybWluYWxOb2RlQUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiY2hpbGROb2Rlc0EiLCJicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCQ2hpbGROb2RlcyIsImNoaWxkTm9kZXNCIiwiYnJhY2tldGVkTm9uVGVybWluYWxDaGlsZE5vZGVCIiwiY2hpbGROb2RlcyIsInJ1bGVOYW1lIiwiTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUiLCJicmFja2V0ZWROb25UZXJtaW5hbENoaWxkTm9kZSIsImNoaWxkTm9kZXNMZW5ndGgiLCJCUkFDS0VURURfQ0hJTERfTk9ERVNfTEVOR1RIIiwiZmlyc3RDaGlsZE5vZGUiLCJmaXJzdCIsInRoaXJkQ2hpbGROb2RlIiwidGhpcmQiLCJzZWNvbmRDaGlsZE5vZGUiLCJzZWNvbmQiLCJmaXJzdENoaWxkTm9kZVRlcm1pbmFsTm9kZSIsInRoaXJkQ2hpbGROb2RlVGVybWluYWxOb2RlIiwic2Vjb25kQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJmaXJzdFRlcm1pbmFsTm9kZSIsInNlY29uZFRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50Iiwic2Vjb25kVGVybWluYWxOb2RlQ29udGVudCIsIm5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lUnVsZU5hbWUiLCJmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnRMZWZ0QnJhY2tldCIsIkxFRlRfQlJBQ0tFVCIsInNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnRSaWdodEJyYWNrZXQiLCJSSUdIVF9CUkFDS0VUIiwibWF0Y2hlcyIsIm1hdGNoIiwibm9uVGVybWluYWxOb2RlQVJ1bGVOYW1lIiwibm9uVGVybWluYWxOb2RlQlJ1bGVOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFNZ0JBLFNBQVM7ZUFBVEE7O0lBeUJBQyxVQUFVO2VBQVZBOztJQW9CQUMsNkJBQTZCO2VBQTdCQTs7SUF3Q0FDLDJDQUEyQztlQUEzQ0E7OztxQkF6RnFCO3lCQUNHO3lCQUNrQztBQUVuRSxTQUFTSCxVQUFVSSxLQUFLLEVBQUVDLEtBQUssRUFBRTtJQUN0QyxJQUFJQyxjQUFjLEtBQUs7SUFFdkIsSUFBTUMsb0JBQW9CSCxNQUFNSSxjQUFjLElBQ3hDQyxvQkFBb0JKLE1BQU1HLGNBQWM7SUFFOUMsSUFBSUQsc0JBQXNCRSxtQkFBbUI7UUFDM0MsSUFBSUYsbUJBQW1CO1lBQ3JCLElBQU1HLGdCQUFnQk4sT0FDaEJPLGdCQUFnQk4sT0FDaEJPLHNCQUFzQkMsa0JBQWtCSCxlQUFlQztZ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
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return verifyMetaSupposition;
9
- }
10
- });
11
- var _metaproof = /*#__PURE__*/ _interopRequireDefault(require("../step/metaproof"));
12
- var _metaSupposition = /*#__PURE__*/ _interopRequireDefault(require("../metaSupposition"));
13
- var _metastatement = /*#__PURE__*/ _interopRequireDefault(require("./metastatement"));
14
- var _query = require("../utilities/query");
15
- var _string = require("../utilities/string");
16
- function _interopRequireDefault(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- var metastatementNodeQuery = (0, _query.nodeQuery)("/metaSupposition/unqualifiedMetastatement!/metastatement!");
22
- function verifyMetaSupposition(metaSuppositionNode, metaSuppositions, metaproofContext) {
23
- var metaSuppositionVerified;
24
- metaproofContext.begin(metaSuppositionNode);
25
- var metaSuppositionString = (0, _string.nodeAsString)(metaSuppositionNode);
26
- metaproofContext.debug("Verifying the ".concat(metaSuppositionString, " metaSupposition..."));
27
- var metastatementNode = metastatementNodeQuery(metaSuppositionNode);
28
- if (metastatementNode !== null) {
29
- var qualified = false, metastatementVerified = (0, _metastatement.default)(metastatementNode, qualified, metaproofContext);
30
- if (metastatementVerified) {
31
- var metaproofStep = _metaproof.default.fromMetastatementNode(metastatementNode), metaSupposition = _metaSupposition.default.fromMetastatementNode(metastatementNode);
32
- metaSuppositions.push(metaSupposition);
33
- metaproofContext.addMetaproofStep(metaproofStep);
34
- }
35
- metaSuppositionVerified = true;
36
- }
37
- metaSuppositionVerified ? metaproofContext.complete(metaSuppositionNode) : metaproofContext.halt(metaSuppositionNode);
38
- return metaSuppositionVerified;
39
- }
40
-
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvbWV0YVN1cHBvc2l0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWV0YXByb29mU3RlcCBmcm9tIFwiLi4vc3RlcC9tZXRhcHJvb2ZcIjtcbmltcG9ydCBNZXRhU3VwcG9zaXRpb24gZnJvbSBcIi4uL21ldGFTdXBwb3NpdGlvblwiO1xuaW1wb3J0IHZlcmlmeU1ldGFzdGF0ZW1lbnQgZnJvbSBcIi4vbWV0YXN0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuXG5jb25zdCBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFTdXBwb3NpdGlvbi91bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnQhL21ldGFzdGF0ZW1lbnQhXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlNZXRhU3VwcG9zaXRpb24obWV0YVN1cHBvc2l0aW9uTm9kZSwgbWV0YVN1cHBvc2l0aW9ucywgbWV0YXByb29mQ29udGV4dCkge1xuICBsZXQgbWV0YVN1cHBvc2l0aW9uVmVyaWZpZWQ7XG5cbiAgbWV0YXByb29mQ29udGV4dC5iZWdpbihtZXRhU3VwcG9zaXRpb25Ob2RlKTtcblxuICBjb25zdCBtZXRhU3VwcG9zaXRpb25TdHJpbmcgPSBub2RlQXNTdHJpbmcobWV0YVN1cHBvc2l0aW9uTm9kZSk7XG5cbiAgbWV0YXByb29mQ29udGV4dC5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAke21ldGFTdXBwb3NpdGlvblN0cmluZ30gbWV0YVN1cHBvc2l0aW9uLi4uYCk7XG5cbiAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KG1ldGFTdXBwb3NpdGlvbk5vZGUpO1xuXG4gIGlmIChtZXRhc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHF1YWxpZmllZCA9IGZhbHNlLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeU1ldGFzdGF0ZW1lbnQobWV0YXN0YXRlbWVudE5vZGUsIHF1YWxpZmllZCwgbWV0YXByb29mQ29udGV4dCk7XG5cbiAgICBpZiAobWV0YXN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICBjb25zdCBtZXRhcHJvb2ZTdGVwID0gTWV0YXByb29mU3RlcC5mcm9tTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgbWV0YVN1cHBvc2l0aW9uID0gTWV0YVN1cHBvc2l0aW9uLmZyb21NZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIG1ldGFTdXBwb3NpdGlvbnMucHVzaChtZXRhU3VwcG9zaXRpb24pO1xuXG4gICAgICBtZXRhcHJvb2ZDb250ZXh0LmFkZE1ldGFwcm9vZlN0ZXAobWV0YXByb29mU3RlcCk7XG4gICAgfVxuXG4gICAgbWV0YVN1cHBvc2l0aW9uVmVyaWZpZWQgPSB0cnVlO1xuICB9XG5cbiAgbWV0YVN1cHBvc2l0aW9uVmVyaWZpZWQgP1xuICAgIG1ldGFwcm9vZkNvbnRleHQuY29tcGxldGUobWV0YVN1cHBvc2l0aW9uTm9kZSkgOlxuICAgICAgbWV0YXByb29mQ29udGV4dC5oYWx0KG1ldGFTdXBwb3NpdGlvbk5vZGUpO1xuXG4gIHJldHVybiBtZXRhU3VwcG9zaXRpb25WZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlNZXRhU3VwcG9zaXRpb24iLCJtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YVN1cHBvc2l0aW9uTm9kZSIsIm1ldGFTdXBwb3NpdGlvbnMiLCJtZXRhcHJvb2ZDb250ZXh0IiwibWV0YVN1cHBvc2l0aW9uVmVyaWZpZWQiLCJiZWdpbiIsIm1ldGFTdXBwb3NpdGlvblN0cmluZyIsIm5vZGVBc1N0cmluZyIsImRlYnVnIiwibWV0YXN0YXRlbWVudE5vZGUiLCJxdWFsaWZpZWQiLCJtZXRhc3RhdGVtZW50VmVyaWZpZWQiLCJ2ZXJpZnlNZXRhc3RhdGVtZW50IiwibWV0YXByb29mU3RlcCIsIk1ldGFwcm9vZlN0ZXAiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhU3VwcG9zaXRpb24iLCJNZXRhU3VwcG9zaXRpb24iLCJwdXNoIiwiYWRkTWV0YXByb29mU3RlcCIsImNvbXBsZXRlIiwiaGFsdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUF3QkE7Ozs4REFURTtvRUFDRTtrRUFDSTtxQkFFTjtzQkFDRzs7Ozs7O0FBRTdCLElBQU1DLHlCQUF5QkMsSUFBQUEsZ0JBQVMsRUFBQztBQUUxQixTQUFTRixzQkFBc0JHLG1CQUFtQixFQUFFQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCLEVBQUU7SUFDckcsSUFBSUM7SUFFSkQsaUJBQWlCRSxLQUFLLENBQUNKO0lBRXZCLElBQU1LLHdCQUF3QkMsSUFBQUEsb0JBQVksRUFBQ047SUFFM0NFLGlCQUFpQkssS0FBSyxDQUFDLEFBQUMsaUJBQXNDLE9BQXRCRix1QkFBc0I7SUFFOUQsSUFBTUcsb0JBQW9CVix1QkFBdUJFO0lBRWpELElBQUlRLHNCQUFzQixJQUFJLEVBQUU7UUFDOUIsSUFBTUMsWUFBWSxLQUFLLEVBQ2pCQyx3QkFBd0JDLElBQUFBLHNCQUFtQixFQUFDSCxtQkFBbUJDLFdBQVdQO1FBRWhGLElBQUlRLHVCQUF1QjtZQUN6QixJQUFNRSxnQkFBZ0JDLGtCQUFhLENBQUNDLHFCQUFxQixDQUFDTixvQkFDcERPLGtCQUFrQkMsd0JBQWUsQ0FBQ0YscUJBQXFCLENBQUNOO1lBRTlEUCxpQkFBaUJnQixJQUFJLENBQUNGO1lBRXRCYixpQkFBaUJnQixnQkFBZ0IsQ0FBQ047UUFDcEMsQ0FBQztRQUVEVCwwQkFBMEIsSUFBSTtJQUNoQyxDQUFDO0lBRURBLDBCQUNFRCxpQkFBaUJpQixRQUFRLENBQUNuQix1QkFDeEJFLGlCQUFpQmtCLElBQUksQ0FBQ3BCLG9CQUFvQjtJQUU5QyxPQUFPRztBQUNUIn0=
@@ -1,196 +0,0 @@
1
- "use strict";
2
-
3
- import MetaSubstitution from "./metaSubstitution";
4
-
5
- import { first } from "./utilities/array";
6
- import { nodeAsString } from "./utilities/string";
7
- import { metavariableNameFromMetavariableNode } from "./utilities/query";
8
- import { metastatementNodeFromMetastatementString } from "./utilities/string";
9
- import { METAVARIABLE_RULE_NAME, METASTATEMENT_RULE_NAME } from "./ruleNames";
10
-
11
- export default class MetaSupposition {
12
- constructor(metastatementNode) {
13
- this.metastatementNode = metastatementNode;
14
- }
15
-
16
- getMetastatementNode() {
17
- return this.metastatementNode;
18
- }
19
-
20
- matchMetastatementNode(metastatementNode, metaSubstitutions) {
21
- const nonTerminalNode = metastatementNode, ///
22
- metaSuppositionNonTerminalNode = this.metastatementNode, ///
23
- metaSuppositionNonTerminalNodeMatches = matchMetaSuppositionNonTerminalNode(metaSuppositionNonTerminalNode, nonTerminalNode, metaSubstitutions),
24
- metastatementNodeMatches = metaSuppositionNonTerminalNodeMatches; ///
25
-
26
- return metastatementNodeMatches;
27
- }
28
-
29
- toJSON() {
30
- const metastatementString = nodeAsString(this.metastatementNode),
31
- metastatement = metastatementString, ///
32
- json = {
33
- metastatement
34
- };
35
-
36
- return json;
37
- }
38
-
39
- static fromJSON(json, releaseContext) {
40
- const { metastatement } = json,
41
- metastatementString = metastatement, ///
42
- metastatementNode = metastatementNodeFromMetastatementString(metastatementString, releaseContext),
43
- metaSupposition = new MetaSupposition(metastatementNode);
44
-
45
- return metaSupposition;
46
- }
47
-
48
- static fromMetastatementNode(metastatementNode) {
49
- const metaSupposition = new MetaSupposition(metastatementNode);
50
-
51
- return metaSupposition;
52
- }
53
- }
54
-
55
- function matchMetaSuppositionNode(metaSuppositionNode, node, metaSubstitutions) {
56
- let metaSuppositionNodeMatches = false;
57
-
58
- const nodeTerminalNode = node.isTerminalNode(),
59
- ruleNodeTerminalNode = metaSuppositionNode.isTerminalNode();
60
-
61
- if (nodeTerminalNode === ruleNodeTerminalNode) {
62
- if (nodeTerminalNode) {
63
- const terminalNode = node, ///
64
- metaSuppositionTerminalNode = metaSuppositionNode, ///
65
- metaSuppositionTerminalNodeMatches = matchMetaSuppositionTerminalNode(metaSuppositionTerminalNode, terminalNode, metaSubstitutions);
66
-
67
- metaSuppositionNodeMatches = metaSuppositionTerminalNodeMatches; ///
68
- } else {
69
- const nonTerminalNode = node, ///
70
- metaSuppositionNonTerminalNode = metaSuppositionNode, ///
71
- metaSuppositionNonTerminalNodeMatches = matchMetaSuppositionNonTerminalNode(metaSuppositionNonTerminalNode, nonTerminalNode, metaSubstitutions);
72
-
73
- metaSuppositionNodeMatches = metaSuppositionNonTerminalNodeMatches; ///
74
- }
75
- }
76
-
77
- return metaSuppositionNodeMatches;
78
- }
79
-
80
- function matchMetaSuppositionNodes(metaSuppositionNodes, nodes, metaSubstitutions) {
81
- let metaSuppositionNodesMatches = false;
82
-
83
- const nodesLength = nodes.length,
84
- metaSuppositionNodesLength = metaSuppositionNodes.length;
85
-
86
- if (nodesLength === metaSuppositionNodesLength) {
87
- metaSuppositionNodesMatches = nodes.every((node, index) => {
88
- const metaSuppositionNode = metaSuppositionNodes[index],
89
- metaSuppositionNodeMatches = matchMetaSuppositionNode(metaSuppositionNode, node, metaSubstitutions);
90
-
91
- if (metaSuppositionNodeMatches) {
92
- return true;
93
- }
94
- });
95
- }
96
-
97
- return metaSuppositionNodesMatches;
98
- }
99
-
100
- function matchMetaSuppositionMetavariable(metaSuppositionMetavariableNode, nodes, metaSubstitutions) {
101
- let metaSuppositionMetavariableMatches;
102
-
103
- const metaSuppositionMetavariableName = metavariableNameFromMetavariableNode(metaSuppositionMetavariableNode),
104
- metaSubstitution = metaSubstitutions.find((metaSubstitution) => {
105
- const metavariableName = metaSubstitution.getMetavariableName();
106
-
107
- if (metavariableName === metaSuppositionMetavariableName) {
108
- return true;
109
- }
110
- }) || null;
111
-
112
- if (metaSubstitution !== null) {
113
- const metaSubstitutionNodesMatch = metaSubstitution.matchNodes(nodes);
114
-
115
- metaSuppositionMetavariableMatches = metaSubstitutionNodesMatch; ///
116
- } else {
117
- const metavariableName = metaSuppositionMetavariableName, ///
118
- metaSubstitution = MetaSubstitution.fromMetavariableNameAndNodes(metavariableName, nodes);
119
-
120
- metaSubstitutions.push(metaSubstitution);
121
-
122
- metaSuppositionMetavariableMatches = true;
123
- }
124
-
125
- return metaSuppositionMetavariableMatches;
126
- }
127
-
128
- function matchMetaSuppositionTerminalNode(metaSuppositionTerminalNode, terminalNode, metaSubstitutions) {
129
- const matches = metaSuppositionTerminalNode.match(terminalNode),
130
- metaSuppositionTerminalNodeMatches = matches;
131
-
132
- return metaSuppositionTerminalNodeMatches;
133
- }
134
-
135
- function matchMetaSuppositionNonTerminalNode(metaSuppositionNonTerminalNode, nonTerminalNode, metaSubstitutions) {
136
- let metaSuppositionNonTerminalNodeMatches = false;
137
-
138
- const ruleName = nonTerminalNode.getRuleName(),
139
- metaSuppositionRuleName = metaSuppositionNonTerminalNode.getRuleName(); ///
140
-
141
- if (ruleName === metaSuppositionRuleName) {
142
- const childNodes = nonTerminalNode.getChildNodes(),
143
- metaSuppositionChildNodes = metaSuppositionNonTerminalNode.getChildNodes(),
144
- nodes = childNodes, ///
145
- metaSuppositionNodes = metaSuppositionChildNodes, ///
146
- metaSuppositionChildNodesMatches = matchMetaSuppositionNodes(metaSuppositionNodes, nodes, metaSubstitutions);
147
-
148
- metaSuppositionNonTerminalNodeMatches = metaSuppositionChildNodesMatches; ///
149
-
150
- if (!metaSuppositionNonTerminalNodeMatches) {
151
- const ruleNameMetastatementRuleName = (ruleName === METASTATEMENT_RULE_NAME);
152
-
153
- if (ruleNameMetastatementRuleName) {
154
- const metastatementNode = nonTerminalNode, ///
155
- metaSuppositionMetastatementNode = metaSuppositionNonTerminalNode, ///
156
- metaSuppositionMetastatementNodeMatches = matchMetaSuppositionMetastatementNode(metaSuppositionMetastatementNode, metastatementNode, metaSubstitutions);
157
-
158
- metaSuppositionNonTerminalNodeMatches = metaSuppositionMetastatementNodeMatches; ///
159
- }
160
- }
161
- }
162
-
163
- return metaSuppositionNonTerminalNodeMatches;
164
- }
165
-
166
- function matchMetaSuppositionMetastatementNode(metaSuppositionMetastatementNode, metastatementNode, metaSubstitutions) {
167
- let metaSuppositionMetastatementNodeMatches = false;
168
-
169
- const metaSuppositionNonTerminalNode = metaSuppositionMetastatementNode, ///
170
- metaSuppositionChildNodes = metaSuppositionNonTerminalNode.getChildNodes(),
171
- metaSuppositionChildNodesLength = metaSuppositionChildNodes.length;
172
-
173
- if (metaSuppositionChildNodesLength === 1) {
174
- const firstMetaSuppositionChildNode = first(metaSuppositionChildNodes),
175
- metaSuppositionChildNode = firstMetaSuppositionChildNode, ///
176
- metaSuppositionChildNodeNonTerminalNode = metaSuppositionChildNode.isNonTerminalNode();
177
-
178
- if (metaSuppositionChildNodeNonTerminalNode) {
179
- const metaSuppositionNonTerminalChildNode = metaSuppositionChildNode, ///
180
- metaSuppositionNonTerminalChildNodeRuleName = metaSuppositionNonTerminalChildNode.getRuleName(),
181
- metaSuppositionNonTerminalChildNodeRuleNameMetavariableRuleName = (metaSuppositionNonTerminalChildNodeRuleName === METAVARIABLE_RULE_NAME);
182
-
183
- if (metaSuppositionNonTerminalChildNodeRuleNameMetavariableRuleName) {
184
- const metaSuppositionMetavariableNode = metaSuppositionNonTerminalChildNode, ///
185
- nonTerminalNode = metastatementNode, ///
186
- childNodes = nonTerminalNode.getChildNodes(),
187
- nodes = childNodes, ///
188
- metaSuppositionMetavariableMatches = matchMetaSuppositionMetavariable(metaSuppositionMetavariableNode, nodes, metaSubstitutions);
189
-
190
- metaSuppositionMetastatementNodeMatches = metaSuppositionMetavariableMatches; ///
191
- }
192
- }
193
- }
194
-
195
- return metaSuppositionMetastatementNodeMatches;
196
- }