occam-furtle 2.0.342 → 3.0.2
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.
- package/example.js +5905 -1786
- package/lib/context/block.js +81 -41
- package/lib/context/file/furtle.js +260 -0
- package/lib/context/file/nominal.js +956 -0
- package/lib/context/file.js +146 -271
- package/lib/context.js +210 -0
- package/lib/element/assignment/array.js +116 -14
- package/lib/element/assignment/object.js +116 -14
- package/lib/element/assignment/variable.js +121 -14
- package/lib/element/assignments/variable.js +120 -13
- package/lib/element/declaration/procedure.js +120 -12
- package/lib/element/error.js +118 -13
- package/lib/element/every.js +116 -13
- package/lib/element/expression.js +127 -20
- package/lib/element/label.js +119 -12
- package/lib/element/nodeQuery.js +116 -14
- package/lib/element/nodesQuery.js +116 -14
- package/lib/element/parameter/named.js +117 -15
- package/lib/element/parameter.js +116 -14
- package/lib/element/parameters/named.js +116 -14
- package/lib/element/parameters.js +115 -13
- package/lib/element/primitive.js +115 -13
- package/lib/element/procedure/anonymous.js +118 -16
- package/lib/element/procedure.js +118 -16
- package/lib/element/procedureCall.js +116 -14
- package/lib/element/reduce.js +116 -14
- package/lib/element/reference.js +119 -12
- package/lib/element/returnBlock.js +116 -14
- package/lib/element/some.js +115 -13
- package/lib/element/statement/return.js +120 -13
- package/lib/element/step.js +121 -14
- package/lib/element/term/bracketed.js +120 -13
- package/lib/element/term/comparison.js +117 -15
- package/lib/element/term/logical.js +118 -16
- package/lib/element/term/negated.js +116 -14
- package/lib/element/term.js +127 -18
- package/lib/element/terms.js +125 -14
- package/lib/element/ternary.js +117 -15
- package/lib/element/variable.js +127 -19
- package/lib/element.js +1 -8
- package/lib/index.js +5 -5
- package/lib/log.js +13 -12
- package/lib/metaTypeNames.js +26 -0
- package/lib/metaTypes.js +66 -0
- package/lib/nodeProperties.js +17 -21
- package/lib/nodeProperty.js +4 -7
- package/lib/utilities/context.js +8 -37
- package/lib/utilities/customGrammar.js +49 -0
- package/lib/utilities/element.js +91 -37
- package/lib/utilities/lineIndex.js +26 -0
- package/lib/utilities/node.js +1 -8
- package/lib/utilities/primitive.js +14 -5
- package/lib/utilities/string.js +30 -19
- package/lib/utilities/term.js +14 -5
- package/lib/utilities/terms.js +7 -3
- package/package.json +2 -2
- package/src/context/block.js +20 -32
- package/src/context/file/furtle.js +141 -0
- package/src/context/file/nominal.js +946 -0
- package/src/context/file.js +32 -209
- package/src/context.js +74 -0
- package/src/element/assignment/array.js +6 -8
- package/src/element/assignment/object.js +6 -8
- package/src/element/assignment/variable.js +7 -8
- package/src/element/assignments/variable.js +7 -8
- package/src/element/declaration/procedure.js +6 -6
- package/src/element/error.js +4 -6
- package/src/element/every.js +5 -6
- package/src/element/expression.js +6 -7
- package/src/element/label.js +6 -7
- package/src/element/nodeQuery.js +6 -8
- package/src/element/nodesQuery.js +6 -8
- package/src/element/parameter/named.js +7 -8
- package/src/element/parameter.js +6 -8
- package/src/element/parameters/named.js +8 -9
- package/src/element/parameters.js +6 -8
- package/src/element/primitive.js +5 -7
- package/src/element/procedure/anonymous.js +7 -9
- package/src/element/procedure.js +6 -8
- package/src/element/procedureCall.js +6 -8
- package/src/element/reduce.js +5 -7
- package/src/element/reference.js +6 -7
- package/src/element/returnBlock.js +5 -7
- package/src/element/some.js +5 -7
- package/src/element/statement/return.js +7 -8
- package/src/element/step.js +6 -7
- package/src/element/term/bracketed.js +7 -8
- package/src/element/term/comparison.js +6 -8
- package/src/element/term/logical.js +6 -8
- package/src/element/term/negated.js +6 -8
- package/src/element/term.js +12 -9
- package/src/element/terms.js +16 -9
- package/src/element/ternary.js +6 -8
- package/src/element/variable.js +24 -14
- package/src/element.js +0 -8
- package/src/index.js +1 -1
- package/src/log.js +11 -11
- package/src/metaTypeNames.js +5 -0
- package/src/metaTypes.js +71 -0
- package/src/nodeProperties.js +23 -32
- package/src/nodeProperty.js +5 -10
- package/src/utilities/context.js +7 -45
- package/src/utilities/customGrammar.js +40 -0
- package/src/utilities/element.js +158 -64
- package/src/utilities/lineIndex.js +21 -0
- package/src/utilities/node.js +0 -5
- package/src/utilities/primitive.js +22 -5
- package/src/utilities/string.js +33 -19
- package/src/utilities/term.js +22 -5
- package/src/utilities/terms.js +12 -4
- package/test/context/release.js +477 -46
- package/test/helpers/furtle.js +1 -1
- package/test/helpers/nominal.js +2 -3
- package/test/main.js +1 -1
- package/test/context/file.js +0 -127
- package/test/helpers/constants.js +0 -17
package/lib/context/file.js
CHANGED
|
@@ -8,25 +8,49 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return FileContext;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var _verify = require("../process/verify");
|
|
14
|
-
var _furtle = require("../utilities/furtle");
|
|
11
|
+
var _context = /*#__PURE__*/ _interop_require_default(require("../context"));
|
|
12
|
+
var _lineIndex = require("../utilities/lineIndex");
|
|
15
13
|
var _node = require("../utilities/node");
|
|
16
|
-
var _context = require("../utilities/context");
|
|
17
14
|
function _array_like_to_array(arr, len) {
|
|
18
15
|
if (len == null || len > arr.length) len = arr.length;
|
|
19
16
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
20
17
|
return arr2;
|
|
21
18
|
}
|
|
22
|
-
function
|
|
23
|
-
if (Array.isArray(arr)) return arr;
|
|
19
|
+
function _array_without_holes(arr) {
|
|
20
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
21
|
+
}
|
|
22
|
+
function _assert_this_initialized(self) {
|
|
23
|
+
if (self === void 0) {
|
|
24
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
25
|
+
}
|
|
26
|
+
return self;
|
|
27
|
+
}
|
|
28
|
+
function _call_super(_this, derived, args) {
|
|
29
|
+
derived = _get_prototype_of(derived);
|
|
30
|
+
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
24
31
|
}
|
|
25
32
|
function _class_call_check(instance, Constructor) {
|
|
26
33
|
if (!(instance instanceof Constructor)) {
|
|
27
34
|
throw new TypeError("Cannot call a class as a function");
|
|
28
35
|
}
|
|
29
36
|
}
|
|
37
|
+
function _construct(Parent, args, Class) {
|
|
38
|
+
if (_is_native_reflect_construct()) {
|
|
39
|
+
_construct = Reflect.construct;
|
|
40
|
+
} else {
|
|
41
|
+
_construct = function construct(Parent, args, Class) {
|
|
42
|
+
var a = [
|
|
43
|
+
null
|
|
44
|
+
];
|
|
45
|
+
a.push.apply(a, args);
|
|
46
|
+
var Constructor = Function.bind.apply(Parent, a);
|
|
47
|
+
var instance = new Constructor();
|
|
48
|
+
if (Class) _set_prototype_of(instance, Class.prototype);
|
|
49
|
+
return instance;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return _construct.apply(null, arguments);
|
|
53
|
+
}
|
|
30
54
|
function _defineProperties(target, props) {
|
|
31
55
|
for(var i = 0; i < props.length; i++){
|
|
32
56
|
var descriptor = props[i];
|
|
@@ -41,35 +65,55 @@ function _create_class(Constructor, protoProps, staticProps) {
|
|
|
41
65
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
42
66
|
return Constructor;
|
|
43
67
|
}
|
|
44
|
-
function
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
} finally{
|
|
60
|
-
try {
|
|
61
|
-
if (!_n && _i["return"] != null) _i["return"]();
|
|
62
|
-
} finally{
|
|
63
|
-
if (_d) throw _e;
|
|
68
|
+
function _get_prototype_of(o) {
|
|
69
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
70
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
71
|
+
};
|
|
72
|
+
return _get_prototype_of(o);
|
|
73
|
+
}
|
|
74
|
+
function _inherits(subClass, superClass) {
|
|
75
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
76
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
77
|
+
}
|
|
78
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
79
|
+
constructor: {
|
|
80
|
+
value: subClass,
|
|
81
|
+
writable: true,
|
|
82
|
+
configurable: true
|
|
64
83
|
}
|
|
84
|
+
});
|
|
85
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
86
|
+
}
|
|
87
|
+
function _interop_require_default(obj) {
|
|
88
|
+
return obj && obj.__esModule ? obj : {
|
|
89
|
+
default: obj
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function _iterable_to_array(iter) {
|
|
93
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
94
|
+
}
|
|
95
|
+
function _non_iterable_spread() {
|
|
96
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
97
|
+
}
|
|
98
|
+
function _possible_constructor_return(self, call) {
|
|
99
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
100
|
+
return call;
|
|
65
101
|
}
|
|
66
|
-
return
|
|
102
|
+
return _assert_this_initialized(self);
|
|
103
|
+
}
|
|
104
|
+
function _set_prototype_of(o, p) {
|
|
105
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
106
|
+
o.__proto__ = p;
|
|
107
|
+
return o;
|
|
108
|
+
};
|
|
109
|
+
return _set_prototype_of(o, p);
|
|
67
110
|
}
|
|
68
|
-
function
|
|
69
|
-
|
|
111
|
+
function _to_consumable_array(arr) {
|
|
112
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
70
113
|
}
|
|
71
|
-
function
|
|
72
|
-
|
|
114
|
+
function _type_of(obj) {
|
|
115
|
+
"@swc/helpers - typeof";
|
|
116
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
73
117
|
}
|
|
74
118
|
function _unsupported_iterable_to_array(o, minLen) {
|
|
75
119
|
if (!o) return;
|
|
@@ -79,43 +123,34 @@ function _unsupported_iterable_to_array(o, minLen) {
|
|
|
79
123
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
80
124
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
81
125
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
126
|
+
function _is_native_reflect_construct() {
|
|
127
|
+
try {
|
|
128
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
129
|
+
} catch (_) {}
|
|
130
|
+
return (_is_native_reflect_construct = function() {
|
|
131
|
+
return !!result;
|
|
132
|
+
})();
|
|
133
|
+
}
|
|
134
|
+
var FileContext = /*#__PURE__*/ function(Context) {
|
|
135
|
+
_inherits(FileContext, Context);
|
|
136
|
+
function FileContext(context, filePath, tokens, node) {
|
|
85
137
|
_class_call_check(this, FileContext);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
138
|
+
var _this;
|
|
139
|
+
_this = _call_super(this, FileContext, [
|
|
140
|
+
context
|
|
141
|
+
]);
|
|
142
|
+
_this.filePath = filePath;
|
|
143
|
+
_this.tokens = tokens;
|
|
144
|
+
_this.node = node;
|
|
145
|
+
return _this;
|
|
93
146
|
}
|
|
94
147
|
_create_class(FileContext, [
|
|
95
|
-
{
|
|
96
|
-
key: "getContext",
|
|
97
|
-
value: function getContext() {
|
|
98
|
-
return this.context;
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
148
|
{
|
|
102
149
|
key: "getFilePath",
|
|
103
150
|
value: function getFilePath() {
|
|
104
151
|
return this.filePath;
|
|
105
152
|
}
|
|
106
153
|
},
|
|
107
|
-
{
|
|
108
|
-
key: "getLineIndex",
|
|
109
|
-
value: function getLineIndex() {
|
|
110
|
-
return this.lineIndex;
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
key: "getNode",
|
|
115
|
-
value: function getNode() {
|
|
116
|
-
return this.node;
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
154
|
{
|
|
120
155
|
key: "getTokens",
|
|
121
156
|
value: function getTokens() {
|
|
@@ -123,149 +158,22 @@ var FileContext = /*#__PURE__*/ function() {
|
|
|
123
158
|
}
|
|
124
159
|
},
|
|
125
160
|
{
|
|
126
|
-
key: "
|
|
127
|
-
value: function
|
|
128
|
-
|
|
129
|
-
return lexer;
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
key: "getParser",
|
|
134
|
-
value: function getParser() {
|
|
135
|
-
var parser = _furtle.furtleParser; ///
|
|
136
|
-
return parser;
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
key: "getLabels",
|
|
141
|
-
value: function getLabels() {
|
|
142
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
143
|
-
var labels = [];
|
|
144
|
-
return labels;
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
key: "getTypes",
|
|
149
|
-
value: function getTypes() {
|
|
150
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
151
|
-
var types = [];
|
|
152
|
-
return types;
|
|
153
|
-
}
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
key: "getRules",
|
|
157
|
-
value: function getRules() {
|
|
158
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
159
|
-
var rules = [];
|
|
160
|
-
return rules;
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
key: "getAxioms",
|
|
165
|
-
value: function getAxioms() {
|
|
166
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
167
|
-
var axioms = [];
|
|
168
|
-
return axioms;
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
key: "getLemmas",
|
|
173
|
-
value: function getLemmas() {
|
|
174
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
175
|
-
var lemmas = [];
|
|
176
|
-
return lemmas;
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
key: "getTheorems",
|
|
181
|
-
value: function getTheorems() {
|
|
182
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
183
|
-
var theorems = [];
|
|
184
|
-
return theorems;
|
|
185
|
-
}
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
key: "getProcedures",
|
|
189
|
-
value: function getProcedures() {
|
|
190
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
191
|
-
var procedures = [];
|
|
192
|
-
push(procedures, this.procedures);
|
|
193
|
-
if (includeRelease) {
|
|
194
|
-
var releaseContextProcedures = this.context.getProcedures();
|
|
195
|
-
push(procedures, releaseContextProcedures);
|
|
196
|
-
}
|
|
197
|
-
return procedures;
|
|
198
|
-
}
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
key: "getMetaLemmas",
|
|
202
|
-
value: function getMetaLemmas() {
|
|
203
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
204
|
-
var metaLemmas = [];
|
|
205
|
-
return metaLemmas;
|
|
206
|
-
}
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
key: "getConjectures",
|
|
210
|
-
value: function getConjectures() {
|
|
211
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
212
|
-
var conjectures = [];
|
|
213
|
-
return conjectures;
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
{
|
|
217
|
-
key: "getCombinators",
|
|
218
|
-
value: function getCombinators() {
|
|
219
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
220
|
-
var combinators = [];
|
|
221
|
-
return combinators;
|
|
222
|
-
}
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
key: "getTypePrefixes",
|
|
226
|
-
value: function getTypePrefixes() {
|
|
227
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
228
|
-
var typePrefixes = [];
|
|
229
|
-
return typePrefixes;
|
|
230
|
-
}
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
key: "getConstructors",
|
|
234
|
-
value: function getConstructors() {
|
|
235
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
236
|
-
var constructors = [];
|
|
237
|
-
return constructors;
|
|
238
|
-
}
|
|
239
|
-
},
|
|
240
|
-
{
|
|
241
|
-
key: "getMetatheorems",
|
|
242
|
-
value: function getMetatheorems() {
|
|
243
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
244
|
-
var metatheorems = [];
|
|
245
|
-
return metatheorems;
|
|
246
|
-
}
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
key: "getMetavariables",
|
|
250
|
-
value: function getMetavariables() {
|
|
251
|
-
var includeRelease = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
|
|
252
|
-
var metavariables = [];
|
|
253
|
-
return metavariables;
|
|
161
|
+
key: "getNode",
|
|
162
|
+
value: function getNode() {
|
|
163
|
+
return this.node;
|
|
254
164
|
}
|
|
255
165
|
},
|
|
256
166
|
{
|
|
257
|
-
key: "
|
|
258
|
-
value: function
|
|
259
|
-
var
|
|
260
|
-
this.
|
|
261
|
-
this.debug("Added the '".concat(procedureString, "' procedure to the context."));
|
|
167
|
+
key: "break",
|
|
168
|
+
value: function _break(node) {
|
|
169
|
+
var lineIndex = (0, _lineIndex.lineIndexFromNodeAndTokens)(node, this.tokens);
|
|
170
|
+
this.context.break(this.filePath, lineIndex);
|
|
262
171
|
}
|
|
263
172
|
},
|
|
264
173
|
{
|
|
265
|
-
key: "
|
|
266
|
-
value: function
|
|
267
|
-
|
|
268
|
-
return variables;
|
|
174
|
+
key: "writeToLog",
|
|
175
|
+
value: function writeToLog(level, message) {
|
|
176
|
+
this.context.writeToLog(level, message, this.filePath);
|
|
269
177
|
}
|
|
270
178
|
},
|
|
271
179
|
{
|
|
@@ -282,69 +190,6 @@ var FileContext = /*#__PURE__*/ function() {
|
|
|
282
190
|
return string;
|
|
283
191
|
}
|
|
284
192
|
},
|
|
285
|
-
{
|
|
286
|
-
key: "trace",
|
|
287
|
-
value: function trace(message) {
|
|
288
|
-
var node = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
|
|
289
|
-
var level = TRACE_LEVEL;
|
|
290
|
-
this.writeToLog(level, message, node);
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
{
|
|
294
|
-
key: "debug",
|
|
295
|
-
value: function debug(message) {
|
|
296
|
-
var node = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
|
|
297
|
-
var level = DEBUG_LEVEL;
|
|
298
|
-
this.writeToLog(level, message, node);
|
|
299
|
-
}
|
|
300
|
-
},
|
|
301
|
-
{
|
|
302
|
-
key: "info",
|
|
303
|
-
value: function info(message) {
|
|
304
|
-
var node = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
|
|
305
|
-
var level = INFO_LEVEL;
|
|
306
|
-
this.writeToLog(level, message, node);
|
|
307
|
-
}
|
|
308
|
-
},
|
|
309
|
-
{
|
|
310
|
-
key: "warning",
|
|
311
|
-
value: function warning(message) {
|
|
312
|
-
var node = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
|
|
313
|
-
var level = WARNING_LEVEL;
|
|
314
|
-
this.writeToLog(level, message, node);
|
|
315
|
-
}
|
|
316
|
-
},
|
|
317
|
-
{
|
|
318
|
-
key: "error",
|
|
319
|
-
value: function error(message) {
|
|
320
|
-
var node = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
|
|
321
|
-
var level = ERROR_LEVEL;
|
|
322
|
-
this.writeToLog(level, message, node);
|
|
323
|
-
}
|
|
324
|
-
},
|
|
325
|
-
{
|
|
326
|
-
key: "writeToLog",
|
|
327
|
-
value: function writeToLog(level, message, node) {
|
|
328
|
-
var lineIndex = (0, _context.lineIndexFromNodeAndTokens)(node, this.tokens, this.lineIndex), filePath = lineIndex === null ? this.filePath : null;
|
|
329
|
-
this.context.writeToLog(level, message, filePath, lineIndex);
|
|
330
|
-
this.lineIndex = lineIndex;
|
|
331
|
-
}
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
key: "getFileContext",
|
|
335
|
-
value: function getFileContext() {
|
|
336
|
-
var fileContext = this; ///
|
|
337
|
-
return fileContext;
|
|
338
|
-
}
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
key: "getDepth",
|
|
342
|
-
value: function getDepth() {
|
|
343
|
-
var depth = this.context.getDepth();
|
|
344
|
-
depth++;
|
|
345
|
-
return depth;
|
|
346
|
-
}
|
|
347
|
-
},
|
|
348
193
|
{
|
|
349
194
|
key: "verify",
|
|
350
195
|
value: function verify() {
|
|
@@ -354,8 +199,8 @@ var FileContext = /*#__PURE__*/ function() {
|
|
|
354
199
|
this.warning("Unable to verify the '".concat(this.filePath, "' file because it cannot be parsed."));
|
|
355
200
|
} else {
|
|
356
201
|
this.debug("Verifying the '".concat(this.filePath, "' file..."));
|
|
357
|
-
var context = this, fileNode = this.node; ///
|
|
358
|
-
verifies =
|
|
202
|
+
var verifyFile = this.constrcutor.verifyFile, context = this, fileNode = this.node; ///
|
|
203
|
+
verifies = verifyFile(fileNode, context);
|
|
359
204
|
verifies ? this.complete() : this.clear();
|
|
360
205
|
if (verifies) {
|
|
361
206
|
this.info("...verified the '".concat(this.filePath, "' file."));
|
|
@@ -370,7 +215,7 @@ var FileContext = /*#__PURE__*/ function() {
|
|
|
370
215
|
if (this.tokens !== null) {
|
|
371
216
|
return;
|
|
372
217
|
}
|
|
373
|
-
var
|
|
218
|
+
var _this_constructor = this.constructor, lexer = _this_constructor.lexer, parser = _this_constructor.parser, file = this.findFile(this.filePath), content = file.getContent();
|
|
374
219
|
this.tokens = lexer.tokenise(content);
|
|
375
220
|
this.node = parser.parse(this.tokens);
|
|
376
221
|
}
|
|
@@ -378,14 +223,13 @@ var FileContext = /*#__PURE__*/ function() {
|
|
|
378
223
|
{
|
|
379
224
|
key: "clear",
|
|
380
225
|
value: function clear() {
|
|
381
|
-
this.lineIndex = null;
|
|
382
226
|
this.procedures = [];
|
|
383
227
|
}
|
|
384
228
|
},
|
|
385
229
|
{
|
|
386
230
|
key: "complete",
|
|
387
231
|
value: function complete() {
|
|
388
|
-
|
|
232
|
+
///
|
|
389
233
|
}
|
|
390
234
|
},
|
|
391
235
|
{
|
|
@@ -411,20 +255,51 @@ var FileContext = /*#__PURE__*/ function() {
|
|
|
411
255
|
], [
|
|
412
256
|
{
|
|
413
257
|
key: "fromFile",
|
|
414
|
-
value: function fromFile(
|
|
415
|
-
var
|
|
258
|
+
value: function fromFile(Class, file) {
|
|
259
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
260
|
+
remainingArguments[_key - 2] = arguments[_key];
|
|
261
|
+
}
|
|
262
|
+
var filePath = file.getPath(), tokens = null, node = null, context = remainingArguments.pop(), fileContext = _construct(Class, [
|
|
263
|
+
context,
|
|
264
|
+
filePath,
|
|
265
|
+
tokens,
|
|
266
|
+
node
|
|
267
|
+
].concat(_to_consumable_array(remainingArguments)));
|
|
416
268
|
return fileContext;
|
|
417
269
|
}
|
|
418
270
|
},
|
|
419
271
|
{
|
|
420
272
|
key: "fromFilePath",
|
|
421
|
-
value: function fromFilePath(
|
|
422
|
-
var
|
|
273
|
+
value: function fromFilePath(Class, filePath) {
|
|
274
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
275
|
+
remainingArguments[_key - 2] = arguments[_key];
|
|
276
|
+
}
|
|
277
|
+
var tokens = null, node = null, context = remainingArguments.pop(), fileContext = _construct(Class, [
|
|
278
|
+
context,
|
|
279
|
+
filePath,
|
|
280
|
+
tokens,
|
|
281
|
+
node
|
|
282
|
+
].concat(_to_consumable_array(remainingArguments)));
|
|
283
|
+
return fileContext;
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
key: "fromFilePathTokensAndNode",
|
|
288
|
+
value: function fromFilePathTokensAndNode(Class, filePath, tokens, node) {
|
|
289
|
+
for(var _len = arguments.length, remainingArguments = new Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++){
|
|
290
|
+
remainingArguments[_key - 4] = arguments[_key];
|
|
291
|
+
}
|
|
292
|
+
var context = remainingArguments.pop(), fileContext = _construct(Class, [
|
|
293
|
+
context,
|
|
294
|
+
filePath,
|
|
295
|
+
tokens,
|
|
296
|
+
node
|
|
297
|
+
].concat(_to_consumable_array(remainingArguments)));
|
|
423
298
|
return fileContext;
|
|
424
299
|
}
|
|
425
300
|
}
|
|
426
301
|
]);
|
|
427
302
|
return FileContext;
|
|
428
|
-
}();
|
|
303
|
+
}(_context.default);
|
|
429
304
|
|
|
430
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2ZpbGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBMRVZFTFMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2ZXJpZnlGaWxlIH0gZnJvbSBcIi4uL3Byb2Nlc3MvdmVyaWZ5XCI7XG5pbXBvcnQgeyBmdXJ0bGVMZXhlciwgZnVydGxlUGFyc2VyIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9mdXJ0bGVcIjtcbmltcG9ydCB7IG5vZGVBc1N0cmluZywgbm9kZXNBc1N0cmluZyB9IGZyb20gXCIuLi91dGlsaXRpZXMvbm9kZVwiO1xuaW1wb3J0IHsgY2hhaW5Db250ZXh0LCBsaW5lSW5kZXhGcm9tTm9kZUFuZFRva2VucyB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5jb25zdCB7IHB1c2ggfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgWyBUUkFDRV9MRVZFTCwgREVCVUdfTEVWRUwsIElORk9fTEVWRUwsIFdBUk5JTkdfTEVWRUwsIEVSUk9SX0xFVkVMIF0gPSBMRVZFTFM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgZmlsZVBhdGgsIGxpbmVJbmRleCwgbm9kZSwgdG9rZW5zLCBwcm9jZWR1cmVzKSB7XG4gICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLmZpbGVQYXRoID0gZmlsZVBhdGg7XG4gICAgdGhpcy5saW5lSW5kZXggPSBsaW5lSW5kZXg7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuXG4gICAgcmV0dXJuIGNoYWluQ29udGV4dCh0aGlzKTtcbiAgfVxuXG4gIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxuXG4gIGdldEZpbGVQYXRoKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVQYXRoO1xuICB9XG5cbiAgZ2V0TGluZUluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLmxpbmVJbmRleDtcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldFRva2VucygpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gIH1cblxuICBnZXRMZXhlcigpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyOyAgLy8vXG5cbiAgICByZXR1cm4gbGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgY29uc3QgcGFyc2VyID0gZnVydGxlUGFyc2VyOyAgLy8vXG5cbiAgICByZXR1cm4gcGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZXMgPSBbXTtcblxuICAgIHB1c2gocHJvY2VkdXJlcywgdGhpcy5wcm9jZWR1cmVzKTtcblxuICAgIGlmIChpbmNsdWRlUmVsZWFzZSkge1xuICAgICAgY29uc3QgcmVsZWFzZUNvbnRleHRQcm9jZWR1cmVzID0gdGhpcy5jb250ZXh0LmdldFByb2NlZHVyZXMoKTtcblxuICAgICAgcHVzaChwcm9jZWR1cmVzLCByZWxlYXNlQ29udGV4dFByb2NlZHVyZXMpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TWV0YUxlbW1hcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhTGVtbWFzID0gW107XG5cbiAgICByZXR1cm4gbWV0YUxlbW1hcztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGFkZFByb2NlZHVyZShwcm9jZWR1cmUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVTdHJpbmcgPSBwcm9jZWR1cmUuZ2V0U3RyaW5nKCk7XG5cbiAgICB0aGlzLnByb2NlZHVyZXMucHVzaChwcm9jZWR1cmUpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIHByb2NlZHVyZSB0byB0aGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlcygpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBub2RlQXNTdHJpbmcobm9kZSkge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVBc1N0cmluZyhub2RlLCB0aGlzLnRva2Vucyk7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgbm9kZXNBc1N0cmluZyhub2Rlcykge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVzQXNTdHJpbmcobm9kZXMsIHRoaXMudG9rZW5zKTtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICB0cmFjZShtZXNzYWdlLCBub2RlID0gbnVsbCkge1xuICAgIGNvbnN0IGxldmVsID0gVFJBQ0VfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UsIG5vZGUpO1xuICB9XG5cbiAgZGVidWcobWVzc2FnZSwgbm9kZSA9IG51bGwpIHtcbiAgICBjb25zdCBsZXZlbCA9IERFQlVHX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlLCBub2RlKTtcbiAgfVxuXG4gIGluZm8obWVzc2FnZSwgbm9kZSA9IG51bGwpIHtcbiAgICBjb25zdCBsZXZlbCA9IElORk9fTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UsIG5vZGUpO1xuICB9XG5cbiAgd2FybmluZyhtZXNzYWdlLCBub2RlID0gbnVsbCkge1xuICAgIGNvbnN0IGxldmVsID0gV0FSTklOR19MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSwgbm9kZSk7XG4gIH1cblxuICBlcnJvcihtZXNzYWdlLCBub2RlID0gbnVsbCkge1xuICAgIGNvbnN0IGxldmVsID0gRVJST1JfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UsIG5vZGUpO1xuICB9XG5cbiAgd3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSwgbm9kZSkge1xuICAgIGNvbnN0IGxpbmVJbmRleCA9IGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRoaXMudG9rZW5zLCB0aGlzLmxpbmVJbmRleCksXG4gICAgICAgICAgZmlsZVBhdGggPSAobGluZUluZGV4ID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZVBhdGggOlxuICAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG5cbiAgICB0aGlzLmNvbnRleHQud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCk7XG5cbiAgICB0aGlzLmxpbmVJbmRleCA9IGxpbmVJbmRleDtcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0KCkge1xuICAgIGNvbnN0IGZpbGVDb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICByZXR1cm4gZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXREZXB0aCgpIHtcbiAgICBsZXQgZGVwdGggPSB0aGlzLmNvbnRleHQuZ2V0RGVwdGgoKTtcblxuICAgIGRlcHRoKys7XG5cbiAgICByZXR1cm4gZGVwdGg7XG4gIH1cblxuICB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICB0aGlzLnByZXBhcmUoKTtcblxuICAgIGlmICh0aGlzLm5vZGUgPT09IG51bGwpIHtcbiAgICAgIHRoaXMud2FybmluZyhgVW5hYmxlIHRvIHZlcmlmeSB0aGUgJyR7dGhpcy5maWxlUGF0aH0nIGZpbGUgYmVjYXVzZSBpdCBjYW5ub3QgYmUgcGFyc2VkLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlYnVnKGBWZXJpZnlpbmcgdGhlICcke3RoaXMuZmlsZVBhdGh9JyBmaWxlLi4uYCk7XG5cbiAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLCAvLy9cbiAgICAgICAgICAgIGZpbGVOb2RlID0gdGhpcy5ub2RlOyAvLy9cblxuICAgICAgdmVyaWZpZXMgPSB2ZXJpZnlGaWxlKGZpbGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgdmVyaWZpZXMgP1xuICAgICAgICB0aGlzLmNvbXBsZXRlKCkgOlxuICAgICAgICAgIHRoaXMuY2xlYXIoKTtcblxuICAgICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICAgIHRoaXMuaW5mbyhgLi4udmVyaWZpZWQgdGhlICcke3RoaXMuZmlsZVBhdGh9JyBmaWxlLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllcztcbiAgfVxuXG4gIHByZXBhcmUoKSB7XG4gICAgaWYgKHRoaXMudG9rZW5zICE9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZmluZEZpbGUodGhpcy5maWxlUGF0aCksXG4gICAgICAgICAgbGV4ZXIgPSB0aGlzLmdldExleGVyKCksXG4gICAgICAgICAgcGFyc2VyID0gdGhpcy5nZXRQYXJzZXIoKSxcbiAgICAgICAgICBjb250ZW50ID0gZmlsZS5nZXRDb250ZW50KCk7XG5cbiAgICB0aGlzLnRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gICAgdGhpcy5ub2RlID0gcGFyc2VyLnBhcnNlKHRoaXMudG9rZW5zKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMubGluZUluZGV4ID0gbnVsbDtcblxuICAgIHRoaXMucHJvY2VkdXJlcyA9IFtdO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgdGhpcy5saW5lSW5kZXggPSBudWxsO1xuICB9XG5cbiAgaW5pdGlhbGlzZShqc29uKSB7XG4gICAgY29uc3QgeyBjb250ZW50IH0gPSBqc29uLFxuICAgICAgICAgIGxleGVyID0gdGhpcy5nZXRMZXhlcigpLFxuICAgICAgICAgIHBhcnNlciA9IHRoaXMuZ2V0UGFyc2VyKCk7XG5cbiAgICB0aGlzLnRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gICAgdGhpcy5ub2RlID0gcGFyc2VyLnBhcnNlKHRoaXMudG9rZW5zKTtcblxuICAgIHRoaXMuY2xlYXIoKTtcblxuICAgIHRoaXMuYWRkUHJvY2VkdXJlcygpO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGZpbGUgPSB0aGlzLmZpbmRGaWxlKHRoaXMuZmlsZVBhdGgpLFxuICAgICAgICAgIGZpbGVQYXRoID0gdGhpcy5maWxlUGF0aCwgLy8vXG4gICAgICAgICAgY29udGVudCA9IGZpbGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBmaWxlUGF0aCxcbiAgICAgICAgICAgIGNvbnRlbnRcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUZpbGUoZmlsZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5nZXRQYXRoKCksXG4gICAgICAgICAgbGluZUluZGV4ID0gbnVsbCxcbiAgICAgICAgICB0b2tlbnMgPSBudWxsLFxuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIHByb2NlZHVyZXMgPSBbXSxcbiAgICAgICAgICBmaWxlQ29udGV4dCA9IG5ldyBGaWxlQ29udGV4dChjb250ZXh0LCBmaWxlUGF0aCwgbGluZUluZGV4LCBub2RlLCB0b2tlbnMsIHByb2NlZHVyZXMpO1xuXG4gICAgcmV0dXJuIGZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21GaWxlUGF0aChmaWxlUGF0aCwgY29udGV4dCkge1xuICAgIGNvbnN0IGxpbmVJbmRleCA9IG51bGwsXG4gICAgICAgICAgdG9rZW5zID0gbnVsbCxcbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBwcm9jZWR1cmVzID0gbnVsbCxcbiAgICAgICAgICBmaWxlQ29udGV4dCA9IG5ldyBGaWxlQ29udGV4dChjb250ZXh0LCBmaWxlUGF0aCwgbGluZUluZGV4LCBub2RlLCB0b2tlbnMsIHByb2NlZHVyZXMpO1xuXG4gICAgcmV0dXJuIGZpbGVDb250ZXh0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiRmlsZUNvbnRleHQiLCJwdXNoIiwiYXJyYXlVdGlsaXRpZXMiLCJMRVZFTFMiLCJUUkFDRV9MRVZFTCIsIkRFQlVHX0xFVkVMIiwiSU5GT19MRVZFTCIsIldBUk5JTkdfTEVWRUwiLCJFUlJPUl9MRVZFTCIsImNvbnRleHQiLCJmaWxlUGF0aCIsImxpbmVJbmRleCIsIm5vZGUiLCJ0b2tlbnMiLCJwcm9jZWR1cmVzIiwiY2hhaW5Db250ZXh0IiwiZ2V0Q29udGV4dCIsImdldEZpbGVQYXRoIiwiZ2V0TGluZUluZGV4IiwiZ2V0Tm9kZSIsImdldFRva2VucyIsImdldExleGVyIiwibGV4ZXIiLCJmdXJ0bGVMZXhlciIsImdldFBhcnNlciIsInBhcnNlciIsImZ1cnRsZVBhcnNlciIsImdldExhYmVscyIsImluY2x1ZGVSZWxlYXNlIiwibGFiZWxzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImdldFJ1bGVzIiwicnVsZXMiLCJnZXRBeGlvbXMiLCJheGlvbXMiLCJnZXRMZW1tYXMiLCJsZW1tYXMiLCJnZXRUaGVvcmVtcyIsInRoZW9yZW1zIiwiZ2V0UHJvY2VkdXJlcyIsInJlbGVhc2VDb250ZXh0UHJvY2VkdXJlcyIsImdldE1ldGFMZW1tYXMiLCJtZXRhTGVtbWFzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRUeXBlUHJlZml4ZXMiLCJ0eXBlUHJlZml4ZXMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRNZXRhdGhlb3JlbXMiLCJtZXRhdGhlb3JlbXMiLCJnZXRNZXRhdmFyaWFibGVzIiwibWV0YXZhcmlhYmxlcyIsImFkZFByb2NlZHVyZSIsInByb2NlZHVyZSIsInByb2NlZHVyZVN0cmluZyIsImdldFN0cmluZyIsImRlYnVnIiwiZ2V0VmFyaWFibGVzIiwidmFyaWFibGVzIiwibm9kZUFzU3RyaW5nIiwic3RyaW5nIiwibm9kZXNBc1N0cmluZyIsIm5vZGVzIiwidHJhY2UiLCJtZXNzYWdlIiwibGV2ZWwiLCJ3cml0ZVRvTG9nIiwiaW5mbyIsIndhcm5pbmciLCJlcnJvciIsImxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zIiwiZ2V0RmlsZUNvbnRleHQiLCJmaWxlQ29udGV4dCIsImdldERlcHRoIiwiZGVwdGgiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsInByZXBhcmUiLCJmaWxlTm9kZSIsInZlcmlmeUZpbGUiLCJjb21wbGV0ZSIsImNsZWFyIiwiZmlsZSIsImZpbmRGaWxlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJ0b2tlbmlzZSIsInBhcnNlIiwiaW5pdGlhbGlzZSIsImpzb24iLCJhZGRQcm9jZWR1cmVzIiwidG9KU09OIiwiZnJvbUZpbGUiLCJnZXRQYXRoIiwiZnJvbUZpbGVQYXRoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQWFxQkE7Ozt5QkFYVTt5QkFFUjtzQkFDSTtzQkFDZTtvQkFDRTt1QkFDYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXpELElBQU0sQUFBRUMsT0FBU0MseUJBQWMsQ0FBdkJELE1BQ3FFRSwyQkFBQUEsaUJBQU0sTUFBM0VDLGNBQXFFRCxZQUF4REUsY0FBd0RGLFlBQTNDRyxhQUEyQ0gsWUFBL0JJLGdCQUErQkosWUFBaEJLLGNBQWdCTDtBQUU5RCxJQUFBLEFBQU1ILDRCQUFOO2FBQU1BLFlBQ1BTLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLElBQUksRUFBRUMsTUFBTSxFQUFFQyxVQUFVO2dDQUQvQ2Q7UUFFakIsSUFBSSxDQUFDUyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFFbEIsT0FBT0MsSUFBQUEscUJBQVksRUFBQyxJQUFJOztrQkFUUGY7O1lBWW5CZ0IsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDUCxPQUFPO1lBQ3JCOzs7WUFFQVEsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDUCxRQUFRO1lBQ3RCOzs7WUFFQVEsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDUCxTQUFTO1lBQ3ZCOzs7WUFFQVEsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDUCxJQUFJO1lBQ2xCOzs7WUFFQVEsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDUCxNQUFNO1lBQ3BCOzs7WUFFQVEsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLFFBQVFDLG1CQUFXLEVBQUcsR0FBRztnQkFFL0IsT0FBT0Q7WUFDVDs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxTQUFTQyxvQkFBWSxFQUFHLEdBQUc7Z0JBRWpDLE9BQU9EO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUE7b0JBQVVDLGlCQUFBQSxpRUFBaUI7Z0JBQ3pCLElBQU1DLFNBQVMsRUFBRTtnQkFFakIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtvQkFBU0YsaUJBQUFBLGlFQUFpQjtnQkFDeEIsSUFBTUcsUUFBUSxFQUFFO2dCQUVoQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO29CQUFTSixpQkFBQUEsaUVBQWlCO2dCQUN4QixJQUFNSyxRQUFRLEVBQUU7Z0JBRWhCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7b0JBQVVOLGlCQUFBQSxpRUFBaUI7Z0JBQ3pCLElBQU1PLFNBQVMsRUFBRTtnQkFFakIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtvQkFBVVIsaUJBQUFBLGlFQUFpQjtnQkFDekIsSUFBTVMsU0FBUyxFQUFFO2dCQUVqQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO29CQUFZVixpQkFBQUEsaUVBQWlCO2dCQUMzQixJQUFNVyxXQUFXLEVBQUU7Z0JBRW5CLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7b0JBQWNaLGlCQUFBQSxpRUFBaUI7Z0JBQzdCLElBQU1kLGFBQWEsRUFBRTtnQkFFckJiLEtBQUthLFlBQVksSUFBSSxDQUFDQSxVQUFVO2dCQUVoQyxJQUFJYyxnQkFBZ0I7b0JBQ2xCLElBQU1hLDJCQUEyQixJQUFJLENBQUNoQyxPQUFPLENBQUMrQixhQUFhO29CQUUzRHZDLEtBQUthLFlBQVkyQjtnQkFDbkI7Z0JBRUEsT0FBTzNCO1lBQ1Q7OztZQUVBNEIsS0FBQUE7bUJBQUFBLFNBQUFBO29CQUFjZCxpQkFBQUEsaUVBQWlCO2dCQUM3QixJQUFNZSxhQUFhLEVBQUU7Z0JBRXJCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7b0JBQWVoQixpQkFBQUEsaUVBQWlCO2dCQUM5QixJQUFNaUIsY0FBYyxFQUFFO2dCQUV0QixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO29CQUFlbEIsaUJBQUFBLGlFQUFpQjtnQkFDOUIsSUFBTW1CLGNBQWMsRUFBRTtnQkFFdEIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtvQkFBZ0JwQixpQkFBQUEsaUVBQWlCO2dCQUMvQixJQUFNcUIsZUFBZSxFQUFFO2dCQUV2QixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO29CQUFnQnRCLGlCQUFBQSxpRUFBaUI7Z0JBQy9CLElBQU11QixlQUFlLEVBQUU7Z0JBRXZCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7b0JBQWdCeEIsaUJBQUFBLGlFQUFpQjtnQkFDL0IsSUFBTXlCLGVBQWUsRUFBRTtnQkFFdkIsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtvQkFBaUIxQixpQkFBQUEsaUVBQWlCO2dCQUNoQyxJQUFNMkIsZ0JBQWdCLEVBQUU7Z0JBRXhCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsYUFBYUMsU0FBUztnQkFDcEIsSUFBTUMsa0JBQWtCRCxVQUFVRSxTQUFTO2dCQUUzQyxJQUFJLENBQUM3QyxVQUFVLENBQUNiLElBQUksQ0FBQ3dEO2dCQUVyQixJQUFJLENBQUNHLEtBQUssQ0FBQyxBQUFDLGNBQTZCLE9BQWhCRixpQkFBZ0I7WUFDM0M7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsWUFBWSxFQUFFO2dCQUVwQixPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGFBQWFuRCxJQUFJO2dCQUNmLElBQU1vRCxTQUFTRCxJQUFBQSxrQkFBWSxFQUFDbkQsTUFBTSxJQUFJLENBQUNDLE1BQU07Z0JBRTdDLE9BQU9tRDtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWNDLEtBQUs7Z0JBQ2pCLElBQU1GLFNBQVNDLElBQUFBLG1CQUFhLEVBQUNDLE9BQU8sSUFBSSxDQUFDckQsTUFBTTtnQkFFL0MsT0FBT21EO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTUMsT0FBTztvQkFBRXhELE9BQUFBLGlFQUFPO2dCQUNwQixJQUFNeUQsUUFBUWpFO2dCQUVkLElBQUksQ0FBQ2tFLFVBQVUsQ0FBQ0QsT0FBT0QsU0FBU3hEO1lBQ2xDOzs7WUFFQWdELEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNUSxPQUFPO29CQUFFeEQsT0FBQUEsaUVBQU87Z0JBQ3BCLElBQU15RCxRQUFRaEU7Z0JBRWQsSUFBSSxDQUFDaUUsVUFBVSxDQUFDRCxPQUFPRCxTQUFTeEQ7WUFDbEM7OztZQUVBMkQsS0FBQUE7bUJBQUFBLFNBQUFBLEtBQUtILE9BQU87b0JBQUV4RCxPQUFBQSxpRUFBTztnQkFDbkIsSUFBTXlELFFBQVEvRDtnQkFFZCxJQUFJLENBQUNnRSxVQUFVLENBQUNELE9BQU9ELFNBQVN4RDtZQUNsQzs7O1lBRUE0RCxLQUFBQTttQkFBQUEsU0FBQUEsUUFBUUosT0FBTztvQkFBRXhELE9BQUFBLGlFQUFPO2dCQUN0QixJQUFNeUQsUUFBUTlEO2dCQUVkLElBQUksQ0FBQytELFVBQVUsQ0FBQ0QsT0FBT0QsU0FBU3hEO1lBQ2xDOzs7WUFFQTZELEtBQUFBO21CQUFBQSxTQUFBQSxNQUFNTCxPQUFPO29CQUFFeEQsT0FBQUEsaUVBQU87Z0JBQ3BCLElBQU15RCxRQUFRN0Q7Z0JBRWQsSUFBSSxDQUFDOEQsVUFBVSxDQUFDRCxPQUFPRCxTQUFTeEQ7WUFDbEM7OztZQUVBMEQsS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVdELEtBQUssRUFBRUQsT0FBTyxFQUFFeEQsSUFBSTtnQkFDN0IsSUFBTUQsWUFBWStELElBQUFBLG1DQUEwQixFQUFDOUQsTUFBTSxJQUFJLENBQUNDLE1BQU0sRUFBRSxJQUFJLENBQUNGLFNBQVMsR0FDeEVELFdBQVcsQUFBQ0MsY0FBYyxPQUNiLElBQUksQ0FBQ0QsUUFBUSxHQUNYO2dCQUVyQixJQUFJLENBQUNELE9BQU8sQ0FBQzZELFVBQVUsQ0FBQ0QsT0FBT0QsU0FBUzFELFVBQVVDO2dCQUVsRCxJQUFJLENBQUNBLFNBQVMsR0FBR0E7WUFDbkI7OztZQUVBZ0UsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGNBQWMsSUFBSSxFQUFFLEdBQUc7Z0JBRTdCLE9BQU9BO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBSUMsUUFBUSxJQUFJLENBQUNyRSxPQUFPLENBQUNvRSxRQUFRO2dCQUVqQ0M7Z0JBRUEsT0FBT0E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJQyxXQUFXO2dCQUVmLElBQUksQ0FBQ0MsT0FBTztnQkFFWixJQUFJLElBQUksQ0FBQ3JFLElBQUksS0FBSyxNQUFNO29CQUN0QixJQUFJLENBQUM0RCxPQUFPLENBQUMsQUFBQyx5QkFBc0MsT0FBZCxJQUFJLENBQUM5RCxRQUFRLEVBQUM7Z0JBQ3RELE9BQU87b0JBQ0wsSUFBSSxDQUFDa0QsS0FBSyxDQUFDLEFBQUMsa0JBQStCLE9BQWQsSUFBSSxDQUFDbEQsUUFBUSxFQUFDO29CQUUzQyxJQUFNRCxVQUFVLElBQUksRUFDZHlFLFdBQVcsSUFBSSxDQUFDdEUsSUFBSSxFQUFFLEdBQUc7b0JBRS9Cb0UsV0FBV0csSUFBQUEsa0JBQVUsRUFBQ0QsVUFBVXpFO29CQUVoQ3VFLFdBQ0UsSUFBSSxDQUFDSSxRQUFRLEtBQ1gsSUFBSSxDQUFDQyxLQUFLO29CQUVkLElBQUlMLFVBQVU7d0JBQ1osSUFBSSxDQUFDVCxJQUFJLENBQUMsQUFBQyxvQkFBaUMsT0FBZCxJQUFJLENBQUM3RCxRQUFRLEVBQUM7b0JBQzlDO2dCQUNGO2dCQUVBLE9BQU9zRTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUksSUFBSSxDQUFDcEUsTUFBTSxLQUFLLE1BQU07b0JBQ3hCO2dCQUNGO2dCQUVBLElBQU15RSxPQUFPLElBQUksQ0FBQ0MsUUFBUSxDQUFDLElBQUksQ0FBQzdFLFFBQVEsR0FDbENZLFFBQVEsSUFBSSxDQUFDRCxRQUFRLElBQ3JCSSxTQUFTLElBQUksQ0FBQ0QsU0FBUyxJQUN2QmdFLFVBQVVGLEtBQUtHLFVBQVU7Z0JBRS9CLElBQUksQ0FBQzVFLE1BQU0sR0FBR1MsTUFBTW9FLFFBQVEsQ0FBQ0Y7Z0JBRTdCLElBQUksQ0FBQzVFLElBQUksR0FBR2EsT0FBT2tFLEtBQUssQ0FBQyxJQUFJLENBQUM5RSxNQUFNO1lBQ3RDOzs7WUFFQXdFLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJLENBQUMxRSxTQUFTLEdBQUc7Z0JBRWpCLElBQUksQ0FBQ0csVUFBVSxHQUFHLEVBQUU7WUFDdEI7OztZQUVBc0UsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUksQ0FBQ3pFLFNBQVMsR0FBRztZQUNuQjs7O1lBRUFpRixLQUFBQTttQkFBQUEsU0FBQUEsV0FBV0MsSUFBSTtnQkFDYixJQUFNLEFBQUVMLFVBQVlLLEtBQVpMLFNBQ0ZsRSxRQUFRLElBQUksQ0FBQ0QsUUFBUSxJQUNyQkksU0FBUyxJQUFJLENBQUNELFNBQVM7Z0JBRTdCLElBQUksQ0FBQ1gsTUFBTSxHQUFHUyxNQUFNb0UsUUFBUSxDQUFDRjtnQkFFN0IsSUFBSSxDQUFDNUUsSUFBSSxHQUFHYSxPQUFPa0UsS0FBSyxDQUFDLElBQUksQ0FBQzlFLE1BQU07Z0JBRXBDLElBQUksQ0FBQ3dFLEtBQUs7Z0JBRVYsSUFBSSxDQUFDUyxhQUFhO1lBQ3BCOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1ULE9BQU8sSUFBSSxDQUFDQyxRQUFRLENBQUMsSUFBSSxDQUFDN0UsUUFBUSxHQUNsQ0EsV0FBVyxJQUFJLENBQUNBLFFBQVEsRUFDeEI4RSxVQUFVRixLQUFLRyxVQUFVLElBQ3pCSSxPQUFPO29CQUNMbkYsVUFBQUE7b0JBQ0E4RSxTQUFBQTtnQkFDRjtnQkFFTixPQUFPSztZQUNUOzs7O1lBRU9HLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNWLElBQUksRUFBRTdFLE9BQU87Z0JBQzNCLElBQU1DLFdBQVc0RSxLQUFLVyxPQUFPLElBQ3ZCdEYsWUFBWSxNQUNaRSxTQUFTLE1BQ1RELE9BQU8sTUFDUEUsYUFBYSxFQUFFLEVBQ2Y4RCxjQUFjLElBN1NINUUsWUE2U21CUyxTQUFTQyxVQUFVQyxXQUFXQyxNQUFNQyxRQUFRQztnQkFFaEYsT0FBTzhEO1lBQ1Q7OztZQUVPc0IsS0FBQUE7bUJBQVAsU0FBT0EsYUFBYXhGLFFBQVEsRUFBRUQsT0FBTztnQkFDbkMsSUFBTUUsWUFBWSxNQUNaRSxTQUFTLE1BQ1RELE9BQU8sTUFDUEUsYUFBYSxNQUNiOEQsY0FBYyxJQXZUSDVFLFlBdVRtQlMsU0FBU0MsVUFBVUMsV0FBV0MsTUFBTUMsUUFBUUM7Z0JBRWhGLE9BQU84RDtZQUNUOzs7V0ExVG1CNUUifQ==
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2ZpbGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBDb250ZXh0IGZyb20gJy4uL2NvbnRleHQnO1xuXG5pbXBvcnQgeyBsaW5lSW5kZXhGcm9tTm9kZUFuZFRva2VucyB9IGZyb20gXCIuLi91dGlsaXRpZXMvbGluZUluZGV4XCI7XG5pbXBvcnQgeyBub2RlQXNTdHJpbmcsIG5vZGVzQXNTdHJpbmcgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25vZGVcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsZUNvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSkge1xuICAgIHN1cGVyKGNvbnRleHQpO1xuXG4gICAgdGhpcy5maWxlUGF0aCA9IGZpbGVQYXRoO1xuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gIH1cblxuICBnZXRGaWxlUGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlUGF0aDtcbiAgfVxuXG4gIGdldFRva2VucygpIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gIH1cblxuICBnZXROb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cblxuICBicmVhayhub2RlKSB7XG4gICAgY29uc3QgbGluZUluZGV4ID0gbGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMobm9kZSwgdGhpcy50b2tlbnMpO1xuXG4gICAgdGhpcy5jb250ZXh0LmJyZWFrKHRoaXMuZmlsZVBhdGgsIGxpbmVJbmRleCk7XG4gIH1cblxuICB3cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKSB7XG4gICAgdGhpcy5jb250ZXh0LndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UsIHRoaXMuZmlsZVBhdGgpO1xuICB9XG5cbiAgbm9kZUFzU3RyaW5nKG5vZGUpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBub2RlQXNTdHJpbmcobm9kZSwgdGhpcy50b2tlbnMpO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIG5vZGVzQXNTdHJpbmcobm9kZXMpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBub2Rlc0FzU3RyaW5nKG5vZGVzLCB0aGlzLnRva2Vucyk7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllcyA9IGZhbHNlO1xuXG4gICAgdGhpcy5wcmVwYXJlKCk7XG5cbiAgICBpZiAodGhpcy5ub2RlID09PSBudWxsKSB7XG4gICAgICB0aGlzLndhcm5pbmcoYFVuYWJsZSB0byB2ZXJpZnkgdGhlICcke3RoaXMuZmlsZVBhdGh9JyBmaWxlIGJlY2F1c2UgaXQgY2Fubm90IGJlIHBhcnNlZC5gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWJ1ZyhgVmVyaWZ5aW5nIHRoZSAnJHt0aGlzLmZpbGVQYXRofScgZmlsZS4uLmApO1xuXG4gICAgICBjb25zdCB7IHZlcmlmeUZpbGUgfSA9IHRoaXMuY29uc3RyY3V0b3IsXG4gICAgICAgICAgICBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgICBmaWxlTm9kZSA9IHRoaXMubm9kZTsgLy8vXG5cbiAgICAgIHZlcmlmaWVzID0gdmVyaWZ5RmlsZShmaWxlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIHZlcmlmaWVzID9cbiAgICAgICAgdGhpcy5jb21wbGV0ZSgpIDpcbiAgICAgICAgICB0aGlzLmNsZWFyKCk7XG5cbiAgICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgICB0aGlzLmluZm8oYC4uLnZlcmlmaWVkIHRoZSAnJHt0aGlzLmZpbGVQYXRofScgZmlsZS5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH1cblxuICBwcmVwYXJlKCkge1xuICAgIGlmICh0aGlzLnRva2VucyAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbGV4ZXIsIHBhcnNlciB9ID0gdGhpcy5jb25zdHJ1Y3RvcixcbiAgICAgICAgICBmaWxlID0gdGhpcy5maW5kRmlsZSh0aGlzLmZpbGVQYXRoKSxcbiAgICAgICAgICBjb250ZW50ID0gZmlsZS5nZXRDb250ZW50KCk7XG5cbiAgICB0aGlzLnRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gICAgdGhpcy5ub2RlID0gcGFyc2VyLnBhcnNlKHRoaXMudG9rZW5zKTtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMucHJvY2VkdXJlcyA9IFtdO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgLy8vXG4gIH1cblxuICBpbml0aWFsaXNlKGpzb24pIHtcbiAgICBjb25zdCB7IGNvbnRlbnQgfSA9IGpzb24sXG4gICAgICAgICAgbGV4ZXIgPSB0aGlzLmdldExleGVyKCksXG4gICAgICAgICAgcGFyc2VyID0gdGhpcy5nZXRQYXJzZXIoKTtcblxuICAgIHRoaXMudG9rZW5zID0gbGV4ZXIudG9rZW5pc2UoY29udGVudCk7XG5cbiAgICB0aGlzLm5vZGUgPSBwYXJzZXIucGFyc2UodGhpcy50b2tlbnMpO1xuXG4gICAgdGhpcy5jbGVhcigpO1xuXG4gICAgdGhpcy5hZGRQcm9jZWR1cmVzKCk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZmluZEZpbGUodGhpcy5maWxlUGF0aCksXG4gICAgICAgICAgZmlsZVBhdGggPSB0aGlzLmZpbGVQYXRoLCAvLy9cbiAgICAgICAgICBjb250ZW50ID0gZmlsZS5nZXRDb250ZW50KCksXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGZpbGVQYXRoLFxuICAgICAgICAgICAgY29udGVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRmlsZShDbGFzcywgZmlsZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcbiAgICAgICAgICB0b2tlbnMgPSBudWxsLFxuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksIC8vL1xuICAgICAgICAgIGZpbGVDb250ZXh0ID0gbmV3IENsYXNzKGNvbnRleHQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gZmlsZUNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbUZpbGVQYXRoKENsYXNzLCBmaWxlUGF0aCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgdG9rZW5zID0gbnVsbCxcbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBjb250ZXh0ID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLCAvLy9cbiAgICAgICAgICBmaWxlQ29udGV4dCA9IG5ldyBDbGFzcyhjb250ZXh0LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgcmV0dXJuIGZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21GaWxlUGF0aFRva2Vuc0FuZE5vZGUoQ2xhc3MsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksIC8vL1xuICAgICAgICAgIGZpbGVDb250ZXh0ID0gbmV3IENsYXNzKGNvbnRleHQsIGZpbGVQYXRoLCB0b2tlbnMsIG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICByZXR1cm4gZmlsZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGaWxlQ29udGV4dCIsImNvbnRleHQiLCJmaWxlUGF0aCIsInRva2VucyIsIm5vZGUiLCJnZXRGaWxlUGF0aCIsImdldFRva2VucyIsImdldE5vZGUiLCJicmVhayIsImxpbmVJbmRleCIsImxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zIiwid3JpdGVUb0xvZyIsImxldmVsIiwibWVzc2FnZSIsIm5vZGVBc1N0cmluZyIsInN0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJub2RlcyIsInZlcmlmeSIsInZlcmlmaWVzIiwicHJlcGFyZSIsIndhcm5pbmciLCJkZWJ1ZyIsInZlcmlmeUZpbGUiLCJjb25zdHJjdXRvciIsImZpbGVOb2RlIiwiY29tcGxldGUiLCJjbGVhciIsImluZm8iLCJsZXhlciIsInBhcnNlciIsImZpbGUiLCJmaW5kRmlsZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwidG9rZW5pc2UiLCJwYXJzZSIsInByb2NlZHVyZXMiLCJpbml0aWFsaXNlIiwianNvbiIsImdldExleGVyIiwiZ2V0UGFyc2VyIiwiYWRkUHJvY2VkdXJlcyIsInRvSlNPTiIsImZyb21GaWxlIiwiQ2xhc3MiLCJyZW1haW5pbmdBcmd1bWVudHMiLCJnZXRQYXRoIiwicG9wIiwiZmlsZUNvbnRleHQiLCJmcm9tRmlsZVBhdGgiLCJmcm9tRmlsZVBhdGhUb2tlbnNBbmROb2RlIiwiQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFPcUJBOzs7OERBTEQ7eUJBRXVCO29CQUNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdCLElBQUEsQUFBTUEsNEJBQU47Y0FBTUE7YUFBQUEsWUFDUEMsT0FBTyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsSUFBSTtnQ0FEeEJKOztnQkFFakIsa0JBRmlCQTtZQUVYQzs7UUFFTixNQUFLQyxRQUFRLEdBQUdBO1FBQ2hCLE1BQUtDLE1BQU0sR0FBR0E7UUFDZCxNQUFLQyxJ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
|