occam-verify-cli 0.0.870 → 0.0.872

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 (61) hide show
  1. package/lib/axiomLemmaTheoremConjecture.js +13 -13
  2. package/lib/context/file.js +94 -71
  3. package/lib/label.js +5 -6
  4. package/lib/metaLemmaMetatheorem.js +13 -13
  5. package/lib/metaType/context.js +124 -0
  6. package/lib/metaType/label.js +124 -0
  7. package/lib/metaType/statement.js +124 -0
  8. package/lib/metaType.js +1 -112
  9. package/lib/metaTypeNames.js +6 -2
  10. package/lib/metaTypes.js +12 -4
  11. package/lib/metavariable.js +49 -9
  12. package/lib/mixins/context.js +36 -28
  13. package/lib/rule.js +13 -13
  14. package/lib/ruleNames.js +4 -4
  15. package/lib/utilities/name.js +8 -8
  16. package/lib/utilities/node.js +14 -14
  17. package/lib/utilities/query.js +4 -9
  18. package/lib/utilities/tokens.js +6 -6
  19. package/lib/verify/axiom.js +4 -4
  20. package/lib/verify/conjecture.js +4 -4
  21. package/lib/verify/label.js +8 -9
  22. package/lib/verify/labels.js +15 -8
  23. package/lib/verify/lemma.js +4 -4
  24. package/lib/verify/metaLemma.js +4 -4
  25. package/lib/verify/metastatement/qualified.js +3 -3
  26. package/lib/verify/metatheorem.js +4 -4
  27. package/lib/verify/metavariable.js +35 -9
  28. package/lib/verify/rule.js +4 -4
  29. package/lib/verify/statement/qualified.js +29 -29
  30. package/lib/verify/theorem.js +4 -4
  31. package/package.json +1 -1
  32. package/src/axiomLemmaTheoremConjecture.js +13 -13
  33. package/src/context/file.js +98 -72
  34. package/src/label.js +6 -7
  35. package/src/metaLemmaMetatheorem.js +13 -13
  36. package/src/metaType/context.js +18 -0
  37. package/src/metaType/label.js +18 -0
  38. package/src/metaType/statement.js +18 -0
  39. package/src/metaType.js +0 -23
  40. package/src/metaTypeNames.js +2 -1
  41. package/src/metaTypes.js +4 -1
  42. package/src/metavariable.js +60 -10
  43. package/src/mixins/context.js +23 -17
  44. package/src/rule.js +13 -13
  45. package/src/ruleNames.js +1 -1
  46. package/src/utilities/name.js +7 -7
  47. package/src/utilities/node.js +13 -13
  48. package/src/utilities/query.js +3 -9
  49. package/src/utilities/tokens.js +4 -4
  50. package/src/verify/axiom.js +4 -4
  51. package/src/verify/conjecture.js +4 -4
  52. package/src/verify/label.js +8 -9
  53. package/src/verify/labels.js +17 -7
  54. package/src/verify/lemma.js +4 -4
  55. package/src/verify/metaLemma.js +4 -4
  56. package/src/verify/metastatement/qualified.js +5 -4
  57. package/src/verify/metatheorem.js +4 -4
  58. package/src/verify/metavariable.js +59 -11
  59. package/src/verify/rule.js +4 -4
  60. package/src/verify/statement/qualified.js +35 -30
  61. package/src/verify/theorem.js +4 -4
@@ -12,11 +12,15 @@ _export(exports, {
12
12
  CONTEXT_META_TYPE_NAME: function() {
13
13
  return CONTEXT_META_TYPE_NAME;
14
14
  },
15
+ LABEL_META_TYPE_NAME: function() {
16
+ return LABEL_META_TYPE_NAME;
17
+ },
15
18
  STATEMENT_META_TYPE_NAME: function() {
16
19
  return STATEMENT_META_TYPE_NAME;
17
20
  }
18
21
  });
19
- var CONTEXT_META_TYPE_NAME = "Context";
20
22
  var STATEMENT_META_TYPE_NAME = "Statement";
23
+ var CONTEXT_META_TYPE_NAME = "Context";
24
+ var LABEL_META_TYPE_NAME = "Label";
21
25
 
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhVHlwZU5hbWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgQ09OVEVYVF9NRVRBX1RZUEVfTkFNRSA9IFwiQ29udGV4dFwiO1xuZXhwb3J0IGNvbnN0IFNUQVRFTUVOVF9NRVRBX1RZUEVfTkFNRSA9IFwiU3RhdGVtZW50XCI7XG4iXSwibmFtZXMiOlsiQ09OVEVYVF9NRVRBX1RZUEVfTkFNRSIsIlNUQVRFTUVOVF9NRVRBX1RZUEVfTkFNRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBRWFBLHNCQUFzQjtlQUF0QkE7O0lBQ0FDLHdCQUF3QjtlQUF4QkE7OztBQUROLElBQU1ELHlCQUF5QjtBQUMvQixJQUFNQywyQkFBMkIifQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhVHlwZU5hbWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgY29uc3QgU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FID0gXCJTdGF0ZW1lbnRcIjtcbmV4cG9ydCBjb25zdCBDT05URVhUX01FVEFfVFlQRV9OQU1FID0gXCJDb250ZXh0XCI7XG5leHBvcnQgY29uc3QgTEFCRUxfTUVUQV9UWVBFX05BTUUgPSBcIkxhYmVsXCI7XG4iXSwibmFtZXMiOlsiQ09OVEVYVF9NRVRBX1RZUEVfTkFNRSIsIkxBQkVMX01FVEFfVFlQRV9OQU1FIiwiU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFHYUEsc0JBQXNCO2VBQXRCQTs7SUFDQUMsb0JBQW9CO2VBQXBCQTs7SUFGQUMsd0JBQXdCO2VBQXhCQTs7O0FBQU4sSUFBTUEsMkJBQTJCO0FBQ2pDLElBQU1GLHlCQUF5QjtBQUMvQixJQUFNQyx1QkFBdUIifQ==
package/lib/metaTypes.js CHANGED
@@ -8,11 +8,19 @@ Object.defineProperty(exports, "default", {
8
8
  return _default;
9
9
  }
10
10
  });
11
- var _metaType = require("./metaType");
11
+ var _label = /*#__PURE__*/ _interop_require_default(require("./metaType/label"));
12
+ var _context = /*#__PURE__*/ _interop_require_default(require("./metaType/context"));
13
+ var _statement = /*#__PURE__*/ _interop_require_default(require("./metaType/statement"));
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
12
19
  var metaTypes = [
13
- _metaType.contextMetaType,
14
- _metaType.statementMetaType
20
+ _label.default,
21
+ _context.default,
22
+ _statement.default
15
23
  ];
16
24
  var _default = metaTypes;
17
25
 
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhVHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGNvbnRleHRNZXRhVHlwZSwgc3RhdGVtZW50TWV0YVR5cGUgfSBmcm9tIFwiLi9tZXRhVHlwZVwiO1xuXG5jb25zdCBtZXRhVHlwZXMgPSBbXG4gIGNvbnRleHRNZXRhVHlwZSxcbiAgc3RhdGVtZW50TWV0YVR5cGVcbl07XG5cbmV4cG9ydCBkZWZhdWx0IG1ldGFUeXBlcztcbiJdLCJuYW1lcyI6WyJtZXRhVHlwZXMiLCJjb250ZXh0TWV0YVR5cGUiLCJzdGF0ZW1lbnRNZXRhVHlwZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7d0JBUG1EO0FBRW5ELElBQU1BLFlBQVk7SUFDaEJDLHlCQUFlO0lBQ2ZDLDJCQUFpQjtDQUNsQjtJQUVELFdBQWVGIn0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhVHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBsYWJlbE1ldGFUeXBlIGZyb20gXCIuL21ldGFUeXBlL2xhYmVsXCI7XG5pbXBvcnQgY29udGV4dE1ldGFUeXBlIGZyb20gXCIuL21ldGFUeXBlL2NvbnRleHRcIjtcbmltcG9ydCBzdGF0ZW1lbnRNZXRhVHlwZSBmcm9tIFwiLi9tZXRhVHlwZS9zdGF0ZW1lbnRcIjtcblxuY29uc3QgbWV0YVR5cGVzID0gW1xuICBsYWJlbE1ldGFUeXBlLFxuICBjb250ZXh0TWV0YVR5cGUsXG4gIHN0YXRlbWVudE1ldGFUeXBlXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBtZXRhVHlwZXM7XG4iXSwibmFtZXMiOlsibWV0YVR5cGVzIiwibGFiZWxNZXRhVHlwZSIsImNvbnRleHRNZXRhVHlwZSIsInN0YXRlbWVudE1ldGFUeXBlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7Ozs0REFWMEI7OERBQ0U7Z0VBQ0U7Ozs7OztBQUU5QixJQUFNQSxZQUFZO0lBQ2hCQyxjQUFhO0lBQ2JDLGdCQUFlO0lBQ2ZDLGtCQUFpQjtDQUNsQjtJQUVELFdBQWVIIn0=
@@ -8,8 +8,11 @@ Object.defineProperty(exports, "default", {
8
8
  return Metavariable;
9
9
  }
10
10
  });
11
+ var _query = require("./utilities/query");
11
12
  var _string = require("./utilities/string");
13
+ var _name = require("./utilities/name");
12
14
  var _metaType = require("./metaType");
