occam-verify-cli 1.0.158 → 1.0.159
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/context/bracketed/constructor.js +2 -2
- package/lib/context/file.js +2 -2
- package/lib/context/release.js +2 -2
- package/lib/dom/assertion/type.js +3 -3
- package/lib/dom/constructor.js +3 -3
- package/lib/dom/declaration/complexType.js +4 -4
- package/lib/dom/declaration/constructor.js +2 -2
- package/lib/dom/declaration/metavariable.js +3 -3
- package/lib/dom/declaration/type.js +3 -3
- package/lib/dom/declaration/variable.js +4 -4
- package/lib/dom/property.js +2 -2
- package/lib/dom/type.js +21 -21
- package/lib/dom/variable.js +2 -2
- package/lib/typeNames.js +4 -4
- package/lib/utilities/unifier.js +3 -3
- package/package.json +1 -1
- package/src/context/bracketed/constructor.js +2 -2
- package/src/context/file.js +2 -2
- package/src/context/release.js +2 -2
- package/src/dom/assertion/type.js +2 -2
- package/src/dom/constructor.js +2 -2
- package/src/dom/declaration/complexType.js +5 -5
- package/src/dom/declaration/constructor.js +2 -2
- package/src/dom/declaration/metavariable.js +2 -2
- package/src/dom/declaration/type.js +3 -3
- package/src/dom/declaration/variable.js +4 -4
- package/src/dom/property.js +2 -2
- package/src/dom/type.js +13 -13
- package/src/dom/variable.js +2 -2
- package/src/typeNames.js +1 -1
- package/src/utilities/unifier.js +2 -2
package/lib/dom/property.js
CHANGED
|
@@ -182,7 +182,7 @@ function propertyFromPropertyNode(propertyNode, fileContext) {
|
|
|
182
182
|
function stringFromNamesAndType(names, type) {
|
|
183
183
|
var string;
|
|
184
184
|
var namesString = namesStringFromNames(names);
|
|
185
|
-
if (type === _type.
|
|
185
|
+
if (type === _type.baseType) {
|
|
186
186
|
string = namesString; ///
|
|
187
187
|
} else {
|
|
188
188
|
var typeName = type.getName();
|
|
@@ -206,4 +206,4 @@ function namesStringFromNames(names) {
|
|
|
206
206
|
return namesString;
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vcHJvcGVydHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuLi9kb21cIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgdHlwZUZyb21KU09OLCB0eXBlVG9UeXBlSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IG1hdGNoIH0gPSBhcnJheVV0aWxpdGllcztcblxuY29uc3QgbmFtZVRlcm1pbmFsTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcHJvcGVydHkvQG5hbWVcIiksXG4gICAgICBwcm9wZXJ0eVJlbGF0aW9uUHJvcGVydHlOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJvcGVydHlSZWxhdGlvbi9wcm9wZXJ0eVwiKSxcbiAgICAgIHByb3BlcnR5RGVjbGFyYXRpb25Qcm9wZXJ0eU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9wcm9wZXJ0eURlY2xhcmF0aW9uL3Byb3BlcnR5XCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkb21Bc3NpZ25lZChjbGFzcyBQcm9wZXJ0eSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbmFtZXMsIHR5cGUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5hbWVzID0gbmFtZXM7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXROYW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lcztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIHNldFR5cGUodHlwZSkge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBtYXRjaFByb3BlcnR5TmFtZXMocHJvcGVydHlOYW1lcykge1xuICAgIGNvbnN0IHByb3BlcnR5TmFtZXNNYXRjaCA9IG1hdGNoKHByb3BlcnR5TmFtZXMsIHRoaXMubmFtZXMsIChwcm9wZXJ0eU5hbWUsIG5hbWUpID0+IHtcbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvcGVydHlOYW1lc01hdGNoO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHR5cGVKU09OID0gdHlwZVRvVHlwZUpTT04odGhpcy50eXBlKSxcbiAgICAgICAgICBuYW1lcyA9IHRoaXMubmFtZXMsIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgbmFtZXNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJvcGVydHlcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IG5hbWVzIH0gPSBqc29uLFxuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OYW1lc0FuZFR5cGUobmFtZXMsIHR5cGUpLFxuICAgICAgICAgIHByb3BlcnR5ID0gbmV3IFByb3BlcnR5KHN0cmluZywgbmFtZXMsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHByb3BlcnR5O1xuICB9XG5cbiAgc3RhdGljIGZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHByb3BlcnR5ID0gcHJvcGVydHlGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSwgZmlsZUNvbnRleHQpXG5cbiAgICByZXR1cm4gcHJvcGVydHk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb3BlcnR5UmVsYXRpb25Ob2RlKHByb3BlcnR5UmVsYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHByb3BlcnR5UmVsYXRpb25Qcm9wZXJ0eU5vZGUgPSBwcm9wZXJ0eVJlbGF0aW9uUHJvcGVydHlOb2RlUXVlcnkocHJvcGVydHlSZWxhdGlvbk5vZGUpLFxuICAgICAgICAgIHByb3BlcnR5Tm9kZSA9IHByb3BlcnR5UmVsYXRpb25Qcm9wZXJ0eU5vZGUsICAvLy9cbiAgICAgICAgICBwcm9wZXJ0eSA9IHByb3BlcnR5RnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiBwcm9wZXJ0eTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUHJvcGVydHlEZWNsYXJhdGlvbk5vZGUocHJvcGVydHlEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBUeXBlIH0gPSBkb20sXG4gICAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVByb3BlcnR5RGVjbGFyYXRpb25Ob2RlKHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICBwcm9wZXJ0eURlY2xhcmF0aW9uUHJvcGVydHlOb2RlID0gcHJvcGVydHlEZWNsYXJhdGlvblByb3BlcnR5Tm9kZVF1ZXJ5KHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICBwcm9wZXJ0eU5vZGUgPSBwcm9wZXJ0eURlY2xhcmF0aW9uUHJvcGVydHlOb2RlLCAgLy8vXG4gICAgICAgICAgcHJvcGVydHkgPSBwcm9wZXJ0eUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICBwcm9wZXJ0eS5zZXRUeXBlKHR5cGUpO1xuXG4gICAgcmV0dXJuIHByb3BlcnR5O1xuICB9XG59KTtcblxuZnVuY3Rpb24gcHJvcGVydHlGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgeyBQcm9wZXJ0eSB9ID0gZG9tLFxuICAgICAgICBub2RlID0gcHJvcGVydHlOb2RlLCAgLy8vXG4gICAgICAgIG5hbWVzID0gbmFtZXNGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSksXG4gICAgICAgIHR5cGUgPSBudWxsLFxuICAgICAgICBzdHJpbmcgPSBmaWxlQ29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgIHByb3BlcnR5ID0gbmV3IFByb3BlcnR5KHN0cmluZywgbmFtZXMsIHR5cGUpO1xuXG4gIHJldHVybiBwcm9wZXJ0eTtcbn1cblxuZnVuY3Rpb24gc3RyaW5nRnJvbU5hbWVzQW5kVHlwZShuYW1lcywgdHlwZSkge1xuICBsZXQgc3RyaW5nO1xuXG4gIGNvbnN0IG5hbWVzU3RyaW5nID0gbmFtZXNTdHJpbmdGcm9tTmFtZXMobmFtZXMpO1xuXG4gIGlmICh0eXBlID09PSBvYmplY3RUeXBlKSB7XG4gICAgc3RyaW5nID0gbmFtZXNTdHJpbmc7ICAvLy9cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgc3RyaW5nID0gYCR7bmFtZXNTdHJpbmd9OiR7dHlwZU5hbWV9YDtcbiAgfVxuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIG5hbWVzRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IG5hbWVUZXJtaW5hbE5vZGVzID0gbmFtZVRlcm1pbmFsTm9kZXNRdWVyeShwcm9wZXJ0eU5vZGUpLFxuICAgICAgICBuYW1lcyA9IG5hbWVUZXJtaW5hbE5vZGVzLm1hcCgobmFtZVRlcm1pbmFsTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5hbWVUZXJtaW5hbE5vZGVDb250ZW50ID0gbmFtZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVUZXJtaW5hbE5vZGVDb250ZW50OyAvLy9cblxuICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICB9KTtcblxuICByZXR1cm4gbmFtZXM7XG59XG5cbmZ1bmN0aW9uIG5hbWVzU3RyaW5nRnJvbU5hbWVzKG5hbWVzKSB7XG4gIGNvbnN0IG5hbWVzU3RyaW5nID0gbmFtZXMucmVkdWNlKChuYW1lc1N0cmluZywgbmFtZSkgPT4ge1xuICAgIGNvbnN0IG5hbWVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgICBuYW1lc1N0cmluZyA9IChuYW1lc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICBuYW1lU3RyaW5nIDogIC8vL1xuICAgICAgICAgICAgICAgICAgICAgYCR7bmFtZXNTdHJpbmd9ICR7bmFtZVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIG5hbWVzU3RyaW5nO1xuICB9LCBudWxsKTtcblxuICByZXR1cm4gbmFtZXNTdHJpbmc7XG59XG5cbiJdLCJuYW1lcyI6WyJtYXRjaCIsImFycmF5VXRpbGl0aWVzIiwibmFtZVRlcm1pbmFsTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcm9wZXJ0eVJlbGF0aW9uUHJvcGVydHlOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJwcm9wZXJ0eURlY2xhcmF0aW9uUHJvcGVydHlOb2RlUXVlcnkiLCJkb21Bc3NpZ25lZCIsIlByb3BlcnR5Iiwic3RyaW5nIiwibmFtZXMiLCJ0eXBlIiwiZ2V0U3RyaW5nIiwiZ2V0TmFtZXMiLCJnZXRUeXBlIiwic2V0VHlwZSIsIm1hdGNoUHJvcGVydHlOYW1lcyIsInByb3BlcnR5TmFtZXMiLCJwcm9wZXJ0eU5hbWVzTWF0Y2giLCJwcm9wZXJ0eU5hbWUiLCJuYW1lIiwidG9KU09OIiwidHlwZUpTT04iLCJ0eXBlVG9UeXBlSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImZpbGVDb250ZXh0IiwidHlwZUZyb21KU09OIiwic3RyaW5nRnJvbU5hbWVzQW5kVHlwZSIsInByb3BlcnR5IiwiZnJvbVByb3BlcnR5Tm9kZSIsInByb3BlcnR5Tm9kZSIsInByb3BlcnR5RnJvbVByb3BlcnR5Tm9kZSIsImZyb21Qcm9wZXJ0eVJlbGF0aW9uTm9kZSIsInByb3BlcnR5UmVsYXRpb25Ob2RlIiwicHJvcGVydHlSZWxhdGlvblByb3BlcnR5Tm9kZSIsImZyb21Qcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSIsInByb3BlcnR5RGVjbGFyYXRpb25Ob2RlIiwiVHlwZSIsImRvbSIsInByb3BlcnR5RGVjbGFyYXRpb25Qcm9wZXJ0eU5vZGUiLCJub2RlIiwibmFtZXNGcm9tUHJvcGVydHlOb2RlIiwibm9kZUFzU3RyaW5nIiwibmFtZXNTdHJpbmciLCJuYW1lc1N0cmluZ0Zyb21OYW1lcyIsIm9iamVjdFR5cGUiLCJ0eXBlTmFtZSIsImdldE5hbWUiLCJuYW1lVGVybWluYWxOb2RlcyIsIm1hcCIsIm5hbWVUZXJtaW5hbE5vZGUiLCJuYW1lVGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJyZWR1Y2UiLCJuYW1lU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUFBOzs7eUJBZitCOzJEQUVmO29CQUVXO3FCQUVXO29CQUNPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFN0MsSUFBTSxBQUFFQSxRQUFVQyx5QkFBYyxDQUF4QkQ7QUFFUixJQUFNRSx5QkFBeUJDLElBQUFBLGlCQUFVLEVBQUMsb0JBQ3BDQyxvQ0FBb0NDLElBQUFBLGdCQUFTLEVBQUMsK0JBQzlDQyx1Q0FBdUNELElBQUFBLGdCQUFTLEVBQUM7SUFFdkQsV0FBZUUsSUFBQUEsZ0JBQVcsNkJBQUM7YUFBTUMs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
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vcHJvcGVydHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuLi9kb21cIjtcblxuaW1wb3J0IHsgYmFzZVR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCB7IG5vZGVRdWVyeSwgbm9kZXNRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgdHlwZVRvVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgeyBtYXRjaCB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IG5hbWVUZXJtaW5hbE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3Byb3BlcnR5L0BuYW1lXCIpLFxuICAgICAgcHJvcGVydHlSZWxhdGlvblByb3BlcnR5Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb3BlcnR5UmVsYXRpb24vcHJvcGVydHlcIiksXG4gICAgICBwcm9wZXJ0eURlY2xhcmF0aW9uUHJvcGVydHlOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJvcGVydHlEZWNsYXJhdGlvbi9wcm9wZXJ0eVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgUHJvcGVydHkge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5hbWVzLCB0eXBlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5uYW1lcyA9IG5hbWVzO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0TmFtZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZXM7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBzZXRUeXBlKHR5cGUpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cbiAgbWF0Y2hQcm9wZXJ0eU5hbWVzKHByb3BlcnR5TmFtZXMpIHtcbiAgICBjb25zdCBwcm9wZXJ0eU5hbWVzTWF0Y2ggPSBtYXRjaChwcm9wZXJ0eU5hbWVzLCB0aGlzLm5hbWVzLCAocHJvcGVydHlOYW1lLCBuYW1lKSA9PiB7XG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSBuYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb3BlcnR5TmFtZXNNYXRjaDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgbmFtZXMgPSB0aGlzLm5hbWVzLCAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIG5hbWVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlByb3BlcnR5XCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBuYW1lcyB9ID0ganNvbixcbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZXNBbmRUeXBlKG5hbWVzLCB0eXBlKSxcbiAgICAgICAgICBwcm9wZXJ0eSA9IG5ldyBQcm9wZXJ0eShzdHJpbmcsIG5hbWVzLCB0eXBlKTtcblxuICAgIHJldHVybiBwcm9wZXJ0eTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IHByb3BlcnR5RnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUsIGZpbGVDb250ZXh0KVxuXG4gICAgcmV0dXJuIHByb3BlcnR5O1xuICB9XG5cbiAgc3RhdGljIGZyb21Qcm9wZXJ0eVJlbGF0aW9uTm9kZShwcm9wZXJ0eVJlbGF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBwcm9wZXJ0eVJlbGF0aW9uUHJvcGVydHlOb2RlID0gcHJvcGVydHlSZWxhdGlvblByb3BlcnR5Tm9kZVF1ZXJ5KHByb3BlcnR5UmVsYXRpb25Ob2RlKSxcbiAgICAgICAgICBwcm9wZXJ0eU5vZGUgPSBwcm9wZXJ0eVJlbGF0aW9uUHJvcGVydHlOb2RlLCAgLy8vXG4gICAgICAgICAgcHJvcGVydHkgPSBwcm9wZXJ0eUZyb21Qcm9wZXJ0eU5vZGUocHJvcGVydHlOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gcHJvcGVydHk7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb3BlcnR5RGVjbGFyYXRpb25Ob2RlKHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgVHlwZSB9ID0gZG9tLFxuICAgICAgICAgIHR5cGUgPSBUeXBlLmZyb21Qcm9wZXJ0eURlY2xhcmF0aW9uTm9kZShwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgcHJvcGVydHlEZWNsYXJhdGlvblByb3BlcnR5Tm9kZSA9IHByb3BlcnR5RGVjbGFyYXRpb25Qcm9wZXJ0eU5vZGVRdWVyeShwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgcHJvcGVydHlOb2RlID0gcHJvcGVydHlEZWNsYXJhdGlvblByb3BlcnR5Tm9kZSwgIC8vL1xuICAgICAgICAgIHByb3BlcnR5ID0gcHJvcGVydHlGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgcHJvcGVydHkuc2V0VHlwZSh0eXBlKTtcblxuICAgIHJldHVybiBwcm9wZXJ0eTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHByb3BlcnR5RnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IHsgUHJvcGVydHkgfSA9IGRvbSxcbiAgICAgICAgbm9kZSA9IHByb3BlcnR5Tm9kZSwgIC8vL1xuICAgICAgICBuYW1lcyA9IG5hbWVzRnJvbVByb3BlcnR5Tm9kZShwcm9wZXJ0eU5vZGUpLFxuICAgICAgICB0eXBlID0gbnVsbCxcbiAgICAgICAgc3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICBwcm9wZXJ0eSA9IG5ldyBQcm9wZXJ0eShzdHJpbmcsIG5hbWVzLCB0eXBlKTtcblxuICByZXR1cm4gcHJvcGVydHk7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lc0FuZFR5cGUobmFtZXMsIHR5cGUpIHtcbiAgbGV0IHN0cmluZztcblxuICBjb25zdCBuYW1lc1N0cmluZyA9IG5hbWVzU3RyaW5nRnJvbU5hbWVzKG5hbWVzKTtcblxuICBpZiAodHlwZSA9PT0gYmFzZVR5cGUpIHtcbiAgICBzdHJpbmcgPSBuYW1lc1N0cmluZzsgIC8vL1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCk7XG5cbiAgICBzdHJpbmcgPSBgJHtuYW1lc1N0cmluZ306JHt0eXBlTmFtZX1gO1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxuZnVuY3Rpb24gbmFtZXNGcm9tUHJvcGVydHlOb2RlKHByb3BlcnR5Tm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgbmFtZVRlcm1pbmFsTm9kZXMgPSBuYW1lVGVybWluYWxOb2Rlc1F1ZXJ5KHByb3BlcnR5Tm9kZSksXG4gICAgICAgIG5hbWVzID0gbmFtZVRlcm1pbmFsTm9kZXMubWFwKChuYW1lVGVybWluYWxOb2RlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQgPSBuYW1lVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICAgICAgICBuYW1lID0gbmFtZVRlcm1pbmFsTm9kZUNvbnRlbnQ7IC8vL1xuXG4gICAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBuYW1lcztcbn1cblxuZnVuY3Rpb24gbmFtZXNTdHJpbmdGcm9tTmFtZXMobmFtZXMpIHtcbiAgY29uc3QgbmFtZXNTdHJpbmcgPSBuYW1lcy5yZWR1Y2UoKG5hbWVzU3RyaW5nLCBuYW1lKSA9PiB7XG4gICAgY29uc3QgbmFtZVN0cmluZyA9IG5hbWU7ICAvLy9cblxuICAgIG5hbWVzU3RyaW5nID0gKG5hbWVzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgIG5hbWVTdHJpbmcgOiAgLy8vXG4gICAgICAgICAgICAgICAgICAgICBgJHtuYW1lc1N0cmluZ30gJHtuYW1lU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gbmFtZXNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBuYW1lc1N0cmluZztcbn1cblxuIl0sIm5hbWVzIjpbIm1hdGNoIiwiYXJyYXlVdGlsaXRpZXMiLCJuYW1lVGVybWluYWxOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInByb3BlcnR5UmVsYXRpb25Qcm9wZXJ0eU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInByb3BlcnR5RGVjbGFyYXRpb25Qcm9wZXJ0eU5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiUHJvcGVydHkiLCJzdHJpbmciLCJuYW1lcyIsInR5cGUiLCJnZXRTdHJpbmciLCJnZXROYW1lcyIsImdldFR5cGUiLCJzZXRUeXBlIiwibWF0Y2hQcm9wZXJ0eU5hbWVzIiwicHJvcGVydHlOYW1lcyIsInByb3BlcnR5TmFtZXNNYXRjaCIsInByb3BlcnR5TmFtZSIsIm5hbWUiLCJ0b0pTT04iLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwianNvbiIsImZyb21KU09OIiwiZmlsZUNvbnRleHQiLCJ0eXBlRnJvbUpTT04iLCJzdHJpbmdGcm9tTmFtZXNBbmRUeXBlIiwicHJvcGVydHkiLCJmcm9tUHJvcGVydHlOb2RlIiwicHJvcGVydHlOb2RlIiwicHJvcGVydHlGcm9tUHJvcGVydHlOb2RlIiwiZnJvbVByb3BlcnR5UmVsYXRpb25Ob2RlIiwicHJvcGVydHlSZWxhdGlvbk5vZGUiLCJwcm9wZXJ0eVJlbGF0aW9uUHJvcGVydHlOb2RlIiwiZnJvbVByb3BlcnR5RGVjbGFyYXRpb25Ob2RlIiwicHJvcGVydHlEZWNsYXJhdGlvbk5vZGUiLCJUeXBlIiwiZG9tIiwicHJvcGVydHlEZWNsYXJhdGlvblByb3BlcnR5Tm9kZSIsIm5vZGUiLCJuYW1lc0Zyb21Qcm9wZXJ0eU5vZGUiLCJub2RlQXNTdHJpbmciLCJuYW1lc1N0cmluZyIsIm5hbWVzU3RyaW5nRnJvbU5hbWVzIiwiYmFzZVR5cGUiLCJ0eXBlTmFtZSIsImdldE5hbWUiLCJuYW1lVGVybWluYWxOb2RlcyIsIm1hcCIsIm5hbWVUZXJtaW5hbE5vZGUiLCJuYW1lVGVybWluYWxOb2RlQ29udGVudCIsImdldENvbnRlbnQiLCJyZWR1Y2UiLCJuYW1lU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUFBOzs7eUJBZitCOzJEQUVmO29CQUVTO3FCQUVhO29CQUNPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFN0MsSUFBTSxBQUFFQSxRQUFVQyx5QkFBYyxDQUF4QkQ7QUFFUixJQUFNRSx5QkFBeUJDLElBQUFBLGlCQUFVLEVBQUMsb0JBQ3BDQyxvQ0FBb0NDLElBQUFBLGdCQUFTLEVBQUMsK0JBQzlDQyx1Q0FBdUNELElBQUFBLGdCQUFTLEVBQUM7SUFFdkQsV0FBZUUsSUFBQUEsZ0JBQVcsNkJBQUM7YUFBTUMsU0FDbkJDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxJQUFJO2dDQURBSDtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLElBQUksR0FBR0E7Ozs7WUFHZEMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxNQUFNO1lBQ3BCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxLQUFLO1lBQ25COzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxJQUFJO1lBQ2xCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFKLElBQUk7Z0JBQ1YsSUFBSSxDQUFDQSxJQUFJLEdBQUdBO1lBQ2Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsbUJBQW1CQyxhQUFhO2dCQUM5QixJQUFNQyxxQkFBcUJsQixNQUFNaUIsZUFBZSxJQUFJLENBQUNQLEtBQUssRUFBRSxTQUFDUyxjQUFjQztvQkFDekUsSUFBSUQsaUJBQWlCQyxNQUFNO3dCQUN6QixPQUFPO29CQUNUO2dCQUNGO2dCQUVBLE9BQU9GO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUMsV0FBV0MsSUFBQUEsb0JBQWMsRUFBQyxJQUFJLENBQUNaLElBQUksR0FDbkNELFFBQVEsSUFBSSxDQUFDQSxLQUFLLEVBQ2xCQyxPQUFPVyxVQUNQRSxPQUFPO29CQUNMYixNQUFBQTtvQkFDQUQsT0FBQUE7Z0JBQ0Y7Z0JBRU4sT0FBT2M7WUFDVDs7OztZQUlPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUVFLFdBQVc7Z0JBQy9CLElBQU0sQUFBRWhCLFFBQVVjLEtBQVZkLE9BQ0ZDLE9BQU9nQixJQUFBQSxrQkFBWSxFQUFDSCxNQUFNRSxjQUMxQmpCLFNBQVNtQix1QkFBdUJsQixPQUFPQyxPQUN2Q2tCLFdBQVcsSUFBSXJCLFNBQVNDLFFBQVFDLE9BQU9DO2dCQUU3QyxPQUFPa0I7WUFDVDs7O1lBRU9DLEtBQUFBO21CQUFQLFNBQU9BLGlCQUFpQkMsWUFBWSxFQUFFTCxXQUFXO2dCQUMvQyxJQUFNRyxXQUFXRyx5QkFBeUJELGNBQWNMO2dCQUV4RCxPQUFPRztZQUNUOzs7WUFFT0ksS0FBQUE7bUJBQVAsU0FBT0EseUJBQXlCQyxvQkFBb0IsRUFBRVIsV0FBVztnQkFDL0QsSUFBTVMsK0JBQStCL0Isa0NBQWtDOEIsdUJBQ2pFSCxlQUFlSSw4QkFDZk4sV0FBV0cseUJBQXlCRCxjQUFjTDtnQkFFeEQsT0FBT0c7WUFDVDs7O1lBRU9PLEtBQUFBO21CQUFQLFNBQU9BLDRCQUE0QkMsdUJBQXVCLEVBQUVYLFdBQVc7Z0JBQ3JFLElBQU0sQUFBRVksT0FBU0MsWUFBRyxDQUFaRCxNQUNGM0IsT0FBTzJCLEtBQUtGLDJCQUEyQixDQUFDQywwQkFDeENHLGtDQUFrQ2xDLHFDQUFxQytCLDBCQUN2RU4sZUFBZVMsaUNBQ2ZYLFdBQVdHLHlCQUF5QkQsY0FBY0w7Z0JBRXhERyxTQUFTZCxPQUFPLENBQUNKO2dCQUVqQixPQUFPa0I7WUFDVDs7OztLQW5DQSw0QkFBT1QsUUFBTztBQXNDaEIsU0FBU1kseUJBQXlCRCxZQUFZLEVBQUVMLFdBQVc7SUFDekQsSUFBTSxBQUFFbEIsV0FBYStCLFlBQUcsQ0FBaEIvQixVQUNGaUMsT0FBT1YsY0FDUHJCLFFBQVFnQyxzQkFBc0JYLGVBQzlCcEIsT0FBTyxNQUNQRixTQUFTaUIsWUFBWWlCLFlBQVksQ0FBQ0YsT0FDbENaLFdBQVcsSUFBSXJCLFNBQVNDLFFBQVFDLE9BQU9DO0lBRTdDLE9BQU9rQjtBQUNUO0FBRUEsU0FBU0QsdUJBQXVCbEIsS0FBSyxFQUFFQyxJQUFJO0lBQ3pDLElBQUlGO0lBRUosSUFBTW1DLGNBQWNDLHFCQUFxQm5DO0lBRXpDLElBQUlDLFNBQVNtQyxjQUFRLEVBQUU7UUFDckJyQyxTQUFTbUMsYUFBYyxHQUFHO0lBQzVCLE9BQU87UUFDTCxJQUFNRyxXQUFXcEMsS0FBS3FDLE9BQU87UUFFN0J2QyxTQUFTLEFBQUMsR0FBaUJzQyxPQUFmSCxhQUFZLEtBQVksT0FBVEc7SUFDN0I7SUFFQSxPQUFPdEM7QUFDVDtBQUVBLFNBQVNpQyxzQkFBc0JYLFlBQVksRUFBRUwsV0FBVztJQUN0RCxJQUFNdUIsb0JBQW9CL0MsdUJBQXVCNkIsZUFDM0NyQixRQUFRdUMsa0JBQWtCQyxHQUFHLENBQUMsU0FBQ0M7UUFDN0IsSUFBTUMsMEJBQTBCRCxpQkFBaUJFLFVBQVUsSUFDckRqQyxPQUFPZ0MseUJBQXlCLEdBQUc7UUFFekMsT0FBT2hDO0lBQ1Q7SUFFTixPQUFPVjtBQUNUO0FBRUEsU0FBU21DLHFCQUFxQm5DLEtBQUs7SUFDakMsSUFBTWtDLGNBQWNsQyxNQUFNNEMsTUFBTSxDQUFDLFNBQUNWLGFBQWF4QjtRQUM3QyxJQUFNbUMsYUFBYW5DLE1BQU8sR0FBRztRQUU3QndCLGNBQWMsQUFBQ0EsZ0JBQWdCLE9BQ2ZXLGFBQ0MsQUFBQyxHQUFpQkEsT0FBZlgsYUFBWSxLQUFjLE9BQVhXO1FBRW5DLE9BQU9YO0lBQ1QsR0FBRztJQUVILE9BQU9BO0FBQ1QifQ==
|
package/lib/dom/type.js
CHANGED
|
@@ -9,11 +9,11 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
get baseType () {
|
|
13
|
+
return baseType;
|
|
14
|
+
},
|
|
12
15
|
get default () {
|
|
13
16
|
return _default;
|
|
14
|
-
},
|
|
15
|
-
get objectType () {
|
|
16
|
-
return objectType;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
var _necessary = require("necessary");
|
|
@@ -273,8 +273,8 @@ var Type = /*#__PURE__*/ function() {
|
|
|
273
273
|
var basic = false;
|
|
274
274
|
var soleSuperType = this.getSoleSuperType();
|
|
275
275
|
if (soleSuperType !== null) {
|
|
276
|
-
var
|
|
277
|
-
basic =
|
|
276
|
+
var soleSuperTypeBaseType = soleSuperType === baseType;
|
|
277
|
+
basic = soleSuperTypeBaseType; ///
|
|
278
278
|
}
|
|
279
279
|
return basic;
|
|
280
280
|
}
|
|
@@ -290,7 +290,7 @@ var Type = /*#__PURE__*/ function() {
|
|
|
290
290
|
key: "isSubTypeOf",
|
|
291
291
|
value: function isSubTypeOf(type) {
|
|
292
292
|
var subTypeOf;
|
|
293
|
-
if (this ===
|
|
293
|
+
if (this === baseType) {
|
|
294
294
|
subTypeOf = false;
|
|
295
295
|
} else {
|
|
296
296
|
subTypeOf = this.superTypes.some(function(superType) {
|
|
@@ -435,7 +435,7 @@ var _default = (0, _dom.domAssigned)(Type);
|
|
|
435
435
|
function typeFromTypeNode(typeNode, fileContext) {
|
|
436
436
|
var type;
|
|
437
437
|
if (typeNode === null) {
|
|
438
|
-
type =
|
|
438
|
+
type = baseType;
|
|
439
439
|
} else {
|
|
440
440
|
var Type = _dom.default.Type, typeName = (0, _name.typeNameFromTypeNode)(typeNode), name = typeName, string = name, superTypes = null, properties = null, provisional = null;
|
|
441
441
|
type = new Type(string, name, superTypes, properties, provisional);
|
|
@@ -456,7 +456,7 @@ function nameFromTypeDeclarationNode(typeDeclarationNode, fileContext) {
|
|
|
456
456
|
}
|
|
457
457
|
function superTypesStringFromSuperTypes(superTypes) {
|
|
458
458
|
var superTypesString = superTypes.reduce(function(superTypesString, superType) {
|
|
459
|
-
if (superType !==
|
|
459
|
+
if (superType !== baseType) {
|
|
460
460
|
var superTypeName = superType.getName();
|
|
461
461
|
superTypesString = superTypesString === null ? superTypeName : "".concat(superTypesString, ", ").concat(superTypeName);
|
|
462
462
|
}
|
|
@@ -470,7 +470,7 @@ function superTypesFromTypeDeclarationNode(typeDeclarationNode, fileContext) {
|
|
|
470
470
|
return superType;
|
|
471
471
|
}), superTypesLength = superTypes.length;
|
|
472
472
|
if (superTypesLength === 0) {
|
|
473
|
-
superTypes.push(
|
|
473
|
+
superTypes.push(baseType);
|
|
474
474
|
}
|
|
475
475
|
return superTypes;
|
|
476
476
|
}
|
|
@@ -488,7 +488,7 @@ function superTypesFromComplexTypeDeclarationNode(complexTypeDeclarationNode, fi
|
|
|
488
488
|
return superType;
|
|
489
489
|
}), superTypesLength = superTypes.length;
|
|
490
490
|
if (superTypesLength === 0) {
|
|
491
|
-
superTypes.push(
|
|
491
|
+
superTypes.push(baseType);
|
|
492
492
|
}
|
|
493
493
|
return superTypes;
|
|
494
494
|
}
|
|
@@ -499,13 +499,13 @@ function propertiesFromComplexTypeDeclarationNode(complexTypeDeclarationNode, fi
|
|
|
499
499
|
});
|
|
500
500
|
return properties;
|
|
501
501
|
}
|
|
502
|
-
var
|
|
503
|
-
_inherits(
|
|
504
|
-
function
|
|
505
|
-
_class_call_check(this,
|
|
506
|
-
return _call_super(this,
|
|
502
|
+
var BaseType = /*#__PURE__*/ function(Type) {
|
|
503
|
+
_inherits(BaseType, Type);
|
|
504
|
+
function BaseType() {
|
|
505
|
+
_class_call_check(this, BaseType);
|
|
506
|
+
return _call_super(this, BaseType, arguments);
|
|
507
507
|
}
|
|
508
|
-
_create_class(
|
|
508
|
+
_create_class(BaseType, [
|
|
509
509
|
{
|
|
510
510
|
key: "getProperties",
|
|
511
511
|
value: function getProperties() {
|
|
@@ -529,13 +529,13 @@ var ObjectType = /*#__PURE__*/ function(Type) {
|
|
|
529
529
|
{
|
|
530
530
|
key: "fromNothing",
|
|
531
531
|
value: function fromNothing() {
|
|
532
|
-
var name = _typeNames.
|
|
533
|
-
return
|
|
532
|
+
var name = _typeNames.BASE_TYPE_NAME, string = name, superTypes = [], properties = [], provisional = false, baseType = new BaseType(string, name, superTypes, properties, provisional);
|
|
533
|
+
return baseType;
|
|
534
534
|
}
|
|
535
535
|
}
|
|
536
536
|
]);
|
|
537
|
-
return
|
|
537
|
+
return BaseType;
|
|
538
538
|
}(Type);
|
|
539
|
-
var
|
|
539
|
+
var baseType = BaseType.fromNothing();
|
|
540
540
|
|
|
541
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuXG5pbXBvcnQgeyBQUk9WSVNJT05BTCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgT0JKRUNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHR5cGVOYW1lRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBzdXBlclR5cGVzRnJvbUpTT04sIHByb3BlcnRpZXNGcm9tSlNPTiwgc3VwZXJUeXBlc1RvU3VwZXJUeXBlc0pTT04sIHByb3BlcnRpZXNUb1Byb3BlcnRpZXNKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgcHVzaCwgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5jb25zdCB0eXBlQXNzZXJ0aW9uVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlQXNzZXJ0aW9uL3R5cGVcIiksXG4gICAgICB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvbnxjb21wbGV4VHlwZURlY2xhcmF0aW9uL3R5cGVcIiksXG4gICAgICBwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvY29tcGxleFR5cGVEZWNsYXJhdGlvbi9wcm9wZXJ0eURlY2xhcmF0aW9uXCIpLFxuICAgICAgcHJvcGVydHlEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJvcGVydHlEZWNsYXJhdGlvbi90eXBlXCIpLFxuICAgICAgdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvdHlwZURlY2xhcmF0aW9ufGNvbXBsZXhUeXBlRGVjbGFyYXRpb24vdHlwZXMvdHlwZVwiKSxcbiAgICAgIGZpcnN0UHJpbWFyeUtleXdvcmRUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlRGVjbGFyYXRpb258Y29tcGxleFR5cGVEZWNsYXJhdGlvbi9AcHJpbWFyeS1rZXl3b3JkWzBdXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uL3R5cGVcIiksXG4gICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnN0cnVjdG9yRGVjbGFyYXRpb24vdHlwZVwiKTtcblxuY2xhc3MgVHlwZSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlcywgcHJvcGVydGllcywgcHJvdmlzaW9uYWwpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXM7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICB0aGlzLnByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWw7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0U3VwZXJUeXBlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdXBlclR5cGVzO1xuICB9XG5cbiAgZ2V0UHJvcGVydGllcyhpbmNsdWRlU3VwZXJUeXBlcyA9IHRydWUpIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gW107XG5cbiAgICBwdXNoKHByb3BlcnRpZXMsIHRoaXMucHJvcGVydGllcyk7XG5cbiAgICBpZiAoaW5jbHVkZVN1cGVyVHlwZXMpIHtcbiAgICAgIHRoaXMuc3VwZXJUeXBlcy5mb3JFYWNoKChzdXBlclR5cGUpID0+IHtcbiAgICAgICAgY29uc3Qgc3VwZXJUeXBlUHJvcGVydGllcyA9IHN1cGVyVHlwZS5nZXRQcm9wZXJ0aWVzKCk7XG5cbiAgICAgICAgcHVzaChwcm9wZXJ0aWVzLCBzdXBlclR5cGVQcm9wZXJ0aWVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9wZXJ0aWVzO1xuICB9XG5cbiAgaXNQcm92aXNpb25hbChpbmNsdWRlU3VwZXJUeXBlcyA9IHRydWUpIHtcbiAgICBsZXQgcHJvdmlzaW9uYWwgPSB0aGlzLnByb3Zpc2lvbmFsO1xuXG4gICAgaWYgKGluY2x1ZGVTdXBlclR5cGVzKSB7XG4gICAgICBpZiAoIXByb3Zpc2lvbmFsKSB7XG4gICAgICAgIHByb3Zpc2lvbmFsID0gdGhpcy5zdXBlclR5cGVzLnNvbWUoKHN1cGVyVHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1cGVyVHlwZVByb3Zpc2lvbmFsID0gc3VwZXJUeXBlLmlzUHJvdmlzaW9uYWwoKTtcblxuICAgICAgICAgIGlmIChzdXBlclR5cGVQcm92aXNpb25hbCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcHJvdmlzaW9uYWw7XG4gIH1cblxuICBnZXRTb2xlU3VwZXJUeXBlKCkge1xuICAgIGxldCBzb2xlU3VwZXJUeXBlID0gbnVsbDtcblxuICAgIGNvbnN0IHN1cGVyVHlwZXNMZW5ndGggPSB0aGlzLnN1cGVyVHlwZXMubGVuZ3RoO1xuXG4gICAgaWYgKHN1cGVyVHlwZXNMZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGZpcnN0U3VwZXJUeXBlID0gZmlyc3QodGhpcy5zdXBlclR5cGVzKTtcblxuICAgICAgc29sZVN1cGVyVHlwZSA9IGZpcnN0U3VwZXJUeXBlOyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gc29sZVN1cGVyVHlwZTtcbiAgfVxuXG4gIHNldFN0cmluZyhzdHJpbmcpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgfVxuXG4gIHNldE5hbWUobmFtZSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBzZXRTdXBlclR5cGVzKHN1cGVyVHlwZXMpIHtcbiAgICB0aGlzLnN1cGVyVHlwZXMgPSBzdXBlclR5cGVzO1xuICB9XG5cbiAgc2V0UHJvcGVydGllcyhwcm9wZXJ0aWVzKSB7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgfVxuXG4gIHNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKSB7XG4gICAgdGhpcy5wcm92aXNpb25hbCA9IHByb3Zpc2lvbmFsO1xuICB9XG5cbiAgaXNSZWZpbmVkKCkge1xuICAgIGxldCByZWZpbmVkID0gZmFsc2U7XG5cbiAgICBjb25zdCBzb2xlU3VwZXJUeXBlID0gdGhpcy5nZXRTb2xlU3VwZXJUeXBlKCk7XG5cbiAgICBpZiAoc29sZVN1cGVyVHlwZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc29sZVN1cGVyVHlwZU5hbWVNYXRjaGVzTmFtZSA9IHNvbGVTdXBlclR5cGUubWF0Y2hOYW1lKHRoaXMubmFtZSk7XG5cbiAgICAgIHJlZmluZWQgPSBzb2xlU3VwZXJUeXBlTmFtZU1hdGNoZXNOYW1lOyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gcmVmaW5lZDtcbiAgfVxuXG4gIGlzQmFzaWMoKSB7XG4gICAgbGV0IGJhc2ljID0gZmFsc2U7XG5cbiAgICBjb25zdCBzb2xlU3VwZXJUeXBlID0gdGhpcy5nZXRTb2xlU3VwZXJUeXBlKCk7XG5cbiAgICBpZiAoc29sZVN1cGVyVHlwZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc29sZVN1cGVyVHlwZU9iamVjdFR5cGUgPSAoc29sZVN1cGVyVHlwZSA9PT0gb2JqZWN0VHlwZSk7XG5cbiAgICAgIGJhc2ljID0gc29sZVN1cGVyVHlwZU9iamVjdFR5cGU7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gYmFzaWM7XG4gIH1cblxuICBpc0VxdWFsVG8odHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSAodGhpcyA9PT0gdHlwZSk7XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIGlzU3ViVHlwZU9mKHR5cGUpIHtcbiAgICBsZXQgc3ViVHlwZU9mO1xuXG4gICAgaWYgKHRoaXMgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIHN1YlR5cGVPZiA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdWJUeXBlT2YgPSB0aGlzLnN1cGVyVHlwZXMuc29tZSgoc3VwZXJUeXBlKSA9PiB7IC8vL1xuICAgICAgICBpZiAoc3VwZXJUeXBlID09PSB0eXBlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdXBlclR5cGVTdWJUeXBlT2ZUeXBlID0gc3VwZXJUeXBlLmlzU3ViVHlwZU9mKHR5cGUpO1xuXG4gICAgICAgIGlmIChzdXBlclR5cGVTdWJUeXBlT2ZUeXBlKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YlR5cGVPZjtcbiAgfVxuXG4gIGlzU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IHN1YlR5cGVPZiA9IHR5cGUuaXNTdWJUeXBlT2YodGhpcyksXG4gICAgICAgICAgc3VwZXJUeXBlT2YgPSBzdWJUeXBlT2Y7ICAvLy9cblxuICAgIHJldHVybiBzdXBlclR5cGVPZjtcbiAgfVxuXG4gIGlzQ29tcGFyYWJsZVRvKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3ViVHlwZU9mID0gdGhpcy5pc1N1YlR5cGVPZih0eXBlKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHRoaXMuaXNTdXBlclR5cGVPZih0eXBlKSxcbiAgICAgICAgICBjb21wYXJhYmxlVG8gPSAoZXF1YWxUbyB8fCBzdWJUeXBlT2YgfHwgc3VwZXJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGNvbXBhcmFibGVUbztcbiAgfVxuXG4gIGlzRXF1YWxUb09yU3ViVHlwZU9mKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gdGhpcy5pc0VxdWFsVG8odHlwZSksXG4gICAgICAgICAgc3ViVHlwZU9mID0gdGhpcy5pc1N1YlR5cGVPZih0eXBlKSxcbiAgICAgICAgICBlcXVhbFRvT3JTdWJUeXBlT2YgPSAoZXF1YWxUbyB8fCBzdWJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG9PclN1YlR5cGVPZjtcbiAgfVxuXG4gIGlzRXF1YWxUb09yU3VwZXJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHRoaXMuaXNTdXBlclR5cGVPZih0eXBlKSxcbiAgICAgICAgICBlcXVhbFRvT3JTdXBlclR5cGVPZiA9IChlcXVhbFRvIHx8IHN1cGVyVHlwZU9mKTtcblxuICAgIHJldHVybiBlcXVhbFRvT3JTdXBlclR5cGVPZjtcbiAgfVxuXG4gIG1hdGNoTmFtZShuYW1lKSB7XG4gICAgY29uc3Qgbm9kZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSBuYW1lKTtcblxuICAgIHJldHVybiBub2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoVHlwZU5hbWUodHlwZU5hbWUpIHtcbiAgICBjb25zdCB0eXBlTmFtZU1hdGNoZXMgPSAodGhpcy5uYW1lID09PSB0eXBlTmFtZSk7XG5cbiAgICByZXR1cm4gdHlwZU5hbWVNYXRjaGVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHByb3BlcnRpZXNKU09OID0gcHJvcGVydGllc1RvUHJvcGVydGllc0pTT04odGhpcy5wcm9wZXJ0aWVzKSxcbiAgICAgICAgICBzdXBlclR5cGVzSlNPTiA9IHN1cGVyVHlwZXNUb1N1cGVyVHlwZXNKU09OKHRoaXMuc3VwZXJUeXBlcyksXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSB0aGlzLnByb3Zpc2lvbmFsLFxuICAgICAgICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzSlNPTiwgIC8vL1xuICAgICAgICAgIHN1cGVyVHlwZXMgPSBzdXBlclR5cGVzSlNPTiwgIC8vL1xuICAgICAgICAgIG5hbWUgPSB0aGlzLm5hbWUsXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBzdXBlclR5cGVzLFxuICAgICAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgICAgIHByb3Zpc2lvbmFsXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlR5cGVcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IG5hbWUsIHByb3Zpc2lvbmFsIH0gPSBqc29uLFxuICAgICAgICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN1cGVyVHlwZXMgPSBzdXBlclR5cGVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OYW1lQW5kU3VwZXJUeXBlcyhuYW1lLCBzdXBlclR5cGVzKSxcbiAgICAgICAgICB0eXBlID0gbmV3IFR5cGUoc3RyaW5nLCBuYW1lLCBzdXBlclR5cGVzLCBwcm9wZXJ0aWVzLCBwcm92aXNpb25hbCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZU5vZGUodHlwZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IHR5cGVGcm9tVHlwZU5vZGUodHlwZU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlQXNzZXJ0aW9uTm9kZSh0eXBlQXNzZXJ0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uVHlwZU5vZGUgPSB0eXBlQXNzZXJ0aW9uVHlwZU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZU5vZGUgPSB0eXBlQXNzZXJ0aW9uVHlwZU5vZGUsIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZUFuZFByb3Zpc2lvbmFsKHR5cGUsIHByb3Zpc2lvbmFsKSB7XG4gICAgY29uc3QgbmFtZSA9IHR5cGUuZ2V0TmFtZSgpLFxuICAgICAgICAgIHN1cGVyVHlwZSA9IHR5cGUsIC8vL1xuICAgICAgICAgIHN1cGVyVHlwZXMgPSBbXG4gICAgICAgICAgICBzdXBlclR5cGVcbiAgICAgICAgICBdLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OYW1lQW5kU3VwZXJUeXBlcyhuYW1lLCBzdXBlclR5cGVzKSxcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gdHlwZS5nZXRQcm9wZXJ0aWVzKCk7XG5cbiAgICB0eXBlID0gbmV3IFR5cGUoc3RyaW5nLCBuYW1lLCBzdXBlclR5cGVzLCBwcm9wZXJ0aWVzLCBwcm92aXNpb25hbCk7ICAvLy9cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgcHJvdmlzaW9uYWwgPSBwcm92aXNpb25hbEZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdXBlclR5cGVzID0gc3VwZXJUeXBlc0Zyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBuYW1lID0gbmFtZUZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZUFuZFN1cGVyVHlwZXMobmFtZSwgc3VwZXJUeXBlcyksXG4gICAgICAgICAgcHJvcGVydGllcyA9IFtdLFxuICAgICAgICAgIHR5cGUgPSBuZXcgVHlwZShzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZXMsIHByb3BlcnRpZXMsIHByb3Zpc2lvbmFsKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Qcm9wZXJ0eURlY2xhcmF0aW9uTm9kZShwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBwcm9wZXJ0eURlY2xhcmF0aW9uVHlwZU5vZGUgPSBwcm9wZXJ0eURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeShwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZU5vZGUgPSBwcm9wZXJ0eURlY2xhcmF0aW9uVHlwZU5vZGUsIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZVF1ZXJ5KHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICB0eXBlTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlLCAgLy8vXG4gICAgICAgICAgdHlwZSA9IHR5cGVGcm9tVHlwZU5vZGUodHlwZU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Db25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZShjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZSA9IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlUXVlcnkoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIHR5cGVOb2RlID0gY29uc3RydWN0b3JEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUsIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgcHJvdmlzaW9uYWwgPSBwcm92aXNpb25hbEZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdXBlclR5cGVzID0gc3VwZXJUeXBlc0Zyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWVBbmRTdXBlclR5cGVzKG5hbWUsIHN1cGVyVHlwZXMpLFxuICAgICAgICAgIHR5cGUgPSBuZXcgVHlwZShzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZXMsIHByb3BlcnRpZXMsIHByb3Zpc2lvbmFsKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKFR5cGUpO1xuXG5mdW5jdGlvbiB0eXBlRnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgdHlwZTtcblxuICBpZiAodHlwZU5vZGUgPT09IG51bGwpIHtcbiAgICB0eXBlID0gb2JqZWN0VHlwZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IFR5cGUgfSA9IGRvbSxcbiAgICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IG51bGwsXG4gICAgICAgICAgcHJvcGVydGllcyA9IG51bGwsXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSBudWxsO1xuXG4gICAgdHlwZSA9IG5ldyBUeXBlKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlcywgcHJvcGVydGllcywgcHJvdmlzaW9uYWwpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGU7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lQW5kU3VwZXJUeXBlcyhuYW1lLCBzdXBlclR5cGVzKSB7XG4gIGxldCBzdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgY29uc3Qgc3VwZXJUeXBlc1N0cmluZyA9IHN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyhzdXBlclR5cGVzKTtcblxuICBpZiAoc3VwZXJUeXBlc1N0cmluZyAhPT0gbnVsbCkge1xuICAgIHN0cmluZyA9IGAke3N0cmluZ306JHtzdXBlclR5cGVzU3RyaW5nfWA7XG4gIH1cblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBuYW1lRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgdHlwZURlY2xhcmF0aW9uVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5KHR5cGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICB0eXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblR5cGVOb2RlLCAvLy9cbiAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgIG5hbWUgPSB0eXBlTmFtZTsgIC8vL1xuXG4gIHJldHVybiBuYW1lO1xufVxuXG5mdW5jdGlvbiBzdXBlclR5cGVzU3RyaW5nRnJvbVN1cGVyVHlwZXMoc3VwZXJUeXBlcykge1xuICBjb25zdCBzdXBlclR5cGVzU3RyaW5nID0gc3VwZXJUeXBlcy5yZWR1Y2UoKHN1cGVyVHlwZXNTdHJpbmcsIHN1cGVyVHlwZSkgPT4ge1xuICAgIGlmIChzdXBlclR5cGUgIT09IG9iamVjdFR5cGUpIHtcbiAgICAgIGNvbnN0IHN1cGVyVHlwZU5hbWUgPSBzdXBlclR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICBzdXBlclR5cGVzU3RyaW5nID0gKHN1cGVyVHlwZXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyVHlwZU5hbWUgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke3N1cGVyVHlwZXNTdHJpbmd9LCAke3N1cGVyVHlwZU5hbWV9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXJUeXBlc1N0cmluZztcbiAgfSwgbnVsbCk7XG5cbiAgcmV0dXJuIHN1cGVyVHlwZXNTdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHN1cGVyVHlwZXNGcm9tVHlwZURlY2xhcmF0aW9uTm9kZSh0eXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlcyA9IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVzUXVlcnkodHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIHN1cGVyVHlwZXMgPSB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2Rlcy5tYXAoKHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBzdXBlclR5cGVOb2RlID0gdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZSwgLy8vXG4gICAgICAgICAgICAgICAgc3VwZXJUeXBlID0gVHlwZS5mcm9tVHlwZU5vZGUoc3VwZXJUeXBlTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIHN1cGVyVHlwZTtcbiAgICAgICAgfSksXG4gICAgICAgIHN1cGVyVHlwZXNMZW5ndGggPSBzdXBlclR5cGVzLmxlbmd0aDtcblxuICBpZiAoc3VwZXJUeXBlc0xlbmd0aCA9PT0gMCkge1xuICAgIHN1cGVyVHlwZXMucHVzaChvYmplY3RUeXBlKTtcbiAgfVxuXG4gIHJldHVybiBzdXBlclR5cGVzO1xufVxuXG5mdW5jdGlvbiBwcm92aXNpb25hbEZyb21UeXBlRGVjbGFyYXRpb25Ob2RlKHR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IGZpcnN0UHJpbWFyeUtleXdvcmRUZXJtaW5hbE5vZGUgPSBmaXJzdFByaW1hcnlLZXl3b3JkVGVybWluYWxOb2RlUXVlcnkodHlwZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgIGNvbnRlbnQgPSBmaXJzdFByaW1hcnlLZXl3b3JkVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgY29udGVudFByb3Zpc2lvbmFsID0gKGNvbnRlbnQgPT09IFBST1ZJU0lPTkFMKSxcbiAgICAgICAgcHJvdmlzaW9uYWwgPSBjb250ZW50UHJvdmlzaW9uYWw7IC8vL1xuXG4gIHJldHVybiBwcm92aXNpb25hbDtcbn1cblxuZnVuY3Rpb24gbmFtZUZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgdHlwZURlY2xhcmF0aW9uVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5KGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgdHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSwgLy8vXG4gICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUpLFxuICAgICAgICBuYW1lID0gdHlwZU5hbWU7ICAvLy9cblxuICByZXR1cm4gbmFtZTtcbn1cblxuZnVuY3Rpb24gc3VwZXJUeXBlc0Zyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZXMgPSB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2Rlc1F1ZXJ5KGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgc3VwZXJUeXBlcyA9IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVzLm1hcCgodHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1cGVyVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlLCAvLy9cbiAgICAgICAgICAgICAgICBzdXBlclR5cGUgPSBUeXBlLmZyb21UeXBlTm9kZShzdXBlclR5cGVOb2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgICByZXR1cm4gc3VwZXJUeXBlO1xuICAgICAgICB9KSxcbiAgICAgICAgc3VwZXJUeXBlc0xlbmd0aCA9IHN1cGVyVHlwZXMubGVuZ3RoO1xuXG4gIGlmIChzdXBlclR5cGVzTGVuZ3RoID09PSAwKSB7XG4gICAgc3VwZXJUeXBlcy5wdXNoKG9iamVjdFR5cGUpO1xuICB9XG5cbiAgcmV0dXJuIHN1cGVyVHlwZXM7XG59XG5cbmZ1bmN0aW9uIHByb3BlcnRpZXNGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlcyA9IHByb3BlcnR5RGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5KGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnR5RGVjbGFyYXRpb25Ob2Rlcy5tYXAoKHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBQcm9wZXJ0eSB9ID0gZG9tLFxuICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gUHJvcGVydHkuZnJvbVByb3BlcnR5RGVjbGFyYXRpb25Ob2RlKHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgICByZXR1cm4gcHJvcGVydHk7XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBwcm9wZXJ0aWVzO1xufVxuXG5jbGFzcyBPYmplY3RUeXBlIGV4dGVuZHMgVHlwZSB7XG4gIGdldFByb3BlcnRpZXMoKSB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IFtdO1xuXG4gICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICBzdXBlclR5cGVzID0gW10sXG4gICAgICAgICAgcHJvcGVydGllcyA9IHRoaXMucHJvcGVydGllcyxcbiAgICAgICAgICBwcm92aXNpb25hbCA9IHRoaXMucHJvdmlzaW9uYWwsXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBzdXBlclR5cGVzLFxuICAgICAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgICAgIHByb3Zpc2lvbmFsXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IG5hbWUgPSBPQkpFQ1RfVFlQRV9OQU1FLFxuICAgICAgICAgIHN0cmluZyA9IG5hbWUsICAvL1xuICAgICAgICAgIHN1cGVyVHlwZXMgPSBbXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gW10sXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSBmYWxzZSxcbiAgICAgICAgICBvYmplY3RUeXBlID0gbmV3IE9iamVjdFR5cGUoc3RyaW5nLCBuYW1lLCBzdXBlclR5cGVzLCBwcm9wZXJ0aWVzLCBwcm92aXNpb25hbCk7XG5cbiAgICByZXR1cm4gb2JqZWN0VHlwZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3Qgb2JqZWN0VHlwZSA9IE9iamVjdFR5cGUuZnJvbU5vdGhpbmcoKTtcbiJdLCJuYW1lcyI6WyJvYmplY3RUeXBlIiwicHVzaCIsImFycmF5VXRpbGl0aWVzIiwiZmlyc3QiLCJ0eXBlQXNzZXJ0aW9uVHlwZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInR5cGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkiLCJwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZXNRdWVyeSIsIm5vZGVzUXVlcnkiLCJwcm9wZXJ0eURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSIsInR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVzUXVlcnkiLCJmaXJzdFByaW1hcnlLZXl3b3JkVGVybWluYWxOb2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZVF1ZXJ5IiwiY29uc3RydWN0b3JEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVRdWVyeSIsIlR5cGUiLCJzdHJpbmciLCJuYW1lIiwic3VwZXJUeXBlcyIsInByb3BlcnRpZXMiLCJwcm92aXNpb25hbCIsImdldFN0cmluZyIsImdldE5hbWUiLCJnZXRTdXBlclR5cGVzIiwiZ2V0UHJvcGVydGllcyIsImluY2x1ZGVTdXBlclR5cGVzIiwiZm9yRWFjaCIsInN1cGVyVHlwZSIsInN1cGVyVHlwZVByb3BlcnRpZXMiLCJpc1Byb3Zpc2lvbmFsIiwic29tZSIsInN1cGVyVHlwZVByb3Zpc2lvbmFsIiwiZ2V0U29sZVN1cGVyVHlwZSIsInNvbGVTdXBlclR5cGUiLCJzdXBlclR5cGVzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RTdXBlclR5cGUiLCJzZXRTdHJpbmciLCJzZXROYW1lIiwic2V0U3VwZXJUeXBlcyIsInNldFByb3BlcnRpZXMiLCJzZXRQcm92aXNpb25hbCIsImlzUmVmaW5lZCIsInJlZmluZWQiLCJzb2xlU3VwZXJUeXBlTmFtZU1hdGNoZXNOYW1lIiwibWF0Y2hOYW1lIiwiaXNCYXNpYyIsImJhc2ljIiwic29sZVN1cGVyVHlwZU9iamVjdFR5cGUiLCJpc0VxdWFsVG8iLCJ0eXBlIiwiZXF1YWxUbyIsImlzU3ViVHlwZU9mIiwic3ViVHlwZU9mIiwic3VwZXJUeXBlU3ViVHlwZU9mVHlwZSIsImlzU3VwZXJUeXBlT2YiLCJzdXBlclR5cGVPZiIsImlzQ29tcGFyYWJsZVRvIiwiY29tcGFyYWJsZVRvIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2YiLCJlcXVhbFRvT3JTdWJUeXBlT2YiLCJpc0VxdWFsVG9PclN1cGVyVHlwZU9mIiwiZXF1YWxUb09yU3VwZXJUeXBlT2YiLCJub2RlTWF0Y2hlcyIsIm1hdGNoVHlwZU5hbWUiLCJ0eXBlTmFtZSIsInR5cGVOYW1lTWF0Y2hlcyIsInRvSlNPTiIsInByb3BlcnRpZXNKU09OIiwicHJvcGVydGllc1RvUHJvcGVydGllc0pTT04iLCJzdXBlclR5cGVzSlNPTiIsInN1cGVyVHlwZXNUb1N1cGVyVHlwZXNKU09OIiwianNvbiIsImZyb21KU09OIiwiZmlsZUNvbnRleHQiLCJwcm9wZXJ0aWVzRnJvbUpTT04iLCJzdXBlclR5cGVzRnJvbUpTT04iLCJzdHJpbmdGcm9tTmFtZUFuZFN1cGVyVHlwZXMiLCJmcm9tVHlwZU5vZGUiLCJ0eXBlTm9kZSIsInR5cGVGcm9tVHlwZU5vZGUiLCJmcm9tVHlwZUFzc2VydGlvbk5vZGUiLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsInR5cGVBc3NlcnRpb25UeXBlTm9kZSIsImZyb21UeXBlQW5kUHJvdmlzaW9uYWwiLCJmcm9tVHlwZURlY2xhcmF0aW9uTm9kZSIsInR5cGVEZWNsYXJhdGlvbk5vZGUiLCJwcm92aXNpb25hbEZyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwic3VwZXJUeXBlc0Zyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwibmFtZUZyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwiZnJvbVByb3BlcnR5RGVjbGFyYXRpb25Ob2RlIiwicHJvcGVydHlEZWNsYXJhdGlvbk5vZGUiLCJwcm9wZXJ0eURlY2xhcmF0aW9uVHlwZU5vZGUiLCJmcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlIiwiZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZSIsImZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwicHJvcGVydGllc0Zyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsInN1cGVyVHlwZXNGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUiLCJuYW1lRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiZG9tQXNzaWduZWQiLCJkb20iLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInN1cGVyVHlwZXNTdHJpbmciLCJzdXBlclR5cGVzU3RyaW5nRnJvbVN1cGVyVHlwZXMiLCJ0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSIsInJlZHVjZSIsInN1cGVyVHlwZU5hbWUiLCJ0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlcyIsIm1hcCIsInR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUiLCJzdXBlclR5cGVOb2RlIiwiZmlyc3RQcmltYXJ5S2V5d29yZFRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiY29udGVudFByb3Zpc2lvbmFsIiwiUFJPVklTSU9OQUwiLCJwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZXMiLCJQcm9wZXJ0eSIsInByb3BlcnR5IiwiT2JqZWN0VHlwZSIsImZyb21Ob3RoaW5nIiwiT0JKRUNUX1RZUEVfTkFNRSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBNlRBO2VBQUE7O1FBNkphQTtlQUFBQTs7O3lCQXhka0I7MkRBRWY7eUJBRVk7eUJBRUs7b0JBQ0k7cUJBQ0M7b0JBQ3lFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvRyxJQUFRQyxPQUFnQkMseUJBQWMsQ0FBOUJELE1BQU1FLFFBQVVELHlCQUFjLENBQXhCQztBQUVkLElBQU1DLDZCQUE2QkMsSUFBQUEsZ0JBQVMsRUFBQyx3QkFDdkNDLCtCQUErQkQsSUFBQUEsZ0JBQVMsRUFBQyxpREFDekNFLGdDQUFnQ0MsSUFBQUEsaUJBQVUsRUFBQyxnREFDM0NDLG1DQUFtQ0osSUFBQUEsZ0JBQVMsRUFBQyw4QkFDN0NLLHFDQUFxQ0YsSUFBQUEsaUJBQVUsRUFBQyx1REFDaERHLHVDQUF1Q04s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
|
|
541
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuXG5pbXBvcnQgeyBQUk9WSVNJT05BTCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgQkFTRV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5pbXBvcnQgeyB0eXBlTmFtZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvbmFtZVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgc3VwZXJUeXBlc0Zyb21KU09OLCBwcm9wZXJ0aWVzRnJvbUpTT04sIHN1cGVyVHlwZXNUb1N1cGVyVHlwZXNKU09OLCBwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IHB1c2gsIGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuY29uc3QgdHlwZUFzc2VydGlvblR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZUFzc2VydGlvbi90eXBlXCIpLFxuICAgICAgdHlwZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlRGVjbGFyYXRpb258Y29tcGxleFR5cGVEZWNsYXJhdGlvbi90eXBlXCIpLFxuICAgICAgcHJvcGVydHlEZWNsYXJhdGlvbk5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL2NvbXBsZXhUeXBlRGVjbGFyYXRpb24vcHJvcGVydHlEZWNsYXJhdGlvblwiKSxcbiAgICAgIHByb3BlcnR5RGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb3BlcnR5RGVjbGFyYXRpb24vdHlwZVwiKSxcbiAgICAgIHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3R5cGVEZWNsYXJhdGlvbnxjb21wbGV4VHlwZURlY2xhcmF0aW9uL3R5cGVzL3R5cGVcIiksXG4gICAgICBmaXJzdFByaW1hcnlLZXl3b3JkVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZURlY2xhcmF0aW9ufGNvbXBsZXhUeXBlRGVjbGFyYXRpb24vQHByaW1hcnkta2V5d29yZFswXVwiKSxcbiAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvbi90eXBlXCIpLFxuICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25zdHJ1Y3RvckRlY2xhcmF0aW9uL3R5cGVcIik7XG5cbmNsYXNzIFR5cGUge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZXMsIHByb3BlcnRpZXMsIHByb3Zpc2lvbmFsKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnN1cGVyVHlwZXMgPSBzdXBlclR5cGVzO1xuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgdGhpcy5wcm92aXNpb25hbCA9IHByb3Zpc2lvbmFsO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFN1cGVyVHlwZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3VwZXJUeXBlcztcbiAgfVxuXG4gIGdldFByb3BlcnRpZXMoaW5jbHVkZVN1cGVyVHlwZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IFtdO1xuXG4gICAgcHVzaChwcm9wZXJ0aWVzLCB0aGlzLnByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGluY2x1ZGVTdXBlclR5cGVzKSB7XG4gICAgICB0aGlzLnN1cGVyVHlwZXMuZm9yRWFjaCgoc3VwZXJUeXBlKSA9PiB7XG4gICAgICAgIGNvbnN0IHN1cGVyVHlwZVByb3BlcnRpZXMgPSBzdXBlclR5cGUuZ2V0UHJvcGVydGllcygpO1xuXG4gICAgICAgIHB1c2gocHJvcGVydGllcywgc3VwZXJUeXBlUHJvcGVydGllcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvcGVydGllcztcbiAgfVxuXG4gIGlzUHJvdmlzaW9uYWwoaW5jbHVkZVN1cGVyVHlwZXMgPSB0cnVlKSB7XG4gICAgbGV0IHByb3Zpc2lvbmFsID0gdGhpcy5wcm92aXNpb25hbDtcblxuICAgIGlmIChpbmNsdWRlU3VwZXJUeXBlcykge1xuICAgICAgaWYgKCFwcm92aXNpb25hbCkge1xuICAgICAgICBwcm92aXNpb25hbCA9IHRoaXMuc3VwZXJUeXBlcy5zb21lKChzdXBlclR5cGUpID0+IHtcbiAgICAgICAgICBjb25zdCBzdXBlclR5cGVQcm92aXNpb25hbCA9IHN1cGVyVHlwZS5pc1Byb3Zpc2lvbmFsKCk7XG5cbiAgICAgICAgICBpZiAoc3VwZXJUeXBlUHJvdmlzaW9uYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb3Zpc2lvbmFsO1xuICB9XG5cbiAgZ2V0U29sZVN1cGVyVHlwZSgpIHtcbiAgICBsZXQgc29sZVN1cGVyVHlwZSA9IG51bGw7XG5cbiAgICBjb25zdCBzdXBlclR5cGVzTGVuZ3RoID0gdGhpcy5zdXBlclR5cGVzLmxlbmd0aDtcblxuICAgIGlmIChzdXBlclR5cGVzTGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdFN1cGVyVHlwZSA9IGZpcnN0KHRoaXMuc3VwZXJUeXBlcyk7XG5cbiAgICAgIHNvbGVTdXBlclR5cGUgPSBmaXJzdFN1cGVyVHlwZTsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHNvbGVTdXBlclR5cGU7XG4gIH1cblxuICBzZXRTdHJpbmcoc3RyaW5nKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gIH1cblxuICBzZXROYW1lKG5hbWUpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgc2V0U3VwZXJUeXBlcyhzdXBlclR5cGVzKSB7XG4gICAgdGhpcy5zdXBlclR5cGVzID0gc3VwZXJUeXBlcztcbiAgfVxuXG4gIHNldFByb3BlcnRpZXMocHJvcGVydGllcykge1xuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gIH1cblxuICBzZXRQcm92aXNpb25hbChwcm92aXNpb25hbCkge1xuICAgIHRoaXMucHJvdmlzaW9uYWwgPSBwcm92aXNpb25hbDtcbiAgfVxuXG4gIGlzUmVmaW5lZCgpIHtcbiAgICBsZXQgcmVmaW5lZCA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc29sZVN1cGVyVHlwZSA9IHRoaXMuZ2V0U29sZVN1cGVyVHlwZSgpO1xuXG4gICAgaWYgKHNvbGVTdXBlclR5cGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHNvbGVTdXBlclR5cGVOYW1lTWF0Y2hlc05hbWUgPSBzb2xlU3VwZXJUeXBlLm1hdGNoTmFtZSh0aGlzLm5hbWUpO1xuXG4gICAgICByZWZpbmVkID0gc29sZVN1cGVyVHlwZU5hbWVNYXRjaGVzTmFtZTsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZmluZWQ7XG4gIH1cblxuICBpc0Jhc2ljKCkge1xuICAgIGxldCBiYXNpYyA9IGZhbHNlO1xuXG4gICAgY29uc3Qgc29sZVN1cGVyVHlwZSA9IHRoaXMuZ2V0U29sZVN1cGVyVHlwZSgpO1xuXG4gICAgaWYgKHNvbGVTdXBlclR5cGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHNvbGVTdXBlclR5cGVCYXNlVHlwZSA9IChzb2xlU3VwZXJUeXBlID09PSBiYXNlVHlwZSk7XG5cbiAgICAgIGJhc2ljID0gc29sZVN1cGVyVHlwZUJhc2VUeXBlOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIGJhc2ljO1xuICB9XG5cbiAgaXNFcXVhbFRvKHR5cGUpIHtcbiAgICBjb25zdCBlcXVhbFRvID0gKHRoaXMgPT09IHR5cGUpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBpc1N1YlR5cGVPZih0eXBlKSB7XG4gICAgbGV0IHN1YlR5cGVPZjtcblxuICAgIGlmICh0aGlzID09PSBiYXNlVHlwZSkge1xuICAgICAgc3ViVHlwZU9mID0gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1YlR5cGVPZiA9IHRoaXMuc3VwZXJUeXBlcy5zb21lKChzdXBlclR5cGUpID0+IHsgLy8vXG4gICAgICAgIGlmIChzdXBlclR5cGUgPT09IHR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1cGVyVHlwZVN1YlR5cGVPZlR5cGUgPSBzdXBlclR5cGUuaXNTdWJUeXBlT2YodHlwZSk7XG5cbiAgICAgICAgaWYgKHN1cGVyVHlwZVN1YlR5cGVPZlR5cGUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gc3ViVHlwZU9mO1xuICB9XG5cbiAgaXNTdXBlclR5cGVPZih0eXBlKSB7XG4gICAgY29uc3Qgc3ViVHlwZU9mID0gdHlwZS5pc1N1YlR5cGVPZih0aGlzKSxcbiAgICAgICAgICBzdXBlclR5cGVPZiA9IHN1YlR5cGVPZjsgIC8vL1xuXG4gICAgcmV0dXJuIHN1cGVyVHlwZU9mO1xuICB9XG5cbiAgaXNDb21wYXJhYmxlVG8odHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdWJUeXBlT2YgPSB0aGlzLmlzU3ViVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIHN1cGVyVHlwZU9mID0gdGhpcy5pc1N1cGVyVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGNvbXBhcmFibGVUbyA9IChlcXVhbFRvIHx8IHN1YlR5cGVPZiB8fCBzdXBlclR5cGVPZik7XG5cbiAgICByZXR1cm4gY29tcGFyYWJsZVRvO1xuICB9XG5cbiAgaXNFcXVhbFRvT3JTdWJUeXBlT2YodHlwZSkge1xuICAgIGNvbnN0IGVxdWFsVG8gPSB0aGlzLmlzRXF1YWxUbyh0eXBlKSxcbiAgICAgICAgICBzdWJUeXBlT2YgPSB0aGlzLmlzU3ViVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9PclN1YlR5cGVPZiA9IChlcXVhbFRvIHx8IHN1YlR5cGVPZik7XG5cbiAgICByZXR1cm4gZXF1YWxUb09yU3ViVHlwZU9mO1xuICB9XG5cbiAgaXNFcXVhbFRvT3JTdXBlclR5cGVPZih0eXBlKSB7XG4gICAgY29uc3QgZXF1YWxUbyA9IHRoaXMuaXNFcXVhbFRvKHR5cGUpLFxuICAgICAgICAgIHN1cGVyVHlwZU9mID0gdGhpcy5pc1N1cGVyVHlwZU9mKHR5cGUpLFxuICAgICAgICAgIGVxdWFsVG9PclN1cGVyVHlwZU9mID0gKGVxdWFsVG8gfHwgc3VwZXJUeXBlT2YpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG9PclN1cGVyVHlwZU9mO1xuICB9XG5cbiAgbWF0Y2hOYW1lKG5hbWUpIHtcbiAgICBjb25zdCBub2RlTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IG5hbWUpO1xuXG4gICAgcmV0dXJuIG5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hUeXBlTmFtZSh0eXBlTmFtZSkge1xuICAgIGNvbnN0IHR5cGVOYW1lTWF0Y2hlcyA9ICh0aGlzLm5hbWUgPT09IHR5cGVOYW1lKTtcblxuICAgIHJldHVybiB0eXBlTmFtZU1hdGNoZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgcHJvcGVydGllc0pTT04gPSBwcm9wZXJ0aWVzVG9Qcm9wZXJ0aWVzSlNPTih0aGlzLnByb3BlcnRpZXMpLFxuICAgICAgICAgIHN1cGVyVHlwZXNKU09OID0gc3VwZXJUeXBlc1RvU3VwZXJUeXBlc0pTT04odGhpcy5zdXBlclR5cGVzKSxcbiAgICAgICAgICBwcm92aXNpb25hbCA9IHRoaXMucHJvdmlzaW9uYWwsXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNKU09OLCAgLy8vXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXNKU09OLCAgLy8vXG4gICAgICAgICAgbmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHN1cGVyVHlwZXMsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgcHJvdmlzaW9uYWxcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgbmFtZSwgcHJvdmlzaW9uYWwgfSA9IGpzb24sXG4gICAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnRpZXNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IHN1cGVyVHlwZXNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWVBbmRTdXBlclR5cGVzKG5hbWUsIHN1cGVyVHlwZXMpLFxuICAgICAgICAgIHR5cGUgPSBuZXcgVHlwZShzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZXMsIHByb3BlcnRpZXMsIHByb3Zpc2lvbmFsKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlTm9kZSh0eXBlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gdHlwZUZyb21UeXBlTm9kZSh0eXBlTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVBc3NlcnRpb25Ob2RlKHR5cGVBc3NlcnRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25UeXBlTm9kZSA9IHR5cGVBc3NlcnRpb25UeXBlTm9kZVF1ZXJ5KHR5cGVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICB0eXBlTm9kZSA9IHR5cGVBc3NlcnRpb25UeXBlTm9kZSwgLy8vXG4gICAgICAgICAgdHlwZSA9IHR5cGVGcm9tVHlwZU5vZGUodHlwZU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlQW5kUHJvdmlzaW9uYWwodHlwZSwgcHJvdmlzaW9uYWwpIHtcbiAgICBjb25zdCBuYW1lID0gdHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgc3VwZXJUeXBlID0gdHlwZSwgLy8vXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IFtcbiAgICAgICAgICAgIHN1cGVyVHlwZVxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWVBbmRTdXBlclR5cGVzKG5hbWUsIHN1cGVyVHlwZXMpLFxuICAgICAgICAgIHByb3BlcnRpZXMgPSB0eXBlLmdldFByb3BlcnRpZXMoKTtcblxuICAgIHR5cGUgPSBuZXcgVHlwZShzdHJpbmcsIG5hbWUsIHN1cGVyVHlwZXMsIHByb3BlcnRpZXMsIHByb3Zpc2lvbmFsKTsgIC8vL1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBwcm92aXNpb25hbCA9IHByb3Zpc2lvbmFsRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN1cGVyVHlwZXMgPSBzdXBlclR5cGVzRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21OYW1lQW5kU3VwZXJUeXBlcyhuYW1lLCBzdXBlclR5cGVzKSxcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gW10sXG4gICAgICAgICAgdHlwZSA9IG5ldyBUeXBlKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlcywgcHJvcGVydGllcywgcHJvdmlzaW9uYWwpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb3BlcnR5RGVjbGFyYXRpb25Ob2RlKHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHByb3BlcnR5RGVjbGFyYXRpb25UeXBlTm9kZSA9IHByb3BlcnR5RGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5KHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICB0eXBlTm9kZSA9IHByb3BlcnR5RGVjbGFyYXRpb25UeXBlTm9kZSwgLy8vXG4gICAgICAgICAgdHlwZSA9IHR5cGVGcm9tVHlwZU5vZGUodHlwZU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB2YXJpYWJsZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIHR5cGVOb2RlID0gdmFyaWFibGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUsICAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21UeXBlTm9kZSh0eXBlTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlID0gY29uc3RydWN0b3JEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVRdWVyeShjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZU5vZGUgPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZSwgLy8vXG4gICAgICAgICAgdHlwZSA9IHR5cGVGcm9tVHlwZU5vZGUodHlwZU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBwcm92aXNpb25hbCA9IHByb3Zpc2lvbmFsRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc0Zyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHN1cGVyVHlwZXMgPSBzdXBlclR5cGVzRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgbmFtZSA9IG5hbWVGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZUFuZFN1cGVyVHlwZXMobmFtZSwgc3VwZXJUeXBlcyksXG4gICAgICAgICAgdHlwZSA9IG5ldyBUeXBlKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlcywgcHJvcGVydGllcywgcHJvdmlzaW9uYWwpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoVHlwZSk7XG5cbmZ1bmN0aW9uIHR5cGVGcm9tVHlwZU5vZGUodHlwZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0eXBlO1xuXG4gIGlmICh0eXBlTm9kZSA9PT0gbnVsbCkge1xuICAgIHR5cGUgPSBiYXNlVHlwZTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IFR5cGUgfSA9IGRvbSxcbiAgICAgICAgICB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IG51bGwsXG4gICAgICAgICAgcHJvcGVydGllcyA9IG51bGwsXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSBudWxsO1xuXG4gICAgdHlwZSA9IG5ldyBUeXBlKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlcywgcHJvcGVydGllcywgcHJvdmlzaW9uYWwpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGU7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lQW5kU3VwZXJUeXBlcyhuYW1lLCBzdXBlclR5cGVzKSB7XG4gIGxldCBzdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgY29uc3Qgc3VwZXJUeXBlc1N0cmluZyA9IHN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyhzdXBlclR5cGVzKTtcblxuICBpZiAoc3VwZXJUeXBlc1N0cmluZyAhPT0gbnVsbCkge1xuICAgIHN0cmluZyA9IGAke3N0cmluZ306JHtzdXBlclR5cGVzU3RyaW5nfWA7XG4gIH1cblxuICByZXR1cm4gc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBuYW1lRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgdHlwZURlY2xhcmF0aW9uVHlwZU5vZGUgPSB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5KHR5cGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICB0eXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblR5cGVOb2RlLCAvLy9cbiAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgIG5hbWUgPSB0eXBlTmFtZTsgIC8vL1xuXG4gIHJldHVybiBuYW1lO1xufVxuXG5mdW5jdGlvbiBzdXBlclR5cGVzU3RyaW5nRnJvbVN1cGVyVHlwZXMoc3VwZXJUeXBlcykge1xuICBjb25zdCBzdXBlclR5cGVzU3RyaW5nID0gc3VwZXJUeXBlcy5yZWR1Y2UoKHN1cGVyVHlwZXNTdHJpbmcsIHN1cGVyVHlwZSkgPT4ge1xuICAgIGlmIChzdXBlclR5cGUgIT09IGJhc2VUeXBlKSB7XG4gICAgICBjb25zdCBzdXBlclR5cGVOYW1lID0gc3VwZXJUeXBlLmdldE5hbWUoKTtcblxuICAgICAgc3VwZXJUeXBlc1N0cmluZyA9IChzdXBlclR5cGVzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBlclR5cGVOYW1lIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtzdXBlclR5cGVzU3RyaW5nfSwgJHtzdXBlclR5cGVOYW1lfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyVHlwZXNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBzdXBlclR5cGVzU3RyaW5nO1xufVxuXG5mdW5jdGlvbiBzdXBlclR5cGVzRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZXMgPSB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2Rlc1F1ZXJ5KHR5cGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICBzdXBlclR5cGVzID0gdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZXMubWFwKCh0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VwZXJUeXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICAgIHN1cGVyVHlwZSA9IFR5cGUuZnJvbVR5cGVOb2RlKHN1cGVyVHlwZU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgICAgICAgIHJldHVybiBzdXBlclR5cGU7XG4gICAgICAgIH0pLFxuICAgICAgICBzdXBlclR5cGVzTGVuZ3RoID0gc3VwZXJUeXBlcy5sZW5ndGg7XG5cbiAgaWYgKHN1cGVyVHlwZXNMZW5ndGggPT09IDApIHtcbiAgICBzdXBlclR5cGVzLnB1c2goYmFzZVR5cGUpO1xuICB9XG5cbiAgcmV0dXJuIHN1cGVyVHlwZXM7XG59XG5cbmZ1bmN0aW9uIHByb3Zpc2lvbmFsRnJvbVR5cGVEZWNsYXJhdGlvbk5vZGUodHlwZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgY29uc3QgZmlyc3RQcmltYXJ5S2V5d29yZFRlcm1pbmFsTm9kZSA9IGZpcnN0UHJpbWFyeUtleXdvcmRUZXJtaW5hbE5vZGVRdWVyeSh0eXBlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgY29udGVudCA9IGZpcnN0UHJpbWFyeUtleXdvcmRUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICBjb250ZW50UHJvdmlzaW9uYWwgPSAoY29udGVudCA9PT0gUFJPVklTSU9OQUwpLFxuICAgICAgICBwcm92aXNpb25hbCA9IGNvbnRlbnRQcm92aXNpb25hbDsgLy8vXG5cbiAgcmV0dXJuIHByb3Zpc2lvbmFsO1xufVxuXG5mdW5jdGlvbiBuYW1lRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCB0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICB0eXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblR5cGVOb2RlLCAvLy9cbiAgICAgICAgdHlwZU5hbWUgPSB0eXBlTmFtZUZyb21UeXBlTm9kZSh0eXBlTm9kZSksXG4gICAgICAgIG5hbWUgPSB0eXBlTmFtZTsgIC8vL1xuXG4gIHJldHVybiBuYW1lO1xufVxuXG5mdW5jdGlvbiBzdXBlclR5cGVzRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCB0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlcyA9IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGVzUXVlcnkoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICBzdXBlclR5cGVzID0gdHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZXMubWFwKCh0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VwZXJUeXBlTm9kZSA9IHR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUsIC8vL1xuICAgICAgICAgICAgICAgIHN1cGVyVHlwZSA9IFR5cGUuZnJvbVR5cGVOb2RlKHN1cGVyVHlwZU5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgICAgICAgIHJldHVybiBzdXBlclR5cGU7XG4gICAgICAgIH0pLFxuICAgICAgICBzdXBlclR5cGVzTGVuZ3RoID0gc3VwZXJUeXBlcy5sZW5ndGg7XG5cbiAgaWYgKHN1cGVyVHlwZXNMZW5ndGggPT09IDApIHtcbiAgICBzdXBlclR5cGVzLnB1c2goYmFzZVR5cGUpO1xuICB9XG5cbiAgcmV0dXJuIHN1cGVyVHlwZXM7XG59XG5cbmZ1bmN0aW9uIHByb3BlcnRpZXNGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGNvbnN0IHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlcyA9IHByb3BlcnR5RGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5KGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgcHJvcGVydGllcyA9IHByb3BlcnR5RGVjbGFyYXRpb25Ob2Rlcy5tYXAoKHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBQcm9wZXJ0eSB9ID0gZG9tLFxuICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gUHJvcGVydHkuZnJvbVByb3BlcnR5RGVjbGFyYXRpb25Ob2RlKHByb3BlcnR5RGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICAgICAgICByZXR1cm4gcHJvcGVydHk7XG4gICAgICAgIH0pO1xuXG4gIHJldHVybiBwcm9wZXJ0aWVzO1xufVxuXG5jbGFzcyBCYXNlVHlwZSBleHRlbmRzIFR5cGUge1xuICBnZXRQcm9wZXJ0aWVzKCkge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBbXTtcblxuICAgIHJldHVybiBwcm9wZXJ0aWVzO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLm5hbWUsXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IFtdLFxuICAgICAgICAgIHByb3BlcnRpZXMgPSB0aGlzLnByb3BlcnRpZXMsXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSB0aGlzLnByb3Zpc2lvbmFsLFxuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgc3VwZXJUeXBlcyxcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgICBwcm92aXNpb25hbFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTm90aGluZygpIHtcbiAgICBjb25zdCBuYW1lID0gQkFTRV9UWVBFX05BTUUsXG4gICAgICAgICAgc3RyaW5nID0gbmFtZSwgIC8vXG4gICAgICAgICAgc3VwZXJUeXBlcyA9IFtdLFxuICAgICAgICAgIHByb3BlcnRpZXMgPSBbXSxcbiAgICAgICAgICBwcm92aXNpb25hbCA9IGZhbHNlLFxuICAgICAgICAgIGJhc2VUeXBlID0gbmV3IEJhc2VUeXBlKHN0cmluZywgbmFtZSwgc3VwZXJUeXBlcywgcHJvcGVydGllcywgcHJvdmlzaW9uYWwpO1xuXG4gICAgcmV0dXJuIGJhc2VUeXBlO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBiYXNlVHlwZSA9IEJhc2VUeXBlLmZyb21Ob3RoaW5nKCk7XG4iXSwibmFtZXMiOlsiYmFzZVR5cGUiLCJwdXNoIiwiYXJyYXlVdGlsaXRpZXMiLCJmaXJzdCIsInR5cGVBc3NlcnRpb25UeXBlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSIsInByb3BlcnR5RGVjbGFyYXRpb25Ob2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInByb3BlcnR5RGVjbGFyYXRpb25UeXBlTm9kZVF1ZXJ5IiwidHlwZURlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZXNRdWVyeSIsImZpcnN0UHJpbWFyeUtleXdvcmRUZXJtaW5hbE5vZGVRdWVyeSIsInZhcmlhYmxlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlUXVlcnkiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZVF1ZXJ5IiwiVHlwZSIsInN0cmluZyIsIm5hbWUiLCJzdXBlclR5cGVzIiwicHJvcGVydGllcyIsInByb3Zpc2lvbmFsIiwiZ2V0U3RyaW5nIiwiZ2V0TmFtZSIsImdldFN1cGVyVHlwZXMiLCJnZXRQcm9wZXJ0aWVzIiwiaW5jbHVkZVN1cGVyVHlwZXMiLCJmb3JFYWNoIiwic3VwZXJUeXBlIiwic3VwZXJUeXBlUHJvcGVydGllcyIsImlzUHJvdmlzaW9uYWwiLCJzb21lIiwic3VwZXJUeXBlUHJvdmlzaW9uYWwiLCJnZXRTb2xlU3VwZXJUeXBlIiwic29sZVN1cGVyVHlwZSIsInN1cGVyVHlwZXNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFN1cGVyVHlwZSIsInNldFN0cmluZyIsInNldE5hbWUiLCJzZXRTdXBlclR5cGVzIiwic2V0UHJvcGVydGllcyIsInNldFByb3Zpc2lvbmFsIiwiaXNSZWZpbmVkIiwicmVmaW5lZCIsInNvbGVTdXBlclR5cGVOYW1lTWF0Y2hlc05hbWUiLCJtYXRjaE5hbWUiLCJpc0Jhc2ljIiwiYmFzaWMiLCJzb2xlU3VwZXJUeXBlQmFzZVR5cGUiLCJpc0VxdWFsVG8iLCJ0eXBlIiwiZXF1YWxUbyIsImlzU3ViVHlwZU9mIiwic3ViVHlwZU9mIiwic3VwZXJUeXBlU3ViVHlwZU9mVHlwZSIsImlzU3VwZXJUeXBlT2YiLCJzdXBlclR5cGVPZiIsImlzQ29tcGFyYWJsZVRvIiwiY29tcGFyYWJsZVRvIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2YiLCJlcXVhbFRvT3JTdWJUeXBlT2YiLCJpc0VxdWFsVG9PclN1cGVyVHlwZU9mIiwiZXF1YWxUb09yU3VwZXJUeXBlT2YiLCJub2RlTWF0Y2hlcyIsIm1hdGNoVHlwZU5hbWUiLCJ0eXBlTmFtZSIsInR5cGVOYW1lTWF0Y2hlcyIsInRvSlNPTiIsInByb3BlcnRpZXNKU09OIiwicHJvcGVydGllc1RvUHJvcGVydGllc0pTT04iLCJzdXBlclR5cGVzSlNPTiIsInN1cGVyVHlwZXNUb1N1cGVyVHlwZXNKU09OIiwianNvbiIsImZyb21KU09OIiwiZmlsZUNvbnRleHQiLCJwcm9wZXJ0aWVzRnJvbUpTT04iLCJzdXBlclR5cGVzRnJvbUpTT04iLCJzdHJpbmdGcm9tTmFtZUFuZFN1cGVyVHlwZXMiLCJmcm9tVHlwZU5vZGUiLCJ0eXBlTm9kZSIsInR5cGVGcm9tVHlwZU5vZGUiLCJmcm9tVHlwZUFzc2VydGlvbk5vZGUiLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsInR5cGVBc3NlcnRpb25UeXBlTm9kZSIsImZyb21UeXBlQW5kUHJvdmlzaW9uYWwiLCJmcm9tVHlwZURlY2xhcmF0aW9uTm9kZSIsInR5cGVEZWNsYXJhdGlvbk5vZGUiLCJwcm92aXNpb25hbEZyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwic3VwZXJUeXBlc0Zyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwibmFtZUZyb21UeXBlRGVjbGFyYXRpb25Ob2RlIiwiZnJvbVByb3BlcnR5RGVjbGFyYXRpb25Ob2RlIiwicHJvcGVydHlEZWNsYXJhdGlvbk5vZGUiLCJwcm9wZXJ0eURlY2xhcmF0aW9uVHlwZU5vZGUiLCJmcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlIiwiZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uU3VwZXJUeXBlTm9kZSIsImZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwicHJvcGVydGllc0Zyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsInN1cGVyVHlwZXNGcm9tQ29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUiLCJuYW1lRnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiZG9tQXNzaWduZWQiLCJkb20iLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInN1cGVyVHlwZXNTdHJpbmciLCJzdXBlclR5cGVzU3RyaW5nRnJvbVN1cGVyVHlwZXMiLCJ0eXBlRGVjbGFyYXRpb25UeXBlTm9kZSIsInJlZHVjZSIsInN1cGVyVHlwZU5hbWUiLCJ0eXBlRGVjbGFyYXRpb25TdXBlclR5cGVOb2RlcyIsIm1hcCIsInR5cGVEZWNsYXJhdGlvblN1cGVyVHlwZU5vZGUiLCJzdXBlclR5cGVOb2RlIiwiZmlyc3RQcmltYXJ5S2V5d29yZFRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiY29udGVudFByb3Zpc2lvbmFsIiwiUFJPVklTSU9OQUwiLCJwcm9wZXJ0eURlY2xhcmF0aW9uTm9kZXMiLCJQcm9wZXJ0eSIsInByb3BlcnR5IiwiQmFzZVR5cGUiLCJmcm9tTm90aGluZyIsIkJBU0VfVFlQRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUEwZGFBO2VBQUFBOztRQTdKYjtlQUFBOzs7eUJBM1QrQjsyREFFZjt5QkFFWTt5QkFFRztvQkFDTTtxQkFDQztvQkFDeUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRS9HLElBQVFDLE9BQWdCQyx5QkFBYyxDQUE5QkQsTUFBTUUsUUFBVUQseUJBQWMsQ0FBeEJDO0FBRWQsSUFBTUMsNkJBQTZCQyxJQUFBQSxnQkFBUyxFQUFDLHdCQUN2Q0MsK0JBQStCRCxJQUFBQSxnQkFBUyxFQUFDLGlEQUN6Q0UsZ0NBQWdDQyxJQUFBQSxpQkFBVSxFQUFDLGdEQUMzQ0MsbUNBQW1DSixJQUFBQSxnQkFBUyxFQUFDLDhCQUM3Q0sscUNBQXFDRixJQUFBQSxpQkFBVSxFQUFDLHVEQUNoREcsdUNBQXVDTixJQUFBQSxnQkFBUyxFQUFDLGdFQUNqRE8sd0NBQXdDUCxJQUFBQSxnQkFBUyxFQUFDLDhCQUNsRFEsMkNBQTJDUixJQUFBQSxnQkFBUyxFQUFDO0FBRTNELElBQUEsQUFBTVMscUJBQU47YUFBTUEsS0FDUUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxXQUFXO2dDQUR6REw7UUFFRixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTs7a0JBTmpCTDs7WUFTSk0sS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDTCxNQUFNO1lBQ3BCOzs7WUFFQU0sS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDTCxJQUFJO1lBQ2xCOzs7WUFFQU0sS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDTCxVQUFVO1lBQ3hCOzs7WUFFQU0sS0FBQUE7bUJBQUFBLFNBQUFBO29CQUFjQyxvQkFBQUEsaUVBQW9CO2dCQUNoQyxJQUFNTixhQUFhLEVBQUU7Z0JBRXJCakIsS0FBS2lCLFlBQVksSUFBSSxDQUFDQSxVQUFVO2dCQUVoQyxJQUFJTSxtQkFBbUI7b0JBQ3JCLElBQUksQ0FBQ1AsVUFBVSxDQUFDUSxPQUFPLENBQUMsU0FBQ0M7d0JBQ3ZCLElBQU1DLHNCQUFzQkQsVUFBVUgsYUFBYTt3QkFFbkR0QixLQUFLaUIsWUFBWVM7b0JBQ25CO2dCQUNGO2dCQUVBLE9BQU9UO1lBQ1Q7OztZQUVBVSxLQUFBQTttQkFBQUEsU0FBQUE7b0JBQWNKLG9CQUFBQSxpRUFBb0I7Z0JBQ2hDLElBQUlMLGNBQWMsSUFBSSxDQUFDQSxXQUFXO2dCQUVsQyxJQUFJSyxtQkFBbUI7b0JBQ3JCLElBQUksQ0FBQ0wsYUFBYTt3QkFDaEJBLGNBQWMsSUFBSSxDQUFDRixVQUFVLENBQUNZLElBQUksQ0FBQyxTQUFDSDs0QkFDbEMsSUFBTUksdUJBQXVCSixVQUFVRSxhQUFhOzRCQUVwRCxJQUFJRSxzQkFBc0I7Z0NBQ3hCLE9BQU87NEJBQ1Q7d0JBQ0Y7b0JBQ0Y7Z0JBQ0Y7Z0JBRUEsT0FBT1g7WUFDVDs7O1lBRUFZLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJQyxnQkFBZ0I7Z0JBRXBCLElBQU1DLG1CQUFtQixJQUFJLENBQUNoQixVQUFVLENBQUNpQixNQUFNO2dCQUUvQyxJQUFJRCxxQkFBcUIsR0FBRztvQkFDMUIsSUFBTUUsaUJBQWlCaEMsTUFBTSxJQUFJLENBQUNjLFVBQVU7b0JBRTVDZSxnQkFBZ0JHLGdCQUFnQixHQUFHO2dCQUNyQztnQkFFQSxPQUFPSDtZQUNUOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVyQixNQUFNO2dCQUNkLElBQUksQ0FBQ0EsTUFBTSxHQUFHQTtZQUNoQjs7O1lBRUFzQixLQUFBQTttQkFBQUEsU0FBQUEsUUFBUXJCLElBQUk7Z0JBQ1YsSUFBSSxDQUFDQSxJQUFJLEdBQUdBO1lBQ2Q7OztZQUVBc0IsS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWNyQixVQUFVO2dCQUN0QixJQUFJLENBQUNBLFVBQVUsR0FBR0E7WUFDcEI7OztZQUVBc0IsS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWNyQixVQUFVO2dCQUN0QixJQUFJLENBQUNBLFVBQVUsR0FBR0E7WUFDcEI7OztZQUVBc0IsS0FBQUE7bUJBQUFBLFNBQUFBLGVBQWVyQixXQUFXO2dCQUN4QixJQUFJLENBQUNBLFdBQVcsR0FBR0E7WUFDckI7OztZQUVBc0IsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDLFVBQVU7Z0JBRWQsSUFBTVYsZ0JBQWdCLElBQUksQ0FBQ0QsZ0JBQWdCO2dCQUUzQyxJQUFJQyxrQkFBa0IsTUFBTTtvQkFDMUIsSUFBTVcsK0JBQStCWCxjQUFjWSxTQUFTLENBQUMsSUFBSSxDQUFDNUIsSUFBSTtvQkFFdEUwQixVQUFVQyw4QkFBOEIsR0FBRztnQkFDN0M7Z0JBRUEsT0FBT0Q7WUFDVDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFJQyxRQUFRO2dCQUVaLElBQU1kLGdCQUFnQixJQUFJLENBQUNELGdCQUFnQjtnQkFFM0MsSUFBSUMsa0JBQWtCLE1BQU07b0JBQzFCLElBQU1lLHdCQUF5QmYsa0JBQWtCaEM7b0JBRWpEOEMsUUFBUUMsdUJBQXdCLEdBQUc7Z0JBQ3JDO2dCQUVBLE9BQU9EO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVUMsSUFBSTtnQkFDWixJQUFNQyxVQUFXLElBQUksS0FBS0Q7Z0JBRTFCLE9BQU9DO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsWUFBWUYsSUFBSTtnQkFDZCxJQUFJRztnQkFFSixJQUFJLElBQUksS0FBS3BELFVBQVU7b0JBQ3JCb0QsWUFBWTtnQkFDZCxPQUFPO29CQUNMQSxZQUFZLElBQUksQ0FBQ25DLFVBQVUsQ0FBQ1ksSUFBSSxDQUFDLFNBQUNIO3dCQUNoQyxJQUFJQSxjQUFjdUIsTUFBTTs0QkFDdEIsT0FBTzt3QkFDVDt3QkFFQSxJQUFNSSx5QkFBeUIzQixVQUFVeUIsV0FBVyxDQUFDRjt3QkFFckQsSUFBSUksd0JBQXdCOzRCQUMxQixPQUFPO3dCQUNUO29CQUNGO2dCQUNGO2dCQUVBLE9BQU9EO1lBQ1Q7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsY0FBY0wsSUFBSTtnQkFDaEIsSUFBTUcsWUFBWUgsS0FBS0UsV0FBVyxDQUFDLElBQUksR0FDakNJLGNBQWNILFdBQVksR0FBRztnQkFFbkMsT0FBT0c7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxlQUFlUCxJQUFJO2dCQUNqQixJQUFNQyxVQUFVLElBQUksQ0FBQ0YsU0FBUyxDQUFDQyxPQUN6QkcsWUFBWSxJQUFJLENBQUNELFdBQVcsQ0FBQ0YsT0FDN0JNLGNBQWMsSUFBSSxDQUFDRCxhQUFhLENBQUNMLE9BQ2pDUSxlQUFnQlAsV0FBV0UsYUFBYUc7Z0JBRTlDLE9BQU9FO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCVCxJQUFJO2dCQUN2QixJQUFNQyxVQUFVLElBQUksQ0FBQ0YsU0FBUyxDQUFDQyxPQUN6QkcsWUFBWSxJQUFJLENBQUNELFdBQVcsQ0FBQ0YsT0FDN0JVLHFCQUFzQlQsV0FBV0U7Z0JBRXZDLE9BQU9PO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsdUJBQXVCWCxJQUFJO2dCQUN6QixJQUFNQyxVQUFVLElBQUksQ0FBQ0YsU0FBUyxDQUFDQyxPQUN6Qk0sY0FBYyxJQUFJLENBQUNELGFBQWEsQ0FBQ0wsT0FDakNZLHVCQUF3QlgsV0FBV0s7Z0JBRXpDLE9BQU9NO1lBQ1Q7OztZQUVBakIsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVU1QixJQUFJO2dCQUNaLElBQU04QyxjQUFlLElBQUksQ0FBQzlDLElBQUksS0FBS0E7Z0JBRW5DLE9BQU84QztZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGNBQWNDLFFBQVE7Z0JBQ3BCLElBQU1DLGtCQUFtQixJQUFJLENBQUNqRCxJQUFJLEtBQUtnRDtnQkFFdkMsT0FBT0M7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxpQkFBaUJDLElBQUFBLGdDQUEwQixFQUFDLElBQUksQ0FBQ2xELFVBQVUsR0FDM0RtRCxpQkFBaUJDLElBQUFBLGdDQUEwQixFQUFDLElBQUksQ0FBQ3JELFVBQVUsR0FDM0RFLGNBQWMsSUFBSSxDQUFDQSxXQUFXLEVBQzlCRCxhQUFhaUQsZ0JBQ2JsRCxhQUFhb0QsZ0JBQ2JyRCxPQUFPLElBQUksQ0FBQ0EsSUFBSSxFQUNoQnVELE9BQU87b0JBQ0x2RCxNQUFBQTtvQkFDQUMsWUFBQUE7b0JBQ0FDLFlBQUFBO29CQUNBQyxhQUFBQTtnQkFDRjtnQkFFTixPQUFPb0Q7WUFDVDs7OztZQUlPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUVFLFdBQVc7Z0JBQy9CLElBQVF6RCxPQUFzQnVELEtBQXRCdkQsTUFBTUcsY0FBZ0JvRCxLQUFoQnBELGFBQ1JELGFBQWF3RCxJQUFBQSx3QkFBa0IsRUFBQ0gsTUFBTUUsY0FDdEN4RCxhQUFhMEQsSUFBQUEsd0JBQWtCLEVBQUNKLE1BQU1FLGNBQ3RDMUQsU0FBUzZELDRCQUE0QjVELE1BQU1DLGFBQzNDZ0MsT0FBTyxJQXJOWG5DLEtBcU5vQkMsUUFBUUMsTUFBTUMsWUFBWUMsWUFBWUM7Z0JBRTVELE9BQU84QjtZQUNUOzs7WUFFTzRCLEtBQUFBO21CQUFQLFNBQU9BLGFBQWFDLFFBQVEsRUFBRUwsV0FBVztnQkFDdkMsSUFBTXhCLE9BQU84QixpQkFBaUJELFVBQVVMO2dCQUV4QyxPQUFPeEI7WUFDVDs7O1lBRU8rQixLQUFBQTttQkFBUCxTQUFPQSxzQkFBc0JDLGlCQUFpQixFQUFFUixXQUFXO2dCQUN6RCxJQUFNUyx3QkFBd0I5RSwyQkFBMkI2RSxvQkFDbkRILFdBQVdJLHVCQUNYakMsT0FBTzhCLGlCQUFpQkQsVUFBVUw7Z0JBRXhDLE9BQU94QjtZQUNUOzs7WUFFT2tDLEtBQUFBO21CQUFQLFNBQU9BLHVCQUF1QmxDLElBQUksRUFBRTlCLFdBQVc7Z0JBQzdDLElBQU1ILE9BQU9pQyxLQUFLNUIsT0FBTyxJQUNuQkssWUFBWXVCLE1BQ1poQyxhQUFhO29CQUNYUztpQkFDRCxFQUNEWCxTQUFTNkQsNEJBQTRCNUQsTUFBTUMsYUFDM0NDLGFBQWErQixLQUFLMUIsYUFBYTtnQkFFckMwQixPQUFPLElBalBMbkMsS0FpUGNDLFFBQVFDLE1BQU1DLFlBQVlDLFlBQVlDLGNBQWUsR0FBRztnQkFFeEUsT0FBTzhCO1lBQ1Q7OztZQUVPbUMsS0FBQUE7bUJBQVAsU0FBT0Esd0JBQXdCQyxtQkFBbUIsRUFBRVosV0FBVztnQkFDN0QsSUFBTXRELGNBQWNtRSxtQ0FBbUNELHFCQUFxQlosY0FDdEV4RCxhQUFhc0Usa0NBQWtDRixxQkFBcUJaLGNBQ3BFekQsT0FBT3dFLDRCQUE0QkgscUJBQXFCWixjQUN4RDFELFNBQVM2RCw0QkFBNEI1RCxNQUFNQyxhQUMzQ0MsYUFBYSxFQUFFLEVBQ2YrQixPQUFPLElBNVBYbkMsS0E0UG9CQyxRQUFRQyxNQUFNQyxZQUFZQyxZQUFZQztnQkFFNUQsT0FBTzhCO1lBQ1Q7OztZQUVPd0MsS0FBQUE7bUJBQVAsU0FBT0EsNEJBQTRCQyx1QkFBdUIsRUFBRWpCLFdBQVc7Z0JBQ3JFLElBQU1rQiw4QkFBOEJsRixpQ0FBaUNpRiwwQkFDL0RaLFdBQVdhLDZCQUNYMUMsT0FBTzhCLGlCQUFpQkQsVUFBVUw7Z0JBRXhDLE9BQU94QjtZQUNUOzs7WUFFTzJDLEtBQUFBO21CQUFQLFNBQU9BLDRCQUE0QkMsdUJBQXVCLEVBQUVwQixXQUFXO2dCQUNyRSxJQUFNcUIsbUNBQW1DbEYsc0NBQXNDaUYsMEJBQ3pFZixXQUFXZ0Isa0NBQ1g3QyxPQUFPOEIsaUJBQWlCRCxVQUFVTDtnQkFFeEMsT0FBT3hCO1lBQ1Q7OztZQUVPOEMsS0FBQUE7bUJBQVAsU0FBT0EsK0JBQStCQywwQkFBMEIsRUFBRXZCLFdBQVc7Z0JBQzNFLElBQU13QixzQ0FBc0NwRix5Q0FBeUNtRiw2QkFDL0VsQixXQUFXbUIscUNBQ1hoRCxPQUFPOEIsaUJBQWlCRCxVQUFVTDtnQkFFeEMsT0FBT3hCO1lBQ1Q7OztZQUVPaUQsS0FBQUE7bUJBQVAsU0FBT0EsK0JBQStCQywwQkFBMEIsRUFBRTFCLFdBQVc7Z0JBQzNFLElBQU10RCxjQUFjbUUsbUNBQW1DYSw0QkFBNEIxQixjQUM3RXZELGFBQWFrRix5Q0FBeUNELDRCQUE0QjFCLGNBQ2xGeEQsYUFBYW9GLHlDQUF5Q0YsNEJBQTRCMUIsY0FDbEZ6RCxPQUFPc0YsbUNBQW1DSCw0QkFBNEIxQixjQUN0RTFELFNBQVM2RCw0QkFBNEI1RCxNQUFNQyxhQUMzQ2dDLE9BQU8sSUEvUlhuQyxLQStSb0JDLFFBQVFDLE1BQU1DLFlBQVlDLFlBQVlDO2dCQUU1RCxPQUFPOEI7WUFDVDs7O1dBbFNJbkM7O0FBOE1KLGlCQTlNSUEsTUE4TUdFLFFBQU87SUF1RmhCLFdBQWV1RixJQUFBQSxnQkFBVyxFQUFDekY7QUFFM0IsU0FBU2lFLGlCQUFpQkQsUUFBUSxFQUFFTCxXQUFXO0lBQzdDLElBQUl4QjtJQUVKLElBQUk2QixhQUFhLE1BQU07UUFDckI3QixPQUFPakQ7SUFDVCxPQUFPO1FBQ0wsSUFBTSxBQUFFYyxPQUFTMEYsWUFBRyxDQUFaMUYsTUFDRmtELFdBQVd5QyxJQUFBQSwwQkFBb0IsRUFBQzNCLFdBQ2hDOUQsT0FBT2dELFVBQ1BqRCxTQUFTQyxNQUNUQyxhQUFhLE1BQ2JDLGFBQWEsTUFDYkMsY0FBYztRQUVwQjhCLE9BQU8sSUFBSW5DLEtBQUtDLFFBQVFDLE1BQU1DLFlBQVlDLFlBQVlDO0lBQ3hEO0lBRUEsT0FBTzhCO0FBQ1Q7QUFFQSxTQUFTMkIsNEJBQTRCNUQsSUFBSSxFQUFFQyxVQUFVO0lBQ25ELElBQUlGLFNBQVNDLE1BQU8sR0FBRztJQUV2QixJQUFNMEYsbUJBQW1CQywrQkFBK0IxRjtJQUV4RCxJQUFJeUYscUJBQXFCLE1BQU07UUFDN0IzRixTQUFTLEFBQUMsR0FBWTJGLE9BQVYzRixRQUFPLEtBQW9CLE9BQWpCMkY7SUFDeEI7SUFFQSxPQUFPM0Y7QUFDVDtBQUVBLFNBQVN5RSw0QkFBNEJILG1CQUFtQixFQUFFWixXQUFXO0lBQ25FLElBQU1tQywwQkFBMEJ0Ryw2QkFBNkIrRSxzQkFDdkRQLFdBQVc4Qix5QkFDWDVDLFdBQVd5QyxJQUFBQSwwQkFBb0IsRUFBQzNCLFdBQ2hDOUQsT0FBT2dELFVBQVcsR0FBRztJQUUzQixPQUFPaEQ7QUFDVDtBQUVBLFNBQVMyRiwrQkFBK0IxRixVQUFVO0lBQ2hELElBQU15RixtQkFBbUJ6RixXQUFXNEYsTUFBTSxDQUFDLFNBQUNILGtCQUFrQmhGO1FBQzVELElBQUlBLGNBQWMxQixVQUFVO1lBQzFCLElBQU04RyxnQkFBZ0JwRixVQUFVTCxPQUFPO1lBRXZDcUYsbUJBQW1CLEFBQUNBLHFCQUFxQixPQUNwQkksZ0JBQ0MsQUFBQyxHQUF1QkEsT0FBckJKLGtCQUFpQixNQUFrQixPQUFkSTtRQUNoRDtRQUVBLE9BQU9KO0lBQ1QsR0FBRztJQUVILE9BQU9BO0FBQ1Q7QUFFQSxTQUFTbkIsa0NBQWtDRixtQkFBbUIsRUFBRVosV0FBVztJQUN6RSxJQUFNc0MsZ0NBQWdDckcsbUNBQW1DMkUsc0JBQ25FcEUsYUFBYThGLDhCQUE4QkMsR0FBRyxDQUFDLFNBQUNDO1FBQzlDLElBQU1DLGdCQUFnQkQsOEJBQ2hCdkYsWUFBWVosS0FBSytELFlBQVksQ0FBQ3FDLGVBQWV6QztRQUVuRCxPQUFPL0M7SUFDVCxJQUNBTyxtQkFBbUJoQixXQUFXaUIsTUFBTTtJQUUxQyxJQUFJRCxxQkFBcUIsR0FBRztRQUMxQmhCLFdBQVdoQixJQUFJLENBQUNEO0lBQ2xCO0lBRUEsT0FBT2lCO0FBQ1Q7QUFFQSxTQUFTcUUsbUNBQW1DRCxtQkFBbUIsRUFBRVosV0FBVztJQUMxRSxJQUFNMEMsa0NBQWtDeEcscUNBQXFDMEUsc0JBQ3ZFK0IsVUFBVUQsZ0NBQWdDRSxVQUFVLElBQ3BEQyxxQkFBc0JGLFlBQVlHLHNCQUFXLEVBQzdDcEcsY0FBY21HLG9CQUFvQixHQUFHO0lBRTNDLE9BQU9uRztBQUNUO0FBRUEsU0FBU21GLG1DQUFtQ0gsMEJBQTBCLEVBQUUxQixXQUFXO0lBQ2pGLElBQU1tQywwQkFBMEJ0Ryw2QkFBNkI2Riw2QkFDdkRyQixXQUFXOEIseUJBQ1g1QyxXQUFXeUMsSUFBQUEsMEJBQW9CLEVBQUMzQixXQUNoQzlELE9BQU9nRCxVQUFXLEdBQUc7SUFFM0IsT0FBT2hEO0FBQ1Q7QUFFQSxTQUFTcUYseUNBQXlDRiwwQkFBMEIsRUFBRTFCLFdBQVc7SUFDdkYsSUFBTXNDLGdDQUFnQ3JHLG1DQUFtQ3lGLDZCQUNuRWxGLGFBQWE4Riw4QkFBOEJDLEdBQUcsQ0FBQyxTQUFDQztRQUM5QyxJQUFNQyxnQkFBZ0JELDhCQUNoQnZGLFlBQVlaLEtBQUsrRCxZQUFZLENBQUNxQyxlQUFlekM7UUFFbkQsT0FBTy9DO0lBQ1QsSUFDQU8sbUJBQW1CaEIsV0FBV2lCLE1BQU07SUFFMUMsSUFBSUQscUJBQXFCLEdBQUc7UUFDMUJoQixXQUFXaEIsSUFBSSxDQUFDRDtJQUNsQjtJQUVBLE9BQU9pQjtBQUNUO0FBRUEsU0FBU21GLHlDQUF5Q0QsMEJBQTBCLEVBQUUxQixXQUFXO0lBQ3ZGLElBQU0rQywyQkFBMkJqSCw4QkFBOEI0Riw2QkFDekRqRixhQUFhc0cseUJBQXlCUixHQUFHLENBQUMsU0FBQ3RCO1FBQ3pDLElBQU0sQUFBRStCLFdBQWFqQixZQUFHLENBQWhCaUIsVUFDRkMsV0FBV0QsU0FBU2hDLDJCQUEyQixDQUFDQyx5QkFBeUJqQjtRQUUvRSxPQUFPaUQ7SUFDVDtJQUVOLE9BQU94RztBQUNUO0FBRUEsSUFBQSxBQUFNeUcseUJBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7O2tCQUFBQTs7WUFDSnBHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNTCxhQUFhLEVBQUU7Z0JBRXJCLE9BQU9BO1lBQ1Q7OztZQUVBZ0QsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1sRCxPQUFPLElBQUksQ0FBQ0EsSUFBSSxFQUNoQkMsYUFBYSxFQUFFLEVBQ2ZDLGFBQWEsSUFBSSxDQUFDQSxVQUFVLEVBQzVCQyxjQUFjLElBQUksQ0FBQ0EsV0FBVyxFQUM5Qm9ELE9BQU87b0JBQ0x2RCxNQUFBQTtvQkFDQUMsWUFBQUE7b0JBQ0FDLFlBQUFBO29CQUNBQyxhQUFBQTtnQkFDRjtnQkFFTixPQUFPb0Q7WUFDVDs7OztZQUVPcUQsS0FBQUE7bUJBQVAsU0FBT0E7Z0JBQ0wsSUFBTTVHLE9BQU82Ryx5QkFBYyxFQUNyQjlHLFNBQVNDLE1BQ1RDLGFBQWEsRUFBRSxFQUNmQyxhQUFhLEVBQUUsRUFDZkMsY0FBYyxPQUNkbkIsV0FBVyxJQTVCZjJILFNBNEI0QjVHLFFBQVFDLE1BQU1DLFlBQVlDLFlBQVlDO2dCQUVwRSxPQUFPbkI7WUFDVDs7O1dBL0JJMkg7RUFBaUI3RztBQWtDaEIsSUFBTWQsV0FBVzJILFNBQVNDLFdBQVcifQ==
|
package/lib/dom/variable.js
CHANGED
|
@@ -240,7 +240,7 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
240
240
|
key: "verifyType",
|
|
241
241
|
value: function verifyType(fileContext) {
|
|
242
242
|
var typeVerified = false;
|
|
243
|
-
if (this.type === _type.
|
|
243
|
+
if (this.type === _type.BaseType) {
|
|
244
244
|
typeVerified = true;
|
|
245
245
|
} else {
|
|
246
246
|
var typeName = this.type.getName();
|
|
@@ -386,4 +386,4 @@ function provisionalFromVariableDeclarationNode(variableDeclarationNode, fileCon
|
|
|
386
386
|
return provisional;
|
|
387
387
|
}
|
|
388
388
|
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IFRlcm1TdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG9iamVjdFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCB7IEVNUFRZX1NUUklORywgUFJPVklTSU9OQUxMWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgdHlwZVRvVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCB7IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcbmltcG9ydCB7IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyB9IGZyb20gXCIuLi9jb250ZXh0L3BhcnRpYWwvdmFyaWFibGVcIjtcblxuY29uc3QgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vdmFyaWFibGVcIiksXG4gICAgICBsYXN0U2Vjb25kYXJ5S2V5d29yZFRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vQHNlY29uZGFyeS1rZXl3b3JkWy0xXVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgZG9tQXNzaWduZWQoY2xhc3MgVmFyaWFibGUge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUsIHByb3Zpc2lvbmFsLCBwcm9wZXJ0eVJlbGF0aW9ucykge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubm9kZSA9IG5vZGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucHJvdmlzaW9uYWwgPSBwcm92aXNpb25hbDtcbiAgICB0aGlzLnByb3BlcnR5UmVsYXRpb25zID0gcHJvcGVydHlSZWxhdGlvbnM7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgaXNQcm92aXNpb25hbCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm92aXNpb25hbDtcbiAgfVxuXG4gIGdldFByb3BlcnR5UmVsYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnR5UmVsYXRpb25zO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIHNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKSB7XG4gICAgdGhpcy5wcm92aXNpb25hbCA9IHByb3Zpc2lvbmFsO1xuICB9XG5cbiAgaXNFcXVhbFRvKHZhcmlhYmxlKSB7XG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBlcXVhbFRvID0gKHZhcmlhYmxlU3RyaW5nID09PSB0aGlzLnN0cmluZyk7XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIG1hdGNoTmFtZShuYW1lKSB7XG4gICAgY29uc3QgbmFtZU1hdGNoZXMgPSAobmFtZSA9PT0gdGhpcy5uYW1lKTtcblxuICAgIHJldHVybiBuYW1lTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoVmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlTmFtZU1hdGNoZXMgPSAodmFyaWFibGVOYW1lID09PSB0aGlzLm5hbWUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlTmFtZU1hdGNoZXM7XG4gIH1cblxuICBpc0VmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0odGVybSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCBlZmZlY3RpdmVseUVxdWFsVG9UZXJtID0gZmFsc2U7XG5cbiAgICBjb25zdCBnZW5lcmFsQ29udGV4dEZpbGVQYXRoID0gZ2VuZXJhbENvbnRleHQuZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICBzcGVjaWZpY0NvbnRleHRGaWxlUGF0aCA9IHNwZWNpZmljQ29udGV4dC5nZXRGaWxlUGF0aCgpO1xuXG4gICAgaWYgKGdlbmVyYWxDb250ZXh0RmlsZVBhdGggPT09IHNwZWNpZmljQ29udGV4dEZpbGVQYXRoKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICAgICAgaWYgKHRlcm1TdHJpbmcgPT09IHRoaXMuc3RyaW5nKSB7XG4gICAgICAgIGVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlZmZlY3RpdmVseUVxdWFsVG9UZXJtO1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWQ7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5uYW1lLFxuICAgICAgICAgIHZhcmlhYmxlID0gY29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gICAgaWYgKHZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB0eXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpO1xuXG4gICAgICB0aGlzLnR5cGUgPSB0eXBlO1xuXG4gICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH1cblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VHlwZShmaWxlQ29udGV4dCkge1xuICAgIGxldCB0eXBlVmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09IG9iamVjdFR5cGUpIHtcbiAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHR5cGVOYW1lID0gdGhpcy50eXBlLmdldE5hbWUoKTtcblxuICAgICAgZmlsZUNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLi4uYCk7XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBmaWxlQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gICAgICBpZiAodHlwZSA9PT0gbnVsbCkge1xuICAgICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3R5cGVOYW1lfScgdHlwZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudHlwZSA9IHR5cGU7IC8vL1xuXG4gICAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbiAgfVxuXG4gIHVuaWZ5VGVybSh0ZXJtLCBzdWJzdGl0dXRpb25zLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgbGV0IHRlcm1VbmlmaWVkID0gZmFsc2U7XG5cbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIHNwZWNpZmljQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGNvbnN0IGVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0gPSB0aGlzLmlzRWZmZWN0aXZlbHlFcXVhbFRvVGVybSh0ZXJtLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChlZmZlY3RpdmVseUVxdWFsVG9UZXJtKSB7XG4gICAgICB0ZXJtVW5pZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gdGhpcywgLy8vXG4gICAgICAgICAgICBzdWJzdGl0dXRpb25QcmVzZW50ID0gc3Vic3RpdHV0aW9ucy5pc1N1YnN0aXR1dGlvblByZXNlbnRCeVZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvblByZXNlbnQpIHtcbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZSh2YXJpYWJsZSksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSA9IHN1YnN0aXR1dGlvbi5pc1Rlcm1FcXVhbFRvKHRlcm0pO1xuXG4gICAgICAgIGlmIChzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0pIHtcbiAgICAgICAgICB0ZXJtVW5pZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQsICAvLy9cbiAgICAgICAgICAgICAgdmFyaWFibGUgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgICAgIHRlcm1TdWJzdGl0dXRpb24gPSBUZXJtU3Vic3RpdHV0aW9uLmZyb21UZXJuQW5kVmFyaWFibGUodGVybSwgdmFyaWFibGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBzdWJzdGl0dXRpb24gPSB0ZXJtU3Vic3RpdHV0aW9uOyAgLy8vXG5cbiAgICAgICAgc3Vic3RpdHV0aW9ucy5hZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uLCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGVybVVuaWZpZWQpIHtcbiAgICAgIHNwZWNpZmljQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybVVuaWZpZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0eXBlVG9UeXBlSlNPTih0aGlzLnR5cGUpLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuc3RyaW5nLFxuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgc3RyaW5nXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgY29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSBzdHJpbmcsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcodmFyaWFibGVTdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBub2RlID0gdmFyaWFibGVOb2RlLFxuICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBwcm92aXNpb25hbCA9IG51bGwsXG4gICAgICAgICAgcHJvcGVydHlSZWxhdGlvbnMgPSBbXSxcbiAgICAgICAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUsIHByb3Zpc2lvbmFsLCBwcm9wZXJ0eVJlbGF0aW9ucyk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHZhcmlhYmxlID0gbnVsbDtcblxuICAgIGNvbnN0IHRlcm1WYXJpYWJsZU5vZGUgPSB0ZXJtVmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gICAgaWYgKHRlcm1WYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHRlcm1WYXJpYWJsZU5vZGU7ICAvLy9cblxuICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUodmFyaWFibGVOb2RlLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgbGV0IHZhcmlhYmxlID0gbnVsbDtcblxuICAgIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIHZhcmlhYmxlLnNldFR5cGUodHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IFR5cGUgfSA9IGRvbSxcbiAgICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlID0gdmFyaWFibGVEZWNsYXJhdGlvblZhcmlhYmxlTm9kZVF1ZXJ5KHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKSxcbiAgICAgICAgICB2YXJpYWJsZU5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlLCAvLy9cbiAgICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBjb250ZXh0ID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgIHR5cGUgPSBUeXBlLmZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWxGcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KTtcblxuICAgIHZhcmlhYmxlLnNldFR5cGUodHlwZSk7XG5cbiAgICB2YXJpYWJsZS5zZXRQcm92aXNpb25hbChwcm92aXNpb25hbCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlQW5kUHJvcGVydHlSZWxhdGlvbih2YXJpYWJsZSwgcHJvcGVydHlSZWxhdGlvbiwgY29udGV4dCkge1xuICAgIGxldCBwcm9wZXJ0eVJlbGF0aW9ucztcblxuICAgIGNvbnN0IG5vZGUgPSB2YXJpYWJsZS5nZXROb2RlKCksXG4gICAgICAgICAgbmFtZSA9IHZhcmlhYmxlLmdldE5hbWUoKSxcbiAgICAgICAgICB0eXBlID0gdmFyaWFibGUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHByb3Zpc2lvbmFsID0gdmFyaWFibGUuaXNQcm92aXNpb25hbCgpO1xuXG4gICAgcHJvcGVydHlSZWxhdGlvbnMgPSB2YXJpYWJsZS5nZXRQcm9wZXJ0eVJlbGF0aW9ucygpO1xuXG4gICAgcHJvcGVydHlSZWxhdGlvbnMgPSBbXG4gICAgICAuLi5wcm9wZXJ0eVJlbGF0aW9ucyxcbiAgICAgIHByb3BlcnR5UmVsYXRpb25cbiAgICBdO1xuXG4gICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWVBbmRQcm9wZXJ0eVJlbGF0aW9ucyhuYW1lLCBwcm9wZXJ0eVJlbGF0aW9ucyk7XG5cbiAgICB2YXJpYWJsZSA9IG5ldyBWYXJpYWJsZShzdHJpbmcsIG5vZGUsIG5hbWUsIHR5cGUsIHByb3Zpc2lvbmFsLCBwcm9wZXJ0eVJlbGF0aW9ucyk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICBuYW1lID0gdmFyaWFibGVOYW1lLCAgLy8vXG4gICAgICAgIHR5cGUgPSBudWxsLFxuICAgICAgICBwcm92aXNpb25hbCA9IG51bGwsXG4gICAgICAgIHByb3BlcnR5UmVsYXRpb25zID0gW10sXG4gICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSwgcHJvdmlzaW9uYWwsIHByb3BlcnR5UmVsYXRpb25zKTtcblxuICByZXR1cm4gdmFyaWFibGU7XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lQW5kUHJvcGVydHlSZWxhdGlvbnMobmFtZSwgcHJvcGVydHlSZWxhdGlvbnMpIHtcbiAgY29uc3QgcHJvcGVydHlSZWxhdGlvbnNTdHJpbmcgPSBwcm9wZXJ0eVJlbGF0aW9ucy5yZWR1Y2UoKHByb3BlcnR5UmVsYXRpb25zU3RyaW5nLCBwcm9wZXJ0eVJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgcHJvcGVydHlSZWxhdGlvblN0cmluZyA9IHByb3BlcnR5UmVsYXRpb24uZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgICBwcm9wZXJ0eVJlbGF0aW9uc1N0cmluZyA9IGAke3Byb3BlcnR5UmVsYXRpb25zU3RyaW5nfSwgJHtwcm9wZXJ0eVJlbGF0aW9uU3RyaW5nfWA7XG5cbiAgICAgICAgICByZXR1cm4gcHJvcGVydHlSZWxhdGlvbnNTdHJpbmc7XG4gICAgICAgIH0sIEVNUFRZX1NUUklORyksXG4gICAgICAgIHN0cmluZyA9IGAke25hbWV9JHtwcm9wZXJ0eVJlbGF0aW9uc1N0cmluZ31gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHByb3Zpc2lvbmFsRnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBsZXQgcHJvdmlzaW9uYWwgPSBmYWxzZTtcblxuICBjb25zdCBsYXN0U2Vjb25kYXJ5S2V5d29yZFRlcm1pbmFsTm9kZSA9IGxhc3RTZWNvbmRhcnlLZXl3b3JkVGVybWluYWxOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpO1xuXG4gIGlmIChsYXN0U2Vjb25kYXJ5S2V5d29yZFRlcm1pbmFsTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBsYXN0U2Vjb25kYXJ5S2V5d29yZFRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgY29udGVudFByb3Zpc2lvbmFsbHkgPSAoY29udGVudCA9PT0gUFJPVklTSU9OQUxMWSk7XG5cbiAgICBwcm92aXNpb25hbCA9IGNvbnRlbnRQcm92aXNpb25hbGx5OyAvLy9cbiAgfVxuXG4gIHJldHVybiBwcm92aXNpb25hbDtcbn1cbiJdLCJuYW1lcyI6WyJ0ZXJtVmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlUXVlcnkiLCJsYXN0U2Vjb25kYXJ5S2V5d29yZFRlcm1pbmFsTm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJWYXJpYWJsZSIsInN0cmluZyIsIm5vZGUiLCJuYW1lIiwidHlwZSIsInByb3Zpc2lvbmFsIiwicHJvcGVydHlSZWxhdGlvbnMiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0TmFtZSIsImdldFR5cGUiLCJpc1Byb3Zpc2lvbmFsIiwiZ2V0UHJvcGVydHlSZWxhdGlvbnMiLCJzZXRUeXBlIiwic2V0UHJvdmlzaW9uYWwiLCJpc0VxdWFsVG8iLCJ2YXJpYWJsZSIsInZhcmlhYmxlU3RyaW5nIiwiZXF1YWxUbyIsIm1hdGNoTmFtZSIsIm5hbWVNYXRjaGVzIiwibWF0Y2hWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWVNYXRjaGVzIiwiaXNFZmZlY3RpdmVseUVxdWFsVG9UZXJtIiwidGVybSIsImdlbmVyYWxDb250ZXh0Iiwic3BlY2lmaWNDb250ZXh0IiwiZWZmZWN0aXZlbHlFcXVhbFRvVGVybSIsImdlbmVyYWxDb250ZXh0RmlsZVBhdGgiLCJnZXRGaWxlUGF0aCIsInNwZWNpZmljQ29udGV4dEZpbGVQYXRoIiwidGVybVN0cmluZyIsInZlcmlmeSIsImNvbnRleHQiLCJ2ZXJpZmllZCIsInRyYWNlIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJkZWJ1ZyIsInZlcmlmeVR5cGUiLCJmaWxlQ29udGV4dCIsInR5cGVWZXJpZmllZCIsIm9iamVjdFR5cGUiLCJ0eXBlTmFtZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInVuaWZ5VGVybSIsInN1YnN0aXR1dGlvbnMiLCJ0ZXJtVW5pZmllZCIsInN1YnN0aXR1dGlvblByZXNlbnQiLCJpc1N1YnN0aXR1dGlvblByZXNlbnRCeVZhcmlhYmxlIiwic3Vic3RpdHV0aW9uIiwiZmluZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGUiLCJzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0iLCJpc1Rlcm1FcXVhbFRvIiwidGVybVN1YnN0aXR1dGlvbiIsIlRlcm1TdWJzdGl0dXRpb24iLCJmcm9tVGVybkFuZFZhcmlhYmxlIiwiYWRkU3Vic3RpdHV0aW9uIiwidG9KU09OIiwidHlwZUpTT04iLCJ0eXBlVG9UeXBlSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyIsInZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUiLCJ0eXBlRnJvbUpTT04iLCJmcm9tVGVybU5vZGUiLCJ0ZXJtTm9kZSIsInRlcm1WYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUiLCJmcm9tVmFyaWFibGVOb2RlIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUiLCJmcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIlR5cGUiLCJkb20iLCJ2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlIiwicHJvdmlzaW9uYWxGcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJmcm9tVmFyaWFibGVBbmRQcm9wZXJ0eVJlbGF0aW9uIiwicHJvcGVydHlSZWxhdGlvbiIsInN0cmluZ0Zyb21OYW1lQW5kUHJvcGVydHlSZWxhdGlvbnMiLCJub2RlQXNTdHJpbmciLCJwcm9wZXJ0eVJlbGF0aW9uc1N0cmluZyIsInJlZHVjZSIsInByb3BlcnR5UmVsYXRpb25TdHJpbmciLCJFTVBUWV9TVFJJTkciLCJsYXN0U2Vjb25kYXJ5S2V5d29yZFRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiY29udGVudFByb3Zpc2lvbmFsbHkiLCJQUk9WSVNJT05BTExZIl0sIm1hcHBpbmdzIjoiQUFBQTs7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
|
|
389
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IFRlcm1TdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IEJhc2VUeXBlIH0gZnJvbSBcIi4vdHlwZVwiO1xuaW1wb3J0IHsgZG9tQXNzaWduZWQgfSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcsIFBST1ZJU0lPTkFMTFkgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB0eXBlRnJvbUpTT04sIHR5cGVUb1R5cGVKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XG5pbXBvcnQgeyB2YXJpYWJsZU5vZGVGcm9tVmFyaWFibGVTdHJpbmcgfSBmcm9tIFwiLi4vY29udGV4dC9wYXJ0aWFsL3ZhcmlhYmxlXCI7XG5cbmNvbnN0IHRlcm1WYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90ZXJtL3ZhcmlhYmxlIVwiKSxcbiAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uL3ZhcmlhYmxlXCIpLFxuICAgICAgbGFzdFNlY29uZGFyeUtleXdvcmRUZXJtaW5hbE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uL0BzZWNvbmRhcnkta2V5d29yZFstMV1cIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlLCBwcm92aXNpb25hbCwgcHJvcGVydHlSZWxhdGlvbnMpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnByb3Zpc2lvbmFsID0gcHJvdmlzaW9uYWw7XG4gICAgdGhpcy5wcm9wZXJ0eVJlbGF0aW9ucyA9IHByb3BlcnR5UmVsYXRpb25zO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldE5vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGlzUHJvdmlzaW9uYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvdmlzaW9uYWw7XG4gIH1cblxuICBnZXRQcm9wZXJ0eVJlbGF0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eVJlbGF0aW9ucztcbiAgfVxuXG4gIHNldFR5cGUodHlwZSkge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBzZXRQcm92aXNpb25hbChwcm92aXNpb25hbCkge1xuICAgIHRoaXMucHJvdmlzaW9uYWwgPSBwcm92aXNpb25hbDtcbiAgfVxuXG4gIGlzRXF1YWxUbyh2YXJpYWJsZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgZXF1YWxUbyA9ICh2YXJpYWJsZVN0cmluZyA9PT0gdGhpcy5zdHJpbmcpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBtYXRjaE5hbWUobmFtZSkge1xuICAgIGNvbnN0IG5hbWVNYXRjaGVzID0gKG5hbWUgPT09IHRoaXMubmFtZSk7XG5cbiAgICByZXR1cm4gbmFtZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaFZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZU5hbWVNYXRjaGVzID0gKHZhcmlhYmxlTmFtZSA9PT0gdGhpcy5uYW1lKTtcblxuICAgIHJldHVybiB2YXJpYWJsZU5hbWVNYXRjaGVzO1xuICB9XG5cbiAgaXNFZmZlY3RpdmVseUVxdWFsVG9UZXJtKHRlcm0sIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBsZXQgZWZmZWN0aXZlbHlFcXVhbFRvVGVybSA9IGZhbHNlO1xuXG4gICAgY29uc3QgZ2VuZXJhbENvbnRleHRGaWxlUGF0aCA9IGdlbmVyYWxDb250ZXh0LmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0RmlsZVBhdGggPSBzcGVjaWZpY0NvbnRleHQuZ2V0RmlsZVBhdGgoKTtcblxuICAgIGlmIChnZW5lcmFsQ29udGV4dEZpbGVQYXRoID09PSBzcGVjaWZpY0NvbnRleHRGaWxlUGF0aCkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGlmICh0ZXJtU3RyaW5nID09PSB0aGlzLnN0cmluZykge1xuICAgICAgICBlZmZlY3RpdmVseUVxdWFsVG9UZXJtID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZWZmZWN0aXZlbHlFcXVhbFRvVGVybTtcbiAgfVxuXG4gIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkO1xuXG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKTtcblxuICAgICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgICAgdmVyaWZpZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVR5cGUoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy50eXBlID09PSBCYXNlVHlwZSkge1xuICAgICAgdHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuLi5gKTtcblxuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZU5hbWV9JyB0eXBlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTsgLy8vXG5cbiAgICAgICAgdHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVWZXJpZmllZCkge1xuICAgICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVOYW1lfScgdHlwZS5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZVZlcmlmaWVkO1xuICB9XG5cbiAgdW5pZnlUZXJtKHRlcm0sIHN1YnN0aXR1dGlvbnMsIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBsZXQgdGVybVVuaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdGhpcy5zdHJpbmc7IC8vL1xuXG4gICAgc3BlY2lmaWNDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2l0aCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gICAgY29uc3QgZWZmZWN0aXZlbHlFcXVhbFRvVGVybSA9IHRoaXMuaXNFZmZlY3RpdmVseUVxdWFsVG9UZXJtKHRlcm0sIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpO1xuXG4gICAgaWYgKGVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0pIHtcbiAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFyaWFibGUgPSB0aGlzLCAvLy9cbiAgICAgICAgICAgIHN1YnN0aXR1dGlvblByZXNlbnQgPSBzdWJzdGl0dXRpb25zLmlzU3Vic3RpdHV0aW9uUHJlc2VudEJ5VmFyaWFibGUodmFyaWFibGUpO1xuXG4gICAgICBpZiAoc3Vic3RpdHV0aW9uUHJlc2VudCkge1xuICAgICAgICBjb25zdCBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmRTdWJzdGl0dXRpb25CeVZhcmlhYmxlKHZhcmlhYmxlKSxcbiAgICAgICAgICAgICAgc3Vic3RpdHV0aW9uVGVybUVxdWFsVG9UZXJtID0gc3Vic3RpdHV0aW9uLmlzVGVybUVxdWFsVG8odGVybSk7XG5cbiAgICAgICAgaWYgKHN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSkge1xuICAgICAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgICAgICB2YXJpYWJsZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgICAgdGVybVN1YnN0aXR1dGlvbiA9IFRlcm1TdWJzdGl0dXRpb24uZnJvbVRlcm5BbmRWYXJpYWJsZSh0ZXJtLCB2YXJpYWJsZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHRlcm1TdWJzdGl0dXRpb247ICAvLy9cblxuICAgICAgICBzdWJzdGl0dXRpb25zLmFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICAgICAgdGVybVVuaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0ZXJtVW5pZmllZCkge1xuICAgICAgc3BlY2lmaWNDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtVW5pZmllZDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5zdHJpbmcsXG4gICAgICAgICAgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBjb250ZXh0ID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsXG4gICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHByb3Zpc2lvbmFsID0gbnVsbCxcbiAgICAgICAgICBwcm9wZXJ0eVJlbGF0aW9ucyA9IFtdLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSwgcHJvdmlzaW9uYWwsIHByb3BlcnR5UmVsYXRpb25zKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVGVybU5vZGUodGVybU5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgY29uc3QgdGVybVZhcmlhYmxlTm9kZSA9IHRlcm1WYXJpYWJsZU5vZGVRdWVyeSh0ZXJtTm9kZSk7XG5cbiAgICBpZiAodGVybVZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdGVybVZhcmlhYmxlTm9kZTsgIC8vL1xuXG4gICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCkge1xuICAgIGxldCB2YXJpYWJsZSA9IG51bGw7XG5cbiAgICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVOb2RlQW5kVHlwZSh2YXJpYWJsZU5vZGUsIHR5cGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdmFyaWFibGUgPSBudWxsO1xuXG4gICAgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgdmFyaWFibGUuc2V0VHlwZSh0eXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHsgVHlwZSB9ID0gZG9tLFxuICAgICAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIGxvY2FsQ29udGV4dCA9IExvY2FsQ29udGV4dC5mcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpLFxuICAgICAgICAgIGNvbnRleHQgPSBsb2NhbENvbnRleHQsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCksXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSBwcm92aXNpb25hbEZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpO1xuXG4gICAgdmFyaWFibGUuc2V0VHlwZSh0eXBlKTtcblxuICAgIHZhcmlhYmxlLnNldFByb3Zpc2lvbmFsKHByb3Zpc2lvbmFsKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVBbmRQcm9wZXJ0eVJlbGF0aW9uKHZhcmlhYmxlLCBwcm9wZXJ0eVJlbGF0aW9uLCBjb250ZXh0KSB7XG4gICAgbGV0IHByb3BlcnR5UmVsYXRpb25zO1xuXG4gICAgY29uc3Qgbm9kZSA9IHZhcmlhYmxlLmdldE5vZGUoKSxcbiAgICAgICAgICBuYW1lID0gdmFyaWFibGUuZ2V0TmFtZSgpLFxuICAgICAgICAgIHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgICAgcHJvdmlzaW9uYWwgPSB2YXJpYWJsZS5pc1Byb3Zpc2lvbmFsKCk7XG5cbiAgICBwcm9wZXJ0eVJlbGF0aW9ucyA9IHZhcmlhYmxlLmdldFByb3BlcnR5UmVsYXRpb25zKCk7XG5cbiAgICBwcm9wZXJ0eVJlbGF0aW9ucyA9IFtcbiAgICAgIC4uLnByb3BlcnR5UmVsYXRpb25zLFxuICAgICAgcHJvcGVydHlSZWxhdGlvblxuICAgIF07XG5cbiAgICBjb25zdCBzdHJpbmcgPSBzdHJpbmdGcm9tTmFtZUFuZFByb3BlcnR5UmVsYXRpb25zKG5hbWUsIHByb3BlcnR5UmVsYXRpb25zKTtcblxuICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSwgcHJvdmlzaW9uYWwsIHByb3BlcnR5UmVsYXRpb25zKTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIHZhcmlhYmxlRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBWYXJpYWJsZSB9ID0gZG9tLFxuICAgICAgICBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgdHlwZSA9IG51bGwsXG4gICAgICAgIHByb3Zpc2lvbmFsID0gbnVsbCxcbiAgICAgICAgcHJvcGVydHlSZWxhdGlvbnMgPSBbXSxcbiAgICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlLCBwcm92aXNpb25hbCwgcHJvcGVydHlSZWxhdGlvbnMpO1xuXG4gIHJldHVybiB2YXJpYWJsZTtcbn1cblxuZnVuY3Rpb24gc3RyaW5nRnJvbU5hbWVBbmRQcm9wZXJ0eVJlbGF0aW9ucyhuYW1lLCBwcm9wZXJ0eVJlbGF0aW9ucykge1xuICBjb25zdCBwcm9wZXJ0eVJlbGF0aW9uc1N0cmluZyA9IHByb3BlcnR5UmVsYXRpb25zLnJlZHVjZSgocHJvcGVydHlSZWxhdGlvbnNTdHJpbmcsIHByb3BlcnR5UmVsYXRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBwcm9wZXJ0eVJlbGF0aW9uU3RyaW5nID0gcHJvcGVydHlSZWxhdGlvbi5nZXRTdHJpbmcoKTtcblxuICAgICAgICAgIHByb3BlcnR5UmVsYXRpb25zU3RyaW5nID0gYCR7cHJvcGVydHlSZWxhdGlvbnNTdHJpbmd9LCAke3Byb3BlcnR5UmVsYXRpb25TdHJpbmd9YDtcblxuICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVJlbGF0aW9uc1N0cmluZztcbiAgICAgICAgfSwgRU1QVFlfU1RSSU5HKSxcbiAgICAgICAgc3RyaW5nID0gYCR7bmFtZX0ke3Byb3BlcnR5UmVsYXRpb25zU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxuZnVuY3Rpb24gcHJvdmlzaW9uYWxGcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBwcm92aXNpb25hbCA9IGZhbHNlO1xuXG4gIGNvbnN0IGxhc3RTZWNvbmRhcnlLZXl3b3JkVGVybWluYWxOb2RlID0gbGFzdFNlY29uZGFyeUtleXdvcmRUZXJtaW5hbE5vZGVRdWVyeSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSk7XG5cbiAgaWYgKGxhc3RTZWNvbmRhcnlLZXl3b3JkVGVybWluYWxOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3QgY29udGVudCA9IGxhc3RTZWNvbmRhcnlLZXl3b3JkVGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICBjb250ZW50UHJvdmlzaW9uYWxseSA9IChjb250ZW50ID09PSBQUk9WSVNJT05BTExZKTtcblxuICAgIHByb3Zpc2lvbmFsID0gY29udGVudFByb3Zpc2lvbmFsbHk7IC8vL1xuICB9XG5cbiAgcmV0dXJuIHByb3Zpc2lvbmFsO1xufVxuIl0sIm5hbWVzIjpbInRlcm1WYXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGVRdWVyeSIsImxhc3RTZWNvbmRhcnlLZXl3b3JkVGVybWluYWxOb2RlUXVlcnkiLCJkb21Bc3NpZ25lZCIsIlZhcmlhYmxlIiwic3RyaW5nIiwibm9kZSIsIm5hbWUiLCJ0eXBlIiwicHJvdmlzaW9uYWwiLCJwcm9wZXJ0eVJlbGF0aW9ucyIsImdldFN0cmluZyIsImdldE5vZGUiLCJnZXROYW1lIiwiZ2V0VHlwZSIsImlzUHJvdmlzaW9uYWwiLCJnZXRQcm9wZXJ0eVJlbGF0aW9ucyIsInNldFR5cGUiLCJzZXRQcm92aXNpb25hbCIsImlzRXF1YWxUbyIsInZhcmlhYmxlIiwidmFyaWFibGVTdHJpbmciLCJlcXVhbFRvIiwibWF0Y2hOYW1lIiwibmFtZU1hdGNoZXMiLCJtYXRjaFZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZU1hdGNoZXMiLCJpc0VmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0iLCJ0ZXJtIiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJlZmZlY3RpdmVseUVxdWFsVG9UZXJtIiwiZ2VuZXJhbENvbnRleHRGaWxlUGF0aCIsImdldEZpbGVQYXRoIiwic3BlY2lmaWNDb250ZXh0RmlsZVBhdGgiLCJ0ZXJtU3RyaW5nIiwidmVyaWZ5IiwiY29udGV4dCIsInZlcmlmaWVkIiwidHJhY2UiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsImRlYnVnIiwidmVyaWZ5VHlwZSIsImZpbGVDb250ZXh0IiwidHlwZVZlcmlmaWVkIiwiQmFzZVR5cGUiLCJ0eXBlTmFtZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInVuaWZ5VGVybSIsInN1YnN0aXR1dGlvbnMiLCJ0ZXJtVW5pZmllZCIsInN1YnN0aXR1dGlvblByZXNlbnQiLCJpc1N1YnN0aXR1dGlvblByZXNlbnRCeVZhcmlhYmxlIiwic3Vic3RpdHV0aW9uIiwiZmluZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGUiLCJzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0iLCJpc1Rlcm1FcXVhbFRvIiwidGVybVN1YnN0aXR1dGlvbiIsIlRlcm1TdWJzdGl0dXRpb24iLCJmcm9tVGVybkFuZFZhcmlhYmxlIiwiYWRkU3Vic3RpdHV0aW9uIiwidG9KU09OIiwidHlwZUpTT04iLCJ0eXBlVG9UeXBlSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyIsInZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUiLCJ0eXBlRnJvbUpTT04iLCJmcm9tVGVybU5vZGUiLCJ0ZXJtTm9kZSIsInRlcm1WYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZUZyb21WYXJpYWJsZU5vZGUiLCJmcm9tVmFyaWFibGVOb2RlIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUiLCJmcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIlR5cGUiLCJkb20iLCJ2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlIiwicHJvdmlzaW9uYWxGcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJmcm9tVmFyaWFibGVBbmRQcm9wZXJ0eVJlbGF0aW9uIiwicHJvcGVydHlSZWxhdGlvbiIsInN0cmluZ0Zyb21OYW1lQW5kUHJvcGVydHlSZWxhdGlvbnMiLCJub2RlQXNTdHJpbmciLCJwcm9wZXJ0eVJlbGF0aW9uc1N0cmluZyIsInJlZHVjZSIsInByb3BlcnR5UmVsYXRpb25TdHJpbmciLCJFTVBUWV9TVFJJTkciLCJsYXN0U2Vjb25kYXJ5S2V5d29yZFRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50IiwiY29udGVudFByb3Zpc2lvbmFsbHkiLCJQUk9WSVNJT05BTExZIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFrQkE7OztlQUFBOzs7MkRBaEJnQjs0REFDUzsyREFDSTtxQkFFSDtvQkFDRDt5QkFFbUI7b0JBQ0M7b0JBQ0E7d0JBQ0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvQyxJQUFNQSx3QkFBd0JDLElBQUFBLGdCQUFTLEVBQUMsb0JBQ2xDQyx1Q0FBdUNELElBQUFBLGdCQUFTLEVBQUMsa0NBQ2pERSx3Q0FBd0NGLElBQUFBLGdCQUFTLEVBQUM7SUFFeEQsV0FBZUcsSUFBQUEsZ0JBQVcsNkJBQUM7YUFBTUMsU0FDbkJDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsV0FBVyxFQUFFQyxpQkFBaUI7Z0NBRHJDTjtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxpQkFBaUIsR0FBR0E7Ozs7WUFHM0JDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ04sTUFBTTtZQUNwQjs7O1lBRUFPLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ04sSUFBSTtZQUNsQjs7O1lBRUFPLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ04sSUFBSTtZQUNsQjs7O1lBRUFPLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ04sSUFBSTtZQUNsQjs7O1lBRUFPLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ04sV0FBVztZQUN6Qjs7O1lBRUFPLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ04saUJBQWlCO1lBQy9COzs7WUFFQU8sS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFULElBQUk7Z0JBQ1YsSUFBSSxDQUFDQSxJQUFJLEdBQUdBO1lBQ2Q7OztZQUVBVSxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZVQsV0FBVztnQkFDeEIsSUFBSSxDQUFDQSxXQUFXLEdBQUdBO1lBQ3JCOzs7WUFFQVUsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVDLFFBQVE7Z0JBQ2hCLElBQU1DLGlCQUFpQkQsU0FBU1QsU0FBUyxJQUNuQ1csVUFBV0QsbUJBQW1CLElBQUksQ0FBQ2hCLE1BQU07Z0JBRS9DLE9BQU9pQjtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVoQixJQUFJO2dCQUNaLElBQU1pQixjQUFlakIsU0FBUyxJQUFJLENBQUNBLElBQUk7Z0JBRXZDLE9BQU9pQjtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBLGtCQUFrQkMsWUFBWTtnQkFDNUIsSUFBTUMsc0JBQXVCRCxpQkFBaUIsSUFBSSxDQUFDbkIsSUFBSTtnQkFFdkQsT0FBT29CO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEseUJBQXlCQyxJQUFJLEVBQUVDLGNBQWMsRUFBRUMsZUFBZTtnQkFDNUQsSUFBSUMseUJBQXlCO2dCQUU3QixJQUFNQyx5QkFBeUJILGVBQWVJLFdBQVcsSUFDbkRDLDBCQUEwQkosZ0JBQWdCRyxXQUFXO2dCQUUzRCxJQUFJRCwyQkFBMkJFLHlCQUF5QjtvQkFDdEQsSUFBTUMsYUFBYVAsS0FBS2xCLFNBQVM7b0JBRWpDLElBQUl5QixlQUFlLElBQUksQ0FBQy9CLE1BQU0sRUFBRTt3QkFDOUIyQix5QkFBeUI7b0JBQzNCO2dCQUNGO2dCQUVBLE9BQU9BO1lBQ1Q7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsT0FBT0MsT0FBTztnQkFDWixJQUFJQztnQkFFSixJQUFNbEIsaUJBQWlCLElBQUksQ0FBQ2hCLE1BQU0sRUFBRSxHQUFHO2dCQUV2Q2lDLFFBQVFFLEtBQUssQ0FBQyxBQUFDLGtCQUFnQyxPQUFmbkIsZ0JBQWU7Z0JBRS9DLElBQU1LLGVBQWUsSUFBSSxDQUFDbkIsSUFBSSxFQUN4QmEsV0FBV2tCLFFBQVFHLDBCQUEwQixDQUFDZjtnQkFFcEQsSUFBSU4sYUFBYSxNQUFNO29CQUNyQixJQUFNWixPQUFPWSxTQUFTTixPQUFPO29CQUU3QixJQUFJLENBQUNOLElBQUksR0FBR0E7b0JBRVorQixXQUFXO2dCQUNiLE9BQU87b0JBQ0xELFFBQVFJLEtBQUssQ0FBQyxBQUFDLFFBQXNCLE9BQWZyQixnQkFBZTtnQkFDdkM7Z0JBRUEsSUFBSWtCLFVBQVU7b0JBQ1pELFFBQVFJLEtBQUssQ0FBQyxBQUFDLG9CQUFrQyxPQUFmckIsZ0JBQWU7Z0JBQ25EO2dCQUVBLE9BQU9rQjtZQUNUOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLFdBQVdDLFdBQVc7Z0JBQ3BCLElBQUlDLGVBQWU7Z0JBRW5CLElBQUksSUFBSSxDQUFDckMsSUFBSSxLQUFLc0MsY0FBUSxFQUFFO29CQUMxQkQsZUFBZTtnQkFDakIsT0FBTztvQkFDTCxJQUFNRSxXQUFXLElBQUksQ0FBQ3ZDLElBQUksQ0FBQ0ssT0FBTztvQkFFbEMrQixZQUFZSixLQUFLLENBQUMsQUFBQyxrQkFBMEIsT0FBVE8sVUFBUztvQkFFN0MsSUFBTXZDLE9BQU9vQyxZQUFZSSxrQkFBa0IsQ0FBQ0Q7b0JBRTVDLElBQUl2QyxTQUFTLE1BQU07d0JBQ2pCb0MsWUFBWUYsS0FBSyxDQUFDLEFBQUMsUUFBZ0IsT0FBVEssVUFBUztvQkFDckMsT0FBTzt3QkFDTCxJQUFJLENBQUN2QyxJQUFJLEdBQUdBLE1BQU0sR0FBRzt3QkFFckJxQyxlQUFlO29CQUNqQjtvQkFFQSxJQUFJQSxjQUFjO3dCQUNoQkQsWUFBWUYsS0FBSyxDQUFDLEFBQUMsb0JBQTRCLE9BQVRLLFVBQVM7b0JBQ2pEO2dCQUNGO2dCQUVBLE9BQU9GO1lBQ1Q7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVXBCLElBQUksRUFBRXFCLGFBQWEsRUFBRXBCLGNBQWMsRUFBRUMsZUFBZTtnQkFDNUQsSUFBSW9CLGNBQWM7Z0JBRWxCLElBQU1mLGFBQWFQLEtBQUtsQixTQUFTLElBQzNCVSxpQkFBaUIsSUFBSSxDQUFDaEIsTUFBTSxFQUFFLEdBQUc7Z0JBRXZDMEIsZ0JBQWdCUyxLQUFLLENBQUMsQUFBQyxpQkFBOENuQixPQUE5QmUsWUFBVyxxQkFBa0MsT0FBZmYsZ0JBQWU7Z0JBRXBGLElBQU1XLHlCQUF5QixJQUFJLENBQUNKLHdCQUF3QixDQUFDQyxNQUFNQyxnQkFBZ0JDO2dCQUVuRixJQUFJQyx3QkFBd0I7b0JBQzFCbUIsY0FBYztnQkFDaEIsT0FBTztvQkFDTCxJQUFNL0IsV0FBVyxJQUFJLEVBQ2ZnQyxzQkFBc0JGLGNBQWNHLCtCQUErQixDQUFDakM7b0JBRTFFLElBQUlnQyxxQkFBcUI7d0JBQ3ZCLElBQU1FLGVBQWVKLGNBQWNLLDBCQUEwQixDQUFDbkMsV0FDeERvQyw4QkFBOEJGLGFBQWFHLGFBQWEsQ0FBQzVCO3dCQUUvRCxJQUFJMkIsNkJBQTZCOzRCQUMvQkwsY0FBYzt3QkFDaEI7b0JBQ0YsT0FBTzt3QkFDTCxJQUFNYixVQUFVUCxpQkFDVlgsWUFBVyxJQUFJLEVBQ2ZzQyxtQkFBbUJDLGFBQWdCLENBQUNDLG1CQUFtQixDQUFDL0IsTUFBTVQsV0FBVWtCLFVBQ3hFZ0IsZ0JBQWVJLGtCQUFtQixHQUFHO3dCQUUzQ1IsY0FBY1csZUFBZSxDQUFDUCxlQUFjdkI7d0JBRTVDb0IsY0FBYztvQkFDaEI7Z0JBQ0Y7Z0JBRUEsSUFBSUEsYUFBYTtvQkFDZnBCLGdCQUFnQlcsS0FBSyxDQUFDLEFBQUMsbUJBQWdEckIsT0FBOUJlLFlBQVcscUJBQWtDLE9BQWZmLGdCQUFlO2dCQUN4RjtnQkFFQSxPQUFPOEI7WUFDVDs7O1lBRUFXLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxXQUFXQyxJQUFBQSxvQkFBYyxFQUFDLElBQUksQ0FBQ3hELElBQUksR0FDbkNILFNBQVMsSUFBSSxDQUFDQSxNQUFNLEVBQ3BCRyxPQUFPdUQsVUFDUEUsT0FBTztvQkFDTHpELE1BQUFBO29CQUNBSCxRQUFBQTtnQkFDRjtnQkFFTixPQUFPNEQ7WUFDVDs7OztZQUlPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTRCxJQUFJLEVBQUVyQixXQUFXO2dCQUMvQixJQUFNLEFBQUV2QyxTQUFXNEQsS0FBWDVELFFBQ0Y4RCxlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ3pCLGNBQzVDTixVQUFVNkIsY0FDVjlDLGlCQUFpQmhCLFFBQ2pCaUUsZUFBZUMsSUFBQUEsd0NBQThCLEVBQUNsRCxnQkFBZ0JpQixVQUM5RFosZUFBZThDLElBQUFBLGtDQUE0QixFQUFDRixlQUM1Q2hFLE9BQU9nRSxjQUNQL0QsT0FBT21CLGNBQ1BsQixPQUFPaUUsSUFBQUEsa0JBQVksRUFBQ1IsTUFBTXJCLGNBQzFCbkMsY0FBYyxNQUNkQyxvQkFBb0IsRUFBRSxFQUN0QlUsV0FBVyxJQUFJaEIsU0FBU0MsUUFBUUMsTUFBTUMsTUFBTUMsTUFBTUMsYUFBYUM7Z0JBRXJFLE9BQU9VO1lBQ1Q7OztZQUVPc0QsS0FBQUE7bUJBQVAsU0FBT0EsYUFBYUMsUUFBUSxFQUFFckMsT0FBTztnQkFDbkMsSUFBSWxCLFdBQVc7Z0JBRWYsSUFBTXdELG1CQUFtQjdFLHNCQUFzQjRFO2dCQUUvQyxJQUFJQyxxQkFBcUIsTUFBTTtvQkFDN0IsSUFBTU4sZUFBZU0sa0JBQW1CLEdBQUc7b0JBRTNDeEQsV0FBV3lELHlCQUF5QlAsY0FBY2hDO2dCQUNwRDtnQkFFQSxPQUFPbEI7WUFDVDs7O1lBRU8wRCxLQUFBQTttQkFBUCxTQUFPQSxpQkFBaUJSLFlBQVksRUFBRWhDLE9BQU87Z0JBQzNDLElBQUlsQixXQUFXO2dCQUVmLElBQUlrRCxpQkFBaUIsTUFBTTtvQkFDekJsRCxXQUFXeUQseUJBQXlCUCxjQUFjaEM7Z0JBQ3BEO2dCQUVBLE9BQU9sQjtZQUNUOzs7WUFFTzJELEtBQUFBO21CQUFQLFNBQU9BLHdCQUF3QlQsWUFBWSxFQUFFOUQsSUFBSSxFQUFFOEIsT0FBTztnQkFDeEQsSUFBSWxCLFdBQVc7Z0JBRWYsSUFBSWtELGlCQUFpQixNQUFNO29CQUN6QmxELFdBQVd5RCx5QkFBeUJQLGNBQWNoQztvQkFFbERsQixTQUFTSCxPQUFPLENBQUNUO2dCQUNuQjtnQkFFQSxPQUFPWTtZQUNUOzs7WUFFTzRELEtBQUFBO21CQUFQLFNBQU9BLDRCQUE0QkMsdUJBQXVCLEVBQUVyQyxXQUFXO2dCQUNyRSxJQUFNLEFBQUVzQyxPQUFTQyxZQUFHLENBQVpELE1BQ0ZFLGtDQUFrQ25GLHFDQUFxQ2dGLDBCQUN2RVgsZUFBZWMsaUNBQ2ZqQixlQUFlQyxjQUFZLENBQUNDLGVBQWUsQ0FBQ3pCLGNBQzVDTixVQUFVNkIsY0FDVi9DLFdBQVd5RCx5QkFBeUJQLGNBQWNoQyxVQUNsRDlCLE9BQU8wRSxLQUFLRiwyQkFBMkIsQ0FBQ0MseUJBQXlCckMsY0FDakVuQyxjQUFjNEUsdUNBQXVDSix5QkFBeUJyQztnQkFFcEZ4QixTQUFTSCxPQUFPLENBQUNUO2dCQUVqQlksU0FBU0YsY0FBYyxDQUFDVDtnQkFFeEIsT0FBT1c7WUFDVDs7O1lBRU9rRSxLQUFBQTttQkFBUCxTQUFPQSxnQ0FBZ0NsRSxRQUFRLEVBQUVtRSxnQkFBZ0IsRUFBRWpELE9BQU87Z0JBQ3hFLElBQUk1QjtnQkFFSixJQUFNSixPQUFPYyxTQUFTUixPQUFPLElBQ3ZCTCxPQUFPYSxTQUFTUCxPQUFPLElBQ3ZCTCxPQUFPWSxTQUFTTixPQUFPLElBQ3ZCTCxjQUFjVyxTQUFTTCxhQUFhO2dCQUUxQ0wsb0JBQW9CVSxTQUFTSixvQkFBb0I7Z0JBRWpETixvQkFBb0IsQUFDbEIscUJBQUdBLDBCQURlO29CQUVsQjZFO2lCQUNEO2dCQUVELElBQU1sRixTQUFTbUYsbUNBQW1DakYsTUFBTUc7Z0JBRXhEVSxXQUFXLElBQUloQixTQUFTQyxRQUFRQyxNQUFNQyxNQUFNQyxNQUFNQyxhQUFhQztnQkFFL0QsT0FBT1U7WUFDVDs7OztLQTVGQSw0QkFBT2IsUUFBTztBQStGaEIsU0FBU3NFLHlCQUF5QlAsWUFBWSxFQUFFaEMsT0FBTztJQUNyRCxJQUFNLEFBQUVsQyxXQUFhK0UsWUFBRyxDQUFoQi9FLFVBQ0ZFLE9BQU9nRSxjQUNQNUMsZUFBZThDLElBQUFBLGtDQUE0QixFQUFDRixlQUM1Q2pFLFNBQVNpQyxRQUFRbUQsWUFBWSxDQUFDbkYsT0FDOUJDLE9BQU9tQixjQUNQbEIsT0FBTyxNQUNQQyxjQUFjLE1BQ2RDLG9CQUFvQixFQUFFLEVBQ3RCVSxXQUFXLElBQUloQixTQUFTQyxRQUFRQyxNQUFNQyxNQUFNQyxNQUFNQyxhQUFhQztJQUVyRSxPQUFPVTtBQUNUO0FBRUEsU0FBU29FLG1DQUFtQ2pGLElBQUksRUFBRUcsaUJBQWlCO0lBQ2pFLElBQU1nRiwwQkFBMEJoRixrQkFBa0JpRixNQUFNLENBQUMsU0FBQ0QseUJBQXlCSDtRQUMzRSxJQUFNSyx5QkFBeUJMLGlCQUFpQjVFLFNBQVM7UUFFekQrRSwwQkFBMEIsQUFBQyxHQUE4QkUsT0FBNUJGLHlCQUF3QixNQUEyQixPQUF2QkU7UUFFekQsT0FBT0Y7SUFDVCxHQUFHRyx1QkFBWSxHQUNmeEYsU0FBUyxBQUFDLEdBQVNxRixPQUFQbkYsTUFBK0IsT0FBeEJtRjtJQUV6QixPQUFPckY7QUFDVDtBQUVBLFNBQVNnRix1Q0FBdUNKLHVCQUF1QixFQUFFckMsV0FBVztJQUNsRixJQUFJbkMsY0FBYztJQUVsQixJQUFNcUYsbUNBQW1DNUYsc0NBQXNDK0U7SUFFL0UsSUFBSWEscUNBQXFDLE1BQU07UUFDN0MsSUFBTUMsVUFBVUQsaUNBQWlDRSxVQUFVLElBQ3JEQyx1QkFBd0JGLFlBQVlHLHdCQUFhO1FBRXZEekYsY0FBY3dGLHNCQUFzQixHQUFHO0lBQ3pDO0lBRUEsT0FBT3hGO0FBQ1QifQ==
|
package/lib/typeNames.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
Object.defineProperty(exports, "
|
|
5
|
+
Object.defineProperty(exports, "BASE_TYPE_NAME", {
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: function() {
|
|
8
|
-
return
|
|
8
|
+
return BASE_TYPE_NAME;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var
|
|
11
|
+
var BASE_TYPE_NAME = "Base";
|
|
12
12
|
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlTmFtZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBCQVNFX1RZUEVfTkFNRSA9IFwiQmFzZVwiO1xuIl0sIm5hbWVzIjpbIkJBU0VfVFlQRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFFYUE7OztlQUFBQTs7O0FBQU4sSUFBTUEsaUJBQWlCIn0=
|
package/lib/utilities/unifier.js
CHANGED
|
@@ -37,8 +37,8 @@ function areTerminalNodeMapsEqual(generalTerminalNodeMap, specificTerminalNodeMa
|
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
if (terminalNodeMapKeysMatch) {
|
|
40
|
-
var generalTerminalNodes = Object.values(generalTerminalNodeMap), specificTerminalNodes = Object.values(specificTerminalNodeMap), terminalNodeMapValuesMatch = match(generalTerminalNodes, specificTerminalNodes, function(generalTerminalNode,
|
|
41
|
-
var generalTerminalNodeMatchesSpecificTerminalNode = generalTerminalNode.match(
|
|
40
|
+
var generalTerminalNodes = Object.values(generalTerminalNodeMap), specificTerminalNodes = Object.values(specificTerminalNodeMap), terminalNodeMapValuesMatch = match(generalTerminalNodes, specificTerminalNodes, function(generalTerminalNode, specificTerminalNode) {
|
|
41
|
+
var generalTerminalNodeMatchesSpecificTerminalNode = generalTerminalNode.match(specificTerminalNode);
|
|
42
42
|
if (generalTerminalNodeMatchesSpecificTerminalNode) {
|
|
43
43
|
return true;
|
|
44
44
|
}
|
|
@@ -48,4 +48,4 @@ function areTerminalNodeMapsEqual(generalTerminalNodeMap, specificTerminalNodeMa
|
|
|
48
48
|
return terminalNodeMapsEqual;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdW5pZmllci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgbWF0Y2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVybWluYWxOb2RlTWFwRnJvbU5vZGVzKG5vZGVzKSB7XG4gIGNvbnN0IHRlcm1pbmFsTm9kZU1hcCA9IHt9O1xuXG4gIG5vZGVzLmZvckVhY2goKG5vZGUsIGluZGV4KSA9PiB7XG4gICAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlOyAgLy9cblxuICAgICAgdGVybWluYWxOb2RlTWFwW2luZGV4XSA9IHRlcm1pbmFsTm9kZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiB0ZXJtaW5hbE5vZGVNYXA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcmVUZXJtaW5hbE5vZGVNYXBzRXF1YWwoZ2VuZXJhbFRlcm1pbmFsTm9kZU1hcCwgc3BlY2lmaWNUZXJtaW5hbE5vZGVNYXApIHtcbiAgbGV0IHRlcm1pbmFsTm9kZU1hcHNFcXVhbCA9IGZhbHNlO1xuXG4gIGNvbnN0IGdlbmVyYWxJbmRleGVzID0gT2JqZWN0LmtleXMoZ2VuZXJhbFRlcm1pbmFsTm9kZU1hcCksIC8vL1xuICAgICAgICBzcGVjaWZpY0luZGV4ZXMgPSBPYmplY3Qua2V5cyhzcGVjaWZpY1Rlcm1pbmFsTm9kZU1hcCksIC8vL1xuICAgICAgICB0ZXJtaW5hbE5vZGVNYXBLZXlzTWF0Y2ggPSBtYXRjaChnZW5lcmFsSW5kZXhlcywgc3BlY2lmaWNJbmRleGVzLCAoZ2VuZXJhbEluZGV4LCBzcGVjaWZpY0luZGV4KSA9PiB7XG4gICAgICAgICAgaWYgKGdlbmVyYWxJbmRleCA9PT0gc3BlY2lmaWNJbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICBpZiAodGVybWluYWxOb2RlTWFwS2V5c01hdGNoKSB7XG4gICAgY29uc3QgZ2VuZXJhbFRlcm1pbmFsTm9kZXMgPSBPYmplY3QudmFsdWVzKGdlbmVyYWxUZXJtaW5hbE5vZGVNYXApLCAvLy9cbiAgICAgICAgICBzcGVjaWZpY1Rlcm1pbmFsTm9kZXMgPSBPYmplY3QudmFsdWVzKHNwZWNpZmljVGVybWluYWxOb2RlTWFwKSwgLy8vXG4gICAgICAgICAgdGVybWluYWxOb2RlTWFwVmFsdWVzTWF0Y2ggPSBtYXRjaChnZW5lcmFsVGVybWluYWxOb2Rlcywgc3BlY2lmaWNUZXJtaW5hbE5vZGVzLCAoZ2VuZXJhbFRlcm1pbmFsTm9kZSwgc3BlY2lmaWNUZXJtaW5hbE5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdlbmVyYWxUZXJtaW5hbE5vZGVNYXRjaGVzU3BlY2lmaWNUZXJtaW5hbE5vZGUgPSBnZW5lcmFsVGVybWluYWxOb2RlLm1hdGNoKHNwZWNpZmljVGVybWluYWxOb2RlKTtcblxuICAgICAgICAgICAgaWYgKGdlbmVyYWxUZXJtaW5hbE5vZGVNYXRjaGVzU3BlY2lmaWNUZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICB0ZXJtaW5hbE5vZGVNYXBzRXF1YWwgPSB0ZXJtaW5hbE5vZGVNYXBWYWx1ZXNNYXRjaDsgLy8vXG4gIH1cblxuICByZXR1cm4gdGVybWluYWxOb2RlTWFwc0VxdWFsO1xufVxuIl0sIm5hbWVzIjpbImFyZVRlcm1pbmFsTm9kZU1hcHNFcXVhbCIsInRlcm1pbmFsTm9kZU1hcEZyb21Ob2RlcyIsIm1hdGNoIiwiYXJyYXlVdGlsaXRpZXMiLCJub2RlcyIsInRlcm1pbmFsTm9kZU1hcCIsImZvckVhY2giLCJub2RlIiwiaW5kZXgiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJnZW5lcmFsVGVybWluYWxOb2RlTWFwIiwic3BlY2lmaWNUZXJtaW5hbE5vZGVNYXAiLCJ0ZXJtaW5hbE5vZGVNYXBzRXF1YWwiLCJnZW5lcmFsSW5kZXhlcyIsIk9iamVjdCIsImtleXMiLCJzcGVjaWZpY0luZGV4ZXMiLCJ0ZXJtaW5hbE5vZGVNYXBLZXlzTWF0Y2giLCJnZW5lcmFsSW5kZXgiLCJzcGVjaWZpY0luZGV4IiwiZ2VuZXJhbFRlcm1pbmFsTm9kZXMiLCJ2YWx1ZXMiLCJzcGVjaWZpY1Rlcm1pbmFsTm9kZXMiLCJ0ZXJtaW5hbE5vZGVNYXBWYWx1ZXNNYXRjaCIsImdlbmVyYWxUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY1Rlcm1pbmFsTm9kZSIsImdlbmVyYWxUZXJtaW5hbE5vZGVNYXRjaGVzU3BlY2lmaWNUZXJtaW5hbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXNCZ0JBO2VBQUFBOztRQWhCQUM7ZUFBQUE7Ozt5QkFKZTtBQUUvQixJQUFNLEFBQUVDLFFBQVVDLHlCQUFjLENBQXhCRDtBQUVELFNBQVNELHlCQUF5QkcsS0FBSztJQUM1QyxJQUFNQyxrQkFBa0IsQ0FBQztJQUV6QkQsTUFBTUUsT0FBTyxDQUFDLFNBQUNDLE1BQU1DO1FBQ25CLElBQU1DLG1CQUFtQkYsS0FBS0csY0FBYztRQUU1QyxJQUFJRCxrQkFBa0I7WUFDcEIsSUFBTUUsZUFBZUosTUFBTyxFQUFFO1lBRTlCRixlQUFlLENBQUNHLE1BQU0sR0FBR0c7UUFDM0I7SUFDRjtJQUVBLE9BQU9OO0FBQ1Q7QUFFTyxTQUFTTCx5QkFBeUJZLHNCQUFzQixFQUFFQyx1QkFBdUI7SUFDdEYsSUFBSUMsd0JBQXdCO0lBRTVCLElBQU1DLGlCQUFpQkMsT0FBT0MsSUFBSSxDQUFDTCx5QkFDN0JNLGtCQUFrQkYsT0FBT0MsSUFBSSxDQUFDSiwwQkFDOUJNLDJCQUEyQmpCLE1BQU1hLGdCQUFnQkcsaUJBQWlCLFNBQUNFLGNBQWNDO1FBQy9FLElBQUlELGlCQUFpQkMsZUFBZTtZQUNsQyxPQUFPO1FBQ1Q7SUFDRjtJQUVOLElBQUlGLDBCQUEwQjtRQUM1QixJQUFNRyx1QkFBdUJOLE9BQU9PLE1BQU0sQ0FBQ1gseUJBQ3JDWSx3QkFBd0JSLE9BQU9PLE1BQU0sQ0FBQ1YsMEJBQ3RDWSw2QkFBNkJ2QixNQUFNb0Isc0JBQXNCRSx1QkFBdUIsU0FBQ0UscUJBQXFCQztZQUNwRyxJQUFNQyxpREFBaURGLG9CQUFvQnhCLEtBQUssQ0FBQ3lCO1lBRWpGLElBQUlDLGdEQUFnRDtnQkFDbEQsT0FBTztZQUNUO1FBQ0Y7UUFFTmQsd0JBQXdCVyw0QkFBNEIsR0FBRztJQUN6RDtJQUVBLE9BQU9YO0FBQ1QifQ==
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import BracketedContext from "../../context/bracketted";
|
|
4
4
|
import TermPartialContext from "../../context/partial/term";
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { BASE_TYPE_NAME } from "../../typeNames";
|
|
7
7
|
import { nominalLexer, nominalParser } from "../../utilities/nominal";
|
|
8
8
|
|
|
9
9
|
class ConstructorBracketedContext extends BracketedContext {
|
|
@@ -15,7 +15,7 @@ class ConstructorBracketedContext extends BracketedContext {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
static fromNothing() {
|
|
18
|
-
const string = `(${
|
|
18
|
+
const string = `(${BASE_TYPE_NAME})`,
|
|
19
19
|
lexer = nominalLexer, ///
|
|
20
20
|
parser = nominalParser, ///
|
|
21
21
|
termPartialContext = TermPartialContext.fromStringLexerAndParser(string, lexer, parser),
|
package/src/context/file.js
CHANGED
|
@@ -6,7 +6,7 @@ import Equivalences from "../equivalences";
|
|
|
6
6
|
import Substitutions from "../substitutions";
|
|
7
7
|
import topLevelVerifier from "../verifier/topLevel";
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { baseType } from "../dom/type";
|
|
10
10
|
import { nodeAsTokens, nodeAsString, nodesAsString, tokensAsString } from "../utilities/string";
|
|
11
11
|
import { typesFromJSON,
|
|
12
12
|
rulesFromJSON,
|
|
@@ -561,7 +561,7 @@ export default class FileContext {
|
|
|
561
561
|
findTypeByTypeName(typeName) {
|
|
562
562
|
let types = this.getTypes();
|
|
563
563
|
|
|
564
|
-
types.push(
|
|
564
|
+
types.push(baseType);
|
|
565
565
|
|
|
566
566
|
const type = types.find((type) => {
|
|
567
567
|
const typeNameMatches = type.matchTypeName(typeName);
|
package/src/context/release.js
CHANGED
|
@@ -8,7 +8,7 @@ import { lexersUtilities, parsersUtilities } from "occam-custom-grammars";
|
|
|
8
8
|
|
|
9
9
|
import FileContext from "../context/file";
|
|
10
10
|
|
|
11
|
-
import {
|
|
11
|
+
import { baseType } from "../dom/type";
|
|
12
12
|
import { frameMetaType, referenceMetaType, statementMetaType } from "../dom/metaType";
|
|
13
13
|
import { customGrammarFromNameAndEntries, combinedCustomGrammarFromReleaseContexts } from "../utilities/customGrammar";
|
|
14
14
|
|
|
@@ -379,7 +379,7 @@ export default class ReleaseContext {
|
|
|
379
379
|
findTypeByTypeName(typeName) {
|
|
380
380
|
let types = this.getTypes();
|
|
381
381
|
|
|
382
|
-
types.push(
|
|
382
|
+
types.push(baseType);
|
|
383
383
|
|
|
384
384
|
const type = types.find((type) => {
|
|
385
385
|
const typeNameMatches = type.matchTypeName(typeName);
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import dom from "../../dom";
|
|
4
4
|
import VariableAssignment from "../../assignment/variable";
|
|
5
5
|
|
|
6
|
+
import { baseType } from "../type";
|
|
6
7
|
import { nodeQuery } from "../../utilities/query";
|
|
7
|
-
import { objectType } from "../type";
|
|
8
8
|
import { domAssigned } from "../../dom";
|
|
9
9
|
|
|
10
10
|
const variableNodeQuery = nodeQuery("/term/variable!"),
|
|
@@ -67,7 +67,7 @@ export default domAssigned(class TypeAssertion {
|
|
|
67
67
|
verifyType(context) {
|
|
68
68
|
let typeVerified;
|
|
69
69
|
|
|
70
|
-
if (this.type ===
|
|
70
|
+
if (this.type === baseType) {
|
|
71
71
|
typeVerified = true;
|
|
72
72
|
} else {
|
|
73
73
|
const typeName = this.type.getName();
|
package/src/dom/constructor.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import dom from "../dom";
|
|
4
4
|
import LocalContext from "../context/local";
|
|
5
5
|
|
|
6
|
+
import { baseType } from "./type";
|
|
6
7
|
import { nodeQuery } from "../utilities/query";
|
|
7
|
-
import { objectType } from "./type";
|
|
8
8
|
import { domAssigned } from "../dom";
|
|
9
9
|
import { PROVISIONALLY } from "../constants";
|
|
10
10
|
import { unifyTermWithConstructor } from "../utilities/unification";
|
|
@@ -105,7 +105,7 @@ function stringFromTermAndProvisional(term, provisional) {
|
|
|
105
105
|
const type = term.getType(),
|
|
106
106
|
termString = term.getString();
|
|
107
107
|
|
|
108
|
-
if (type ===
|
|
108
|
+
if (type === baseType) {
|
|
109
109
|
string = termString; ///
|
|
110
110
|
} else {
|
|
111
111
|
const typeString = type.getString();
|