occam-verify-cli 1.0.388 → 1.0.404

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 (305) hide show
  1. package/lib/action/verify.js +3 -3
  2. package/lib/assignment/equality.js +2 -2
  3. package/lib/context/file.js +11 -11
  4. package/lib/context/local.js +38 -61
  5. package/lib/context/partial.js +10 -10
  6. package/lib/context/temporary.js +755 -0
  7. package/lib/mixins/statement/verify.js +38 -16
  8. package/lib/mixins/step/unify.js +7 -8
  9. package/lib/node/argument.js +4 -4
  10. package/lib/node/assertion/contained.js +6 -6
  11. package/lib/node/assertion/defined.js +6 -6
  12. package/lib/node/assertion/property.js +6 -6
  13. package/lib/node/assertion/satisfies.js +6 -6
  14. package/lib/node/assertion/subproof.js +6 -6
  15. package/lib/node/assertion/type.js +6 -6
  16. package/lib/node/assertion.js +107 -0
  17. package/lib/node/assumption.js +134 -0
  18. package/lib/node/axiom.js +6 -6
  19. package/lib/node/{topLevelAssertion.js → axiomLemmaTheoremConjecture.js} +12 -12
  20. package/lib/node/body.js +4 -5
  21. package/lib/node/combinator.js +4 -4
  22. package/lib/node/conclusion.js +4 -4
  23. package/lib/node/conjecture.js +6 -6
  24. package/lib/node/constructor.js +4 -4
  25. package/lib/node/declaration/combinator.js +6 -6
  26. package/lib/node/declaration/complexType.js +6 -6
  27. package/lib/node/declaration/constructor.js +6 -6
  28. package/lib/node/declaration/metavariable.js +6 -6
  29. package/lib/node/declaration/property.js +6 -6
  30. package/lib/node/declaration/simpleType.js +6 -6
  31. package/lib/node/declaration/typePrefix.js +6 -6
  32. package/lib/node/declaration/variable.js +6 -6
  33. package/lib/node/declaration.js +6 -22
  34. package/lib/node/deduction.js +4 -4
  35. package/lib/node/derivation.js +4 -4
  36. package/lib/node/document.js +107 -0
  37. package/lib/node/equality.js +4 -4
  38. package/lib/node/error.js +4 -4
  39. package/lib/node/frame.js +25 -14
  40. package/lib/node/header.js +4 -4
  41. package/lib/node/hypothesis.js +4 -4
  42. package/lib/node/judgement.js +8 -8
  43. package/lib/node/label.js +4 -4
  44. package/lib/node/labels.js +4 -4
  45. package/lib/node/lemma.js +6 -6
  46. package/lib/node/metaArgument.js +4 -4
  47. package/lib/node/metaLemma.js +6 -6
  48. package/lib/node/{topLevelMetaAssertion.js → metaLemmaMetaTheorem.js} +12 -12
  49. package/lib/node/metaType.js +4 -4
  50. package/lib/node/metatheorem.js +6 -6
  51. package/lib/node/metavariable.js +4 -4
  52. package/lib/node/nonsense.js +4 -4
  53. package/lib/node/parameter.js +4 -4
  54. package/lib/node/parenthesisedLabel.js +4 -4
  55. package/lib/node/parenthesisedLabels.js +4 -4
  56. package/lib/node/placeholder.js +107 -0
  57. package/lib/node/premise.js +4 -4
  58. package/lib/node/procedureCall.js +4 -4
  59. package/lib/node/procedureReference.js +4 -4
  60. package/lib/node/proof.js +4 -4
  61. package/lib/node/property.js +4 -4
  62. package/lib/node/propertyRelation.js +4 -4
  63. package/lib/node/qualification.js +4 -4
  64. package/lib/node/reference.js +4 -4
  65. package/lib/node/rule.js +4 -4
  66. package/lib/node/section.js +4 -4
  67. package/lib/node/signature.js +4 -4
  68. package/lib/node/statement.js +15 -4
  69. package/lib/node/step.js +4 -4
  70. package/lib/node/subDerivation.js +4 -4
  71. package/lib/node/subproof.js +4 -4
  72. package/lib/node/substitution/frame.js +28 -6
  73. package/lib/node/substitution/statement.js +6 -6
  74. package/lib/node/substitution/term.js +28 -6
  75. package/lib/node/substitution.js +107 -0
  76. package/lib/node/supposition.js +4 -4
  77. package/lib/node/term.js +27 -4
  78. package/lib/node/theorem.js +6 -6
  79. package/lib/node/type.js +4 -4
  80. package/lib/node/typePrefix.js +4 -4
  81. package/lib/node/types.js +4 -4
  82. package/lib/node/variable.js +4 -4
  83. package/lib/nominal/parser.js +3 -3
  84. package/lib/nonTerminalNode.js +222 -0
  85. package/lib/nonTerminalNodeMap.js +5 -3
  86. package/lib/ontology/assertion/contained.js +80 -39
  87. package/lib/ontology/assertion/defined.js +80 -39
  88. package/lib/ontology/assertion/property.js +71 -29
  89. package/lib/ontology/assertion/satisfies.js +73 -25
  90. package/lib/ontology/assertion/subproof.js +95 -41
  91. package/lib/ontology/assertion/type.js +74 -18
  92. package/lib/ontology/assertion.js +66 -0
  93. package/lib/ontology/assumption.js +379 -0
  94. package/lib/ontology/axiom.js +8 -11
  95. package/lib/ontology/combinator/bracketed.js +17 -3
  96. package/lib/ontology/combinator.js +17 -3
  97. package/lib/ontology/conclusion.js +38 -9
  98. package/lib/ontology/constructor/bracketed.js +17 -3
  99. package/lib/ontology/constructor.js +17 -3
  100. package/lib/ontology/declaration/combinator.js +75 -33
  101. package/lib/ontology/declaration/complexType.js +110 -63
  102. package/lib/ontology/declaration/constructor.js +81 -38
  103. package/lib/ontology/declaration/metavariable.js +87 -39
  104. package/lib/ontology/declaration/simpleType.js +95 -48
  105. package/lib/ontology/declaration/typePrefix.js +87 -40
  106. package/lib/ontology/declaration/variable.js +87 -39
  107. package/lib/ontology/declaration.js +13 -313
  108. package/lib/ontology/deduction.js +38 -9
  109. package/lib/ontology/equivalence.js +295 -0
  110. package/lib/ontology/equivalences.js +264 -0
  111. package/lib/ontology/frame.js +83 -51
  112. package/lib/ontology/hypothesis.js +11 -11
  113. package/lib/ontology/judgement.js +8 -8
  114. package/lib/ontology/label.js +5 -6
  115. package/lib/ontology/metavariable.js +14 -15
  116. package/lib/ontology/premise.js +60 -21
  117. package/lib/ontology/procedureCall.js +15 -15
  118. package/lib/ontology/procedureReference.js +1 -1
  119. package/lib/ontology/proof.js +2 -2
  120. package/lib/ontology/reference.js +6 -13
  121. package/lib/ontology/rule.js +69 -71
  122. package/lib/ontology/section.js +2 -2
  123. package/lib/ontology/signature.js +2 -2
  124. package/lib/ontology/statement.js +36 -24
  125. package/lib/ontology/step.js +38 -26
  126. package/lib/ontology/subproof.js +12 -13
  127. package/lib/ontology/substitution/frame.js +69 -21
  128. package/lib/ontology/substitution/reference.js +24 -9
  129. package/lib/ontology/substitution/statement.js +137 -76
  130. package/lib/ontology/substitution/term.js +75 -35
  131. package/lib/ontology/substitution.js +50 -44
  132. package/lib/ontology/substitutions.js +425 -0
  133. package/lib/ontology/supposition.js +69 -29
  134. package/lib/ontology/term.js +35 -37
  135. package/lib/ontology/topLevelAssertion.js +16 -17
  136. package/lib/ontology/topLevelMetaAssertion.js +3 -4
  137. package/lib/ontology/variable.js +9 -14
  138. package/lib/preamble.js +7 -4
  139. package/lib/ruleNames.js +20 -12
  140. package/lib/unifier/intrinsicLevel.js +4 -5
  141. package/lib/unifier/metaLevel.js +24 -24
  142. package/lib/utilities/brackets.js +4 -21
  143. package/lib/utilities/context.js +6 -6
  144. package/lib/utilities/frame.js +18 -0
  145. package/lib/utilities/json.js +24 -1
  146. package/lib/utilities/metavariable.js +18 -0
  147. package/lib/utilities/statement.js +18 -0
  148. package/lib/utilities/substitutions.js +43 -30
  149. package/lib/utilities/unification.js +10 -16
  150. package/lib/utilities/variable.js +18 -0
  151. package/package.json +10 -10
  152. package/src/action/verify.js +2 -2
  153. package/src/assignment/equality.js +1 -1
  154. package/src/context/file.js +13 -11
  155. package/src/context/local.js +40 -65
  156. package/src/context/partial.js +9 -14
  157. package/src/context/temporary.js +463 -0
  158. package/src/mixins/statement/verify.js +60 -23
  159. package/src/mixins/step/unify.js +6 -6
  160. package/src/node/argument.js +1 -1
  161. package/src/node/assertion/contained.js +3 -3
  162. package/src/node/assertion/defined.js +3 -3
  163. package/src/node/assertion/property.js +3 -3
  164. package/src/node/assertion/satisfies.js +3 -3
  165. package/src/node/assertion/subproof.js +3 -3
  166. package/src/node/assertion/type.js +3 -3
  167. package/src/node/assertion.js +7 -0
  168. package/src/node/assumption.js +35 -0
  169. package/src/node/axiom.js +3 -3
  170. package/src/node/{topLevelAssertion.js → axiomLemmaTheoremConjecture.js} +2 -2
  171. package/src/node/body.js +1 -3
  172. package/src/node/combinator.js +1 -1
  173. package/src/node/conclusion.js +1 -1
  174. package/src/node/conjecture.js +3 -3
  175. package/src/node/constructor.js +1 -1
  176. package/src/node/declaration/combinator.js +3 -3
  177. package/src/node/declaration/complexType.js +3 -3
  178. package/src/node/declaration/constructor.js +3 -3
  179. package/src/node/declaration/metavariable.js +3 -3
  180. package/src/node/declaration/property.js +3 -3
  181. package/src/node/declaration/simpleType.js +3 -3
  182. package/src/node/declaration/typePrefix.js +3 -3
  183. package/src/node/declaration/variable.js +3 -3
  184. package/src/node/declaration.js +2 -18
  185. package/src/node/deduction.js +1 -1
  186. package/src/node/derivation.js +1 -1
  187. package/src/node/document.js +7 -0
  188. package/src/node/equality.js +1 -1
  189. package/src/node/error.js +1 -1
  190. package/src/node/frame.js +23 -11
  191. package/src/node/header.js +1 -1
  192. package/src/node/hypothesis.js +1 -1
  193. package/src/node/judgement.js +6 -6
  194. package/src/node/label.js +1 -1
  195. package/src/node/labels.js +1 -1
  196. package/src/node/lemma.js +3 -3
  197. package/src/node/metaArgument.js +1 -1
  198. package/src/node/metaLemma.js +3 -3
  199. package/src/node/{topLevelMetaAssertion.js → metaLemmaMetaTheorem.js} +2 -2
  200. package/src/node/metaType.js +1 -1
  201. package/src/node/metatheorem.js +3 -3
  202. package/src/node/metavariable.js +1 -1
  203. package/src/node/nonsense.js +1 -1
  204. package/src/node/parameter.js +1 -1
  205. package/src/node/parenthesisedLabel.js +1 -1
  206. package/src/node/parenthesisedLabels.js +1 -1
  207. package/src/node/placeholder.js +7 -0
  208. package/src/node/premise.js +1 -1
  209. package/src/node/procedureCall.js +1 -1
  210. package/src/node/procedureReference.js +1 -1
  211. package/src/node/proof.js +1 -1
  212. package/src/node/property.js +1 -1
  213. package/src/node/propertyRelation.js +1 -1
  214. package/src/node/qualification.js +1 -1
  215. package/src/node/reference.js +1 -1
  216. package/src/node/rule.js +2 -2
  217. package/src/node/section.js +1 -1
  218. package/src/node/signature.js +1 -1
  219. package/src/node/statement.js +13 -1
  220. package/src/node/step.js +1 -1
  221. package/src/node/subDerivation.js +1 -1
  222. package/src/node/subproof.js +1 -1
  223. package/src/node/substitution/frame.js +29 -3
  224. package/src/node/substitution/statement.js +3 -3
  225. package/src/node/substitution/term.js +29 -3
  226. package/src/node/substitution.js +7 -0
  227. package/src/node/supposition.js +1 -1
  228. package/src/node/term.js +27 -1
  229. package/src/node/theorem.js +3 -3
  230. package/src/node/type.js +1 -1
  231. package/src/node/typePrefix.js +1 -1
  232. package/src/node/types.js +1 -1
  233. package/src/node/variable.js +1 -1
  234. package/src/nominal/parser.js +2 -2
  235. package/src/{node/nonTerminal.js → nonTerminalNode.js} +31 -25
  236. package/src/nonTerminalNodeMap.js +10 -5
  237. package/src/ontology/assertion/contained.js +21 -32
  238. package/src/ontology/assertion/defined.js +20 -31
  239. package/src/ontology/assertion/property.js +7 -20
  240. package/src/ontology/assertion/satisfies.js +8 -16
  241. package/src/ontology/assertion/subproof.js +36 -42
  242. package/src/ontology/assertion/type.js +10 -11
  243. package/src/ontology/assertion.js +23 -0
  244. package/src/ontology/assumption.js +385 -0
  245. package/src/ontology/axiom.js +7 -16
  246. package/src/ontology/combinator/bracketed.js +2 -0
  247. package/src/ontology/combinator.js +2 -0
  248. package/src/ontology/conclusion.js +51 -10
  249. package/src/ontology/constructor/bracketed.js +2 -0
  250. package/src/ontology/constructor.js +2 -0
  251. package/src/ontology/declaration/combinator.js +15 -24
  252. package/src/ontology/declaration/complexType.js +57 -53
  253. package/src/ontology/declaration/constructor.js +25 -31
  254. package/src/ontology/declaration/metavariable.js +25 -30
  255. package/src/ontology/declaration/simpleType.js +34 -38
  256. package/src/ontology/declaration/typePrefix.js +23 -31
  257. package/src/ontology/declaration/variable.js +26 -31
  258. package/src/ontology/declaration.js +8 -339
  259. package/src/ontology/deduction.js +51 -10
  260. package/src/{equivalence.js → ontology/equivalence.js} +4 -3
  261. package/src/{equivalences.js → ontology/equivalences.js} +14 -12
  262. package/src/ontology/frame.js +93 -66
  263. package/src/ontology/hypothesis.js +8 -8
  264. package/src/ontology/judgement.js +8 -8
  265. package/src/ontology/label.js +2 -7
  266. package/src/ontology/metavariable.js +14 -17
  267. package/src/ontology/premise.js +82 -25
  268. package/src/ontology/procedureCall.js +14 -14
  269. package/src/ontology/procedureReference.js +2 -2
  270. package/src/ontology/proof.js +1 -1
  271. package/src/ontology/reference.js +5 -9
  272. package/src/ontology/rule.js +79 -82
  273. package/src/ontology/section.js +1 -1
  274. package/src/ontology/signature.js +1 -1
  275. package/src/ontology/statement.js +37 -27
  276. package/src/ontology/step.js +45 -28
  277. package/src/ontology/subproof.js +10 -10
  278. package/src/ontology/substitution/frame.js +72 -26
  279. package/src/ontology/substitution/reference.js +8 -6
  280. package/src/ontology/substitution/statement.js +95 -76
  281. package/src/ontology/substitution/term.js +81 -41
  282. package/src/ontology/substitution.js +35 -34
  283. package/src/{substitutions.js → ontology/substitutions.js} +29 -28
  284. package/src/ontology/supposition.js +88 -28
  285. package/src/ontology/term.js +31 -43
  286. package/src/ontology/topLevelAssertion.js +16 -18
  287. package/src/ontology/topLevelMetaAssertion.js +3 -3
  288. package/src/ontology/variable.js +10 -17
  289. package/src/preamble.js +6 -3
  290. package/src/ruleNames.js +10 -8
  291. package/src/unifier/intrinsicLevel.js +5 -6
  292. package/src/unifier/metaLevel.js +32 -29
  293. package/src/utilities/brackets.js +3 -29
  294. package/src/utilities/context.js +5 -5
  295. package/src/utilities/frame.js +13 -0
  296. package/src/utilities/json.js +28 -0
  297. package/src/utilities/metavariable.js +13 -0
  298. package/src/utilities/statement.js +13 -0
  299. package/src/utilities/substitutions.js +59 -33
  300. package/src/utilities/unification.js +8 -24
  301. package/src/utilities/variable.js +13 -0
  302. package/lib/equivalence.js +0 -294
  303. package/lib/equivalences.js +0 -263
  304. package/lib/node/nonTerminal.js +0 -218
  305. package/lib/substitutions.js +0 -424
