occam-verify-cli 0.0.1087 → 0.0.1089

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 (45) hide show
  1. package/lib/assertion/contained.js +3 -3
  2. package/lib/assertion/defined.js +4 -4
  3. package/lib/axiom.js +33 -81
  4. package/lib/conjecture.js +33 -85
  5. package/lib/context/file.js +43 -1
  6. package/lib/context/local.js +38 -2
  7. package/lib/declaration.js +7 -41
  8. package/lib/frame.js +49 -26
  9. package/lib/judgement.js +28 -16
  10. package/lib/lemma.js +34 -85
  11. package/lib/metaLemma.js +35 -102
  12. package/lib/metatheorem.js +34 -60
  13. package/lib/mixins/statement/qualified/unify.js +21 -63
  14. package/lib/mixins/statement/verify.js +2 -17
  15. package/lib/proofStep.js +6 -6
  16. package/lib/reference.js +14 -4
  17. package/lib/statement.js +8 -8
  18. package/lib/term.js +8 -8
  19. package/lib/theorem.js +34 -85
  20. package/lib/topLevelAssertion.js +62 -5
  21. package/lib/utilities/json.js +2 -2
  22. package/lib/variable.js +2 -2
  23. package/package.json +1 -1
  24. package/src/assertion/contained.js +4 -4
  25. package/src/assertion/defined.js +4 -4
  26. package/src/axiom.js +10 -63
  27. package/src/conjecture.js +10 -72
  28. package/src/context/file.js +42 -0
  29. package/src/context/local.js +13 -2
  30. package/src/declaration.js +7 -55
  31. package/src/frame.js +58 -31
  32. package/src/judgement.js +40 -20
  33. package/src/lemma.js +12 -72
  34. package/src/metaLemma.js +12 -81
  35. package/src/metatheorem.js +10 -78
  36. package/src/mixins/statement/qualified/unify.js +37 -104
  37. package/src/mixins/statement/verify.js +0 -27
  38. package/src/proofStep.js +7 -5
  39. package/src/reference.js +25 -4
  40. package/src/statement.js +8 -8
  41. package/src/term.js +8 -8
  42. package/src/theorem.js +10 -71
  43. package/src/topLevelAssertion.js +86 -4
  44. package/src/utilities/json.js +1 -1
  45. package/src/variable.js +1 -1
