occam-verify-cli 0.0.1266 → 0.0.1268
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/lib/dom/declaration/type.js +7 -9
- package/lib/dom/declaration/variable.js +24 -39
- package/lib/dom/type.js +2 -2
- package/lib/utilities/json.js +13 -1
- package/package.json +1 -1
- package/src/dom/declaration/type.js +6 -11
- package/src/dom/declaration/variable.js +28 -45
- package/src/dom/type.js +1 -1
- package/src/utilities/json.js +26 -10
|
@@ -129,27 +129,25 @@ var _default = (0, _dom.domAssigned)((_TypeDeclaration = /*#__PURE__*/ function(
|
|
|
129
129
|
key: "verifyType",
|
|
130
130
|
value: function verifyType(type) {
|
|
131
131
|
var typeVerified = false;
|
|
132
|
-
var
|
|
133
|
-
this.fileContext.trace("Verifying the '".concat(
|
|
134
|
-
var
|
|
132
|
+
var typeName = type.getName();
|
|
133
|
+
this.fileContext.trace("Verifying the '".concat(typeName, "' type..."));
|
|
134
|
+
var typePresent = this.fileContext.isTypePresentByTypeName(typeName);
|
|
135
135
|
if (typePresent) {
|
|
136
|
-
|
|
137
|
-
this.fileContext.debug("The type '".concat(typeString1, "' is not present."));
|
|
136
|
+
this.fileContext.debug("The type '".concat(typeName, "' is not present."));
|
|
138
137
|
} else {
|
|
139
138
|
var superType;
|
|
140
139
|
superType = type.getSuperType();
|
|
141
140
|
var superTypeName = superType.getName();
|
|
142
141
|
superType = this.fileContext.findTypeByTypeName(superTypeName);
|
|
143
142
|
if (superType === null) {
|
|
144
|
-
|
|
145
|
-
this.fileContext.debug("The super-type '".concat(superTypeString, "' is not present."));
|
|
143
|
+
this.fileContext.debug("The super-type '".concat(superTypeName, "' is not present."));
|
|
146
144
|
} else {
|
|
147
145
|
type.setSuperType(superType);
|
|
148
146
|
typeVerified = true;
|
|
149
147
|
}
|
|
150
148
|
}
|
|
151
149
|
if (typeVerified) {
|
|
152
|
-
this.fileContext.debug("...typeVerified the '".concat(
|
|
150
|
+
this.fileContext.debug("...typeVerified the '".concat(typeName, "' type."));
|
|
153
151
|
}
|
|
154
152
|
return typeVerified;
|
|
155
153
|
}
|
|
@@ -166,4 +164,4 @@ var _default = (0, _dom.domAssigned)((_TypeDeclaration = /*#__PURE__*/ function(
|
|
|
166
164
|
return TypeDeclaration;
|
|
167
165
|
}(), _define_property(_TypeDeclaration, "name", "TypeDeclaration"), _TypeDeclaration));
|
|
168
166
|
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vZGVjbGFyYXRpb24vdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vLi4vZG9tXCI7XG5cbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uLy4uL2RvbVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBUeXBlRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3RvcihmaWxlQ29udGV4dCwgdHlwZSkge1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7IHJldHVybiB0aGlzLnR5cGUuZ2V0U3RyaW5nKCk7IH1cblxuICB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIHRoaXMuZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZURlY2xhcmF0aW9uU3RyaW5nfScgdHlwZSBkZWNsYXJhdGlvbi4uLmApO1xuXG4gICAgY29uc3QgdHlwZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlUeXBlKHRoaXMudHlwZSk7XG5cbiAgICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmFkZFR5cGUodGhpcy50eXBlKTtcblxuICAgICAgdmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVEZWNsYXJhdGlvblN0cmluZ30nIHR5cGUgZGVjbGFyYXRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VHlwZSh0eXBlKSB7XG4gICAgbGV0IHR5cGVWZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgdHlwZU5hbWUgPSB0eXBlLmdldE5hbWUoKTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlUHJlc2VudCA9IHRoaXMuZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgaWYgKHR5cGVQcmVzZW50KSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGBUaGUgdHlwZSAnJHt0eXBlTmFtZX0nIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgc3VwZXJUeXBlO1xuXG4gICAgICBzdXBlclR5cGUgPSB0eXBlLmdldFN1cGVyVHlwZSgpO1xuXG4gICAgICBjb25zdCBzdXBlclR5cGVOYW1lID0gc3VwZXJUeXBlLmdldE5hbWUoKTtcblxuICAgICAgc3VwZXJUeXBlID0gdGhpcy5maWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUoc3VwZXJUeXBlTmFtZSk7XG5cbiAgICAgIGlmIChzdXBlclR5cGUgPT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgVGhlIHN1cGVyLXR5cGUgJyR7c3VwZXJUeXBlTmFtZX0nIGlzIG5vdCBwcmVzZW50LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHlwZS5zZXRTdXBlclR5cGUoc3VwZXJUeXBlKTtcblxuICAgICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnR5cGVWZXJpZmllZCB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlVmVyaWZpZWQ7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZURlY2xhcmF0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBUeXBlIH0gPSBkb20sXG4gICAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHR5cGVEZWNsYXJhdGlvbiA9IG5ldyBUeXBlRGVjbGFyYXRpb24oZmlsZUNvbnRleHQsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHR5cGVEZWNsYXJhdGlvbjtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZG9tQXNzaWduZWQiLCJUeXBlRGVjbGFyYXRpb24iLCJmaWxlQ29udGV4dCIsInR5cGUiLCJnZXRGaWxlQ29udGV4dCIsImdldFR5cGUiLCJnZXRTdHJpbmciLCJ2ZXJpZnkiLCJ2ZXJpZmllZCIsInR5cGVEZWNsYXJhdGlvblN0cmluZyIsInRyYWNlIiwidHlwZVZlcmlmaWVkIiwidmVyaWZ5VHlwZSIsImFkZFR5cGUiLCJkZWJ1ZyIsInR5cGVOYW1lIiwiZ2V0TmFtZSIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJzdXBlclR5cGUiLCJnZXRTdXBlclR5cGUiLCJzdXBlclR5cGVOYW1lIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwic2V0U3VwZXJUeXBlIiwiZnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlIiwiVHlwZSIsImRvbSIsInR5cGVEZWNsYXJhdGlvbiIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7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
|
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../../dom"));
|
|
12
12
|
var _query = require("../../utilities/query");
|
|
13
|
+
var _type = require("../type");
|
|
13
14
|
var _name = require("../../utilities/name");
|
|
14
15
|
function _class_call_check(instance, Constructor) {
|
|
15
16
|
if (!(instance instanceof Constructor)) {
|
|
@@ -120,13 +121,15 @@ var _default = (0, _dom.domAssigned)((_VariableDeclaration = /*#__PURE__*/ funct
|
|
|
120
121
|
this.fileContext.trace("Verifying the '".concat(variableDeclarationString, "' variable declaration..."));
|
|
121
122
|
var variableVerified = this.verifyVariable(this.variable);
|
|
122
123
|
if (variableVerified) {
|
|
123
|
-
var
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
124
|
+
var type;
|
|
125
|
+
type = this.variable.getType();
|
|
126
|
+
var typeVerified = this.verifyType(type);
|
|
127
|
+
if (typeVerified) {
|
|
128
|
+
var typeName = type.getName();
|
|
129
|
+
type = this.fileContext.findTypeByTypeName(typeName);
|
|
130
|
+
this.variable.setType(type);
|
|
131
|
+
this.fileContext.addVariable(this.variable);
|
|
132
|
+
verified = true;
|
|
130
133
|
}
|
|
131
134
|
}
|
|
132
135
|
if (verified) {
|
|
@@ -139,16 +142,20 @@ var _default = (0, _dom.domAssigned)((_VariableDeclaration = /*#__PURE__*/ funct
|
|
|
139
142
|
key: "verifyType",
|
|
140
143
|
value: function verifyType(type) {
|
|
141
144
|
var typeVerified = false;
|
|
142
|
-
|
|
143
|
-
this.fileContext.trace("Verifying the '".concat(typeName, "' type..."));
|
|
144
|
-
var typePresent = this.fileContext.isTypePresentByTypeName(typeName);
|
|
145
|
-
if (!typePresent) {
|
|
146
|
-
this.fileContext.debug("The '".concat(typeName, "' type is not present."));
|
|
147
|
-
} else {
|
|
145
|
+
if (type === _type.objectType) {
|
|
148
146
|
typeVerified = true;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
this.fileContext.
|
|
147
|
+
} else {
|
|
148
|
+
var typeName = type.getName();
|
|
149
|
+
this.fileContext.trace("Verifying the '".concat(typeName, "' type..."));
|
|
150
|
+
var typePresent = this.fileContext.isTypePresentByTypeName(typeName);
|
|
151
|
+
if (!typePresent) {
|
|
152
|
+
this.fileContext.debug("The '".concat(typeName, "' type is not present."));
|
|
153
|
+
} else {
|
|
154
|
+
typeVerified = true;
|
|
155
|
+
}
|
|
156
|
+
if (typeVerified) {
|
|
157
|
+
this.fileContext.debug("...verified the '".concat(typeName, "' type."));
|
|
158
|
+
}
|
|
152
159
|
}
|
|
153
160
|
return typeVerified;
|
|
154
161
|
}
|
|
@@ -170,28 +177,6 @@ var _default = (0, _dom.domAssigned)((_VariableDeclaration = /*#__PURE__*/ funct
|
|
|
170
177
|
}
|
|
171
178
|
return variableVerified;
|
|
172
179
|
}
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
key: "verifyMetavariable",
|
|
176
|
-
value: function verifyMetavariable(metavariable) {
|
|
177
|
-
var metavariableVerified;
|
|
178
|
-
if (metavariable === null) {
|
|
179
|
-
metavariableVerified = true;
|
|
180
|
-
} else {
|
|
181
|
-
var metavariableName = metavariable.getName(); ///
|
|
182
|
-
this.fileContext.trace("Verifying the '".concat(metavariableName, "' metavariable..."));
|
|
183
|
-
var metavariablePresent = this.fileContext.isMetavariablePresentByMetavariableName(metavariableName);
|
|
184
|
-
if (metavariablePresent) {
|
|
185
|
-
this.fileContext.debug("A '".concat(metavariableName, "' variable is already present."));
|
|
186
|
-
} else {
|
|
187
|
-
metavariableVerified = true;
|
|
188
|
-
}
|
|
189
|
-
if (metavariableVerified) {
|
|
190
|
-
this.fileContext.debug("...verified the '".concat(metavariableName, "' metavariable."));
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
return metavariableVerified;
|
|
194
|
-
}
|
|
195
180
|
}
|
|
196
181
|
], [
|
|
197
182
|
{
|
|
@@ -216,4 +201,4 @@ function stringFromVariableAndTypeNode(variable, typeNode) {
|
|
|
216
201
|
return string;
|
|
217
202
|
}
|
|
218
203
|
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vZGVjbGFyYXRpb24vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uLy4uL2RvbVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi8uLi9kb21cIjtcbmltcG9ydCB7IHR5cGVOYW1lRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9uYW1lXCI7XG5cbmNvbnN0IHR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvbi90eXBlXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBWYXJpYWJsZURlY2xhcmF0aW9uIHtcbiAgY29uc3RydWN0b3IoZmlsZUNvbnRleHQsIHN0cmluZywgdmFyaWFibGUpIHtcbiAgICB0aGlzLmZpbGVDb250ZXh0ID0gZmlsZUNvbnRleHQ7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgdGhpcy5maWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nfScgdmFyaWFibGUgZGVjbGFyYXRpb24uLi5gKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVZhcmlhYmxlKHRoaXMudmFyaWFibGUpO1xuXG4gICAgaWYgKHZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZSA9IHRoaXMudmFyaWFibGUuZ2V0TWV0YXZhcmlhYmxlKCksXG4gICAgICAgICAgICBtZXRhdmFyaWFibGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5TWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSk7XG5cbiAgICAgIGlmIChtZXRhdmFyaWFibGVWZXJpZmllZCkge1xuICAgICAgICBjb25zdCB0eXBlID0gdGhpcy52YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgICAgIHR5cGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VHlwZSh0eXBlKTtcblxuICAgICAgICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgICAgICAgdGhpcy5maWxlQ29udGV4dC5hZGRWYXJpYWJsZSh0aGlzLnZhcmlhYmxlKTtcblxuICAgICAgICAgIHZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyB2YXJpYWJsZSBkZWNsYXJhdGlvbi5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlUeXBlKHR5cGUpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVQcmVzZW50ID0gdGhpcy5maWxlQ29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICBpZiAoIXR5cGVQcmVzZW50KSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZU5hbWV9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVZhcmlhYmxlKHZhcmlhYmxlKSB7XG4gICAgbGV0ICB2YXJpYWJsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gdGhpcy5maWxlQ29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVOYW1lfScgdmFyaWFibGUgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIHZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiAgdmFyaWFibGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeU1ldGF2YXJpYWJsZShtZXRhdmFyaWFibGUpIHtcbiAgICBsZXQgbWV0YXZhcmlhYmxlVmVyaWZpZWQ7XG5cbiAgICBpZiAobWV0YXZhcmlhYmxlID09PSBudWxsKSB7XG4gICAgICBtZXRhdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGUuZ2V0TmFtZSgpOyAvLy9cblxuICAgICAgdGhpcy5maWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHttZXRhdmFyaWFibGVOYW1lfScgbWV0YXZhcmlhYmxlLi4uYCk7XG5cbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZVByZXNlbnQgPSB0aGlzLmZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgQSAnJHttZXRhdmFyaWFibGVOYW1lfScgdmFyaWFibGUgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWV0YXZhcmlhYmxlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAobWV0YXZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgICAgdGhpcy5maWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke21ldGF2YXJpYWJsZU5hbWV9JyBtZXRhdmFyaWFibGUuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZVZlcmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlRGVjbGFyYXRpb25cIjtcblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgICB0eXBlTm9kZSA9IHR5cGVOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbVZhcmlhYmxlQW5kVHlwZU5vZGUodmFyaWFibGUsIHR5cGVOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uID0gbmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oZmlsZUNvbnRleHQsIHN0cmluZywgdmFyaWFibGUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlRGVjbGFyYXRpb247XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBzdHJpbmdGcm9tVmFyaWFibGVBbmRUeXBlTm9kZSh2YXJpYWJsZSwgdHlwZU5vZGUpIHtcbiAgbGV0IHN0cmluZztcblxuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpO1xuXG4gIGlmICh0eXBlTm9kZSA9PT0gbnVsbCkge1xuICAgIHN0cmluZyA9IHZhcmlhYmxlU3RyaW5nOyAgLy8vXG4gIH0gZWxzZSB7XG4gICAgY29uc3QgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSk7XG5cbiAgICBzdHJpbmcgPSBgJHt2YXJpYWJsZVN0cmluZ306JHt0eXBlTmFtZX1gO1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJ0eXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJWYXJpYWJsZURlY2xhcmF0aW9uIiwiZmlsZUNvbnRleHQiLCJzdHJpbmciLCJ2YXJpYWJsZSIsImdldEZpbGVDb250ZXh0IiwiZ2V0U3RyaW5nIiwiZ2V0VmFyaWFibGUiLCJ2ZXJpZnkiLCJ2ZXJpZmllZCIsInZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmciLCJ0cmFjZSIsInZhcmlhYmxlVmVyaWZpZWQiLCJ2ZXJpZnlWYXJpYWJsZSIsIm1ldGF2YXJpYWJsZSIsImdldE1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZVZlcmlmaWVkIiwidmVyaWZ5TWV0YXZhcmlhYmxlIiwidHlwZSIsImdldFR5cGUiLCJ0eXBlVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlIiwiYWRkVmFyaWFibGUiLCJkZWJ1ZyIsInR5cGVOYW1lIiwiZ2V0TmFtZSIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJ2YXJpYWJsZVN0cmluZyIsInZhcmlhYmxlTmFtZSIsInZhcmlhYmxlUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlUHJlc2VudCIsImlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZSIsImZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiVmFyaWFibGUiLCJkb20iLCJ0eXBlTm9kZSIsInN0cmluZ0Zyb21WYXJpYWJsZUFuZFR5cGVOb2RlIiwidmFyaWFibGVEZWNsYXJhdGlvbiIsIm5hbWUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7MkRBUmdCO3FCQUVVO29CQUVXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFckMsSUFBTUEsZ0JBQWdCQyxJQUFBQSxn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
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kb20vZGVjbGFyYXRpb24vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uLy4uL2RvbVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBvYmplY3RUeXBlIH0gZnJvbSBcIi4uL3R5cGVcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uLy4uL2RvbVwiO1xuaW1wb3J0IHsgdHlwZU5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL25hbWVcIjtcblxuY29uc3QgdHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uL3R5cGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFZhcmlhYmxlRGVjbGFyYXRpb24ge1xuICBjb25zdHJ1Y3RvcihmaWxlQ29udGV4dCwgc3RyaW5nLCB2YXJpYWJsZSkge1xuICAgIHRoaXMuZmlsZUNvbnRleHQgPSBmaWxlQ29udGV4dDtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dDtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIHZlcmlmeSgpIHtcbiAgICBsZXQgdmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlRGVjbGFyYXRpb25TdHJpbmd9JyB2YXJpYWJsZSBkZWNsYXJhdGlvbi4uLmApO1xuXG4gICAgY29uc3QgdmFyaWFibGVWZXJpZmllZCA9IHRoaXMudmVyaWZ5VmFyaWFibGUodGhpcy52YXJpYWJsZSk7XG5cbiAgICBpZiAodmFyaWFibGVWZXJpZmllZCkge1xuICAgICAgbGV0IHR5cGU7XG5cbiAgICAgIHR5cGUgPSB0aGlzLnZhcmlhYmxlLmdldFR5cGUoKTtcblxuICAgICAgY29uc3QgdHlwZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlUeXBlKHR5cGUpO1xuXG4gICAgICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCk7XG5cbiAgICAgICAgdHlwZSA9IHRoaXMuZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgICAgICB0aGlzLnZhcmlhYmxlLnNldFR5cGUodHlwZSk7XG5cbiAgICAgICAgdGhpcy5maWxlQ29udGV4dC5hZGRWYXJpYWJsZSh0aGlzLnZhcmlhYmxlKTtcblxuICAgICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkKSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dmFyaWFibGVEZWNsYXJhdGlvblN0cmluZ30nIHZhcmlhYmxlIGRlY2xhcmF0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVR5cGUodHlwZSkge1xuICAgIGxldCB0eXBlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGlmICh0eXBlID09PSBvYmplY3RUeXBlKSB7XG4gICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICB0aGlzLmZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVOYW1lfScgdHlwZS4uLmApO1xuXG4gICAgICBjb25zdCB0eXBlUHJlc2VudCA9IHRoaXMuZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgICBpZiAoIXR5cGVQcmVzZW50KSB7XG4gICAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYFRoZSAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbm90IHByZXNlbnQuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVZhcmlhYmxlKHZhcmlhYmxlKSB7XG4gICAgbGV0ICB2YXJpYWJsZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLi4uYCk7XG5cbiAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gdGhpcy5maWxlQ29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVOYW1lfScgdmFyaWFibGUgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXJpYWJsZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIHZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICAgIHRoaXMuZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiAgdmFyaWFibGVWZXJpZmllZDtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYXJpYWJsZURlY2xhcmF0aW9uXCI7XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IFZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgICAgdHlwZU5vZGUgPSB0eXBlTm9kZVF1ZXJ5KHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21WYXJpYWJsZUFuZFR5cGVOb2RlKHZhcmlhYmxlLCB0eXBlTm9kZSksXG4gICAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbiA9IG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKGZpbGVDb250ZXh0LCBzdHJpbmcsIHZhcmlhYmxlKTtcblxuICAgIHJldHVybiB2YXJpYWJsZURlY2xhcmF0aW9uO1xuICB9XG59KTtcblxuZnVuY3Rpb24gc3RyaW5nRnJvbVZhcmlhYmxlQW5kVHlwZU5vZGUodmFyaWFibGUsIHR5cGVOb2RlKSB7XG4gIGxldCBzdHJpbmc7XG5cbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKTtcblxuICBpZiAodHlwZU5vZGUgPT09IG51bGwpIHtcbiAgICBzdHJpbmcgPSB2YXJpYWJsZVN0cmluZzsgIC8vL1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpO1xuXG4gICAgc3RyaW5nID0gYCR7dmFyaWFibGVTdHJpbmd9OiR7dHlwZU5hbWV9YDtcbiAgfVxuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsidHlwZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiVmFyaWFibGVEZWNsYXJhdGlvbiIsImZpbGVDb250ZXh0Iiwic3RyaW5nIiwidmFyaWFibGUiLCJnZXRGaWxlQ29udGV4dCIsImdldFN0cmluZyIsImdldFZhcmlhYmxlIiwidmVyaWZ5IiwidmVyaWZpZWQiLCJ2YXJpYWJsZURlY2xhcmF0aW9uU3RyaW5nIiwidHJhY2UiLCJ2YXJpYWJsZVZlcmlmaWVkIiwidmVyaWZ5VmFyaWFibGUiLCJ0eXBlIiwiZ2V0VHlwZSIsInR5cGVWZXJpZmllZCIsInZlcmlmeVR5cGUiLCJ0eXBlTmFtZSIsImdldE5hbWUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJzZXRUeXBlIiwiYWRkVmFyaWFibGUiLCJkZWJ1ZyIsIm9iamVjdFR5cGUiLCJ0eXBlUHJlc2VudCIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwidmFyaWFibGVTdHJpbmciLCJ2YXJpYWJsZU5hbWUiLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwiZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJWYXJpYWJsZSIsImRvbSIsInR5cGVOb2RlIiwic3RyaW5nRnJvbVZhcmlhYmxlQW5kVHlwZU5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uIiwibmFtZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQUE7OzsyREFUZ0I7cUJB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
|
package/lib/dom/type.js
CHANGED
|
@@ -293,7 +293,7 @@ var Type = /*#__PURE__*/ function() {
|
|
|
293
293
|
{
|
|
294
294
|
key: "fromJSON",
|
|
295
295
|
value: function fromJSON(json, fileContext) {
|
|
296
|
-
var name = json.name, typeName = name, properties = propertiesFromJSON(json, fileContext), superType = (0, _json.superTypeFromJSON)(json, fileContext), string = stringFromTypeNameAndSuperType(typeName, superType), type = new Type(string, name, superType, properties);
|
|
296
|
+
var name = json.name, typeName = name, properties = (0, _json.propertiesFromJSON)(json, fileContext), superType = (0, _json.superTypeFromJSON)(json, fileContext), string = stringFromTypeNameAndSuperType(typeName, superType), type = new Type(string, name, superType, properties);
|
|
297
297
|
return type;
|
|
298
298
|
}
|
|
299
299
|
},
|
|
@@ -390,4 +390,4 @@ var ObjectType = /*#__PURE__*/ function(Type) {
|
|
|
390
390
|
}(Type);
|
|
391
391
|
var objectType = ObjectType.fromNothing();
|
|
392
392
|
|
|
393
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5cbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgT0JKRUNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHR5cGVOYW1lRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBzdXBlclR5cGVGcm9tSlNPTiwgc3VwZXJUeXBlVG9TdXBlclR5cGVKU09OLCBwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvbnxjb21wbGV4VHlwZURlY2xhcmF0aW9uL3R5cGVbMF1cIiksXG4gICAgICBwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvY29tcGxleFR5cGVEZWNsYXJhdGlvbi9wcm9wZXJ0eURlY2xhcmF0aW9uXCIpLFxuICAgICAgdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvbnxjb21wbGV4VHlwZURlY2xhcmF0aW9uL3R5cGVbMV1cIik7XG5cbmNsYXNzIFR5cGUge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZSwgcHJvcGVydGllcykge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5zdXBlclR5cGUgPSBzdXBlclR5cGU7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRTdXBlclR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VwZXJUeXBlO1xuICB9XG5cbiAgZ2V0UHJvcGVydGllcygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzO1xuICB9XG5cbiAgc2V0U3RyaW5nKHN0cmluZykge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICB9XG5cbiAgc2V0TmFtZShuYW1lKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIHNldFN1cGVyVHlwZShzdXBlclR5cGUpIHtcbiAgICB0aGlzLnN1cGVyVHlwZSA9IHN1cGVyVHlwZTtcbiAgfVxuXG4gIHNldFByb3BlcnRpZXMocHJvcGVydGllcykge1xuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gIH1cblxuICBpc0VxdWFsVG8odHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSAodGhpcyA9PT0gdHlwZSk7XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIGlzU3ViVHlwZU9mKHR5cGUpIHtcbiAgICBsZXQgc3ViVHlwZU9mO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIHN1YlR5cGVPZiA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdXBlclR5cGUgPT09IHR5cGUpIHtcbiAgICAgIHN1YlR5cGVPZiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1YlR5cGVPZiA9IHRoaXMuc3VwZXJUeXBlLmlzU3ViVHlwZU9mKHR5cGUpO1xuICAgIH1cblxuICAgIHJldHVybiBzdWJUeXBlT2Y7XG4gIH1cblxuICBpc1N1cGVyVHlwZU9mKHR5cGUpIHtcbiAgICBjb25zdCBzdWJUeXBlT2YgPSB0eXBlLmlzU3ViVHlwZU9mKHRoaXMpLFxuICAgICAgICAgIHN1cGVyVHlwZU9mID0gc3ViVHlwZU9mOyAgLy8vXG5cbiAgICByZXR1cm4gc3VwZXJUeXBlT2Y7XG4gIH1cblxuICBpc0NvbXBhcmFibGVUbyh0eXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9IHRoaXMuaXNFcXVhbFRvKHR5cGUpLFxuICAgICAgICAgIHN1YlR5cGVPZiA9IHRoaXMuaXNTdWJUeXBlT2YodHlwZSksXG4gICAgICAgICAgc3VwZXJUeXBlT2YgPSB0aGlzLmlzU3VwZXJUeXBlT2YodHlwZSksXG4gICAgICAgICAgY29tcGFyYWJsZVRvID0gKGVxdWFsVG8gfHwgc3ViVHlwZU9mIHx8IHN1cGVyVHlwZU9mKTtcblxuICAgIHJldHVybiBjb21wYXJhYmxlVG87XG4gIH1cblxuICBpc0VxdWFsVG9PclN1YlR5cGVPZih0eXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9IHRoaXMuaXNFcXVhbFRvKHR5cGUpLFxuICAgICAgICAgIHN1YlR5cGVPZiA9IHRoaXMuaXNTdWJUeXBlT2YodHlwZSksXG4gICAgICAgICAgZXF1YWxUb09yU3ViVHlwZU9mID0gKGVxdWFsVG8gfHwgc3ViVHlwZU9mKTtcblxuICAgIHJldHVybiBlcXVhbFRvT3JTdWJUeXBlT2Y7XG4gIH1cblxuICBpc0VxdWFsVG9PclN1cGVyVHlwZU9mKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3VwZXJUeXBlT2YgPSB0aGlzLmlzU3VwZXJUeXBlT2YodHlwZSksXG4gICAgICAgICAgZXF1YWxUb09yU3VwZXJUeXBlT2YgPSAoZXF1YWxUbyB8fCBzdXBlclR5cGVPZik7XG5cbiAgICByZXR1cm4gZXF1YWxUb09yU3VwZXJUeXBlT2Y7XG4gIH1cblxuICBtYXRjaE5hbWUobmFtZSkge1xuICAgIGNvbnN0IG5vZGVNYXRjaGVzID0gKHRoaXMubmFtZSA9PT0gbmFtZSk7XG5cbiAgICByZXR1cm4gbm9kZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaFR5cGVOYW1lKHR5cGVOYW1lKSB7XG4gICAgY29uc3QgdHlwZU5hbWVNYXRjaGVzID0gKHRoaXMubmFtZSA9PT0gdHlwZU5hbWUpO1xuXG4gICAgcmV0dXJuIHR5cGVOYW1lTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoVHlwZU5vZGUodHlwZU5vZGUpIHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgICB0eXBlTmFtZU1hdGNoZXMgPSB0aGlzLm1hdGNoVHlwZU5hbWUodHlwZU5hbWUpLFxuICAgICAgICAgIHR5cGVOb2RlTWF0Y2hlcyA9IHR5cGVOYW1lTWF0Y2hlczsgIC8vL1xuXG4gICAgcmV0dXJuIHR5cGVOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzSlNPTiA9IHByb3BlcnRpZXNUb1Byb3BlcnRpZXNKU09OKHRoaXMucHJvcGVydGllcyksXG4gICAgICAgICAgc3VwZXJUeXBlSlNPTiA9IHN1cGVyVHlwZVRvU3VwZXJUeXBlSlNPTih0aGlzLnN1cGVyVHlwZSksXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNKU09OLCAgLy8vXG4gICAgICAgICAgc3VwZXJUeXBlID0gc3VwZXJUeXBlSlNPTiwgIC8vL1xuICAgICAgICAgIG5hbWUgPSB0aGlzLm5hbWUsXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBzdXBlclR5cGUsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlR5cGVcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IG5hbWUgfSA9IGpzb24sXG4gICAgICAgICAgdHlwZU5hbWUgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3VwZXJUeXBlID0gc3VwZXJUeXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSh0eXBlTmFtZSwgc3VwZXJUeXBlKSxcbiAgICAgICAgICB0eXBlID0gbmV3IFR5cGUoc3RyaW5nLCBuYW1lLCBzdXBlclR5cGUsIHByb3BlcnRpZXMpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVOb2RlKHR5cGVOb2RlKSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpZiAodHlwZU5vZGUgPT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSBvYmplY3RUeXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgICAgIG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgICAgc3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICAgICAgc3VwZXJUeXBlID0gbnVsbCxcbiAgICAgICAgICAgIHByb3BlcnRpZXMgPSBudWxsO1xuXG4gICAgICB0eXBlID0gbmV3IFR5cGUoc3RyaW5nLCBuYW1lLCBzdXBlclR5cGUsIHByb3BlcnRpZXMpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3Qgc3VwZXJUeXBlID0gc3VwZXJUeXBlRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZURlY2xhcmF0aW9uTm9kZSh0eXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbVR5cGVOYW1lQW5kU3VwZXJUeXBlKHR5cGVOYW1lLCBzdXBlclR5cGUpLFxuICAgICAgICAgIG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgIHByb3BlcnRpZXMgPSBbXSxcbiAgICAgICAgICB0eXBlID0gbmV3IFR5cGUoc3RyaW5nLCBuYW1lLCBzdXBlclR5cGUsIHByb3BlcnRpZXMpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3VwZXJUeXBlID0gc3VwZXJUeXBlRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSh0eXBlTmFtZSwgc3VwZXJUeXBlKSxcbiAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICB0eXBlID0gbmV3IFR5cGUoc3RyaW5nLCBuYW1lLCBzdXBlclR5cGUsIHByb3BlcnRpZXMpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoVHlwZSk7XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSh0eXBlTmFtZSwgc3VwZXJUeXBlKSB7XG4gIGxldCBzdHJpbmcgPSB0eXBlTmFtZTsgIC8vL1xuXG4gIGlmICgoc3VwZXJUeXBlICE9PSBudWxsKSAmJiAoc3VwZXJUeXBlICE9PSBvYmplY3RUeXBlKSkge1xuICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBzdHJpbmcsICAvLy9cbiAgICAgICAgICBzdXBlclR5cGVOYW1lID0gc3VwZXJUeXBlLmdldE5hbWUoKTtcblxuICAgIHN0cmluZyA9IGAke3R5cGVTdHJpbmd9OiR7c3VwZXJUeXBlTmFtZX1gO1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxuZnVuY3Rpb24gdHlwZU5hbWVGcm9tVHlwZURlY2xhcmF0aW9uTm9kZSh0eXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkodHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHR5cGVOb2RlID0gdHlwZURlY2xhcmF0aW9uVHlwZU5vZGUsIC8vL1xuICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKTtcblxuICByZXR1cm4gdHlwZU5hbWU7XG59XG5cbmZ1bmN0aW9uIHN1cGVyVHlwZUZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlUXVlcnkodHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHN1cGVyVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlLCAvLy9cbiAgICAgICAgc3VwZXJUeXBlID0gVHlwZS5mcm9tVHlwZU5vZGUoc3VwZXJUeXBlTm9kZSk7XG5cbiAgcmV0dXJuIHN1cGVyVHlwZTtcbn1cblxuZnVuY3Rpb24gdHlwZU5hbWVGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IHR5cGVEZWNsYXJhdGlvblR5cGVOb2RlID0gdHlwZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHR5cGVOb2RlID0gdHlwZURlY2xhcmF0aW9uVHlwZU5vZGUsIC8vL1xuICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKTtcblxuICByZXR1cm4gdHlwZU5hbWU7XG59XG5cbmZ1bmN0aW9uIHN1cGVyVHlwZUZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVRdWVyeShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHN1cGVyVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlLCAvLy9cbiAgICAgICAgc3VwZXJUeXBlID0gVHlwZS5mcm9tVHlwZU5vZGUoc3VwZXJUeXBlTm9kZSk7XG5cbiAgcmV0dXJuIHN1cGVyVHlwZTtcbn1cblxuZnVuY3Rpb24gcHJvcGVydGllc0Zyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgcHJvcGVydHlEZWNsYXJhdGlvbk5vZGVzID0gcHJvcGVydHlEZWNsYXJhdGlvbk5vZGVzUXVlcnkoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydHlEZWNsYXJhdGlvbk5vZGVzLm1hcCgocHJvcGVydHlEZWNsYXJhdGlvbk5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCB7IFByb3BlcnR5IH0gPSBkb20sXG4gICAgICAgICAgICAgICAgcHJvcGVydHkgPSBQcm9wZXJ0eS5mcm9tUHJvcGVydHlEZWNsYXJhdGlvbk5vZGUocHJvcGVydHlEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgICAgICAgIHJldHVybiBwcm9wZXJ0eTtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIHByb3BlcnRpZXM7XG59XG5cbmNsYXNzIE9iamVjdFR5cGUgZXh0ZW5kcyBUeXBlIHtcbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN1cGVyVHlwZSA9IG51bGwsXG4gICAgICAgICAgbmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHN1cGVyVHlwZVxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBuYW1lID0gT0JKRUNUX1RZUEVfTkFNRSxcbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy9cbiAgICAgICAgICBzdXBlclR5cGUgPSBudWxsLFxuICAgICAgICAgIG9iamVjdFR5cGUgPSBuZXcgT2JqZWN0VHlwZShzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZSk7XG5cbiAgICByZXR1cm4gb2JqZWN0VHlwZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgb2JqZWN0VHlwZSA9IE9iamVjdFR5cGUuZnJvbU5vdGhpbmcoKTtcbiJdLCJuYW1lcyI6WyJvYmplY3RUeXBlIiwidHlwZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInByb3BlcnR5RGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVRdWVyeSIsIlR5cGUiLCJzdHJpbmciLCJuYW1lIiwic3VwZXJUeXBlIiwicHJvcGVydGllcyIsImdldFN0cmluZyIsImdldE5hbWUiLCJnZXRTdXBlclR5cGUiLCJnZXRQcm9wZXJ0aWVzIiwic2V0U3RyaW5nIiwic2V0TmFtZSIsInNldFN1cGVyVHlwZSIsInNldFByb3BlcnRpZXMiLCJpc0VxdWFsVG8iLCJ0eXBlIiwiZXF1YWxUbyIsImlzU3ViVHlwZU9mIiwic3ViVHlwZU9mIiwiaXNTdXBlclR5cGVPZiIsInN1cGVyVHlwZU9mIiwiaXNDb21wYXJhYmxlVG8iLCJjb21wYXJhYmxlVG8iLCJpc0VxdWFsVG9PclN1YlR5cGVPZiIsImVxdWFsVG9PclN1YlR5cGVPZiIsImlzRXF1YWxUb09yU3VwZXJUeXBlT2YiLCJlcXVhbFRvT3JTdXBlclR5cGVPZiIsIm1hdGNoTmFtZSIsIm5vZGVNYXRjaGVzIiwibWF0Y2hUeXBlTmFtZSIsInR5cGVOYW1lIiwidHlwZU5hbWVNYXRjaGVzIiwibWF0Y2hUeXBlTm9kZSIsInR5cGVOb2RlIiwidHlwZU5hbWVGcm9tVHlwZU5vZGUiLCJ0eXBlTm9kZU1hdGNoZXMiLCJ0b0pTT04iLCJwcm9wZXJ0aWVzSlNPTiIsInByb3BlcnRpZXNUb1Byb3BlcnRpZXNKU09OIiwic3VwZXJUeXBlSlNPTiIsInN1cGVyVHlwZVRvU3VwZXJUeXBlSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImZpbGVDb250ZXh0IiwicHJvcGVydGllc0Zyb21KU09OIiwic3VwZXJUeXBlRnJvbUpTT04iLCJzdHJpbmdGcm9tVHlwZU5hbWVBbmRTdXBlclR5cGUiLCJmcm9tVHlwZU5vZGUiLCJmcm9tVHlwZURlY2xhcmF0aW9uTm9kZSIsInR5cGVEZWNsYXJhdGlvbk5vZGUiLCJzdXBlclR5cGVGcm9tVHlwZURlY2xhcmF0aW9uTm9kZSIsInR5cGVOYW1lRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUiLCJmcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUiLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsInByb3BlcnRpZXNGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUiLCJzdXBlclR5cGVGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUiLCJ0eXBlTmFtZUZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsImRvbUFzc2lnbmVkIiwidHlwZVN0cmluZyIsInN1cGVyVHlwZU5hbWUiLCJ0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSIsInR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUiLCJzdXBlclR5cGVOb2RlIiwicHJvcGVydHlEZWNsYXJhdGlvbk5vZGVzIiwibWFwIiwicHJvcGVydHlEZWNsYXJhdGlvbk5vZGUiLCJQcm9wZXJ0eSIsImRvbSIsInByb3BlcnR5IiwiZnJvbVByb3BlcnR5RGVjbGFyYXRpb25Ob2RlIiwiT2JqZWN0VHlwZSIsImZyb21Ob3RoaW5nIiwiT0JKRUNUX1RZUEVfTkFNRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBcU1BLE9BQWlDO2VBQWpDOztJQWlGYUEsVUFBVTtlQUFWQTs7OzJEQXBSRzt5QkFHaUI7b0JBQ0k7cUJBQ0M7b0JBQ2tEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4RixJQUFNQywrQkFBK0JDLElBQUFBLGdCQUFTLEVBQUMsb0RBQ3pDQyxnQ0FBZ0NDLElBQUFBLGlCQUFVLEVBQUMsZ0RBQzNDQyxvQ0FBb0NILElBQUFBLGdCQUFTLEVBQUM7QUFFcEQsSUFBQSxBQUFNSSxxQkFBTjthQUFNQSxLQUNRQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsU0FBUyxFQUFFQyxVQUFVO2dDQUQzQ0o7UUFFRixJQUFJLENBQUNDLE1B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
|
|
393
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5cbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgT0JKRUNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHR5cGVOYW1lRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBzdXBlclR5cGVGcm9tSlNPTiwgcHJvcGVydGllc0Zyb21KU09OLCBzdXBlclR5cGVUb1N1cGVyVHlwZUpTT04sIHByb3BlcnRpZXNUb1Byb3BlcnRpZXNKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHR5cGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZURlY2xhcmF0aW9ufGNvbXBsZXhUeXBlRGVjbGFyYXRpb24vdHlwZVswXVwiKSxcbiAgICAgIHByb3BlcnR5RGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9jb21wbGV4VHlwZURlY2xhcmF0aW9uL3Byb3BlcnR5RGVjbGFyYXRpb25cIiksXG4gICAgICB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZURlY2xhcmF0aW9ufGNvbXBsZXhUeXBlRGVjbGFyYXRpb24vdHlwZVsxXVwiKTtcblxuY2xhc3MgVHlwZSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlLCBwcm9wZXJ0aWVzKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnN1cGVyVHlwZSA9IHN1cGVyVHlwZTtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFN1cGVyVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBlclR5cGU7XG4gIH1cblxuICBnZXRQcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXM7XG4gIH1cblxuICBzZXRTdHJpbmcoc3RyaW5nKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gIH1cblxuICBzZXROYW1lKG5hbWUpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgc2V0U3VwZXJUeXBlKHN1cGVyVHlwZSkge1xuICAgIHRoaXMuc3VwZXJUeXBlID0gc3VwZXJUeXBlO1xuICB9XG5cbiAgc2V0UHJvcGVydGllcyhwcm9wZXJ0aWVzKSB7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgfVxuXG4gIGlzRXF1YWxUbyh0eXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9ICh0aGlzID09PSB0eXBlKTtcblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgaXNTdWJUeXBlT2YodHlwZSkge1xuICAgIGxldCBzdWJUeXBlT2Y7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcyA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgc3ViVHlwZU9mID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN1cGVyVHlwZSA9PT0gdHlwZSkge1xuICAgICAgc3ViVHlwZU9mID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3ViVHlwZU9mID0gdGhpcy5zdXBlclR5cGUuaXNTdWJUeXBlT2YodHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YlR5cGVPZjtcbiAgfVxuXG4gIGlzU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IHN1YlR5cGVPZiA9IHR5cGUuaXNTdWJUeXBlT2YodGhpcyksXG4gICAgICAgICAgc3VwZXJUeXBlT2YgPSBzdWJUeXBlT2Y7ICAvLy9cblxuICAgIHJldHVybiBzdXBlclR5cGVPZjtcbiAgfVxuXG4gIGlzQ29tcGFyYWJsZVRvKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3ViVHlwZU9mID0gdGhpcy5pc1N1YlR5cGVPZih0eXBlKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHRoaXMuaXNTdXBlclR5cGVPZih0eXBlKSxcbiAgICAgICAgICBjb21wYXJhYmxlVG8gPSAoZXF1YWxUbyB8fCBzdWJUeXBlT2YgfHwgc3VwZXJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGNvbXBhcmFibGVUbztcbiAgfVxuXG4gIGlzRXF1YWxUb09yU3ViVHlwZU9mKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3ViVHlwZU9mID0gdGhpcy5pc1N1YlR5cGVPZih0eXBlKSxcbiAgICAgICAgICBlcXVhbFRvT3JTdWJUeXBlT2YgPSAoZXF1YWxUbyB8fCBzdWJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG9PclN1YlR5cGVPZjtcbiAgfVxuXG4gIGlzRXF1YWxUb09yU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHRoaXMuaXNTdXBlclR5cGVPZih0eXBlKSxcbiAgICAgICAgICBlcXVhbFRvT3JTdXBlclR5cGVPZiA9IChlcXVhbFRvIHx8IHN1cGVyVHlwZU9mKTtcblxuICAgIHJldHVybiBlcXVhbFRvT3JTdXBlclR5cGVPZjtcbiAgfVxuXG4gIG1hdGNoTmFtZShuYW1lKSB7XG4gICAgY29uc3Qgbm9kZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSBuYW1lKTtcblxuICAgIHJldHVybiBub2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoVHlwZU5hbWUodHlwZU5hbWUpIHtcbiAgICBjb25zdCB0eXBlTmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSB0eXBlTmFtZSk7XG5cbiAgICByZXR1cm4gdHlwZU5hbWVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hUeXBlTm9kZSh0eXBlTm9kZSkge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICAgIHR5cGVOYW1lTWF0Y2hlcyA9IHRoaXMubWF0Y2hUeXBlTmFtZSh0eXBlTmFtZSksXG4gICAgICAgICAgdHlwZU5vZGVNYXRjaGVzID0gdHlwZU5hbWVNYXRjaGVzOyAgLy8vXG5cbiAgICByZXR1cm4gdHlwZU5vZGVNYXRjaGVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHByb3BlcnRpZXNKU09OID0gcHJvcGVydGllc1RvUHJvcGVydGllc0pTT04odGhpcy5wcm9wZXJ0aWVzKSxcbiAgICAgICAgICBzdXBlclR5cGVKU09OID0gc3VwZXJUeXBlVG9TdXBlclR5cGVKU09OKHRoaXMuc3VwZXJUeXBlKSxcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc0pTT04sICAvLy9cbiAgICAgICAgICBzdXBlclR5cGUgPSBzdXBlclR5cGVKU09OLCAgLy8vXG4gICAgICAgICAgbmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHN1cGVyVHlwZSxcbiAgICAgICAgICAgIHByb3BlcnRpZXNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgbmFtZSB9ID0ganNvbixcbiAgICAgICAgICB0eXBlTmFtZSA9IG5hbWUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdXBlclR5cGUgPSBzdXBlclR5cGVGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbVR5cGVOYW1lQW5kU3VwZXJUeXBlKHR5cGVOYW1lLCBzdXBlclR5cGUpLFxuICAgICAgICAgIHR5cGUgPSBuZXcgVHlwZShzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZSwgcHJvcGVydGllcyk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZU5vZGUodHlwZU5vZGUpIHtcbiAgICBsZXQgdHlwZTtcblxuICAgIGlmICh0eXBlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgdHlwZSA9IG9iamVjdFR5cGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICAgICAgbmFtZSA9IHR5cGVOYW1lLCAgLy8vXG4gICAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgICBzdXBlclR5cGUgPSBudWxsLFxuICAgICAgICAgICAgcHJvcGVydGllcyA9IG51bGw7XG5cbiAgICAgIHR5cGUgPSBuZXcgVHlwZShzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZSwgcHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBzdXBlclR5cGUgPSBzdXBlclR5cGVGcm9tVHlwZURlY2xhcmF0aW9uTm9kZSh0eXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tVHlwZU5hbWVBbmRTdXBlclR5cGUodHlwZU5hbWUsIHN1cGVyVHlwZSksXG4gICAgICAgICAgbmFtZSA9IHR5cGVOYW1lLCAgLy8vXG4gICAgICAgICAgcHJvcGVydGllcyA9IFtdLFxuICAgICAgICAgIHR5cGUgPSBuZXcgVHlwZShzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZSwgcHJvcGVydGllcyk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IHByb3BlcnRpZXNGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdXBlclR5cGUgPSBzdXBlclR5cGVGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbVR5cGVOYW1lQW5kU3VwZXJUeXBlKHR5cGVOYW1lLCBzdXBlclR5cGUpLFxuICAgICAgICAgIG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgIHR5cGUgPSBuZXcgVHlwZShzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZSwgcHJvcGVydGllcyk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChUeXBlKTtcblxuZnVuY3Rpb24gc3RyaW5nRnJvbVR5cGVOYW1lQW5kU3VwZXJUeXBlKHR5cGVOYW1lLCBzdXBlclR5cGUpIHtcbiAgbGV0IHN0cmluZyA9IHR5cGVOYW1lOyAgLy8vXG5cbiAgaWYgKChzdXBlclR5cGUgIT09IG51bGwpICYmIChzdXBlclR5cGUgIT09IG9iamVjdFR5cGUpKSB7XG4gICAgY29uc3QgdHlwZVN0cmluZyA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIHN1cGVyVHlwZU5hbWUgPSBzdXBlclR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgc3RyaW5nID0gYCR7dHlwZVN0cmluZ306JHtzdXBlclR5cGVOYW1lfWA7XG4gIH1cblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5mdW5jdGlvbiB0eXBlTmFtZUZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IHR5cGVEZWNsYXJhdGlvblR5cGVOb2RlID0gdHlwZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSh0eXBlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgdHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSwgLy8vXG4gICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpO1xuXG4gIHJldHVybiB0eXBlTmFtZTtcbn1cblxuZnVuY3Rpb24gc3VwZXJUeXBlRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVRdWVyeSh0eXBlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgc3VwZXJUeXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUsIC8vL1xuICAgICAgICBzdXBlclR5cGUgPSBUeXBlLmZyb21UeXBlTm9kZShzdXBlclR5cGVOb2RlKTtcblxuICByZXR1cm4gc3VwZXJUeXBlO1xufVxuXG5mdW5jdGlvbiB0eXBlTmFtZUZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgdHlwZURlY2xhcmF0aW9uVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5KGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgdHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSwgLy8vXG4gICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpO1xuXG4gIHJldHVybiB0eXBlTmFtZTtcbn1cblxuZnVuY3Rpb24gc3VwZXJUeXBlRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlID0gdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZVF1ZXJ5KGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgc3VwZXJUeXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUsIC8vL1xuICAgICAgICBzdXBlclR5cGUgPSBUeXBlLmZyb21UeXBlTm9kZShzdXBlclR5cGVOb2RlKTtcblxuICByZXR1cm4gc3VwZXJUeXBlO1xufVxuXG5mdW5jdGlvbiBwcm9wZXJ0aWVzRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCBwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZXMgPSBwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZXNRdWVyeShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZXMubWFwKChwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgUHJvcGVydHkgfSA9IGRvbSxcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eSA9IFByb3BlcnR5LmZyb21Qcm9wZXJ0eURlY2xhcmF0aW9uTm9kZShwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIHByb3BlcnR5O1xuICAgICAgICB9KTtcblxuICByZXR1cm4gcHJvcGVydGllcztcbn1cblxuY2xhc3MgT2JqZWN0VHlwZSBleHRlbmRzIFR5cGUge1xuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3VwZXJUeXBlID0gbnVsbCxcbiAgICAgICAgICBuYW1lID0gdGhpcy5uYW1lLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgc3VwZXJUeXBlXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IG5hbWUgPSBPQkpFQ1RfVFlQRV9OQU1FLFxuICAgICAgICAgIHN0cmluZyA9IG5hbWUsICAvL1xuICAgICAgICAgIHN1cGVyVHlwZSA9IG51bGwsXG4gICAgICAgICAgb2JqZWN0VHlwZSA9IG5ldyBPYmplY3RUeXBlKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlKTtcblxuICAgIHJldHVybiBvYmplY3RUeXBlO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBvYmplY3RUeXBlID0gT2JqZWN0VHlwZS5mcm9tTm90aGluZygpO1xuIl0sIm5hbWVzIjpbIm9iamVjdFR5cGUiLCJ0eXBlRGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicHJvcGVydHlEZWNsYXJhdGlvbk5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwidHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZVF1ZXJ5IiwiVHlwZSIsInN0cmluZyIsIm5hbWUiLCJzdXBlclR5cGUiLCJwcm9wZXJ0aWVzIiwiZ2V0U3RyaW5nIiwiZ2V0TmFtZSIsImdldFN1cGVyVHlwZSIsImdldFByb3BlcnRpZXMiLCJzZXRTdHJpbmciLCJzZXROYW1lIiwic2V0U3VwZXJUeXBlIiwic2V0UHJvcGVydGllcyIsImlzRXF1YWxUbyIsInR5cGUiLCJlcXVhbFRvIiwiaXNTdWJUeXBlT2YiLCJzdWJUeXBlT2YiLCJpc1N1cGVyVHlwZU9mIiwic3VwZXJUeXBlT2YiLCJpc0NvbXBhcmFibGVUbyIsImNvbXBhcmFibGVUbyIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwiZXF1YWxUb09yU3ViVHlwZU9mIiwiaXNFcXVhbFRvT3JTdXBlclR5cGVPZiIsImVxdWFsVG9PclN1cGVyVHlwZU9mIiwibWF0Y2hOYW1lIiwibm9kZU1hdGNoZXMiLCJtYXRjaFR5cGVOYW1lIiwidHlwZU5hbWUiLCJ0eXBlTmFtZU1hdGNoZXMiLCJtYXRjaFR5cGVOb2RlIiwidHlwZU5vZGUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGVOb2RlTWF0Y2hlcyIsInRvSlNPTiIsInByb3BlcnRpZXNKU09OIiwicHJvcGVydGllc1RvUHJvcGVydGllc0pTT04iLCJzdXBlclR5cGVKU09OIiwic3VwZXJUeXBlVG9TdXBlclR5cGVKU09OIiwianNvbiIsImZyb21KU09OIiwiZmlsZUNvbnRleHQiLCJwcm9wZXJ0aWVzRnJvbUpTT04iLCJzdXBlclR5cGVGcm9tSlNPTiIsInN0cmluZ0Zyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSIsImZyb21UeXBlTm9kZSIsImZyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsInN1cGVyVHlwZUZyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwidHlwZU5hbWVGcm9tVHlwZURlY2xhcmF0aW9uTm9kZSIsImZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwicHJvcGVydGllc0Zyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsInN1cGVyVHlwZUZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsInR5cGVOYW1lRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiZG9tQXNzaWduZWQiLCJ0eXBlU3RyaW5nIiwic3VwZXJUeXBlTmFtZSIsInR5cGVEZWNsYXJhdGlvblR5cGVOb2RlIiwidHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZSIsInN1cGVyVHlwZU5vZGUiLCJwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZXMiLCJtYXAiLCJwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSIsIlByb3BlcnR5IiwiZG9tIiwicHJvcGVydHkiLCJmcm9tUHJvcGVydHlEZWNsYXJhdGlvbk5vZGUiLCJPYmplY3RUeXBlIiwiZnJvbU5vdGhpbmciLCJPQkpFQ1RfVFlQRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFxTUEsT0FBaUM7ZUFBakM7O0lBaUZhQSxVQUFVO2VBQVZBOzs7MkRBcFJHO3lCQUdpQjtvQkFDSTtxQkFDQztvQkFDc0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVHLElBQU1DLCtCQUErQkMsSUFBQUEsZ0JBQVMsRUFBQyxvREFDekNDLGdDQUFnQ0MsSUFBQUEsaUJBQVUsRUFBQyxnREFDM0NDLG9DQUFvQ0gsSUFBQUEsZ0JBQVMsRUFBQztBQUVwRCxJQUFBLEFBQU1JLHFCQUFOO2FBQU1BLEtBQ1FDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLFVBQVU7Z0NBRDND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
|
package/lib/utilities/json.js
CHANGED
|
@@ -99,6 +99,9 @@ _export(exports, {
|
|
|
99
99
|
procedureCallToProcedureCallJSON: function() {
|
|
100
100
|
return procedureCallToProcedureCallJSON;
|
|
101
101
|
},
|
|
102
|
+
propertiesFromJSON: function() {
|
|
103
|
+
return propertiesFromJSON;
|
|
104
|
+
},
|
|
102
105
|
propertiesToPropertiesJSON: function() {
|
|
103
106
|
return propertiesToPropertiesJSON;
|
|
104
107
|
},
|
|
@@ -313,6 +316,15 @@ function variablesFromJSON(json, fileContext) {
|
|
|
313
316
|
});
|
|
314
317
|
return variables;
|
|
315
318
|
}
|
|
319
|
+
function propertiesFromJSON(json, fileContext) {
|
|
320
|
+
var properties = json.properties;
|
|
321
|
+
var Property = _dom.default.Property, propertiesJSON = properties; ///
|
|
322
|
+
properties = propertiesJSON.map(function(propertyJSON) {
|
|
323
|
+
var _$json = propertyJSON, property = Property.fromJSON(_$json, fileContext);
|
|
324
|
+
return property;
|
|
325
|
+
});
|
|
326
|
+
return properties;
|
|
327
|
+
}
|
|
316
328
|
function parametersFromJSON(json, fileContext) {
|
|
317
329
|
var parameters = json.parameters;
|
|
318
330
|
var Parameter = _dom.default.Parameter, parametersJSON = parameters; ///
|
|
@@ -560,4 +572,4 @@ function metavariablesToMetavariablesJSON(metavariables) {
|
|
|
560
572
|
return metavariablesJSON;
|
|
561
573
|
}
|
|
562
574
|
|
|
563
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvanNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgU3RhdGVtZW50U3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vc3RhdGVtZW50XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgdGVybSB9ID0ganNvbjtcblxuICBjb25zdCB0ZXJtSlNPTiA9IHRlcm07ICAvLy9cblxuICBqc29uID0gdGVybUpTT047ICAvLy9cblxuICBjb25zdCB7IFRlcm0gfSA9IGRvbTtcblxuICB0ZXJtID0gVGVybS5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgcmV0dXJuIHRlcm07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgdHlwZSB9ID0ganNvbjtcblxuICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gdHlwZSxcbiAgICAgICAgICB0eXBlTmFtZSA9IG5hbWU7ICAvLy9cblxuICAgIHR5cGUgPSBmaWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhVHlwZUZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IG1ldGFUeXBlIH0gPSBqc29uO1xuXG4gIGlmIChtZXRhVHlwZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gbWV0YVR5cGUsXG4gICAgICAgICAgbWV0YVR5cGVOYW1lID0gbmFtZTsgIC8vL1xuXG4gICAgbWV0YVR5cGUgPSBmaWxlQ29udGV4dC5maW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZShtZXRhVHlwZU5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFUeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJUeXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgc3VwZXJUeXBlIH0gPSBqc29uO1xuXG4gIGNvbnN0IHN1cGVyVHlwZUpTT04gPSBzdXBlclR5cGU7ICAvLy9cblxuICBqc29uID0gc3VwZXJUeXBlSlNPTjsgLy8vXG5cbiAgY29uc3QgeyBuYW1lIH0gPSBqc29uLFxuICAgICAgICB0eXBlTmFtZSA9IG5hbWUsICAvLy9cbiAgICAgICAgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgc3VwZXJUeXBlID0gdHlwZTsgLy8vXG5cbiAgcmV0dXJuIHN1cGVyVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudEZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IHN0YXRlbWVudCA9IG51bGwgfSA9IGpzb247XG5cbiAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHsgU3RhdGVtZW50IH0gPSBkb20sXG4gICAgICAgICAgc3RhdGVtZW50SlNPTiA9IHN0YXRlbWVudDsgIC8vL1xuXG4gICAganNvbiA9IHN0YXRlbWVudEpTT047IC8vL1xuXG4gICAgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZlcmVuY2VGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyByZWZlcmVuY2UgfSA9IGpzb247XG5cbiAgY29uc3QgeyBSZWZlcmVuY2UgfSA9IGRvbSxcbiAgICAgICAgcmVmZXJlbmNlSlNPTiA9IHJlZmVyZW5jZTsgIC8vL1xuXG4gIGpzb24gPSByZWZlcmVuY2VKU09OOyAgLy8vXG5cbiAgcmVmZXJlbmNlID0gUmVmZXJlbmNlLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICByZXR1cm4gcmVmZXJlbmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uY2x1c2lvbkZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IGNvbmNsdXNpb24gfSA9IGpzb247XG5cbiAgY29uc3QgeyBDb25jbHVzaW9uIH0gPSBkb20sXG4gICAgICAgIGNvbmNsdXNpb25KU09OID0gY29uY2x1c2lvbjsgIC8vL1xuXG4gIGpzb24gPSBjb25jbHVzaW9uSlNPTjsgIC8vL1xuXG4gIGNvbmNsdXNpb24gPSBDb25jbHVzaW9uLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICByZXR1cm4gY29uY2x1c2lvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnNlcXVlbnRGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBjb25zZXF1ZW50IH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQ29uc2VxdWVudCB9ID0gZG9tLFxuICAgICAgICBjb25zZXF1ZW50SlNPTiA9IGNvbnNlcXVlbnQ7ICAvLy9cblxuICBqc29uID0gY29uc2VxdWVudEpTT047ICAvLy9cblxuICBjb25zZXF1ZW50ID0gQ29uc2VxdWVudC5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbnNlcXVlbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdmFyaWFibGVGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBtZXRhdmFyaWFibGUgfSA9IGpzb247XG5cbiAgY29uc3QgeyBNZXRhdmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbWV0YXZhcmlhYmxlSlNPTiA9IG1ldGF2YXJpYWJsZTsgIC8vL1xuXG4gIGpzb24gPSBtZXRhdmFyaWFibGVKU09OOyAvLy9cblxuICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVDYWxsRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgcHJvY2VkdXJlQ2FsbCA9IG51bGwgfSA9IGpzb247XG5cbiAgaWYgKHByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICBjb25zdCB7IFByb2NlZHVyZUNhbGwgfSA9IGRvbSxcbiAgICAgICAgICBwcm9jZWR1cmVDYWxsSlNPTiA9IHByb2NlZHVyZUNhbGw7ICAvLy9cblxuICAgIGpzb24gPSBwcm9jZWR1cmVDYWxsSlNPTjsgLy8vXG5cbiAgICBwcm9jZWR1cmVDYWxsID0gUHJvY2VkdXJlQ2FsbC5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gcHJvY2VkdXJlQ2FsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVzRnJvbUpTT04oanNvbiwgdHlwZXMsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IHsgdHlwZXM6IHR5cGVzSlNPTiB9ID0ganNvbjtcblxuICBjb25zdCB7IFR5cGUgfSA9IGRvbTtcblxuICB0eXBlc0pTT04uZm9yRWFjaCgodHlwZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICB0eXBlID0gVHlwZS5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICB0eXBlcy5wdXNoKHR5cGUpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bGVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgcnVsZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBSdWxlIH0gPSBkb20sXG4gICAgICAgIHJ1bGVzSlNPTiA9IHJ1bGVzOyAvLy9cblxuICBydWxlcyA9IHJ1bGVzSlNPTi5tYXAoKHJ1bGVKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHJ1bGVKU09OLCAgLy8vXG4gICAgICAgICAgcnVsZSA9IFJ1bGUuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIChydWxlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJ1bGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGFiZWxzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgbGFiZWxzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgTGFiZWwgfSA9IGRvbSxcbiAgICAgICAgbGFiZWxzSlNPTiA9IGxhYmVsczsgIC8vL1xuXG4gIGxhYmVscyA9IGxhYmVsc0pTT04ubWFwKChsYWJlbEpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gbGFiZWxKU09OLCAvLy9cbiAgICAgICAgICBsYWJlbCA9IExhYmVsLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBsYWJlbDtcbiAgfSk7XG5cbiAgcmV0dXJuIGxhYmVscztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF4aW9tc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IGF4aW9tcyB9ID0ganNvbjtcblxuICBjb25zdCB7IEF4aW9tIH0gPSBkb20sXG4gICAgICAgIGF4aW9tc0pTT04gPSBheGlvbXM7IC8vL1xuXG4gIGF4aW9tcyA9IGF4aW9tc0pTT04ubWFwKChheGlvbUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gYXhpb21KU09OLCAgLy8vXG4gICAgICAgICAgYXhpb20gPSBBeGlvbS5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gKGF4aW9tKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGF4aW9tcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZW1pc2VzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgcHJlbWlzZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBQcmVtaXNlIH0gPSBkb20sXG4gICAgICAgIHByZW1pc2VzSlNPTiA9IHByZW1pc2VzOyAgLy8vXG5cbiAgcHJlbWlzZXMgPSBwcmVtaXNlc0pTT04ubWFwKChwcmVtaXNlSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBwcmVtaXNlSlNPTiwgLy8vXG4gICAgICAgICAgcHJlbWlzZSA9IFByZW1pc2UuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHByZW1pc2U7XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRoZW9yZW1zRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgdGhlb3JlbXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBUaGVvcmVtIH0gPSBkb20sXG4gICAgICAgIHRoZW9yZW1zSlNPTiA9IHRoZW9yZW1zOyAvLy9cblxuICB0aGVvcmVtcyA9IHRoZW9yZW1zSlNPTi5tYXAoKHRoZW9yZW1KU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHRoZW9yZW1KU09OLCAgLy8vXG4gICAgICAgICAgdGhlb3JlbSA9IFRoZW9yZW0uZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuICh0aGVvcmVtKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRoZW9yZW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgdmFyaWFibGVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgdmFyaWFibGVzSlNPTiA9IHZhcmlhYmxlczsgLy8vXG5cbiAgdmFyaWFibGVzID0gdmFyaWFibGVzSlNPTi5tYXAoKHZhcmlhYmxlSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB2YXJpYWJsZUpTT04sICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiAodmFyaWFibGUpO1xuICB9KTtcblxuICByZXR1cm4gdmFyaWFibGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyYW1ldGVyc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IHBhcmFtZXRlcnMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBQYXJhbWV0ZXIgfSA9IGRvbSxcbiAgICAgICAgcGFyYW1ldGVyc0pTT04gPSBwYXJhbWV0ZXJzOyAvLy9cblxuICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVyc0pTT04ubWFwKChwYXJhbWV0ZXJKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHBhcmFtZXRlckpTT04sICAvLy9cbiAgICAgICAgICBwYXJhbWV0ZXIgPSBQYXJhbWV0ZXIuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIChwYXJhbWV0ZXIpO1xuICB9KTtcblxuICByZXR1cm4gcGFyYW1ldGVycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmplY3R1cmVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgY29uamVjdHVyZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBDb25qZWN0dXJlIH0gPSBkb20sXG4gICAgICAgIGNvbmplY3R1cmVzSlNPTiA9IGNvbmplY3R1cmVzOyAvLy9cblxuICBjb25qZWN0dXJlcyA9IGNvbmplY3R1cmVzSlNPTi5tYXAoKGNvbmplY3R1cmVKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGNvbmplY3R1cmVKU09OLCAgLy8vXG4gICAgICAgICAgY29uamVjdHVyZSA9IENvbmplY3R1cmUuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIChjb25qZWN0dXJlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbmplY3R1cmVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluYXRvcnNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBjb21iaW5hdG9ycyB9ID0ganNvbjtcblxuICBjb25zdCB7IENvbWJpbmF0b3IgfSA9IGRvbSxcbiAgICAgICAgY29tYmluYXRvcnNKU09OID0gY29tYmluYXRvcnM7IC8vL1xuXG4gIGNvbWJpbmF0b3JzID0gY29tYmluYXRvcnNKU09OLm1hcCgoY29tYmluYXRvckpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gY29tYmluYXRvckpTT04sICAvLy9cbiAgICAgICAgICBjb21iaW5hdG9yID0gQ29tYmluYXRvci5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gKGNvbWJpbmF0b3IpO1xuICB9KTtcblxuICByZXR1cm4gY29tYmluYXRvcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RvcnNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBjb25zdHJ1Y3RvcnMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBDb25zdHJ1Y3RvciB9ID0gZG9tLFxuICAgICAgICBjb25zdHJ1Y3RvcnNKU09OID0gY29uc3RydWN0b3JzOyAvLy9cblxuICBjb25zdHJ1Y3RvcnMgPSBjb25zdHJ1Y3RvcnNKU09OLm1hcCgoY29uc3RydWN0b3JKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGNvbnN0cnVjdG9ySlNPTiwgIC8vL1xuICAgICAgICAgIGNvbnN0cnVjdG9yID0gQ29uc3RydWN0b3IuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIChjb25zdHJ1Y3Rvcik7XG4gIH0pO1xuXG4gIHJldHVybiBjb25zdHJ1Y3RvcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdGhlb3JlbXNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBtZXRhdGhlb3JlbXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBNZXRhdGhlb3JlbSB9ID0gZG9tLFxuICAgICAgICBtZXRhdGhlb3JlbXNKU09OID0gbWV0YXRoZW9yZW1zOyAvLy9cblxuICBtZXRhdGhlb3JlbXMgPSBtZXRhdGhlb3JlbXNKU09OLm1hcCgobWV0YXRoZW9yZW1KU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IG1ldGF0aGVvcmVtSlNPTiwgIC8vL1xuICAgICAgICAgIG1ldGF0aGVvcmVtID0gTWV0YXRoZW9yZW0uZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIChtZXRhdGhlb3JlbSk7XG4gIH0pO1xuXG4gIHJldHVybiBtZXRhdGhlb3JlbXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3NpdGlvbnNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBzdXBwb3NpdGlvbnMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBTdXBwb3NpdGlvbiB9ID0gZG9tLFxuICAgICAgICBzdXBwb3NpdGlvbnNKU09OID0gc3VwcG9zaXRpb25zOyAgLy8vXG5cbiAgc3VwcG9zaXRpb25zID0gc3VwcG9zaXRpb25zSlNPTi5tYXAoKHN1cHBvc2l0aW9uSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBzdXBwb3NpdGlvbkpTT04sIC8vL1xuICAgICAgICAgIHN1cHBvc2l0aW9uID0gU3VwcG9zaXRpb24uZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uO1xuICB9KTtcblxuICByZXR1cm4gc3VwcG9zaXRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3Vic3RpdHV0aW9uc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IHN1YnN0aXR1dGlvbnMgPSBbXSB9ID0ganNvbjsgIC8vL1xuXG4gIGNvbnN0IHN1YnN0aXR1dGlvbnNKU09OID0gc3Vic3RpdHV0aW9ucywgIC8vL1xuICAgICAgICBTdWJzdGl0dXRpb24gPSBTdGF0ZW1lbnRTdWJzdGl0dXRpb247IC8vL1xuXG4gIHN1YnN0aXR1dGlvbnMgPSBzdWJzdGl0dXRpb25zSlNPTi5tYXAoKHN1YnN0aXR1dGlvbkpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gc3Vic3RpdHV0aW9uSlNPTiwgIC8vL1xuICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IFN1YnN0aXR1dGlvbi5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9KTtcblxuICByZXR1cm4gc3Vic3RpdHV0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGF2YXJpYWJsZXNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBtZXRhdmFyaWFibGVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgTWV0YXZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgIG1ldGF2YXJpYWJsZXNKU09OID0gbWV0YXZhcmlhYmxlczsgLy8vXG5cbiAgbWV0YXZhcmlhYmxlcyA9IG1ldGF2YXJpYWJsZXNKU09OLm1hcCgobWV0YXZhcmlhYmxlSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBtZXRhdmFyaWFibGVKU09OLCAgLy8vXG4gICAgICAgICAgbWV0YXZhcmlhYmxlID0gTWV0YXZhcmlhYmxlLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiAobWV0YXZhcmlhYmxlKTtcbiAgfSk7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsZW1tYXNGcm9tTm90aGluZygpIHtcbiAgY29uc3QgbGVtbWFzID0gW107XG5cbiAgcmV0dXJuIGxlbW1hcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGFMZW1tYXNGcm9tTm90aGluZygpIHtcbiAgY29uc3QgbWV0YUxlbW1hcyA9IFtdO1xuXG4gIHJldHVybiBtZXRhTGVtbWFzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybVRvVGVybUpTT04odGVybSkge1xuICBjb25zdCB0ZXJtSlNPTiA9IHRlcm0udG9KU09OKCk7XG5cbiAgcmV0dXJuIHRlcm1KU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZVRvVHlwZUpTT04odHlwZSkge1xuICBjb25zdCB0eXBlSlNPTiA9ICh0eXBlICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICB0eXBlLnRvSlNPTigpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcblxuICByZXR1cm4gdHlwZUpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhVHlwZVRvTWV0YVR5cGVKU09OKG1ldGFUeXBlKSB7XG4gIGNvbnN0IG1ldGFUeXBlSlNPTiA9IChtZXRhVHlwZSAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFUeXBlLnRvSlNPTigpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG4gIHJldHVybiBtZXRhVHlwZUpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBlclR5cGVUb1N1cGVyVHlwZUpTT04oc3VwZXJUeXBlKSB7XG4gIGNvbnN0IHN1cGVyVHlwZUpTT04gPSBzdXBlclR5cGUudG9KU09OKCk7XG5cbiAgcmV0dXJuIHN1cGVyVHlwZUpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04oc3RhdGVtZW50KSB7XG4gIGxldCBzdGF0ZW1lbnRKU09OID0gbnVsbDtcblxuICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgc3RhdGVtZW50SlNPTiA9IHN0YXRlbWVudC50b0pTT04oKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uY2x1c2lvblRvQ29uY2x1c2lvbkpTT04oY29uY2x1c2lvbikge1xuICBjb25zdCBjb25jbHVzaW9uSlNPTiA9IGNvbmNsdXNpb24udG9KU09OKCk7XG5cbiAgcmV0dXJuIGNvbmNsdXNpb25KU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc2VxdWVudFRvQ29uc2VxdWVudEpTT04oY29uc2VxdWVudCkge1xuICBjb25zdCBjb25zZXF1ZW50SlNPTiA9IGNvbnNlcXVlbnQudG9KU09OKCk7XG5cbiAgcmV0dXJuIGNvbnNlcXVlbnRKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlVG9NZXRhdmFyaWFibGVKU09OKG1ldGF2YXJpYWJsZSkge1xuICBjb25zdCBtZXRhdmFyaWFibGVKU09OID0gbWV0YXZhcmlhYmxlLnRvSlNPTigpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2VkdXJlQ2FsbFRvUHJvY2VkdXJlQ2FsbEpTT04ocHJvY2VkdXJlQ2FsbCkge1xuICBsZXQgcHJvY2VkdXJlQ2FsbEpTT04gPSBudWxsO1xuXG4gIGlmIChwcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgcHJvY2VkdXJlQ2FsbEpTT04gPSBwcm9jZWR1cmVDYWxsLnRvSlNPTigpO1xuICB9XG5cbiAgcmV0dXJuIHByb2NlZHVyZUNhbGxKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZXNUb1R5cGVzSlNPTih0eXBlcykge1xuICBjb25zdCB0eXBlc0pTT04gPSB0eXBlcy5tYXAoKHR5cGUpID0+IHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGUudG9KU09OKCk7XG5cbiAgICB0eXBlID0gdHlwZUpTT047IC8vL1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH0pO1xuXG4gIHJldHVybiB0eXBlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydWxlc1RvUnVsZXNKU09OKHJ1bGVzKSB7XG4gIGNvbnN0IHJ1bGVzSlNPTiA9IHJ1bGVzLm1hcCgocnVsZSkgPT4ge1xuICAgIGNvbnN0IHJ1bGVKU09OID0gcnVsZS50b0pTT04oKTtcblxuICAgIHJ1bGUgPSBydWxlSlNPTjsgLy8vXG5cbiAgICByZXR1cm4gcnVsZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJ1bGVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxhYmVsc1RvTGFiZWxzSlNPTihsYWJlbHMpIHtcbiAgY29uc3QgbGFiZWxzSlNPTiA9IGxhYmVscy5tYXAoKGxhYmVsKSA9PiB7XG4gICAgY29uc3QgbGFiZWxKU09OID0gbGFiZWwudG9KU09OKCk7XG5cbiAgICByZXR1cm4gbGFiZWxKU09OO1xuICB9KTtcblxuICByZXR1cm4gbGFiZWxzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF4aW9tc1RvQXhpb21zSlNPTihheGlvbXMpIHtcbiAgY29uc3QgYXhpb21zSlNPTiA9IGF4aW9tcy5tYXAoKGF4aW9tKSA9PiB7XG4gICAgY29uc3QgYXhpb21KU09OID0gYXhpb20udG9KU09OKCk7XG5cbiAgICBheGlvbSA9IGF4aW9tSlNPTjsgLy8vXG5cbiAgICByZXR1cm4gYXhpb207XG4gIH0pO1xuXG4gIHJldHVybiBheGlvbXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlbWlzZXNUb1ByZW1pc2VzSlNPTihwcmVtaXNlcykge1xuICBjb25zdCBwcmVtaXNlc0pTT04gPSBwcmVtaXNlcy5tYXAoKHByZW1pc2UpID0+IHtcbiAgICBjb25zdCBwcmVtaXNlSlNPTiA9IHByZW1pc2UudG9KU09OKCk7XG5cbiAgICByZXR1cm4gcHJlbWlzZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aGVvcmVtc1RvVGhlb3JlbXNKU09OKHRoZW9yZW1zKSB7XG4gIGNvbnN0IHRoZW9yZW1zSlNPTiA9IHRoZW9yZW1zLm1hcCgodGhlb3JlbSkgPT4ge1xuICAgIGNvbnN0IHRoZW9yZW1KU09OID0gdGhlb3JlbS50b0pTT04oKTtcblxuICAgIHRoZW9yZW0gPSB0aGVvcmVtSlNPTjsgLy8vXG5cbiAgICByZXR1cm4gdGhlb3JlbTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRoZW9yZW1zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlc1RvVmFyaWFibGVzSlNPTih2YXJpYWJsZXMpIHtcbiAgY29uc3QgdmFyaWFibGVzSlNPTiA9IHZhcmlhYmxlcy5tYXAoKHZhcmlhYmxlKSA9PiB7XG4gICAgY29uc3QgdmFyaWFibGVKU09OID0gdmFyaWFibGUudG9KU09OKCk7XG5cbiAgICB2YXJpYWJsZSA9IHZhcmlhYmxlSlNPTjsgIC8vL1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9KTtcblxuICByZXR1cm4gdmFyaWFibGVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlcnNUb1BhcmFtZXRlcnNKU09OKHBhcmFtZXRlcnMpIHtcbiAgY29uc3QgcGFyYW1ldGVyc0pTT04gPSBwYXJhbWV0ZXJzLm1hcCgocGFyYW1ldGVyKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVySlNPTiA9IHBhcmFtZXRlci50b0pTT04oKTtcblxuICAgIHBhcmFtZXRlciA9IHBhcmFtZXRlckpTT047ICAvLy9cblxuICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gIH0pO1xuXG4gIHJldHVybiBwYXJhbWV0ZXJzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnRpZXNUb1Byb3BlcnRpZXNKU09OKHByb3BlcnRpZXMpIHtcbiAgY29uc3QgcHJvcGVydGllc0pTT04gPSBwcm9wZXJ0aWVzLm1hcCgocHJvcGVydHkpID0+IHtcbiAgICBjb25zdCBwcm9wZXJ0eUpTT04gPSBwcm9wZXJ0eS50b0pTT04oKTtcblxuICAgIHByb3BlcnR5ID0gcHJvcGVydHlKU09OOyAgLy8vXG5cbiAgICByZXR1cm4gcHJvcGVydHk7XG4gIH0pO1xuXG4gIHJldHVybiBwcm9wZXJ0aWVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmplY3R1cmVzVG9Db25qZWN0dXJlc0pTT04oY29uamVjdHVyZXMpIHtcbiAgY29uc3QgY29uamVjdHVyZXNKU09OID0gY29uamVjdHVyZXMubWFwKChjb25qZWN0dXJlKSA9PiB7XG4gICAgY29uc3QgY29uamVjdHVyZUpTT04gPSBjb25qZWN0dXJlLnRvSlNPTigpO1xuXG4gICAgY29uamVjdHVyZSA9IGNvbmplY3R1cmVKU09OOyAvLy9cblxuICAgIHJldHVybiBjb25qZWN0dXJlO1xuICB9KTtcblxuICByZXR1cm4gY29uamVjdHVyZXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluYXRvcnNUb0NvbWJpbmF0b3JzSlNPTihjb21iaW5hdG9ycykge1xuICBjb25zdCBjb21iaW5hdG9yc0pTT04gPSBjb21iaW5hdG9ycy5tYXAoKGNvbWJpbmF0b3IpID0+IHtcbiAgICBjb25zdCBjb21iaW5hdG9ySlNPTiA9IGNvbWJpbmF0b3IudG9KU09OKCk7XG5cbiAgICBjb21iaW5hdG9yID0gY29tYmluYXRvckpTT047IC8vL1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3I7XG4gIH0pO1xuXG4gIHJldHVybiBjb21iaW5hdG9yc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3NpdGlvbnNUb1N1cHBvc2l0aW9uc0pTT04oc3VwcG9zaXRpb25zKSB7XG4gIGNvbnN0IHN1cHBvc2l0aW9uc0pTT04gPSBzdXBwb3NpdGlvbnMubWFwKChzdXBwb3NpdGlvbikgPT4ge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9uSlNPTiA9IHN1cHBvc2l0aW9uLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHN1cHBvc2l0aW9uc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RvcnNUb0NvbnN0cnVjdG9yc0pTT04oY29uc3RydWN0b3JzKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yc0pTT04gPSBjb25zdHJ1Y3RvcnMubWFwKChjb25zdHJ1Y3RvcikgPT4ge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ySlNPTiA9IGNvbnN0cnVjdG9yLnRvSlNPTigpO1xuXG4gICAgY29uc3RydWN0b3IgPSBjb25zdHJ1Y3RvckpTT047ICAvLy9cblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcjtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnN0cnVjdG9yc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdGhlb3JlbXNUb01ldGF0aGVvcmVtc0pTT04obWV0YXRoZW9yZW1zKSB7XG4gIGNvbnN0IG1ldGF0aGVvcmVtc0pTT04gPSBtZXRhdGhlb3JlbXMubWFwKChtZXRhdGhlb3JlbSkgPT4ge1xuICAgIGNvbnN0IG1ldGF0aGVvcmVtSlNPTiA9IG1ldGF0aGVvcmVtLnRvSlNPTigpO1xuXG4gICAgbWV0YXRoZW9yZW0gPSBtZXRhdGhlb3JlbUpTT047IC8vL1xuXG4gICAgcmV0dXJuIG1ldGF0aGVvcmVtO1xuICB9KTtcblxuICByZXR1cm4gbWV0YXRoZW9yZW1zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnN0aXR1dGlvbnNUb1N1YnN0aXR1dGlvbnNKU09OKHN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3Qgc3Vic3RpdHV0aW9uc0pTT04gPSBzdWJzdGl0dXRpb25zLm1hcFN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uSlNPTiA9IHN1YnN0aXR1dGlvbi50b0pTT04oKTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25KU09OO1xuICB9KTtcblxuICByZXR1cm4gc3Vic3RpdHV0aW9uc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdmFyaWFibGVzVG9NZXRhdmFyaWFibGVzSlNPTihtZXRhdmFyaWFibGVzKSB7XG4gIGNvbnN0IG1ldGF2YXJpYWJsZXNKU09OID0gbWV0YXZhcmlhYmxlcy5tYXAoKG1ldGF2YXJpYWJsZSkgPT4ge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZUpTT04gPSBtZXRhdmFyaWFibGUudG9KU09OKCk7XG5cbiAgICBtZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGVKU09OOyAgLy8vXG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlO1xuICB9KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlc0pTT047XG59XG4iXSwibmFtZXMiOlsiYXhpb21zRnJvbUpTT04iLCJheGlvbXNUb0F4aW9tc0pTT04iLCJjb21iaW5hdG9yc0Zyb21KU09OIiwiY29tYmluYXRvcnNUb0NvbWJpbmF0b3JzSlNPTiIsImNvbmNsdXNpb25Gcm9tSlNPTiIsImNvbmNsdXNpb25Ub0NvbmNsdXNpb25KU09OIiwiY29uamVjdHVyZXNGcm9tSlNPTiIsImNvbmplY3R1cmVzVG9Db25qZWN0dXJlc0pTT04iLCJjb25zZXF1ZW50RnJvbUpTT04iLCJjb25zZXF1ZW50VG9Db25zZXF1ZW50SlNPTiIsImNvbnN0cnVjdG9yc0Zyb21KU09OIiwiY29uc3RydWN0b3JzVG9Db25zdHJ1Y3RvcnNKU09OIiwibGFiZWxzRnJvbUpTT04iLCJsYWJlbHNUb0xhYmVsc0pTT04iLCJsZW1tYXNGcm9tTm90aGluZyIsIm1ldGFMZW1tYXNGcm9tTm90aGluZyIsIm1ldGFUeXBlRnJvbUpTT04iLCJtZXRhVHlwZVRvTWV0YVR5cGVKU09OIiwibWV0YXRoZW9yZW1zRnJvbUpTT04iLCJtZXRhdGhlb3JlbXNUb01ldGF0aGVvcmVtc0pTT04iLCJtZXRhdmFyaWFibGVGcm9tSlNPTiIsIm1ldGF2YXJpYWJsZVRvTWV0YXZhcmlhYmxlSlNPTiIsIm1ldGF2YXJpYWJsZXNGcm9tSlNPTiIsIm1ldGF2YXJpYWJsZXNUb01ldGF2YXJpYWJsZXNKU09OIiwicGFyYW1ldGVyc0Zyb21KU09OIiwicGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04iLCJwcmVtaXNlc0Zyb21KU09OIiwicHJlbWlzZXNUb1ByZW1pc2VzSlNPTiIsInByb2NlZHVyZUNhbGxGcm9tSlNPTiIsInByb2NlZHVyZUNhbGxUb1Byb2NlZHVyZUNhbGxKU09OIiwicHJvcGVydGllc1RvUHJvcGVydGllc0pTT04iLCJyZWZlcmVuY2VGcm9tSlNPTiIsInJ1bGVzRnJvbUpTT04iLCJydWxlc1RvUnVsZXNKU09OIiwic3RhdGVtZW50RnJvbUpTT04iLCJzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04iLCJzdWJzdGl0dXRpb25zRnJvbUpTT04iLCJzdWJzdGl0dXRpb25zVG9TdWJzdGl0dXRpb25zSlNPTiIsInN1cGVyVHlwZUZyb21KU09OIiwic3VwZXJUeXBlVG9TdXBlclR5cGVKU09OIiwic3VwcG9zaXRpb25zRnJvbUpTT04iLCJzdXBwb3NpdGlvbnNUb1N1cHBvc2l0aW9uc0pTT04iLCJ0ZXJtRnJvbUpTT04iLCJ0ZXJtVG9UZXJtSlNPTiIsInRoZW9yZW1zRnJvbUpTT04iLCJ0aGVvcmVtc1RvVGhlb3JlbXNKU09OIiwidHlwZUZyb21KU09OIiwidHlwZVRvVHlwZUpTT04iLCJ0eXBlc0Zyb21KU09OIiwidHlwZXNUb1R5cGVzSlNPTiIsInZhcmlhYmxlc0Zyb21KU09OIiwidmFyaWFibGVzVG9WYXJpYWJsZXNKU09OIiwianNvbiIsImZpbGVDb250ZXh0IiwidGVybSIsInRlcm1KU09OIiwiVGVybSIsImRvbSIsImZyb21KU09OIiwidHlwZSIsIm5hbWUiLCJ0eXBlTmFtZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsIm1ldGFUeXBlIiwibWV0YVR5cGVOYW1lIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUiLCJzdXBlclR5cGUiLCJzdXBlclR5cGVKU09OIiwic3RhdGVtZW50IiwiU3RhdGVtZW50Iiwic3RhdGVtZW50SlNPTiIsInJlZmVyZW5jZSIsIlJlZmVyZW5jZSIsInJlZmVyZW5jZUpTT04iLCJjb25jbHVzaW9uIiwiQ29uY2x1c2lvbiIsImNvbmNsdXNpb25KU09OIiwiY29uc2VxdWVudCIsIkNvbnNlcXVlbnQiLCJjb25zZXF1ZW50SlNPTiIsIm1ldGF2YXJpYWJsZSIsIk1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUpTT04iLCJwcm9jZWR1cmVDYWxsIiwiUHJvY2VkdXJlQ2FsbCIsInByb2NlZHVyZUNhbGxKU09OIiwidHlwZXMiLCJ0eXBlc0pTT04iLCJUeXBlIiwiZm9yRWFjaCIsInR5cGVKU09OIiwicHVzaCIsInJ1bGVzIiwiUnVsZSIsInJ1bGVzSlNPTiIsIm1hcCIsInJ1bGVKU09OIiwicnVsZSIsImxhYmVscyIsIkxhYmVsIiwibGFiZWxzSlNPTiIsImxhYmVsSlNPTiIsImxhYmVsIiwiYXhpb21zIiwiQXhpb20iLCJheGlvbXNKU09OIiwiYXhpb21KU09OIiwiYXhpb20iLCJwcmVtaXNlcyIsIlByZW1pc2UiLCJwcmVtaXNlc0pTT04iLCJwcmVtaXNlSlNPTiIsInByZW1pc2UiLCJ0aGVvcmVtcyIsIlRoZW9yZW0iLCJ0aGVvcmVtc0pTT04iLCJ0aGVvcmVtSlNPTiIsInRoZW9yZW0iLCJ2YXJpYWJsZXMiLCJWYXJpYWJsZSIsInZhcmlhYmxlc0pTT04iLCJ2YXJpYWJsZUpTT04iLCJ2YXJpYWJsZSIsInBhcmFtZXRlcnMiLCJQYXJhbWV0ZXIiLCJwYXJhbWV0ZXJzSlNPTiIsInBhcmFtZXRlckpTT04iLCJwYXJhbWV0ZXIiLCJjb25qZWN0dXJlcyIsIkNvbmplY3R1cmUiLCJjb25qZWN0dXJlc0pTT04iLCJjb25qZWN0dXJlSlNPTiIsImNvbmplY3R1cmUiLCJjb21iaW5hdG9ycyIsIkNvbWJpbmF0b3IiLCJjb21iaW5hdG9yc0pTT04iLCJjb21iaW5hdG9ySlNPTiIsImNvbWJpbmF0b3IiLCJjb25zdHJ1Y3RvcnMiLCJDb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yc0pTT04iLCJjb25zdHJ1Y3RvckpTT04iLCJjb25zdHJ1Y3RvciIsIm1ldGF0aGVvcmVtcyIsIk1ldGF0aGVvcmVtIiwibWV0YXRoZW9yZW1zSlNPTiIsIm1ldGF0aGVvcmVtSlNPTiIsIm1ldGF0aGVvcmVtIiwic3VwcG9zaXRpb25zIiwiU3VwcG9zaXRpb24iLCJzdXBwb3NpdGlvbnNKU09OIiwic3VwcG9zaXRpb25KU09OIiwic3VwcG9zaXRpb24iLCJzdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9uc0pTT04iLCJTdWJzdGl0dXRpb24iLCJTdGF0ZW1lbnRTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb25KU09OIiwic3Vic3RpdHV0aW9uIiwibWV0YXZhcmlhYmxlcyIsIm1ldGF2YXJpYWJsZXNKU09OIiwibGVtbWFzIiwibWV0YUxlbW1hcyIsInRvSlNPTiIsIm1ldGFUeXBlSlNPTiIsInByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzSlNPTiIsInByb3BlcnR5IiwicHJvcGVydHlKU09OIiwibWFwU3Vic3RpdHV0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUE0TGdCQSxjQUFjO2VBQWRBOztJQStTQUMsa0JBQWtCO2VBQWxCQTs7SUEvTUFDLG1CQUFtQjtlQUFuQkE7O0lBaVNBQyw0QkFBNEI7ZUFBNUJBOztJQXBlQUMsa0JBQWtCO2VBQWxCQTs7SUFvVkFDLDBCQUEwQjtlQUExQkE7O0lBaktBQyxtQkFBbUI7ZUFBbkJBOztJQXFTQUMsNEJBQTRCO2VBQTVCQTs7SUEzY0FDLGtCQUFrQjtlQUFsQkE7O0lBNlVBQywwQkFBMEI7ZUFBMUJBOztJQXZJQUMsb0JBQW9CO2VBQXBCQTs7SUF1U0FDLDhCQUE4QjtlQUE5QkE7O0lBdmFBQyxjQUFjO2VBQWRBOztJQXFUQUMsa0JBQWtCO2VBQWxCQTs7SUFyR0FDLGlCQUFpQjtlQUFqQkE7O0lBTUFDLHFCQUFxQjtlQUFyQkE7O0lBbFdBQyxnQkFBZ0I7ZUFBaEJBOztJQXNYQUMsc0JBQXNCO2VBQXRCQTs7SUExRkFDLG9CQUFvQjtlQUFwQkE7O0lBbVNBQyw4QkFBOEI7ZUFBOUJBOztJQTVlQUMsb0JBQW9CO2VBQXBCQTs7SUFzVUFDLDhCQUE4QjtlQUE5QkE7O0lBN0VBQyxxQkFBcUI7ZUFBckJBOztJQXlRQUMsZ0NBQWdDO2VBQWhDQTs7SUF6WEFDLGtCQUFrQjtlQUFsQkE7O0lBNlJBQywwQkFBMEI7ZUFBMUJBOztJQTdVQUMsZ0JBQWdCO2VBQWhCQTs7SUEyU0FDLHNCQUFzQjtlQUF0QkE7O0lBdlhBQyxxQkFBcUI7ZUFBckJBOztJQStUQUMsZ0NBQWdDO2VBQWhDQTs7SUFzR0FDLDBCQUEwQjtlQUExQkE7O0lBemRBQyxpQkFBaUI7ZUFBakJBOztJQWdGQUMsYUFBYTtlQUFiQTs7SUF5VEFDLGdCQUFnQjtlQUFoQkE7O0lBeFpBQyxpQkFBaUI7ZUFBakJBOztJQXNXQUMsd0JBQXdCO2VB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
|
|
575
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvanNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgU3RhdGVtZW50U3Vic3RpdHV0aW9uIGZyb20gXCIuLi9zdWJzdGl0dXRpb24vc3RhdGVtZW50XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgdGVybSB9ID0ganNvbjtcblxuICBjb25zdCB0ZXJtSlNPTiA9IHRlcm07ICAvLy9cblxuICBqc29uID0gdGVybUpTT047ICAvLy9cblxuICBjb25zdCB7IFRlcm0gfSA9IGRvbTtcblxuICB0ZXJtID0gVGVybS5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgcmV0dXJuIHRlcm07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgdHlwZSB9ID0ganNvbjtcblxuICBpZiAodHlwZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gdHlwZSxcbiAgICAgICAgICB0eXBlTmFtZSA9IG5hbWU7ICAvLy9cblxuICAgIHR5cGUgPSBmaWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhVHlwZUZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IG1ldGFUeXBlIH0gPSBqc29uO1xuXG4gIGlmIChtZXRhVHlwZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gbWV0YVR5cGUsXG4gICAgICAgICAgbWV0YVR5cGVOYW1lID0gbmFtZTsgIC8vL1xuXG4gICAgbWV0YVR5cGUgPSBmaWxlQ29udGV4dC5maW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZShtZXRhVHlwZU5hbWUpO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFUeXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3VwZXJUeXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgc3VwZXJUeXBlIH0gPSBqc29uO1xuXG4gIGNvbnN0IHN1cGVyVHlwZUpTT04gPSBzdXBlclR5cGU7ICAvLy9cblxuICBqc29uID0gc3VwZXJUeXBlSlNPTjsgLy8vXG5cbiAgY29uc3QgeyBuYW1lIH0gPSBqc29uLFxuICAgICAgICB0eXBlTmFtZSA9IG5hbWUsICAvLy9cbiAgICAgICAgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgc3VwZXJUeXBlID0gdHlwZTsgLy8vXG5cbiAgcmV0dXJuIHN1cGVyVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlbWVudEZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IHN0YXRlbWVudCA9IG51bGwgfSA9IGpzb247XG5cbiAgaWYgKHN0YXRlbWVudCAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHsgU3RhdGVtZW50IH0gPSBkb20sXG4gICAgICAgICAgc3RhdGVtZW50SlNPTiA9IHN0YXRlbWVudDsgIC8vL1xuXG4gICAganNvbiA9IHN0YXRlbWVudEpTT047IC8vL1xuXG4gICAgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWZlcmVuY2VGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyByZWZlcmVuY2UgfSA9IGpzb247XG5cbiAgY29uc3QgeyBSZWZlcmVuY2UgfSA9IGRvbSxcbiAgICAgICAgcmVmZXJlbmNlSlNPTiA9IHJlZmVyZW5jZTsgIC8vL1xuXG4gIGpzb24gPSByZWZlcmVuY2VKU09OOyAgLy8vXG5cbiAgcmVmZXJlbmNlID0gUmVmZXJlbmNlLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICByZXR1cm4gcmVmZXJlbmNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uY2x1c2lvbkZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IGNvbmNsdXNpb24gfSA9IGpzb247XG5cbiAgY29uc3QgeyBDb25jbHVzaW9uIH0gPSBkb20sXG4gICAgICAgIGNvbmNsdXNpb25KU09OID0gY29uY2x1c2lvbjsgIC8vL1xuXG4gIGpzb24gPSBjb25jbHVzaW9uSlNPTjsgIC8vL1xuXG4gIGNvbmNsdXNpb24gPSBDb25jbHVzaW9uLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICByZXR1cm4gY29uY2x1c2lvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnNlcXVlbnRGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBjb25zZXF1ZW50IH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQ29uc2VxdWVudCB9ID0gZG9tLFxuICAgICAgICBjb25zZXF1ZW50SlNPTiA9IGNvbnNlcXVlbnQ7ICAvLy9cblxuICBqc29uID0gY29uc2VxdWVudEpTT047ICAvLy9cblxuICBjb25zZXF1ZW50ID0gQ29uc2VxdWVudC5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbnNlcXVlbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdmFyaWFibGVGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBtZXRhdmFyaWFibGUgfSA9IGpzb247XG5cbiAgY29uc3QgeyBNZXRhdmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbWV0YXZhcmlhYmxlSlNPTiA9IG1ldGF2YXJpYWJsZTsgIC8vL1xuXG4gIGpzb24gPSBtZXRhdmFyaWFibGVKU09OOyAvLy9cblxuICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVDYWxsRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgcHJvY2VkdXJlQ2FsbCA9IG51bGwgfSA9IGpzb247XG5cbiAgaWYgKHByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICBjb25zdCB7IFByb2NlZHVyZUNhbGwgfSA9IGRvbSxcbiAgICAgICAgICBwcm9jZWR1cmVDYWxsSlNPTiA9IHByb2NlZHVyZUNhbGw7ICAvLy9cblxuICAgIGpzb24gPSBwcm9jZWR1cmVDYWxsSlNPTjsgLy8vXG5cbiAgICBwcm9jZWR1cmVDYWxsID0gUHJvY2VkdXJlQ2FsbC5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gcHJvY2VkdXJlQ2FsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVzRnJvbUpTT04oanNvbiwgdHlwZXMsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IHsgdHlwZXM6IHR5cGVzSlNPTiB9ID0ganNvbjtcblxuICBjb25zdCB7IFR5cGUgfSA9IGRvbTtcblxuICB0eXBlc0pTT04uZm9yRWFjaCgodHlwZUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICB0eXBlID0gVHlwZS5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICB0eXBlcy5wdXNoKHR5cGUpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bGVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgcnVsZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBSdWxlIH0gPSBkb20sXG4gICAgICAgIHJ1bGVzSlNPTiA9IHJ1bGVzOyAvLy9cblxuICBydWxlcyA9IHJ1bGVzSlNPTi5tYXAoKHJ1bGVKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHJ1bGVKU09OLCAgLy8vXG4gICAgICAgICAgcnVsZSA9IFJ1bGUuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHJ1bGU7XG4gIH0pO1xuXG4gIHJldHVybiBydWxlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxhYmVsc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IGxhYmVscyB9ID0ganNvbjtcblxuICBjb25zdCB7IExhYmVsIH0gPSBkb20sXG4gICAgICAgIGxhYmVsc0pTT04gPSBsYWJlbHM7ICAvLy9cblxuICBsYWJlbHMgPSBsYWJlbHNKU09OLm1hcCgobGFiZWxKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGxhYmVsSlNPTiwgLy8vXG4gICAgICAgICAgbGFiZWwgPSBMYWJlbC5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH0pO1xuXG4gIHJldHVybiBsYWJlbHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBheGlvbXNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBheGlvbXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBBeGlvbSB9ID0gZG9tLFxuICAgICAgICBheGlvbXNKU09OID0gYXhpb21zOyAvLy9cblxuICBheGlvbXMgPSBheGlvbXNKU09OLm1hcCgoYXhpb21KU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGF4aW9tSlNPTiwgIC8vL1xuICAgICAgICAgIGF4aW9tID0gQXhpb20uZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGF4aW9tO1xuICB9KTtcblxuICByZXR1cm4gYXhpb21zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlbWlzZXNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBwcmVtaXNlcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFByZW1pc2UgfSA9IGRvbSxcbiAgICAgICAgcHJlbWlzZXNKU09OID0gcHJlbWlzZXM7ICAvLy9cblxuICBwcmVtaXNlcyA9IHByZW1pc2VzSlNPTi5tYXAoKHByZW1pc2VKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHByZW1pc2VKU09OLCAvLy9cbiAgICAgICAgICBwcmVtaXNlID0gUHJlbWlzZS5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gcHJlbWlzZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHByZW1pc2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhlb3JlbXNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyB0aGVvcmVtcyB9ID0ganNvbjtcblxuICBjb25zdCB7IFRoZW9yZW0gfSA9IGRvbSxcbiAgICAgICAgdGhlb3JlbXNKU09OID0gdGhlb3JlbXM7IC8vL1xuXG4gIHRoZW9yZW1zID0gdGhlb3JlbXNKU09OLm1hcCgodGhlb3JlbUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gdGhlb3JlbUpTT04sICAvLy9cbiAgICAgICAgICB0aGVvcmVtID0gVGhlb3JlbS5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gdGhlb3JlbTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRoZW9yZW1zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgdmFyaWFibGVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgdmFyaWFibGVzSlNPTiA9IHZhcmlhYmxlczsgLy8vXG5cbiAgdmFyaWFibGVzID0gdmFyaWFibGVzSlNPTi5tYXAoKHZhcmlhYmxlSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSB2YXJpYWJsZUpTT04sICAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHZhcmlhYmxlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnRpZXNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBwcm9wZXJ0aWVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgUHJvcGVydHkgfSA9IGRvbSxcbiAgICAgICAgcHJvcGVydGllc0pTT04gPSBwcm9wZXJ0aWVzOyAvLy9cblxuICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc0pTT04ubWFwKChwcm9wZXJ0eUpTT04pID0+IHtcbiAgICBjb25zdCBqc29uID0gcHJvcGVydHlKU09OLCAgLy8vXG4gICAgICAgICAgcHJvcGVydHkgPSBQcm9wZXJ0eS5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gcHJvcGVydHk7XG4gIH0pO1xuXG4gIHJldHVybiBwcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyYW1ldGVyc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IHBhcmFtZXRlcnMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBQYXJhbWV0ZXIgfSA9IGRvbSxcbiAgICAgICAgcGFyYW1ldGVyc0pTT04gPSBwYXJhbWV0ZXJzOyAvLy9cblxuICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVyc0pTT04ubWFwKChwYXJhbWV0ZXJKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHBhcmFtZXRlckpTT04sICAvLy9cbiAgICAgICAgICBwYXJhbWV0ZXIgPSBQYXJhbWV0ZXIuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHBhcmFtZXRlcjtcbiAgfSk7XG5cbiAgcmV0dXJuIHBhcmFtZXRlcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25qZWN0dXJlc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IGNvbmplY3R1cmVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQ29uamVjdHVyZSB9ID0gZG9tLFxuICAgICAgICBjb25qZWN0dXJlc0pTT04gPSBjb25qZWN0dXJlczsgLy8vXG5cbiAgY29uamVjdHVyZXMgPSBjb25qZWN0dXJlc0pTT04ubWFwKChjb25qZWN0dXJlSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBjb25qZWN0dXJlSlNPTiwgIC8vL1xuICAgICAgICAgIGNvbmplY3R1cmUgPSBDb25qZWN0dXJlLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBjb25qZWN0dXJlO1xuICB9KTtcblxuICByZXR1cm4gY29uamVjdHVyZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5hdG9yc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IGNvbWJpbmF0b3JzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgQ29tYmluYXRvciB9ID0gZG9tLFxuICAgICAgICBjb21iaW5hdG9yc0pTT04gPSBjb21iaW5hdG9yczsgLy8vXG5cbiAgY29tYmluYXRvcnMgPSBjb21iaW5hdG9yc0pTT04ubWFwKChjb21iaW5hdG9ySlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBjb21iaW5hdG9ySlNPTiwgIC8vL1xuICAgICAgICAgIGNvbWJpbmF0b3IgPSBDb21iaW5hdG9yLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBjb21iaW5hdG9yO1xuICB9KTtcblxuICByZXR1cm4gY29tYmluYXRvcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RvcnNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICBsZXQgeyBjb25zdHJ1Y3RvcnMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBDb25zdHJ1Y3RvciB9ID0gZG9tLFxuICAgICAgICBjb25zdHJ1Y3RvcnNKU09OID0gY29uc3RydWN0b3JzOyAvLy9cblxuICBjb25zdHJ1Y3RvcnMgPSBjb25zdHJ1Y3RvcnNKU09OLm1hcCgoY29uc3RydWN0b3JKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IGNvbnN0cnVjdG9ySlNPTiwgIC8vL1xuICAgICAgICAgIGNvbnN0cnVjdG9yID0gQ29uc3RydWN0b3IuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yO1xuICB9KTtcblxuICByZXR1cm4gY29uc3RydWN0b3JzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXRoZW9yZW1zRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgbWV0YXRoZW9yZW1zIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgTWV0YXRoZW9yZW0gfSA9IGRvbSxcbiAgICAgICAgbWV0YXRoZW9yZW1zSlNPTiA9IG1ldGF0aGVvcmVtczsgLy8vXG5cbiAgbWV0YXRoZW9yZW1zID0gbWV0YXRoZW9yZW1zSlNPTi5tYXAoKG1ldGF0aGVvcmVtSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBtZXRhdGhlb3JlbUpTT04sICAvLy9cbiAgICAgICAgICBtZXRhdGhlb3JlbSA9IE1ldGF0aGVvcmVtLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBtZXRhdGhlb3JlbTtcbiAgfSk7XG5cbiAgcmV0dXJuIG1ldGF0aGVvcmVtcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvc2l0aW9uc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IHN1cHBvc2l0aW9ucyB9ID0ganNvbjtcblxuICBjb25zdCB7IFN1cHBvc2l0aW9uIH0gPSBkb20sXG4gICAgICAgIHN1cHBvc2l0aW9uc0pTT04gPSBzdXBwb3NpdGlvbnM7ICAvLy9cblxuICBzdXBwb3NpdGlvbnMgPSBzdXBwb3NpdGlvbnNKU09OLm1hcCgoc3VwcG9zaXRpb25KU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHN1cHBvc2l0aW9uSlNPTiwgLy8vXG4gICAgICAgICAgc3VwcG9zaXRpb24gPSBTdXBwb3NpdGlvbi5mcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gc3VwcG9zaXRpb247XG4gIH0pO1xuXG4gIHJldHVybiBzdXBwb3NpdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWJzdGl0dXRpb25zRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHsgc3Vic3RpdHV0aW9ucyA9IFtdIH0gPSBqc29uOyAgLy8vXG5cbiAgY29uc3Qgc3Vic3RpdHV0aW9uc0pTT04gPSBzdWJzdGl0dXRpb25zLCAgLy8vXG4gICAgICAgIFN1YnN0aXR1dGlvbiA9IFN0YXRlbWVudFN1YnN0aXR1dGlvbjsgLy8vXG5cbiAgc3Vic3RpdHV0aW9ucyA9IHN1YnN0aXR1dGlvbnNKU09OLm1hcCgoc3Vic3RpdHV0aW9uSlNPTikgPT4ge1xuICAgIGNvbnN0IGpzb24gPSBzdWJzdGl0dXRpb25KU09OLCAgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9uID0gU3Vic3RpdHV0aW9uLmZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb247XG4gIH0pO1xuXG4gIHJldHVybiBzdWJzdGl0dXRpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gIGxldCB7IG1ldGF2YXJpYWJsZXMgfSA9IGpzb247XG5cbiAgY29uc3QgeyBNZXRhdmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbWV0YXZhcmlhYmxlc0pTT04gPSBtZXRhdmFyaWFibGVzOyAvLy9cblxuICBtZXRhdmFyaWFibGVzID0gbWV0YXZhcmlhYmxlc0pTT04ubWFwKChtZXRhdmFyaWFibGVKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IG1ldGF2YXJpYWJsZUpTT04sICAvLy9cbiAgICAgICAgICBtZXRhdmFyaWFibGUgPSBNZXRhdmFyaWFibGUuZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbiAgfSk7XG5cbiAgcmV0dXJuIG1ldGF2YXJpYWJsZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsZW1tYXNGcm9tTm90aGluZygpIHtcbiAgY29uc3QgbGVtbWFzID0gW107XG5cbiAgcmV0dXJuIGxlbW1hcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ldGFMZW1tYXNGcm9tTm90aGluZygpIHtcbiAgY29uc3QgbWV0YUxlbW1hcyA9IFtdO1xuXG4gIHJldHVybiBtZXRhTGVtbWFzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybVRvVGVybUpTT04odGVybSkge1xuICBjb25zdCB0ZXJtSlNPTiA9IHRlcm0udG9KU09OKCk7XG5cbiAgcmV0dXJuIHRlcm1KU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZVRvVHlwZUpTT04odHlwZSkge1xuICBjb25zdCB0eXBlSlNPTiA9ICh0eXBlICE9PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICB0eXBlLnRvSlNPTigpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcblxuICByZXR1cm4gdHlwZUpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhVHlwZVRvTWV0YVR5cGVKU09OKG1ldGFUeXBlKSB7XG4gIGNvbnN0IG1ldGFUeXBlSlNPTiA9IChtZXRhVHlwZSAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFUeXBlLnRvSlNPTigpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG4gIHJldHVybiBtZXRhVHlwZUpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBlclR5cGVUb1N1cGVyVHlwZUpTT04oc3VwZXJUeXBlKSB7XG4gIGNvbnN0IHN1cGVyVHlwZUpTT04gPSBzdXBlclR5cGUudG9KU09OKCk7XG5cbiAgcmV0dXJuIHN1cGVyVHlwZUpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04oc3RhdGVtZW50KSB7XG4gIGxldCBzdGF0ZW1lbnRKU09OID0gbnVsbDtcblxuICBpZiAoc3RhdGVtZW50ICE9PSBudWxsKSB7XG4gICAgc3RhdGVtZW50SlNPTiA9IHN0YXRlbWVudC50b0pTT04oKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uY2x1c2lvblRvQ29uY2x1c2lvbkpTT04oY29uY2x1c2lvbikge1xuICBjb25zdCBjb25jbHVzaW9uSlNPTiA9IGNvbmNsdXNpb24udG9KU09OKCk7XG5cbiAgcmV0dXJuIGNvbmNsdXNpb25KU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uc2VxdWVudFRvQ29uc2VxdWVudEpTT04oY29uc2VxdWVudCkge1xuICBjb25zdCBjb25zZXF1ZW50SlNPTiA9IGNvbnNlcXVlbnQudG9KU09OKCk7XG5cbiAgcmV0dXJuIGNvbnNlcXVlbnRKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWV0YXZhcmlhYmxlVG9NZXRhdmFyaWFibGVKU09OKG1ldGF2YXJpYWJsZSkge1xuICBjb25zdCBtZXRhdmFyaWFibGVKU09OID0gbWV0YXZhcmlhYmxlLnRvSlNPTigpO1xuXG4gIHJldHVybiBtZXRhdmFyaWFibGVKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2VkdXJlQ2FsbFRvUHJvY2VkdXJlQ2FsbEpTT04ocHJvY2VkdXJlQ2FsbCkge1xuICBsZXQgcHJvY2VkdXJlQ2FsbEpTT04gPSBudWxsO1xuXG4gIGlmIChwcm9jZWR1cmVDYWxsICE9PSBudWxsKSB7XG4gICAgcHJvY2VkdXJlQ2FsbEpTT04gPSBwcm9jZWR1cmVDYWxsLnRvSlNPTigpO1xuICB9XG5cbiAgcmV0dXJuIHByb2NlZHVyZUNhbGxKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHlwZXNUb1R5cGVzSlNPTih0eXBlcykge1xuICBjb25zdCB0eXBlc0pTT04gPSB0eXBlcy5tYXAoKHR5cGUpID0+IHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGUudG9KU09OKCk7XG5cbiAgICB0eXBlID0gdHlwZUpTT047IC8vL1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH0pO1xuXG4gIHJldHVybiB0eXBlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydWxlc1RvUnVsZXNKU09OKHJ1bGVzKSB7XG4gIGNvbnN0IHJ1bGVzSlNPTiA9IHJ1bGVzLm1hcCgocnVsZSkgPT4ge1xuICAgIGNvbnN0IHJ1bGVKU09OID0gcnVsZS50b0pTT04oKTtcblxuICAgIHJ1bGUgPSBydWxlSlNPTjsgLy8vXG5cbiAgICByZXR1cm4gcnVsZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJ1bGVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxhYmVsc1RvTGFiZWxzSlNPTihsYWJlbHMpIHtcbiAgY29uc3QgbGFiZWxzSlNPTiA9IGxhYmVscy5tYXAoKGxhYmVsKSA9PiB7XG4gICAgY29uc3QgbGFiZWxKU09OID0gbGFiZWwudG9KU09OKCk7XG5cbiAgICByZXR1cm4gbGFiZWxKU09OO1xuICB9KTtcblxuICByZXR1cm4gbGFiZWxzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF4aW9tc1RvQXhpb21zSlNPTihheGlvbXMpIHtcbiAgY29uc3QgYXhpb21zSlNPTiA9IGF4aW9tcy5tYXAoKGF4aW9tKSA9PiB7XG4gICAgY29uc3QgYXhpb21KU09OID0gYXhpb20udG9KU09OKCk7XG5cbiAgICBheGlvbSA9IGF4aW9tSlNPTjsgLy8vXG5cbiAgICByZXR1cm4gYXhpb207XG4gIH0pO1xuXG4gIHJldHVybiBheGlvbXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlbWlzZXNUb1ByZW1pc2VzSlNPTihwcmVtaXNlcykge1xuICBjb25zdCBwcmVtaXNlc0pTT04gPSBwcmVtaXNlcy5tYXAoKHByZW1pc2UpID0+IHtcbiAgICBjb25zdCBwcmVtaXNlSlNPTiA9IHByZW1pc2UudG9KU09OKCk7XG5cbiAgICByZXR1cm4gcHJlbWlzZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiBwcmVtaXNlc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aGVvcmVtc1RvVGhlb3JlbXNKU09OKHRoZW9yZW1zKSB7XG4gIGNvbnN0IHRoZW9yZW1zSlNPTiA9IHRoZW9yZW1zLm1hcCgodGhlb3JlbSkgPT4ge1xuICAgIGNvbnN0IHRoZW9yZW1KU09OID0gdGhlb3JlbS50b0pTT04oKTtcblxuICAgIHRoZW9yZW0gPSB0aGVvcmVtSlNPTjsgLy8vXG5cbiAgICByZXR1cm4gdGhlb3JlbTtcbiAgfSk7XG5cbiAgcmV0dXJuIHRoZW9yZW1zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlc1RvVmFyaWFibGVzSlNPTih2YXJpYWJsZXMpIHtcbiAgY29uc3QgdmFyaWFibGVzSlNPTiA9IHZhcmlhYmxlcy5tYXAoKHZhcmlhYmxlKSA9PiB7XG4gICAgY29uc3QgdmFyaWFibGVKU09OID0gdmFyaWFibGUudG9KU09OKCk7XG5cbiAgICB2YXJpYWJsZSA9IHZhcmlhYmxlSlNPTjsgIC8vL1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9KTtcblxuICByZXR1cm4gdmFyaWFibGVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlcnNUb1BhcmFtZXRlcnNKU09OKHBhcmFtZXRlcnMpIHtcbiAgY29uc3QgcGFyYW1ldGVyc0pTT04gPSBwYXJhbWV0ZXJzLm1hcCgocGFyYW1ldGVyKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVySlNPTiA9IHBhcmFtZXRlci50b0pTT04oKTtcblxuICAgIHBhcmFtZXRlciA9IHBhcmFtZXRlckpTT047ICAvLy9cblxuICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gIH0pO1xuXG4gIHJldHVybiBwYXJhbWV0ZXJzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3BlcnRpZXNUb1Byb3BlcnRpZXNKU09OKHByb3BlcnRpZXMpIHtcbiAgY29uc3QgcHJvcGVydGllc0pTT04gPSBwcm9wZXJ0aWVzLm1hcCgocHJvcGVydHkpID0+IHtcbiAgICBjb25zdCBwcm9wZXJ0eUpTT04gPSBwcm9wZXJ0eS50b0pTT04oKTtcblxuICAgIHByb3BlcnR5ID0gcHJvcGVydHlKU09OOyAgLy8vXG5cbiAgICByZXR1cm4gcHJvcGVydHk7XG4gIH0pO1xuXG4gIHJldHVybiBwcm9wZXJ0aWVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmplY3R1cmVzVG9Db25qZWN0dXJlc0pTT04oY29uamVjdHVyZXMpIHtcbiAgY29uc3QgY29uamVjdHVyZXNKU09OID0gY29uamVjdHVyZXMubWFwKChjb25qZWN0dXJlKSA9PiB7XG4gICAgY29uc3QgY29uamVjdHVyZUpTT04gPSBjb25qZWN0dXJlLnRvSlNPTigpO1xuXG4gICAgY29uamVjdHVyZSA9IGNvbmplY3R1cmVKU09OOyAvLy9cblxuICAgIHJldHVybiBjb25qZWN0dXJlO1xuICB9KTtcblxuICByZXR1cm4gY29uamVjdHVyZXNKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluYXRvcnNUb0NvbWJpbmF0b3JzSlNPTihjb21iaW5hdG9ycykge1xuICBjb25zdCBjb21iaW5hdG9yc0pTT04gPSBjb21iaW5hdG9ycy5tYXAoKGNvbWJpbmF0b3IpID0+IHtcbiAgICBjb25zdCBjb21iaW5hdG9ySlNPTiA9IGNvbWJpbmF0b3IudG9KU09OKCk7XG5cbiAgICBjb21iaW5hdG9yID0gY29tYmluYXRvckpTT047IC8vL1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3I7XG4gIH0pO1xuXG4gIHJldHVybiBjb21iaW5hdG9yc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdXBwb3NpdGlvbnNUb1N1cHBvc2l0aW9uc0pTT04oc3VwcG9zaXRpb25zKSB7XG4gIGNvbnN0IHN1cHBvc2l0aW9uc0pTT04gPSBzdXBwb3NpdGlvbnMubWFwKChzdXBwb3NpdGlvbikgPT4ge1xuICAgIGNvbnN0IHN1cHBvc2l0aW9uSlNPTiA9IHN1cHBvc2l0aW9uLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIHN1cHBvc2l0aW9uSlNPTjtcbiAgfSk7XG5cbiAgcmV0dXJuIHN1cHBvc2l0aW9uc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25zdHJ1Y3RvcnNUb0NvbnN0cnVjdG9yc0pTT04oY29uc3RydWN0b3JzKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yc0pTT04gPSBjb25zdHJ1Y3RvcnMubWFwKChjb25zdHJ1Y3RvcikgPT4ge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ySlNPTiA9IGNvbnN0cnVjdG9yLnRvSlNPTigpO1xuXG4gICAgY29uc3RydWN0b3IgPSBjb25zdHJ1Y3RvckpTT047ICAvLy9cblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcjtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnN0cnVjdG9yc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdGhlb3JlbXNUb01ldGF0aGVvcmVtc0pTT04obWV0YXRoZW9yZW1zKSB7XG4gIGNvbnN0IG1ldGF0aGVvcmVtc0pTT04gPSBtZXRhdGhlb3JlbXMubWFwKChtZXRhdGhlb3JlbSkgPT4ge1xuICAgIGNvbnN0IG1ldGF0aGVvcmVtSlNPTiA9IG1ldGF0aGVvcmVtLnRvSlNPTigpO1xuXG4gICAgbWV0YXRoZW9yZW0gPSBtZXRhdGhlb3JlbUpTT047IC8vL1xuXG4gICAgcmV0dXJuIG1ldGF0aGVvcmVtO1xuICB9KTtcblxuICByZXR1cm4gbWV0YXRoZW9yZW1zSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1YnN0aXR1dGlvbnNUb1N1YnN0aXR1dGlvbnNKU09OKHN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3Qgc3Vic3RpdHV0aW9uc0pTT04gPSBzdWJzdGl0dXRpb25zLm1hcFN1YnN0aXR1dGlvbigoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9uSlNPTiA9IHN1YnN0aXR1dGlvbi50b0pTT04oKTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25KU09OO1xuICB9KTtcblxuICByZXR1cm4gc3Vic3RpdHV0aW9uc0pTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXRhdmFyaWFibGVzVG9NZXRhdmFyaWFibGVzSlNPTihtZXRhdmFyaWFibGVzKSB7XG4gIGNvbnN0IG1ldGF2YXJpYWJsZXNKU09OID0gbWV0YXZhcmlhYmxlcy5tYXAoKG1ldGF2YXJpYWJsZSkgPT4ge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZUpTT04gPSBtZXRhdmFyaWFibGUudG9KU09OKCk7XG5cbiAgICBtZXRhdmFyaWFibGUgPSBtZXRhdmFyaWFibGVKU09OOyAgLy8vXG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlO1xuICB9KTtcblxuICByZXR1cm4gbWV0YXZhcmlhYmxlc0pTT047XG59XG4iXSwibmFtZXMiOlsiYXhpb21zRnJvbUpTT04iLCJheGlvbXNUb0F4aW9tc0pTT04iLCJjb21iaW5hdG9yc0Zyb21KU09OIiwiY29tYmluYXRvcnNUb0NvbWJpbmF0b3JzSlNPTiIsImNvbmNsdXNpb25Gcm9tSlNPTiIsImNvbmNsdXNpb25Ub0NvbmNsdXNpb25KU09OIiwiY29uamVjdHVyZXNGcm9tSlNPTiIsImNvbmplY3R1cmVzVG9Db25qZWN0dXJlc0pTT04iLCJjb25zZXF1ZW50RnJvbUpTT04iLCJjb25zZXF1ZW50VG9Db25zZXF1ZW50SlNPTiIsImNvbnN0cnVjdG9yc0Zyb21KU09OIiwiY29uc3RydWN0b3JzVG9Db25zdHJ1Y3RvcnNKU09OIiwibGFiZWxzRnJvbUpTT04iLCJsYWJlbHNUb0xhYmVsc0pTT04iLCJsZW1tYXNGcm9tTm90aGluZyIsIm1ldGFMZW1tYXNGcm9tTm90aGluZyIsIm1ldGFUeXBlRnJvbUpTT04iLCJtZXRhVHlwZVRvTWV0YVR5cGVKU09OIiwibWV0YXRoZW9yZW1zRnJvbUpTT04iLCJtZXRhdGhlb3JlbXNUb01ldGF0aGVvcmVtc0pTT04iLCJtZXRhdmFyaWFibGVGcm9tSlNPTiIsIm1ldGF2YXJpYWJsZVRvTWV0YXZhcmlhYmxlSlNPTiIsIm1ldGF2YXJpYWJsZXNGcm9tSlNPTiIsIm1ldGF2YXJpYWJsZXNUb01ldGF2YXJpYWJsZXNKU09OIiwicGFyYW1ldGVyc0Zyb21KU09OIiwicGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04iLCJwcmVtaXNlc0Zyb21KU09OIiwicHJlbWlzZXNUb1ByZW1pc2VzSlNPTiIsInByb2NlZHVyZUNhbGxGcm9tSlNPTiIsInByb2NlZHVyZUNhbGxUb1Byb2NlZHVyZUNhbGxKU09OIiwicHJvcGVydGllc0Zyb21KU09OIiwicHJvcGVydGllc1RvUHJvcGVydGllc0pTT04iLCJyZWZlcmVuY2VGcm9tSlNPTiIsInJ1bGVzRnJvbUpTT04iLCJydWxlc1RvUnVsZXNKU09OIiwic3RhdGVtZW50RnJvbUpTT04iLCJzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04iLCJzdWJzdGl0dXRpb25zRnJvbUpTT04iLCJzdWJzdGl0dXRpb25zVG9TdWJzdGl0dXRpb25zSlNPTiIsInN1cGVyVHlwZUZyb21KU09OIiwic3VwZXJUeXBlVG9TdXBlclR5cGVKU09OIiwic3VwcG9zaXRpb25zRnJvbUpTT04iLCJzdXBwb3NpdGlvbnNUb1N1cHBvc2l0aW9uc0pTT04iLCJ0ZXJtRnJvbUpTT04iLCJ0ZXJtVG9UZXJtSlNPTiIsInRoZW9yZW1zRnJvbUpTT04iLCJ0aGVvcmVtc1RvVGhlb3JlbXNKU09OIiwidHlwZUZyb21KU09OIiwidHlwZVRvVHlwZUpTT04iLCJ0eXBlc0Zyb21KU09OIiwidHlwZXNUb1R5cGVzSlNPTiIsInZhcmlhYmxlc0Zyb21KU09OIiwidmFyaWFibGVzVG9WYXJpYWJsZXNKU09OIiwianNvbiIsImZpbGVDb250ZXh0IiwidGVybSIsInRlcm1KU09OIiwiVGVybSIsImRvbSIsImZyb21KU09OIiwidHlwZSIsIm5hbWUiLCJ0eXBlTmFtZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsIm1ldGFUeXBlIiwibWV0YVR5cGVOYW1lIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUiLCJzdXBlclR5cGUiLCJzdXBlclR5cGVKU09OIiwic3RhdGVtZW50IiwiU3RhdGVtZW50Iiwic3RhdGVtZW50SlNPTiIsInJlZmVyZW5jZSIsIlJlZmVyZW5jZSIsInJlZmVyZW5jZUpTT04iLCJjb25jbHVzaW9uIiwiQ29uY2x1c2lvbiIsImNvbmNsdXNpb25KU09OIiwiY29uc2VxdWVudCIsIkNvbnNlcXVlbnQiLCJjb25zZXF1ZW50SlNPTiIsIm1ldGF2YXJpYWJsZSIsIk1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZUpTT04iLCJwcm9jZWR1cmVDYWxsIiwiUHJvY2VkdXJlQ2FsbCIsInByb2NlZHVyZUNhbGxKU09OIiwidHlwZXMiLCJ0eXBlc0pTT04iLCJUeXBlIiwiZm9yRWFjaCIsInR5cGVKU09OIiwicHVzaCIsInJ1bGVzIiwiUnVsZSIsInJ1bGVzSlNPTiIsIm1hcCIsInJ1bGVKU09OIiwicnVsZSIsImxhYmVscyIsIkxhYmVsIiwibGFiZWxzSlNPTiIsImxhYmVsSlNPTiIsImxhYmVsIiwiYXhpb21zIiwiQXhpb20iLCJheGlvbXNKU09OIiwiYXhpb21KU09OIiwiYXhpb20iLCJwcmVtaXNlcyIsIlByZW1pc2UiLCJwcmVtaXNlc0pTT04iLCJwcmVtaXNlSlNPTiIsInByZW1pc2UiLCJ0aGVvcmVtcyIsIlRoZW9yZW0iLCJ0aGVvcmVtc0pTT04iLCJ0aGVvcmVtSlNPTiIsInRoZW9yZW0iLCJ2YXJpYWJsZXMiLCJWYXJpYWJsZSIsInZhcmlhYmxlc0pTT04iLCJ2YXJpYWJsZUpTT04iLCJ2YXJpYWJsZSIsInByb3BlcnRpZXMiLCJQcm9wZXJ0eSIsInByb3BlcnRpZXNKU09OIiwicHJvcGVydHlKU09OIiwicHJvcGVydHkiLCJwYXJhbWV0ZXJzIiwiUGFyYW1ldGVyIiwicGFyYW1ldGVyc0pTT04iLCJwYXJhbWV0ZXJKU09OIiwicGFyYW1ldGVyIiwiY29uamVjdHVyZXMiLCJDb25qZWN0dXJlIiwiY29uamVjdHVyZXNKU09OIiwiY29uamVjdHVyZUpTT04iLCJjb25qZWN0dXJlIiwiY29tYmluYXRvcnMiLCJDb21iaW5hdG9yIiwiY29tYmluYXRvcnNKU09OIiwiY29tYmluYXRvckpTT04iLCJjb21iaW5hdG9yIiwiY29uc3RydWN0b3JzIiwiQ29uc3RydWN0b3IiLCJjb25zdHJ1Y3RvcnNKU09OIiwiY29uc3RydWN0b3JKU09OIiwiY29uc3RydWN0b3IiLCJtZXRhdGhlb3JlbXMiLCJNZXRhdGhlb3JlbSIsIm1ldGF0aGVvcmVtc0pTT04iLCJtZXRhdGhlb3JlbUpTT04iLCJtZXRhdGhlb3JlbSIsInN1cHBvc2l0aW9ucyIsIlN1cHBvc2l0aW9uIiwic3VwcG9zaXRpb25zSlNPTiIsInN1cHBvc2l0aW9uSlNPTiIsInN1cHBvc2l0aW9uIiwic3Vic3RpdHV0aW9ucyIsInN1YnN0aXR1dGlvbnNKU09OIiwiU3Vic3RpdHV0aW9uIiwiU3RhdGVtZW50U3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uSlNPTiIsInN1YnN0aXR1dGlvbiIsIm1ldGF2YXJpYWJsZXMiLCJtZXRhdmFyaWFibGVzSlNPTiIsImxlbW1hcyIsIm1ldGFMZW1tYXMiLCJ0b0pTT04iLCJtZXRhVHlwZUpTT04iLCJtYXBTdWJzdGl0dXRpb24iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQTRMZ0JBLGNBQWM7ZUFBZEE7O0lBK1RBQyxrQkFBa0I7ZUFBbEJBOztJQS9NQUMsbUJBQW1CO2VBQW5CQTs7SUFpU0FDLDRCQUE0QjtlQUE1QkE7O0lBcGZBQyxrQkFBa0I7ZUFBbEJBOztJQW9XQUMsMEJBQTBCO2VBQTFCQTs7SUFqS0FDLG1CQUFtQjtlQUFuQkE7O0lBcVNBQyw0QkFBNEI7ZUFBNUJBOztJQTNkQUMsa0JBQWtCO2VBQWxCQTs7SUE2VkFDLDBCQUEwQjtlQUExQkE7O0lBdklBQyxvQkFBb0I7ZUFBcEJBOztJQXVTQUMsOEJBQThCO2VBQTlCQTs7SUF2YkFDLGNBQWM7ZUFBZEE7O0lBcVVBQyxrQkFBa0I7ZUFBbEJBOztJQXJHQUMsaUJBQWlCO2VBQWpCQTs7SUFNQUMscUJBQXFCO2VBQXJCQTs7SUFsWEFDLGdCQUFnQjtlQUFoQkE7O0lBc1lBQyxzQkFBc0I7ZUFBdEJBOztJ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
|
package/package.json
CHANGED
|
@@ -45,17 +45,14 @@ export default domAssigned(class TypeDeclaration {
|
|
|
45
45
|
verifyType(type) {
|
|
46
46
|
let typeVerified = false;
|
|
47
47
|
|
|
48
|
-
const
|
|
48
|
+
const typeName = type.getName();
|
|
49
49
|
|
|
50
|
-
this.fileContext.trace(`Verifying the '${
|
|
50
|
+
this.fileContext.trace(`Verifying the '${typeName}' type...`);
|
|
51
51
|
|
|
52
|
-
const
|
|
53
|
-
typePresent = this.fileContext.isTypePresentByTypeName(typeName);
|
|
52
|
+
const typePresent = this.fileContext.isTypePresentByTypeName(typeName);
|
|
54
53
|
|
|
55
54
|
if (typePresent) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
this.fileContext.debug(`The type '${typeString}' is not present.`);
|
|
55
|
+
this.fileContext.debug(`The type '${typeName}' is not present.`);
|
|
59
56
|
} else {
|
|
60
57
|
let superType;
|
|
61
58
|
|
|
@@ -66,9 +63,7 @@ export default domAssigned(class TypeDeclaration {
|
|
|
66
63
|
superType = this.fileContext.findTypeByTypeName(superTypeName);
|
|
67
64
|
|
|
68
65
|
if (superType === null) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
this.fileContext.debug(`The super-type '${superTypeString}' is not present.`);
|
|
66
|
+
this.fileContext.debug(`The super-type '${superTypeName}' is not present.`);
|
|
72
67
|
} else {
|
|
73
68
|
type.setSuperType(superType);
|
|
74
69
|
|
|
@@ -77,7 +72,7 @@ export default domAssigned(class TypeDeclaration {
|
|
|
77
72
|
}
|
|
78
73
|
|
|
79
74
|
if (typeVerified) {
|
|
80
|
-
this.fileContext.debug(`...typeVerified the '${
|
|
75
|
+
this.fileContext.debug(`...typeVerified the '${typeName}' type.`);
|
|
81
76
|
}
|
|
82
77
|
|
|
83
78
|
return typeVerified;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import dom from "../../dom";
|
|
4
4
|
|
|
5
5
|
import { nodeQuery } from "../../utilities/query";
|
|
6
|
+
import { objectType } from "../type";
|
|
6
7
|
import { domAssigned } from "../../dom";
|
|
7
8
|
import { typeNameFromTypeNode } from "../../utilities/name";
|
|
8
9
|
|
|
@@ -37,18 +38,22 @@ export default domAssigned(class VariableDeclaration {
|
|
|
37
38
|
const variableVerified = this.verifyVariable(this.variable);
|
|
38
39
|
|
|
39
40
|
if (variableVerified) {
|
|
40
|
-
|
|
41
|
-
metavariableVerified = this.verifyMetavariable(metavariable);
|
|
41
|
+
let type;
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
const type = this.variable.getType(),
|
|
45
|
-
typeVerified = this.verifyType(type);
|
|
43
|
+
type = this.variable.getType();
|
|
46
44
|
|
|
47
|
-
|
|
48
|
-
this.fileContext.addVariable(this.variable);
|
|
45
|
+
const typeVerified = this.verifyType(type);
|
|
49
46
|
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
if (typeVerified) {
|
|
48
|
+
const typeName = type.getName();
|
|
49
|
+
|
|
50
|
+
type = this.fileContext.findTypeByTypeName(typeName);
|
|
51
|
+
|
|
52
|
+
this.variable.setType(type);
|
|
53
|
+
|
|
54
|
+
this.fileContext.addVariable(this.variable);
|
|
55
|
+
|
|
56
|
+
verified = true;
|
|
52
57
|
}
|
|
53
58
|
}
|
|
54
59
|
|
|
@@ -62,20 +67,24 @@ export default domAssigned(class VariableDeclaration {
|
|
|
62
67
|
verifyType(type) {
|
|
63
68
|
let typeVerified = false;
|
|
64
69
|
|
|
65
|
-
|
|
70
|
+
if (type === objectType) {
|
|
71
|
+
typeVerified = true;
|
|
72
|
+
} else {
|
|
73
|
+
const typeName = type.getName();
|
|
66
74
|
|
|
67
|
-
|
|
75
|
+
this.fileContext.trace(`Verifying the '${typeName}' type...`);
|
|
68
76
|
|
|
69
|
-
|
|
77
|
+
const typePresent = this.fileContext.isTypePresentByTypeName(typeName);
|
|
70
78
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
if (!typePresent) {
|
|
80
|
+
this.fileContext.debug(`The '${typeName}' type is not present.`);
|
|
81
|
+
} else {
|
|
82
|
+
typeVerified = true;
|
|
83
|
+
}
|
|
76
84
|
|
|
77
|
-
|
|
78
|
-
|
|
85
|
+
if (typeVerified) {
|
|
86
|
+
this.fileContext.debug(`...verified the '${typeName}' type.`);
|
|
87
|
+
}
|
|
79
88
|
}
|
|
80
89
|
|
|
81
90
|
return typeVerified;
|
|
@@ -104,32 +113,6 @@ export default domAssigned(class VariableDeclaration {
|
|
|
104
113
|
return variableVerified;
|
|
105
114
|
}
|
|
106
115
|
|
|
107
|
-
verifyMetavariable(metavariable) {
|
|
108
|
-
let metavariableVerified;
|
|
109
|
-
|
|
110
|
-
if (metavariable === null) {
|
|
111
|
-
metavariableVerified = true;
|
|
112
|
-
} else {
|
|
113
|
-
const metavariableName = metavariable.getName(); ///
|
|
114
|
-
|
|
115
|
-
this.fileContext.trace(`Verifying the '${metavariableName}' metavariable...`);
|
|
116
|
-
|
|
117
|
-
const metavariablePresent = this.fileContext.isMetavariablePresentByMetavariableName(metavariableName);
|
|
118
|
-
|
|
119
|
-
if (metavariablePresent) {
|
|
120
|
-
this.fileContext.debug(`A '${metavariableName}' variable is already present.`);
|
|
121
|
-
} else {
|
|
122
|
-
metavariableVerified = true;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
if (metavariableVerified) {
|
|
126
|
-
this.fileContext.debug(`...verified the '${metavariableName}' metavariable.`);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
return metavariableVerified;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
116
|
static name = "VariableDeclaration";
|
|
134
117
|
|
|
135
118
|
static fromVariableDeclarationNode(variableDeclarationNode, fileContext) {
|
package/src/dom/type.js
CHANGED
|
@@ -6,7 +6,7 @@ import { domAssigned } from "../dom";
|
|
|
6
6
|
import { OBJECT_TYPE_NAME } from "../typeNames";
|
|
7
7
|
import { typeNameFromTypeNode } from "../utilities/name";
|
|
8
8
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
9
|
-
import { superTypeFromJSON, superTypeToSuperTypeJSON, propertiesToPropertiesJSON } from "../utilities/json";
|
|
9
|
+
import { superTypeFromJSON, propertiesFromJSON, superTypeToSuperTypeJSON, propertiesToPropertiesJSON } from "../utilities/json";
|
|
10
10
|
|
|
11
11
|
const typeDeclarationTypeNodeQuery = nodeQuery("/typeDeclaration|complexTypeDeclaration/type[0]"),
|
|
12
12
|
propertyDeclarationNodesQuery = nodesQuery("/complexTypeDeclaration/propertyDeclaration"),
|
package/src/utilities/json.js
CHANGED
|
@@ -164,7 +164,7 @@ export function rulesFromJSON(json, fileContext) {
|
|
|
164
164
|
const json = ruleJSON, ///
|
|
165
165
|
rule = Rule.fromJSON(json, fileContext);
|
|
166
166
|
|
|
167
|
-
return
|
|
167
|
+
return rule;
|
|
168
168
|
});
|
|
169
169
|
|
|
170
170
|
return rules;
|
|
@@ -196,7 +196,7 @@ export function axiomsFromJSON(json, fileContext) {
|
|
|
196
196
|
const json = axiomJSON, ///
|
|
197
197
|
axiom = Axiom.fromJSON(json, fileContext);
|
|
198
198
|
|
|
199
|
-
return
|
|
199
|
+
return axiom;
|
|
200
200
|
});
|
|
201
201
|
|
|
202
202
|
return axioms;
|
|
@@ -228,7 +228,7 @@ export function theoremsFromJSON(json, fileContext) {
|
|
|
228
228
|
const json = theoremJSON, ///
|
|
229
229
|
theorem = Theorem.fromJSON(json, fileContext);
|
|
230
230
|
|
|
231
|
-
return
|
|
231
|
+
return theorem;
|
|
232
232
|
});
|
|
233
233
|
|
|
234
234
|
return theorems;
|
|
@@ -244,12 +244,28 @@ export function variablesFromJSON(json, fileContext) {
|
|
|
244
244
|
const json = variableJSON, ///
|
|
245
245
|
variable = Variable.fromJSON(json, fileContext);
|
|
246
246
|
|
|
247
|
-
return
|
|
247
|
+
return variable;
|
|
248
248
|
});
|
|
249
249
|
|
|
250
250
|
return variables;
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
+
export function propertiesFromJSON(json, fileContext) {
|
|
254
|
+
let { properties } = json;
|
|
255
|
+
|
|
256
|
+
const { Property } = dom,
|
|
257
|
+
propertiesJSON = properties; ///
|
|
258
|
+
|
|
259
|
+
properties = propertiesJSON.map((propertyJSON) => {
|
|
260
|
+
const json = propertyJSON, ///
|
|
261
|
+
property = Property.fromJSON(json, fileContext);
|
|
262
|
+
|
|
263
|
+
return property;
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
return properties;
|
|
267
|
+
}
|
|
268
|
+
|
|
253
269
|
export function parametersFromJSON(json, fileContext) {
|
|
254
270
|
let { parameters } = json;
|
|
255
271
|
|
|
@@ -260,7 +276,7 @@ export function parametersFromJSON(json, fileContext) {
|
|
|
260
276
|
const json = parameterJSON, ///
|
|
261
277
|
parameter = Parameter.fromJSON(json, fileContext);
|
|
262
278
|
|
|
263
|
-
return
|
|
279
|
+
return parameter;
|
|
264
280
|
});
|
|
265
281
|
|
|
266
282
|
return parameters;
|
|
@@ -276,7 +292,7 @@ export function conjecturesFromJSON(json, fileContext) {
|
|
|
276
292
|
const json = conjectureJSON, ///
|
|
277
293
|
conjecture = Conjecture.fromJSON(json, fileContext);
|
|
278
294
|
|
|
279
|
-
return
|
|
295
|
+
return conjecture;
|
|
280
296
|
});
|
|
281
297
|
|
|
282
298
|
return conjectures;
|
|
@@ -292,7 +308,7 @@ export function combinatorsFromJSON(json, fileContext) {
|
|
|
292
308
|
const json = combinatorJSON, ///
|
|
293
309
|
combinator = Combinator.fromJSON(json, fileContext);
|
|
294
310
|
|
|
295
|
-
return
|
|
311
|
+
return combinator;
|
|
296
312
|
});
|
|
297
313
|
|
|
298
314
|
return combinators;
|
|
@@ -308,7 +324,7 @@ export function constructorsFromJSON(json, fileContext) {
|
|
|
308
324
|
const json = constructorJSON, ///
|
|
309
325
|
constructor = Constructor.fromJSON(json, fileContext);
|
|
310
326
|
|
|
311
|
-
return
|
|
327
|
+
return constructor;
|
|
312
328
|
});
|
|
313
329
|
|
|
314
330
|
return constructors;
|
|
@@ -324,7 +340,7 @@ export function metatheoremsFromJSON(json, fileContext) {
|
|
|
324
340
|
const json = metatheoremJSON, ///
|
|
325
341
|
metatheorem = Metatheorem.fromJSON(json, fileContext);
|
|
326
342
|
|
|
327
|
-
return
|
|
343
|
+
return metatheorem;
|
|
328
344
|
});
|
|
329
345
|
|
|
330
346
|
return metatheorems;
|
|
@@ -372,7 +388,7 @@ export function metavariablesFromJSON(json, fileContext) {
|
|
|
372
388
|
const json = metavariableJSON, ///
|
|
373
389
|
metavariable = Metavariable.fromJSON(json, fileContext);
|
|
374
390
|
|
|
375
|
-
return
|
|
391
|
+
return metavariable;
|
|
376
392
|
});
|
|
377
393
|
|
|
378
394
|
return metavariables;
|