@@ -9,6 +9,17 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _ontology = /*#__PURE__*/ _interop_require_wildcard(require("../../ontology"));
12
+ var _declaration = /*#__PURE__*/ _interop_require_default(require("../declaration"));
13
+ function _assert_this_initialized(self) {
14
+ if (self === void 0) {
15
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
16
+ }
17
+ return self;
18
+ }
19
+ function _call_super(_this, derived, args) {
20
+ derived = _get_prototype_of(derived);
21
+ return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
22
+ }
12
23
  function _class_call_check(instance, Constructor) {
13
24
  if (!(instance instanceof Constructor)) {
14
25
  throw new TypeError("Cannot call a class as a function");
@@ -41,6 +52,30 @@ function _define_property(obj, key, value) {
41
52
  }
42
53
  return obj;
43
54
  }
55
+ function _get_prototype_of(o) {
56
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
57
+ return o.__proto__ || Object.getPrototypeOf(o);
58
+ };
59
+ return _get_prototype_of(o);
60
+ }
61
+ function _inherits(subClass, superClass) {
62
+ if (typeof superClass !== "function" && superClass !== null) {
63
+ throw new TypeError("Super expression must either be null or a function");
64
+ }
65
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
66
+ constructor: {
67
+ value: subClass,
68
+ writable: true,
69
+ configurable: true
70
+ }
71
+ });
72
+ if (superClass) _set_prototype_of(subClass, superClass);
73
+ }
74
+ function _interop_require_default(obj) {
75
+ return obj && obj.__esModule ? obj : {
76
+ default: obj
77
+ };
78
+ }
44
79
  function _getRequireWildcardCache(nodeInterop) {
45
80
  if (typeof WeakMap !== "function") return null;
46
81
  var cacheBabelInterop = new WeakMap();
@@ -82,34 +117,46 @@ function _interop_require_wildcard(obj, nodeInterop) {
82
117
  }
83
118
  return newObj;
84
119
  }