package/lib/lemma.js CHANGED
@@ -9,10 +9,8 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _shim = /*#__PURE__*/ _interop_require_default(require("./shim"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("./context/local"));
13
- var _topLevelAssertion = /*#__PURE__*/ _interop_require_wildcard(require("./topLevelAssertion"));
12
+ var _topLevelAssertion = /*#__PURE__*/ _interop_require_default(require("./topLevelAssertion"));
14
13
  var _constants = require("./constants");
15
- var _query = require("./utilities/query");
16
14
  function _assert_this_initialized(self) {
17
15
  if (self === void 0) {
18
16
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -42,6 +40,22 @@ function _create_class(Constructor, protoProps, staticProps) {
42
40
  if (staticProps) _defineProperties(Constructor, staticProps);
43
41
  return Constructor;
44
42
  }
43
+ function _get(target, property, receiver) {
44
+ if (typeof Reflect !== "undefined" && Reflect.get) {
45
+ _get = Reflect.get;
46
+ } else {
47
+ _get = function get(target, property, receiver) {
48
+ var base = _super_prop_base(target, property);
49
+ if (!base) return;
50
+ var desc = Object.getOwnPropertyDescriptor(base, property);
51
+ if (desc.get) {
52
+ return desc.get.call(receiver || target);
53
+ }
54
+ return desc.value;
55
+ };
56
+ }
57
+ return _get(target, property, receiver || target);
58
+ }
45
59
  function _get_prototype_of(o) {
46
60
  _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
47
61
  return o.__proto__ || Object.getPrototypeOf(o);
@@ -66,47 +80,6 @@ function _interop_require_default(obj) {
66
80
  default: obj
67
81
  };
68
82
  }
69
- function _getRequireWildcardCache(nodeInterop) {
70
- if (typeof WeakMap !== "function") return null;
71
- var cacheBabelInterop = new WeakMap();
72
- var cacheNodeInterop = new WeakMap();
73
- return (_getRequireWildcardCache = function(nodeInterop) {
74
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
75
- })(nodeInterop);
76
- }
77
- function _interop_require_wildcard(obj, nodeInterop) {
78
- if (!nodeInterop && obj && obj.__esModule) {
79
- return obj;
80
- }
81
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
82
- return {
83
- default: obj
84
- };
85
- }
86
- var cache = _getRequireWildcardCache(nodeInterop);
87
- if (cache && cache.has(obj)) {
88
- return cache.get(obj);
89
- }
90
- var newObj = {
91
- __proto__: null
92
- };
93
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
94
- for(var key in obj){
95
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
96
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
97
- if (desc && (desc.get || desc.set)) {
98
- Object.defineProperty(newObj, key, desc);
99
- } else {
100
- newObj[key] = obj[key];
101
- }
102
- }
103
- }
104
- newObj.default = obj;
105
- if (cache) {
106
- cache.set(obj, newObj);
107
- }
108
- return newObj;
109
- }
110
83
  function _possible_constructor_return(self, call) {
111
84
  if (call && (_type_of(call) === "object" || typeof call === "function")) {
112
85
  return call;
@@ -120,6 +93,13 @@ function _set_prototype_of(o, p) {
120
93
  };
121
94
  return _set_prototype_of(o, p);
122
95
  }
96
+ function _super_prop_base(object, property) {
97
+ while(!Object.prototype.hasOwnProperty.call(object, property)){
98
+ object = _get_prototype_of(object);
99
+ if (object === null) break;
100
+ }
101
+ return object;
102
+ }
123
103
  function _type_of(obj) {
124
104
  "@swc/helpers - typeof";
125
105
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
@@ -132,7 +112,6 @@ function _is_native_reflect_construct() {
132
112
  return !!result;
133
113
  })();
134
114
  }
135
- var proofNodeQuery = (0, _query.nodeQuery)("/lemma/proof"), labelNodesQuery = (0, _query.nodesQuery)("/lemma/label"), consequentNodeQuery = (0, _query.nodeQuery)("/lemma/consequent"), suppositionNodesQuery = (0, _query.nodesQuery)("/lemma/supposition");
136
115
  var Lemma = /*#__PURE__*/ function(TopLevelAssertion) {
137
116
  _inherits(Lemma, TopLevelAssertion);
138
117
  function Lemma() {
@@ -143,37 +122,14 @@ var Lemma = /*#__PURE__*/ function(TopLevelAssertion) {
143
122
  {
144
123
  key: "verify",
145
124
  value: function verify() {
146
- var _this = this;
147
- var verified = false;
148
- var lemmaString = this.string; ///
149
- lemmaString === _constants.EMPTY_STRING ? this.fileContext.trace("Verifying a lemma...") : this.fileContext.trace("Verifying the '".concat(lemmaString, "' lemma..."));
150
- var labelsVerifiedWhenDeclared = this.labels.every(function(label) {
151
- var labelVVerifiedWhenDeclared = label.verifyWhenDeclared(_this.fileContext);
152
- if (labelVVerifiedWhenDeclared) {
153
- return true;
154
- }
155
- });
156
- if (labelsVerifiedWhenDeclared) {
157
- var localContext = _local.default.fromFileContext(this.fileContext), suppositionsVerified = this.suppositions.every(function(supposition) {
158
- var suppositionVerified = supposition.verify(localContext);
159
- if (suppositionVerified) {
160
- return true;
161
- }
162
- });
163
- if (suppositionsVerified) {
164
- var consequentVerified = this.consequent.verify(localContext);
165
- if (consequentVerified) {
166
- var Substitutions = _shim.default.Substitutions, substitutions = Substitutions.fromNothing(), proofVerified = this.proof.verify(substitutions, this.consequent, localContext);
167
- if (proofVerified) {
168
- var lemma = this; ///
169
- this.fileContext.addLemma(lemma);
170
- verified = true;
171
- }
172
- }
173
- }
174
- }
125
+ var verified;
126
+ var fileContext = this.getFileContext(), lemmaString = this.string; ///
127
+ lemmaString === _constants.EMPTY_STRING ? fileContext.trace("Verifying a lemma...") : fileContext.trace("Verifying the '".concat(lemmaString, "' lemma..."));
128
+ verified = _get(_get_prototype_of(Lemma.prototype), "verify", this).call(this);
175
129
  if (verified) {
176
- lemmaString === _constants.EMPTY_STRING ? this.fileContext.debug("...verified a lemma.") : this.fileContext.debug("...verified the '".concat(lemmaString, "' lemma."));
130
+ var lemma = this; ///
131
+ fileContext.addLemma(lemma);
132
+ lemmaString === _constants.EMPTY_STRING ? fileContext.debug("...verified a lemma.") : fileContext.debug("...verified the '".concat(lemmaString, "' lemma."));
177
133
  }
178
134
  return verified;
179
135
  }
@@ -181,15 +137,8 @@ var Lemma = /*#__PURE__*/ function(TopLevelAssertion) {
181
137
  ], [
182
138
  {
183
139
  key: "fromLemmaNode",
184
- value: function fromLemmaNode(lemmaNode, fileContext) {
185
- var Label = _shim.default.Label, Proof = _shim.default.Proof, Supposition = _shim.default.Supposition, Consequent = _shim.default.Consequent, proofNode = proofNodeQuery(lemmaNode), labelNodes = labelNodesQuery(lemmaNode), consequentNode = consequentNodeQuery(lemmaNode), suppositionNodes = suppositionNodesQuery(lemmaNode), labels = labelNodes.map(function(labelNode) {
186
- var label = Label.fromLabelNode(labelNode, fileContext);
187
- return label;
188
- }), suppositions = suppositionNodes.map(function(suppositionNode) {
189
- var supposition = Supposition.fromSuppositionNode(suppositionNode, fileContext);
190
- return supposition;
191
- }), consequent = Consequent.fromConsequentNode(consequentNode, fileContext), string = (0, _topLevelAssertion.stringFromLabels)(labels), proof = Proof.fromProofNode(proofNode, fileContext), lemma = new Lemma(fileContext, string, labels, suppositions, consequent, proof);
192
- return lemma;
140
+ value: function fromLemmaNode(metaLemmaNode, fileContext) {
141
+ return _topLevelAssertion.default.fromNode(Lemma, metaLemmaNode, fileContext);
193
142
  }
194
143
  }
195
144
  ]);
@@ -200,4 +149,4 @@ Object.assign(_shim.default, {
200
149
  });
201
150
  var _default = Lemma;
202
151
 
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sZW1tYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgVG9wTGV2ZWxBc3NlcnRpb24gZnJvbSBcIi4vdG9wTGV2ZWxBc3NlcnRpb25cIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdGcm9tTGFiZWxzIH0gZnJvbSBcIi4vdG9wTGV2ZWxBc3NlcnRpb25cIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBwcm9vZk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9sZW1tYS9wcm9vZlwiKSxcbiAgICAgIGxhYmVsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvbGVtbWEvbGFiZWxcIiksXG4gICAgICBjb25zZXF1ZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2xlbW1hL2NvbnNlcXVlbnRcIiksXG4gICAgICBzdXBwb3NpdGlvbk5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL2xlbW1hL3N1cHBvc2l0aW9uXCIpO1xuXG5jbGFzcyBMZW1tYSBleHRlbmRzIFRvcExldmVsQXNzZXJ0aW9uIHtcbiAgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgbGVtbWFTdHJpbmcgPSB0aGlzLnN0cmluZzsgIC8vL1xuXG4gICAgKGxlbW1hU3RyaW5nID09PSBFTVBUWV9TVFJJTkcpID9cbiAgICAgIHRoaXMuZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyBhIGxlbW1hLi4uYCkgOlxuICAgICAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xlbW1hU3RyaW5nfScgbGVtbWEuLi5gKTtcblxuICAgIGNvbnN0IGxhYmVsc1ZlcmlmaWVkV2hlbkRlY2xhcmVkID0gdGhpcy5sYWJlbHMuZXZlcnkoKGxhYmVsKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbFZWZXJpZmllZFdoZW5EZWNsYXJlZCA9IGxhYmVsLnZlcmlmeVdoZW5EZWNsYXJlZCh0aGlzLmZpbGVDb250ZXh0KTtcblxuICAgICAgaWYgKGxhYmVsVlZlcmlmaWVkV2hlbkRlY2xhcmVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGxhYmVsc1ZlcmlmaWVkV2hlbkRlY2xhcmVkKSB7XG4gICAgICBjb25zdCBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KHRoaXMuZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgc3VwcG9zaXRpb25zVmVyaWZpZWQgPSB0aGlzLnN1cHBvc2l0aW9ucy5ldmVyeSgoc3VwcG9zaXRpb24pID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc3VwcG9zaXRpb25WZXJpZmllZCA9IHN1cHBvc2l0aW9uLnZlcmlmeShsb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgICAgIGlmIChzdXBwb3NpdGlvblZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgY29uc2VxdWVudFZlcmlmaWVkID0gdGhpcy5jb25zZXF1ZW50LnZlcmlmeShsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChjb25zZXF1ZW50VmVyaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCB7IFN1YnN0aXR1dGlvbnMgfSA9IHNoaW0sXG4gICAgICAgICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICAgICAgICBwcm9vZlZlcmlmaWVkID0gdGhpcy5wcm9vZi52ZXJpZnkoc3Vic3RpdHV0aW9ucywgdGhpcy5jb25zZXF1ZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHByb29mVmVyaWZpZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGxlbW1hID0gdGhpczsgIC8vL1xuXG4gICAgICAgICAgICB0aGlzLmZpbGVDb250ZXh0LmFkZExlbW1hKGxlbW1hKTtcblxuICAgICAgICAgICAgdmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgKGxlbW1hU3RyaW5nID09PSBFTVBUWV9TVFJJTkcpID9cbiAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgYSBsZW1tYS5gKSA6XG4gICAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2xlbW1hU3RyaW5nfScgbGVtbWEuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIGZyb21MZW1tYU5vZGUobGVtbWFOb2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgTGFiZWwsIFByb29mLCBTdXBwb3NpdGlvbiwgQ29uc2VxdWVudCB9ID0gc2hpbSxcbiAgICAgICAgICBwcm9vZk5vZGUgPSBwcm9vZk5vZGVRdWVyeShsZW1tYU5vZGUpLFxuICAgICAgICAgIGxhYmVsTm9kZXMgPSBsYWJlbE5vZGVzUXVlcnkobGVtbWFOb2RlKSxcbiAgICAgICAgICBjb25zZXF1ZW50Tm9kZSA9IGNvbnNlcXVlbnROb2RlUXVlcnkobGVtbWFOb2RlKSxcbiAgICAgICAgICBzdXBwb3NpdGlvbk5vZGVzID0gc3VwcG9zaXRpb25Ob2Rlc1F1ZXJ5KGxlbW1hTm9kZSksXG4gICAgICAgICAgbGFiZWxzID0gbGFiZWxOb2Rlcy5tYXAoKGxhYmVsTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBMYWJlbC5mcm9tTGFiZWxOb2RlKGxhYmVsTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgICAgICAgICByZXR1cm4gbGFiZWw7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25Ob2Rlcy5tYXAoKHN1cHBvc2l0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3VwcG9zaXRpb24gPSBTdXBwb3NpdGlvbi5mcm9tU3VwcG9zaXRpb25Ob2RlKHN1cHBvc2l0aW9uTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgICAgICAgICByZXR1cm4gc3VwcG9zaXRpb247XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY29uc2VxdWVudCA9IENvbnNlcXVlbnQuZnJvbUNvbnNlcXVlbnROb2RlKGNvbnNlcXVlbnROb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbUxhYmVscyhsYWJlbHMpLFxuICAgICAgICAgIHByb29mID0gUHJvb2YuZnJvbVByb29mTm9kZShwcm9vZk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBsZW1tYSA9IG5ldyBMZW1tYShmaWxlQ29udGV4dCwgc3RyaW5nLCBsYWJlbHMsIHN1cHBvc2l0aW9ucywgY29uc2VxdWVudCwgcHJvb2YpO1xuXG4gICAgcmV0dXJuIGxlbW1hO1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICBMZW1tYVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IExlbW1hO1xuIl0sIm5hbWVzIjpbInByb29mTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibGFiZWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsImNvbnNlcXVlbnROb2RlUXVlcnkiLCJzdXBwb3NpdGlvbk5vZGVzUXVlcnkiLCJMZW1tYSIsInZlcmlmeSIsInZlcmlmaWVkIiwibGVtbWFTdHJpbmciLCJzdHJpbmciLCJFTVBUWV9TVFJJTkciLCJmaWxlQ29udGV4dCIsInRyYWNlIiwibGFiZWxzVmVyaWZpZWRXaGVuRGVjbGFyZWQiLCJsYWJlbHMiLCJldmVyeSIsImxhYmVsIiwibGFiZWxWVmVyaWZpZWRXaGVuRGVjbGFyZWQiLCJ2ZXJpZnlXaGVuRGVjbGFyZWQiLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJzdXBwb3NpdGlvbnNWZXJpZmllZCIsInN1cHBvc2l0aW9ucyIsInN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25WZXJpZmllZCIsImNvbnNlcXVlbnRWZXJpZmllZCIsImNvbnNlcXVlbnQiLCJTdWJzdGl0dXRpb25zIiwic2hpbSIsInN1YnN0aXR1dGlvbnMiLCJmcm9tTm90aGluZyIsInByb29mVmVyaWZpZWQiLCJwcm9vZiIsImxlbW1hIiwiYWRkTGVtbWEiLCJkZWJ1ZyIsImZyb21MZW1tYU5vZGUiLCJsZW1tYU5vZGUiLCJMYWJlbCIsIlByb29mIiwiU3VwcG9zaXRpb24iLCJDb25zZXF1ZW50IiwicHJvb2ZOb2RlIiwibGFiZWxOb2RlcyIsImNvbnNlcXVlbnROb2RlIiwic3VwcG9zaXRpb25Ob2RlcyIsIm1hcCIsImxhYmVsTm9kZSIsImZyb21MYWJlbE5vZGUiLCJzdXBwb3NpdGlvbk5vZGUiLCJmcm9tU3VwcG9zaXRpb25Ob2RlIiwiZnJvbUNvbnNlcXVlbnROb2RlIiwic3RyaW5nRnJvbUxhYmVscyIsImZyb21Qcm9vZk5vZGUiLCJUb3BMZXZlbEFzc2VydGlvbiIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBb0dBOzs7ZUFBQTs7OzJEQWxHaUI7NERBQ1E7eUVBQ0s7eUJBRUQ7cUJBRVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV0QyxJQUFNQSxp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
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9sZW1tYS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IFRvcExldmVsQXNzZXJ0aW9uIGZyb20gXCIuL3RvcExldmVsQXNzZXJ0aW9uXCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5jbGFzcyBMZW1tYSBleHRlbmRzIFRvcExldmVsQXNzZXJ0aW9uIHtcbiAgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllZDtcblxuICAgIGNvbnN0IGZpbGVDb250ZXh0ID0gdGhpcy5nZXRGaWxlQ29udGV4dCgpLFxuICAgICAgICAgIGxlbW1hU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIChsZW1tYVN0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSA/XG4gICAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIGEgbGVtbWEuLi5gKSA6XG4gICAgICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2xlbW1hU3RyaW5nfScgbGVtbWEuLi5gKTtcblxuICAgIHZlcmlmaWVkID0gc3VwZXIudmVyaWZ5KCk7XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGxlbW1hID0gdGhpczsgLy8vXG5cbiAgICAgIGZpbGVDb250ZXh0LmFkZExlbW1hKGxlbW1hKTtcblxuICAgICAgKGxlbW1hU3RyaW5nID09PSBFTVBUWV9TVFJJTkcpID9cbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIGEgbGVtbWEuYCkgOlxuICAgICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bGVtbWFTdHJpbmd9JyBsZW1tYS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbUxlbW1hTm9kZShtZXRhTGVtbWFOb2RlLCBmaWxlQ29udGV4dCkgeyByZXR1cm4gVG9wTGV2ZWxBc3NlcnRpb24uZnJvbU5vZGUoTGVtbWEsIG1ldGFMZW1tYU5vZGUsIGZpbGVDb250ZXh0KTsgfVxufVxuXG5PYmplY3QuYXNzaWduKHNoaW0sIHtcbiAgTGVtbWFcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBMZW1tYTtcbiJdLCJuYW1lcyI6WyJMZW1tYSIsInZlcmlmeSIsInZlcmlmaWVkIiwiZmlsZUNvbnRleHQiLCJnZXRGaWxlQ29udGV4dCIsImxlbW1hU3RyaW5nIiwic3RyaW5nIiwiRU1QVFlfU1RSSU5HIiwidHJhY2UiLCJsZW1tYSIsImFkZExlbW1hIiwiZGVidWciLCJmcm9tTGVtbWFOb2RlIiwibWV0YUxlbW1hTm9kZSIsIlRvcExldmVsQXNzZXJ0aW9uIiwiZnJvbU5vZGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzaGltIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF3Q0E7OztlQUFBOzs7MkRBdENpQjt3RUFDYTt5QkFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdCLElBQUEsQUFBTUEsc0JBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO2lDQUFBQTs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUM7Z0JBRUosSUFBTUMsY0FBYyxJQUFJLENBQUNDLGNBQWMsSUFDakNDLGNBQWMsSUFBSSxDQUFDQyxNQUFNLEVBQUcsR0FBRztnQkFFcENELGdCQUFnQkUsdUJBQVksR0FDM0JKLFlBQVlLLEtBQUssQ0FBRSwwQkFDakJMLFlBQVlLLEtBQUssQ0FBQyxBQUFDLGtCQUE2QixPQUFaSCxhQUFZO2dCQUVwREgsV0FBVyx1QkFYVEYsa0JBV2VDLFVBQU4sSUFBSztnQkFFaEIsSUFBSUMsVUFBVTtvQkFDWixJQUFNTyxRQUFRLElBQUksRUFBRSxHQUFHO29CQUV2Qk4sWUFBWU8sUUFBUSxDQUFDRDtvQkFFcEJKLGdCQUFnQkUsdUJBQVksR0FDM0JKLFlBQVlRLEtBQUssQ0FBRSwwQkFDakJSLFlBQVlRLEtBQUssQ0FBQyxBQUFDLG9CQUErQixPQUFaTixhQUFZO2dCQUN4RDtnQkFFQSxPQUFPSDtZQUNUOzs7O1lBRU9VLEtBQUFBO21CQUFQLFNBQU9BLGNBQWNDLGFBQWEsRUFBRVYsV0FBVztnQkFBSSxPQUFPVywwQkFBaUIsQ0FBQ0MsUUFBUSxDQTFCaEZmLE9BMEJ3RmEsZUFBZVY7WUFBYzs7O1dBMUJySEg7RUFBY2MsMEJBQWlCO0FBNkJyQ0UsT0FBT0MsTUFBTSxDQUFDQyxhQUFJLEVBQUU7SUFDbEJsQixPQUFBQTtBQUNGO0lBRUEsV0FBZUEifQ==
package/lib/metaLemma.js CHANGED
@@ -9,10 +9,8 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _shim = /*#__PURE__*/ _interop_require_default(require("./shim"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("./context/local"));
13
- var _topLevelAssertion = /*#__PURE__*/ _interop_require_wildcard(require("./topLevelAssertion"));
12
+ var _topLevelAssertion = /*#__PURE__*/ _interop_require_default(require("./topLevelAssertion"));
14
13
  var _constants = require("./constants");
15
- var _query = require("./utilities/query");
16
14
  function _assert_this_initialized(self) {
17
15
  if (self === void 0) {
18
16
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -42,6 +40,22 @@ function _create_class(Constructor, protoProps, staticProps) {
42
40
  if (staticProps) _defineProperties(Constructor, staticProps);
43
41
  return Constructor;
44
42
  }
43
+ function _get(target, property, receiver) {
44
+ if (typeof Reflect !== "undefined" && Reflect.get) {
45
+ _get = Reflect.get;
46
+ } else {
47
+ _get = function get(target, property, receiver) {
48
+ var base = _super_prop_base(target, property);
49
+ if (!base) return;
50
+ var desc = Object.getOwnPropertyDescriptor(base, property);
51
+ if (desc.get) {
52
+ return desc.get.call(receiver || target);
53
+ }
54
+ return desc.value;
55
+ };
56
+ }
57
+ return _get(target, property, receiver || target);
58
+ }
45
59
  function _get_prototype_of(o) {
46
60
  _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
47
61
  return o.__proto__ || Object.getPrototypeOf(o);
@@ -66,47 +80,6 @@ function _interop_require_default(obj) {
66
80
  default: obj
67
81
  };
68
82
  }
69
- function _getRequireWildcardCache(nodeInterop) {
70
- if (typeof WeakMap !== "function") return null;
71
- var cacheBabelInterop = new WeakMap();
72
- var cacheNodeInterop = new WeakMap();
73
- return (_getRequireWildcardCache = function(nodeInterop) {
74
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
75
- })(nodeInterop);
76
- }
77
- function _interop_require_wildcard(obj, nodeInterop) {
78
- if (!nodeInterop && obj && obj.__esModule) {
79
- return obj;
80
- }
81
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
82
- return {
83
- default: obj
84
- };
85
- }
86
- var cache = _getRequireWildcardCache(nodeInterop);
87
- if (cache && cache.has(obj)) {
88
- return cache.get(obj);
89
- }
90
- var newObj = {
91
- __proto__: null
92
- };
93
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
94
- for(var key in obj){
95
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
96
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
97
- if (desc && (desc.get || desc.set)) {
98
- Object.defineProperty(newObj, key, desc);
99
- } else {
100
- newObj[key] = obj[key];
101
- }
102
- }
103
- }
104
- newObj.default = obj;
105
- if (cache) {
106
- cache.set(obj, newObj);
107
- }
108
- return newObj;
109
- }
110
83
  function _possible_constructor_return(self, call) {
111
84
  if (call && (_type_of(call) === "object" || typeof call === "function")) {
112
85
  return call;
@@ -120,6 +93,13 @@ function _set_prototype_of(o, p) {
120
93
  };
121
94
  return _set_prototype_of(o, p);
122
95
  }
96
+ function _super_prop_base(object, property) {
97
+ while(!Object.prototype.hasOwnProperty.call(object, property)){
98
+ object = _get_prototype_of(object);
99
+ if (object === null) break;
100
+ }
101
+ return object;
102
+ }
123
103
  function _type_of(obj) {
124
104
  "@swc/helpers - typeof";
125
105
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
@@ -132,64 +112,24 @@ function _is_native_reflect_construct() {
132
112
  return !!result;
133
113
  })();
134
114
  }
135
- var proofNodeQuery = (0, _query.nodeQuery)("/metaLemma/proof"), labelNodesQuery = (0, _query.nodesQuery)("/metaLemma/label"), consequentNodeQuery = (0, _query.nodeQuery)("/metaLemma/consequent"), suppositionNodesQuery = (0, _query.nodesQuery)("/metaLemma/supposition");
136
115
  var MetaLemma = /*#__PURE__*/ function(TopLevelAssertion) {
137
116
  _inherits(MetaLemma, TopLevelAssertion);
138
- function MetaLemma(fileContext, string, labels, suppositions, consequent, proof, substitutions) {
117
+ function MetaLemma() {
139
118
  _class_call_check(this, MetaLemma);
140
- var _this;
141
- _this = _call_super(this, MetaLemma, [
142
- fileContext,
143
- string,
144
- labels,
145
- suppositions,
146
- consequent,
147
- proof
148
- ]);
149
- _this.substitutions = substitutions;
150
- return _this;
119
+ return _call_super(this, MetaLemma, arguments);
151
120
  }
152
121
  _create_class(MetaLemma, [
153
- {
154
- key: "getSubstitutions",
155
- value: function getSubstitutions() {
156
- return this.substitutions;
157
- }
158
- },
159
122
  {
160
123
  key: "verify",
161
124
  value: function verify() {
162
- var _this = this;
163
- var verified = false;
164
- var metaLemmaString = this.string; ///
165
- metaLemmaString === _constants.EMPTY_STRING ? this.fileContext.trace("Verifying a meta-lemma...") : this.fileContext.trace("Verifying the '".concat(metaLemmaString, "' meta-lemma..."));
166
- var labelsVerifiedWhenDeclared = this.labels.every(function(label) {
167
- var labelVVerifiedWhenDeclared = label.verifyWhenDeclared(_this.fileContext);
168
- if (labelVVerifiedWhenDeclared) {
169
- return true;
170
- }
171
- });
172
- if (labelsVerifiedWhenDeclared) {
173
- var localContext = _local.default.fromFileContext(this.fileContext), suppositionsVerified = this.suppositions.every(function(supposition) {
174
- var suppositionVerified = supposition.verify(localContext);
175
- if (suppositionVerified) {
176
- return true;
177
- }
178
- });
179
- if (suppositionsVerified) {
180
- var consequentVerified = this.consequent.verify(localContext);
181
- if (consequentVerified) {
182
- var proofVerified = this.proof.verify(this.substitutions, this.consequent, localContext);
183
- if (proofVerified) {
184
- var metaLemma = this; ///
185
- this.fileContext.addMetaLemma(metaLemma);
186
- verified = true;
187
- }
188
- }
189
- }
190
- }
125
+ var verified;
126
+ var fileContext = this.getFileContext(), metaLemmaString = this.string; ///
127
+ metaLemmaString === _constants.EMPTY_STRING ? fileContext.trace("Verifying a meta-lemma...") : fileContext.trace("Verifying the '".concat(metaLemmaString, "' meta-lemma..."));
128
+ verified = _get(_get_prototype_of(MetaLemma.prototype), "verify", this).call(this);
191
129
  if (verified) {
192
- metaLemmaString === _constants.EMPTY_STRING ? this.fileContext.debug("...verified a meta-lemma.") : this.fileContext.debug("...verified the '".concat(metaLemmaString, "' meta-lemma."));
130
+ var metaLemma = this; ///
131
+ fileContext.addMetaLemma(metaLemma);
132
+ metaLemmaString === _constants.EMPTY_STRING ? fileContext.debug("...verified a meta-lemma.") : fileContext.debug("...verified the '".concat(metaLemmaString, "' meta-lemma."));
193
133
  }
194
134
  return verified;
195
135
  }
@@ -198,14 +138,7 @@ var MetaLemma = /*#__PURE__*/ function(TopLevelAssertion) {
198
138
  {
199
139
  key: "fromMetaLemmaNode",
200
140
  value: function fromMetaLemmaNode(metaLemmaNode, fileContext) {
201
- var Label = _shim.default.Label, Proof = _shim.default.Proof, Consequent = _shim.default.Consequent, Supposition = _shim.default.Supposition, Substitutions = _shim.default.Substitutions, proofNode = proofNodeQuery(metaLemmaNode), labelNodes = labelNodesQuery(metaLemmaNode), consequentNode = consequentNodeQuery(metaLemmaNode), suppositionNodes = suppositionNodesQuery(metaLemmaNode), labels = labelNodes.map(function(labelNode) {
202
- var label = Label.fromLabelNode(labelNode, fileContext);
203
- return label;
204
- }), suppositions = suppositionNodes.map(function(suppositionNode) {
205
- var supposition = Supposition.fromSuppositionNode(suppositionNode, fileContext);
206
- return supposition;
207
- }), consequent = Consequent.fromConsequentNode(consequentNode, fileContext), proof = Proof.fromProofNode(proofNode, fileContext), string = (0, _topLevelAssertion.stringFromLabels)(labels), substitutions = Substitutions.fromNothing(), metaLemma = new MetaLemma(fileContext, string, labels, suppositions, consequent, proof, substitutions);
208
- return metaLemma;
141
+ return _topLevelAssertion.default.fromNode(MetaLemma, metaLemmaNode, fileContext);
209
142
  }
210
143
  }
211
144
  ]);
@@ -216,4 +149,4 @@ Object.assign(_shim.default, {
216
149
  });
217
150
  var _default = MetaLemma;
218
151
 
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhTGVtbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuL3NoaW1cIjtcbmltcG9ydCBMb2NhbENvbnRleHQgZnJvbSBcIi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IFRvcExldmVsQXNzZXJ0aW9uIGZyb20gXCIuL3RvcExldmVsQXNzZXJ0aW9uXCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgc3RyaW5nRnJvbUxhYmVscyB9IGZyb20gXCIuL3RvcExldmVsQXNzZXJ0aW9uXCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgcHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YUxlbW1hL3Byb29mXCIpLFxuICAgICAgbGFiZWxOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhTGVtbWEvbGFiZWxcIiksXG4gICAgICBjb25zZXF1ZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFMZW1tYS9jb25zZXF1ZW50XCIpLFxuICAgICAgc3VwcG9zaXRpb25Ob2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhTGVtbWEvc3VwcG9zaXRpb25cIik7XG5cbmNsYXNzIE1ldGFMZW1tYSBleHRlbmRzIFRvcExldmVsQXNzZXJ0aW9uIHtcbiAgY29uc3RydWN0b3IoZmlsZUNvbnRleHQsIHN0cmluZywgbGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbnQsIHByb29mLCBzdWJzdGl0dXRpb25zKSB7XG4gICAgc3VwZXIoZmlsZUNvbnRleHQsIHN0cmluZywgbGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbnQsIHByb29mKTtcblxuICAgIHRoaXMuc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBnZXRTdWJzdGl0dXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBtZXRhTGVtbWFTdHJpbmcgPSB0aGlzLnN0cmluZzsgIC8vL1xuXG4gICAgKG1ldGFMZW1tYVN0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSA/XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgYSBtZXRhLWxlbW1hLi4uYCkgOlxuICAgICAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGFMZW1tYVN0cmluZ30nIG1ldGEtbGVtbWEuLi5gKTtcblxuICAgIGNvbnN0IGxhYmVsc1ZlcmlmaWVkV2hlbkRlY2xhcmVkID0gdGhpcy5sYWJlbHMuZXZlcnkoKGxhYmVsKSA9PiB7XG4gICAgICBjb25zdCBsYWJlbFZWZXJpZmllZFdoZW5EZWNsYXJlZCA9IGxhYmVsLnZlcmlmeVdoZW5EZWNsYXJlZCh0aGlzLmZpbGVDb250ZXh0KTtcblxuICAgICAgaWYgKGxhYmVsVlZlcmlmaWVkV2hlbkRlY2xhcmVkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGxhYmVsc1ZlcmlmaWVkV2hlbkRlY2xhcmVkKSB7XG4gICAgICBjb25zdCBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KHRoaXMuZmlsZUNvbnRleHQpLFxuICAgICAgICAgICAgc3VwcG9zaXRpb25zVmVyaWZpZWQgPSB0aGlzLnN1cHBvc2l0aW9ucy5ldmVyeSgoc3VwcG9zaXRpb24pID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc3VwcG9zaXRpb25WZXJpZmllZCA9IHN1cHBvc2l0aW9uLnZlcmlmeShsb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgICAgIGlmIChzdXBwb3NpdGlvblZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICBpZiAoc3VwcG9zaXRpb25zVmVyaWZpZWQpIHtcbiAgICAgICAgY29uc3QgY29uc2VxdWVudFZlcmlmaWVkID0gdGhpcy5jb25zZXF1ZW50LnZlcmlmeShsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChjb25zZXF1ZW50VmVyaWZpZWQpIHtcbiAgICAgICAgICBjb25zdCBwcm9vZlZlcmlmaWVkID0gdGhpcy5wcm9vZi52ZXJpZnkodGhpcy5zdWJzdGl0dXRpb25zLCB0aGlzLmNvbnNlcXVlbnQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgICBpZiAocHJvb2ZWZXJpZmllZCkge1xuICAgICAgICAgICAgY29uc3QgbWV0YUxlbW1hID0gdGhpczsgIC8vL1xuXG4gICAgICAgICAgICB0aGlzLmZpbGVDb250ZXh0LmFkZE1ldGFMZW1tYShtZXRhTGVtbWEpO1xuXG4gICAgICAgICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICAobWV0YUxlbW1hU3RyaW5nID09PSBFTVBUWV9TVFJJTkcpID9cbiAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgYSBtZXRhLWxlbW1hLmApIDpcbiAgICAgICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YUxlbW1hU3RyaW5nfScgbWV0YS1sZW1tYS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGFMZW1tYU5vZGUobWV0YUxlbW1hTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IExhYmVsLCBQcm9vZiwgQ29uc2VxdWVudCwgU3VwcG9zaXRpb24sIFN1YnN0aXR1dGlvbnMgfSA9IHNoaW0sXG4gICAgICAgICAgcHJvb2ZOb2RlID0gcHJvb2ZOb2RlUXVlcnkobWV0YUxlbW1hTm9kZSksXG4gICAgICAgICAgbGFiZWxOb2RlcyA9IGxhYmVsTm9kZXNRdWVyeShtZXRhTGVtbWFOb2RlKSxcbiAgICAgICAgICBjb25zZXF1ZW50Tm9kZSA9IGNvbnNlcXVlbnROb2RlUXVlcnkobWV0YUxlbW1hTm9kZSksXG4gICAgICAgICAgc3VwcG9zaXRpb25Ob2RlcyA9IHN1cHBvc2l0aW9uTm9kZXNRdWVyeShtZXRhTGVtbWFOb2RlKSxcbiAgICAgICAgICBsYWJlbHMgPSBsYWJlbE5vZGVzLm1hcCgobGFiZWxOb2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbCA9IExhYmVsLmZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgICAgIHJldHVybiBsYWJlbDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbk5vZGVzLm1hcCgoc3VwcG9zaXRpb25Ob2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdXBwb3NpdGlvbiA9IFN1cHBvc2l0aW9uLmZyb21TdXBwb3NpdGlvbk5vZGUoc3VwcG9zaXRpb25Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgICAgIHJldHVybiBzdXBwb3NpdGlvbjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjb25zZXF1ZW50ID0gQ29uc2VxdWVudC5mcm9tQ29uc2VxdWVudE5vZGUoY29uc2VxdWVudE5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBwcm9vZiA9IFByb29mLmZyb21Qcm9vZk5vZGUocHJvb2ZOb2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbUxhYmVscyhsYWJlbHMpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBTdWJzdGl0dXRpb25zLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgbWV0YUxlbW1hID0gbmV3IE1ldGFMZW1tYShmaWxlQ29udGV4dCwgc3RyaW5nLCBsYWJlbHMsIHN1cHBvc2l0aW9ucywgY29uc2VxdWVudCwgcHJvb2YsIHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgcmV0dXJuIG1ldGFMZW1tYTtcbiAgfVxufVxuXG5PYmplY3QuYXNzaWduKHNoaW0sIHtcbiAgTWV0YUxlbW1hXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgTWV0YUxlbW1hOyJdLCJuYW1lcyI6WyJwcm9vZk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImxhYmVsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJjb25zZXF1ZW50Tm9kZVF1ZXJ5Iiwic3VwcG9zaXRpb25Ob2Rlc1F1ZXJ5IiwiTWV0YUxlbW1hIiwiZmlsZUNvbnRleHQiLCJzdHJpbmciLCJsYWJlbHMiLCJzdXBwb3NpdGlvbnMiLCJjb25zZXF1ZW50IiwicHJvb2YiLCJzdWJzdGl0dXRpb25zIiwiZ2V0U3Vic3RpdHV0aW9ucyIsInZlcmlmeSIsInZlcmlmaWVkIiwibWV0YUxlbW1hU3RyaW5nIiwiRU1QVFlfU1RSSU5HIiwidHJhY2UiLCJsYWJlbHNWZXJpZmllZFdoZW5EZWNsYXJlZCIsImV2ZXJ5IiwibGFiZWwiLCJsYWJlbFZWZXJpZmllZFdoZW5EZWNsYXJlZCIsInZlcmlmeVdoZW5EZWNsYXJlZCIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInN1cHBvc2l0aW9uc1ZlcmlmaWVkIiwic3VwcG9zaXRpb24iLCJzdXBwb3NpdGlvblZlcmlmaWVkIiwiY29uc2VxdWVudFZlcmlmaWVkIiwicHJvb2ZWZXJpZmllZCIsIm1ldGFMZW1tYSIsImFkZE1ldGFMZW1tYSIsImRlYnVnIiwiZnJvbU1ldGFMZW1tYU5vZGUiLCJtZXRhTGVtbWFOb2RlIiwiTGFiZWwiLCJzaGltIiwiUHJvb2YiLCJDb25zZXF1ZW50IiwiU3VwcG9zaXRpb24iLCJTdWJzdGl0dXRpb25zIiwicHJvb2ZOb2RlIiwibGFiZWxOb2RlcyIsImNvbnNlcXVlbnROb2RlIiwic3VwcG9zaXRpb25Ob2RlcyIsIm1hcCIsImxhYmVsTm9kZSIsImZyb21MYWJlbE5vZGUiLCJzdXBwb3NpdGlvbk5vZGUiLCJmcm9tU3VwcG9zaXRpb25Ob2RlIiwiZnJvbUNvbnNlcXVlbnROb2RlIiwiZnJvbVByb29mTm9kZSIsInN0cmluZ0Zyb21MYWJlbHMiLCJmcm9tTm90aGluZyIsIlRvcExldmVsQXNzZXJ0aW9uIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE2R0E7OztlQUFBOzs7MkRBM0dpQjs0REFDUTt5RUFDSzt5QkFFRDtxQkFFUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRDLElBQU1BLGlCQUFpQkMsSUFBQUEsZ0JBQVMsRUFBQyxxQkFDM0JDLGtCQUFrQkMsSUFBQUEsaUJBQVUsRUFBQyxxQkFDN0JDLHNCQUFzQkgsSUFBQUEsZ0JBQVMsRUFBQywwQkFDaENJLHdCQUF3QkYsSUFBQUEsaUJBQVUsRUFBQztBQUV6QyxJQUFBLEFBQU1HLDBCQUFOO2NBQU1BO2FBQUFBLFVBQ1FDLFdBQVcsRUFBRUMsTUFBTSxFQUFFQyxNQUFNLEVBQUVDLFlBQVksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLEVBQUVDLGFBQWE7Z0NBRG5GUDs7Z0JBRUYsa0JBRkVBO1lBRUlDO1lBQWFDO1lBQVFDO1lBQVFDO1lBQWNDO1lBQVlDOztRQUU3RCxNQUFLQyxhQUFhLEdBQUdBOzs7a0JBSm5CUDs7WUFPSlEsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxhQUFhO1lBQzNCOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBOztnQkFDRSxJQUFJQyxXQUFXO2dCQUVmLElBQU1DLGtCQUFrQixJQUFJLENBQUNULE1BQU0sRUFBRyxH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
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhTGVtbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBzaGltIGZyb20gXCIuL3NoaW1cIjtcbmltcG9ydCBUb3BMZXZlbEFzc2VydGlvbiBmcm9tIFwiLi90b3BMZXZlbEFzc2VydGlvblwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuY2xhc3MgTWV0YUxlbW1hIGV4dGVuZHMgVG9wTGV2ZWxBc3NlcnRpb24ge1xuICB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVkO1xuXG4gICAgY29uc3QgZmlsZUNvbnRleHQgPSB0aGlzLmdldEZpbGVDb250ZXh0KCksXG4gICAgICAgICAgbWV0YUxlbW1hU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIChtZXRhTGVtbWFTdHJpbmcgPT09IEVNUFRZX1NUUklORykgP1xuICAgICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyBhIG1ldGEtbGVtbWEuLi5gKSA6XG4gICAgICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGFMZW1tYVN0cmluZ30nIG1ldGEtbGVtbWEuLi5gKTtcblxuICAgIHZlcmlmaWVkID0gc3VwZXIudmVyaWZ5KCk7XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IG1ldGFMZW1tYSA9IHRoaXM7IC8vL1xuXG4gICAgICBmaWxlQ29udGV4dC5hZGRNZXRhTGVtbWEobWV0YUxlbW1hKTtcblxuICAgICAgKG1ldGFMZW1tYVN0cmluZyA9PT0gRU1QVFlfU1RSSU5HKSA/XG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCBhIG1ldGEtbGVtbWEuYCkgOlxuICAgICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7bWV0YUxlbW1hU3RyaW5nfScgbWV0YS1sZW1tYS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGFMZW1tYU5vZGUobWV0YUxlbW1hTm9kZSwgZmlsZUNvbnRleHQpIHsgcmV0dXJuIFRvcExldmVsQXNzZXJ0aW9uLmZyb21Ob2RlKE1ldGFMZW1tYSwgbWV0YUxlbW1hTm9kZSwgZmlsZUNvbnRleHQpOyB9XG59XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICBNZXRhTGVtbWFcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBNZXRhTGVtbWE7Il0sIm5hbWVzIjpbIk1ldGFMZW1tYSIsInZlcmlmeSIsInZlcmlmaWVkIiwiZmlsZUNvbnRleHQiLCJnZXRGaWxlQ29udGV4dCIsIm1ldGFMZW1tYVN0cmluZyIsInN0cmluZyIsIkVNUFRZX1NUUklORyIsInRyYWNlIiwibWV0YUxlbW1hIiwiYWRkTWV0YUxlbW1hIiwiZGVidWciLCJmcm9tTWV0YUxlbW1hTm9kZSIsIm1ldGFMZW1tYU5vZGUiLCJUb3BMZXZlbEFzc2VydGlvbiIsImZyb21Ob2RlIiwiT2JqZWN0IiwiYXNzaWduIiwic2hpbSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBd0NBOzs7ZUFBQTs7OzJEQXRDaUI7d0VBQ2E7eUJBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU3QixJQUFBLEFBQU1BLDBCQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtpQ0FBQUE7O2tCQUFBQTs7WUFDSkMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDO2dCQUVKLElBQU1DLGNBQWMsSUFBSSxDQUFDQyxjQUFjLElBQ2pDQyxrQkFBa0IsSUFBSSxDQUFDQyxNQUFNLEVBQUcsR0FBRztnQkFFeENELG9CQUFvQkUsdUJBQVksR0FDL0JKLFlBQVlLLEtBQUssQ0FBRSwrQkFDakJMLFlBQVlLLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkgsaUJBQWdCO2dCQUV4REgsV0FBVyx1QkFYVEYsc0JBV2VDLFVBQU4sSUFBSztnQkFFaEIsSUFBSUMsVUFBVTtvQkFDWixJQUFNTyxZQUFZLElBQUksRUFBRSxHQUFHO29CQUUzQk4sWUFBWU8sWUFBWSxDQUFDRDtvQkFFeEJKLG9CQUFvQkUsdUJBQVksR0FDL0JKLFlBQVlRLEtBQUssQ0FBRSwrQkFDakJSLFlBQVlRLEtBQUssQ0FBQyxBQUFDLG9CQUFtQyxPQUFoQk4saUJBQWdCO2dCQUM1RDtnQkFFQSxPQUFPSDtZQUNUOzs7O1lBRU9VLEtBQUFBO21CQUFQLFNBQU9BLGtCQUFrQkMsYUFBYSxFQUFFVixXQUFXO2dCQUFJLE9BQU9XLDBCQUFpQixDQUFDQyxRQUFRLENBMUJwRmYsV0EwQmdHYSxlQUFlVjtZQUFjOzs7V0ExQjdISDtFQUFrQmMsMEJBQWlCO0FBNkJ6Q0UsT0FBT0MsTUFBTSxDQUFDQyxhQUFJLEVBQUU7SUFDbEJsQixXQUFBQTtBQUNGO0lBRUEsV0FBZUEifQ==
@@ -9,9 +9,7 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _shim = /*#__PURE__*/ _interop_require_default(require("./shim"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("./context/local"));
13
12
  var _topLevelAssertion = /*#__PURE__*/ _interop_require_wildcard(require("./topLevelAssertion"));
14
- var _query = require("./utilities/query");
15
13
  var _json = require("./utilities/json");
16
14
  function _assert_this_initialized(self) {
17
15
  if (self === void 0) {
@@ -42,6 +40,22 @@ function _create_class(Constructor, protoProps, staticProps) {
42
40
  if (staticProps) _defineProperties(Constructor, staticProps);
43
41
  return Constructor;
44
42
  }
43
+ function _get(target, property, receiver) {
44
+ if (typeof Reflect !== "undefined" && Reflect.get) {
45
+ _get = Reflect.get;
46
+ } else {
47
+ _get = function get(target, property, receiver) {
48
+ var base = _super_prop_base(target, property);
49
+ if (!base) return;
50
+ var desc = Object.getOwnPropertyDescriptor(base, property);
51
+ if (desc.get) {
52
+ return desc.get.call(receiver || target);
53
+ }
54
+ return desc.value;
55
+ };
56
+ }
57
+ return _get(target, property, receiver || target);
58
+ }
45
59
  function _get_prototype_of(o) {
46
60
  _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
47
61
  return o.__proto__ || Object.getPrototypeOf(o);
@@ -120,6 +134,13 @@ function _set_prototype_of(o, p) {
120
134
  };
121
135
  return _set_prototype_of(o, p);
122
136
  }
137
+ function _super_prop_base(object, property) {
138
+ while(!Object.prototype.hasOwnProperty.call(object, property)){
139
+ object = _get_prototype_of(object);
140
+ if (object === null) break;
141
+ }
142
+ return object;
143
+ }
123
144
  function _type_of(obj) {
124
145
  "@swc/helpers - typeof";
125
146
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
@@ -132,64 +153,24 @@ function _is_native_reflect_construct() {
132
153
  return !!result;
133
154
  })();
134
155
  }
135
- var proofNodeQuery = (0, _query.nodeQuery)("/metatheorem/proof"), labelNodesQuery = (0, _query.nodesQuery)("/metatheorem/label"), consequentNodeQuery = (0, _query.nodeQuery)("/metatheorem/consequent"), suppositionNodesQuery = (0, _query.nodesQuery)("/metatheorem/supposition");
136
156
  var Metatheorem = /*#__PURE__*/ function(TopLevelAssertion) {
137
157
  _inherits(Metatheorem, TopLevelAssertion);
138
- function Metatheorem(fileContext, string, labels, suppositions, consequent, proof, substitutions) {
158
+ function Metatheorem() {
139
159
  _class_call_check(this, Metatheorem);
140
- var _this;
141
- _this = _call_super(this, Metatheorem, [
142
- fileContext,
143
- string,
144
- labels,
145
- suppositions,
146
- consequent,
147
- proof
148
- ]);
149
- _this.substitutions = substitutions;
150
- return _this;
160
+ return _call_super(this, Metatheorem, arguments);
151
161
  }
152
162
  _create_class(Metatheorem, [
153
- {
154
- key: "getSubstitutions",
155
- value: function getSubstitutions() {
156
- return this.substitutions;
157
- }
158
- },
159
163
  {
160
164
  key: "verify",
161
165
  value: function verify() {
162
- var _this = this;
163
- var verified = false;
164
- var metatheoremString = this.string; ///
165
- this.fileContext.trace("Verifying the '".concat(metatheoremString, "' metatheorem..."));
166
- var labelsVerifiedWhenDeclared = this.labels.every(function(label) {
167
- var labelVVerifiedWhenDeclared = label.verifyWhenDeclared(_this.fileContext);
168
- if (labelVVerifiedWhenDeclared) {
169
- return true;
170
- }
171
- });
172
- if (labelsVerifiedWhenDeclared) {
173
- var localContext = _local.default.fromFileContext(this.fileContext), suppositionsVerified = this.suppositions.every(function(supposition) {
174
- var suppositionVerified = supposition.verify(localContext);
175
- if (suppositionVerified) {
176
- return true;
177
- }
178
- });
179
- if (suppositionsVerified) {
180
- var consequentVerified = this.consequent.verify(localContext);
181
- if (consequentVerified) {
182
- var proofVerified = this.proof.verify(this.substitutions, this.consequent, localContext);
183
- if (proofVerified) {
184
- var metatheorem = this; ///
185
- this.fileContext.addMetatheorem(metatheorem);
186
- verified = true;
187
- }
188
- }
189
- }
190
- }
166
+ var verified;
167
+ var fileContext = this.getFileContext(), metatheoremString = this.string; ///
168
+ fileContext.trace("Verifying the '".concat(metatheoremString, "' metatheorem..."));
169
+ verified = _get(_get_prototype_of(Metatheorem.prototype), "verify", this).call(this);
191
170
  if (verified) {
192
- this.fileContext.debug("...verified the '".concat(metatheoremString, "' metatheorem."));
171
+ var metaTheorem = this; ///
172
+ fileContext.addMetatheorem(metaTheorem);
173
+ fileContext.debug("...verified the '".concat(metatheoremString, "' metatheorem."));
193
174
  }
194
175
  return verified;
195
176
  }
@@ -217,14 +198,7 @@ var Metatheorem = /*#__PURE__*/ function(TopLevelAssertion) {
217
198
  {
218
199
  key: "fromMetatheoremNode",
219
200
  value: function fromMetatheoremNode(metatheoremNode, fileContext) {
220
- var Label = _shim.default.Label, Proof = _shim.default.Proof, Consequent = _shim.default.Consequent, Supposition = _shim.default.Supposition, Substitutions = _shim.default.Substitutions, proofNode = proofNodeQuery(metatheoremNode), labelNodes = labelNodesQuery(metatheoremNode), consequentNode = consequentNodeQuery(metatheoremNode), suppositionNodes = suppositionNodesQuery(metatheoremNode), labels = labelNodes.map(function(labelNode) {
221
- var label = Label.fromLabelNode(labelNode, fileContext);
222
- return label;
223
- }), suppositions = suppositionNodes.map(function(suppositionNode) {
224
- var supposition = Supposition.fromSuppositionNode(suppositionNode, fileContext);
225
- return supposition;
226
- }), consequent = Consequent.fromConsequentNode(consequentNode, fileContext), proof = Proof.fromProofNode(proofNode, fileContext), string = (0, _topLevelAssertion.stringFromLabels)(labels), substitutions = Substitutions.fromNothing(), metatheorem = new Metatheorem(fileContext, string, labels, suppositions, consequent, proof, substitutions);
227
- return metatheorem;
201
+ return _topLevelAssertion.default.fromNode(Metatheorem, metatheoremNode, fileContext);
228
202
  }
229
203
  }
230
204
  ]);
@@ -235,4 +209,4 @@ Object.assign(_shim.default, {
235
209
  });
236
210
  var _default = Metatheorem;
237
211
 
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi9jb250ZXh0L2xvY2FsXCI7XG5pbXBvcnQgVG9wTGV2ZWxBc3NlcnRpb24gZnJvbSBcIi4vdG9wTGV2ZWxBc3NlcnRpb25cIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBzdHJpbmdGcm9tTGFiZWxzIH0gZnJvbSBcIi4vdG9wTGV2ZWxBc3NlcnRpb25cIjtcbmltcG9ydCB7IGxhYmVsc0Zyb21KU09OLFxuICAgICAgICAgbGFiZWxzVG9MYWJlbHNKU09OLFxuICAgICAgICAgY29uc2VxdWVudEZyb21KU09OLFxuICAgICAgICAgc3VwcG9zaXRpb25zRnJvbUpTT04sXG4gICAgICAgICBzdWJzdGl0dXRpb25zRnJvbUpTT04sXG4gICAgICAgICBjb25zZXF1ZW50VG9Db25zZXF1ZW50SlNPTixcbiAgICAgICAgIHN1cHBvc2l0aW9uc1RvU3VwcG9zaXRpb25zSlNPTixcbiAgICAgICAgIHN1YnN0aXR1dGlvbnNUb1N1YnN0aXR1dGlvbnNKU09OIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgcHJvb2ZOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXRoZW9yZW0vcHJvb2ZcIiksXG4gICAgICBsYWJlbE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL21ldGF0aGVvcmVtL2xhYmVsXCIpLFxuICAgICAgY29uc2VxdWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdGhlb3JlbS9jb25zZXF1ZW50XCIpLFxuICAgICAgc3VwcG9zaXRpb25Ob2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhdGhlb3JlbS9zdXBwb3NpdGlvblwiKTtcblxuY2xhc3MgTWV0YXRoZW9yZW0gZXh0ZW5kcyBUb3BMZXZlbEFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKGZpbGVDb250ZXh0LCBzdHJpbmcsIGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBwcm9vZiwgc3Vic3RpdHV0aW9ucykge1xuICAgIHN1cGVyKGZpbGVDb250ZXh0LCBzdHJpbmcsIGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBwcm9vZik7XG5cbiAgICB0aGlzLnN1YnN0aXR1dGlvbnMgPSBzdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZ2V0U3Vic3RpdHV0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgbWV0YXRoZW9yZW1TdHJpbmcgPSB0aGlzLnN0cmluZzsgIC8vL1xuXG4gICAgdGhpcy5maWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhdGhlb3JlbVN0cmluZ30nIG1ldGF0aGVvcmVtLi4uYCk7XG5cbiAgICBjb25zdCBsYWJlbHNWZXJpZmllZFdoZW5EZWNsYXJlZCA9IHRoaXMubGFiZWxzLmV2ZXJ5KChsYWJlbCkgPT4ge1xuICAgICAgY29uc3QgbGFiZWxWVmVyaWZpZWRXaGVuRGVjbGFyZWQgPSBsYWJlbC52ZXJpZnlXaGVuRGVjbGFyZWQodGhpcy5maWxlQ29udGV4dCk7XG5cbiAgICAgIGlmIChsYWJlbFZWZXJpZmllZFdoZW5EZWNsYXJlZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChsYWJlbHNWZXJpZmllZFdoZW5EZWNsYXJlZCkge1xuICAgICAgY29uc3QgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dCh0aGlzLmZpbGVDb250ZXh0KSxcbiAgICAgICAgICAgIHN1cHBvc2l0aW9uc1ZlcmlmaWVkID0gdGhpcy5zdXBwb3NpdGlvbnMuZXZlcnkoKHN1cHBvc2l0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHN1cHBvc2l0aW9uVmVyaWZpZWQgPSBzdXBwb3NpdGlvbi52ZXJpZnkobG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgICAgICBpZiAoc3VwcG9zaXRpb25WZXJpZmllZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgaWYgKHN1cHBvc2l0aW9uc1ZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IGNvbnNlcXVlbnRWZXJpZmllZCA9IHRoaXMuY29uc2VxdWVudC52ZXJpZnkobG9jYWxDb250ZXh0KTtcblxuICAgICAgICBpZiAoY29uc2VxdWVudFZlcmlmaWVkKSB7XG4gICAgICAgICAgY29uc3QgcHJvb2ZWZXJpZmllZCA9IHRoaXMucHJvb2YudmVyaWZ5KHRoaXMuc3Vic3RpdHV0aW9ucywgdGhpcy5jb25zZXF1ZW50LCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKHByb29mVmVyaWZpZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IG1ldGF0aGVvcmVtID0gdGhpczsgIC8vL1xuXG4gICAgICAgICAgICB0aGlzLmZpbGVDb250ZXh0LmFkZE1ldGF0aGVvcmVtKG1ldGF0aGVvcmVtKTtcblxuICAgICAgICAgICAgdmVyaWZpZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF0aGVvcmVtU3RyaW5nfScgbWV0YXRoZW9yZW0uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGxhYmVsc0pTT04gPSBsYWJlbHNUb0xhYmVsc0pTT04odGhpcy5sYWJlbHMpLFxuICAgICAgICAgIGNvbnNlcXVlbnRKU09OID0gY29uc2VxdWVudFRvQ29uc2VxdWVudEpTT04odGhpcy5jb25zZXF1ZW50KSxcbiAgICAgICAgICBzdXBwb3NpdGlvbnNKU09OID0gc3VwcG9zaXRpb25zVG9TdXBwb3NpdGlvbnNKU09OKHRoaXMuc3VwcG9zaXRpb25zKSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25zSlNPTiA9IHN1YnN0aXR1dGlvbnNUb1N1YnN0aXR1dGlvbnNKU09OKHRoaXMuc3Vic3RpdHV0aW9ucyksXG4gICAgICAgICAgbGFiZWxzID0gbGFiZWxzSlNPTiwgIC8vL1xuICAgICAgICAgIGNvbnNlcXVlbnQgPSBjb25zZXF1ZW50SlNPTiwgIC8vL1xuICAgICAgICAgIHN1cHBvc2l0aW9ucyA9IHN1cHBvc2l0aW9uc0pTT04sICAvLy9cbiAgICAgICAgICBzdWJzdGl0dXRpb25zID0gc3Vic3RpdHV0aW9uc0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgICAgY29uc2VxdWVudCxcbiAgICAgICAgICAgIHN1cHBvc2l0aW9ucyxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbnNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBsYWJlbHMgPSBsYWJlbHNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgY29uc2VxdWVudCA9IGNvbnNlcXVlbnRGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25zRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbnMgPSBzdWJzdGl0dXRpb25zRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21MYWJlbHMobGFiZWxzKSxcbiAgICAgICAgICBwcm9vZiA9IG51bGwsXG4gICAgICAgICAgdG9wTGV2ZWxBc3NlcnRpb24gPSBuZXcgTWV0YXRoZW9yZW0oZmlsZUNvbnRleHQsIHN0cmluZywgbGFiZWxzLCBzdXBwb3NpdGlvbnMsIGNvbnNlcXVlbnQsIHByb29mLCBzdWJzdGl0dXRpb25zKTtcblxuICAgIHJldHVybiB0b3BMZXZlbEFzc2VydGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXRoZW9yZW1Ob2RlKG1ldGF0aGVvcmVtTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IExhYmVsLCBQcm9vZiwgQ29uc2VxdWVudCwgU3VwcG9zaXRpb24sIFN1YnN0aXR1dGlvbnMgfSA9IHNoaW0sXG4gICAgICAgICAgcHJvb2ZOb2RlID0gcHJvb2ZOb2RlUXVlcnkobWV0YXRoZW9yZW1Ob2RlKSxcbiAgICAgICAgICBsYWJlbE5vZGVzID0gbGFiZWxOb2Rlc1F1ZXJ5KG1ldGF0aGVvcmVtTm9kZSksXG4gICAgICAgICAgY29uc2VxdWVudE5vZGUgPSBjb25zZXF1ZW50Tm9kZVF1ZXJ5KG1ldGF0aGVvcmVtTm9kZSksXG4gICAgICAgICAgc3VwcG9zaXRpb25Ob2RlcyA9IHN1cHBvc2l0aW9uTm9kZXNRdWVyeShtZXRhdGhlb3JlbU5vZGUpLFxuICAgICAgICAgIGxhYmVscyA9IGxhYmVsTm9kZXMubWFwKChsYWJlbE5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gTGFiZWwuZnJvbUxhYmVsTm9kZShsYWJlbE5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN1cHBvc2l0aW9ucyA9IHN1cHBvc2l0aW9uTm9kZXMubWFwKChzdXBwb3NpdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1cHBvc2l0aW9uID0gU3VwcG9zaXRpb24uZnJvbVN1cHBvc2l0aW9uTm9kZShzdXBwb3NpdGlvbk5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgICAgICAgICAgcmV0dXJuIHN1cHBvc2l0aW9uO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNvbnNlcXVlbnQgPSBDb25zZXF1ZW50LmZyb21Db25zZXF1ZW50Tm9kZShjb25zZXF1ZW50Tm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHByb29mID0gUHJvb2YuZnJvbVByb29mTm9kZShwcm9vZk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTGFiZWxzKGxhYmVscyksXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IFN1YnN0aXR1dGlvbnMuZnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBtZXRhdGhlb3JlbSA9IG5ldyBNZXRhdGhlb3JlbShmaWxlQ29udGV4dCwgc3RyaW5nLCBsYWJlbHMsIHN1cHBvc2l0aW9ucywgY29uc2VxdWVudCwgcHJvb2YsIHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgcmV0dXJuIG1ldGF0aGVvcmVtO1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oc2hpbSwge1xuICBNZXRhdGhlb3JlbVxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IE1ldGF0aGVvcmVtO1xuIl0sIm5hbWVzIjpbInByb29mTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibGFiZWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsImNvbnNlcXVlbnROb2RlUXVlcnkiLCJzdXBwb3NpdGlvbk5vZGVzUXVlcnkiLCJNZXRhdGhlb3JlbSIsImZpbGVDb250ZXh0Iiwic3RyaW5nIiwibGFiZWxzIiwic3VwcG9zaXRpb25zIiwiY29uc2VxdWVudCIsInByb29mIiwic3Vic3RpdHV0aW9ucyIsImdldFN1YnN0aXR1dGlvbnMiLCJ2ZXJpZnkiLCJ2ZXJpZmllZCIsIm1ldGF0aGVvcmVtU3RyaW5nIiwidHJhY2UiLCJsYWJlbHNWZXJpZmllZFdoZW5EZWNsYXJlZCIsImV2ZXJ5IiwibGFiZWwiLCJsYWJlbFZWZXJpZmllZFdoZW5EZWNsYXJlZCIsInZlcmlmeVdoZW5EZWNsYXJlZCIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInN1cHBvc2l0aW9uc1ZlcmlmaWVkIiwic3VwcG9zaXRpb24iLCJzdXBwb3NpdGlvblZlcmlmaWVkIiwiY29uc2VxdWVudFZlcmlmaWVkIiwicHJvb2ZWZXJpZmllZCIsIm1ldGF0aGVvcmVtIiwiYWRkTWV0YXRoZW9yZW0iLCJkZWJ1ZyIsInRvSlNPTiIsImxhYmVsc0pTT04iLCJsYWJlbHNUb0xhYmVsc0pTT04iLCJjb25zZXF1ZW50SlNPTiIsImNvbnNlcXVlbnRUb0NvbnNlcXVlbnRKU09OIiwic3VwcG9zaXRpb25zSlNPTiIsInN1cHBvc2l0aW9uc1RvU3VwcG9zaXRpb25zSlNPTiIsInN1YnN0aXR1dGlvbnNKU09OIiwic3Vic3RpdHV0aW9uc1RvU3Vic3RpdHV0aW9uc0pTT04iLCJqc29uIiwiZnJvbUpTT04iLCJsYWJlbHNGcm9tSlNPTiIsImNvbnNlcXVlbnRGcm9tSlNPTiIsInN1cHBvc2l0aW9uc0Zyb21KU09OIiwic3Vic3RpdHV0aW9uc0Zyb21KU09OIiwic3RyaW5nRnJvbUxhYmVscyIsInRvcExldmVsQXNzZXJ0aW9uIiwiZnJvbU1ldGF0aGVvcmVtTm9kZSIsIm1ldGF0aGVvcmVtTm9kZSIsIkxhYmVsIiwic2hpbSIsIlByb29mIiwiQ29uc2VxdWVudCIsIlN1cHBvc2l0aW9uIiwiU3Vic3RpdHV0aW9ucyIsInByb29mTm9kZSIsImxhYmVsTm9kZXMiLCJjb25zZXF1ZW50Tm9kZSIsInN1cHBvc2l0aW9uTm9kZXMiLCJtYXAiLCJsYWJlbE5vZGUiLCJmcm9tTGFiZWxOb2RlIiwic3VwcG9zaXRpb25Ob2RlIiwiZnJvbVN1cHBvc2l0aW9uTm9kZSIsImZyb21Db25zZXF1ZW50Tm9kZSIsImZyb21Qcm9vZk5vZGUiLCJmcm9tTm90aGluZyIsIlRvcExldmVsQXNzZXJ0aW9uIiwiT2Jq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
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhdGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHNoaW0gZnJvbSBcIi4vc2hpbVwiO1xuaW1wb3J0IFRvcExldmVsQXNzZXJ0aW9uIGZyb20gXCIuL3RvcExldmVsQXNzZXJ0aW9uXCI7XG5cbmltcG9ydCB7IHN0cmluZ0Zyb21MYWJlbHMgfSBmcm9tIFwiLi90b3BMZXZlbEFzc2VydGlvblwiO1xuaW1wb3J0IHsgbGFiZWxzRnJvbUpTT04sXG4gICAgICAgICBsYWJlbHNUb0xhYmVsc0pTT04sXG4gICAgICAgICBjb25zZXF1ZW50RnJvbUpTT04sXG4gICAgICAgICBzdXBwb3NpdGlvbnNGcm9tSlNPTixcbiAgICAgICAgIHN1YnN0aXR1dGlvbnNGcm9tSlNPTixcbiAgICAgICAgIGNvbnNlcXVlbnRUb0NvbnNlcXVlbnRKU09OLFxuICAgICAgICAgc3VwcG9zaXRpb25zVG9TdXBwb3NpdGlvbnNKU09OLFxuICAgICAgICAgc3Vic3RpdHV0aW9uc1RvU3Vic3RpdHV0aW9uc0pTT04gfSBmcm9tIFwiLi91dGlsaXRpZXMvanNvblwiO1xuXG5jbGFzcyBNZXRhdGhlb3JlbSBleHRlbmRzIFRvcExldmVsQXNzZXJ0aW9uIHtcbiAgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllZDtcblxuICAgIGNvbnN0IGZpbGVDb250ZXh0ID0gdGhpcy5nZXRGaWxlQ29udGV4dCgpLFxuICAgICAgICAgIG1ldGF0aGVvcmVtU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke21ldGF0aGVvcmVtU3RyaW5nfScgbWV0YXRoZW9yZW0uLi5gKTtcblxuICAgIHZlcmlmaWVkID0gc3VwZXIudmVyaWZ5KCk7XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IG1ldGFUaGVvcmVtID0gdGhpczsgLy8vXG5cbiAgICAgIGZpbGVDb250ZXh0LmFkZE1ldGF0aGVvcmVtKG1ldGFUaGVvcmVtKTtcblxuICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHttZXRhdGhlb3JlbVN0cmluZ30nIG1ldGF0aGVvcmVtLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBsYWJlbHNKU09OID0gbGFiZWxzVG9MYWJlbHNKU09OKHRoaXMubGFiZWxzKSxcbiAgICAgICAgICBjb25zZXF1ZW50SlNPTiA9IGNvbnNlcXVlbnRUb0NvbnNlcXVlbnRKU09OKHRoaXMuY29uc2VxdWVudCksXG4gICAgICAgICAgc3VwcG9zaXRpb25zSlNPTiA9IHN1cHBvc2l0aW9uc1RvU3VwcG9zaXRpb25zSlNPTih0aGlzLnN1cHBvc2l0aW9ucyksXG4gICAgICAgICAgc3Vic3RpdHV0aW9uc0pTT04gPSBzdWJzdGl0dXRpb25zVG9TdWJzdGl0dXRpb25zSlNPTih0aGlzLnN1YnN0aXR1dGlvbnMpLFxuICAgICAgICAgIGxhYmVscyA9IGxhYmVsc0pTT04sICAvLy9cbiAgICAgICAgICBjb25zZXF1ZW50ID0gY29uc2VxdWVudEpTT04sICAvLy9cbiAgICAgICAgICBzdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbnNKU09OLCAgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGxhYmVscyxcbiAgICAgICAgICAgIGNvbnNlcXVlbnQsXG4gICAgICAgICAgICBzdXBwb3NpdGlvbnMsXG4gICAgICAgICAgICBzdWJzdGl0dXRpb25zXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgbGFiZWxzID0gbGFiZWxzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIGNvbnNlcXVlbnQgPSBjb25zZXF1ZW50RnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN1cHBvc2l0aW9ucyA9IHN1cHBvc2l0aW9uc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdWJzdGl0dXRpb25zID0gc3Vic3RpdHV0aW9uc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTGFiZWxzKGxhYmVscyksXG4gICAgICAgICAgcHJvb2YgPSBudWxsLFxuICAgICAgICAgIHRvcExldmVsQXNzZXJ0aW9uID0gbmV3IE1ldGF0aGVvcmVtKGZpbGVDb250ZXh0LCBzdHJpbmcsIGxhYmVscywgc3VwcG9zaXRpb25zLCBjb25zZXF1ZW50LCBwcm9vZiwgc3Vic3RpdHV0aW9ucyk7XG5cbiAgICByZXR1cm4gdG9wTGV2ZWxBc3NlcnRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbU1ldGF0aGVvcmVtTm9kZShtZXRhdGhlb3JlbU5vZGUsIGZpbGVDb250ZXh0KSB7IHJldHVybiBUb3BMZXZlbEFzc2VydGlvbi5mcm9tTm9kZShNZXRhdGhlb3JlbSwgbWV0YXRoZW9yZW1Ob2RlLCBmaWxlQ29udGV4dCk7IH1cbn1cblxuT2JqZWN0LmFzc2lnbihzaGltLCB7XG4gIE1ldGF0aGVvcmVtXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgTWV0YXRoZW9yZW07XG4iXSwibmFtZXMiOlsiTWV0YXRoZW9yZW0iLCJ2ZXJpZnkiLCJ2ZXJpZmllZCIsImZpbGVDb250ZXh0IiwiZ2V0RmlsZUNvbnRleHQiLCJtZXRhdGhlb3JlbVN0cmluZyIsInN0cmluZyIsInRyYWNlIiwibWV0YVRoZW9yZW0iLCJhZGRNZXRhdGhlb3JlbSIsImRlYnVnIiwidG9KU09OIiwibGFiZWxzSlNPTiIsImxhYmVsc1RvTGFiZWxzSlNPTiIsImxhYmVscyIsImNvbnNlcXVlbnRKU09OIiwiY29uc2VxdWVudFRvQ29uc2VxdWVudEpTT04iLCJjb25zZXF1ZW50Iiwic3VwcG9zaXRpb25zSlNPTiIsInN1cHBvc2l0aW9uc1RvU3VwcG9zaXRpb25zSlNPTiIsInN1cHBvc2l0aW9ucyIsInN1YnN0aXR1dGlvbnNKU09OIiwic3Vic3RpdHV0aW9uc1RvU3Vic3RpdHV0aW9uc0pTT04iLCJzdWJzdGl0dXRpb25zIiwianNvbiIsImZyb21KU09OIiwibGFiZWxzRnJvbUpTT04iLCJjb25zZXF1ZW50RnJvbUpTT04iLCJzdXBwb3NpdGlvbnNGcm9tSlNPTiIsInN1YnN0aXR1dGlvbnNGcm9tSlNPTiIsInN0cmluZ0Zyb21MYWJlbHMiLCJwcm9vZiIsInRvcExldmVsQXNzZXJ0aW9uIiwiZnJvbU1ldGF0aGVvcmVtTm9kZSIsIm1ldGF0aGVvcmVtTm9kZSIsIlRvcExldmVsQXNzZXJ0aW9uIiwiZnJvbU5vZGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzaGltIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEyRUE7OztlQUFBOzs7MkRBekVpQjt5RUFDYTtvQkFVbUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWpELElBQUEsQUFBTUEsNEJBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO2lDQUFBQTs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUM7Z0JBRUosSUFBTUMsY0FBYyxJQUFJLENBQUNDLGNBQWMsSUFDakNDLG9CQUFvQixJQUFJLENBQUNDLE1BQU0sRUFBRyxHQUFHO2dCQUUzQ0gsWUFBWUksS0FBSyxDQUFDLEFBQUMsa0JBQW1DLE9BQWxCRixtQkFBa0I7Z0JBRXRESCxXQUFXLHVCQVRURix3QkFTZUMsVUFBTixJQUFLO2dCQUVoQixJQUFJQyxVQUFVO29CQUNaLElBQU1NLGNBQWMsSUFBSSxFQUFFLEdBQUc7b0JBRTdCTCxZQUFZTSxjQUFjLENBQUNEO29CQUUzQkwsWUFBWU8sS0FBSyxDQUFDLEFBQUMsb0JBQXFDLE9BQWxCTCxtQkFBa0I7Z0JBQzFEO2dCQUVBLE9BQU9IO1lBQ1Q7OztZQUVBUyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsYUFBYUMsSUFBQUEsd0JBQWtCLEVBQUMsSUFBSSxDQUFDQyxNQUFNLEdBQzNDQyxpQkFBaUJDLElBQUFBLGdDQUEwQixFQUFDLElBQUksQ0FBQ0MsVUFBVSxHQUMzREMsbUJBQW1CQyxJQUFBQSxvQ0FBOEIsRUFBQyxJQUFJLENBQUNDLFlBQVksR0FDbkVDLG9CQUFvQkMsSUFBQUEsc0NBQWdDLEVBQUMsSUFBSSxDQUFDQyxhQUFhLEdBQ3ZFVCxTQUFTRixZQUNUSyxhQUFhRixnQkFDYkssZUFBZUYsa0JBQ2ZLLGdCQUFnQkYsbUJBQ2hCRyxPQUFPO29CQUNMVixRQUFBQTtvQkFDQUcsWUFBQUE7b0JBQ0FHLGNBQUFBO29CQUNBRyxlQUFBQTtnQkFDRjtnQkFFTixPQUFPQztZQUNUOzs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNELElBQUksRUFBRXJCLFdBQVc7Z0JBQy9CLElBQU1XLFNBQVNZLElBQUFBLG9CQUFjLEVBQUNGLE1BQU1yQixjQUM5QmMsYUFBYVUsSUFBQUEsd0JBQWtCLEVBQUNILE1BQU1yQixjQUN0Q2lCLGVBQWVRLElBQUFBLDBCQUFvQixFQUFDSixNQUFNckIsY0FDMUNvQixnQkFBZ0JNLElBQUFBLDJCQUFxQixFQUFDTCxNQUFNckIsY0FDNUNHLFNBQVN3QixJQUFBQSxtQ0FBZ0IsRUFBQ2hCLFNBQzFCaUIsUUFBUSxNQUNSQyxvQkFBb0IsSUFoRHhCaEMsWUFnRHdDRyxhQUFhRyxRQUFRUSxRQUFRTSxjQUFjSCxZQUFZYyxPQUFPUjtnQkFFeEcsT0FBT1M7WUFDVDs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLG9CQUFvQkMsZUFBZSxFQUFFL0IsV0FBVztnQkFBSSxPQUFPZ0MsMEJBQWlCLENBQUNDLFFBQVEsQ0FyRHhGcEMsYUFxRHNHa0MsaUJBQWlCL0I7WUFBYzs7O1dBckRySUg7RUFBb0JtQywwQkFBaUI7QUF3RDNDRSxPQUFPQyxNQUFNLENBQUNDLGFBQUksRUFBRTtJQUNsQnZDLGFBQUFBO0FBQ0Y7SUFFQSxXQUFlQSJ9