15
+ var _node = require("./utilities/node");
13
16
  function _class_call_check(instance, Constructor) {
14
17
  if (!(instance instanceof Constructor)) {
15
18
  throw new TypeError("Cannot call a class as a function");
@@ -29,10 +32,13 @@ function _create_class(Constructor, protoProps, staticProps) {
29
32
  if (staticProps) _defineProperties(Constructor, staticProps);
30
33
  return Constructor;
31
34
  }
35
+ var typeNodeQuery = (0, _query.nodeQuery)("/metavariable/argument!/type!");
32
36
  var Metavariable = /*#__PURE__*/ function() {
33
- function Metavariable(node, metaType) {
37
+ function Metavariable(node, name, termType, metaType) {
34
38
  _class_call_check(this, Metavariable);
35
39
  this.node = node;
40
+ this.name = name;
41
+ this.termType = termType;
36
42
  this.metaType = metaType;
37
43
  }
38
44
  _create_class(Metavariable, [
@@ -42,23 +48,46 @@ var Metavariable = /*#__PURE__*/ function() {
42
48
  return this.node;
43
49
  }
44
50
  },
51
+ {
52
+ key: "getName",
53
+ value: function getName() {
54
+ return this.name;
55
+ }
56
+ },
57
+ {
58
+ key: "getTermType",
59
+ value: function getTermType() {
60
+ return this.termType;
61
+ }
62
+ },
45
63
  {
46
64
  key: "getMetaType",
47
65
  value: function getMetaType() {
48
66
  return this.metaType;
49
67
  }
50
68
  },
69
+ {
70
+ key: "matchName",
71
+ value: function matchName(name) {
72
+ var nameMatches = this.name === name;
73
+ return nameMatches;
74
+ }
75
+ },
51
76
  {
52
77
  key: "matchNode",
53
78
  value: function matchNode(node) {
54
- var nodeMatches = this.node.match(node);
79
+ var nodeMatches;
80
+ var metavariableNode = node, name = (0, _name.nameFromMetavariableNode)(metavariableNode);
81
+ if (this.name === name) {
82
+ nodeMatches = true;
83
+ }
55
84
  return nodeMatches;
56
85
  }
57
86
  },
58
87
  {
59
88
  key: "toJSON",
60
89
  value: function toJSON(tokens) {
61
- var metaTypeJSON = this.metaType.toJSON(tokens), metaType = metaTypeJSON, string = (0, _string.nodeAsString)(this.node, tokens), node = string, json = {
90
+ var metaTypeJSON = this.metaType.toJSON(tokens), string = (0, _string.nodeAsString)(this.node, tokens), node = string, metaType = metaTypeJSON, json = {
62
91
  node: node,
63
92
  metaType: metaType
64
93
  };
@@ -70,7 +99,7 @@ var Metavariable = /*#__PURE__*/ function() {
70
99
  value: function asString(tokens) {
71
100
  var metaTypeName = this.metaType.getName();
72
101
  var string = (0, _string.nodeAsString)(this.node, tokens);
73
- string = "".concat(string, ":").concat(metaTypeName);
102
+ string = "".concat(string, ":").concat(metaTypeName); ///
74
103
  return string;
75
104
  }
76
105
  }
@@ -79,22 +108,33 @@ var Metavariable = /*#__PURE__*/ function() {
79
108
  key: "fromJSONAndFileContext",
80
109
  value: function fromJSONAndFileContext(json, fileContext) {
81
110
  var node = json.node;
111
+ var lexer = fileContext.getLexer(), parser = fileContext.getParser(), variableString = node, metavariableNode = (0, _node.metavariableNodeFromMetavariableString)(variableString, lexer, parser);
112
+ node = metavariableNode; ///
82
113
  var metaType = json.metaType;
83
114
  json = metaType; ///
84
115
  metaType = (0, _metaType.metaTypeFromJSONAndFileContext)(json, fileContext);
85
- var metavariable = new Metavariable(node, metaType);
116
+ var name = (0, _name.nameFromMetavariableNode)(metavariableNode), termType = termTypeFromMetavariableNode(metavariableNode, fileContext), metavariable = new Metavariable(node, name, termType, metaType);
86
117
  return metavariable;
87
118
  }
88
119
  },
89
120
  {
90
- key: "fromMetavariableNodeAndMetaType",
91
- value: function fromMetavariableNodeAndMetaType(metavariableNode, metaType) {
92
- var node = metavariableNode, metavariable = new Metavariable(node, metaType);
121
+ key: "fromNodeNameTermTypeAndMetaType",
122
+ value: function fromNodeNameTermTypeAndMetaType(node, name, termType, metaType) {
123
+ var metavariable = new Metavariable(node, name, termType, metaType);
93
124
  return metavariable;
94
125
  }
95
126
  }
96
127
  ]);
97
128
  return Metavariable;
98
129
  }();
130
+ function termTypeFromMetavariableNode(metavariableNode, fileContext) {
131
+ var termType = null;
132
+ var typeNode = typeNodeQuery(metavariableNode);
133
+ if (typeNode !== null) {
134
+ var type = fileContext.findTypeByTypeNode(typeNode);
135
+ termType = type; ///
136
+ }
137
+ return termType;
138
+ }
99
139
 
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVBc1N0cmluZyB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IG1ldGFUeXBlRnJvbUpTT05BbmRGaWxlQ29udGV4dCB9IGZyb20gXCIuL21ldGFUeXBlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1ldGF2YXJpYWJsZSB7XG4gIGNvbnN0cnVjdG9yKG5vZGUsIG1ldGFUeXBlKSB7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLm1ldGFUeXBlID0gbWV0YVR5cGU7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXRNZXRhVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhVHlwZTtcbiAgfVxuXG4gIG1hdGNoTm9kZShub2RlKSB7XG4gICAgY29uc3Qgbm9kZU1hdGNoZXMgPSB0aGlzLm5vZGUubWF0Y2gobm9kZSk7XG5cbiAgICByZXR1cm4gbm9kZU1hdGNoZXM7XG4gIH1cblxuICB0b0pTT04odG9rZW5zKSB7XG4gICAgY29uc3QgbWV0YVR5cGVKU09OID0gdGhpcy5tZXRhVHlwZS50b0pTT04odG9rZW5zKSxcbiAgICAgICAgICBtZXRhVHlwZSA9IG1ldGFUeXBlSlNPTiwgIC8vL1xuICAgICAgICAgIHN0cmluZyA9IG5vZGVBc1N0cmluZyh0aGlzLm5vZGUsIHRva2VucyksXG4gICAgICAgICAgbm9kZSA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWV0YVR5cGVcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBhc1N0cmluZyh0b2tlbnMpIHtcbiAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSB0aGlzLm1ldGFUeXBlLmdldE5hbWUoKTtcblxuICAgIGxldCBzdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5ub2RlLCB0b2tlbnMpO1xuXG4gICAgc3RyaW5nID0gYCR7c3RyaW5nfToke21ldGFUeXBlTmFtZX1gO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBub2RlIH0gPSBqc29uO1xuXG4gICAgbGV0IHsgbWV0YVR5cGUgfSA9IGpzb247XG5cbiAgICBqc29uID0gbWV0YVR5cGU7ICAvLy9cblxuICAgIG1ldGFUeXBlID0gbWV0YVR5cGVGcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IG5ldyBNZXRhdmFyaWFibGUobm9kZSwgbWV0YVR5cGUpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXZhcmlhYmxlTm9kZUFuZE1ldGFUeXBlKG1ldGF2YXJpYWJsZU5vZGUsIG1ldGFUeXBlKSB7XG4gICAgY29uc3Qgbm9kZSA9IG1ldGF2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSBuZXcgTWV0YXZhcmlhYmxlKG5vZGUsIG1ldGFUeXBlKTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGU7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJNZXRhdmFyaWFibGUiLCJub2RlIiwibWV0YVR5cGUiLCJnZXROb2RlIiwiZ2V0TWV0YVR5cGUiLCJtYXRjaE5vZGUiLCJub2RlTWF0Y2hlcyIsIm1hdGNoIiwidG9KU09OIiwidG9rZW5zIiwibWV0YVR5cGVKU09OIiwic3RyaW5nIiwibm9kZUFzU3RyaW5nIiwianNvbiIsImFzU3RyaW5nIiwibWV0YVR5cGVOYW1lIiwiZ2V0TmFtZSIsImZyb21KU09OQW5kRmlsZUNvbnRleHQiLCJmaWxlQ29udGV4dCIsIm1ldGFUeXBlRnJvbUpTT05BbmRGaWxlQ29udGV4dCIsIm1ldGF2YXJpYWJsZSIsImZyb21NZXRhdmFyaWFibGVOb2RlQW5kTWV0YVR5cGUiLCJtZXRhdmFyaWFibGVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUtxQkE7OztzQkFIUTt3QkFDa0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWhDLElBQUEsQUFBTUEsNkJBQUQsQUFBTDthQUFNQSxhQUNQQyxJQUFJLEVBQUVDLFFBQVE7Z0NBRFBGO1FBRWpCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTs7a0JBSENGOztZQU1uQkcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixJQUFJO1lBQ2xCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixRQUFRO1lBQ3RCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVKLElBQUk7Z0JBQ1osSUFBTUssY0FBYyxJQUFJLENBQUNMLElBQUksQ0FBQ00sS0FBSyxDQUFDTjtnQkFFcEMsT0FBT0s7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxPQUFPQyxNQUFNO2dCQUNYLElBQU1DLGVBQWUsSUFBSSxDQUFDUixRQUFRLENBQUNNLE1BQU0sQ0FBQ0MsU0FDcENQLFdBQVdRLGNBQ1hDLFNBQVNDLElBQUFBLG9CQUFZLEVBQUMsSUFBSSxDQUFDWCxJQUFJLEVBQUVRLFNBQ2pDUixPQUFPVSxRQUNQRSxPQUFPO29CQUNMWixNQUFBQTtvQkFDQUMsVUFBQUE7Z0JBQ0Y7Z0JBRU4sT0FBT1c7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxTQUFTTCxNQUFNO2dCQUNiLElBQU1NLGVBQWUsSUFBSSxDQUFDYixRQUFRLENBQUNjLE9BQU87Z0JBRTFDLElBQUlMLFNBQVNDLElBQUFBLG9CQUFZLEVBQUMsSUFBSSxDQUFDWCxJQUFJLEVBQUVRO2dCQUVyQ0UsU0FBUyxBQUFDLEdBQVlJLE9BQVZKLFFBQU8sS0FBZ0IsT0FBYkk7Z0JBRXRCLE9BQU9KO1lBQ1Q7Ozs7WUFFT00sS0FBQUE7bUJBQVAsU0FBT0EsdUJBQXVCSixJQUFJLEVBQUVLLFdBQVc7Z0JBQzdDLElBQU0sQUFBRWpCLE9BQVNZLEtBQVRaO2dCQUVSLElBQUksQUFBRUMsV0FBYVcsS0FBYlg7Z0JBRU5XLE9BQU9YLFVBQVcsR0FBRztnQkFFckJBLFdBQVdpQixJQUFBQSx3Q0FBOEIsRUFBQ04sTUFBTUs7Z0JBRWhELElBQU1FLGVBQWUsSUFwREpwQixhQW9EcUJDLE1BQU1DO2dCQUU1QyxPQUFPa0I7WUFDVDs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLGdDQUFnQ0MsZ0JBQWdCLEVBQUVwQixRQUFRO2dCQUMvRCxJQUFNRCxPQUFPcUIsa0JBQ1BGLGVBQWUsSUEzREpwQixhQTJEcUJDLE1BQU1DO2dCQUU1QyxPQUFPa0I7WUFDVDs7O1dBOURtQnBCIn0=
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4vdXRpbGl0aWVzL25hbWVcIjtcbmltcG9ydCB7IG1ldGFUeXBlRnJvbUpTT05BbmRGaWxlQ29udGV4dCB9IGZyb20gXCIuL21ldGFUeXBlXCI7XG5pbXBvcnQgeyBtZXRhdmFyaWFibGVOb2RlRnJvbU1ldGF2YXJpYWJsZVN0cmluZyB9IGZyb20gXCIuL3V0aWxpdGllcy9ub2RlXCI7XG5cbmNvbnN0IHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlL2FyZ3VtZW50IS90eXBlIVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWV0YXZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Iobm9kZSwgbmFtZSwgdGVybVR5cGUsIG1ldGFUeXBlKSB7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudGVybVR5cGUgPSB0ZXJtVHlwZTtcbiAgICB0aGlzLm1ldGFUeXBlID0gbWV0YVR5cGU7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRUZXJtVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtVHlwZTtcbiAgfVxuXG4gIGdldE1ldGFUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFUeXBlO1xuICB9XG5cbiAgbWF0Y2hOYW1lKG5hbWUpIHtcbiAgICBjb25zdCBuYW1lTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IG5hbWUpO1xuXG4gICAgcmV0dXJuIG5hbWVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hOb2RlKG5vZGUpIHtcbiAgICBsZXQgbm9kZU1hdGNoZXM7XG5cbiAgICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICBpZiAodGhpcy5uYW1lID09PSBuYW1lKSB7XG4gICAgICBub2RlTWF0Y2hlcyA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vZGVNYXRjaGVzO1xuICB9XG5cbiAgdG9KU09OKHRva2Vucykge1xuICAgIGNvbnN0IG1ldGFUeXBlSlNPTiA9IHRoaXMubWV0YVR5cGUudG9KU09OKHRva2VucyksXG4gICAgICAgICAgc3RyaW5nID0gbm9kZUFzU3RyaW5nKHRoaXMubm9kZSwgdG9rZW5zKSxcbiAgICAgICAgICBub2RlID0gc3RyaW5nLCAgLy9cbiAgICAgICAgICBtZXRhVHlwZSA9IG1ldGFUeXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgbWV0YVR5cGVcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBhc1N0cmluZyh0b2tlbnMpIHtcbiAgICBjb25zdCBtZXRhVHlwZU5hbWUgPSB0aGlzLm1ldGFUeXBlLmdldE5hbWUoKTtcblxuICAgIGxldCBzdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5ub2RlLCB0b2tlbnMpO1xuXG4gICAgc3RyaW5nID0gYCR7c3RyaW5nfToke21ldGFUeXBlTmFtZX1gOyAvLy9cblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT05BbmRGaWxlQ29udGV4dChqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCB7IG5vZGUgfSA9IGpzb247XG5cbiAgICBjb25zdCBsZXhlciAgPSBmaWxlQ29udGV4dC5nZXRMZXhlcigpLFxuICAgICAgICAgIHBhcnNlciA9IGZpbGVDb250ZXh0LmdldFBhcnNlcigpLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gbm9kZSwgIC8vL1xuICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlRnJvbU1ldGF2YXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgbGV4ZXIsIHBhcnNlcik7XG5cbiAgICBub2RlID0gbWV0YXZhcmlhYmxlTm9kZTsgIC8vL1xuXG4gICAgbGV0IHsgbWV0YVR5cGUgfSA9IGpzb247XG5cbiAgICBqc29uID0gbWV0YVR5cGU7ICAvLy9cblxuICAgIG1ldGFUeXBlID0gbWV0YVR5cGVGcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIGNvbnN0IG5hbWUgPSBuYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgdGVybVR5cGUgPSB0ZXJtVHlwZUZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSBuZXcgTWV0YXZhcmlhYmxlKG5vZGUsIG5hbWUsIHRlcm1UeXBlLCBtZXRhVHlwZSk7XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob2RlTmFtZVRlcm1UeXBlQW5kTWV0YVR5cGUobm9kZSwgbmFtZSwgdGVybVR5cGUsIG1ldGFUeXBlKSB7XG4gICAgY29uc3QgbWV0YXZhcmlhYmxlID0gbmV3IE1ldGF2YXJpYWJsZShub2RlLCBuYW1lLCB0ZXJtVHlwZSwgbWV0YVR5cGUpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0ZXJtVHlwZUZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0ZXJtVHlwZSA9IG51bGw7XG5cbiAgY29uc3QgdHlwZU5vZGUgPSB0eXBlTm9kZVF1ZXJ5KG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmICh0eXBlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICAgIHRlcm1UeXBlID0gdHlwZTsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIHRlcm1UeXBlO1xufVxuIl0sIm5hbWVzIjpbIk1ldGF2YXJpYWJsZSIsInR5cGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJub2RlIiwibmFtZSIsInRlcm1UeXBlIiwibWV0YVR5cGUiLCJnZXROb2RlIiwiZ2V0TmFtZSIsImdldFRlcm1UeXBlIiwiZ2V0TWV0YVR5cGUiLCJtYXRjaE5hbWUiLCJuYW1lTWF0Y2hlcyIsIm1hdGNoTm9kZSIsIm5vZGVNYXRjaGVzIiwibWV0YXZhcmlhYmxlTm9kZSIsIm5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsInRvSlNPTiIsInRva2VucyIsIm1ldGFUeXBlSlNPTiIsInN0cmluZyIsIm5vZGVBc1N0cmluZyIsImpzb24iLCJhc1N0cmluZyIsIm1ldGFUeXBlTmFtZSIsImZyb21KU09OQW5kRmlsZUNvbnRleHQiLCJmaWxlQ29udGV4dCIsImxleGVyIiwiZ2V0TGV4ZXIiLCJwYXJzZXIiLCJnZXRQYXJzZXIiLCJ2YXJpYWJsZVN0cmluZyIsIm1ldGF2YXJpYWJsZU5vZGVGcm9tTWV0YXZhcmlhYmxlU3RyaW5nIiwibWV0YVR5cGVGcm9tSlNPTkFuZEZpbGVDb250ZXh0IiwidGVybVR5cGVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZSIsImZyb21Ob2RlTmFtZVRlcm1UeXBlQW5kTWV0YVR5cGUiLCJ0eXBlTm9kZSIsInR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBVXFC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
@@ -47,35 +47,41 @@ function getConstructors() {
47
47
  function findTypeByTypeName(typeName) {
48
48
  return this.context.findTypeByTypeName(typeName);
49
49
  }
50
- function findTypeByTypeNode(labelNode) {
51
- return this.context.findTypeByTypeNode(labelNode);
50
+ function findTypeByTypeNode(labelMetavariableNode) {
51
+ return this.context.findTypeByTypeNode(labelMetavariableNode);
52
52
  }
53
- function findLabelByLabelNode(labelNode) {
54
- return this.context.findLabelByLabelNode(labelNode);
53
+ function findMetavariableByName(name) {
54
+ return this.context.findMetavariableByName(name);
55
55
  }
56
- function findRuleByLabelNode(labelNode) {
57
- return this.context.findRuleByLabelNode(labelNode);
56
+ function isTypePresentByTypeName(typeName) {
57
+ return this.context.isTypePresentByTypeName(typeName);
58
58
  }
59
- function findAxiomByLabelNode(labelNode) {
60
- return this.context.findAxiomByLabelNode(labelNode);
59
+ function isTypePresentByTypeNode(typeNode) {
60
+ return this.context.isTypePresentByTypeNode(typeNode);
61
61
  }
62
- function findLemmaByLabelNode(labelNode) {
63
- return this.context.findLemmaByLabelNode(labelNode);
62
+ function isMetavariablePresentByName(name) {
63
+ return this.context.isMetavariablePresentByName(name);
64
64
  }
65
- function findTheoremByLabelNode(labelNode) {
66
- return this.context.findTheoremByLabelNode(labelNode);
65
+ function findLabelByLabelMetavariableNode(labelMetavariableNode) {
66
+ return this.context.findLabelByLabelMetavariableNode(labelMetavariableNode);
67
67
  }
68
- function findConjectureByLabelNode(labelNode) {
69
- return this.context.findConjectureByLabelNode(labelNode);
68
+ function findRuleByLabelMetavariableNode(labelMetavariableNode) {
69
+ return this.context.findRuleByLabelMetavariableNode(labelMetavariableNode);
70
70
  }
71
- function isTypePresentByTypeName(typeName) {
72
- return this.context.isTypePresentByTypeName(typeName);
71
+ function findAxiomByLabelMetavariableNode(labelMetavariableNode) {
72
+ return this.context.findAxiomByLabelMetavariableNode(labelMetavariableNode);
73
73
  }
74
- function isTypePresentByTypeNode(typeNode) {
75
- return this.context.isTypePresentByTypeNode(typeNode);
74
+ function findLemmaByLabelMetavariableNode(labelMetavariableNode) {
75
+ return this.context.findLemmaByLabelMetavariableNode(labelMetavariableNode);
76
+ }
77
+ function findTheoremByLabelMetavariableNode(labelMetavariableNode) {
78
+ return this.context.findTheoremByLabelMetavariableNode(labelMetavariableNode);
79
+ }
80
+ function findConjectureByLabelMetavariableNode(labelMetavariableNode) {
81
+ return this.context.findConjectureByLabelMetavariableNode(labelMetavariableNode);
76
82
  }
77
- function isLabelPresentByLabelNode(labelNode) {
78
- return this.context.isLabelPresentByLabelNode(labelNode);
83
+ function isLabelPresentByLabelMetavariableNode(labelMetavariableNode) {
84
+ return this.context.isLabelPresentByLabelMetavariableNode(labelMetavariableNode);
79
85
  }
80
86
  function nodeAsString(node) {
81
87
  return this.context.nodeAsString(node);
@@ -98,18 +104,20 @@ var contextMixins = {
98
104
  getConstructors: getConstructors,
99
105
  findTypeByTypeName: findTypeByTypeName,
100
106
  findTypeByTypeNode: findTypeByTypeNode,
101
- findLabelByLabelNode: findLabelByLabelNode,
102
- findRuleByLabelNode: findRuleByLabelNode,
103
- findAxiomByLabelNode: findAxiomByLabelNode,
104
- findLemmaByLabelNode: findLemmaByLabelNode,
105
- findTheoremByLabelNode: findTheoremByLabelNode,
106
- findConjectureByLabelNode: findConjectureByLabelNode,
107
+ findMetavariableByName: findMetavariableByName,
107
108
  isTypePresentByTypeName: isTypePresentByTypeName,
108
109
  isTypePresentByTypeNode: isTypePresentByTypeNode,
109
- isLabelPresentByLabelNode: isLabelPresentByLabelNode,
110
+ isMetavariablePresentByName: isMetavariablePresentByName,
111
+ findLabelByLabelMetavariableNode: findLabelByLabelMetavariableNode,
112
+ findRuleByLabelMetavariableNode: findRuleByLabelMetavariableNode,
113
+ findAxiomByLabelMetavariableNode: findAxiomByLabelMetavariableNode,
114
+ findLemmaByLabelMetavariableNode: findLemmaByLabelMetavariableNode,
115
+ findTheoremByLabelMetavariableNode: findTheoremByLabelMetavariableNode,
116
+ findConjectureByLabelMetavariableNode: findConjectureByLabelMetavariableNode,
117
+ isLabelPresentByLabelMetavariableNode: isLabelPresentByLabelMetavariableNode,
110
118
  nodeAsString: nodeAsString,
111
119
  nodesAsString: nodesAsString
112
120
  };
113
121
  var _default = contextMixins;
114
122
 
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gdHJhY2Uobm9kZSwgbWVzc2FnZSkgeyB0aGlzLmNvbnRleHQudHJhY2Uobm9kZSwgbWVzc2FnZSk7IH1cblxuZnVuY3Rpb24gZGVidWcobm9kZSwgbWVzc2FnZSkgeyB0aGlzLmNvbnRleHQuZGVidWcobm9kZSwgbWVzc2FnZSk7IH1cblxuZnVuY3Rpb24gaW5mbyhub2RlLCBtZXNzYWdlKSB7IHRoaXMuY29udGV4dC5pbmZvKG5vZGUsIG1lc3NhZ2UpOyB9XG5cbmZ1bmN0aW9uIHdhcm5pbmcobm9kZSwgbWVzc2FnZSkgeyB0aGlzLmNvbnRleHQud2FybmluZyhub2RlLCBtZXNzYWdlKTsgfVxuXG5mdW5jdGlvbiBlcnJvcihub2RlLCBtZXNzYWdlKSB7IHRoaXMuY29udGV4dC5lcnJvcihub2RlLCBtZXNzYWdlKTsgfVxuXG5mdW5jdGlvbiBmYXRhbChub2RlLCBtZXNzYWdlKSB7IHRoaXMuY29udGV4dC5mYXRhbChub2RlLCBtZXNzYWdlKTsgfVxuXG5mdW5jdGlvbiBnZXRBeGlvbXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0QXhpb21zKCk7IH1cblxuZnVuY3Rpb24gZ2V0TGVtbWFzKCkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmdldExlbW1hcygpOyB9XG5cbmZ1bmN0aW9uIGdldFRoZW9yZW1zKCkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmdldFRoZW9yZW1zKCk7IH1cblxuZnVuY3Rpb24gZ2V0Q29uamVjdHVyZXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0Q29uamVjdHVyZXMoKTsgfVxuXG5mdW5jdGlvbiBnZXRDb21iaW5hdG9ycygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRDb21iaW5hdG9ycygpOyB9XG5cbmZ1bmN0aW9uIGdldENvbnN0cnVjdG9ycygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTsgfVxuXG5mdW5jdGlvbiBmaW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpOyB9XG5cbmZ1bmN0aW9uIGZpbmRUeXBlQnlUeXBlTm9kZShsYWJlbE5vZGUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUobGFiZWxOb2RlKTsgfVxuXG5mdW5jdGlvbiBmaW5kTGFiZWxCeUxhYmVsTm9kZShsYWJlbE5vZGUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kTGFiZWxCeUxhYmVsTm9kZShsYWJlbE5vZGUpOyB9XG5cbmZ1bmN0aW9uIGZpbmRSdWxlQnlMYWJlbE5vZGUobGFiZWxOb2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZFJ1bGVCeUxhYmVsTm9kZShsYWJlbE5vZGUpOyB9XG5cbmZ1bmN0aW9uIGZpbmRBeGlvbUJ5TGFiZWxOb2RlKGxhYmVsTm9kZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmZpbmRBeGlvbUJ5TGFiZWxOb2RlKGxhYmVsTm9kZSk7IH1cblxuZnVuY3Rpb24gZmluZExlbW1hQnlMYWJlbE5vZGUobGFiZWxOb2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZExlbW1hQnlMYWJlbE5vZGUobGFiZWxOb2RlKTsgfVxuXG5mdW5jdGlvbiBmaW5kVGhlb3JlbUJ5TGFiZWxOb2RlKGxhYmVsTm9kZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmZpbmRUaGVvcmVtQnlMYWJlbE5vZGUobGFiZWxOb2RlKTsgfVxuXG5mdW5jdGlvbiBmaW5kQ29uamVjdHVyZUJ5TGFiZWxOb2RlKGxhYmVsTm9kZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmZpbmRDb25qZWN0dXJlQnlMYWJlbE5vZGUobGFiZWxOb2RlKTsgfVxuXG5mdW5jdGlvbiBpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHR5cGVOYW1lKTsgfVxuXG5mdW5jdGlvbiBpc1R5cGVQcmVzZW50QnlUeXBlTm9kZSh0eXBlTm9kZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOb2RlKHR5cGVOb2RlKTsgfVxuXG5mdW5jdGlvbiBpc0xhYmVsUHJlc2VudEJ5TGFiZWxOb2RlKGxhYmVsTm9kZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmlzTGFiZWxQcmVzZW50QnlMYWJlbE5vZGUobGFiZWxOb2RlKTsgfVxuXG5mdW5jdGlvbiBub2RlQXNTdHJpbmcobm9kZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKTsgfVxuXG5mdW5jdGlvbiBub2Rlc0FzU3RyaW5nKG5vZGUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5ub2Rlc0FzU3RyaW5nKG5vZGUpOyB9XG5cbmNvbnN0IGNvbnRleHRNaXhpbnMgPSB7XG4gIHRyYWNlLFxuICBkZWJ1ZyxcbiAgaW5mbyxcbiAgd2FybmluZyxcbiAgZXJyb3IsXG4gIGZhdGFsLFxuICBnZXRBeGlvbXMsXG4gIGdldExlbW1hcyxcbiAgZ2V0VGhlb3JlbXMsXG4gIGdldENvbmplY3R1cmVzLFxuICBnZXRDb21iaW5hdG9ycyxcbiAgZ2V0Q29uc3RydWN0b3JzLFxuICBmaW5kVHlwZUJ5VHlwZU5hbWUsXG4gIGZpbmRUeXBlQnlUeXBlTm9kZSxcbiAgZmluZExhYmVsQnlMYWJlbE5vZGUsXG4gIGZpbmRSdWxlQnlMYWJlbE5vZGUsXG4gIGZpbmRBeGlvbUJ5TGFiZWxOb2RlLFxuICBmaW5kTGVtbWFCeUxhYmVsTm9kZSxcbiAgZmluZFRoZW9yZW1CeUxhYmVsTm9kZSxcbiAgZmluZENvbmplY3R1cmVCeUxhYmVsTm9kZSxcbiAgaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUsXG4gIGlzVHlwZVByZXNlbnRCeVR5cGVOb2RlLFxuICBpc0xhYmVsUHJlc2VudEJ5TGFiZWxOb2RlLFxuICBub2RlQXNTdHJpbmcsXG4gIG5vZGVzQXNTdHJpbmdcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbnRleHRNaXhpbnM7XG4iXSwibmFtZXMiOlsidHJhY2UiLCJub2RlIiwibWVzc2FnZSIsImNvbnRleHQiLCJkZWJ1ZyIsImluZm8iLCJ3YXJuaW5nIiwiZXJyb3IiLCJmYXRhbCIsImdldEF4aW9tcyIsImdldExlbW1hcyIsImdldFRoZW9yZW1zIiwiZ2V0Q29uamVjdHVyZXMiLCJnZXRDb21iaW5hdG9ycyIsImdldENvbnN0cnVjdG9ycyIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInR5cGVOYW1lIiwiZmluZFR5cGVCeVR5cGVOb2RlIiwibGFiZWxOb2RlIiwiZmluZExhYmVsQnlMYWJlbE5vZGUiLCJmaW5kUnVsZUJ5TGFiZWxOb2RlIiwiZmluZEF4aW9tQnlMYWJlbE5vZGUiLCJmaW5kTGVtbWFCeUxhYmVsTm9kZSIsImZpbmRUaGVvcmVtQnlMYWJlbE5vZGUiLCJmaW5kQ29uamVjdHVyZUJ5TGFiZWxOb2RlIiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJpc1R5cGVQcmVzZW50QnlUeXBlTm9kZSIsInR5cGVOb2RlIiwiaXNMYWJlbFByZXNlbnRCeUxhYmVsTm9kZSIsIm5vZGVBc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJjb250ZXh0TWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnRkE7OztlQUFBOzs7QUE5RUEsU0FBU0EsTUFBTUMsSUFBSSxFQUFFQyxPQUFPO0lBQUksSUFBSSxDQUFDQyxPQUFPLENBQUNILEtBQUssQ0FBQ0MsTUFBTUM7QUFBVTtBQUVuRSxTQUFTRSxNQUFNSCxJQUFJLEVBQUVDLE9BQU87SUFBSSxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDSCxNQUFNQztBQUFVO0FBRW5FLFNBQVNHLEtBQUtKLElBQUksRUFBRUMsT0FBTztJQUFJLElBQUksQ0FBQ0MsT0FBTyxDQUFDRSxJQUFJLENBQUNKLE1BQU1DO0FBQVU7QUFFakUsU0FBU0ksUUFBUUwsSUFBSSxFQUFFQyxP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
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gdHJhY2Uobm9kZSwgbWVzc2FnZSkgeyB0aGlzLmNvbnRleHQudHJhY2Uobm9kZSwgbWVzc2FnZSk7IH1cblxuZnVuY3Rpb24gZGVidWcobm9kZSwgbWVzc2FnZSkgeyB0aGlzLmNvbnRleHQuZGVidWcobm9kZSwgbWVzc2FnZSk7IH1cblxuZnVuY3Rpb24gaW5mbyhub2RlLCBtZXNzYWdlKSB7IHRoaXMuY29udGV4dC5pbmZvKG5vZGUsIG1lc3NhZ2UpOyB9XG5cbmZ1bmN0aW9uIHdhcm5pbmcobm9kZSwgbWVzc2FnZSkgeyB0aGlzLmNvbnRleHQud2FybmluZyhub2RlLCBtZXNzYWdlKTsgfVxuXG5mdW5jdGlvbiBlcnJvcihub2RlLCBtZXNzYWdlKSB7IHRoaXMuY29udGV4dC5lcnJvcihub2RlLCBtZXNzYWdlKTsgfVxuXG5mdW5jdGlvbiBmYXRhbChub2RlLCBtZXNzYWdlKSB7IHRoaXMuY29udGV4dC5mYXRhbChub2RlLCBtZXNzYWdlKTsgfVxuXG5mdW5jdGlvbiBnZXRBeGlvbXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0QXhpb21zKCk7IH1cblxuZnVuY3Rpb24gZ2V0TGVtbWFzKCkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmdldExlbW1hcygpOyB9XG5cbmZ1bmN0aW9uIGdldFRoZW9yZW1zKCkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmdldFRoZW9yZW1zKCk7IH1cblxuZnVuY3Rpb24gZ2V0Q29uamVjdHVyZXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0Q29uamVjdHVyZXMoKTsgfVxuXG5mdW5jdGlvbiBnZXRDb21iaW5hdG9ycygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRDb21iaW5hdG9ycygpOyB9XG5cbmZ1bmN0aW9uIGdldENvbnN0cnVjdG9ycygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTsgfVxuXG5mdW5jdGlvbiBmaW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpOyB9XG5cbmZ1bmN0aW9uIGZpbmRUeXBlQnlUeXBlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUobGFiZWxNZXRhdmFyaWFibGVOb2RlKTsgfVxuXG5mdW5jdGlvbiBmaW5kTWV0YXZhcmlhYmxlQnlOYW1lKG5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlOYW1lKG5hbWUpOyB9XG5cbmZ1bmN0aW9uIGlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHR5cGVOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpOyB9XG5cbmZ1bmN0aW9uIGlzVHlwZVByZXNlbnRCeVR5cGVOb2RlKHR5cGVOb2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5vZGUodHlwZU5vZGUpOyB9XG5cbmZ1bmN0aW9uIGlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TmFtZShuYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuaXNNZXRhdmFyaWFibGVQcmVzZW50QnlOYW1lKG5hbWUpOyB9XG5cbmZ1bmN0aW9uIGZpbmRMYWJlbEJ5TGFiZWxNZXRhdmFyaWFibGVOb2RlKGxhYmVsTWV0YXZhcmlhYmxlTm9kZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmZpbmRMYWJlbEJ5TGFiZWxNZXRhdmFyaWFibGVOb2RlKGxhYmVsTWV0YXZhcmlhYmxlTm9kZSk7IH1cblxuZnVuY3Rpb24gZmluZFJ1bGVCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kUnVsZUJ5TGFiZWxNZXRhdmFyaWFibGVOb2RlKGxhYmVsTWV0YXZhcmlhYmxlTm9kZSk7IH1cblxuZnVuY3Rpb24gZmluZEF4aW9tQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUobGFiZWxNZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZEF4aW9tQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUobGFiZWxNZXRhdmFyaWFibGVOb2RlKTsgfVxuXG5mdW5jdGlvbiBmaW5kTGVtbWFCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kTGVtbWFCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpOyB9XG5cbmZ1bmN0aW9uIGZpbmRUaGVvcmVtQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUobGFiZWxNZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZFRoZW9yZW1CeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpOyB9XG5cbmZ1bmN0aW9uIGZpbmRDb25qZWN0dXJlQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUobGFiZWxNZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZENvbmplY3R1cmVCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpOyB9XG5cbmZ1bmN0aW9uIGlzTGFiZWxQcmVzZW50QnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUobGFiZWxNZXRhdmFyaWFibGVOb2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQuaXNMYWJlbFByZXNlbnRCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZShsYWJlbE1ldGF2YXJpYWJsZU5vZGUpOyB9XG5cbmZ1bmN0aW9uIG5vZGVBc1N0cmluZyhub2RlKSB7IHJldHVybiB0aGlzLmNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpOyB9XG5cbmZ1bmN0aW9uIG5vZGVzQXNTdHJpbmcobm9kZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0Lm5vZGVzQXNTdHJpbmcobm9kZSk7IH1cblxuY29uc3QgY29udGV4dE1peGlucyA9IHtcbiAgdHJhY2UsXG4gIGRlYnVnLFxuICBpbmZvLFxuICB3YXJuaW5nLFxuICBlcnJvcixcbiAgZmF0YWwsXG4gIGdldEF4aW9tcyxcbiAgZ2V0TGVtbWFzLFxuICBnZXRUaGVvcmVtcyxcbiAgZ2V0Q29uamVjdHVyZXMsXG4gIGdldENvbWJpbmF0b3JzLFxuICBnZXRDb25zdHJ1Y3RvcnMsXG4gIGZpbmRUeXBlQnlUeXBlTmFtZSxcbiAgZmluZFR5cGVCeVR5cGVOb2RlLFxuICBmaW5kTWV0YXZhcmlhYmxlQnlOYW1lLFxuICBpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSxcbiAgaXNUeXBlUHJlc2VudEJ5VHlwZU5vZGUsXG4gIGlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TmFtZSxcbiAgZmluZExhYmVsQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUsXG4gIGZpbmRSdWxlQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUsXG4gIGZpbmRBeGlvbUJ5TGFiZWxNZXRhdmFyaWFibGVOb2RlLFxuICBmaW5kTGVtbWFCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZSxcbiAgZmluZFRoZW9yZW1CeUxhYmVsTWV0YXZhcmlhYmxlTm9kZSxcbiAgZmluZENvbmplY3R1cmVCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZSxcbiAgaXNMYWJlbFByZXNlbnRCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZSxcbiAgbm9kZUFzU3RyaW5nLFxuICBub2Rlc0FzU3RyaW5nXG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb250ZXh0TWl4aW5zO1xuIl0sIm5hbWVzIjpbInRyYWNlIiwibm9kZSIsIm1lc3NhZ2UiLCJjb250ZXh0IiwiZGVidWciLCJpbmZvIiwid2FybmluZyIsImVycm9yIiwiZmF0YWwiLCJnZXRBeGlvbXMiLCJnZXRMZW1tYXMiLCJnZXRUaGVvcmVtcyIsImdldENvbmplY3R1cmVzIiwiZ2V0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJ0eXBlTmFtZSIsImZpbmRUeXBlQnlUeXBlTm9kZSIsImxhYmVsTWV0YXZhcmlhYmxlTm9kZSIsImZpbmRNZXRhdmFyaWFibGVCeU5hbWUiLCJuYW1lIiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJpc1R5cGVQcmVzZW50QnlUeXBlTm9kZSIsInR5cGVOb2RlIiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlOYW1lIiwiZmluZExhYmVsQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUiLCJmaW5kUnVsZUJ5TGFiZWxNZXRhdmFyaWFibGVOb2RlIiwiZmluZEF4aW9tQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUiLCJmaW5kTGVtbWFCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZSIsImZpbmRUaGVvcmVtQnlMYWJlbE1ldGF2YXJpYWJsZU5vZGUiLCJmaW5kQ29uamVjdHVyZUJ5TGFiZWxNZXRhdmFyaWFibGVOb2RlIiwiaXNMYWJlbFByZXNlbnRCeUxhYmVsTWV0YXZhcmlhYmxlTm9kZSIsIm5vZGVBc1N0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJjb250ZXh0TWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFzRkE7OztlQUFBOzs7QUFwRkEsU0FBU0EsTUFBTUMsSUFBSSxFQUFFQyxPQUFPO0lBQUksSUFBSSxDQUFDQyxPQUFPLENBQUNILEtBQUssQ0FBQ0MsTUFBTUM7QUFBVTtBQUVuRSxTQUFTRSxNQUFNSCxJQUFJLEVBQUVDLE9BQU87SUFBSSxJQUFJLENBQUNDLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDSCxNQUFNQztBQUFVO0FBRW5FLFNBQVNHLEtBQUtKLElBQUksRUFBRUMsT0FBTztJQUFJLElBQUksQ0FBQ0MsT0FBTyxDQUFDRSxJQUFJLENBQUNKLE1BQU1DO0FBQVU7QUFFakUsU0FBU0ksUUFBUUwsSUFBSSxFQUFFQyxPQUFPO0lBQUksSUFBSSxDQUFDQyxPQUFPLENBQUNHLE9BQU8sQ0FB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
package/lib/rule.js CHANGED
@@ -69,18 +69,6 @@ var Rule = /*#__PURE__*/ function() {
69
69
  return this.fileContext;
70
70
  }
71
71
  },
72
- {
73
- key: "matchLabelNode",
74
- value: function matchLabelNode(labelNode) {
75
- var labelNodeMatches = this.labels.some(function(label) {
76
- var node = labelNode, labelMatchesNode = label.matchNode(node);
77
- if (labelMatchesNode) {
78
- return true;
79
- }
80
- });
81
- return labelNodeMatches;
82
- }
83
- },
84
72
  {
85
73
  key: "matchStatement",
86
74
  value: function matchStatement(statementNode, statementLocalContext) {
@@ -133,6 +121,18 @@ var Rule = /*#__PURE__*/ function() {
133
121
  return metastatementNatches;
134
122
  }
135
123
  },
124
+ {
125
+ key: "matchLabelMetavariableNode",
126
+ value: function matchLabelMetavariableNode(labelMetavariableNode) {
127
+ var labelMetavariableNodeMatches = this.labels.some(function(label) {
128
+ var node = labelMetavariableNode, labelMatchesNode = label.matchNode(node);
129
+ if (labelMatchesNode) {
130
+ return true;
131
+ }
132
+ });
133
+ return labelMetavariableNodeMatches;
134
+ }
135
+ },
136
136
  {
137
137
  key: "toJSON",
138
138
  value: function toJSON(tokens) {
@@ -250,4 +250,4 @@ function metaMatchConclusion(conclusion, metastatementNode, substitutions, fileC
250
250
  return conclusionMatches;
251
251
  }
252
252
 
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vbGFiZWxcIjtcbmltcG9ydCBQcmVtaXNlIGZyb20gXCIuL3ByZW1pc2VcIjtcbmltcG9ydCBDb25jbHVzaW9uIGZyb20gXCIuL2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgcHJ1bmUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IHNvbWVTdWJBcnJheSB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSdWxlIHtcbiAgY29uc3RydWN0b3IobGFiZWxzLCBwcmVtaXNlcywgY29uY2x1c2lvbiwgZmlsZUNvbnRleHQpIHtcbiAgICB0aGlzLmxhYmVscyA9IGxhYmVscztcbiAgICB0aGlzLnByZW1pc2VzID0gcHJlbWlzZXM7XG4gICAgdGhpcy5jb25jbHVzaW9uID0gY29uY2x1c2lvbjtcbiAgICB0aGlzLmZpbGVDb250ZXh0ID0gZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRMYWJlbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWxzO1xuICB9XG5cbiAgZ2V0UHJlbWlzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlbWlzZXM7XG4gIH1cblxuICBnZXRDb25jbHVzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmNsdXNpb247XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dDtcbiAgfVxuXG4gIG1hdGNoTGFiZWxOb2RlKGxhYmVsTm9kZSkge1xuICAgIGNvbnN0IGxhYmVsTm9kZU1hdGNoZXMgPSB0aGlzLmxhYmVscy5zb21lKChsYWJlbCkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IGxhYmVsTm9kZSwgLy8vXG4gICAgICAgICAgICBsYWJlbE1hdGNoZXNOb2RlID0gbGFiZWwubWF0Y2hOb2RlKG5vZGUpO1xuXG4gICAgICBpZiAobGFiZWxNYXRjaGVzTm9kZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBsYWJlbE5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgc3RhdGVtZW50TG9jYWxDb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudE5hdGNoZXM7XG5cbiAgICBjb25zdCBwcmVtaXNlc0xlbmd0aCA9IHRoaXMucHJlbWlzZXMubGVuZ3RoO1xuXG4gICAgaWYgKHByZW1pc2VzTGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gW10sXG4gICAgICAgICAgICBjb25jbHVzaW9uTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbih0aGlzLmNvbmNsdXNpb24sIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIHN0YXRlbWVudExvY2FsQ29udGV4dCk7XG5cbiAgICAgIHN0YXRlbWVudE5hdGNoZXMgPSBjb25jbHVzaW9uTWF0Y2hlczsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHByb29mU3RlcHMgPSBzdGF0ZW1lbnRMb2NhbENvbnRleHQuZ2V0UHJvb2ZTdGVwcygpO1xuXG4gICAgICBzdGF0ZW1lbnROYXRjaGVzID0gc29tZVN1YkFycmF5KHByb29mU3RlcHMsIHByZW1pc2VzTGVuZ3RoLCAocHJvb2ZTdGVwcykgPT4ge1xuICAgICAgICBsZXQgcHJlbWlzZXNNYXRjaENvbmNsdXNpb24gPSBmYWxzZTtcblxuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25zID0gW10sXG4gICAgICAgICAgICAgIHByZW1pc2VzTWF0Y2ggPSBtYXRjaFByZW1pc2VzKHRoaXMucHJlbWlzZXMsIHByb29mU3RlcHMsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIHN0YXRlbWVudExvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHByZW1pc2VzTWF0Y2gpIHtcbiAgICAgICAgICBjb25zdCBjb25jbHVzaW9uTWF0Y2hlcyA9IG1hdGNoQ29uY2x1c2lvbih0aGlzLmNvbmNsdXNpb24sIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIHN0YXRlbWVudExvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgICBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiA9IGNvbmNsdXNpb25NYXRjaGVzOyAgLy8vXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJlbWlzZXNNYXRjaENvbmNsdXNpb24pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGFzdGF0ZW1lbnQobWV0YXN0YXRlbWVudE5vZGUsIG1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0KSB7XG4gICAgbGV0IG1ldGFzdGF0ZW1lbnROYXRjaGVzO1xuXG4gICAgY29uc3QgcHJlbWlzZXNMZW5ndGggPSB0aGlzLnByZW1pc2VzLmxlbmd0aDtcblxuICAgIGlmIChwcmVtaXNlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgICAgY29uY2x1c2lvbk1hdGNoZXMgPSBtZXRhTWF0Y2hDb25jbHVzaW9uKHRoaXMuY29uY2x1c2lvbiwgbWV0YXN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIG1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgbWV0YXN0YXRlbWVudE5hdGNoZXMgPSBjb25jbHVzaW9uTWF0Y2hlczsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGFwcm9vZlN0ZXBzID0gbWV0YXN0YXRlbWVudExvY2FsTWV0YUNvbnRleHQuZ2V0TWV0YXByb29mU3RlcHMoKTtcblxuICAgICAgbWV0YXN0YXRlbWVudE5hdGNoZXMgPSBzb21lU3ViQXJyYXkobWV0YXByb29mU3RlcHMsIHByZW1pc2VzTGVuZ3RoLCAobWV0YXByb29mU3RlcHMpID0+IHtcbiAgICAgICAgbGV0IHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgICAgICBwcmVtaXNlc01hdGNoID0gbWV0YU1hdGNoUHJlbWlzZXModGhpcy5wcmVtaXNlcywgbWV0YXByb29mU3RlcHMsIHN1YnN0aXR1dGlvbnMsIHRoaXMuZmlsZUNvbnRleHQsIG1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgICBpZiAocHJlbWlzZXNNYXRjaCkge1xuICAgICAgICAgIGNvbnN0IGNvbmNsdXNpb25NYXRjaGVzID0gbWV0YU1hdGNoQ29uY2x1c2lvbih0aGlzLmNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCB0aGlzLmZpbGVDb250ZXh0LCBtZXRhc3RhdGVtZW50TG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgICAgICBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiA9IGNvbmNsdXNpb25NYXRjaGVzOyAgLy8vXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJlbWlzZXNNYXRjaENvbmNsdXNpb24pIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGFzdGF0ZW1lbnROYXRjaGVzO1xuICB9XG5cbiAgdG9KU09OKHRva2Vucykge1xuICAgIGNvbnN0IGxhYmVsc0pTT04gPSB0aGlzLmxhYmVscy5tYXAoKGxhYmVsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04odG9rZW5zKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBwcmVtaXNlc0pTT04gPSB0aGlzLnByZW1pc2VzLm1hcCgocHJlbWlzZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJlbWlzZUpTT04gPSBwcmVtaXNlLnRvSlNPTih0b2tlbnMpO1xuXG4gICAgICAgICAgICByZXR1cm4gcHJlbWlzZUpTT047XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY29uY2x1c2lvbkpTT04gPSB0aGlzLmNvbmNsdXNpb24udG9KU09OKHRva2VucyksXG4gICAgICAgICAgbGFiZWxzID0gbGFiZWxzSlNPTiwgIC8vL1xuICAgICAgICAgIHByZW1pc2VzID0gcHJlbWlzZXNKU09OLCAgLy8vXG4gICAgICAgICAgY29uY2x1c2lvbiA9IGNvbmNsdXNpb25KU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGxhYmVscyxcbiAgICAgICAgICAgIHByZW1pc2VzLFxuICAgICAgICAgICAgY29uY2x1c2lvblxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHJ1bGU7XG5cbiAgICBsZXQgeyBsYWJlbHMgfSA9IGpzb247XG5cbiAgICBjb25zdCBsYWJlbHNKU09OID0gbGFiZWxzOyAgLy8vXG5cbiAgICBsYWJlbHMgPSBsYWJlbHNKU09OLm1hcCgobGFiZWxKU09OKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gbGFiZWxKU09OLCAvLy9cbiAgICAgICAgICAgIGxhYmVsID0gTGFiZWwuZnJvbUpTT05BbmRGaWxlQ29udGV4dChqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgIHJldHVybiBsYWJlbDtcbiAgICB9KTtcblxuICAgIGxldCB7IHByZW1pc2VzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgcHJlbWlzZXNKU09OID0gcHJlbWlzZXM7ICAvLy9cblxuICAgIHByZW1pc2VzID0gcHJlbWlzZXNKU09OLm1hcCgocHJlbWlzZUpTT04pID0+IHtcbiAgICAgIGNvbnN0IGpzb24gPSBwcmVtaXNlSlNPTiwgLy8vXG4gICAgICAgICAgICBwcmVtaXNlID0gUHJlbWlzZS5mcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHByZW1pc2U7XG4gICAgfSk7XG5cbiAgICBsZXQgeyBjb25jbHVzaW9uIH0gPSBqc29uO1xuXG4gICAgY29uc3QgY29uY2x1c2lvbkpTT04gPSBjb25jbHVzaW9uOyAgLy8vXG5cbiAgICBqc29uID0gY29uY2x1c2lvbkpTT047ICAvLy9cblxuICAgIGNvbmNsdXNpb24gPSBDb25jbHVzaW9uLmZyb21KU09OQW5kRmlsZUNvbnRleHQoanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcnVsZSA9IG5ldyBSdWxlKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21MYWJlbHNQcmVtaXNlc0NvbmNsdXNpb25BbmRGaWxlQ29udGV4dChsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHJ1bGUgPSBuZXcgUnVsZShsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gcnVsZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2UocHJlbWlzZSwgcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIHN0YXRlbWVudExvY2FsQ29udGV4dCkge1xuICBjb25zdCBwcm9vZlN0ZXAgPSBwcnVuZShwcm9vZlN0ZXBzLCAocHJvb2ZTdGVwKSA9PiB7XG4gICAgY29uc3Qgc3VicHJvb2ZOb2RlID0gcHJvb2ZTdGVwLmdldFN1YnByb29mTm9kZSgpLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBwcm9vZlN0ZXAuZ2V0U3RhdGVtZW50Tm9kZSgpXG5cbiAgICBpZiAoc3VicHJvb2ZOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdWJQcm9vZk5vZGVNYXRjaGVzID0gcHJlbWlzZS5tYXRjaFN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoIXN1YlByb29mTm9kZU1hdGNoZXMpIHsgIC8vL1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBwcmVtaXNlLm1hdGNoU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgc3RhdGVtZW50TG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKCFzdGF0ZW1lbnROb2RlTWF0Y2hlcykgeyAgLy8vXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICBjb25zdCBwcmVtaXNlTWF0Y2hlcyA9IChwcm9vZlN0ZXAgIT09IG51bGwpO1xuXG4gIHJldHVybiBwcmVtaXNlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlcyhwcmVtaXNlLCBwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgc3RhdGVtZW50TG9jYWxDb250ZXh0KSB7XG4gIGNvbnN0IHByZW1pc2VzTWF0Y2ggPSBwcmVtaXNlLmV2ZXJ5KChwcmVtaXNlKSA9PiB7XG4gICAgY29uc3QgcHJlbWlzZU1hdGNoZXMgPSBtYXRjaFByZW1pc2UocHJlbWlzZSwgcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIHN0YXRlbWVudExvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAocHJlbWlzZU1hdGNoZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHByZW1pc2VzTWF0Y2g7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbihjb25jbHVzaW9uLCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgc3RhdGVtZW50TG9jYWxDb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbi5tYXRjaFN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIHN0YXRlbWVudExvY2FsQ29udGV4dCksXG4gICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gc3RhdGVtZW50Tm9kZU1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBjb25jbHVzaW9uTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWV0YU1hdGNoUHJlbWlzZShwcmVtaXNlLCBtZXRhcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIG1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0KSB7XG4gIGNvbnN0IG1ldGFwcm9vZlN0ZXAgPSBwcnVuZShtZXRhcHJvb2ZTdGVwcywgKG1ldGFwcm9vZlN0ZXApID0+IHtcbiAgICBjb25zdCBydWxlU3VicHJvb2ZOb2RlID0gbWV0YXByb29mU3RlcC5nZXRSdWxlU3VicHJvb2ZOb2RlKCksXG4gICAgICAgICAgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhcHJvb2ZTdGVwLmdldE1ldGFzdGF0ZW1lbnROb2RlKClcblxuICAgIGlmIChydWxlU3VicHJvb2ZOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBydWxlU3ViUHJvb2ZOb2RlTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hSdWxlU3VicHJvb2ZOb2RlKHJ1bGVTdWJwcm9vZk5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBtZXRhc3RhdGVtZW50TG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmICghcnVsZVN1YlByb29mTm9kZU1hdGNoZXMpIHsgIC8vL1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hNZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIG1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgaWYgKCFtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMpIHsgIC8vL1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pIHx8IG51bGw7XG5cbiAgY29uc3QgcHJlbWlzZU1hdGNoZXMgPSAobWV0YXByb29mU3RlcCAhPT0gbnVsbCk7XG5cbiAgcmV0dXJuIHByZW1pc2VNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtZXRhTWF0Y2hQcmVtaXNlcyhwcmVtaXNlLCBtZXRhcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIG1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0KSB7XG4gIGNvbnN0IHByZW1pc2VzTWF0Y2ggPSBwcmVtaXNlLmV2ZXJ5KChwcmVtaXNlKSA9PiB7XG4gICAgY29uc3QgcHJlbWlzZU1hdGNoZXMgPSBtZXRhTWF0Y2hQcmVtaXNlKHByZW1pc2UsIG1ldGFwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbWV0YXN0YXRlbWVudExvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKHByZW1pc2VNYXRjaGVzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlc01hdGNoO1xufVxuXG5mdW5jdGlvbiBtZXRhTWF0Y2hDb25jbHVzaW9uKGNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbWV0YXN0YXRlbWVudExvY2FsTWV0YUNvbnRleHQpIHtcbiAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbi5tYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbWV0YXN0YXRlbWVudExvY2FsTWV0YUNvbnRleHQpLFxuICAgICAgICBjb25jbHVzaW9uTWF0Y2hlcyA9IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbIlJ1bGUiLCJsYWJlbHMiLCJwcmVtaXNlcyIsImNvbmNsdXNpb24iLCJmaWxlQ29udGV4dCIsImdldExhYmVscyIsImdldFByZW1pc2VzIiwiZ2V0Q29uY2x1c2lvbiIsImdldEZpbGVDb250ZXh0IiwibWF0Y2hMYWJlbE5vZGUiLCJsYWJlbE5vZGUiLCJsYWJlbE5vZGVNYXRjaGVzIiwic29tZSIsImxhYmVsIiwibm9kZSIsImxhYmVsTWF0Y2hlc05vZGUiLCJtYXRjaE5vZGUiLCJtYXRjaFN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRMb2NhbENvbnRleHQiLCJzdGF0ZW1lbnROYXRjaGVzIiwicHJlbWlzZXNMZW5ndGgiLCJsZW5ndGgiLCJzdWJzdGl0dXRpb25zIiwiY29uY2x1c2lvbk1hdGNoZXMiLCJtYXRjaENvbmNsdXNpb24iLCJwcm9vZlN0ZXBzIiwiZ2V0UHJvb2ZTdGVwcyIsInNvbWVTdWJBcnJheSIsInByZW1pc2VzTWF0Y2hDb25jbHVzaW9uIiwicHJlbWlzZXNNYXRjaCIsIm1hdGNoUHJlbWlzZXMiLCJtYXRjaE1ldGFzdGF0ZW1lbnQiLCJtZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0IiwibWV0YXN0YXRlbWVudE5hdGNoZXMiLCJtZXRhTWF0Y2hDb25jbHVzaW9uIiwibWV0YXByb29mU3RlcHMiLCJnZXRNZXRhcHJvb2ZTdGVwcyIsIm1ldGFNYXRjaFByZW1pc2VzIiwidG9KU09OIiwidG9rZW5zIiwibGFiZWxzSlNPTiIsIm1hcCIsImxhYmVsSlNPTiIsInByZW1pc2VzSlNPTiIsInByZW1pc2UiLCJwcmVtaXNlSlNPTiIsImNvbmNsdXNpb25KU09OIiwianNvbiIsImZyb21KU09OQW5kRmlsZUNvbnRleHQiLCJydWxlIiwiTGFiZWwiLCJQcmVtaXNlIiwiQ29uY2x1c2lvbiIsImZyb21MYWJlbHNQcmVtaXNlc0NvbmNsdXNpb25BbmRGaWxlQ29udGV4dCIsIm1hdGNoUHJlbWlzZSIsInByb29mU3RlcCIsInBydW5lIiwic3VicHJvb2ZOb2RlIiwiZ2V0U3VicHJvb2ZOb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsInN1YlByb29mTm9kZU1hdGNoZXMiLCJtYXRjaFN1YnByb29mTm9kZSIsInN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hTdGF0ZW1lbnROb2RlIiwicHJlbWlzZU1hdGNoZXMiLCJldmVyeSIsIm1ldGFNYXRjaFByZW1pc2UiLCJtZXRhcHJvb2ZTdGVwIiwicnVsZVN1YnByb29mTm9kZSIsImdldFJ1bGVTdWJwcm9vZk5vZGUiLCJnZXRNZXRhc3RhdGVtZW50Tm9kZSIsInJ1bGVTdWJQcm9vZk5vZGVNYXRjaGVzIiwibWF0Y2hSdWxlU3VicHJvb2ZOb2RlIiwibWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hNZXRhc3RhdGVtZW50Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFTcUJBOzs7NERBUEg7OERBQ0U7aUVBQ0c7cUJBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHUCxJQUFBLEFBQU1BLHFCQUFELEFBQUw7YUFBTUEsS0FDUEMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsV0FBVztnQ0FEbENKO1FBRWpCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBOztrQkFMRko7O1lBUW5CSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE1BQU07WUFDcEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFFBQVE7WUFDdEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFVBQVU7WUFDeEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFdBQVc7WUFDekI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUMsU0FBUztnQkFDdEIsSUFBTUMsbUJBQW1CLElBQUksQ0FBQ1YsTUFBTSxDQUFDVyxJQUFJLENBQUMsU0FBQ0M7b0JBQ3pDLElBQU1DLE9BQU9KLFdBQ1BLLG1CQUFtQkYsTUFBTUcsU0FBUyxDQUFDRjtvQkFFekMsSUFBSUMsa0JBQWtCO3dCQUNwQixPQUFPO29CQUNUO2dCQUNGO2dCQUVBLE9BQU9KO1lBQ1Q7OztZQUVBTSxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUMsYUFBYSxFQUFFQyxxQkFBcUI7O2dCQUNqRCxJQUFJQztnQkFFSixJQUFNQyxpQkFBaUIsSUFBSSxDQUFDbkIsUUFBUSxDQUFDb0IsTUFBTTtnQkFFM0MsSUFBSUQsbUJBQW1CLEdBQUc7b0JBQ3hCLElBQU1FLGdCQUFnQixFQUFFLEVBQ2xCQyxvQkFBb0JDLGdCQUFnQixJQUFJLENBQUN0QixVQUFVLEVBQUVlLGVBQWVLLGVBQWUsSUFBSSxDQUFDbkIsV0FBVyxFQUFFZTtvQkFFM0dDLG1CQUFtQkksbUJBQW1CLEdBQUc7Z0JBQzNDLE9BQU87b0JBQ0wsSUFBTUUsYUFBYVAsc0JBQXNCUSxhQUFhO29CQUV0RFAsbUJBQW1CUSxJQUFBQSxtQkFBWSxFQUFDRixZQUFZTCxnQkFBZ0IsU0FBQ0s7d0JBQzNELElBQUlHLDBCQUEwQjt3QkFFOUIsSUFBTU4sZ0JBQWdCLEVBQUUsRUFDbEJPLGdCQUFnQkMsY0FBYyxNQUFLN0IsUUFBUSxFQUFFd0IsWUFBWUgsZUFBZSxNQUFLbkIsV0FBVyxFQUFFZTt3QkFFaEcsSUFBSVcsZUFBZTs0QkFDakIsSUFBTU4sb0JBQW9CQyxnQkFBZ0IsTUFBS3RCLFVBQVUsRUFBRWUsZUFBZUssZUFBZSxNQUFLbkIsV0FBVyxFQUFFZTs0QkFFM0dVLDBCQUEwQkwsbUJBQW9CLEdBQUc7d0JBQ25EO3dCQUVBLElBQUlLLHlCQUF5Qjs0QkFDM0IsT0FBTzt3QkFDVDtvQkFDRjtnQkFDRjtnQkFFQSxPQUFPVDtZQUNUOzs7WUFFQVksS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQkMsaUJBQWlCLEVBQUVDLDZCQUE2Qjs7Z0JBQ2pFLElBQUlDO2dCQUVKLElBQU1kLGlCQUFpQixJQUFJLENBQUNuQixRQUFRLENBQUNvQixNQUFNO2dCQUUzQyxJQUFJRCxtQkFBbUIsR0FBRztvQkFDeEIsSUFBTUUsZ0JBQWdCLEVBQUUsRUFDbEJDLG9CQUFvQlksb0JBQW9CLElBQUksQ0FBQ2pDLFVBQVUsRUFBRThCLG1CQUFtQlYsZUFBZSxJQUFJLENBQUNuQixXQUFXLEVBQUU4QjtvQkFFbkhDLHVCQUF1QlgsbUJBQW1CLEdBQUc7Z0JBQy9DLE9BQU87b0JBQ0wsSUFBTWEsaUJBQWlCSCw4QkFBOEJJLGlCQUFpQjtvQkFFdEVILHVCQUF1QlAsSUFBQUEsbUJBQVksRUFBQ1MsZ0JBQWdCaEIsZ0JBQWdCLFNBQUNnQjt3QkFDbkUsSUFBSVIsMEJBQTBCO3dCQUU5QixJQUFNTixnQkFBZ0IsRUFBRSxFQUNsQk8sZ0JBQWdCUyxrQkFBa0IsTUFBS3JDLFFBQVEsRUFBRW1DLGdCQUFnQmQsZUFBZSxNQUFLbkIsV0FBVyxFQUFFOEI7d0JBRXhHLElBQUlKLGVBQWU7NEJBQ2pCLElBQU1OLG9CQUFvQlksb0JBQW9CLE1BQUtqQyxVQUFVLEVBQUU4QixtQkFBbUJWLGVBQWUsTUFBS25CLFdBQVcsRUFBRThCOzRCQUVuSEwsMEJBQTBCTCxtQkFBb0IsR0FBRzt3QkFDbkQ7d0JBRUEsSUFBSUsseUJBQXlCOzRCQUMzQixPQUFPO3dCQUNUO29CQUNGO2dCQUNGO2dCQUVBLE9BQU9NO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsT0FBT0MsTUFBTTtnQkFDWCxJQUFNQyxhQUFhLElBQUksQ0FBQ3pDLE1BQU0sQ0FBQzBDLEdBQUcsQ0FBQyxTQUFDOUI7b0JBQzVCLElBQU0rQixZQUFZL0IsTUFBTTJCLE1BQU0sQ0FBQ0M7b0JBRS9CLE9BQU9HO2dCQUNULElBQ0FDLGVBQWUsSUFBSSxDQUFDM0MsUUFBUSxDQUFDeUMsR0FBRyxDQUFDLFNBQUNHO29CQUNoQyxJQUFNQyxjQUFjRCxRQUFRTixNQUFNLENBQUNDO29CQUVuQyxPQUFPTTtnQkFDVCxJQUNBQyxpQkFBaUIsSUFBSSxDQUFDN0MsVUFBVSxDQUFDcUMsTUFBTSxDQUFDQyxTQUN4Q3hDLFNBQVN5QyxZQUNUeEMsV0FBVzJDLGNBQ1gxQyxhQUFhNkMsZ0JBQ2JDLE9BQU87b0JBQ0xoRCxRQUFBQTtvQkFDQUMsVUFBQUE7b0JBQ0FDLFlBQUFBO2dCQUNGO2dCQUVOLE9BQU84QztZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLHVCQUF1QkQsSUFBSSxFQUFFN0MsV0FBVztnQkFDN0MsSUFBSStDO2dCQUVKLElBQUksQUFBRWxELFNBQVdnRCxLQUFYaEQ7Z0JBRU4sSUFBTXlDLGFBQWF6QyxRQUFTLEdBQUc7Z0JBRS9CQSxTQUFTeUMsV0FBV0MsR0FBRyxDQUFDLFNBQUNDO29CQUN2QixJQUFNSyxTQUFPTCxXQUNQL0IsUUFBUXVDLGNBQUssQ0FBQ0Ysc0JBQXNCLENBQUNELFFBQU03QztvQkFFakQsT0FBT1M7Z0JBQ1Q7Z0JBRUEsSUFBSSxBQUFFWCxXQUFhK0MsS0FBYi9DO2dCQUVOLElBQU0yQyxlQUFlM0MsVUFBVyxHQUFHO2dCQUVuQ0EsV0FBVzJDLGFBQWFGLEdBQUcsQ0FBQyxTQUFDSTtvQkFDM0IsSUFBTUUsU0FBT0YsYUFDUEQsVUFBVU8sZ0JBQU8sQ0FBQ0gsc0JBQXNCLENBQUNELFFBQU03QztvQkFFckQsT0FBTzBDO2dCQUNUO2dCQUVBLElBQUksQUFBRTNDLGFBQWU4QyxLQUFmOUM7Z0JBRU4sSUFBTTZDLGlCQUFpQjdDLFlBQWEsR0FBRztnQkFFdkM4QyxPQUFPRCxnQkFBaUIsR0FBRztnQkFFM0I3QyxhQUFhbUQsbUJBQVUsQ0FBQ0osc0JBQXNCLENBQUNELE1BQU03QztnQkFFckQrQyxPQUFPLElBbEtVbkQsS0FrS0RDLFFBQVFDLFVBQVVDLFlBQVlDO2dCQUU5QyxPQUFPK0M7WUFDVDs7O1lBRU9JLEtBQUFBO21CQUFQLFNBQU9BLDJDQUEyQ3RELE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxVQUFVLEVBQUVDLFdBQVc7Z0JBQ3pGLElBQU0rQyxPQUFPLElBeEtJbkQsS0F3S0tDLFFBQVFDLFVBQVVDLFlBQVlDO2dCQUVwRCxPQUFPK0M7WUFDVDs7O1dBM0ttQm5EOztBQThLckIsU0FBU3dELGFBQWFWLE9BQU8sRUFBRXBCLFVBQVUsRUFBRUgsYUFBYSxFQUFFbkIsV0FBVyxFQUFFZSxxQkFBcUI7SUFDMUYsSUFBTXNDLFlBQVlDLElBQUFBLFlBQUssRUFBQ2hDLFlBQVksU0FBQytCO1FBQ25DLElBQU1FLGVBQWVGLFVBQVVHLGVBQWUsSUFDeEMxQyxnQkFBZ0J1QyxVQUFVSSxnQkFBZ0I7UUFFaEQsSUFBSUYsaUJBQWlCLE1BQU07WUFDekIsSUFBTUcsc0JBQXNCaEIsUUFBUWlCLGlCQUFpQixDQUFDSixjQUFjcEMsZUFBZW5CLGFBQWFlO1lBRWhHLElBQUksQ0FBQzJDLHFCQUFxQjtnQkFDeEIsT0FBTztZQUNUO1FBQ0Y7UUFFQSxJQUFJNUMsa0JBQWtCLE1BQU07WUFDMUIsSUFBTThDLHVCQUF1QmxCLFFBQVFtQixrQkFBa0IsQ0FBQy9DLGVBQWVLLGVBQWVuQixhQUFhZTtZQUVuRyxJQUFJLENBQUM2QyxzQkFBc0I7Z0JBQ3pCLE9BQU87WUFDVDtRQUNGO0lBQ0YsTUFBTTtJQUVOLElBQU1FLGlCQUFrQlQsY0FBYztJQUV0QyxPQUFPUztBQUNUO0FBRUEsU0FBU25DLGNBQWNlLE9BQU8sRUFBRXBCLFVBQVUsRUFBRUgsYUFBYSxFQUFFbkIsV0FBVyxFQUFFZSxxQkFBcUI7SUFDM0YsSUFBTVcsZ0JBQWdCZ0IsUUFBUXFCLEtBQUssQ0FBQyxTQUFDckI7UUFDbkMsSUFBTW9CLGlCQUFpQlYsYUFBYVYsU0FBU3BCLFlBQVlILGVBQWVuQixhQUFhZTtRQUVyRixJQUFJK0MsZ0JBQWdCO1lBQ2xCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT3BDO0FBQ1Q7QUFFQSxTQUFTTCxnQkFBZ0J0QixVQUFVLEVBQUVlLGFBQWEsRUFBRUssYUFBYSxFQUFFbkIsV0FBVyxFQUFFZSxxQkFBcUI7SUFDbkcsSUFBTTZDLHVCQUF1QjdELFdBQVc4RCxrQkFBa0IsQ0FBQy9DLGVBQWVLLGVBQWVuQixhQUFhZSx3QkFDaEdLLG9CQUFvQndDLHNCQUFzQixHQUFHO0lBRW5ELE9BQU94QztBQUNUO0FBRUEsU0FBUzRDLGlCQUFpQnRCLE9BQU8sRUFBRVQsY0FBYyxFQUFFZCxhQUFhLEVBQUVuQixXQUFXLEVBQUU4Qiw2QkFBNkI7SUFDMUcsSUFBTW1DLGdCQUFnQlgsSUFBQUEsWUFBSyxFQUFDckIsZ0JBQWdCLFNBQUNnQztRQUMzQyxJQUFNQyxtQkFBbUJELGNBQWNFLG1CQUFtQixJQUNwRHRDLG9CQUFvQm9DLGNBQWNHLG9CQUFvQjtRQUU1RCxJQUFJRixxQkFBcUIsTUFBTTtZQUM3QixJQUFNRywwQkFBMEIzQixRQUFRNEIscUJBQXFCLENBQUNKLGtCQUFrQi9DLGVBQWVuQixhQUFhOEI7WUFFNUcsSUFBSSxDQUFDdUMseUJBQXlCO2dCQUM1QixPQUFPO1lBQ1Q7UUFDRjtRQUVBLElBQUl4QyxzQkFBc0IsTUFBTTtZQUM5QixJQUFNMEMsMkJBQTJCN0IsUUFBUThCLHNCQUFzQixDQUFDM0MsbUJBQW1CVixlQUFlbkIsYUFBYThCO1lBRS9HLElBQUksQ0FBQ3lDLDBCQUEwQjtnQkFDN0IsT0FBTztZQUNUO1FBQ0Y7SUFDRixNQUFNO0lBRU4sSUFBTVQsaUJBQWtCRyxrQkFBa0I7SUFFMUMsT0FBT0g7QUFDVDtBQUVBLFNBQVMzQixrQkFBa0JPLE9BQU8sRUFBRVQsY0FBYyxFQUFFZCxhQUFhLEVBQUVuQixXQUFXLEVBQUU4Qiw2QkFBNkI7SUFDM0csSUFBTUosZ0JBQWdCZ0IsUUFBUXFCLEtBQUssQ0FBQyxTQUFDckI7UUFDbkMsSUFBTW9CLGlCQUFpQkUsaUJBQWlCdEIsU0FBU1QsZ0JBQWdCZCxlQUFlbkIsYUFBYThCO1FBRTdGLElBQUlnQyxnQkFBZ0I7WUFDbEIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPcEM7QUFDVDtBQUVBLFNBQVNNLG9CQUFvQmpDLFVBQVUsRUFBRThCLGlCQUFpQixFQUFFVixhQUFhLEVBQUVuQixXQUFXLEVBQUU4Qiw2QkFBNkI7SUFDbkgsSUFBTXlDLDJCQUEyQnhFLFdBQVd5RSxzQkFBc0IsQ0FBQzNDLG1CQUFtQlYsZUFBZW5CLGFBQWE4QixnQ0FDNUdWLG9CQUFvQm1ELDBCQUEwQixHQUFHO0lBRXZELE9BQU9uRDtBQUNUIn0=
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTGFiZWwgZnJvbSBcIi4vbGFiZWxcIjtcbmltcG9ydCBQcmVtaXNlIGZyb20gXCIuL3ByZW1pc2VcIjtcbmltcG9ydCBDb25jbHVzaW9uIGZyb20gXCIuL2NvbmNsdXNpb25cIjtcblxuaW1wb3J0IHsgcHJ1bmUgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IHNvbWVTdWJBcnJheSB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSdWxlIHtcbiAgY29uc3RydWN0b3IobGFiZWxzLCBwcmVtaXNlcywgY29uY2x1c2lvbiwgZmlsZUNvbnRleHQpIHtcbiAgICB0aGlzLmxhYmVscyA9IGxhYmVscztcbiAgICB0aGlzLnByZW1pc2VzID0gcHJlbWlzZXM7XG4gICAgdGhpcy5jb25jbHVzaW9uID0gY29uY2x1c2lvbjtcbiAgICB0aGlzLmZpbGVDb250ZXh0ID0gZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRMYWJlbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWxzO1xuICB9XG5cbiAgZ2V0UHJlbWlzZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJlbWlzZXM7XG4gIH1cblxuICBnZXRDb25jbHVzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLmNvbmNsdXNpb247XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dDtcbiAgfVxuXG4gIG1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHN0YXRlbWVudExvY2FsQ29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnROYXRjaGVzO1xuXG4gICAgY29uc3QgcHJlbWlzZXNMZW5ndGggPSB0aGlzLnByZW1pc2VzLmxlbmd0aDtcblxuICAgIGlmIChwcmVtaXNlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgICAgY29uY2x1c2lvbk1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb24odGhpcy5jb25jbHVzaW9uLCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCB0aGlzLmZpbGVDb250ZXh0LCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpO1xuXG4gICAgICBzdGF0ZW1lbnROYXRjaGVzID0gY29uY2x1c2lvbk1hdGNoZXM7IC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBwcm9vZlN0ZXBzID0gc3RhdGVtZW50TG9jYWxDb250ZXh0LmdldFByb29mU3RlcHMoKTtcblxuICAgICAgc3RhdGVtZW50TmF0Y2hlcyA9IHNvbWVTdWJBcnJheShwcm9vZlN0ZXBzLCBwcmVtaXNlc0xlbmd0aCwgKHByb29mU3RlcHMpID0+IHtcbiAgICAgICAgbGV0IHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uID0gZmFsc2U7XG5cbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgICAgICBwcmVtaXNlc01hdGNoID0gbWF0Y2hQcmVtaXNlcyh0aGlzLnByZW1pc2VzLCBwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCB0aGlzLmZpbGVDb250ZXh0LCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChwcmVtaXNlc01hdGNoKSB7XG4gICAgICAgICAgY29uc3QgY29uY2x1c2lvbk1hdGNoZXMgPSBtYXRjaENvbmNsdXNpb24odGhpcy5jb25jbHVzaW9uLCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCB0aGlzLmZpbGVDb250ZXh0LCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgcHJlbWlzZXNNYXRjaENvbmNsdXNpb24gPSBjb25jbHVzaW9uTWF0Y2hlczsgIC8vL1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnROYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hNZXRhc3RhdGVtZW50KG1ldGFzdGF0ZW1lbnROb2RlLCBtZXRhc3RhdGVtZW50TG9jYWxNZXRhQ29udGV4dCkge1xuICAgIGxldCBtZXRhc3RhdGVtZW50TmF0Y2hlcztcblxuICAgIGNvbnN0IHByZW1pc2VzTGVuZ3RoID0gdGhpcy5wcmVtaXNlcy5sZW5ndGg7XG5cbiAgICBpZiAocHJlbWlzZXNMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gbWV0YU1hdGNoQ29uY2x1c2lvbih0aGlzLmNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCB0aGlzLmZpbGVDb250ZXh0LCBtZXRhc3RhdGVtZW50TG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIG1ldGFzdGF0ZW1lbnROYXRjaGVzID0gY29uY2x1c2lvbk1hdGNoZXM7IC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtZXRhcHJvb2ZTdGVwcyA9IG1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0LmdldE1ldGFwcm9vZlN0ZXBzKCk7XG5cbiAgICAgIG1ldGFzdGF0ZW1lbnROYXRjaGVzID0gc29tZVN1YkFycmF5KG1ldGFwcm9vZlN0ZXBzLCBwcmVtaXNlc0xlbmd0aCwgKG1ldGFwcm9vZlN0ZXBzKSA9PiB7XG4gICAgICAgIGxldCBwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiA9IGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgICAgICAgcHJlbWlzZXNNYXRjaCA9IG1ldGFNYXRjaFByZW1pc2VzKHRoaXMucHJlbWlzZXMsIG1ldGFwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCB0aGlzLmZpbGVDb250ZXh0LCBtZXRhc3RhdGVtZW50TG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHByZW1pc2VzTWF0Y2gpIHtcbiAgICAgICAgICBjb25zdCBjb25jbHVzaW9uTWF0Y2hlcyA9IG1ldGFNYXRjaENvbmNsdXNpb24odGhpcy5jb25jbHVzaW9uLCBtZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgdGhpcy5maWxlQ29udGV4dCwgbWV0YXN0YXRlbWVudExvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgICAgICAgcHJlbWlzZXNNYXRjaENvbmNsdXNpb24gPSBjb25jbHVzaW9uTWF0Y2hlczsgIC8vL1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByZW1pc2VzTWF0Y2hDb25jbHVzaW9uKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhc3RhdGVtZW50TmF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTGFiZWxNZXRhdmFyaWFibGVOb2RlKGxhYmVsTWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IGxhYmVsTWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSB0aGlzLmxhYmVscy5zb21lKChsYWJlbCkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IGxhYmVsTWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgICAgICAgICBsYWJlbE1hdGNoZXNOb2RlID0gbGFiZWwubWF0Y2hOb2RlKG5vZGUpO1xuXG4gICAgICBpZiAobGFiZWxNYXRjaGVzTm9kZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBsYWJlbE1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzO1xuICB9XG5cbiAgdG9KU09OKHRva2Vucykge1xuICAgIGNvbnN0IGxhYmVsc0pTT04gPSB0aGlzLmxhYmVscy5tYXAoKGxhYmVsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04odG9rZW5zKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBwcmVtaXNlc0pTT04gPSB0aGlzLnByZW1pc2VzLm1hcCgocHJlbWlzZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJlbWlzZUpTT04gPSBwcmVtaXNlLnRvSlNPTih0b2tlbnMpO1xuXG4gICAgICAgICAgICByZXR1cm4gcHJlbWlzZUpTT047XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY29uY2x1c2lvbkpTT04gPSB0aGlzLmNvbmNsdXNpb24udG9KU09OKHRva2VucyksXG4gICAgICAgICAgbGFiZWxzID0gbGFiZWxzSlNPTiwgIC8vL1xuICAgICAgICAgIHByZW1pc2VzID0gcHJlbWlzZXNKU09OLCAgLy8vXG4gICAgICAgICAgY29uY2x1c2lvbiA9IGNvbmNsdXNpb25KU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGxhYmVscyxcbiAgICAgICAgICAgIHByZW1pc2VzLFxuICAgICAgICAgICAgY29uY2x1c2lvblxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHJ1bGU7XG5cbiAgICBsZXQgeyBsYWJlbHMgfSA9IGpzb247XG5cbiAgICBjb25zdCBsYWJlbHNKU09OID0gbGFiZWxzOyAgLy8vXG5cbiAgICBsYWJlbHMgPSBsYWJlbHNKU09OLm1hcCgobGFiZWxKU09OKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gbGFiZWxKU09OLCAvLy9cbiAgICAgICAgICAgIGxhYmVsID0gTGFiZWwuZnJvbUpTT05BbmRGaWxlQ29udGV4dChqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgIHJldHVybiBsYWJlbDtcbiAgICB9KTtcblxuICAgIGxldCB7IHByZW1pc2VzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgcHJlbWlzZXNKU09OID0gcHJlbWlzZXM7ICAvLy9cblxuICAgIHByZW1pc2VzID0gcHJlbWlzZXNKU09OLm1hcCgocHJlbWlzZUpTT04pID0+IHtcbiAgICAgIGNvbnN0IGpzb24gPSBwcmVtaXNlSlNPTiwgLy8vXG4gICAgICAgICAgICBwcmVtaXNlID0gUHJlbWlzZS5mcm9tSlNPTkFuZEZpbGVDb250ZXh0KGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHByZW1pc2U7XG4gICAgfSk7XG5cbiAgICBsZXQgeyBjb25jbHVzaW9uIH0gPSBqc29uO1xuXG4gICAgY29uc3QgY29uY2x1c2lvbkpTT04gPSBjb25jbHVzaW9uOyAgLy8vXG5cbiAgICBqc29uID0gY29uY2x1c2lvbkpTT047ICAvLy9cblxuICAgIGNvbmNsdXNpb24gPSBDb25jbHVzaW9uLmZyb21KU09OQW5kRmlsZUNvbnRleHQoanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcnVsZSA9IG5ldyBSdWxlKGxhYmVscywgcHJlbWlzZXMsIGNvbmNsdXNpb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBydWxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21MYWJlbHNQcmVtaXNlc0NvbmNsdXNpb25BbmRGaWxlQ29udGV4dChsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHJ1bGUgPSBuZXcgUnVsZShsYWJlbHMsIHByZW1pc2VzLCBjb25jbHVzaW9uLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gcnVsZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaFByZW1pc2UocHJlbWlzZSwgcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIHN0YXRlbWVudExvY2FsQ29udGV4dCkge1xuICBjb25zdCBwcm9vZlN0ZXAgPSBwcnVuZShwcm9vZlN0ZXBzLCAocHJvb2ZTdGVwKSA9PiB7XG4gICAgY29uc3Qgc3VicHJvb2ZOb2RlID0gcHJvb2ZTdGVwLmdldFN1YnByb29mTm9kZSgpLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBwcm9vZlN0ZXAuZ2V0U3RhdGVtZW50Tm9kZSgpXG5cbiAgICBpZiAoc3VicHJvb2ZOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdWJQcm9vZk5vZGVNYXRjaGVzID0gcHJlbWlzZS5tYXRjaFN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBzdGF0ZW1lbnRMb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoIXN1YlByb29mTm9kZU1hdGNoZXMpIHsgIC8vL1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBwcmVtaXNlLm1hdGNoU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgc3RhdGVtZW50TG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKCFzdGF0ZW1lbnROb2RlTWF0Y2hlcykgeyAgLy8vXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfSkgfHwgbnVsbDtcblxuICBjb25zdCBwcmVtaXNlTWF0Y2hlcyA9IChwcm9vZlN0ZXAgIT09IG51bGwpO1xuXG4gIHJldHVybiBwcmVtaXNlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcmVtaXNlcyhwcmVtaXNlLCBwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgc3RhdGVtZW50TG9jYWxDb250ZXh0KSB7XG4gIGNvbnN0IHByZW1pc2VzTWF0Y2ggPSBwcmVtaXNlLmV2ZXJ5KChwcmVtaXNlKSA9PiB7XG4gICAgY29uc3QgcHJlbWlzZU1hdGNoZXMgPSBtYXRjaFByZW1pc2UocHJlbWlzZSwgcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIHN0YXRlbWVudExvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAocHJlbWlzZU1hdGNoZXMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHByZW1pc2VzTWF0Y2g7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uY2x1c2lvbihjb25jbHVzaW9uLCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgc3RhdGVtZW50TG9jYWxDb250ZXh0KSB7XG4gIGNvbnN0IHN0YXRlbWVudE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbi5tYXRjaFN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIHN0YXRlbWVudExvY2FsQ29udGV4dCksXG4gICAgICAgIGNvbmNsdXNpb25NYXRjaGVzID0gc3RhdGVtZW50Tm9kZU1hdGNoZXM7IC8vL1xuXG4gIHJldHVybiBjb25jbHVzaW9uTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWV0YU1hdGNoUHJlbWlzZShwcmVtaXNlLCBtZXRhcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIG1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0KSB7XG4gIGNvbnN0IG1ldGFwcm9vZlN0ZXAgPSBwcnVuZShtZXRhcHJvb2ZTdGVwcywgKG1ldGFwcm9vZlN0ZXApID0+IHtcbiAgICBjb25zdCBydWxlU3VicHJvb2ZOb2RlID0gbWV0YXByb29mU3RlcC5nZXRSdWxlU3VicHJvb2ZOb2RlKCksXG4gICAgICAgICAgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhcHJvb2ZTdGVwLmdldE1ldGFzdGF0ZW1lbnROb2RlKClcblxuICAgIGlmIChydWxlU3VicHJvb2ZOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBydWxlU3ViUHJvb2ZOb2RlTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hSdWxlU3VicHJvb2ZOb2RlKHJ1bGVTdWJwcm9vZk5vZGUsIHN1YnN0aXR1dGlvbnMsIGZpbGVDb250ZXh0LCBtZXRhc3RhdGVtZW50TG9jYWxNZXRhQ29udGV4dCk7XG5cbiAgICAgIGlmICghcnVsZVN1YlByb29mTm9kZU1hdGNoZXMpIHsgIC8vL1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHByZW1pc2UubWF0Y2hNZXRhc3RhdGVtZW50Tm9kZShtZXRhc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIG1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0KTtcblxuICAgICAgaWYgKCFtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMpIHsgIC8vL1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pIHx8IG51bGw7XG5cbiAgY29uc3QgcHJlbWlzZU1hdGNoZXMgPSAobWV0YXByb29mU3RlcCAhPT0gbnVsbCk7XG5cbiAgcmV0dXJuIHByZW1pc2VNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtZXRhTWF0Y2hQcmVtaXNlcyhwcmVtaXNlLCBtZXRhcHJvb2ZTdGVwcywgc3Vic3RpdHV0aW9ucywgZmlsZUNvbnRleHQsIG1ldGFzdGF0ZW1lbnRMb2NhbE1ldGFDb250ZXh0KSB7XG4gIGNvbnN0IHByZW1pc2VzTWF0Y2ggPSBwcmVtaXNlLmV2ZXJ5KChwcmVtaXNlKSA9PiB7XG4gICAgY29uc3QgcHJlbWlzZU1hdGNoZXMgPSBtZXRhTWF0Y2hQcmVtaXNlKHByZW1pc2UsIG1ldGFwcm9vZlN0ZXBzLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbWV0YXN0YXRlbWVudExvY2FsTWV0YUNvbnRleHQpO1xuXG4gICAgaWYgKHByZW1pc2VNYXRjaGVzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlc01hdGNoO1xufVxuXG5mdW5jdGlvbiBtZXRhTWF0Y2hDb25jbHVzaW9uKGNvbmNsdXNpb24sIG1ldGFzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbWV0YXN0YXRlbWVudExvY2FsTWV0YUNvbnRleHQpIHtcbiAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gY29uY2x1c2lvbi5tYXRjaE1ldGFzdGF0ZW1lbnROb2RlKG1ldGFzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBmaWxlQ29udGV4dCwgbWV0YXN0YXRlbWVudExvY2FsTWV0YUNvbnRleHQpLFxuICAgICAgICBjb25jbHVzaW9uTWF0Y2hlcyA9IG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIGNvbmNsdXNpb25NYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbIlJ1bGUiLCJsYWJlbHMiLCJwcmVtaXNlcyIsImNvbmNsdXNpb24iLCJmaWxlQ29udGV4dCIsImdldExhYmVscyIsImdldFByZW1pc2VzIiwiZ2V0Q29uY2x1c2lvbiIsImdldEZpbGVDb250ZXh0IiwibWF0Y2hTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50TG9jYWxDb250ZXh0Iiwic3RhdGVtZW50TmF0Y2hlcyIsInByZW1pc2VzTGVuZ3RoIiwibGVuZ3RoIiwic3Vic3RpdHV0aW9ucyIsImNvbmNsdXNpb25NYXRjaGVzIiwibWF0Y2hDb25jbHVzaW9uIiwicHJvb2ZTdGVwcyIsImdldFByb29mU3RlcHMiLCJzb21lU3ViQXJyYXkiLCJwcmVtaXNlc01hdGNoQ29uY2x1c2lvbiIsInByZW1pc2VzTWF0Y2giLCJtYXRjaFByZW1pc2VzIiwibWF0Y2hNZXRhc3RhdGVtZW50IiwibWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhc3RhdGVtZW50TG9jYWxNZXRhQ29udGV4dCIsIm1ldGFzdGF0ZW1lbnROYXRjaGVzIiwibWV0YU1hdGNoQ29uY2x1c2lvbiIsIm1ldGFwcm9vZlN0ZXBzIiwiZ2V0TWV0YXByb29mU3RlcHMiLCJtZXRhTWF0Y2hQcmVtaXNlcyIsIm1hdGNoTGFiZWxNZXRhdmFyaWFibGVOb2RlIiwibGFiZWxNZXRhdmFyaWFibGVOb2RlIiwibGFiZWxNZXRhdmFyaWFibGVOb2RlTWF0Y2hlcyIsInNvbWUiLCJsYWJlbCIsIm5vZGUiLCJsYWJlbE1hdGNoZXNOb2RlIiwibWF0Y2hOb2RlIiwidG9KU09OIiwidG9rZW5zIiwibGFiZWxzSlNPTiIsIm1hcCIsImxhYmVsSlNPTiIsInByZW1pc2VzSlNPTiIsInByZW1pc2UiLCJwcmVtaXNlSlNPTiIsImNvbmNsdXNpb25KU09OIiwianNvbiIsImZyb21KU09OQW5kRmlsZUNvbnRleHQiLCJydWxlIiwiTGFiZWwiLCJQcmVtaXNlIiwiQ29uY2x1c2lvbiIsImZyb21MYWJlbHNQcmVtaXNlc0NvbmNsdXNpb25BbmRGaWxlQ29udGV4dCIsIm1hdGNoUHJlbWlzZSIsInByb29mU3RlcCIsInBydW5lIiwic3VicHJvb2ZOb2RlIiwiZ2V0U3VicHJvb2ZOb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsInN1YlByb29mTm9kZU1hdGNoZXMiLCJtYXRjaFN1YnByb29mTm9kZSIsInN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hTdGF0ZW1lbnROb2RlIiwicHJlbWlzZU1hdGNoZXMiLCJldmVyeSIsIm1ldGFNYXRjaFByZW1pc2UiLCJtZXRhcHJvb2ZTdGVwIiwicnVsZVN1YnByb29mTm9kZSIsImdldFJ1bGVTdWJwcm9vZk5vZGUiLCJnZXRNZXRhc3RhdGVtZW50Tm9kZSIsInJ1bGVTdWJQcm9vZk5vZGVNYXRjaGVzIiwibWF0Y2hSdWxlU3VicHJvb2ZOb2RlIiwibWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwibWF0Y2hNZXRhc3RhdGVtZW50Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFTcUJBOzs7NERBUEg7OERBQ0U7aUVBQ0c7cUJBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHUCxJQUFBLEFBQU1BLHFCQUFELEFBQUw7YUFBTUEsS0FDUEMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsV0FBVztnQ0FEbENKO1FBRWpCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBOztrQkFMRko7O1lBUW5CSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE1BQU07WUFDcEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFFBQVE7WUFDdEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFVBQVU7WUFDeEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFdBQVc7WUFDekI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUMsYUFBYSxFQUFFQyxxQkFBcUI7O2dCQUNqRCxJQUFJQztnQkFFSixJQUFNQyxpQkFBaUIsSUFBSSxDQUFDWCxRQUFRLENBQUNZLE1BQU07Z0JBRTNDLElBQUlELG1CQUFtQixHQUFHO29CQUN4QixJQUFNRSxnQkFBZ0IsRUFBRSxFQUNsQkMsb0JBQW9CQyxnQkFBZ0IsSUFBSSxDQUFDZCxVQUFVLEVBQUVPLGVBQWVLLGVBQWUsSUFBSSxDQUFDWCxXQUFXLEVBQUVPO29CQUUzR0MsbUJBQW1CSSxtQkFBbUIsR0FBRztnQkFDM0MsT0FBTztvQkFDTCxJQUFNRSxhQUFhUCxzQkFBc0JRLGFBQWE7b0JBRXREUCxtQkFBbUJRLElBQUFBLG1CQUFZLEVBQUNGLFlBQVlMLGdCQUFnQixTQUFDSzt3QkFDM0QsSUFBSUcsMEJBQTBCO3dCQUU5QixJQUFNTixnQkFBZ0IsRUFBRSxFQUNsQk8sZ0JBQWdCQyxjQUFjLE1BQUtyQixRQUFRLEVBQUVnQixZQUFZSCxlQUFlLE1BQUtYLFdBQVcsRUFBRU87d0JBRWhHLElBQUlXLGVBQWU7NEJBQ2pCLElBQU1OLG9CQUFvQkMsZ0JBQWdCLE1BQUtkLFVBQVUsRUFBRU8sZUFBZUssZUFBZSxNQUFLWCxXQUFXLEVBQUVPOzRCQUUzR1UsMEJBQTBCTCxtQkFBb0IsR0FBRzt3QkFDbkQ7d0JBRUEsSUFBSUsseUJBQXlCOzRCQUMzQixPQUFPO3dCQUNUO29CQUNGO2dCQUNGO2dCQUVBLE9BQU9UO1lBQ1Q7OztZQUVBWSxLQUFBQTttQkFBQUEsU0FBQUEsbUJBQW1CQyxpQkFBaUIsRUFBRUMsNkJBQTZCOztnQkFDakUsSUFBSUM7Z0JBRUosSUFBTWQsaUJBQWlCLElBQUksQ0FBQ1gsUUFBUSxDQUFDWSxNQUFNO2dCQUUzQyxJQUFJRCxtQkFBbUIsR0FBRztvQkFDeEIsSUFBTUUsZ0JBQWdCLEVBQUUsRUFDbEJDLG9CQUFvQlksb0JBQW9CLElBQUksQ0FBQ3pCLFVBQVUsRUFBRXNCLG1CQUFtQlYsZUFBZSxJQUFJLENBQUNYLFdBQVcsRUFBRXNCO29CQUVuSEMsdUJBQXVCWCxtQkFBbUIsR0FBRztnQkFDL0MsT0FBTztvQkFDTCxJQUFNYSxpQkFBaUJILDhCQUE4QkksaUJBQWlCO29CQUV0RUgsdUJBQXVCUCxJQUFBQSxtQkFBWSxFQUFDUyxnQkFBZ0JoQixnQkFBZ0IsU0FBQ2dCO3dCQUNuRSxJQUFJUiwwQkFBMEI7d0JBRTlCLElBQU1OLGdCQUFnQixFQUFFLEVBQ2xCTyxnQkFBZ0JTLGtCQUFrQixNQUFLN0IsUUFBUSxFQUFFMkIsZ0JBQWdCZCxlQUFlLE1BQUtYLFdBQVcsRUFBRXNCO3dCQUV4RyxJQUFJSixlQUFlOzRCQUNqQixJQUFNTixvQkFBb0JZLG9CQUFvQixNQUFLekIsVUFBVSxFQUFFc0IsbUJBQW1CVixlQUFlLE1BQUtYLFdBQVcsRUFBRXNCOzRCQUVuSEwsMEJBQTBCTCxtQkFBb0IsR0FBRzt3QkFDbkQ7d0JBRUEsSUFBSUsseUJBQXlCOzRCQUMzQixPQUFPO3dCQUNUO29CQUNGO2dCQUNGO2dCQUVBLE9BQU9NO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsMkJBQTJCQyxxQkFBcUI7Z0JBQzlDLElBQU1DLCtCQUErQixJQUFJLENBQUNqQyxNQUFNLENBQUNrQyxJQUFJLENBQUMsU0FBQ0M7b0JBQ3JELElBQU1DLE9BQU9KLHVCQUNQSyxtQkFBbUJGLE1BQU1HLFNBQVMsQ0FBQ0Y7b0JBRXpDLElBQUlDLGtCQUFrQjt3QkFDcEIsT0FBTztvQkFDVDtnQkFDRjtnQkFFQSxPQUFPSjtZQUNUOzs7WUFFQU0sS0FBQUE7bUJBQUFBLFNBQUFBLE9BQU9DLE1BQU07Z0JBQ1gsSUFBTUMsYUFBYSxJQUFJLENBQUN6QyxNQUFNLENBQUMwQyxHQUFHLENBQUMsU0FBQ1A7b0JBQzVCLElBQU1RLFlBQVlSLE1BQU1JLE1BQU0sQ0FBQ0M7b0JBRS9CLE9BQU9HO2dCQUNULElBQ0FDLGVBQWUsSUFBSSxDQUFDM0MsUUFBUSxDQUFDeUMsR0FBRyxDQUFDLFNBQUNHO29CQUNoQyxJQUFNQyxjQUFjRCxRQUFRTixNQUFNLENBQUNDO29CQUVuQyxPQUFPTTtnQkFDVCxJQUNBQyxpQkFBaUIsSUFBSSxDQUFDN0MsVUFBVSxDQUFDcUMsTUFBTSxDQUFDQyxTQUN4Q3hDLFNBQVN5QyxZQUNUeEMsV0FBVzJDLGNBQ1gxQyxhQUFhNkMsZ0JBQ2JDLE9BQU87b0JBQ0xoRCxRQUFBQTtvQkFDQUMsVUFBQUE7b0JBQ0FDLFlBQUFBO2dCQUNGO2dCQUVOLE9BQU84QztZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLHVCQUF1QkQsSUFBSSxFQUFFN0MsV0FBVztnQkFDN0MsSUFBSStDO2dCQUVKLElBQUksQUFBRWxELFNBQVdnRCxLQUFYaEQ7Z0JBRU4sSUFBTXlDLGFBQWF6QyxRQUFTLEdBQUc7Z0JBRS9CQSxTQUFTeUMsV0FBV0MsR0FBRyxDQUFDLFNBQUNDO29CQUN2QixJQUFNSyxTQUFPTCxXQUNQUixRQUFRZ0IsY0FBSyxDQUFDRixzQkFBc0IsQ0FBQ0QsUUFBTTdDO29CQUVqRCxPQUFPZ0M7Z0JBQ1Q7Z0JBRUEsSUFBSSxBQUFFbEMsV0FBYStDLEtBQWIvQztnQkFFTixJQUFNMkMsZUFBZTNDLFVBQVcsR0FBRztnQkFFbkNBLFdBQVcyQyxhQUFhRixHQUFHLENBQUMsU0FBQ0k7b0JBQzNCLElBQU1FLFNBQU9GLGFBQ1BELFVBQVVPLGdCQUFPLENBQUNILHNCQUFzQixDQUFDRCxRQUFNN0M7b0JBRXJELE9BQU8wQztnQkFDVDtnQkFFQSxJQUFJLEFBQUUzQyxhQUFlOEMsS0FBZjlDO2dCQUVOLElBQU02QyxpQkFBaUI3QyxZQUFhLEdBQUc7Z0JBRXZDOEMsT0FBT0QsZ0JBQWlCLEdBQUc7Z0JBRTNCN0MsYUFBYW1ELG1CQUFVLENBQUNKLHNCQUFzQixDQUFDRCxNQUFNN0M7Z0JBRXJEK0MsT0FBTyxJQWxLVW5ELEtBa0tEQyxRQUFRQyxVQUFVQyxZQUFZQztnQkFFOUMsT0FBTytDO1lBQ1Q7OztZQUVPSSxLQUFBQTttQkFBUCxTQUFPQSwyQ0FBMkN0RCxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxXQUFXO2dCQUN6RixJQUFNK0MsT0FBTyxJQXhLSW5ELEtBd0tLQyxRQUFRQyxVQUFVQyxZQUFZQztnQkFFcEQsT0FBTytDO1lBQ1Q7OztXQTNLbUJuRDs7QUE4S3JCLFNBQVN3RCxhQUFhVixPQUFPLEVBQUU1QixVQUFVLEVBQUVILGFBQWEsRUFBRVgsV0FBVyxFQUFFTyxxQkFBcUI7SUFDMUYsSUFBTThDLFlBQVlDLElBQUFBLFlBQUssRUFBQ3hDLFlBQVksU0FBQ3VDO1FBQ25DLElBQU1FLGVBQWVGLFVBQVVHLGVBQWUsSUFDeENsRCxnQkFBZ0IrQyxVQUFVSSxnQkFBZ0I7UUFFaEQsSUFBSUYsaUJBQWlCLE1BQU07WUFDekIsSUFBTUcsc0JBQXNCaEIsUUFBUWlCLGlCQUFpQixDQUFDSixjQUFjNUMsZUFBZVgsYUFBYU87WUFFaEcsSUFBSSxDQUFDbUQscUJBQXFCO2dCQUN4QixPQUFPO1lBQ1Q7UUFDRjtRQUVBLElBQUlwRCxrQkFBa0IsTUFBTTtZQUMxQixJQUFNc0QsdUJBQXVCbEIsUUFBUW1CLGtCQUFrQixDQUFDdkQsZUFBZUssZUFBZVgsYUFBYU87WUFFbkcsSUFBSSxDQUFDcUQsc0JBQXNCO2dCQUN6QixPQUFPO1lBQ1Q7UUFDRjtJQUNGLE1BQU07SUFFTixJQUFNRSxpQkFBa0JULGNBQWM7SUFFdEMsT0FBT1M7QUFDVDtBQUVBLFNBQVMzQyxjQUFjdUIsT0FBTyxFQUFFNUIsVUFBVSxFQUFFSCxhQUFhLEVBQUVYLFdBQVcsRUFBRU8scUJBQXFCO0lBQzNGLElBQU1XLGdCQUFnQndCLFFBQVFxQixLQUFLLENBQUMsU0FBQ3JCO1FBQ25DLElBQU1vQixpQkFBaUJWLGFBQWFWLFNBQVM1QixZQUFZSCxlQUFlWCxhQUFhTztRQUVyRixJQUFJdUQsZ0JBQWdCO1lBQ2xCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBTzVDO0FBQ1Q7QUFFQSxTQUFTTCxnQkFBZ0JkLFVBQVUsRUFBRU8sYUFBYSxFQUFFSyxhQUFhLEVBQUVYLFdBQVcsRUFBRU8scUJBQXFCO0lBQ25HLElBQU1xRCx1QkFBdUI3RCxXQUFXOEQsa0JBQWtCLENBQUN2RCxlQUFlSyxlQUFlWCxhQUFhTyx3QkFDaEdLLG9CQUFvQmdELHNCQUFzQixHQUFHO0lBRW5ELE9BQU9oRDtBQUNUO0FBRUEsU0FBU29ELGlCQUFpQnRCLE9BQU8sRUFBRWpCLGNBQWMsRUFBRWQsYUFBYSxFQUFFWCxXQUFXLEVBQUVzQiw2QkFBNkI7SUFDMUcsSUFBTTJDLGdCQUFnQlgsSUFBQUEsWUFBSyxFQUFDN0IsZ0JBQWdCLFNBQUN3QztRQUMzQyxJQUFNQyxtQkFBbUJELGNBQWNFLG1CQUFtQixJQUNwRDlDLG9CQUFvQjRDLGNBQWNHLG9CQUFvQjtRQUU1RCxJQUFJRixxQkFBcUIsTUFBTTtZQUM3QixJQUFNRywwQkFBMEIzQixRQUFRNEIscUJBQXFCLENBQUNKLGtCQUFrQnZELGVBQWVYLGFBQWFzQjtZQUU1RyxJQUFJLENBQUMrQyx5QkFBeUI7Z0JBQzVCLE9BQU87WUFDVDtRQUNGO1FBRUEsSUFBSWhELHNCQUFzQixNQUFNO1lBQzlCLElBQU1rRCwyQkFBMkI3QixRQUFROEIsc0JBQXNCLENBQUNuRCxtQkFBbUJWLGVBQWVYLGFBQWFzQjtZQUUvRyxJQUFJLENBQUNpRCwwQkFBMEI7Z0JBQzdCLE9BQU87WUFDVDtRQUNGO0lBQ0YsTUFBTTtJQUVOLElBQU1ULGlCQUFrQkcsa0JBQWtCO0lBRTFDLE9BQU9IO0FBQ1Q7QUFFQSxTQUFTbkMsa0JBQWtCZSxPQUFPLEVBQUVqQixjQUFjLEVBQUVkLGFBQWEsRUFBRVgsV0FBVyxFQUFFc0IsNkJBQTZCO0lBQzNHLElBQU1KLGdCQUFnQndCLFFBQVFxQixLQUFLLENBQUMsU0FBQ3JCO1FBQ25DLElBQU1vQixpQkFBaUJFLGlCQUFpQnRCLFNBQVNqQixnQkFBZ0JkLGVBQWVYLGFBQWFzQjtRQUU3RixJQUFJd0MsZ0JBQWdCO1lBQ2xCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBTzVDO0FBQ1Q7QUFFQSxTQUFTTSxvQkFBb0J6QixVQUFVLEVBQUVzQixpQkFBaUIsRUFBRVYsYUFBYSxFQUFFWCxXQUFXLEVBQUVzQiw2QkFBNkI7SUFDbkgsSUFBTWlELDJCQUEyQnhFLFdBQVd5RSxzQkFBc0IsQ0FBQ25ELG1CQUFtQlYsZUFBZVgsYUFBYXNCLGdDQUM1R1Ysb0JBQW9CMkQsMEJBQTBCLEdBQUc7SUFFdkQsT0FBTzNEO0FBQ1QifQ==
package/lib/ruleNames.js CHANGED
@@ -12,8 +12,8 @@ _export(exports, {
12
12
  CONSTRUCTOR_DECLARATION_RULE_NAME: function() {
13
13
  return CONSTRUCTOR_DECLARATION_RULE_NAME;
14
14
  },
15
- LABEL_RULE_NAME: function() {
16
- return LABEL_RULE_NAME;
15
+ METAVARIABLE_RULE_NAME: function() {
16
+ return METAVARIABLE_RULE_NAME;
17
17
  },
18
18
  META_ARGUMENT_RULE_NAME: function() {
19
19
  return META_ARGUMENT_RULE_NAME;
@@ -43,8 +43,8 @@ _export(exports, {
43
43
  return VARIABLE_DECLARATION_RULE_NAME;
44
44
  }
45
45
  });
46
- var LABEL_RULE_NAME = "label";
47
46
  var SUBPROOF_RULE_NAME = "subproof";
47
+ var METAVARIABLE_RULE_NAME = "metavariable";
48
48
  var RULE_SUBPROOF_RULE_NAME = "ruleSubproof";
49
49
  var META_SUBPROOF_RULE_NAME = "metaSubproof";
50
50
  var META_ARGUMENT_RULE_NAME = "metaArgument";
@@ -55,4 +55,4 @@ var CONSTRUCTOR_DECLARATION_RULE_NAME = "constructorDeclaration";
55
55
  var QUALIFIED_METASTATEMENT_RULE_NAME = "qualifiedMetastatement";
56
56
  var UNQUALIFIED_METASTATEMENT_RULE_NAME = "unqualifiedMetastatement";
57
57
 
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBMQUJFTF9SVUxFX05BTUUgPSBcImxhYmVsXCI7XG5leHBvcnQgY29uc3QgU1VCUFJPT0ZfUlVMRV9OQU1FID0gXCJzdWJwcm9vZlwiO1xuZXhwb3J0IGNvbnN0IFJVTEVfU1VCUFJPT0ZfUlVMRV9OQU1FID0gXCJydWxlU3VicHJvb2ZcIjtcbmV4cG9ydCBjb25zdCBNRVRBX1NVQlBST09GX1JVTEVfTkFNRSA9IFwibWV0YVN1YnByb29mXCI7XG5leHBvcnQgY29uc3QgTUVUQV9BUkdVTUVOVF9SVUxFX05BTUUgPSBcIm1ldGFBcmd1bWVudFwiO1xuZXhwb3J0IGNvbnN0IFFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FID0gXCJxdWFsaWZpZWRTdGF0ZW1lbnRcIjtcbmV4cG9ydCBjb25zdCBWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUUgPSBcInZhcmlhYmxlRGVjbGFyYXRpb25cIjtcbmV4cG9ydCBjb25zdCBVTlFVQUxJRklFRF9TVEFURU1FTlRfUlVMRV9OQU1FID0gXCJ1bnF1YWxpZmllZFN0YXRlbWVudFwiO1xuZXhwb3J0IGNvbnN0IENPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSA9IFwiY29uc3RydWN0b3JEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IFFVQUxJRklFRF9NRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSA9IFwicXVhbGlmaWVkTWV0YXN0YXRlbWVudFwiO1xuZXhwb3J0IGNvbnN0IFVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FID0gXCJ1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRcIjtcbiJdLCJuYW1lcyI6WyJDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJMQUJFTF9SVUxFX05BTUUiLCJNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSIsIk1FVEFfU1VCUFJPT0ZfUlVMRV9OQU1FIiwiUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUiLCJSVUxFX1NVQlBST09GX1JVTEVfTkFNRSIsIlNVQlBST09GX1JVTEVfTkFNRSIsIlVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSIsIlZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBVWFBLGlDQUFpQztlQUFqQ0E7O0lBUkFDLGVBQWU7ZUFBZkE7O0lBSUFDLHVCQUF1QjtlQUF2QkE7O0lBREFDLHVCQUF1QjtlQUF2QkE7O0lBTUFDLGlDQUFpQztlQUFqQ0E7O0lBSkFDLDZCQUE2QjtlQUE3QkE7O0lBSEFDLHVCQUF1QjtlQUF2QkE7O0lBREFDLGtCQUFrQjtlQUFsQkE7O0lBU0FDLG1DQUFtQztlQUFuQ0E7O0lBSEFDLCtCQUErQjtlQUEvQkE7O0lBREFDLDhCQUE4QjtlQUE5QkE7OztBQU5OLElBQU1ULGtCQUFrQjtBQUN4QixJQUFNTSxxQkFBcUI7QUFDM0IsSUFBTUQsMEJBQTBCO0FBQ2hDLElBQU1ILDBCQUEwQjtBQUNoQyxJQUFNRCwwQkFBMEI7QUFDaEMsSUFBTUcsZ0NBQWdDO0FBQ3RDLElBQU1LLGlDQUFpQztBQUN2QyxJQUFNRCxrQ0FBa0M7QUFDeEMsSUFBTVQsb0NBQW9DO0FBQzFDLElBQU1JLG9DQUFvQztBQUMxQyxJQUFNSSxzQ0FBc0MifQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydWxlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBTVUJQUk9PRl9SVUxFX05BTUUgPSBcInN1YnByb29mXCI7XG5leHBvcnQgY29uc3QgTUVUQVZBUklBQkxFX1JVTEVfTkFNRSA9IFwibWV0YXZhcmlhYmxlXCI7XG5leHBvcnQgY29uc3QgUlVMRV9TVUJQUk9PRl9SVUxFX05BTUUgPSBcInJ1bGVTdWJwcm9vZlwiO1xuZXhwb3J0IGNvbnN0IE1FVEFfU1VCUFJPT0ZfUlVMRV9OQU1FID0gXCJtZXRhU3VicHJvb2ZcIjtcbmV4cG9ydCBjb25zdCBNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSA9IFwibWV0YUFyZ3VtZW50XCI7XG5leHBvcnQgY29uc3QgUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUgPSBcInF1YWxpZmllZFN0YXRlbWVudFwiO1xuZXhwb3J0IGNvbnN0IFZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSA9IFwidmFyaWFibGVEZWNsYXJhdGlvblwiO1xuZXhwb3J0IGNvbnN0IFVOUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUgPSBcInVucXVhbGlmaWVkU3RhdGVtZW50XCI7XG5leHBvcnQgY29uc3QgQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FID0gXCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uXCI7XG5leHBvcnQgY29uc3QgUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FID0gXCJxdWFsaWZpZWRNZXRhc3RhdGVtZW50XCI7XG5leHBvcnQgY29uc3QgVU5RVUFMSUZJRURfTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUgPSBcInVucXVhbGlmaWVkTWV0YXN0YXRlbWVudFwiO1xuIl0sIm5hbWVzIjpbIkNPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJNRVRBX0FSR1VNRU5UX1JVTEVfTkFNRSIsIk1FVEFfU1VCUFJPT0ZfUlVMRV9OQU1FIiwiUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiUVVBTElGSUVEX1NUQVRFTUVOVF9SVUxFX05BTUUiLCJSVUxFX1NVQlBST09GX1JVTEVfTkFNRSIsIlNVQlBST09GX1JVTEVfTkFNRSIsIlVOUVVBTElGSUVEX01FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiVU5RVUFMSUZJRURfU1RBVEVNRU5UX1JVTEVfTkFNRSIsIlZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBVWFBLGlDQUFpQztlQUFqQ0E7O0lBUEFDLHNCQUFzQjtlQUF0QkE7O0lBR0FDLHVCQUF1QjtlQUF2QkE7O0lBREFDLHVCQUF1QjtlQUF2QkE7O0lBTUFDLGlDQUFpQztlQUFqQ0E7O0lBSkFDLDZCQUE2QjtlQUE3QkE7O0lBSEFDLHVCQUF1QjtlQUF2QkE7O0lBRkFDLGtCQUFrQjtlQUFsQkE7O0lBVUFDLG1DQUFtQztlQUFuQ0E7O0lBSEFDLCtCQUErQjtlQUEvQkE7O0lBREFDLDhCQUE4QjtlQUE5QkE7OztBQU5OLElBQU1ILHFCQUFxQjtBQUMzQixJQUFNTix5QkFBeUI7QUFDL0IsSUFBTUssMEJBQTBCO0FBQ2hDLElBQU1ILDBCQUEwQjtBQUNoQyxJQUFNRCwwQkFBMEI7QUFDaEMsSUFBTUcsZ0NBQWdDO0FBQ3RDLElBQU1LLGlDQUFpQztBQUN2QyxJQUFNRCxrQ0FBa0M7QUFDeEMsSUFBTVQsb0NBQW9DO0FBQzFDLElBQU1JLG9DQUFvQztBQUMxQyxJQUFNSSxzQ0FBc0MifQ==
@@ -9,18 +9,18 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- labelNameFromLabelNode: function() {
13
- return labelNameFromLabelNode;
14
- },
15
12
  metaTypeNameFromMetaTypeNode: function() {
16
13
  return metaTypeNameFromMetaTypeNode;
17
14
  },
15
+ nameFromMetavariableNode: function() {
16
+ return nameFromMetavariableNode;
17
+ },
18
18
  typeNameFromTypeNode: function() {
19
19
  return typeNameFromTypeNode;
20
20
  }
21
21
  });
22
22
  var _query = require("../utilities/query");
23
- var typeTerminalNodeQuery = (0, _query.nodeQuery)("/type/@type"), metaTypeTerminalNodeQuery = (0, _query.nodeQuery)("/metaType/@meta-type"), labelNameTerminalNodeQuery = (0, _query.nodeQuery)("/label/@name");
23
+ var typeTerminalNodeQuery = (0, _query.nodeQuery)("/type/@type"), nameTerminalNodeQuery = (0, _query.nodeQuery)("/metavariable/@name"), metaTypeTerminalNodeQuery = (0, _query.nodeQuery)("/metaType/@meta-type");
24
24
  function typeNameFromTypeNode(typeNode) {
25
25
  var typeName = null;
26
26
  if (typeNode !== null) {
@@ -29,9 +29,9 @@ function typeNameFromTypeNode(typeNode) {
29
29
  }
30
30
  return typeName;
31
31
  }
32
- function labelNameFromLabelNode(labelNode) {
33
- var labelNameTerminalNode = labelNameTerminalNodeQuery(labelNode), labelNameTerminalNodeContent = labelNameTerminalNode.getContent(), labelName = labelNameTerminalNodeContent; ///
34
- return labelName;
32
+ function nameFromMetavariableNode(metavariableNode) {
33
+ var nameTerminalNode = nameTerminalNodeQuery(metavariableNode), nameTerminalNodeContent = nameTerminalNode.getContent(), name = nameTerminalNodeContent; ///
34
+ return name;
35
35
  }
36
36
  function metaTypeNameFromMetaTypeNode(metaTypeNode) {
37
37
  var metaTypeName = null;
@@ -42,4 +42,4 @@ function metaTypeNameFromMetaTypeNode(metaTypeNode) {
42
42
  return metaTypeName;
43
43
  }
44
44
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbmFtZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0eXBlVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZS9AdHlwZVwiKSxcbiAgICAgIG1ldGFUeXBlVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YVR5cGUvQG1ldGEtdHlwZVwiKSxcbiAgICAgIGxhYmVsTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2xhYmVsL0BuYW1lXCIpO1xuXG5leHBvcnQgZnVuY3Rpb24gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpIHtcbiAgbGV0IHR5cGVOYW1lID0gbnVsbDtcblxuICBpZiAodHlwZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCB0eXBlVGVybWluYWxOb2RlID0gdHlwZVRlcm1pbmFsTm9kZVF1ZXJ5KHR5cGVOb2RlKSxcbiAgICAgICAgICB0eXBlVGVybWluYWxOb2RlQ29udGVudCA9IHR5cGVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpO1xuXG4gICAgdHlwZU5hbWUgPSB0eXBlVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG4gIH1cblxuICByZXR1cm4gdHlwZU5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYWJlbE5hbWVGcm9tTGFiZWxOb2RlKGxhYmVsTm9kZSkge1xuICBjb25zdCBsYWJlbE5hbWVUZXJtaW5hbE5vZGUgPSBsYWJlbE5hbWVUZXJtaW5hbE5vZGVRdWVyeShsYWJlbE5vZGUpLFxuICAgICAgICBsYWJlbE5hbWVUZXJtaW5hbE5vZGVDb250ZW50ID0gbGFiZWxOYW1lVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgbGFiZWxOYW1lID0gbGFiZWxOYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIGxhYmVsTmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGFUeXBlTmFtZUZyb21NZXRhVHlwZU5vZGUobWV0YVR5cGVOb2RlKSB7XG4gIGxldCBtZXRhVHlwZU5hbWUgPSBudWxsO1xuXG4gIGlmIChtZXRhVHlwZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXRhVHlwZVRlcm1pbmFsTm9kZSA9IG1ldGFUeXBlVGVybWluYWxOb2RlUXVlcnkobWV0YVR5cGVOb2RlKSxcbiAgICAgICAgICBtZXRhVHlwZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSBtZXRhVHlwZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICBtZXRhVHlwZU5hbWUgPSBtZXRhVHlwZVRlcm1pbmFsTm9kZUNvbnRlbnQ7IC8vL1xuICB9XG5cbiAgcmV0dXJuIG1ldGFUeXBlTmFtZTtcbn1cbiJdLCJuYW1lcyI6WyJsYWJlbE5hbWVGcm9tTGFiZWxOb2RlIiwibWV0YVR5cGVOYW1lRnJvbU1ldGFUeXBlTm9kZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwidHlwZVRlcm1pbmFsTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YVR5cGVUZXJtaW5hbE5vZGVRdWVyeSIsImxhYmVsTmFtZVRlcm1pbmFsTm9kZVF1ZXJ5IiwidHlwZU5vZGUiLCJ0eXBlTmFtZSIsInR5cGVUZXJtaW5hbE5vZGUiLCJ0eXBlVGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJsYWJlbE5vZGUiLCJsYWJlbE5hbWVUZXJtaW5hbE5vZGUiLCJsYWJlbE5hbWVUZXJtaW5hbE5vZGVDb250ZW50IiwibGFiZWxOYW1lIiwibWV0YVR5cGVOb2RlIiwibWV0YVR5cGVOYW1lIiwibWV0YVR5cGVUZXJtaW5hbE5vZGUiLCJtZXRhVHlwZVRlcm1pbmFsTm9kZUNvbnRlbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXFCZ0JBLHNCQUFzQjtlQUF0QkE7O0lBUUFDLDRCQUE0QjtlQUE1QkE7O0lBckJBQyxvQkFBb0I7ZUFBcEJBOzs7cUJBTlU7QUFFMUIsSUFBTUMsd0JBQXdCQyxJQUFBQSxnQkFBUyxFQUFDLGdCQUNsQ0MsNEJBQTRCRCxJQUFBQSxnQkFBUyxFQUFDLHlCQUN0Q0UsNkJBQTZCRixJQUFBQSxnQkFBUyxFQUFDO0FBRXRDLFNBQVNGLHFCQUFxQkssUUFBUTtJQUMzQyxJQUFJQyxXQUFXO0lBRWYsSUFBSUQsYUFBYSxNQUFNO1FBQ3JCLElBQU1FLG1CQUFtQk4sc0JBQXNCSSxXQUN6Q0csMEJBQTBCRCxpQkFBaUJFLFVBQVU7UUFFM0RILFdBQVdFLHlCQUF5QixHQUFHO0lBQ3pDO0lBRUEsT0FBT0Y7QUFDVDtBQUVPLFNBQVNSLHVCQUF1QlksU0FBUztJQUM5QyxJQUFNQyx3QkFBd0JQLDJCQUEyQk0sWUFDbkRFLCtCQUErQkQsc0JBQXNCRixVQUFVLElBQy9ESSxZQUFZRCw4QkFBOEIsR0FBRztJQUVuRCxPQUFPQztBQUNUO0FBRU8sU0FBU2QsNkJBQTZCZSxZQUFZO0lBQ3ZELElBQUlDLGVBQWU7SUFFbkIsSUFBSUQsaUJBQWlCLE1BQU07UUFDekIsSUFBTUUsdUJBQXVCYiwwQkFBMEJXLGVBQ2pERyw4QkFBOEJELHFCQUFxQlAsVUFBVTtRQUVuRU0sZUFBZUUsNkJBQTZCLEdBQUc7SUFDakQ7SUFFQSxPQUFPRjtBQUNUIn0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbmFtZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0eXBlVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZS9AdHlwZVwiKSxcbiAgICAgIG5hbWVUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGUvQG5hbWVcIiksXG4gICAgICBtZXRhVHlwZVRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFUeXBlL0BtZXRhLXR5cGVcIik7XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSkge1xuICBsZXQgdHlwZU5hbWUgPSBudWxsO1xuXG4gIGlmICh0eXBlTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHR5cGVUZXJtaW5hbE5vZGUgPSB0eXBlVGVybWluYWxOb2RlUXVlcnkodHlwZU5vZGUpLFxuICAgICAgICAgIHR5cGVUZXJtaW5hbE5vZGVDb250ZW50ID0gdHlwZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCk7XG5cbiAgICB0eXBlTmFtZSA9IHR5cGVUZXJtaW5hbE5vZGVDb250ZW50OyAvLy9cbiAgfVxuXG4gIHJldHVybiB0eXBlTmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gIGNvbnN0IG5hbWVUZXJtaW5hbE5vZGUgPSBuYW1lVGVybWluYWxOb2RlUXVlcnkobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIG5hbWVUZXJtaW5hbE5vZGVDb250ZW50ID0gbmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIG5hbWUgPSBuYW1lVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIG5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhVHlwZU5hbWVGcm9tTWV0YVR5cGVOb2RlKG1ldGFUeXBlTm9kZSkge1xuICBsZXQgbWV0YVR5cGVOYW1lID0gbnVsbDtcblxuICBpZiAobWV0YVR5cGVOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgbWV0YVR5cGVUZXJtaW5hbE5vZGUgPSBtZXRhVHlwZVRlcm1pbmFsTm9kZVF1ZXJ5KG1ldGFUeXBlTm9kZSksXG4gICAgICAgICAgbWV0YVR5cGVUZXJtaW5hbE5vZGVDb250ZW50ID0gbWV0YVR5cGVUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpO1xuXG4gICAgbWV0YVR5cGVOYW1lID0gbWV0YVR5cGVUZXJtaW5hbE5vZGVDb250ZW50OyAvLy9cbiAgfVxuXG4gIHJldHVybiBtZXRhVHlwZU5hbWU7XG59XG4iXSwibmFtZXMiOlsibWV0YVR5cGVOYW1lRnJvbU1ldGFUeXBlTm9kZSIsIm5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwidHlwZVRlcm1pbmFsTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibmFtZVRlcm1pbmFsTm9kZVF1ZXJ5IiwibWV0YVR5cGVUZXJtaW5hbE5vZGVRdWVyeSIsInR5cGVOb2RlIiwidHlwZU5hbWUiLCJ0eXBlVGVybWluYWxOb2RlIiwidHlwZVRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50IiwibWV0YXZhcmlhYmxlTm9kZSIsIm5hbWVUZXJtaW5hbE5vZGUiLCJuYW1lVGVybWluYWxOb2RlQ29udGVudCIsIm5hbWUiLCJtZXRhVHlwZU5vZGUiLCJtZXRhVHlwZU5hbWUiLCJtZXRhVHlwZVRlcm1pbmFsTm9kZSIsIm1ldGFUeXBlVGVybWluYWxOb2RlQ29udGVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBNkJnQkEsNEJBQTRCO2VBQTVCQTs7SUFSQUMsd0JBQXdCO2VBQXhCQTs7SUFiQUMsb0JBQW9CO2VBQXBCQTs7O3FCQU5VO0FBRTFCLElBQU1DLHdCQUF3QkMsSUFBQUEsZ0JBQVMsRUFBQyxnQkFDbENDLHdCQUF3QkQsSUFBQUEsZ0JBQVMsRUFBQyx3QkFDbENFLDRCQUE0QkYsSUFBQUEsZ0JBQVMsRUFBQztBQUVyQyxTQUFTRixxQkFBcUJLLFFBQVE7SUFDM0MsSUFBSUMsV0FBVztJQUVmLElBQUlELGFBQWEsTUFBTTtRQUNyQixJQUFNRSxtQkFBbUJOLHNCQUFzQkksV0FDekNHLDBCQUEwQkQsaUJBQWlCRSxVQUFVO1FBRTNESCxXQUFXRSx5QkFBeUIsR0FBRztJQUN6QztJQUVBLE9BQU9GO0FBQ1Q7QUFFTyxTQUFTUCx5QkFBeUJXLGdCQUFnQjtJQUN2RCxJQUFNQyxtQkFBbUJSLHNCQUFzQk8sbUJBQ3pDRSwwQkFBMEJELGlCQUFpQkYsVUFBVSxJQUNyREksT0FBT0QseUJBQXlCLEdBQUc7SUFFekMsT0FBT0M7QUFDVDtBQUVPLFNBQVNmLDZCQUE2QmdCLFlBQVk7SUFDdkQsSUFBSUMsZUFBZTtJQUVuQixJQUFJRCxpQkFBaUIsTUFBTTtRQUN6QixJQUFNRSx1QkFBdUJaLDBCQUEwQlUsZUFDakRHLDhCQUE4QkQscUJBQXFCUCxVQUFVO1FBRW5FTSxlQUFlRSw2QkFBNkIsR0FBRztJQUNqRDtJQUVBLE9BQU9GO0FBQ1QifQ==