120
+ function _possible_constructor_return(self, call) {
121
+ if (call && (_type_of(call) === "object" || typeof call === "function")) {
122
+ return call;
123
+ }
124
+ return _assert_this_initialized(self);
125
+ }
126
+ function _set_prototype_of(o, p) {
127
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
128
+ o.__proto__ = p;
129
+ return o;
130
+ };
131
+ return _set_prototype_of(o, p);
132
+ }
133
+ function _type_of(obj) {
134
+ "@swc/helpers - typeof";
135
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
136
+ }
137
+ function _is_native_reflect_construct() {
138
+ try {
139
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
140
+ } catch (_) {}
141
+ return (_is_native_reflect_construct = function() {
142
+ return !!result;
143
+ })();
144
+ }
85
145
  var _VariableDeclaration;
86
- var _default = (0, _ontology.define)((_VariableDeclaration = /*#__PURE__*/ function() {
146
+ var _default = (0, _ontology.define)((_VariableDeclaration = /*#__PURE__*/ function(Declaration) {
147
+ _inherits(VariableDeclaration, Declaration);
87
148
  function VariableDeclaration(context, node, string, variable) {
88
149
  _class_call_check(this, VariableDeclaration);
89
- this.context = context;
90
- this.node = node;
91
- this.string = string;
92
- this.variable = variable;
150
+ var _this;
151
+ _this = _call_super(this, VariableDeclaration, [
152
+ context,
153
+ node,
154
+ string
155
+ ]);
156
+ _this.variable = variable;
157
+ return _this;
93
158
  }
94
159
  _create_class(VariableDeclaration, [
95
- {
96
- key: "getContext",
97
- value: function getContext() {
98
- return this.context;
99
- }
100
- },
101
- {
102
- key: "getNode",
103
- value: function getNode() {
104
- return this.node;
105
- }
106
- },
107
- {
108
- key: "getString",
109
- value: function getString() {
110
- return this.string;
111
- }
112
- },
113
160
  {
114
161
  key: "getVariable",
115
162
  value: function getVariable() {
@@ -120,18 +167,18 @@ var _default = (0, _ontology.define)((_VariableDeclaration = /*#__PURE__*/ funct
120
167
  key: "verify",
121
168
  value: function verify() {
122
169
  var verifies = false;
123
- var variableDeclarationString = this.getString();
124
- this.context.trace("Verifying the '".concat(variableDeclarationString, "' variable declaration..."), this.node);
170
+ var node = this.getNode(), context = this.getContext(), variableDeclarationString = this.getString(); ///
171
+ context.trace("Verifying the '".concat(variableDeclarationString, "' variable declaration..."), node);
125
172
  var variableTypeVerifies = this.verifyVariableType();
126
173
  if (variableTypeVerifies) {
127
174
  var variableVerifies = this.verifyVariable();
128
175
  if (variableVerifies) {
129
- this.context.addVariable(this.variable);
176
+ context.addVariable(this.variable);
130
177
  verifies = true;
131
178
  }
132
179
  }
133
180
  if (verifies) {
134
- this.context.debug("...verified the '".concat(variableDeclarationString, "' variable declaration."), this.node);
181
+ context.debug("...verified the '".concat(variableDeclarationString, "' variable declaration."), node);
135
182
  }
136
183
  return verifies;
137
184
  }
@@ -140,16 +187,16 @@ var _default = (0, _ontology.define)((_VariableDeclaration = /*#__PURE__*/ funct
140
187
  key: "verifyVariable",
141
188
  value: function verifyVariable() {
142
189
  var variableVerifies = false;
143
- var variableString = this.variable.getString();
144
- this.context.trace("Verifying the '".concat(variableString, "' variable..."), this.node);
145
- var variableIdentifier = this.variable.getIdentifier(), variablePresent = this.context.isVariablePresentByVariableIdentifier(variableIdentifier);
190
+ var node = this.getNode(), context = this.getContext(), variableString = this.variable.getString();
191
+ context.trace("Verifying the '".concat(variableString, "' variable..."), node);
192
+ var variableIdentifier = this.variable.getIdentifier(), variablePresent = context.isVariablePresentByVariableIdentifier(variableIdentifier);
146
193
  if (variablePresent) {
147
- this.context.debug("The '".concat(variableName, "' variable is already present."), this.node);
194
+ context.debug("The '".concat(variableName, "' variable is already present."), node);
148
195
  } else {
149
196
  variableVerifies = true;
150
197
  }
151
198
  if (variableVerifies) {
152
- this.context.debug("...verified the '".concat(variableString, "' variable."), this.node);
199
+ context.debug("...verified the '".concat(variableString, "' variable."), node);
153
200
  }
154
201
  return variableVerifies;
155
202
  }
@@ -158,26 +205,27 @@ var _default = (0, _ontology.define)((_VariableDeclaration = /*#__PURE__*/ funct
158
205
  key: "verifyVariableType",
159
206
  value: function verifyVariableType() {
160
207
  var variableTypeVerifies = false;
208
+ var node = this.getNode(), context = this.getContext();
161
209
  var type;
162
210
  type = this.variable.getType();
163
211
  var typeString = type.getString();
164
- this.context.trace("Verifying the '".concat(typeString, "' type..."), this.node);
212
+ context.trace("Verifying the '".concat(typeString, "' type..."), node);
165
213
  var nominalTypeName = type.getNominalTypeName();
166
- type = this.context.findTypeByNominalTypeName(nominalTypeName);
214
+ type = context.findTypeByNominalTypeName(nominalTypeName);
167
215
  var typePresent = type !== null;
168
216
  if (!typePresent) {
169
- this.context.debug("The '".concat(typeString, "' type is not present."), this.node);
217
+ context.debug("The '".concat(typeString, "' type is not present."), node);
170
218
  } else {
171
219
  var includeSupertypes = false, provisional = type.isProvisional(includeSupertypes), provisionalMatches = type.matchProvisional(provisional);
172
220
  if (!provisionalMatches) {
173
- provisional ? this.context.debug("The '".concat(typeString, "' type is present but not provisional."), this.node) : this.context.debug("The '".concat(typeString, "' type is present but provisional."), this.node);
221
+ provisional ? context.debug("The '".concat(typeString, "' type is present but not provisional."), node) : context.debug("The '".concat(typeString, "' type is present but provisional."), node);
174
222
  } else {
175
223
  this.variable.setType(type);
176
224
  variableTypeVerifies = true;
177
225
  }
178
226
  }
179
227
  if (variableTypeVerifies) {
180
- this.context.debug("...verified the '".concat(typeString, "' type."), this.node);
228
+ context.debug("...verified the '".concat(typeString, "' type."), node);
181
229
  }
182
230
  return variableTypeVerifies;
183
231
  }
@@ -192,6 +240,6 @@ var _default = (0, _ontology.define)((_VariableDeclaration = /*#__PURE__*/ funct
192
240
  }
193
241
  ]);
194
242
  return VariableDeclaration;
195
- }(), _define_property(_VariableDeclaration, "name", "VariableDeclaration"), _VariableDeclaration));
243
+ }(_declaration.default), _define_property(_VariableDeclaration, "name", "VariableDeclaration"), _VariableDeclaration));
196
244
 
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vbnRvbG9neS9kZWNsYXJhdGlvbi92YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG9udG9sb2d5IGZyb20gXCIuLi8uLi9vbnRvbG9neVwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vb250b2xvZ3lcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFZhcmlhYmxlRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBub2RlLCBzdHJpbmcsIHZhcmlhYmxlKSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIHZlcmlmeSgpIHtcbiAgICBsZXQgdmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5jb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyB2YXJpYWJsZSBkZWNsYXJhdGlvbi4uLmAsIHRoaXMubm9kZSk7XG5cbiAgICBjb25zdCB2YXJpYWJsZVR5cGVWZXJpZmllcyA9IHRoaXMudmVyaWZ5VmFyaWFibGVUeXBlKCk7XG5cbiAgICBpZiAodmFyaWFibGVUeXBlVmVyaWZpZXMpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVZhcmlhYmxlKCk7XG5cbiAgICAgIGlmICh2YXJpYWJsZVZlcmlmaWVzKSB7XG4gICAgICAgIHRoaXMuY29udGV4dC5hZGRWYXJpYWJsZSh0aGlzLnZhcmlhYmxlKTtcblxuICAgICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICB0aGlzLmNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24uYCwgdGhpcy5ub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICB2ZXJpZnlWYXJpYWJsZSgpIHtcbiAgICBsZXQgIHZhcmlhYmxlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdGhpcy52YXJpYWJsZS5nZXRTdHJpbmcoKTtcblxuICAgIHRoaXMuY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCwgdGhpcy5ub2RlKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlSWRlbnRpZmllciA9IHRoaXMudmFyaWFibGUuZ2V0SWRlbnRpZmllcigpLFxuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IHRoaXMuY29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVJZGVudGlmaWVyKHZhcmlhYmxlSWRlbnRpZmllcik7XG5cbiAgICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgICB0aGlzLmNvbnRleHQuZGVidWcoYFRoZSAnJHt2YXJpYWJsZU5hbWV9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuYCwgdGhpcy5ub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyaWFibGVWZXJpZmllcyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCB2YXJpYWJsZVZlcmlmaWVzKSB7XG4gICAgICB0aGlzLmNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmAsIHRoaXMubm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuICB2YXJpYWJsZVZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5VmFyaWFibGVUeXBlKCkge1xuICAgIGxldCB2YXJpYWJsZVR5cGVWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgbGV0IHR5cGU7XG5cbiAgICB0eXBlID0gdGhpcy52YXJpYWJsZS5nZXRUeXBlKCk7XG5cbiAgICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZS5nZXRTdHJpbmcoKTtcblxuICAgIHRoaXMuY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZS4uLmAsIHRoaXMubm9kZSk7XG5cbiAgICBjb25zdCBub21pbmFsVHlwZU5hbWUgPSB0eXBlLmdldE5vbWluYWxUeXBlTmFtZSgpO1xuXG4gICAgdHlwZSA9IHRoaXMuY29udGV4dC5maW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lKG5vbWluYWxUeXBlTmFtZSk7XG5cbiAgICBjb25zdCB0eXBlUHJlc2VudCA9ICh0eXBlICE9PSBudWxsKVxuXG4gICAgaWYgKCF0eXBlUHJlc2VudCkge1xuICAgICAgdGhpcy5jb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdGhpcy5ub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5jbHVkZVN1cGVydHlwZXMgPSBmYWxzZSxcbiAgICAgICAgICAgIHByb3Zpc2lvbmFsID0gdHlwZS5pc1Byb3Zpc2lvbmFsKGluY2x1ZGVTdXBlcnR5cGVzKSxcbiAgICAgICAgICAgIHByb3Zpc2lvbmFsTWF0Y2hlcyA9IHR5cGUubWF0Y2hQcm92aXNpb25hbChwcm92aXNpb25hbCk7XG5cbiAgICAgIGlmICghcHJvdmlzaW9uYWxNYXRjaGVzKSB7XG4gICAgICAgIHByb3Zpc2lvbmFsID9cbiAgICAgICAgICB0aGlzLmNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVzZW50IGJ1dCBub3QgcHJvdmlzaW9uYWwuYCwgdGhpcy5ub2RlKSA6XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVzZW50IGJ1dCBwcm92aXNpb25hbC5gLCB0aGlzLm5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YXJpYWJsZS5zZXRUeXBlKHR5cGUpO1xuXG4gICAgICAgIHZhcmlhYmxlVHlwZVZlcmlmaWVzID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFyaWFibGVUeXBlVmVyaWZpZXMpIHtcbiAgICAgIHRoaXMuY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVTdHJpbmd9JyB0eXBlLmAsIHRoaXMubm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlVHlwZVZlcmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIjtcblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBWYXJpYWJsZSB9ID0gb250b2xvZ3ksXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbiA9IG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKGNvbnRleHQsIG5vZGUsIHN0cmluZywgdmFyaWFibGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlRGVjbGFyYXRpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlZhcmlhYmxlRGVjbGFyYXRpb24iLCJjb250ZXh0Iiwibm9kZSIsInN0cmluZyIsInZhcmlhYmxlIiwiZ2V0Q29udGV4dCIsImdldE5vZGUiLCJnZXRTdHJpbmciLCJnZXRWYXJpYWJsZSIsInZlcmlmeSIsInZlcmlmaWVzIiwidmFyaWFibGVEZWNsYXJhdGlvblN0cmluZyIsInRyYWNlIiwidmFyaWFibGVUeXBlVmVyaWZpZXMiLCJ2ZXJpZnlWYXJpYWJsZVR5cGUiLCJ2YXJpYWJsZVZlcmlmaWVzIiwidmVyaWZ5VmFyaWFibGUiLCJhZGRWYXJpYWJsZSIsImRlYnVnIiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZUlkZW50aWZpZXIiLCJnZXRJZGVudGlmaWVyIiwidmFyaWFibGVQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlSWRlbnRpZmllciIsInZhcmlhYmxlTmFtZSIsInR5cGUiLCJnZXRUeXBlIiwidHlwZVN0cmluZyIsIm5vbWluYWxUeXBlTmFtZSIsImdldE5vbWluYWxUeXBlTmFtZSIsImZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUiLCJ0eXBlUHJlc2VudCIsImluY2x1ZGVTdXBlcnR5cGVzIiwicHJvdmlzaW9uYWwiLCJpc1Byb3Zpc2lvbmFsIiwicHJvdmlzaW9uYWxNYXRjaGVzIiwibWF0Y2hQcm92aXNpb25hbCIsInNldFR5cGUiLCJmcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIlZhcmlhYmxlIiwib250b2xvZ3kiLCJub2RlQXNTdHJpbmciLCJ2YXJpYWJsZURlY2xhcmF0aW9uIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7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
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vbnRvbG9neS9kZWNsYXJhdGlvbi92YXJpYWJsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IG9udG9sb2d5IGZyb20gXCIuLi8uLi9vbnRvbG9neVwiO1xuaW1wb3J0IERlY2xhcmF0aW9uIGZyb20gXCIuLi9kZWNsYXJhdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vb250b2xvZ3lcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFZhcmlhYmxlRGVjbGFyYXRpb24gZXh0ZW5kcyBEZWNsYXJhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIG5vZGUsIHN0cmluZywgdmFyaWFibGUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBub2RlLCBzdHJpbmcpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uLi4uYCwgbm9kZSk7XG5cbiAgICBjb25zdCB2YXJpYWJsZVR5cGVWZXJpZmllcyA9IHRoaXMudmVyaWZ5VmFyaWFibGVUeXBlKCk7XG5cbiAgICBpZiAodmFyaWFibGVUeXBlVmVyaWZpZXMpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlVmVyaWZpZXMgPSB0aGlzLnZlcmlmeVZhcmlhYmxlKCk7XG5cbiAgICAgIGlmICh2YXJpYWJsZVZlcmlmaWVzKSB7XG4gICAgICAgIGNvbnRleHQuYWRkVmFyaWFibGUodGhpcy52YXJpYWJsZSk7XG5cbiAgICAgICAgdmVyaWZpZXMgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyB2YXJpYWJsZSBkZWNsYXJhdGlvbi5gLCBub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICB2ZXJpZnlWYXJpYWJsZSgpIHtcbiAgICBsZXQgIHZhcmlhYmxlVmVyaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnZhcmlhYmxlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCwgbm9kZSk7XG5cbiAgICBjb25zdCB2YXJpYWJsZUlkZW50aWZpZXIgPSB0aGlzLnZhcmlhYmxlLmdldElkZW50aWZpZXIoKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgIGlmICh2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt2YXJpYWJsZU5hbWV9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuYCwgbm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhcmlhYmxlVmVyaWZpZXMgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICggdmFyaWFibGVWZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuICB2YXJpYWJsZVZlcmlmaWVzO1xuICB9XG5cbiAgdmVyaWZ5VmFyaWFibGVUeXBlKCkge1xuICAgIGxldCB2YXJpYWJsZVR5cGVWZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGxldCB0eXBlO1xuXG4gICAgdHlwZSA9IHRoaXMudmFyaWFibGUuZ2V0VHlwZSgpO1xuXG4gICAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVTdHJpbmd9JyB0eXBlLi4uYCwgbm9kZSk7XG5cbiAgICBjb25zdCBub21pbmFsVHlwZU5hbWUgPSB0eXBlLmdldE5vbWluYWxUeXBlTmFtZSgpO1xuXG4gICAgdHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgY29uc3QgdHlwZVByZXNlbnQgPSAodHlwZSAhPT0gbnVsbClcblxuICAgIGlmICghdHlwZVByZXNlbnQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBub3QgcHJlc2VudC5gLCBub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5jbHVkZVN1cGVydHlwZXMgPSBmYWxzZSxcbiAgICAgICAgICAgIHByb3Zpc2lvbmFsID0gdHlwZS5pc1Byb3Zpc2lvbmFsKGluY2x1ZGVTdXBlcnR5cGVzKSxcbiAgICAgICAgICAgIHByb3Zpc2lvbmFsTWF0Y2hlcyA9IHR5cGUubWF0Y2hQcm92aXNpb25hbChwcm92aXNpb25hbCk7XG5cbiAgICAgIGlmICghcHJvdmlzaW9uYWxNYXRjaGVzKSB7XG4gICAgICAgIHByb3Zpc2lvbmFsID9cbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgcHJlc2VudCBidXQgbm90IHByb3Zpc2lvbmFsLmAsIG5vZGUpIDpcbiAgICAgICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBwcmVzZW50IGJ1dCBwcm92aXNpb25hbC5gLCBub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFyaWFibGUuc2V0VHlwZSh0eXBlKTtcblxuICAgICAgICB2YXJpYWJsZVR5cGVWZXJpZmllcyA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZhcmlhYmxlVHlwZVZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCwgbm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlVHlwZVZlcmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIjtcblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBWYXJpYWJsZSB9ID0gb250b2xvZ3ksXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbiA9IG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKGNvbnRleHQsIG5vZGUsIHN0cmluZywgdmFyaWFibGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlRGVjbGFyYXRpb247XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlZhcmlhYmxlRGVjbGFyYXRpb24iLCJjb250ZXh0Iiwibm9kZSIsInN0cmluZyIsInZhcmlhYmxlIiwiZ2V0VmFyaWFibGUiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsImdldE5vZGUiLCJnZXRDb250ZXh0IiwidmFyaWFibGVEZWNsYXJhdGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFyaWFibGVUeXBlVmVyaWZpZXMiLCJ2ZXJpZnlWYXJpYWJsZVR5cGUiLCJ2YXJpYWJsZVZlcmlmaWVzIiwidmVyaWZ5VmFyaWFibGUiLCJhZGRWYXJpYWJsZSIsImRlYnVnIiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZUlkZW50aWZpZXIiLCJnZXRJZGVudGlmaWVyIiwidmFyaWFibGVQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlSWRlbnRpZmllciIsInZhcmlhYmxlTmFtZSIsInR5cGUiLCJnZXRUeXBlIiwidHlwZVN0cmluZyIsIm5vbWluYWxUeXBlTmFtZSIsImdldE5vbWluYWxUeXBlTmFtZSIsImZpbmRUeXBlQnlOb21pbmFsVHlwZU5hbWUiLCJ0eXBlUHJlc2VudCIsImluY2x1ZGVTdXBlcnR5cGVzIiwicHJvdmlzaW9uYWwiLCJpc1Byb3Zpc2lvbmFsIiwicHJvdmlzaW9uYWxNYXRjaGVzIiwibWF0Y2hQcm92aXNpb25hbCIsInNldFR5cGUiLCJmcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIlZhcmlhYmxlIiwib250b2xvZ3kiLCJub2RlQXNTdHJpbmciLCJ2YXJpYWJsZURlY2xhcmF0aW9uIiwiRGVjbGFyYXRpb24iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VB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