occam-verify-cli 0.0.1256 → 0.0.1258
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/file.js +3 -3
- package/lib/dom/declaration.js +3 -3
- package/lib/dom/label.js +6 -6
- package/lib/dom/metavariable.js +1 -8
- package/lib/dom/reference.js +5 -5
- package/lib/dom/statement.js +1 -8
- package/lib/dom/variable.js +8 -8
- package/package.json +1 -1
- package/src/context/file.js +2 -2
- package/src/dom/declaration.js +3 -3
- package/src/dom/label.js +6 -6
- package/src/dom/metavariable.js +0 -8
- package/src/dom/reference.js +4 -4
- package/src/dom/statement.js +0 -8
- package/src/dom/variable.js +7 -7
package/lib/dom/variable.js
CHANGED
|
@@ -135,6 +135,13 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
135
135
|
this.type = type;
|
|
136
136
|
}
|
|
137
137
|
},
|
|
138
|
+
{
|
|
139
|
+
key: "isEqualTo",
|
|
140
|
+
value: function isEqualTo(variable) {
|
|
141
|
+
var variableString = variable.getString(), equalTo = variableString === this.string;
|
|
142
|
+
return equalTo;
|
|
143
|
+
}
|
|
144
|
+
},
|
|
138
145
|
{
|
|
139
146
|
key: "matchName",
|
|
140
147
|
value: function matchName(name) {
|
|
@@ -149,13 +156,6 @@ var _default = (0, _dom.domAssigned)((_Variable = /*#__PURE__*/ function() {
|
|
|
149
156
|
return variableNameMatches;
|
|
150
157
|
}
|
|
151
158
|
},
|
|
152
|
-
{
|
|
153
|
-
key: "isEqualTo",
|
|
154
|
-
value: function isEqualTo(variable) {
|
|
155
|
-
var variableString = variable.getString(), equalTo = variableString === this.string;
|
|
156
|
-
return equalTo;
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
159
|
{
|
|
160
160
|
key: "isEffectivelyEqualToTerm",
|
|
161
161
|
value: function isEffectivelyEqualToTerm(term, generalContext, specificContext) {
|
|
@@ -335,4 +335,4 @@ function typeFromVariableDeclarationNode(variableDeclarationNode, fileContext) {
|
|
|
335
335
|
return type;
|
|
336
336
|
}
|
|
337
337
|
|
|
338
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IFRlcm1TdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG9iamVjdFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgdHlwZVRvVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCB7IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcbmltcG9ydCB7IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyB9IGZyb20gXCIuLi9jb250ZXh0L3BhcnRpYWwvdmFyaWFibGVcIjtcblxuY29uc3QgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvbi90eXBlXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIG1hdGNoTmFtZShuYW1lKSB7XG4gICAgY29uc3QgbmFtZU1hdGNoZXMgPSAobmFtZSA9PT0gdGhpcy5uYW1lKTtcblxuICAgIHJldHVybiBuYW1lTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoVmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlTmFtZU1hdGNoZXMgPSAodmFyaWFibGVOYW1lID09PSB0aGlzLm5hbWUpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlTmFtZU1hdGNoZXM7XG4gIH1cblxuICBpc0VxdWFsVG8odmFyaWFibGUpIHtcbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICAgIGVxdWFsVG8gPSAodmFyaWFibGVTdHJpbmcgPT09IHRoaXMuc3RyaW5nKTtcblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgaXNFZmZlY3RpdmVseUVxdWFsVG9UZXJtKHRlcm0sIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBsZXQgZWZmZWN0aXZlbHlFcXVhbFRvVGVybSA9IGZhbHNlO1xuXG4gICAgY29uc3QgZ2VuZXJhbENvbnRleHRGaWxlUGF0aCA9IGdlbmVyYWxDb250ZXh0LmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0RmlsZVBhdGggPSBzcGVjaWZpY0NvbnRleHQuZ2V0RmlsZVBhdGgoKTtcblxuICAgIGlmIChnZW5lcmFsQ29udGV4dEZpbGVQYXRoID09PSBzcGVjaWZpY0NvbnRleHRGaWxlUGF0aCkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGlmICh0ZXJtU3RyaW5nID09PSB0aGlzLnN0cmluZykge1xuICAgICAgICBlZmZlY3RpdmVseUVxdWFsVG9UZXJtID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZWZmZWN0aXZlbHlFcXVhbFRvVGVybTtcbiAgfVxuXG4gIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkO1xuXG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKTtcblxuICAgICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgICAgdmVyaWZpZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVR5cGUoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVkO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgdHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuLi5gKTtcblxuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZU5hbWV9JyB0eXBlIGlzIG1pc3NpbmcuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOyAvLy9cblxuICAgICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0eXBlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlXaGVuRGVjbGFyZWQoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRXaGVuRGVjbGFyZWQ7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgd2hlbiBkZWNsYXJlZC4uLmApO1xuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5uYW1lLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBmaWxlQ29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3ZhcmlhYmxlTmFtZX0nIHZhcmlhYmxlIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgICAgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYEEgJyR7bWV0YXZhcmlhYmxlTmFtZX0nIHZhcmlhYmxlIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWQuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0eXBlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVR5cGUoZmlsZUNvbnRleHQpO1xuXG4gICAgICAgIHZlcmlmaWVkV2hlbkRlY2xhcmVkID0gdHlwZVZlcmlmaWVkOyAgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkV2hlbkRlY2xhcmVkKSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgd2hlbiBkZWNsYXJlZC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRXaGVuRGVjbGFyZWQ7XG4gIH1cblxuICB1bmlmeVRlcm0odGVybSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCB0ZXJtVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBnZW5lcmFsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGNvbnN0IGVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0gPSB0aGlzLmlzRWZmZWN0aXZlbHlFcXVhbFRvVGVybSh0ZXJtLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChlZmZlY3RpdmVseUVxdWFsVG9UZXJtKSB7XG4gICAgICB0ZXJtVW5pZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gdGhpcywgLy8vXG4gICAgICAgICAgICBzdWJzdGl0dXRpb25QcmVzZW50ID0gc3Vic3RpdHV0aW9ucy5pc1N1YnN0aXR1dGlvblByZXNlbnRCeVZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvblByZXNlbnQpIHtcbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZSh2YXJpYWJsZSksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSA9IHN1YnN0aXR1dGlvbi5pc1Rlcm1FcXVhbFRvKHRlcm0pO1xuXG4gICAgICAgIGlmIChzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0pIHtcbiAgICAgICAgICB0ZXJtVW5pZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBjb25zdCB2YXJpYWJsZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgICAgdGVybVN1YnN0aXR1dGlvbiA9IFRlcm1TdWJzdGl0dXRpb24uZnJvbVRlcm5BbmRWYXJpYWJsZSh0ZXJtLCB2YXJpYWJsZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHRlcm1TdWJzdGl0dXRpb247ICAvLy9cblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7ICAvLy9cblxuICAgICAgICBzdWJzdGl0dXRpb25zLmFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIGNvbnRleHQpO1xuXG4gICAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGVybVVuaWZpZWQpIHtcbiAgICAgIGdlbmVyYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtVW5pZmllZDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5zdHJpbmcsXG4gICAgICAgICAgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBjb250ZXh0ID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsXG4gICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHZhcmlhYmxlID0gbnVsbDtcblxuICAgIGNvbnN0IHRlcm1WYXJpYWJsZU5vZGUgPSB0ZXJtVmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gICAgaWYgKHRlcm1WYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHRlcm1WYXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgICAgdHlwZSA9IG51bGw7XG5cbiAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHZhcmlhYmxlID0gbnVsbDtcblxuICAgIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgICAgdHlwZSA9IG51bGw7XG5cbiAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZU5vZGVBbmRUeXBlKHZhcmlhYmxlTm9kZSwgdHlwZSwgY29udGV4dCkge1xuICAgIGxldCB2YXJpYWJsZSA9IG51bGw7XG5cbiAgICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWU7ICAvLy9cblxuICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHN0cmluZyA9IHZhcmlhYmxlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB0eXBlRnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCB7IFR5cGUgfSA9IGRvbSxcbiAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlID0gdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICB0eXBlTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25UeXBlTm9kZSwgLy8vXG4gICAgICAgIGNvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gdHlwZTtcbn1cbiJdLCJuYW1lcyI6WyJ0ZXJtVmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSIsInZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiVmFyaWFibGUiLCJzdHJpbmciLCJub2RlIiwibmFtZSIsInR5cGUiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0TmFtZSIsImdldFR5cGUiLCJzZXRUeXBlIiwibWF0Y2hOYW1lIiwibmFtZU1hdGNoZXMiLCJtYXRjaFZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZU1hdGNoZXMiLCJpc0VxdWFsVG8iLCJ2YXJpYWJsZSIsInZhcmlhYmxlU3RyaW5nIiwiZXF1YWxUbyIsImlzRWZmZWN0aXZlbHlFcXVhbFRvVGVybSIsInRlcm0iLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsImVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0iLCJnZW5lcmFsQ29udGV4dEZpbGVQYXRoIiwiZ2V0RmlsZVBhdGgiLCJzcGVjaWZpY0NvbnRleHRGaWxlUGF0aCIsInRlcm1TdHJpbmciLCJ2ZXJpZnkiLCJjb250ZXh0IiwidmVyaWZpZWQiLCJ0cmFjZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwiZGVidWciLCJ2ZXJpZnlUeXBlIiwiZmlsZUNvbnRleHQiLCJ0eXBlVmVyaWZpZWQiLCJvYmplY3RUeXBlIiwidHlwZU5hbWUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJ2ZXJpZnlXaGVuRGVjbGFyZWQiLCJ2ZXJpZmllZFdoZW5EZWNsYXJlZCIsInZhcmlhYmxlUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlUHJlc2VudCIsImlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZSIsInVuaWZ5VGVybSIsInN1YnN0aXR1dGlvbnMiLCJ0ZXJtVW5pZmllZCIsInN1YnN0aXR1dGlvblByZXNlbnQiLCJpc1N1YnN0aXR1dGlvblByZXNlbnRCeVZhcmlhYmxlIiwic3Vic3RpdHV0aW9uIiwiZmluZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGUiLCJzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0iLCJpc1Rlcm1FcXVhbFRvIiwidGVybVN1YnN0aXR1dGlvbiIsIlRlcm1TdWJzdGl0dXRpb24iLCJmcm9tVGVybkFuZFZhcmlhYmxlIiwiYWRkU3Vic3RpdHV0aW9uIiwidG9KU09OIiwidHlwZUpTT04iLCJ0eXBlVG9UeXBlSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyIsInZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUiLCJ0eXBlRnJvbUpTT04iLCJmcm9tVGVybU5vZGUiLCJ0ZXJtTm9kZSIsInRlcm1WYXJpYWJsZU5vZGUiLCJub2RlQXNTdHJpbmciLCJmcm9tVmFyaWFibGVOb2RlIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUiLCJmcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGUiLCJ0eXBlRnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiVHlwZSIsImRvbSIsInZhcmlhYmxlRGVjbGFyYXRpb25UeXBlTm9kZSIsInR5cGVOb2RlIiwiZnJvbVR5cGVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUFBOzs7MkRBZmdCOzREQUNTOzJEQUNJO3FCQUVIO29CQUNDO29CQUVrQjtvQkFDQTt3QkFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0MsSUFBTUEsd0JBQXdCQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUNsQ0MsbUNBQW1DRCxJQUFBQSxnQkFBUyxFQUFDLDhCQUM3Q0UsdUNBQXVDRixJQUFBQSxnQkFBUyxFQUFDO0lBRXZELFdBQWVHLElBQUFBLGdCQUFXLDZCQUFDO2FBQU1DLFNBQ25CQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJO2dDQURMSjtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7Ozs7WUFHZEMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixNQUFNO1lBQ3BCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixJQUFJO1lBQ2xCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixJQUFJO1lBQ2xCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixJQUFJO1lBQ2xCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFMLElBQUk7Z0JBQ1YsSUFBSSxDQUFDQSxJQUFJLEdBQUdBO1lBQ2Q7OztZQUVBTSxLQUFBQTttQkFBQUEsU0FBQUEsVUFBVVAsSUFBSTtnQkFDWixJQUFNUSxjQUFlUixTQUFTLElBQUksQ0FBQ0EsSUFBSTtnQkFFdkMsT0FBT1E7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxrQkFBa0JDLFlBQVk7Z0JBQzVCLElBQU1DLHNCQUF1QkQsaUJBQWlCLElBQUksQ0FBQ1YsSUFBSTtnQkFFdkQsT0FBT1c7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVQyxRQUFRO2dCQUNoQixJQUFNQyxpQkFBaUJELFNBQVNYLFNBQVMsSUFDbkNhLFVBQVdELG1CQUFtQixJQUFJLENBQUNoQixNQUFNO2dCQUUvQyxPQUFPaUI7WUFDVDs7O1lBRUFDLEtBQUFBO21CQUFBQSxTQUFBQSx5QkFBeUJDLElBQUksRUFBRUMsY0FBYyxFQUFFQyxlQUFlO2dCQUM1RCxJQUFJQyx5QkFBeUI7Z0JBRTdCLElBQU1DLHlCQUF5QkgsZUFBZUksV0FBVyxJQUNuREMsMEJBQTBCSixnQkFBZ0JHLFdBQVc7Z0JBRTNELElBQUlELDJCQUEyQkUseUJBQXlCO29CQUN0RCxJQUFNQyxhQUFhUCxLQUFLZixTQUFTO29CQUVqQyxJQUFJc0IsZUFBZSxJQUFJLENBQUMxQixNQUFNLEVBQUU7d0JBQzlCc0IseUJBQXlCO29CQUMzQjtnQkFDRjtnQkFFQSxPQUFPQTtZQUNUOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLE9BQU9DLE9BQU87Z0JBQ1osSUFBSUM7Z0JBRUosSUFBTWIsaUJBQWlCLElBQUksQ0FBQ2hCLE1BQU0sRUFBRSxHQUFHO2dCQUV2QzRCLFFBQVFFLEtBQUssQ0FBQyxBQUFDLGtCQUFnQyxPQUFmZCxnQkFBZTtnQkFFL0MsSUFBTUosZUFBZSxJQUFJLENBQUNWLElBQUksRUFDeEJhLFdBQVdhLFFBQVFHLDBCQUEwQixDQUFDbkI7Z0JBRXBELElBQUlHLGFBQWEsTUFBTTtvQkFDckIsSUFBTVosT0FBT1ksU0FBU1IsT0FBTztvQkFFN0IsSUFBSSxDQUFDSixJQUFJLEdBQUdBO29CQUVaMEIsV0FBVztnQkFDYixPQUFPO29CQUNMRCxRQUFRSSxLQUFLLENBQUMsQUFBQyxRQUFzQixPQUFmaEIsZ0JBQWU7Z0JBQ3ZDO2dCQUVBLElBQUlhLFVBQVU7b0JBQ1pELFFBQVFJLEtBQUssQ0FBQyxBQUFDLG9CQUFrQyxPQUFmaEIsZ0JBQWU7Z0JBQ25EO2dCQUVBLE9BQU9hO1lBQ1Q7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsV0FBV0MsV0FBVztnQkFDcEIsSUFBSUM7Z0JBRUosSUFBSSxJQUFJLENBQUNoQyxJQUFJLEtBQUtpQyxnQkFBVSxFQUFFO29CQUM1QkQsZUFBZTtnQkFDakIsT0FBTztvQkFDTCxJQUFNRSxXQUFXLElBQUksQ0FBQ2xDLElBQUksQ0FBQ0csT0FBTztvQkFFbEM0QixZQUFZSixLQUFLLENBQUMsQUFBQyxrQkFBMEIsT0FBVE8sVUFBUztvQkFFN0MsSUFBTWxDLE9BQU8rQixZQUFZSSxrQkFBa0IsQ0FBQ0Q7b0JBRTVDLElBQUlsQyxTQUFTLE1BQU07d0JBQ2pCK0IsWUFBWUYsS0FBSyxDQUFDLEFBQUMsUUFBZ0IsT0FBVEssVUFBUztvQkFDckMsT0FBTzt3QkFDTCxJQUFJLENBQUNsQyxJQUFJLEdBQUdBLE1BQU0sR0FBRzt3QkFFckJnQyxlQUFlO29CQUNqQjtvQkFFQSxJQUFJQSxjQUFjO3dCQUNoQkQsWUFBWUYsS0FBSyxDQUFDLEFBQUMsb0JBQTRCLE9BQVRLLFVBQVM7b0JBQ2pEO2dCQUNGO2dCQUVBLE9BQU9GO1lBQ1Q7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsbUJBQW1CTCxXQUFXO2dCQUM1QixJQUFJTTtnQkFFSixJQUFNeEIsaUJBQWlCLElBQUksQ0FBQ2hCLE1BQU0sRUFBRSxHQUFHO2dCQUV2Q2tDLFlBQVlKLEtBQUssQ0FBQyxBQUFDLGtCQUFnQyxPQUFmZCxnQkFBZTtnQkFFbkQsSUFBTUosZUFBZSxJQUFJLENBQUNWLElBQUksRUFDeEJ1QyxrQkFBa0JQLFlBQVlRLCtCQUErQixDQUFDOUI7Z0JBRXBFLElBQUk2QixpQkFBaUI7b0JBQ25CUCxZQUFZRixLQUFLLENBQUMsQUFBQyxRQUFvQixPQUFicEIsY0FBYTtnQkFDekMsT0FBTztvQkFDTCxJQUFNK0IsbUJBQW1CLElBQUksQ0FBQ3pDLElBQUksRUFDNUIwQyxzQkFBc0JWLFlBQVlXLHVDQUF1QyxDQUFDRjtvQkFFaEYsSUFBSUMscUJBQXFCO3dCQUN2QlYsWUFBWUYsS0FBSyxDQUFDLEFBQUMsTUFBc0IsT0FBakJXLGtCQUFpQjtvQkFDM0MsT0FBTzt3QkFDTCxJQUFNUixlQUFlLElBQUksQ0FBQ0YsVUFBVSxDQUFDQzt3QkFFckNNLHVCQUF1QkwsY0FBZSxHQUFHO29CQUMzQztnQkFDRjtnQkFFQSxJQUFJSyxzQkFBc0I7b0JBQ3hCTixZQUFZRixLQUFLLENBQUMsQUFBQyxvQkFBa0MsT0FBZmhCLGdCQUFlO2dCQUN2RDtnQkFFQSxPQUFPd0I7WUFDVDs7O1lBRUFNLEtBQUFBO21CQUFBQSxTQUFBQSxVQUFVM0IsSUFBSSxFQUFFNEIsYUFBYSxFQUFFM0IsY0FBYyxFQUFFQyxlQUFlO2dCQUM1RCxJQUFJMkIsY0FBYztnQkFFbEIsSUFBTXRCLGFBQWFQLEtBQUtmLFNBQVMsSUFDM0JZLGlCQUFpQixJQUFJLENBQUNoQixNQUFNLEVBQUUsR0FBRztnQkFFdkNvQixlQUFlVSxLQUFLLENBQUMsQUFBQyxpQkFBOENkLE9BQTlCVSxZQUFXLHFCQUFrQyxPQUFmVixnQkFBZTtnQkFFbkYsSUFBTU0seUJBQXlCLElBQUksQ0FBQ0osd0JBQXdCLENBQUNDLE1BQU1DLGdCQUFnQkM7Z0JBRW5GLElBQUlDLHdCQUF3QjtvQkFDMUIwQixjQUFjO2dCQUNoQixPQUFPO29CQUNMLElBQU1qQyxXQUFXLElBQUksRUFDZmtDLHNCQUFzQkYsY0FBY0csK0JBQStCLENBQUNuQztvQkFFMUUsSUFBSWtDLHFCQUFxQjt3QkFDdkIsSUFBTUUsZUFBZUosY0FBY0ssMEJBQTBCLENBQUNyQyxXQUN4RHNDLDhCQUE4QkYsYUFBYUcsYUFBYSxDQUFDbkM7d0JBRS9ELElBQUlrQyw2QkFBNkI7NEJBQy9CTCxjQUFjO3dCQUNoQjtvQkFDRixPQUFPO3dCQUNMLElBQUlwQjt3QkFFSkEsVUFBVVAsaUJBQWtCLEdBQUc7d0JBRS9CLElBQU1OLFlBQVcsSUFBSSxFQUNmd0MsbUJBQW1CQyxhQUFnQixDQUFDQyxtQkFBbUIsQ0FBQ3RDLE1BQU1KLFdBQVVhLFVBQ3hFdUIsZ0JBQWVJLGtCQUFtQixHQUFHO3dCQUUzQzNCLFVBQVVSLGdCQUFpQixHQUFHO3dCQUU5QjJCLGNBQWNXLGVBQWUsQ0FBQ1AsZUFBY3ZCO3dCQUU1Q29CLGNBQWM7b0JBQ2hCO2dCQUNGO2dCQUVBLElBQUlBLGFBQWE7b0JBQ2Y1QixlQUFlWSxLQUFLLENBQUMsQUFBQyxtQkFBZ0RoQixPQUE5QlUsWUFBVyxxQkFBa0MsT0FBZlYsZ0JBQWU7Z0JBQ3ZGO2dCQUVBLE9BQU9nQztZQUNUOzs7WUFFQVcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLFdBQVdDLElBQUFBLG9CQUFjLEVBQUMsSUFBSSxDQUFDMUQsSUFBSSxHQUNuQ0gsU0FBUyxJQUFJLENBQUNBLE1BQU0sRUFDcEJHLE9BQU95RCxVQUNQRSxPQUFPO29CQUNMM0QsTUFBQUE7b0JBQ0FILFFBQUFBO2dCQUNGO2dCQUVOLE9BQU84RDtZQUNUOzs7O1lBSU9DLEtBQUFBO21CQUFQLFNBQU9BLFNBQVNELElBQUksRUFBRTVCLFdBQVc7Z0JBQy9CLElBQU0sQUFBRWxDLFNBQVc4RCxLQUFYOUQsUUFDRmdFLGVBQWVDLGNBQVksQ0FBQ0MsZUFBZSxDQUFDaEMsY0FDNUNOLFVBQVVvQyxjQUNWaEQsaUJBQWlCaEIsUUFDakJtRSxlQUFlQyxJQUFBQSx3Q0FBOEIsRUFBQ3BELGdCQUFnQlksVUFDOURoQixlQUFleUQsSUFBQUEsa0NBQTRCLEVBQUNGLGVBQzVDbEUsT0FBT2tFLGNBQ1BqRSxPQUFPVSxjQUNQVCxPQUFPbUUsSUFBQUEsa0JBQVksRUFBQ1IsTUFBTTVCLGNBQzFCbkIsV0FBVyxJQUFJaEIsU0FBU0MsUUFBUUMsTUFBTUMsTUFBTUM7Z0JBRWxELE9BQU9ZO1lBQ1Q7OztZQUVPd0QsS0FBQUE7bUJBQVAsU0FBT0EsYUFBYUMsUUFBUSxFQUFFNUMsT0FBTztnQkFDbkMsSUFBSWIsV0FBVztnQkFFZixJQUFNMEQsbUJBQW1CL0Usc0JBQXNCOEU7Z0JBRS9DLElBQUlDLHFCQUFxQixNQUFNO29CQUM3QixJQUFNTixlQUFlTSxrQkFDZjdELGVBQWV5RCxJQUFBQSxrQ0FBNEIsRUFBQ0YsZUFDNUNsRSxPQUFPa0UsY0FDUG5FLFNBQVM0QixRQUFROEMsWUFBWSxDQUFDekUsT0FDOUJDLE9BQU9VLGNBQ1BULE9BQU87b0JBRWJZLFdBQVcsSUFBSWhCLFNBQVNDLFFBQVFDLE1BQU1DLE1BQU1DO2dCQUM5QztnQkFFQSxPQUFPWTtZQUNUOzs7WUFFTzRELEtBQUFBO21CQUFQLFNBQU9BLGlCQUFpQlIsWUFBWSxFQUFFdkMsT0FBTztnQkFDM0MsSUFBSWIsV0FBVztnQkFFZixJQUFJb0QsaUJBQWlCLE1BQU07b0JBQ3pCLElBQU1sRSxPQUFPa0UsY0FDUHZELGVBQWV5RCxJQUFBQSxrQ0FBNEIsRUFBQ0YsZUFDNUNuRSxTQUFTNEIsUUFBUThDLFlBQVksQ0FBQ3pFLE9BQzlCQyxPQUFPVSxjQUNQVCxPQUFPO29CQUViWSxXQUFXLElBQUloQixTQUFTQyxRQUFRQyxNQUFNQyxNQUFNQztnQkFDOUM7Z0JBRUEsT0FBT1k7WUFDVDs7O1lBRU82RCxLQUFBQTttQkFBUCxTQUFPQSx3QkFBd0JULFlBQVksRUFBRWhFLElBQUksRUFBRXlCLE9BQU87Z0JBQ3hELElBQUliLFdBQVc7Z0JBRWYsSUFBSW9ELGlCQUFpQixNQUFNO29CQUN6QixJQUFNbEUsT0FBT2tFLGNBQ1B2RCxlQUFleUQsSUFBQUEsa0NBQTRCLEVBQUNGLGVBQzVDbkUsU0FBUzRCLFFBQVE4QyxZQUFZLENBQUN6RSxPQUM5QkMsT0FBT1UsY0FBZSxHQUFHO29CQUUvQkcsV0FBVyxJQUFJaEIsU0FBU0MsUUFBUUMsTUFBTUMsTUFBTUM7Z0JBQzlDO2dCQUVBLE9BQU9ZO1lBQ1Q7OztZQUVPOEQsS0FBQUE7bUJBQVAsU0FBT0EsNEJBQTRCQyx1QkFBdUIsRUFBRTVDLFdBQVc7Z0JBQ3JFLElBQU02QyxrQ0FBa0NsRixxQ0FBcUNpRiwwQkFDdkVYLGVBQWVZLGlDQUNmbkUsZUFBZXlELElBQUFBLGtDQUE0QixFQUFDRixlQUM1Q25ELGlCQUFpQmtCLFlBQVl3QyxZQUFZLENBQUNQLGVBQzFDbkUsU0FBU2dCLGdCQUNUZixPQUFPa0UsY0FDUGpFLE9BQU9VLGNBQ1BULE9BQU82RSxnQ0FBZ0NGLHlCQUF5QjVDLGNBQ2hFbkIsV0FBVyxJQUFJaEIsU0FBU0MsUUFBUUMsTUFBTUMsTUFBTUM7Z0JBRWxELE9BQU9ZO1lBQ1Q7Ozs7S0EvRUEsNEJBQU9iLFFBQU87QUFrRmhCLFNBQVM4RSxnQ0FBZ0NGLHVCQUF1QixFQUFFNUMsV0FBVztJQUMzRSxJQUFNLEFBQUUrQyxPQUFTQyxZQUFHLENBQVpELE1BQ0ZFLDhCQUE4QnZGLGlDQUFpQ2tGLDBCQUMvRE0sV0FBV0QsNkJBQ1h2RCxVQUFVcUMsY0FBWSxDQUFDQyxlQUFlLENBQUNoQyxjQUN2Qy9CLE9BQU84RSxLQUFLSSxZQUFZLENBQUNELFVBQVV4RDtJQUV6QyxPQUFPekI7QUFDVCJ9
|
|
338
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IFRlcm1TdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi90ZXJtXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG9iamVjdFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBkb21Bc3NpZ25lZCB9IGZyb20gXCIuLi9kb21cIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgdHlwZVRvVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCB7IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcbmltcG9ydCB7IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyB9IGZyb20gXCIuLi9jb250ZXh0L3BhcnRpYWwvdmFyaWFibGVcIjtcblxuY29uc3QgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Rlcm0vdmFyaWFibGUhXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVEZWNsYXJhdGlvbi90eXBlXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3ZhcmlhYmxlRGVjbGFyYXRpb24vdmFyaWFibGVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFZhcmlhYmxlIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGlzRXF1YWxUbyh2YXJpYWJsZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgZXF1YWxUbyA9ICh2YXJpYWJsZVN0cmluZyA9PT0gdGhpcy5zdHJpbmcpO1xuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBtYXRjaE5hbWUobmFtZSkge1xuICAgIGNvbnN0IG5hbWVNYXRjaGVzID0gKG5hbWUgPT09IHRoaXMubmFtZSk7XG5cbiAgICByZXR1cm4gbmFtZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaFZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZU5hbWVNYXRjaGVzID0gKHZhcmlhYmxlTmFtZSA9PT0gdGhpcy5uYW1lKTtcblxuICAgIHJldHVybiB2YXJpYWJsZU5hbWVNYXRjaGVzO1xuICB9XG5cbiAgaXNFZmZlY3RpdmVseUVxdWFsVG9UZXJtKHRlcm0sIGdlbmVyYWxDb250ZXh0LCBzcGVjaWZpY0NvbnRleHQpIHtcbiAgICBsZXQgZWZmZWN0aXZlbHlFcXVhbFRvVGVybSA9IGZhbHNlO1xuXG4gICAgY29uc3QgZ2VuZXJhbENvbnRleHRGaWxlUGF0aCA9IGdlbmVyYWxDb250ZXh0LmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgc3BlY2lmaWNDb250ZXh0RmlsZVBhdGggPSBzcGVjaWZpY0NvbnRleHQuZ2V0RmlsZVBhdGgoKTtcblxuICAgIGlmIChnZW5lcmFsQ29udGV4dEZpbGVQYXRoID09PSBzcGVjaWZpY0NvbnRleHRGaWxlUGF0aCkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGlmICh0ZXJtU3RyaW5nID09PSB0aGlzLnN0cmluZykge1xuICAgICAgICBlZmZlY3RpdmVseUVxdWFsVG9UZXJtID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZWZmZWN0aXZlbHlFcXVhbFRvVGVybTtcbiAgfVxuXG4gIHZlcmlmeShjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVkO1xuXG4gICAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHRoaXMubmFtZSxcbiAgICAgICAgICB2YXJpYWJsZSA9IGNvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdHlwZSA9IHZhcmlhYmxlLmdldFR5cGUoKTtcblxuICAgICAgdGhpcy50eXBlID0gdHlwZTtcblxuICAgICAgdmVyaWZpZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWQpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVR5cGUoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVkO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgdHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuLi5gKTtcblxuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZU5hbWV9JyB0eXBlIGlzIG1pc3NpbmcuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOyAvLy9cblxuICAgICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0eXBlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlXaGVuRGVjbGFyZWQoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRXaGVuRGVjbGFyZWQ7XG5cbiAgICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgd2hlbiBkZWNsYXJlZC4uLmApO1xuXG4gICAgY29uc3QgdmFyaWFibGVOYW1lID0gdGhpcy5uYW1lLCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSBmaWxlQ29udGV4dC5pc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgVGhlICcke3ZhcmlhYmxlTmFtZX0nIHZhcmlhYmxlIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWQuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWUgPSB0aGlzLm5hbWUsIC8vL1xuICAgICAgICAgICAgbWV0YXZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICAgICAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcbiAgICAgICAgZmlsZUNvbnRleHQuZGVidWcoYEEgJyR7bWV0YXZhcmlhYmxlTmFtZX0nIHZhcmlhYmxlIGhhcyBhbHJlYWR5IGJlZW4gZGVjbGFyZWQuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB0eXBlVmVyaWZpZWQgPSB0aGlzLnZlcmlmeVR5cGUoZmlsZUNvbnRleHQpO1xuXG4gICAgICAgIHZlcmlmaWVkV2hlbkRlY2xhcmVkID0gdHlwZVZlcmlmaWVkOyAgLy8vXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHZlcmlmaWVkV2hlbkRlY2xhcmVkKSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgd2hlbiBkZWNsYXJlZC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRXaGVuRGVjbGFyZWQ7XG4gIH1cblxuICB1bmlmeVRlcm0odGVybSwgc3Vic3RpdHV0aW9ucywgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCB0ZXJtVW5pZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB0aGlzLnN0cmluZzsgLy8vXG5cbiAgICBnZW5lcmFsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUuLi5gKTtcblxuICAgIGNvbnN0IGVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0gPSB0aGlzLmlzRWZmZWN0aXZlbHlFcXVhbFRvVGVybSh0ZXJtLCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KTtcblxuICAgIGlmIChlZmZlY3RpdmVseUVxdWFsVG9UZXJtKSB7XG4gICAgICB0ZXJtVW5pZmllZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gdGhpcywgLy8vXG4gICAgICAgICAgICBzdWJzdGl0dXRpb25QcmVzZW50ID0gc3Vic3RpdHV0aW9ucy5pc1N1YnN0aXR1dGlvblByZXNlbnRCeVZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgICAgaWYgKHN1YnN0aXR1dGlvblByZXNlbnQpIHtcbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kU3Vic3RpdHV0aW9uQnlWYXJpYWJsZSh2YXJpYWJsZSksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvblRlcm1FcXVhbFRvVGVybSA9IHN1YnN0aXR1dGlvbi5pc1Rlcm1FcXVhbFRvKHRlcm0pO1xuXG4gICAgICAgIGlmIChzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0pIHtcbiAgICAgICAgICB0ZXJtVW5pZmllZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxldCBjb250ZXh0O1xuXG4gICAgICAgIGNvbnRleHQgPSBzcGVjaWZpY0NvbnRleHQ7ICAvLy9cblxuICAgICAgICBjb25zdCB2YXJpYWJsZSA9IHRoaXMsICAvLy9cbiAgICAgICAgICAgICAgdGVybVN1YnN0aXR1dGlvbiA9IFRlcm1TdWJzdGl0dXRpb24uZnJvbVRlcm5BbmRWYXJpYWJsZSh0ZXJtLCB2YXJpYWJsZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHRlcm1TdWJzdGl0dXRpb247ICAvLy9cblxuICAgICAgICBjb250ZXh0ID0gZ2VuZXJhbENvbnRleHQ7ICAvLy9cblxuICAgICAgICBzdWJzdGl0dXRpb25zLmFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIGNvbnRleHQpO1xuXG4gICAgICAgIHRlcm1VbmlmaWVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGVybVVuaWZpZWQpIHtcbiAgICAgIGdlbmVyYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHt2YXJpYWJsZVN0cmluZ30nIHZhcmlhYmxlLmApO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtVW5pZmllZDtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5zdHJpbmcsXG4gICAgICAgICAgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVmFyaWFibGVcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBjb250ZXh0ID0gbG9jYWxDb250ZXh0LCAvLy9cbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyh2YXJpYWJsZVN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVOYW1lID0gdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsXG4gICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHZhcmlhYmxlID0gbnVsbDtcblxuICAgIGNvbnN0IHRlcm1WYXJpYWJsZU5vZGUgPSB0ZXJtVmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gICAgaWYgKHRlcm1WYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZSA9IHRlcm1WYXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgIG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgICAgdHlwZSA9IG51bGw7XG5cbiAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHZhcmlhYmxlID0gbnVsbDtcblxuICAgIGlmICh2YXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSB2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZSwgIC8vL1xuICAgICAgICAgICAgdHlwZSA9IG51bGw7XG5cbiAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZU5vZGVBbmRUeXBlKHZhcmlhYmxlTm9kZSwgdHlwZSwgY29udGV4dCkge1xuICAgIGxldCB2YXJpYWJsZSA9IG51bGw7XG5cbiAgICBpZiAodmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlID0gdmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWU7ICAvLy9cblxuICAgICAgdmFyaWFibGUgPSBuZXcgVmFyaWFibGUoc3RyaW5nLCBub2RlLCBuYW1lLCB0eXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGNvbnN0IHZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGUgPSB2YXJpYWJsZURlY2xhcmF0aW9uVmFyaWFibGVOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgICB2YXJpYWJsZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHN0cmluZyA9IHZhcmlhYmxlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IHZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgIG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gbmV3IFZhcmlhYmxlKHN0cmluZywgbm9kZSwgbmFtZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGU7XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB0eXBlRnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBmaWxlQ29udGV4dCkge1xuICBjb25zdCB7IFR5cGUgfSA9IGRvbSxcbiAgICAgICAgdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlID0gdmFyaWFibGVEZWNsYXJhdGlvblR5cGVOb2RlUXVlcnkodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUpLFxuICAgICAgICB0eXBlTm9kZSA9IHZhcmlhYmxlRGVjbGFyYXRpb25UeXBlTm9kZSwgLy8vXG4gICAgICAgIGNvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBjb250ZXh0KTtcblxuICByZXR1cm4gdHlwZTtcbn1cbiJdLCJuYW1lcyI6WyJ0ZXJtVmFyaWFibGVOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uVHlwZU5vZGVRdWVyeSIsInZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiVmFyaWFibGUiLCJzdHJpbmciLCJub2RlIiwibmFtZSIsInR5cGUiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0TmFtZSIsImdldFR5cGUiLCJzZXRUeXBlIiwiaXNFcXVhbFRvIiwidmFyaWFibGUiLCJ2YXJpYWJsZVN0cmluZyIsImVxdWFsVG8iLCJtYXRjaE5hbWUiLCJuYW1lTWF0Y2hlcyIsIm1hdGNoVmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lIiwidmFyaWFibGVOYW1lTWF0Y2hlcyIsImlzRWZmZWN0aXZlbHlFcXVhbFRvVGVybSIsInRlcm0iLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsImVmZmVjdGl2ZWx5RXF1YWxUb1Rlcm0iLCJnZW5lcmFsQ29udGV4dEZpbGVQYXRoIiwiZ2V0RmlsZVBhdGgiLCJzcGVjaWZpY0NvbnRleHRGaWxlUGF0aCIsInRlcm1TdHJpbmciLCJ2ZXJpZnkiLCJjb250ZXh0IiwidmVyaWZpZWQiLCJ0cmFjZSIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwiZGVidWciLCJ2ZXJpZnlUeXBlIiwiZmlsZUNvbnRleHQiLCJ0eXBlVmVyaWZpZWQiLCJvYmplY3RUeXBlIiwidHlwZU5hbWUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJ2ZXJpZnlXaGVuRGVjbGFyZWQiLCJ2ZXJpZmllZFdoZW5EZWNsYXJlZCIsInZhcmlhYmxlUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlUHJlc2VudCIsImlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZSIsInVuaWZ5VGVybSIsInN1YnN0aXR1dGlvbnMiLCJ0ZXJtVW5pZmllZCIsInN1YnN0aXR1dGlvblByZXNlbnQiLCJpc1N1YnN0aXR1dGlvblByZXNlbnRCeVZhcmlhYmxlIiwic3Vic3RpdHV0aW9uIiwiZmluZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGUiLCJzdWJzdGl0dXRpb25UZXJtRXF1YWxUb1Rlcm0iLCJpc1Rlcm1FcXVhbFRvIiwidGVybVN1YnN0aXR1dGlvbiIsIlRlcm1TdWJzdGl0dXRpb24iLCJmcm9tVGVybkFuZFZhcmlhYmxlIiwiYWRkU3Vic3RpdHV0aW9uIiwidG9KU09OIiwidHlwZUpTT04iLCJ0eXBlVG9UeXBlSlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImxvY2FsQ29udGV4dCIsIkxvY2FsQ29udGV4dCIsImZyb21GaWxlQ29udGV4dCIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZUZyb21WYXJpYWJsZVN0cmluZyIsInZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUiLCJ0eXBlRnJvbUpTT04iLCJmcm9tVGVybU5vZGUiLCJ0ZXJtTm9kZSIsInRlcm1WYXJpYWJsZU5vZGUiLCJub2RlQXNTdHJpbmciLCJmcm9tVmFyaWFibGVOb2RlIiwiZnJvbVZhcmlhYmxlTm9kZUFuZFR5cGUiLCJmcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25WYXJpYWJsZU5vZGUiLCJ0eXBlRnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiVHlwZSIsImRvbSIsInZhcmlhYmxlRGVjbGFyYXRpb25UeXBlTm9kZSIsInR5cGVOb2RlIiwiZnJvbVR5cGVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFpQkE7OztlQUFBOzs7MkRBZmdCOzREQUNTOzJEQUNJO3FCQUVIO29CQUNDO29CQUVrQjtvQkFDQTt3QkFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0MsSUFBTUEsd0JBQXdCQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUNsQ0MsbUNBQW1DRCxJQUFBQSxnQkFBUyxFQUFDLDhCQUM3Q0UsdUNBQXVDRixJQUFBQSxnQkFBUyxFQUFDO0lBRXZELFdBQWVHLElBQUFBLGdCQUFXLDZCQUFDO2FBQU1DLFNBQ25CQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxJQUFJO2dDQURMSjtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7Ozs7WUFHZEMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixNQUFNO1lBQ3BCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixJQUFJO1lBQ2xCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixJQUFJO1lBQ2xCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixJQUFJO1lBQ2xCOzs7WUFFQUssS0FBQUE7bUJBQUFBLFNBQUFBLFFBQVFMLElBQUk7Z0JBQ1YsSUFBSSxD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
|
package/package.json
CHANGED
package/src/context/file.js
CHANGED
|
@@ -622,9 +622,9 @@ export default class FileContext {
|
|
|
622
622
|
findLabelByMetavariable(metavariable) {
|
|
623
623
|
const labels = this.getLabels(),
|
|
624
624
|
label = labels.find((label) => {
|
|
625
|
-
const
|
|
625
|
+
const metavariableEqualToLabelMetavariable = label.isMetavariableEqualTo(metavariable);
|
|
626
626
|
|
|
627
|
-
if (
|
|
627
|
+
if (metavariableEqualToLabelMetavariable) {
|
|
628
628
|
return true;
|
|
629
629
|
}
|
|
630
630
|
}) || null;
|
package/src/dom/declaration.js
CHANGED
|
@@ -39,10 +39,10 @@ export default domAssigned(class Declaration {
|
|
|
39
39
|
|
|
40
40
|
const statement = substitution.getStatement(),
|
|
41
41
|
metavariable = substitution.getMetavariable(),
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
statementEqualToStatement = this.statement.isEqualTo(statement),
|
|
43
|
+
referenceMetavariableEqualToMetavariable = this.reference.isMetavariableEqualTo(metavariable);
|
|
44
44
|
|
|
45
|
-
substitutionMatches = (
|
|
45
|
+
substitutionMatches = (referenceMetavariableEqualToMetavariable && statementEqualToStatement);
|
|
46
46
|
|
|
47
47
|
if (substitutionMatches) {
|
|
48
48
|
context.debug(`...matched the '${declarationString}' substitution with the '${substitutionString}' declaration.`);
|
package/src/dom/label.js
CHANGED
|
@@ -36,17 +36,17 @@ export default domAssigned(class Label {
|
|
|
36
36
|
|
|
37
37
|
matchReference(reference) {
|
|
38
38
|
const metavariable = reference.getMetavariable(),
|
|
39
|
-
|
|
40
|
-
referenceMatches =
|
|
39
|
+
metavariableEqualToMetavariable = this.isMetavariableEqualTo(metavariable),
|
|
40
|
+
referenceMatches = metavariableEqualToMetavariable; ///
|
|
41
41
|
|
|
42
42
|
return referenceMatches;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
45
|
+
isMetavariableEqualTo(metavariable) {
|
|
46
|
+
const equalTo = this.metavariable.isEqualTo(metavariable),
|
|
47
|
+
metavariableEqualTo = equalTo; ///
|
|
48
48
|
|
|
49
|
-
return
|
|
49
|
+
return metavariableEqualTo;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
matchMetavariableName(metavariableName) { return this.metavariable.matchMetavariableName(metavariableName); }
|
package/src/dom/metavariable.js
CHANGED
|
@@ -79,14 +79,6 @@ export default domAssigned(class Metavariable {
|
|
|
79
79
|
return equalTo;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
match(metavariable) {
|
|
83
|
-
const metavariableNode = metavariable.getNode(),
|
|
84
|
-
metavariableNodeMatchesNode = this.node.match(metavariableNode),
|
|
85
|
-
matches = metavariableNodeMatchesNode; ///
|
|
86
|
-
|
|
87
|
-
return matches;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
82
|
matchSubstitution(substitution, context) {
|
|
91
83
|
let substitutionMatched = false;
|
|
92
84
|
|
package/src/dom/reference.js
CHANGED
|
@@ -39,11 +39,11 @@ export default domAssigned(class Reference {
|
|
|
39
39
|
return metavariableNode;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
42
|
+
isMetavariableEqualTo(metavariable) {
|
|
43
|
+
const equalTo = this.metavariable.isEqualTo(metavariable),
|
|
44
|
+
metavariableEqualTo = equalTo; ///
|
|
45
45
|
|
|
46
|
-
return
|
|
46
|
+
return metavariableEqualTo;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
matchMetavariableName(metavariableName) { return this.metavariable.matchMetavariableName(metavariableName); }
|
package/src/dom/statement.js
CHANGED
|
@@ -105,14 +105,6 @@ export default domAssigned(class Statement {
|
|
|
105
105
|
return frameContained;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
match(statement) {
|
|
109
|
-
const statementNode = statement.getNode(),
|
|
110
|
-
statementNodeMatchesNode = this.node.match(statementNode),
|
|
111
|
-
matches = statementNodeMatchesNode; ///
|
|
112
|
-
|
|
113
|
-
return matches;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
108
|
verify(assignments, stated, context) {
|
|
117
109
|
let verified;
|
|
118
110
|
|
package/src/dom/variable.js
CHANGED
|
@@ -43,6 +43,13 @@ export default domAssigned(class Variable {
|
|
|
43
43
|
this.type = type;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
isEqualTo(variable) {
|
|
47
|
+
const variableString = variable.getString(),
|
|
48
|
+
equalTo = (variableString === this.string);
|
|
49
|
+
|
|
50
|
+
return equalTo;
|
|
51
|
+
}
|
|
52
|
+
|
|
46
53
|
matchName(name) {
|
|
47
54
|
const nameMatches = (name === this.name);
|
|
48
55
|
|
|
@@ -55,13 +62,6 @@ export default domAssigned(class Variable {
|
|
|
55
62
|
return variableNameMatches;
|
|
56
63
|
}
|
|
57
64
|
|
|
58
|
-
isEqualTo(variable) {
|
|
59
|
-
const variableString = variable.getString(),
|
|
60
|
-
equalTo = (variableString === this.string);
|
|
61
|
-
|
|
62
|
-
return equalTo;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
65
|
isEffectivelyEqualToTerm(term, generalContext, specificContext) {
|
|
66
66
|
let effectivelyEqualToTerm = false;
|
|
67
67
|
|