occam-languages 2.2.36 → 2.2.37
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/pass/continuation.js +2 -2
- package/lib/pass/continuationZip.js +2 -2
- package/lib/utilities/continuation.js +71 -71
- package/lib/utilities/verification.js +2 -2
- package/package.json +1 -1
- package/src/pass/continuation.js +2 -2
- package/src/pass/continuationZip.js +2 -2
- package/src/utilities/continuation.js +34 -34
- package/src/utilities/verification.js +2 -2
- package/lib/utilities/asynchronous.js +0 -66
- package/src/utilities/asynchronous.js +0 -62
package/lib/pass/continuation.js
CHANGED
|
@@ -17,7 +17,7 @@ class ContinuationPass {
|
|
|
17
17
|
}
|
|
18
18
|
descend(childNodes, ...remainingArguments) {
|
|
19
19
|
const continuation = remainingArguments.pop();
|
|
20
|
-
return (0, _continuation.
|
|
20
|
+
return (0, _continuation.asynchronousEvery)(childNodes, (childNode, ...remainingArguments)=>{
|
|
21
21
|
const continuation = remainingArguments.pop(), node = childNode; ///
|
|
22
22
|
return this.visitNode(node, ...remainingArguments, continuation);
|
|
23
23
|
}, ...remainingArguments, continuation);
|
|
@@ -65,4 +65,4 @@ class ContinuationPass {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzRXZlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uUGFzcyB7XG4gIHJ1bihub2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdE5vZGUobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgZGVzY2VuZChjaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gYXN5bmNocm9ub3VzRXZlcnkoY2hpbGROb2RlcywgKGNoaWxkTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgICBub2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXROb2RlKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH1cblxuICB2aXNpdE5vZGUobm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAobm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgICByZXR1cm4gdGhpcy52aXNpdFRlcm1pbmFsTm9kZSh0ZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gdGhpcy52aXNpdE5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgfVxuXG4gIHZpc2l0VGVybWluYWxOb2RlKHRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgdmlzaXRlZCA9IHRydWUsXG4gICAgICAgICAgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICB9XG5cbiAgdmlzaXROb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBsZXQgeyBtYXBzIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgbWFwcyA9IFsgLy8vXG4gICAgICAuLi5tYXBzLFxuICAgICAge1xuICAgICAgICBub2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBydW46IChub25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKTtcblxuICAgICAgICAgIHJldHVybiB0aGlzLmRlc2NlbmQoY2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcblxuICAgIGxldCBub2RlO1xuXG4gICAgY29uc3QgbWFwID0gbWFwcy5maW5kKChtYXApID0+IHtcbiAgICAgIGNvbnN0IHsgbm9kZVF1ZXJ5IH0gPSBtYXA7XG5cbiAgICAgIG5vZGUgPSBub2RlUXVlcnkobm9uVGVybWluYWxOb2RlKTtcblxuICAgICAgaWYgKG5vZGUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIGlmIChtYXAgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZpc2l0ZWQgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbih2aXNpdGVkLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcnVuIH0gPSBtYXA7XG5cbiAgICByZXR1cm4gcnVuKG5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbnRpbnVhdGlvblBhc3MiLCJydW4iLCJub2RlIiwicmVtYWluaW5nQXJndW1lbnRzIiwiY29udGludWF0aW9uIiwicG9wIiwidmlzaXROb2RlIiwiZGVzY2VuZCIsImNoaWxkTm9kZXMiLCJhc3luY2hyb25vdXNFdmVyeSIsImNoaWxkTm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInZpc2l0VGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwidmlzaXROb25UZXJtaW5hbE5vZGUiLCJ2aXNpdGVkIiwibWFwcyIsIm5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5IiwiZ2V0Q2hpbGROb2RlcyIsIm1hcCIsImZpbmQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUtBOzs7ZUFBcUJBOzs7OEJBSGE7c0JBQ0c7QUFFdEIsTUFBTUE7SUFDbkJDLElBQUlDLElBQUksRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUMvQixNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUc7UUFFM0MsT0FBTyxJQUFJLENBQUNDLFNBQVMsQ0FBQ0osU0FBU0Msb0JBQW9CQztJQUNyRDtJQUVBRyxRQUFRQyxVQUFVLEVBQUUsR0FBR0wsa0JBQWtCLEVBQUU7UUFDekMsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDLE9BQU9JLElBQUFBLCtCQUFpQixFQUFDRCxZQUFZLENBQUNFLFdBQVcsR0FBR1A7WUFDbEQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDSCxPQUFPUSxXQUFXLEdBQUc7WUFFM0IsT0FBTyxJQUFJLENBQUNKLFNBQVMsQ0FBQ0osU0FBU0Msb0JBQW9CQztRQUNyRCxNQUFNRCxvQkFBb0JDO0lBQzVCO0lBRUFFLFVBQVVKLElBQUksRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUNyQyxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUcsSUFDckNNLG1CQUFtQlQsS0FBS1UsY0FBYztRQUU1QyxJQUFJRCxrQkFBa0I7WUFDcEIsTUFBTUUsZUFBZVgsTUFBTyxHQUFHO1lBRS9CLE9BQU8sSUFBSSxDQUFDWSxpQkFBaUIsQ0FBQ0QsaUJBQWlCVixvQkFBb0JDO1FBQ3JFO1FBRUEsTUFBTVcsa0JBQWtCYixNQUFPLEdBQUc7UUFFbEMsT0FBTyxJQUFJLENBQUNjLG9CQUFvQixDQUFDRCxvQkFBb0JaLG9CQUFvQkM7SUFDM0U7SUFFQVUsa0JBQWtCRCxZQUFZLEVBQUUsR0FBR1Ysa0JBQWtCLEVBQUU7UUFDckQsTUFBTWMsVUFBVSxNQUNWYixlQUFlRCxtQkFBbUJFLEdBQUc7UUFFM0MsT0FBT0QsYUFBYWEsWUFBWWQ7SUFDbEM7SUFFQWEscUJBQXFCRCxlQUFlLEVBQUUsR0FBR1osa0JBQWtCLEVBQUU7UUFDM0QsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDLElBQUksRUFBRWEsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVc7UUFFL0JBLE9BQU87ZUFDRkE7WUFDSDtnQkFDRUMsV0FBV0MsMEJBQW9CO2dCQUMvQm5CLEtBQUssQ0FBQ2MsaUJBQWlCLEdBQUdaO29CQUN4QixNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUcsSUFDckNHLGFBQWFPLGdCQUFnQk0sYUFBYTtvQkFFaEQsT0FBTyxJQUFJLENBQUNkLE9BQU8sQ0FBQ0MsZUFBZUwsb0JBQW9CQztnQkFDekQ7WUFDRjtTQUNEO1FBRUQsSUFBSUY7UUFFSixNQUFNb0IsTUFBTUosS0FBS0ssSUFBSSxDQUFDLENBQUNEO1lBQ3JCLE1BQU0sRUFBRUgsU0FBUyxFQUFFLEdBQUdHO1lBRXRCcEIsT0FBT2lCLFVBQVVKO1lBRWpCLElBQUliLFNBQVMsTUFBTTtnQkFDakIsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVOLElBQUlvQixRQUFRLE1BQU07WUFDaEIsTUFBTUwsVUFBVTtZQUVoQixPQUFPYixhQUFhYSxZQUFZZDtRQUNsQztRQUVBLE1BQU0sRUFBRUYsR0FBRyxFQUFFLEdBQUdxQjtRQUVoQixPQUFPckIsSUFBSUMsU0FBU0Msb0JBQW9CQztJQUMxQztBQUNGIn0=
|
|
@@ -21,7 +21,7 @@ class ContinuationZipPass {
|
|
|
21
21
|
const descended = false;
|
|
22
22
|
return continuation(descended, ...remainingArguments);
|
|
23
23
|
}
|
|
24
|
-
return (0, _continuation.
|
|
24
|
+
return (0, _continuation.asynchronousMatch)(generalChildNodes, specificChildNodes, (generalChildNode, specificChildNode, ...remainingArguments)=>{
|
|
25
25
|
const continuation = remainingArguments.pop(), generalNode = generalChildNode, specificNode = specificChildNode; ///
|
|
26
26
|
return this.visitNode(generalNode, specificNode, ...remainingArguments, continuation);
|
|
27
27
|
}, ...remainingArguments, continuation);
|
|
@@ -80,4 +80,4 @@ class ContinuationZipPass {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvblppcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbWF0Y2ggfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnksIGFyZUNoaWxkTm9kZXNDb25ncnVlbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uWmlwUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0NvbmdydWVudCA9IGFyZUNoaWxkTm9kZXNDb25ncnVlbnQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2Rlcyk7XG5cbiAgICBpZiAoIWNoaWxkTm9kZXNDb25ncnVlbnQpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRlZCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGRlc2NlbmRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2goZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2RlcywgKGdlbmVyYWxDaGlsZE5vZGUsIHNwZWNpZmljQ2hpbGROb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbENoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZTsgLy8vXG5cbiAgICAgIHJldHVybiB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gICAgfSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgdmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuICAgIFxuICAgIGlmIChnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSAmJiBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxUZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGU7ICAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXRUZXJtaW5hbE5vZGUoZ2VuZXJhbFRlcm1pbmFsTm9kZSwgc3BlY2lmaWNUZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZpc2l0ZWQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gIH1cblxuICB2aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7IC8vL1xuICAgIGNvbnN0IHZpc2l0ZWQgPSB0cnVlLFxuICAgICAgICAgIGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgfVxuXG4gIHZpc2l0Tm9uVGVybWluYWxOb2RlKGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBsZXQgeyBtYXBzIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgbWFwcyA9IFsgLy8vXG4gICAgICAuLi5tYXBzLFxuICAgICAge1xuICAgICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBydW46IChnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgICAgIGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSwgLy8vXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gICAgICAgICAgaWYgKGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSAhPT0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHZpc2l0ZWQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgZ2VuZXJhbENoaWxkTm9kZXMgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGVzID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzOyAvLy9cblxuICAgICAgICAgIHJldHVybiB0aGlzLmRlc2NlbmQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcblxuICAgIGxldCBnZW5lcmFsTm9kZSxcbiAgICAgICAgc3BlY2lmaWNOb2RlO1xuXG4gICAgY29uc3QgbWFwID0gbWFwcy5maW5kKChtYXApID0+IHtcbiAgICAgIGNvbnN0IHsgZ2VuZXJhbE5vZGVRdWVyeSwgc3BlY2lmaWNOb2RlUXVlcnkgfSA9IG1hcDtcblxuICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsTm9kZVF1ZXJ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUpO1xuICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNOb2RlUXVlcnkoc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBpZiAoKGdlbmVyYWxOb2RlICE9PSBudWxsKSAmJiAoc3BlY2lmaWNOb2RlICE9PSBudWxsKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgaWYgKG1hcCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHZpc2l0ZWQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBydW4gfSA9IG1hcDtcblxuICAgIHJldHVybiBydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG59XG4iXSwibmFtZXMiOlsiQ29udGludWF0aW9uWmlwUGFzcyIsInJ1biIsImdlbmVyYWxOb2RlIiwic3BlY2lmaWNOb2RlIiwicmVtYWluaW5nQXJndW1lbnRzIiwiY29udGludWF0aW9uIiwicG9wIiwidmlzaXROb2RlIiwiZGVzY2VuZCIsImdlbmVyYWxDaGlsZE5vZGVzIiwic3BlY2lmaWNDaGlsZE5vZGVzIiwiY2hpbGROb2Rlc0NvbmdydWVudCIsImFyZUNoaWxkTm9kZXNDb25ncnVlbnQiLCJkZXNjZW5kZWQiLCJtYXRjaCIsImdlbmVyYWxDaGlsZE5vZGUiLCJzcGVjaWZpY0NoaWxkTm9kZSIsImdlbmVyYWxOb2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlIiwiZ2VuZXJhbFRlcm1pbmFsTm9kZSIsInNwZWNpZmljVGVybWluYWxOb2RlIiwidmlzaXRUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGUiLCJ2aXNpdE5vblRlcm1pbmFsTm9kZSIsInZpc2l0ZWQiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5Iiwic3BlY2lmaWNOb2RlUXVlcnkiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJtYXAiLCJmaW5kIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXFCQTs7OzhCQUhDO3NCQUN1QztBQUU5QyxNQUFNQTtJQUNuQkMsSUFBSUMsV0FBVyxFQUFFQyxZQUFZLEVBQUUsR0FBR0Msa0JBQWtCLEVBQUU7UUFDcEQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDLE9BQU8sSUFBSSxDQUFDQyxTQUFTLENBQUNMLGFBQWFDLGlCQUFpQkMsb0JBQW9CQztJQUMxRTtJQUVBRyxRQUFRQyxpQkFBaUIsRUFBRUMsa0JBQWtCLEVBQUUsR0FBR04sa0JBQWtCLEVBQUU7UUFDcEUsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDSyxzQkFBc0JDLElBQUFBLDRCQUFzQixFQUFDSCxtQkFBbUJDO1FBRXRFLElBQUksQ0FBQ0MscUJBQXFCO1lBQ3hCLE1BQU1FLFlBQVk7WUFFbEIsT0FBT1IsYUFBYVEsY0FBY1Q7UUFDcEM7UUFFQSxPQUFPVSxJQUFBQSxtQkFBSyxFQUFDTCxtQkFBbUJDLG9CQUFvQixDQUFDSyxrQkFBa0JDLG1CQUFtQixHQUFHWjtZQUMzRixNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUcsSUFDckNKLGNBQWNhLGtCQUNkWixlQUFlYSxtQkFBbUIsR0FBRztZQUUzQyxPQUFPLElBQUksQ0FBQ1QsU0FBUyxDQUFDTCxhQUFhQyxpQkFBaUJDLG9CQUFvQkM7UUFDMUUsTUFBTUQsb0JBQW9CQztJQUM1QjtJQUVBRSxVQUFVTCxXQUFXLEVBQUVDLFlBQVksRUFBRSxHQUFHQyxrQkFBa0IsRUFBRTtRQUMxRCxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUcsSUFDckNXLDBCQUEwQmYsWUFBWWdCLGNBQWMsSUFDcERDLDJCQUEyQmhCLGFBQWFlLGNBQWMsSUFDdERFLDZCQUE2QmxCLFlBQVltQixpQkFBaUIsSUFDMURDLDhCQUE4Qm5CLGFBQWFrQixpQkFBaUI7UUFFbEUsSUFBSUosMkJBQTJCRSwwQkFBMEI7WUFDdkQsTUFBTUksc0JBQXNCckIsYUFDdEJzQix1QkFBdUJyQixjQUFlLEdBQUc7WUFFL0MsT0FBTyxJQUFJLENBQUNzQixpQkFBaUIsQ0FBQ0YscUJBQXFCQyx5QkFBeUJwQixvQkFBb0JDO1FBQ2xHO1FBRUEsSUFBSWUsOEJBQThCRSw2QkFBNkI7WUFDN0QsTUFBTUkseUJBQXlCeEIsYUFDekJ5QiwwQkFBMEJ4QixjQUFjLEdBQUc7WUFFakQsT0FBTyxJQUFJLENBQUN5QixvQkFBb0IsQ0FBQ0Ysd0JBQXdCQyw0QkFBNEJ2QixvQkFBb0JDO1FBQzNHO1FBRUEsTUFBTXdCLFVBQVU7UUFFaEIsT0FBT3hCLGFBQWF3QixZQUFZekI7SUFDbEM7SUFFQXFCLGtCQUFrQkYsbUJBQW1CLEVBQUVDLG9CQUFvQixFQUFFLEdBQUdwQixrQkFBa0IsRUFBRTtRQUNsRixNQUFNeUIsVUFBVSxNQUNWeEIsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDLE9BQU9ELGFBQWF3QixZQUFZekI7SUFDbEM7SUFFQXdCLHFCQUFxQkYsc0JBQXNCLEVBQUVDLHVCQUF1QixFQUFFLEdBQUd2QixrQkFBa0IsRUFBRTtRQUMzRixNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUc7UUFFM0MsSUFBSSxFQUFFd0IsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVc7UUFFL0JBLE9BQU87ZUFDRkE7WUFDSDtnQkFDRUMsa0JBQWtCQywwQkFBb0I7Z0JBQ3RDQyxtQkFBbUJELDBCQUFvQjtnQkFDdkMvQixLQUFLLENBQUN5Qix3QkFBd0JDLHlCQUF5QixHQUFHdkI7b0JBQ3hELE1BQU1DLGVBQWVELG1CQUFtQkUsR0FBRyxJQUNyQzRCLGlDQUFpQ1IsdUJBQXVCUyxXQUFXLElBQ25FQyxrQ0FBa0NULHdCQUF3QlEsV0FBVyxJQUFJLEdBQUc7b0JBRWxGLElBQUlELG1DQUFtQ0UsaUNBQWlDO3dCQUN0RSxNQUFNUCxVQUFVO3dCQUVoQixPQUFPeEIsYUFBYXdCLFlBQVl6QjtvQkFDbEM7b0JBRUEsTUFBTWlDLG1DQUFtQ1gsdUJBQXVCWSxhQUFhLElBQ3ZFQyxvQ0FBb0NaLHdCQUF3QlcsYUFBYSxJQUN6RTdCLG9CQUFvQjRCLGtDQUNwQjNCLHFCQUFxQjZCLG1DQUFtQyxHQUFHO29CQUVqRSxPQUFPLElBQUksQ0FBQy9CLE9BQU8sQ0FBQ0MsbUJBQW1CQyx1QkFBdUJOLG9CQUFvQkM7Z0JBQ3BGO1lBQ0Y7U0FDRDtRQUVELElBQUlILGFBQ0FDO1FBRUosTUFBTXFDLE1BQU1WLEtBQUtXLElBQUksQ0FBQyxDQUFDRDtZQUNyQixNQUFNLEVBQUVULGdCQUFnQixFQUFFRSxpQkFBaUIsRUFBRSxHQUFHTztZQUVoRHRDLGNBQWM2QixpQkFBaUJMO1lBQy9CdkIsZUFBZThCLGtCQUFrQk47WUFFakMsSUFBSSxBQUFDekIsZ0JBQWdCLFFBQVVDLGlCQUFpQixNQUFPO2dCQUNyRCxPQUFPO1lBQ1Q7UUFDRixNQUFNO1FBRU4sSUFBSXFDLFFBQVEsTUFBTTtZQUNoQixNQUFNWCxVQUFVO1lBRWhCLE9BQU94QixhQUFhd0IsWUFBWXpCO1FBQ2xDO1FBRUEsTUFBTSxFQUFFSCxHQUFHLEVBQUUsR0FBR3VDO1FBRWhCLE9BQU92QyxJQUFJQyxhQUFhQyxpQkFBaUJDLG9CQUFvQkM7SUFDL0Q7QUFDRiJ9
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXNzL2NvbnRpbnVhdGlvblppcC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzTWF0Y2ggfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuaW1wb3J0IHsgbm9uVGVybWluYWxOb2RlUXVlcnksIGFyZUNoaWxkTm9kZXNDb25ncnVlbnQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Bhc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGludWF0aW9uWmlwUGFzcyB7XG4gIHJ1bihnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICByZXR1cm4gdGhpcy52aXNpdE5vZGUoZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgZGVzY2VuZChnZW5lcmFsQ2hpbGROb2Rlcywgc3BlY2lmaWNDaGlsZE5vZGVzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY2hpbGROb2Rlc0NvbmdydWVudCA9IGFyZUNoaWxkTm9kZXNDb25ncnVlbnQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2Rlcyk7XG5cbiAgICBpZiAoIWNoaWxkTm9kZXNDb25ncnVlbnQpIHtcbiAgICAgIGNvbnN0IGRlc2NlbmRlZCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKGRlc2NlbmRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXN5bmNocm9ub3VzTWF0Y2goZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2RlcywgKGdlbmVyYWxDaGlsZE5vZGUsIHNwZWNpZmljQ2hpbGROb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICAgIGdlbmVyYWxOb2RlID0gZ2VuZXJhbENoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICBzcGVjaWZpY05vZGUgPSBzcGVjaWZpY0NoaWxkTm9kZTsgLy8vXG5cbiAgICAgIHJldHVybiB0aGlzLnZpc2l0Tm9kZShnZW5lcmFsTm9kZSwgc3BlY2lmaWNOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gICAgfSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgdmlzaXROb2RlKGdlbmVyYWxOb2RlLCBzcGVjaWZpY05vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICBnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSA9IGdlbmVyYWxOb2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgc3BlY2lmaWNOb2RlVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHNwZWNpZmljTm9kZU5vblRlcm1pbmFsTm9kZSA9IHNwZWNpZmljTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuICAgIFxuICAgIGlmIChnZW5lcmFsTm9kZVRlcm1pbmFsTm9kZSAmJiBzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IGdlbmVyYWxUZXJtaW5hbE5vZGUgPSBnZW5lcmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3BlY2lmaWNUZXJtaW5hbE5vZGUgPSBzcGVjaWZpY05vZGU7ICAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXRUZXJtaW5hbE5vZGUoZ2VuZXJhbFRlcm1pbmFsTm9kZSwgc3BlY2lmaWNUZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAoZ2VuZXJhbE5vZGVOb25UZXJtaW5hbE5vZGUgJiYgc3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBnZW5lcmFsTm9uVGVybWluYWxOb2RlID0gZ2VuZXJhbE5vZGUsICAvLy9cbiAgICAgICAgICAgIHNwZWNpZmljTm9uVGVybWluYWxOb2RlID0gc3BlY2lmaWNOb2RlOyAvLy9cblxuICAgICAgcmV0dXJuIHRoaXMudmlzaXROb25UZXJtaW5hbE5vZGUoZ2VuZXJhbE5vblRlcm1pbmFsTm9kZSwgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGludWF0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB2aXNpdGVkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29udGludWF0aW9uKHZpc2l0ZWQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gIH1cblxuICB2aXNpdFRlcm1pbmFsTm9kZShnZW5lcmFsVGVybWluYWxOb2RlLCBzcGVjaWZpY1Rlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7IC8vL1xuICAgIGNvbnN0IHZpc2l0ZWQgPSB0cnVlLFxuICAgICAgICAgIGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHJldHVybiBjb250aW51YXRpb24odmlzaXRlZCwgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcbiAgfVxuXG4gIHZpc2l0Tm9uVGVybWluYWxOb2RlKGdlbmVyYWxOb25UZXJtaW5hbE5vZGUsIHNwZWNpZmljTm9uVGVybWluYWxOb2RlLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICBsZXQgeyBtYXBzIH0gPSB0aGlzLmNvbnN0cnVjdG9yO1xuXG4gICAgbWFwcyA9IFsgLy8vXG4gICAgICAuLi5tYXBzLFxuICAgICAge1xuICAgICAgICBnZW5lcmFsTm9kZVF1ZXJ5OiBub25UZXJtaW5hbE5vZGVRdWVyeSxcbiAgICAgICAgc3BlY2lmaWNOb2RlUXVlcnk6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICBydW46IChnZW5lcmFsTm9uVGVybWluYWxOb2RlLCBzcGVjaWZpY05vblRlcm1pbmFsTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgICAgICAgIGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IGdlbmVyYWxOb25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSwgLy8vXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IHNwZWNpZmljTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gICAgICAgICAgaWYgKGdlbmVyYWxOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSAhPT0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVSdWxlTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHZpc2l0ZWQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZ2VuZXJhbE5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgICBzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBzcGVjaWZpY05vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgICAgICAgZ2VuZXJhbENoaWxkTm9kZXMgPSBnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgICAgc3BlY2lmaWNDaGlsZE5vZGVzID0gc3BlY2lmaWNOb25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzOyAvLy9cblxuICAgICAgICAgIHJldHVybiB0aGlzLmRlc2NlbmQoZ2VuZXJhbENoaWxkTm9kZXMsIHNwZWNpZmljQ2hpbGROb2RlcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcblxuICAgIGxldCBnZW5lcmFsTm9kZSxcbiAgICAgICAgc3BlY2lmaWNOb2RlO1xuXG4gICAgY29uc3QgbWFwID0gbWFwcy5maW5kKChtYXApID0+IHtcbiAgICAgIGNvbnN0IHsgZ2VuZXJhbE5vZGVRdWVyeSwgc3BlY2lmaWNOb2RlUXVlcnkgfSA9IG1hcDtcblxuICAgICAgZ2VuZXJhbE5vZGUgPSBnZW5lcmFsTm9kZVF1ZXJ5KGdlbmVyYWxOb25UZXJtaW5hbE5vZGUpO1xuICAgICAgc3BlY2lmaWNOb2RlID0gc3BlY2lmaWNOb2RlUXVlcnkoc3BlY2lmaWNOb25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBpZiAoKGdlbmVyYWxOb2RlICE9PSBudWxsKSAmJiAoc3BlY2lmaWNOb2RlICE9PSBudWxsKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgaWYgKG1hcCA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgdmlzaXRlZCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHZpc2l0ZWQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBydW4gfSA9IG1hcDtcblxuICAgIHJldHVybiBydW4oZ2VuZXJhbE5vZGUsIHNwZWNpZmljTm9kZSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250aW51YXRpb24pO1xuICB9XG59XG4iXSwibmFtZXMiOlsiQ29udGludWF0aW9uWmlwUGFzcyIsInJ1biIsImdlbmVyYWxOb2RlIiwic3BlY2lmaWNOb2RlIiwicmVtYWluaW5nQXJndW1lbnRzIiwiY29udGludWF0aW9uIiwicG9wIiwidmlzaXROb2RlIiwiZGVzY2VuZCIsImdlbmVyYWxDaGlsZE5vZGVzIiwic3BlY2lmaWNDaGlsZE5vZGVzIiwiY2hpbGROb2Rlc0NvbmdydWVudCIsImFyZUNoaWxkTm9kZXNDb25ncnVlbnQiLCJkZXNjZW5kZWQiLCJhc3luY2hyb25vdXNNYXRjaCIsImdlbmVyYWxDaGlsZE5vZGUiLCJzcGVjaWZpY0NoaWxkTm9kZSIsImdlbmVyYWxOb2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJzcGVjaWZpY05vZGVUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb2RlTm9uVGVybWluYWxOb2RlIiwiZ2VuZXJhbFRlcm1pbmFsTm9kZSIsInNwZWNpZmljVGVybWluYWxOb2RlIiwidmlzaXRUZXJtaW5hbE5vZGUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlIiwic3BlY2lmaWNOb25UZXJtaW5hbE5vZGUiLCJ2aXNpdE5vblRlcm1pbmFsTm9kZSIsInZpc2l0ZWQiLCJtYXBzIiwiZ2VuZXJhbE5vZGVRdWVyeSIsIm5vblRlcm1pbmFsTm9kZVF1ZXJ5Iiwic3BlY2lmaWNOb2RlUXVlcnkiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsInNwZWNpZmljTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJnZW5lcmFsTm9uVGVybWluYWxOb2RlQ2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJzcGVjaWZpY05vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJtYXAiLCJmaW5kIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXFCQTs7OzhCQUhhO3NCQUMyQjtBQUU5QyxNQUFNQTtJQUNuQkMsSUFBSUMsV0FBVyxFQUFFQyxZQUFZLEVBQUUsR0FBR0Msa0JBQWtCLEVBQUU7UUFDcEQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDLE9BQU8sSUFBSSxDQUFDQyxTQUFTLENBQUNMLGFBQWFDLGlCQUFpQkMsb0JBQW9CQztJQUMxRTtJQUVBRyxRQUFRQyxpQkFBaUIsRUFBRUMsa0JBQWtCLEVBQUUsR0FBR04sa0JBQWtCLEVBQUU7UUFDcEUsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDSyxzQkFBc0JDLElBQUFBLDRCQUFzQixFQUFDSCxtQkFBbUJDO1FBRXRFLElBQUksQ0FBQ0MscUJBQXFCO1lBQ3hCLE1BQU1FLFlBQVk7WUFFbEIsT0FBT1IsYUFBYVEsY0FBY1Q7UUFDcEM7UUFFQSxPQUFPVSxJQUFBQSwrQkFBaUIsRUFBQ0wsbUJBQW1CQyxvQkFBb0IsQ0FBQ0ssa0JBQWtCQyxtQkFBbUIsR0FBR1o7WUFDdkcsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDSixjQUFjYSxrQkFDZFosZUFBZWEsbUJBQW1CLEdBQUc7WUFFM0MsT0FBTyxJQUFJLENBQUNULFNBQVMsQ0FBQ0wsYUFBYUMsaUJBQWlCQyxvQkFBb0JDO1FBQzFFLE1BQU1ELG9CQUFvQkM7SUFDNUI7SUFFQUUsVUFBVUwsV0FBVyxFQUFFQyxZQUFZLEVBQUUsR0FBR0Msa0JBQWtCLEVBQUU7UUFDMUQsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHLElBQ3JDVywwQkFBMEJmLFlBQVlnQixjQUFjLElBQ3BEQywyQkFBMkJoQixhQUFhZSxjQUFjLElBQ3RERSw2QkFBNkJsQixZQUFZbUIsaUJBQWlCLElBQzFEQyw4QkFBOEJuQixhQUFha0IsaUJBQWlCO1FBRWxFLElBQUlKLDJCQUEyQkUsMEJBQTBCO1lBQ3ZELE1BQU1JLHNCQUFzQnJCLGFBQ3RCc0IsdUJBQXVCckIsY0FBZSxHQUFHO1lBRS9DLE9BQU8sSUFBSSxDQUFDc0IsaUJBQWlCLENBQUNGLHFCQUFxQkMseUJBQXlCcEIsb0JBQW9CQztRQUNsRztRQUVBLElBQUllLDhCQUE4QkUsNkJBQTZCO1lBQzdELE1BQU1JLHlCQUF5QnhCLGFBQ3pCeUIsMEJBQTBCeEIsY0FBYyxHQUFHO1lBRWpELE9BQU8sSUFBSSxDQUFDeUIsb0JBQW9CLENBQUNGLHdCQUF3QkMsNEJBQTRCdkIsb0JBQW9CQztRQUMzRztRQUVBLE1BQU13QixVQUFVO1FBRWhCLE9BQU94QixhQUFhd0IsWUFBWXpCO0lBQ2xDO0lBRUFxQixrQkFBa0JGLG1CQUFtQixFQUFFQyxvQkFBb0IsRUFBRSxHQUFHcEIsa0JBQWtCLEVBQUU7UUFDbEYsTUFBTXlCLFVBQVUsTUFDVnhCLGVBQWVELG1CQUFtQkUsR0FBRztRQUUzQyxPQUFPRCxhQUFhd0IsWUFBWXpCO0lBQ2xDO0lBRUF3QixxQkFBcUJGLHNCQUFzQixFQUFFQyx1QkFBdUIsRUFBRSxHQUFHdkIsa0JBQWtCLEVBQUU7UUFDM0YsTUFBTUMsZUFBZUQsbUJBQW1CRSxHQUFHO1FBRTNDLElBQUksRUFBRXdCLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXO1FBRS9CQSxPQUFPO2VBQ0ZBO1lBQ0g7Z0JBQ0VDLGtCQUFrQkMsMEJBQW9CO2dCQUN0Q0MsbUJBQW1CRCwwQkFBb0I7Z0JBQ3ZDL0IsS0FBSyxDQUFDeUIsd0JBQXdCQyx5QkFBeUIsR0FBR3ZCO29CQUN4RCxNQUFNQyxlQUFlRCxtQkFBbUJFLEdBQUcsSUFDckM0QixpQ0FBaUNSLHVCQUF1QlMsV0FBVyxJQUNuRUMsa0NBQWtDVCx3QkFBd0JRLFdBQVcsSUFBSSxHQUFHO29CQUVsRixJQUFJRCxtQ0FBbUNFLGlDQUFpQzt3QkFDdEUsTUFBTVAsVUFBVTt3QkFFaEIsT0FBT3hCLGFBQWF3QixZQUFZekI7b0JBQ2xDO29CQUVBLE1BQU1pQyxtQ0FBbUNYLHVCQUF1QlksYUFBYSxJQUN2RUMsb0NBQW9DWix3QkFBd0JXLGFBQWEsSUFDekU3QixvQkFBb0I0QixrQ0FDcEIzQixxQkFBcUI2QixtQ0FBbUMsR0FBRztvQkFFakUsT0FBTyxJQUFJLENBQUMvQixPQUFPLENBQUNDLG1CQUFtQkMsdUJBQXVCTixvQkFBb0JDO2dCQUNwRjtZQUNGO1NBQ0Q7UUFFRCxJQUFJSCxhQUNBQztRQUVKLE1BQU1xQyxNQUFNVixLQUFLVyxJQUFJLENBQUMsQ0FBQ0Q7WUFDckIsTUFBTSxFQUFFVCxnQkFBZ0IsRUFBRUUsaUJBQWlCLEVBQUUsR0FBR087WUFFaER0QyxjQUFjNkIsaUJBQWlCTDtZQUMvQnZCLGVBQWU4QixrQkFBa0JOO1lBRWpDLElBQUksQUFBQ3pCLGdCQUFnQixRQUFVQyxpQkFBaUIsTUFBTztnQkFDckQsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVOLElBQUlxQyxRQUFRLE1BQU07WUFDaEIsTUFBTVgsVUFBVTtZQUVoQixPQUFPeEIsYUFBYXdCLFlBQVl6QjtRQUNsQztRQUVBLE1BQU0sRUFBRUgsR0FBRyxFQUFFLEdBQUd1QztRQUVoQixPQUFPdkMsSUFBSUMsYUFBYUMsaUJBQWlCQyxvQkFBb0JDO0lBQy9EO0FBQ0YifQ==
|
|
@@ -9,64 +9,64 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
get
|
|
13
|
-
return
|
|
12
|
+
get asynchronousAll () {
|
|
13
|
+
return asynchronousAll;
|
|
14
14
|
},
|
|
15
|
-
get
|
|
16
|
-
return
|
|
15
|
+
get asynchronousBackwardsEvery () {
|
|
16
|
+
return asynchronousBackwardsEvery;
|
|
17
17
|
},
|
|
18
|
-
get
|
|
19
|
-
return
|
|
18
|
+
get asynchronousBackwardsForEach () {
|
|
19
|
+
return asynchronousBackwardsForEach;
|
|
20
20
|
},
|
|
21
|
-
get
|
|
22
|
-
return
|
|
21
|
+
get asynchronousEach () {
|
|
22
|
+
return asynchronousEach;
|
|
23
23
|
},
|
|
24
|
-
get
|
|
25
|
-
return
|
|
24
|
+
get asynchronousEvery () {
|
|
25
|
+
return asynchronousEvery;
|
|
26
26
|
},
|
|
27
|
-
get
|
|
28
|
-
return
|
|
27
|
+
get asynchronousExists () {
|
|
28
|
+
return asynchronousExists;
|
|
29
29
|
},
|
|
30
|
-
get
|
|
31
|
-
return
|
|
30
|
+
get asynchronousExtract () {
|
|
31
|
+
return asynchronousExtract;
|
|
32
32
|
},
|
|
33
|
-
get
|
|
34
|
-
return
|
|
33
|
+
get asynchronousFilter () {
|
|
34
|
+
return asynchronousFilter;
|
|
35
35
|
},
|
|
36
|
-
get
|
|
37
|
-
return
|
|
36
|
+
get asynchronousForEach () {
|
|
37
|
+
return asynchronousForEach;
|
|
38
38
|
},
|
|
39
|
-
get
|
|
40
|
-
return
|
|
39
|
+
get asynchronousForwardsEvery () {
|
|
40
|
+
return asynchronousForwardsEvery;
|
|
41
41
|
},
|
|
42
|
-
get
|
|
43
|
-
return
|
|
42
|
+
get asynchronousForwardsForEach () {
|
|
43
|
+
return asynchronousForwardsForEach;
|
|
44
44
|
},
|
|
45
|
-
get
|
|
46
|
-
return
|
|
45
|
+
get asynchronousMatch () {
|
|
46
|
+
return asynchronousMatch;
|
|
47
47
|
},
|
|
48
|
-
get
|
|
49
|
-
return
|
|
48
|
+
get asynchronousOne () {
|
|
49
|
+
return asynchronousOne;
|
|
50
50
|
},
|
|
51
|
-
get
|
|
52
|
-
return
|
|
51
|
+
get asynchronousPrune () {
|
|
52
|
+
return asynchronousPrune;
|
|
53
53
|
},
|
|
54
|
-
get
|
|
55
|
-
return
|
|
54
|
+
get asynchronousReduce () {
|
|
55
|
+
return asynchronousReduce;
|
|
56
56
|
},
|
|
57
|
-
get
|
|
58
|
-
return
|
|
57
|
+
get asynchronousResolve () {
|
|
58
|
+
return asynchronousResolve;
|
|
59
59
|
},
|
|
60
|
-
get
|
|
61
|
-
return
|
|
60
|
+
get asynchronousSome () {
|
|
61
|
+
return asynchronousSome;
|
|
62
62
|
},
|
|
63
|
-
get
|
|
64
|
-
return
|
|
63
|
+
get default () {
|
|
64
|
+
return _default;
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
const _necessary = require("necessary");
|
|
68
68
|
const { filter: arrayFilter } = _necessary.arrayUtilities;
|
|
69
|
-
function
|
|
69
|
+
function asynchronousOne(array, callback, ...initialArguments) {
|
|
70
70
|
const continuation = initialArguments.pop(), length = array.length;
|
|
71
71
|
let count = 0, index = -1;
|
|
72
72
|
let finalArguments;
|
|
@@ -97,7 +97,7 @@ function one(array, callback, ...initialArguments) {
|
|
|
97
97
|
const callbackArguments = initialArguments; ///
|
|
98
98
|
return next(...callbackArguments);
|
|
99
99
|
}
|
|
100
|
-
function
|
|
100
|
+
function asynchronousSome(array, callback, ...initialArguments) {
|
|
101
101
|
const continuation = initialArguments.pop(), length = array.length;
|
|
102
102
|
let index = -1;
|
|
103
103
|
let finalArguments;
|
|
@@ -121,7 +121,7 @@ function some(array, callback, ...initialArguments) {
|
|
|
121
121
|
const callbackArguments = initialArguments; ///
|
|
122
122
|
return next(...callbackArguments);
|
|
123
123
|
}
|
|
124
|
-
function
|
|
124
|
+
function asynchronousEach(array, callback, ...initialArguments) {
|
|
125
125
|
const continuation = initialArguments.pop(), length = array.length;
|
|
126
126
|
let count = 0, index = -1;
|
|
127
127
|
let finalArguments;
|
|
@@ -146,7 +146,7 @@ function each(array, callback, ...initialArguments) {
|
|
|
146
146
|
const callbackArguments = initialArguments; ///
|
|
147
147
|
return next(...callbackArguments);
|
|
148
148
|
}
|
|
149
|
-
function
|
|
149
|
+
function asynchronousEvery(array, callback, ...initialArguments) {
|
|
150
150
|
const continuation = initialArguments.pop(), length = array.length;
|
|
151
151
|
let index = -1;
|
|
152
152
|
let finalArguments;
|
|
@@ -170,7 +170,7 @@ function every(array, callback, ...initialArguments) {
|
|
|
170
170
|
const callbackArguments = initialArguments; ///
|
|
171
171
|
return next(...callbackArguments);
|
|
172
172
|
}
|
|
173
|
-
function
|
|
173
|
+
function asynchronousReduce(array, initialValue, callback, ...initialArguments) {
|
|
174
174
|
const continuation = initialArguments.pop(), length = array.length;
|
|
175
175
|
let index = -1;
|
|
176
176
|
let finalArguments;
|
|
@@ -189,7 +189,7 @@ function reduce(array, initialValue, callback, ...initialArguments) {
|
|
|
189
189
|
const value = initialValue, callbackArguments = initialArguments; ///
|
|
190
190
|
return next(value, ...callbackArguments);
|
|
191
191
|
}
|
|
192
|
-
function
|
|
192
|
+
function asynchronousForEach(array, callback, ...initialArguments) {
|
|
193
193
|
const continuation = initialArguments.pop(), length = array.length;
|
|
194
194
|
let index = -1;
|
|
195
195
|
let finalArguments;
|
|
@@ -208,7 +208,7 @@ function forEach(array, callback, ...initialArguments) {
|
|
|
208
208
|
const callbackArguments = initialArguments; ///
|
|
209
209
|
return next(...callbackArguments);
|
|
210
210
|
}
|
|
211
|
-
function
|
|
211
|
+
function asynchronousForwardsEvery(array, callback, ...initialArguments) {
|
|
212
212
|
const continuation = initialArguments.pop(), length = array.length;
|
|
213
213
|
let index = -1;
|
|
214
214
|
let finalArguments;
|
|
@@ -232,7 +232,7 @@ function forwardsEvery(array, callback, ...initialArguments) {
|
|
|
232
232
|
const callbackArguments = initialArguments; ///
|
|
233
233
|
return next(...callbackArguments);
|
|
234
234
|
}
|
|
235
|
-
function
|
|
235
|
+
function asynchronousBackwardsEvery(array, callback, ...initialArguments) {
|
|
236
236
|
const continuation = initialArguments.pop(), length = array.length;
|
|
237
237
|
let index = length;
|
|
238
238
|
let finalArguments;
|
|
@@ -256,7 +256,7 @@ function backwardsEvery(array, callback, ...initialArguments) {
|
|
|
256
256
|
const callbackArguments = initialArguments; ///
|
|
257
257
|
return next(...callbackArguments);
|
|
258
258
|
}
|
|
259
|
-
function
|
|
259
|
+
function asynchronousForwardsForEach(array, callback, ...initialArguments) {
|
|
260
260
|
const continuation = initialArguments.pop(), length = array.length;
|
|
261
261
|
let index = -1;
|
|
262
262
|
let finalArguments;
|
|
@@ -275,7 +275,7 @@ function forwardsForEach(array, callback, ...initialArguments) {
|
|
|
275
275
|
const callbackArguments = initialArguments; ///
|
|
276
276
|
return next(...callbackArguments);
|
|
277
277
|
}
|
|
278
|
-
function
|
|
278
|
+
function asynchronousBackwardsForEach(array, callback, ...initialArguments) {
|
|
279
279
|
const continuation = initialArguments.pop(), length = array.length;
|
|
280
280
|
let index = length;
|
|
281
281
|
let finalArguments;
|
|
@@ -294,7 +294,7 @@ function backwardsForEach(array, callback, ...initialArguments) {
|
|
|
294
294
|
const callbackArguments = initialArguments; ///
|
|
295
295
|
return next(...callbackArguments);
|
|
296
296
|
}
|
|
297
|
-
function
|
|
297
|
+
function asynchronousFilter(array, callback, ...initialArguments) {
|
|
298
298
|
const continuation = initialArguments.pop(), length = array.length;
|
|
299
299
|
const deletedElements = [];
|
|
300
300
|
let index = length;
|
|
@@ -319,7 +319,7 @@ function filter(array, callback, ...initialArguments) {
|
|
|
319
319
|
const callbackArguments = initialArguments; ///
|
|
320
320
|
return next(...callbackArguments);
|
|
321
321
|
}
|
|
322
|
-
function
|
|
322
|
+
function asynchronousPrune(array, callback, ...initialArguments) {
|
|
323
323
|
const continuation = initialArguments.pop(), length = array.length;
|
|
324
324
|
let deletedElement;
|
|
325
325
|
let index = length;
|
|
@@ -346,7 +346,7 @@ function prune(array, callback, ...initialArguments) {
|
|
|
346
346
|
const callbackArguments = initialArguments; ///
|
|
347
347
|
return next(...callbackArguments);
|
|
348
348
|
}
|
|
349
|
-
function
|
|
349
|
+
function asynchronousExtract(array, callback, ...initialArguments) {
|
|
350
350
|
const continuation = initialArguments.pop(), length = array.length;
|
|
351
351
|
let deletedElement;
|
|
352
352
|
let index = length;
|
|
@@ -373,7 +373,7 @@ function extract(array, callback, ...initialArguments) {
|
|
|
373
373
|
const callbackArguments = initialArguments; ///
|
|
374
374
|
return next(...callbackArguments);
|
|
375
375
|
}
|
|
376
|
-
function
|
|
376
|
+
function asynchronousMatch(arrayA, arrayB, callback, ...initialArguments) {
|
|
377
377
|
const continuation = initialArguments.pop();
|
|
378
378
|
const arrayALength = arrayA.length, arrayBLength = arrayB.length;
|
|
379
379
|
let finalArguments;
|
|
@@ -404,7 +404,7 @@ function match(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
404
404
|
const callbackArguments = initialArguments; ///
|
|
405
405
|
return next(...callbackArguments);
|
|
406
406
|
}
|
|
407
|
-
function
|
|
407
|
+
function asynchronousResolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
408
408
|
arrayA = [
|
|
409
409
|
...arrayA
|
|
410
410
|
];
|
|
@@ -452,34 +452,34 @@ function resolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
452
452
|
const callbackArguments = initialArguments; ///
|
|
453
453
|
return nextPass(...callbackArguments);
|
|
454
454
|
}
|
|
455
|
-
function
|
|
455
|
+
function asynchronousAll(callbacks, ...initialArguments) {
|
|
456
456
|
return every(callbacks, (callback, ...callbackArguments)=>{
|
|
457
457
|
return callback(...callbackArguments);
|
|
458
458
|
}, ...initialArguments);
|
|
459
459
|
}
|
|
460
|
-
function
|
|
460
|
+
function asynchronousExists(callbacks, ...initialArguments) {
|
|
461
461
|
return some(callbacks, (callback, ...callbackArguments)=>{
|
|
462
462
|
return callback(...callbackArguments);
|
|
463
463
|
}, ...initialArguments);
|
|
464
464
|
}
|
|
465
465
|
const _default = {
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
466
|
+
asynchronousOne,
|
|
467
|
+
asynchronousSome,
|
|
468
|
+
asynchronousEach,
|
|
469
|
+
asynchronousEvery,
|
|
470
|
+
asynchronousReduce,
|
|
471
|
+
asynchronousForEach,
|
|
472
|
+
asynchronousForwardsEvery,
|
|
473
|
+
asynchronousBackwardsEvery,
|
|
474
|
+
asynchronousForwardsForEach,
|
|
475
|
+
asynchronousBackwardsForEach,
|
|
476
|
+
asynchronousFilter,
|
|
477
|
+
asynchronousPrune,
|
|
478
|
+
asynchronousExtract,
|
|
479
|
+
asynchronousMatch,
|
|
480
|
+
asynchronousResolve,
|
|
481
|
+
asynchronousAll,
|
|
482
|
+
asynchronousExists
|
|
483
483
|
};
|
|
484
484
|
|
|
485
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIG9uZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBjb3VudCA9IDAsXG4gICAgICBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gKGNvdW50ID09PSAxKTtcblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsIChzdWNjZXNzLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIGlmIChjb3VudCA9PT0gMSkge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBsZXQgZmluYWxBcmd1bWVudHM7XG5cbiAgZnVuY3Rpb24gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBjb3VudCA9IDAsXG4gICAgICBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gKGNvdW50ID4gMCk7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleCsrO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KHZhbHVlLCAuLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odmFsdWUsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIHZhbHVlLCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHZhbHVlLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQodmFsdWUsIC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlID0gaW5pdGlhbFZhbHVlLCAvLy9cbiAgICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCh2YWx1ZSwgLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcndhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBsZXQgZmluYWxBcmd1bWVudHM7XG5cbiAgZnVuY3Rpb24gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgbGV0IGluZGV4ID0gbGVuZ3RoO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgtLTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3J3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJhY2t3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXIoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBjb25zdCBkZWxldGVkRWxlbWVudHMgPSBbXTtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnRzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHBhc3NlZCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gaW5kZXgsIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgYXJyYXkuc3BsaWNlKHN0YXJ0SW5kZXgsIGRlbGV0ZUNvdW50KTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudHMudW5zaGlmdChkZWxldGVkRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcnVuZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBkZWxldGVkRWxlbWVudDtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAocGFzc2VkLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBpbmRleCwgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMSxcbiAgICAgICAgICAgICAgZGVsZXRlZEVsZW1lbnQgPSBlbGVtZW50OyAvLy9cblxuICAgICAgICBhcnJheS5zcGxpY2Uoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQpO1xuXG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKGRlbGV0ZWRFbGVtZW50LCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBkZWxldGVkRWxlbWVudDtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAocGFzc2VkLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IGluZGV4LCAvLy9cbiAgICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxLFxuICAgICAgICAgICAgICBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIGFycmF5LnNwbGljZShzdGFydEluZGV4LCBkZWxldGVDb3VudCk7XG5cbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaChhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICBjb25zdCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBmaW5hbEFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH1cblxuICBjb25zdCBsZW5ndGggPSBhcnJheUFMZW5ndGg7ICAvLy9cblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gdHJ1ZTtcblxuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XSxcbiAgICAgICAgICBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0UGFzcyguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBjb25zdCBsZW5ndGggPSBhcnJheUEubGVuZ3RoOyAvLy9cblxuICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4ID0gLTE7XG5cbiAgICBmdW5jdGlvbiBuZXh0RWxlbWVudCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJyYXlGaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICAgICAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgICAgICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV4dFBhc3MoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZWxlbWVudEEgPSBhcnJheUFbaW5kZXhdO1xuXG4gICAgICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50QSwgLi4uY2FsbGJhY2tBcmd1bWVudHMsIChwYXNzZWQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV4dEVsZW1lbnQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dEVsZW1lbnQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dFBhc3MoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsKGNhbGxiYWNrcywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICByZXR1cm4gZXZlcnkoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgfSwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGlzdHMoY2FsbGJhY2tzLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIHJldHVybiBzb21lKGNhbGxiYWNrcywgKGNhbGxiYWNrLCAuLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gIH0sIC4uLmluaXRpYWxBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG9uZSxcbiAgc29tZSxcbiAgZWFjaCxcbiAgZXZlcnksXG4gIHJlZHVjZSxcbiAgZm9yRWFjaCxcbiAgZm9yd2FyZHNFdmVyeSxcbiAgYmFja3dhcmRzRXZlcnksXG4gIGZvcndhcmRzRm9yRWFjaCxcbiAgYmFja3dhcmRzRm9yRWFjaCxcbiAgZmlsdGVyLFxuICBwcnVuZSxcbiAgZXh0cmFjdCxcbiAgbWF0Y2gsXG4gIHJlc29sdmUsXG4gIGFsbCxcbiAgZXhpc3RzXG59O1xuIl0sIm5hbWVzIjpbImFsbCIsImJhY2t3YXJkc0V2ZXJ5IiwiYmFja3dhcmRzRm9yRWFjaCIsImVhY2giLCJldmVyeSIsImV4aXN0cyIsImV4dHJhY3QiLCJmaWx0ZXIiLCJmb3JFYWNoIiwiZm9yd2FyZHNFdmVyeSIsImZvcndhcmRzRm9yRWFjaCIsIm1hdGNoIiwib25lIiwicHJ1bmUiLCJyZWR1Y2UiLCJyZXNvbHZlIiwic29tZSIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhcnJheSIsImNhbGxiYWNrIiwiaW5pdGlhbEFyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsImxlbmd0aCIsImNvdW50IiwiaW5kZXgiLCJmaW5hbEFyZ3VtZW50cyIsIm5leHQiLCJjYWxsYmFja0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJlbGVtZW50IiwiaW50ZXJtZWRpYXRlQXJndW1lbnRzIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJkZWxldGVkRWxlbWVudHMiLCJwYXNzZWQiLCJzdGFydEluZGV4IiwiZGVsZXRlQ291bnQiLCJkZWxldGVkRWxlbWVudCIsInNwbGljZSIsInVuc2hpZnQiLCJ1bmRlZmluZWQiLCJhcnJheUEiLCJhcnJheUIiLCJhcnJheUFMZW5ndGgiLCJhcnJheUJMZW5ndGgiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwibmV4dFBhc3MiLCJuZXh0RWxlbWVudCIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsInB1c2giLCJjYWxsYmFja3MiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdvQmdCQTtlQUFBQTs7UUExV0FDO2VBQUFBOztRQXNFQUM7ZUFBQUE7O1FBZ1RoQjtlQUFBOztRQTdpQmdCQztlQUFBQTs7UUEwQ0FDO2VBQUFBOztRQTZmQUM7ZUFBQUE7O1FBakxBQztlQUFBQTs7UUExRkFDO2VBQUFBOztRQTNLQUM7ZUFBQUE7O1FBK0JBQztlQUFBQTs7UUE4RUFDO2VBQUFBOztRQXVNQUM7ZUFBQUE7O1FBOWZBQztlQUFBQTs7UUFnYUFDO2VBQUFBOztRQXRQQUM7ZUFBQUE7O1FBd1lBQztlQUFBQTs7UUFoZ0JBQztlQUFBQTs7OzJCQXREZTtBQUUvQixNQUFNLEVBQUVULFFBQVFVLFdBQVcsRUFBRSxHQUFHQyx5QkFBYztBQUV2QyxTQUFTTixJQUFJTyxLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxnQkFBZ0I7SUFDdEQsTUFBTUMsZUFBZUQsaUJBQWlCRSxHQUFHLElBQ25DQyxTQUFTTCxNQUFNSyxNQUFNO0lBRTNCLElBQUlDLFFBQVEsR0FDUkMsUUFBUSxDQUFDO0lBRWIsSUFBSUM7SUFFSixTQUFTQyxLQUFLLEdBQUdDLGlCQUFpQjtRQUNoQ0g7UUFFQSxJQUFJQSxVQUFVRixRQUFRO1lBQ3BCLE1BQU1NLFVBQVdMLFVBQVU7WUFFM0IsSUFBSSxDQUFDSyxTQUFTO2dCQUNaSCxpQkFBaUJOLGtCQUFrQixHQUFHO1lBQ3hDO1lBRUEsT0FBT0MsYUFBYVEsWUFBWUg7UUFDbEM7UUFFQSxNQUFNSSxVQUFVWixLQUFLLENBQUNPLE1BQU07UUFFNUIsT0FBT04sU0FBU1csWUFBWUYsbUJBQW1CLENBQUNDLFNBQVMsR0FBR0U7WUFDMUQsSUFB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
|
|
485
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c09uZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBjb3VudCA9IDAsXG4gICAgICBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gKGNvdW50ID09PSAxKTtcblxuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsIChzdWNjZXNzLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIGlmIChjb3VudCA9PT0gMSkge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgICBjb3VudCsrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c1NvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBsZXQgZmluYWxBcmd1bWVudHM7XG5cbiAgZnVuY3Rpb24gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICBmaW5hbEFyZ3VtZW50cyA9IGludGVybWVkaWF0ZUFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBjb3VudCA9IDAsXG4gICAgICBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gKGNvdW50ID4gMCk7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleCsrO1xuXG4gICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNSZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KHZhbHVlLCAuLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24odmFsdWUsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIHZhbHVlLCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHZhbHVlLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQodmFsdWUsIC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IHZhbHVlID0gaW5pdGlhbFZhbHVlLCAvLy9cbiAgICAgICAgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCh2YWx1ZSwgLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0ZvcndhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBsZXQgZmluYWxBcmd1bWVudHM7XG5cbiAgZnVuY3Rpb24gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGluZGV4Kys7XG5cbiAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gY2FsbGJhY2tBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAoc3VjY2VzcywgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKHN1Y2Nlc3MsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0JhY2t3YXJkc0V2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgbGV0IGluZGV4ID0gbGVuZ3RoO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgtLTtcblxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbiguLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdCBjYWxsYmFja0FyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudCwgLi4uY2FsbGJhY2tBcmd1bWVudHMsICguLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNGaWx0ZXIoYXJyYXksIGNhbGxiYWNrLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IGluaXRpYWxBcmd1bWVudHMucG9wKCksXG4gICAgICAgIGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBjb25zdCBkZWxldGVkRWxlbWVudHMgPSBbXTtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnRzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50LCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHBhc3NlZCwgLi4uaW50ZXJtZWRpYXRlQXJndW1lbnRzKSA9PiB7XG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gaW5kZXgsIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZWxlbWVudDsgLy8vXG5cbiAgICAgICAgYXJyYXkuc3BsaWNlKHN0YXJ0SW5kZXgsIGRlbGV0ZUNvdW50KTtcblxuICAgICAgICBkZWxldGVkRWxlbWVudHMudW5zaGlmdChkZWxldGVkRWxlbWVudCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNQcnVuZShhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBkZWxldGVkRWxlbWVudDtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAocGFzc2VkLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBpbmRleCwgLy8vXG4gICAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMSxcbiAgICAgICAgICAgICAgZGVsZXRlZEVsZW1lbnQgPSBlbGVtZW50OyAvLy9cblxuICAgICAgICBhcnJheS5zcGxpY2Uoc3RhcnRJbmRleCwgZGVsZXRlQ291bnQpO1xuXG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgICByZXR1cm4gY29udGludWF0aW9uKGRlbGV0ZWRFbGVtZW50LCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzRXh0cmFjdChhcnJheSwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGxldCBkZWxldGVkRWxlbWVudDtcblxuICBsZXQgaW5kZXggPSBsZW5ndGg7XG5cbiAgbGV0IGZpbmFsQXJndW1lbnRzO1xuXG4gIGZ1bmN0aW9uIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpIHtcbiAgICBpbmRleC0tO1xuXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgZGVsZXRlZEVsZW1lbnQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmV0dXJuIGNhbGxiYWNrKGVsZW1lbnQsIC4uLmNhbGxiYWNrQXJndW1lbnRzLCAocGFzc2VkLCAuLi5pbnRlcm1lZGlhdGVBcmd1bWVudHMpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IGluZGV4LCAvLy9cbiAgICAgICAgICAgICAgZGVsZXRlQ291bnQgPSAxLFxuICAgICAgICAgICAgICBkZWxldGVkRWxlbWVudCA9IGVsZW1lbnQ7IC8vL1xuXG4gICAgICAgIGFycmF5LnNwbGljZShzdGFydEluZGV4LCBkZWxldGVDb3VudCk7XG5cbiAgICAgICAgZmluYWxBcmd1bWVudHMgPSBpbnRlcm1lZGlhdGVBcmd1bWVudHM7IC8vL1xuXG4gICAgICAgIHJldHVybiBjb250aW51YXRpb24oZGVsZXRlZEVsZW1lbnQsIC4uLmZpbmFsQXJndW1lbnRzKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNNYXRjaChhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLmluaXRpYWxBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gaW5pdGlhbEFyZ3VtZW50cy5wb3AoKTtcblxuICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBpZiAoYXJyYXlBTGVuZ3RoICE9PSBhcnJheUJMZW5ndGgpIHtcbiAgICBjb25zdCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBmaW5hbEFyZ3VtZW50cyA9IGluaXRpYWxBcmd1bWVudHM7IC8vL1xuXG4gICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gIH1cblxuICBjb25zdCBsZW5ndGggPSBhcnJheUFMZW5ndGg7ICAvLy9cblxuICBsZXQgaW5kZXggPSAtMTtcblxuICBmdW5jdGlvbiBuZXh0KC4uLmNhbGxiYWNrQXJndW1lbnRzKSB7XG4gICAgaW5kZXgrKztcblxuICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gdHJ1ZTtcblxuICAgICAgZmluYWxBcmd1bWVudHMgPSBjYWxsYmFja0FyZ3VtZW50czsgLy8vXG5cbiAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XSxcbiAgICAgICAgICBlbGVtZW50QiA9IGFycmF5QltpbmRleF07XG5cbiAgICByZXR1cm4gY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5jYWxsYmFja0FyZ3VtZW50cywgKHN1Y2Nlc3MsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgIGZpbmFsQXJndW1lbnRzID0gaW5pdGlhbEFyZ3VtZW50czsgLy8vXG5cbiAgICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIG5leHQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dCguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNSZXNvbHZlKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSBpbml0aWFsQXJndW1lbnRzLnBvcCgpO1xuXG4gIGxldCBmaW5hbEFyZ3VtZW50cztcblxuICBmdW5jdGlvbiBuZXh0UGFzcyguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBjb25zdCBsZW5ndGggPSBhcnJheUEubGVuZ3RoOyAvLy9cblxuICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBmaW5hbEFyZ3VtZW50cyA9IGNhbGxiYWNrQXJndW1lbnRzOyAvLy9cblxuICAgICAgcmV0dXJuIGNvbnRpbnVhdGlvbihzdWNjZXNzLCAuLi5maW5hbEFyZ3VtZW50cyk7XG4gICAgfVxuXG4gICAgbGV0IGluZGV4ID0gLTE7XG5cbiAgICBmdW5jdGlvbiBuZXh0RWxlbWVudCguLi5jYWxsYmFja0FyZ3VtZW50cykge1xuICAgICAgaW5kZXgrKztcblxuICAgICAgaWYgKGluZGV4ID09PSBsZW5ndGgpIHtcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgICAgY29uc3QgZmluYWxBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICAgICAgICAgIHJldHVybiBjb250aW51YXRpb24oc3VjY2VzcywgLi4uZmluYWxBcmd1bWVudHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJyYXlGaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICAgICAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgICAgICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV4dFBhc3MoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZWxlbWVudEEgPSBhcnJheUFbaW5kZXhdO1xuXG4gICAgICAgIHJldHVybiBjYWxsYmFjayhlbGVtZW50QSwgLi4uY2FsbGJhY2tBcmd1bWVudHMsIChwYXNzZWQsIC4uLmludGVybWVkaWF0ZUFyZ3VtZW50cykgPT4ge1xuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrQXJndW1lbnRzID0gaW50ZXJtZWRpYXRlQXJndW1lbnRzOyAgLy8vXG5cbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV4dEVsZW1lbnQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dEVsZW1lbnQoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xuICB9XG5cbiAgY29uc3QgY2FsbGJhY2tBcmd1bWVudHMgPSBpbml0aWFsQXJndW1lbnRzOyAvLy9cblxuICByZXR1cm4gbmV4dFBhc3MoLi4uY2FsbGJhY2tBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXN5bmNocm9ub3VzQWxsKGNhbGxiYWNrcywgLi4uaW5pdGlhbEFyZ3VtZW50cykge1xuICByZXR1cm4gZXZlcnkoY2FsbGJhY2tzLCAoY2FsbGJhY2ssIC4uLmNhbGxiYWNrQXJndW1lbnRzKSA9PiB7XG4gICAgcmV0dXJuIGNhbGxiYWNrKC4uLmNhbGxiYWNrQXJndW1lbnRzKTtcbiAgfSwgLi4uaW5pdGlhbEFyZ3VtZW50cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3luY2hyb25vdXNFeGlzdHMoY2FsbGJhY2tzLCAuLi5pbml0aWFsQXJndW1lbnRzKSB7XG4gIHJldHVybiBzb21lKGNhbGxiYWNrcywgKGNhbGxiYWNrLCAuLi5jYWxsYmFja0FyZ3VtZW50cykgPT4ge1xuICAgIHJldHVybiBjYWxsYmFjayguLi5jYWxsYmFja0FyZ3VtZW50cyk7XG4gIH0sIC4uLmluaXRpYWxBcmd1bWVudHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGFzeW5jaHJvbm91c09uZSxcbiAgYXN5bmNocm9ub3VzU29tZSxcbiAgYXN5bmNocm9ub3VzRWFjaCxcbiAgYXN5bmNocm9ub3VzRXZlcnksXG4gIGFzeW5jaHJvbm91c1JlZHVjZSxcbiAgYXN5bmNocm9ub3VzRm9yRWFjaCxcbiAgYXN5bmNocm9ub3VzRm9yd2FyZHNFdmVyeSxcbiAgYXN5bmNocm9ub3VzQmFja3dhcmRzRXZlcnksXG4gIGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCxcbiAgYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCxcbiAgYXN5bmNocm9ub3VzRmlsdGVyLFxuICBhc3luY2hyb25vdXNQcnVuZSxcbiAgYXN5bmNocm9ub3VzRXh0cmFjdCxcbiAgYXN5bmNocm9ub3VzTWF0Y2gsXG4gIGFzeW5jaHJvbm91c1Jlc29sdmUsXG4gIGFzeW5jaHJvbm91c0FsbCxcbiAgYXN5bmNocm9ub3VzRXhpc3RzXG59O1xuIl0sIm5hbWVzIjpbImFzeW5jaHJvbm91c0FsbCIsImFzeW5jaHJvbm91c0JhY2t3YXJkc0V2ZXJ5IiwiYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c0VhY2giLCJhc3luY2hyb25vdXNFdmVyeSIsImFzeW5jaHJvbm91c0V4aXN0cyIsImFzeW5jaHJvbm91c0V4dHJhY3QiLCJhc3luY2hyb25vdXNGaWx0ZXIiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwiYXN5bmNocm9ub3VzRm9yd2FyZHNFdmVyeSIsImFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c01hdGNoIiwiYXN5bmNocm9ub3VzT25lIiwiYXN5bmNocm9ub3VzUHJ1bmUiLCJhc3luY2hyb25vdXNSZWR1Y2UiLCJhc3luY2hyb25vdXNSZXNvbHZlIiwiYXN5bmNocm9ub3VzU29tZSIsImZpbHRlciIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhcnJheSIsImNhbGxiYWNrIiwiaW5pdGlhbEFyZ3VtZW50cyIsImNvbnRpbnVhdGlvbiIsInBvcCIsImxlbmd0aCIsImNvdW50IiwiaW5kZXgiLCJmaW5hbEFyZ3VtZW50cyIsIm5leHQiLCJjYWxsYmFja0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJlbGVtZW50IiwiaW50ZXJtZWRpYXRlQXJndW1lbnRzIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJkZWxldGVkRWxlbWVudHMiLCJwYXNzZWQiLCJzdGFydEluZGV4IiwiZGVsZXRlQ291bnQiLCJkZWxldGVkRWxlbWVudCIsInNwbGljZSIsInVuc2hpZnQiLCJ1bmRlZmluZWQiLCJhcnJheUEiLCJhcnJheUIiLCJhcnJheUFMZW5ndGgiLCJhcnJheUJMZW5ndGgiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwibmV4dFBhc3MiLCJuZXh0RWxlbWVudCIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsInB1c2giLCJjYWxsYmFja3MiLCJldmVyeSIsInNvbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdvQmdCQTtlQUFBQTs7UUExV0FDO2VBQUFBOztRQXNFQUM7ZUFBQUE7O1FBN1BBQztlQUFBQTs7UUEwQ0FDO2VBQUFBOztRQTZmQUM7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
|
|
@@ -44,7 +44,7 @@ function initialiseReleaseContexts(context) {
|
|
|
44
44
|
}
|
|
45
45
|
function verifyReleaseContexts(context, contiunation) {
|
|
46
46
|
const { releaseContexts } = context;
|
|
47
|
-
return (0, _continuation.
|
|
47
|
+
return (0, _continuation.asynchronousEvery)(releaseContexts, verifyReleaseContext, context, contiunation);
|
|
48
48
|
}
|
|
49
49
|
const _default = {
|
|
50
50
|
createReleaseContexts,
|
|
@@ -199,4 +199,4 @@ function checkProjectDependencyOfPackage(releaseContext, dependentReleased, depe
|
|
|
199
199
|
return projectDependencyOfPackage;
|
|
200
200
|
}
|
|
201
201
|
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmVyaWZpY2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBEZXBlbmRlbmN5IH0gZnJvbSBcIm9jY2FtLW1vZGVsXCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgZXZlcnkgIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250aW51YXRpb25cIjtcbmltcG9ydCB7IGFzeW5jRXZlcnkgIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hc3luY2hyb25vdXNcIjtcbmltcG9ydCB7IFNJTkdMRV9TUEFDRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBsYXN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5TmFtZSwgY29udGV4dCkge1xuICBsZXQgcmVsZWFzZUNvbnRleHRzQ3JlYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgIC8vL1xuICAgICAgICBkZXBlbmRlbmN5ID0gRGVwZW5kZW5jeS5mcm9tTmFtZShuYW1lKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZXMgPSBbXSxcbiAgICAgICAgZGVwZW5kZW50UmVsZWFzZWQgPSBmYWxzZSxcbiAgICAgICAgcmVsZWFzZUNvbnRleHRDcmVhdGVkID0gYXdhaXQgY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVudFJlbGVhc2VkLCBjb250ZXh0KTtcblxuICBpZiAocmVsZWFzZUNvbnRleHRDcmVhdGVkKSB7XG4gICAgcmVsZWFzZUNvbnRleHRzQ3JlYXRlZCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRzQ3JlYXRlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dHMoY29udGV4dCkge1xuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0cyB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQocmVsZWFzZUNvbnRleHQsIGNvbnRleHQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVJlbGVhc2VDb250ZXh0cyhjb250ZXh0LCBjb250aXVuYXRpb24pIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dHMgfSA9IGNvbnRleHQ7XG5cbiAgcmV0dXJuIGV2ZXJ5KHJlbGVhc2VDb250ZXh0cywgdmVyaWZ5UmVsZWFzZUNvbnRleHQsIGNvbnRleHQsIGNvbnRpdW5hdGlvbik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlUmVsZWFzZUNvbnRleHRzLFxuICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHRzLFxuICB2ZXJpZnlSZWxlYXNlQ29udGV4dHNcbn07XG5cbmZ1bmN0aW9uIHZlcmlmeVJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBjb250ZXh0LCBjb250aXVuYXRpb24pIHtcbiAgY29uc3QgcmVsZWFzZWQgPSByZWxlYXNlQ29udGV4dC5pc1JlbGVhc2VkKCksXG4gICAgICAgIHZlcmlmaWVkID0gcmVsZWFzZUNvbnRleHQuaGFzVmVyaWZpZWQoKTtcblxuICBpZiAocmVsZWFzZWQgfHwgdmVyaWZpZWQpIHtcbiAgICBjb25zdCByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gdHJ1ZTtcblxuICAgIHJldHVybiBjb250aXVuYXRpb24ocmVsZWFzZUNvbnRleHRWZXJpZmllcywgY29udGV4dCk7XG4gIH1cblxuICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgbmFtZSA9IHJlbGVhc2VDb250ZXh0LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBuYW1lOyAvLy9cblxuICBsb2cuaW5mbyhgVmVyaWZ5aW5nIHRoZSAnJHtyZWxlYXNlTmFtZX0nIHByb2plY3QuLi5gKTtcblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHQudmVyaWZ5KCh2ZXJpZmllcykgPT4ge1xuICAgIGxldCByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGxvZy5pbmZvKGAuLi52ZXJpZmllZCB0aGUgJyR7cmVsZWFzZU5hbWV9JyBwcm9qZWN0LmApO1xuXG4gICAgICByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGl1bmF0aW9uKHJlbGVhc2VDb250ZXh0VmVyaWZpZXMsIGNvbnRleHQpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVudFJlbGVhc2VkLCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSBmYWxzZTtcblxuICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKTtcblxuICBsZXQgcmVsZWFzZUNvbnRleHQ7XG5cbiAgcmVsZWFzZUNvbnRleHQgPSBmaW5kUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCk7XG5cbiAgY29uc3QgcmVsZWFzZUNvbnRleHRGb3VuZCA9IChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dEZvdW5kKSB7XG4gICAgY29uc3QgZGVwZW5kZW50TmFtZXNMZW5ndGggPSBkZXBlbmRlbnROYW1lcy5sZW5ndGgsXG4gICAgICAgICAgZGVwZW5kZW5jeVN0cmluZyA9IGRlcGVuZGVuY3kuYXNTdHJpbmcoKTtcblxuICAgIGlmIChkZXBlbmRlbnROYW1lc0xlbmd0aCA9PT0gMCkge1xuICAgICAgbG9nLmluZm8oYENyZWF0aW5nIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIHBhY2thZ2UgY29udGV4dC4uLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lOyAgLy8vXG5cbiAgICAgIGxvZy5pbmZvKGBDcmVhdGluZyB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQgZ2l2ZW4gdGhlICcke2RlcGVuZGVudE5hbWV9JyBkZXBlbmRhbnQncyAnJHtkZXBlbmRlbmN5U3RyaW5nfScgZGVwZW5kZW5jeS4uLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSB9ID0gY29udGV4dDtcblxuICAgIHJlbGVhc2VDb250ZXh0ID0gYXdhaXQgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeShkZXBlbmRlbmN5LCBjb250ZXh0KTtcbiAgfVxuXG4gIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0ZWQuIFBlcmhhcHMgdGhlICdtZXRhLmpzb24nIGZpbGUgaXMgbWlzc2luZyBvciBpbnZhbGlkLmApO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHByb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlID0gY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50UmVsZWFzZWQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmICghcHJvamVjdERlcGVuZGVuY3lPZlBhY2thZ2UpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kpIHtcbiAgICAgICAgaWYgKHJlbGVhc2VDb250ZXh0Rm91bmQpIHtcbiAgICAgICAgICByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkID0gYXdhaXQgY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkKSB7XG4gICAgICAgICAgICBhZGRSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFyZWxlYXNlQ29udGV4dEZvdW5kKSB7XG4gICAgICByZWxlYXNlQ29udGV4dENyZWF0ZWQgP1xuICAgICAgICBsb2cuZGVidWcoYC4uLmNyZWF0ZWQgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgcGFja2FnZSBjb250ZXh0LmApIDpcbiAgICAgICAgICBsb2cud2FybmluZyhgLi4udW5hYmxlIHRvIGNyZWF0ZSB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0Q3JlYXRlZDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgbGV0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkO1xuXG4gIGNvbnN0IG5hbWUgPSByZWxlYXNlQ29udGV4dC5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VkID0gcmVsZWFzZUNvbnRleHQuaXNSZWxlYXNlZCgpLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZSA9IG5hbWUsICAvLy9cbiAgICAgICAgZGVwZW5kZW50UmVsZWFzZWQgPSByZWxlYXNlZDsgIC8vL1xuXG4gIGRlcGVuZGVudE5hbWVzID0gWyAuLi5kZXBlbmRlbnROYW1lcywgZGVwZW5kZW50TmFtZSBdOyAgLy8vXG5cbiAgY29uc3QgYXJyYXkgPSBkZXBlbmRlbmNpZXMuZ2V0QXJyYXkoKTtcblxuICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzQ3JlYXRlZCA9IGF3YWl0IGFzeW5jRXZlcnkoYXJyYXksIGFzeW5jIChkZXBlbmRlbmN5KSA9PiB7XG4gICAgY29uc3QgY3ljbGljRGVwZW5kZW5jeVByZXNlbnQgPSBjaGVja0N5Y2xpY0RlcGVuZGVuY3lQcmVzZW50KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmICghY3ljbGljRGVwZW5kZW5jeVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IGF3YWl0IGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBkZXBlbmRlbnRSZWxlYXNlZCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0NyZWF0ZWQ7XG59XG5cbmZ1bmN0aW9uIGFkZFJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRzIH0gPSBjb250ZXh0O1xuXG4gIHJlbGVhc2VDb250ZXh0cy5wdXNoKHJlbGVhc2VDb250ZXh0KTtcbn1cblxuZnVuY3Rpb24gZmluZFJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dHMgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRzLmZpbmQoKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWVNYXRjaGVzID0gcmVsZWFzZUNvbnRleHQubWF0Y2hEZXBlbmRlbmN5TmFtZShkZXBlbmRlbmN5TmFtZSk7XG5cbiAgICAgICAgICBpZiAoZGVwZW5kZW5jeU5hbWVNYXRjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIHx8IG51bGw7XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xufVxuXG5mdW5jdGlvbiByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgY29udGV4dCwgcmVsZWFzZUNvbnRleHRzID0gW10pIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0cy5pbmNsdWRlcyhyZWxlYXNlQ29udGV4dCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0KSB7XG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBkZXBlbmRlbmNpZXMuZm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0ID0gZmluZFJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpO1xuXG4gICAgICByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgY29udGV4dCwgcmVsZWFzZUNvbnRleHRzKTtcbiAgICB9KTtcblxuICAgIHJlbGVhc2VDb250ZXh0cy51bnNoaWZ0KHJlbGVhc2VDb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHM7XG59XG5cbmZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgY29udGV4dCkge1xuICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgbmFtZSA9IHJlbGVhc2VDb250ZXh0LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBuYW1lLCAvLy9cbiAgICAgICAgcmVsZWFzZUNvbnRleHRzID0gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIGNvbnRleHQpO1xuXG4gIGxvZy5pbmZvKGBJbml0aWFsaXNpbmcgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb250ZXh0Li4uYCk7XG5cbiAgY29uc3QgeyBGaWxlQ29udGV4dEZyb21GaWxlUGF0aCB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dC5pbml0aWFsaXNlKHJlbGVhc2VDb250ZXh0cywgRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgpO1xuXG4gIGxvZy5kZWJ1ZyhgLi4uaW5pdGlhbGlzZWQgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb250ZXh0LmApO1xufVxuXG5mdW5jdGlvbiBjaGVja0N5Y2xpY0RlcGVuZGVuY3lQcmVzZW50KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGxldCBjeWNsaWNEZXBlbmRlbmN5UHJlc2VudCA9IGZhbHNlO1xuXG4gIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIGluZGV4ID0gZGVwZW5kZW50TmFtZXMuaW5kZXhPZihkZXBlbmRlbmN5TmFtZSk7XG5cbiAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBjaXJjdWxhckRlcGVuZGVudE5hbWVzID0gZGVwZW5kZW50TmFtZXMuc2xpY2UoaW5kZXgpLFxuICAgICAgICAgIGNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzID0gW1xuICAgICAgICAgICAgLi4uY2lyY3VsYXJEZXBlbmRlbnROYW1lcyxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lOYW1lXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjaXJjdWxhckRlcGVuZGVuY3lOYW1lc1N0cmluZyA9IGNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzLmpvaW4oU0lOR0xFX1NQQUNFKTtcblxuICAgIGxvZy53YXJuaW5nKGBUaGVyZSBpcyBhIGN5Y2xpYyBkZXBlbmRlbmN5LCAnJHtjaXJjdWxhckRlcGVuZGVuY3lOYW1lc1N0cmluZ30nLmApO1xuXG4gICAgY3ljbGljRGVwZW5kZW5jeVByZXNlbnQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGN5Y2xpY0RlcGVuZGVuY3lQcmVzZW50O1xufVxuXG5mdW5jdGlvbiBjaGVja1JlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IHRydWU7XG5cbiAgY29uc3Qgc2hvcnRlbmVkVmVyc2lvbiA9IGRlcGVuZGVuY3kuZ2V0U2hvcnRlbmVkVmVyc2lvbigpO1xuXG4gIGlmIChzaG9ydGVuZWRWZXJzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiA9IHJlbGVhc2VDb250ZXh0Lm1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKTtcblxuICAgIGlmICghZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbikge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICB2ZXJzaW9uID0gcmVsZWFzZUNvbnRleHQuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgbGFzdERlcGVuZGVudE5hbWUgPSBsYXN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICAgIGRlcGVuZGVudE5hbWUgPSBsYXN0RGVwZW5kZW50TmFtZSwgIC8vL1xuICAgICAgICAgICAgdmVyc2lvblN0cmluZyA9IHZlcnNpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lTdHJpbmcgPSBkZXBlbmRlbmN5LmFzU3RyaW5nKCk7XG5cbiAgICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW50TmFtZX0nIGRlcGVuZGVudCByZXF1aXJlcyB0aGUgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kgYnV0IGEgY29udGV4dCB3aXRoIHZlcnNpb24gJyR7dmVyc2lvblN0cmluZ30nIHdhcyBwcm92aWRlZC5gKTtcblxuICAgICAgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeTtcbn1cblxuZnVuY3Rpb24gY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50UmVsZWFzZWQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGxldCBwcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZSA9IGZhbHNlO1xuXG4gIGlmIChkZXBlbmRlbnRSZWxlYXNlZCkge1xuICAgIGNvbnN0IHVucmVsZWFzZWQgPSByZWxlYXNlQ29udGV4dC5pc1VucmVsZWFzZWQoKTtcblxuICAgIGlmICh1bnJlbGVhc2VkKSB7XG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICAgIG5hbWUgPSByZWxlYXNlQ29udGV4dC5nZXROYW1lKCksXG4gICAgICAgICAgICBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBuYW1lLC8vL1xuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lOyAgLy8vXG5cbiAgICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBkZXBlbmRlbmN5IGlzIGEgcHJvamVjdCB3aGlsc3QgaXRzICcke2RlcGVuZGVudE5hbWV9JyBkZXBlbmRlbnQgaXMgYSBwYWNrYWdlLmApO1xuXG4gICAgICBwcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGVhc2VDb250ZXh0cyIsImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dHMiLCJ2ZXJpZnlSZWxlYXNlQ29udGV4dHMiLCJsYXN0IiwiYXJyYXlVdGlsaXRpZXMiLCJkZXBlbmRlbmN5TmFtZSIsImNvbnRleHQiLCJyZWxlYXNlQ29udGV4dHNDcmVhdGVkIiwibmFtZSIsImRlcGVuZGVuY3kiLCJEZXBlbmRlbmN5IiwiZnJvbU5hbWUiLCJkZXBlbmRlbnROYW1lcyIsImRlcGVuZGVudFJlbGVhc2VkIiwicmVsZWFzZUNvbnRleHRDcmVhdGVkIiwiY3JlYXRlUmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dHMiLCJmb3JFYWNoIiwicmVsZWFzZUNvbnRleHQiLCJpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQiLCJjb250aXVuYXRpb24iLCJldmVyeSIsInZlcmlmeVJlbGVhc2VDb250ZXh0IiwicmVsZWFzZWQiLCJpc1JlbGVhc2VkIiwidmVyaWZpZWQiLCJoYXNWZXJpZmllZCIsInJlbGVhc2VDb250ZXh0VmVyaWZpZXMiLCJsb2ciLCJnZXROYW1lIiwicmVsZWFzZU5hbWUiLCJpbmZvIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJmaW5kUmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dEZvdW5kIiwiZGVwZW5kZW50TmFtZXNMZW5ndGgiLCJsZW5ndGgiLCJkZXBlbmRlbmN5U3RyaW5nIiwiYXNTdHJpbmciLCJsYXN0RGVwZW5kZW50TmFtZSIsImRlcGVuZGVudE5hbWUiLCJyZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5Iiwid2FybmluZyIsInByb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlIiwiY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZSIsInJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSIsImNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5IiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0NyZWF0ZWQiLCJjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiYWRkUmVsZWFzZUNvbnRleHQiLCJkZWJ1ZyIsImRlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY2llcyIsImFycmF5IiwiZ2V0QXJyYXkiLCJhc3luY0V2ZXJ5IiwiY3ljbGljRGVwZW5kZW5jeVByZXNlbnQiLCJjaGVja0N5Y2xpY0RlcGVuZGVuY3lQcmVzZW50IiwicHVzaCIsImZpbmQiLCJkZXBlbmRlbmN5TmFtZU1hdGNoZXMiLCJtYXRjaERlcGVuZGVuY3lOYW1lIiwicmV0cmlldmVSZWxlYXNlQ29udGV4dHMiLCJyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiaW5jbHVkZXMiLCJmb3JFYWNoRGVwZW5kZW5jeSIsInVuc2hpZnQiLCJGaWxlQ29udGV4dEZyb21GaWxlUGF0aCIsImluaXRpYWxpc2UiLCJpbmRleCIsImluZGV4T2YiLCJjaXJjdWxhckRlcGVuZGVudE5hbWVzIiwic2xpY2UiLCJjaXJjdWxhckRlcGVuZGVuY3lOYW1lcyIsImNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzU3RyaW5nIiwiam9pbiIsIlNJTkdMRV9TUEFDRSIsInNob3J0ZW5lZFZlcnNpb24iLCJnZXRTaG9ydGVuZWRWZXJzaW9uIiwiZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiIsIm1hdGNoU2hvcnRlbmVkVmVyc2lvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwidmVyc2lvblN0cmluZyIsInRvU3RyaW5nIiwidW5yZWxlYXNlZCIsImlzVW5yZWxlYXNlZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBV3NCQTtlQUFBQTs7UUE4QnRCO2VBQUE7O1FBZGdCQztlQUFBQTs7UUFRQUM7ZUFBQUE7Ozs0QkFqQ1c7MkJBQ0k7OEJBRVI7OEJBQ0s7MkJBQ0M7QUFFN0IsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MseUJBQWM7QUFFeEIsZUFBZUosc0JBQXNCSyxjQUFjLEVBQUVDLE9BQU87SUFDakUsSUFBSUMseUJBQXlCO0lBRTdCLE1BQU1DLE9BQU9ILGdCQUNQSSxhQUFhQyxzQkFBVSxDQUFDQyxRQUFRLENBQUNILE9BQ2pDSSxpQkFBaUIsRUFBRSxFQUNuQkMsb0JBQW9CLE9BQ3BCQyx3QkFBd0IsTUFBTUMscUJBQXFCTixZQUFZRyxnQkFBZ0JDLG1CQUFtQlA7SUFFeEcsSUFBSVEsdUJBQXVCO1FBQ3pCUCx5QkFBeUI7SUFDM0I7SUFFQSxPQUFPQTtBQUNUO0FBRU8sU0FBU04sMEJBQTBCSyxPQUFPO0lBQy9DLE1BQU0sRUFBRVUsZUFBZSxFQUFFLEdBQUdWO0lBRTVCVSxnQkFBZ0JDLE9BQU8sQ0FBQyxDQUFDQztRQUN2QkMseUJBQXlCRCxnQkFBZ0JaO0lBQzNDO0FBQ0Y7QUFFTyxTQUFTSixzQkFBc0JJLE9BQU8sRUFBRWMsWUFBWTtJQUN6RCxNQUFNLEVBQUVKLGVBQWUsRUFBRSxHQUFHVjtJQUU1QixPQUFPZSxJQUFBQSxtQkFBSyxFQUFDTCxpQkFBaUJNLHNCQUFzQmhCLFNBQVNjO0FBQy9EO01BRUEsV0FB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
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmVyaWZpY2F0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBEZXBlbmRlbmN5IH0gZnJvbSBcIm9jY2FtLW1vZGVsXCI7XG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgYXN5bmNocm9ub3VzRXZlcnkgIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250aW51YXRpb25cIjtcbmltcG9ydCB7IGFzeW5jRXZlcnkgIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hc3luY2hyb25vdXNcIjtcbmltcG9ydCB7IFNJTkdMRV9TUEFDRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcblxuY29uc3QgeyBsYXN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVJlbGVhc2VDb250ZXh0cyhkZXBlbmRlbmN5TmFtZSwgY29udGV4dCkge1xuICBsZXQgcmVsZWFzZUNvbnRleHRzQ3JlYXRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0IG5hbWUgPSBkZXBlbmRlbmN5TmFtZSwgIC8vL1xuICAgICAgICBkZXBlbmRlbmN5ID0gRGVwZW5kZW5jeS5mcm9tTmFtZShuYW1lKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZXMgPSBbXSxcbiAgICAgICAgZGVwZW5kZW50UmVsZWFzZWQgPSBmYWxzZSxcbiAgICAgICAgcmVsZWFzZUNvbnRleHRDcmVhdGVkID0gYXdhaXQgY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVudFJlbGVhc2VkLCBjb250ZXh0KTtcblxuICBpZiAocmVsZWFzZUNvbnRleHRDcmVhdGVkKSB7XG4gICAgcmVsZWFzZUNvbnRleHRzQ3JlYXRlZCA9IHRydWU7XG4gIH1cblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHRzQ3JlYXRlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dHMoY29udGV4dCkge1xuICBjb25zdCB7IHJlbGVhc2VDb250ZXh0cyB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQocmVsZWFzZUNvbnRleHQsIGNvbnRleHQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVJlbGVhc2VDb250ZXh0cyhjb250ZXh0LCBjb250aXVuYXRpb24pIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dHMgfSA9IGNvbnRleHQ7XG5cbiAgcmV0dXJuIGFzeW5jaHJvbm91c0V2ZXJ5KHJlbGVhc2VDb250ZXh0cywgdmVyaWZ5UmVsZWFzZUNvbnRleHQsIGNvbnRleHQsIGNvbnRpdW5hdGlvbik7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3JlYXRlUmVsZWFzZUNvbnRleHRzLFxuICBpbml0aWFsaXNlUmVsZWFzZUNvbnRleHRzLFxuICB2ZXJpZnlSZWxlYXNlQ29udGV4dHNcbn07XG5cbmZ1bmN0aW9uIHZlcmlmeVJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBjb250ZXh0LCBjb250aXVuYXRpb24pIHtcbiAgY29uc3QgcmVsZWFzZWQgPSByZWxlYXNlQ29udGV4dC5pc1JlbGVhc2VkKCksXG4gICAgICAgIHZlcmlmaWVkID0gcmVsZWFzZUNvbnRleHQuaGFzVmVyaWZpZWQoKTtcblxuICBpZiAocmVsZWFzZWQgfHwgdmVyaWZpZWQpIHtcbiAgICBjb25zdCByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gdHJ1ZTtcblxuICAgIHJldHVybiBjb250aXVuYXRpb24ocmVsZWFzZUNvbnRleHRWZXJpZmllcywgY29udGV4dCk7XG4gIH1cblxuICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgbmFtZSA9IHJlbGVhc2VDb250ZXh0LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBuYW1lOyAvLy9cblxuICBsb2cuaW5mbyhgVmVyaWZ5aW5nIHRoZSAnJHtyZWxlYXNlTmFtZX0nIHByb2plY3QuLi5gKTtcblxuICByZXR1cm4gcmVsZWFzZUNvbnRleHQudmVyaWZ5KCh2ZXJpZmllcykgPT4ge1xuICAgIGxldCByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBpZiAodmVyaWZpZXMpIHtcbiAgICAgIGxvZy5pbmZvKGAuLi52ZXJpZmllZCB0aGUgJyR7cmVsZWFzZU5hbWV9JyBwcm9qZWN0LmApO1xuXG4gICAgICByZWxlYXNlQ29udGV4dFZlcmlmaWVzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGl1bmF0aW9uKHJlbGVhc2VDb250ZXh0VmVyaWZpZXMsIGNvbnRleHQpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGRlcGVuZGVudFJlbGVhc2VkLCBjb250ZXh0KSB7XG4gIGxldCByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSBmYWxzZTtcblxuICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBkZXBlbmRlbmN5LmdldE5hbWUoKTtcblxuICBsZXQgcmVsZWFzZUNvbnRleHQ7XG5cbiAgcmVsZWFzZUNvbnRleHQgPSBmaW5kUmVsZWFzZUNvbnRleHQoZGVwZW5kZW5jeSwgY29udGV4dCk7XG5cbiAgY29uc3QgcmVsZWFzZUNvbnRleHRGb3VuZCA9IChyZWxlYXNlQ29udGV4dCAhPT0gbnVsbCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dEZvdW5kKSB7XG4gICAgY29uc3QgZGVwZW5kZW50TmFtZXNMZW5ndGggPSBkZXBlbmRlbnROYW1lcy5sZW5ndGgsXG4gICAgICAgICAgZGVwZW5kZW5jeVN0cmluZyA9IGRlcGVuZGVuY3kuYXNTdHJpbmcoKTtcblxuICAgIGlmIChkZXBlbmRlbnROYW1lc0xlbmd0aCA9PT0gMCkge1xuICAgICAgbG9nLmluZm8oYENyZWF0aW5nIHRoZSAnJHtkZXBlbmRlbmN5TmFtZX0nIHBhY2thZ2UgY29udGV4dC4uLmApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lOyAgLy8vXG5cbiAgICAgIGxvZy5pbmZvKGBDcmVhdGluZyB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQgZ2l2ZW4gdGhlICcke2RlcGVuZGVudE5hbWV9JyBkZXBlbmRhbnQncyAnJHtkZXBlbmRlbmN5U3RyaW5nfScgZGVwZW5kZW5jeS4uLmApO1xuICAgIH1cblxuICAgIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeSB9ID0gY29udGV4dDtcblxuICAgIHJlbGVhc2VDb250ZXh0ID0gYXdhaXQgcmVsZWFzZUNvbnRleHRGcm9tRGVwZW5kZW5jeShkZXBlbmRlbmN5LCBjb250ZXh0KTtcbiAgfVxuXG4gIGlmIChyZWxlYXNlQ29udGV4dCA9PT0gbnVsbCkge1xuICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQgY291bGQgbm90IGJlIGNyZWF0ZWQuIFBlcmhhcHMgdGhlICdtZXRhLmpzb24nIGZpbGUgaXMgbWlzc2luZyBvciBpbnZhbGlkLmApO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHByb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlID0gY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50UmVsZWFzZWQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmICghcHJvamVjdERlcGVuZGVuY3lPZlBhY2thZ2UpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IGNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5KHJlbGVhc2VDb250ZXh0LCBkZXBlbmRlbmN5LCBkZXBlbmRlbnROYW1lcywgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlTWF0Y2hlc0RlcGVuZGVuY3kpIHtcbiAgICAgICAgaWYgKHJlbGVhc2VDb250ZXh0Rm91bmQpIHtcbiAgICAgICAgICByZWxlYXNlQ29udGV4dENyZWF0ZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkID0gYXdhaXQgY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpO1xuXG4gICAgICAgICAgaWYgKGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkKSB7XG4gICAgICAgICAgICBhZGRSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFyZWxlYXNlQ29udGV4dEZvdW5kKSB7XG4gICAgICByZWxlYXNlQ29udGV4dENyZWF0ZWQgP1xuICAgICAgICBsb2cuZGVidWcoYC4uLmNyZWF0ZWQgdGhlICcke2RlcGVuZGVuY3lOYW1lfScgcGFja2FnZSBjb250ZXh0LmApIDpcbiAgICAgICAgICBsb2cud2FybmluZyhgLi4udW5hYmxlIHRvIGNyZWF0ZSB0aGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBwYWNrYWdlIGNvbnRleHQuYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0Q3JlYXRlZDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlRGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgbGV0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHNDcmVhdGVkO1xuXG4gIGNvbnN0IG5hbWUgPSByZWxlYXNlQ29udGV4dC5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VkID0gcmVsZWFzZUNvbnRleHQuaXNSZWxlYXNlZCgpLFxuICAgICAgICBkZXBlbmRlbmNpZXMgPSByZWxlYXNlQ29udGV4dC5nZXREZXBlbmRlbmNpZXMoKSxcbiAgICAgICAgZGVwZW5kZW50TmFtZSA9IG5hbWUsICAvLy9cbiAgICAgICAgZGVwZW5kZW50UmVsZWFzZWQgPSByZWxlYXNlZDsgIC8vL1xuXG4gIGRlcGVuZGVudE5hbWVzID0gWyAuLi5kZXBlbmRlbnROYW1lcywgZGVwZW5kZW50TmFtZSBdOyAgLy8vXG5cbiAgY29uc3QgYXJyYXkgPSBkZXBlbmRlbmNpZXMuZ2V0QXJyYXkoKTtcblxuICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzQ3JlYXRlZCA9IGF3YWl0IGFzeW5jRXZlcnkoYXJyYXksIGFzeW5jIChkZXBlbmRlbmN5KSA9PiB7XG4gICAgY29uc3QgY3ljbGljRGVwZW5kZW5jeVByZXNlbnQgPSBjaGVja0N5Y2xpY0RlcGVuZGVuY3lQcmVzZW50KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KTtcblxuICAgIGlmICghY3ljbGljRGVwZW5kZW5jeVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0Q3JlYXRlZCA9IGF3YWl0IGNyZWF0ZVJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBkZXBlbmRlbnRSZWxlYXNlZCwgY29udGV4dCk7XG5cbiAgICAgIGlmIChyZWxlYXNlQ29udGV4dENyZWF0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0NyZWF0ZWQ7XG59XG5cbmZ1bmN0aW9uIGFkZFJlbGVhc2VDb250ZXh0KHJlbGVhc2VDb250ZXh0LCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgcmVsZWFzZUNvbnRleHRzIH0gPSBjb250ZXh0O1xuXG4gIHJlbGVhc2VDb250ZXh0cy5wdXNoKHJlbGVhc2VDb250ZXh0KTtcbn1cblxuZnVuY3Rpb24gZmluZFJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpIHtcbiAgY29uc3QgeyByZWxlYXNlQ29udGV4dHMgfSA9IGNvbnRleHQsXG4gICAgICAgIGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIHJlbGVhc2VDb250ZXh0ID0gcmVsZWFzZUNvbnRleHRzLmZpbmQoKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW5jeU5hbWVNYXRjaGVzID0gcmVsZWFzZUNvbnRleHQubWF0Y2hEZXBlbmRlbmN5TmFtZShkZXBlbmRlbmN5TmFtZSk7XG5cbiAgICAgICAgICBpZiAoZGVwZW5kZW5jeU5hbWVNYXRjaGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pIHx8IG51bGw7XG5cbiAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xufVxuXG5mdW5jdGlvbiByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgY29udGV4dCwgcmVsZWFzZUNvbnRleHRzID0gW10pIHtcbiAgY29uc3QgcmVsZWFzZUNvbnRleHRzSW5jbHVkZXNSZWxlYXNlQ29udGV4dCA9IHJlbGVhc2VDb250ZXh0cy5pbmNsdWRlcyhyZWxlYXNlQ29udGV4dCk7XG5cbiAgaWYgKCFyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0KSB7XG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gcmVsZWFzZUNvbnRleHQuZ2V0RGVwZW5kZW5jaWVzKCk7XG5cbiAgICBkZXBlbmRlbmNpZXMuZm9yRWFjaERlcGVuZGVuY3koKGRlcGVuZGVuY3kpID0+IHtcbiAgICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0ID0gZmluZFJlbGVhc2VDb250ZXh0KGRlcGVuZGVuY3ksIGNvbnRleHQpO1xuXG4gICAgICByZXRyaWV2ZVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dCwgY29udGV4dCwgcmVsZWFzZUNvbnRleHRzKTtcbiAgICB9KTtcblxuICAgIHJlbGVhc2VDb250ZXh0cy51bnNoaWZ0KHJlbGVhc2VDb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiByZWxlYXNlQ29udGV4dHM7XG59XG5cbmZ1bmN0aW9uIGluaXRpYWxpc2VSZWxlYXNlQ29udGV4dChyZWxlYXNlQ29udGV4dCwgY29udGV4dCkge1xuICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgbmFtZSA9IHJlbGVhc2VDb250ZXh0LmdldE5hbWUoKSxcbiAgICAgICAgcmVsZWFzZU5hbWUgPSBuYW1lLCAvLy9cbiAgICAgICAgcmVsZWFzZUNvbnRleHRzID0gcmV0cmlldmVSZWxlYXNlQ29udGV4dHMocmVsZWFzZUNvbnRleHQsIGNvbnRleHQpO1xuXG4gIGxvZy5pbmZvKGBJbml0aWFsaXNpbmcgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb250ZXh0Li4uYCk7XG5cbiAgY29uc3QgeyBGaWxlQ29udGV4dEZyb21GaWxlUGF0aCB9ID0gY29udGV4dDtcblxuICByZWxlYXNlQ29udGV4dC5pbml0aWFsaXNlKHJlbGVhc2VDb250ZXh0cywgRmlsZUNvbnRleHRGcm9tRmlsZVBhdGgpO1xuXG4gIGxvZy5kZWJ1ZyhgLi4uaW5pdGlhbGlzZWQgdGhlICcke3JlbGVhc2VOYW1lfScgcGFja2FnZSBjb250ZXh0LmApO1xufVxuXG5mdW5jdGlvbiBjaGVja0N5Y2xpY0RlcGVuZGVuY3lQcmVzZW50KGRlcGVuZGVuY3ksIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGxldCBjeWNsaWNEZXBlbmRlbmN5UHJlc2VudCA9IGZhbHNlO1xuXG4gIGNvbnN0IGRlcGVuZGVuY3lOYW1lID0gZGVwZW5kZW5jeS5nZXROYW1lKCksXG4gICAgICAgIGluZGV4ID0gZGVwZW5kZW50TmFtZXMuaW5kZXhPZihkZXBlbmRlbmN5TmFtZSk7XG5cbiAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICBjaXJjdWxhckRlcGVuZGVudE5hbWVzID0gZGVwZW5kZW50TmFtZXMuc2xpY2UoaW5kZXgpLFxuICAgICAgICAgIGNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzID0gW1xuICAgICAgICAgICAgLi4uY2lyY3VsYXJEZXBlbmRlbnROYW1lcyxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lOYW1lXG4gICAgICAgICAgXSxcbiAgICAgICAgICBjaXJjdWxhckRlcGVuZGVuY3lOYW1lc1N0cmluZyA9IGNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzLmpvaW4oU0lOR0xFX1NQQUNFKTtcblxuICAgIGxvZy53YXJuaW5nKGBUaGVyZSBpcyBhIGN5Y2xpYyBkZXBlbmRlbmN5LCAnJHtjaXJjdWxhckRlcGVuZGVuY3lOYW1lc1N0cmluZ30nLmApO1xuXG4gICAgY3ljbGljRGVwZW5kZW5jeVByZXNlbnQgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGN5Y2xpY0RlcGVuZGVuY3lQcmVzZW50O1xufVxuXG5mdW5jdGlvbiBjaGVja1JlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW5jeSwgZGVwZW5kZW50TmFtZXMsIGNvbnRleHQpIHtcbiAgbGV0IHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSA9IHRydWU7XG5cbiAgY29uc3Qgc2hvcnRlbmVkVmVyc2lvbiA9IGRlcGVuZGVuY3kuZ2V0U2hvcnRlbmVkVmVyc2lvbigpO1xuXG4gIGlmIChzaG9ydGVuZWRWZXJzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiA9IHJlbGVhc2VDb250ZXh0Lm1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKTtcblxuICAgIGlmICghZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbikge1xuICAgICAgY29uc3QgeyBsb2cgfSA9IGNvbnRleHQsXG4gICAgICAgICAgICB2ZXJzaW9uID0gcmVsZWFzZUNvbnRleHQuZ2V0VmVyc2lvbigpLFxuICAgICAgICAgICAgbGFzdERlcGVuZGVudE5hbWUgPSBsYXN0KGRlcGVuZGVudE5hbWVzKSxcbiAgICAgICAgICAgIGRlcGVuZGVudE5hbWUgPSBsYXN0RGVwZW5kZW50TmFtZSwgIC8vL1xuICAgICAgICAgICAgdmVyc2lvblN0cmluZyA9IHZlcnNpb24udG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lTdHJpbmcgPSBkZXBlbmRlbmN5LmFzU3RyaW5nKCk7XG5cbiAgICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW50TmFtZX0nIGRlcGVuZGVudCByZXF1aXJlcyB0aGUgJyR7ZGVwZW5kZW5jeVN0cmluZ30nIGRlcGVuZGVuY3kgYnV0IGEgY29udGV4dCB3aXRoIHZlcnNpb24gJyR7dmVyc2lvblN0cmluZ30nIHdhcyBwcm92aWRlZC5gKTtcblxuICAgICAgcmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeTtcbn1cblxuZnVuY3Rpb24gY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZShyZWxlYXNlQ29udGV4dCwgZGVwZW5kZW50UmVsZWFzZWQsIGRlcGVuZGVudE5hbWVzLCBjb250ZXh0KSB7XG4gIGxldCBwcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZSA9IGZhbHNlO1xuXG4gIGlmIChkZXBlbmRlbnRSZWxlYXNlZCkge1xuICAgIGNvbnN0IHVucmVsZWFzZWQgPSByZWxlYXNlQ29udGV4dC5pc1VucmVsZWFzZWQoKTtcblxuICAgIGlmICh1bnJlbGVhc2VkKSB7XG4gICAgICBjb25zdCB7IGxvZyB9ID0gY29udGV4dCxcbiAgICAgICAgICAgIG5hbWUgPSByZWxlYXNlQ29udGV4dC5nZXROYW1lKCksXG4gICAgICAgICAgICBsYXN0RGVwZW5kZW50TmFtZSA9IGxhc3QoZGVwZW5kZW50TmFtZXMpLFxuICAgICAgICAgICAgZGVwZW5kZW5jeU5hbWUgPSBuYW1lLC8vL1xuICAgICAgICAgICAgZGVwZW5kZW50TmFtZSA9IGxhc3REZXBlbmRlbnROYW1lOyAgLy8vXG5cbiAgICAgIGxvZy53YXJuaW5nKGBUaGUgJyR7ZGVwZW5kZW5jeU5hbWV9JyBkZXBlbmRlbmN5IGlzIGEgcHJvamVjdCB3aGlsc3QgaXRzICcke2RlcGVuZGVudE5hbWV9JyBkZXBlbmRlbnQgaXMgYSBwYWNrYWdlLmApO1xuXG4gICAgICBwcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlO1xufVxuIl0sIm5hbWVzIjpbImNyZWF0ZVJlbGVhc2VDb250ZXh0cyIsImluaXRpYWxpc2VSZWxlYXNlQ29udGV4dHMiLCJ2ZXJpZnlSZWxlYXNlQ29udGV4dHMiLCJsYXN0IiwiYXJyYXlVdGlsaXRpZXMiLCJkZXBlbmRlbmN5TmFtZSIsImNvbnRleHQiLCJyZWxlYXNlQ29udGV4dHNDcmVhdGVkIiwibmFtZSIsImRlcGVuZGVuY3kiLCJEZXBlbmRlbmN5IiwiZnJvbU5hbWUiLCJkZXBlbmRlbnROYW1lcyIsImRlcGVuZGVudFJlbGVhc2VkIiwicmVsZWFzZUNvbnRleHRDcmVhdGVkIiwiY3JlYXRlUmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dHMiLCJmb3JFYWNoIiwicmVsZWFzZUNvbnRleHQiLCJpbml0aWFsaXNlUmVsZWFzZUNvbnRleHQiLCJjb250aXVuYXRpb24iLCJhc3luY2hyb25vdXNFdmVyeSIsInZlcmlmeVJlbGVhc2VDb250ZXh0IiwicmVsZWFzZWQiLCJpc1JlbGVhc2VkIiwidmVyaWZpZWQiLCJoYXNWZXJpZmllZCIsInJlbGVhc2VDb250ZXh0VmVyaWZpZXMiLCJsb2ciLCJnZXROYW1lIiwicmVsZWFzZU5hbWUiLCJpbmZvIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJmaW5kUmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dEZvdW5kIiwiZGVwZW5kZW50TmFtZXNMZW5ndGgiLCJsZW5ndGgiLCJkZXBlbmRlbmN5U3RyaW5nIiwiYXNTdHJpbmciLCJsYXN0RGVwZW5kZW50TmFtZSIsImRlcGVuZGVudE5hbWUiLCJyZWxlYXNlQ29udGV4dEZyb21EZXBlbmRlbmN5Iiwid2FybmluZyIsInByb2plY3REZXBlbmRlbmN5T2ZQYWNrYWdlIiwiY2hlY2tQcm9qZWN0RGVwZW5kZW5jeU9mUGFja2FnZSIsInJlbGVhc2VNYXRjaGVzRGVwZW5kZW5jeSIsImNoZWNrUmVsZWFzZU1hdGNoZXNEZXBlbmRlbmN5IiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0c0NyZWF0ZWQiLCJjcmVhdGVEZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiYWRkUmVsZWFzZUNvbnRleHQiLCJkZWJ1ZyIsImRlcGVuZGVuY2llcyIsImdldERlcGVuZGVuY2llcyIsImFycmF5IiwiZ2V0QXJyYXkiLCJhc3luY0V2ZXJ5IiwiY3ljbGljRGVwZW5kZW5jeVByZXNlbnQiLCJjaGVja0N5Y2xpY0RlcGVuZGVuY3lQcmVzZW50IiwicHVzaCIsImZpbmQiLCJkZXBlbmRlbmN5TmFtZU1hdGNoZXMiLCJtYXRjaERlcGVuZGVuY3lOYW1lIiwicmV0cmlldmVSZWxlYXNlQ29udGV4dHMiLCJyZWxlYXNlQ29udGV4dHNJbmNsdWRlc1JlbGVhc2VDb250ZXh0IiwiaW5jbHVkZXMiLCJmb3JFYWNoRGVwZW5kZW5jeSIsInVuc2hpZnQiLCJGaWxlQ29udGV4dEZyb21GaWxlUGF0aCIsImluaXRpYWxpc2UiLCJpbmRleCIsImluZGV4T2YiLCJjaXJjdWxhckRlcGVuZGVudE5hbWVzIiwic2xpY2UiLCJjaXJjdWxhckRlcGVuZGVuY3lOYW1lcyIsImNpcmN1bGFyRGVwZW5kZW5jeU5hbWVzU3RyaW5nIiwiam9pbiIsIlNJTkdMRV9TUEFDRSIsInNob3J0ZW5lZFZlcnNpb24iLCJnZXRTaG9ydGVuZWRWZXJzaW9uIiwiZW50cmllc01hdGNoU2hvcnRlbmVkVmVyc2lvbiIsIm1hdGNoU2hvcnRlbmVkVmVyc2lvbiIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwidmVyc2lvblN0cmluZyIsInRvU3RyaW5nIiwidW5yZWxlYXNlZCIsImlzVW5yZWxlYXNlZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBV3NCQTtlQUFBQTs7UUE4QnRCO2VBQUE7O1FBZGdCQztlQUFBQTs7UUFRQUM7ZUFBQUE7Ozs0QkFqQ1c7MkJBQ0k7OEJBRUk7OEJBQ1A7MkJBQ0M7QUFFN0IsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MseUJBQWM7QUFFeEIsZUFBZUosc0JBQXNCSyxjQUFjLEVBQUVDLE9BQU87SUFDakUsSUFBSUMseUJBQXlCO0lBRTdCLE1BQU1DLE9BQU9ILGdCQUNQSSxhQUFhQyxzQkFBVSxDQUFDQyxRQUFRLENBQUNILE9BQ2pDSSxpQkFBaUIsRUFBRSxFQUNuQkMsb0JBQW9CLE9BQ3BCQyx3QkFBd0IsTUFBTUMscUJBQXFCTixZQUFZRyxnQkFBZ0JDLG1CQUFtQlA7SUFFeEcsSUFBSVEsdUJBQXVCO1FBQ3pCUCx5QkFBeUI7SUFDM0I7SUFFQSxPQUFPQTtBQUNUO0FBRU8sU0FBU04sMEJBQTBCSyxPQUFPO0lBQy9DLE1BQU0sRUFBRVUsZUFBZSxFQUFFLEdBQUdWO0lBRTVCVSxnQkFBZ0JDLE9BQU8sQ0FBQyxDQUFDQztRQUN2QkMseUJBQXlCRCxnQkFBZ0JaO0lBQzNDO0FBQ0Y7QUFFTyxTQUFTSixzQkFBc0JJLE9BQU8sRUFBRWMsWUFBWTtJQUN6RCxNQUFNLEVBQUVKLGVBQWUsRUFBRSxHQUFHVjtJQUU1QixPQUFPZSxJQUFBQSwrQkFBaUIsRUFBQ0ws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
|
package/package.json
CHANGED
package/src/pass/continuation.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { asynchronousEvery } from "../utilities/continuation";
|
|
4
4
|
import { nonTerminalNodeQuery } from "../utilities/pass";
|
|
5
5
|
|
|
6
6
|
export default class ContinuationPass {
|
|
@@ -13,7 +13,7 @@ export default class ContinuationPass {
|
|
|
13
13
|
descend(childNodes, ...remainingArguments) {
|
|
14
14
|
const continuation = remainingArguments.pop();
|
|
15
15
|
|
|
16
|
-
return
|
|
16
|
+
return asynchronousEvery(childNodes, (childNode, ...remainingArguments) => {
|
|
17
17
|
const continuation = remainingArguments.pop(),
|
|
18
18
|
node = childNode; ///
|
|
19
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { asynchronousMatch } from "../utilities/continuation";
|
|
4
4
|
import { nonTerminalNodeQuery, areChildNodesCongruent } from "../utilities/pass";
|
|
5
5
|
|
|
6
6
|
export default class ContinuationZipPass {
|
|
@@ -20,7 +20,7 @@ export default class ContinuationZipPass {
|
|
|
20
20
|
return continuation(descended, ...remainingArguments);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
return
|
|
23
|
+
return asynchronousMatch(generalChildNodes, specificChildNodes, (generalChildNode, specificChildNode, ...remainingArguments) => {
|
|
24
24
|
const continuation = remainingArguments.pop(),
|
|
25
25
|
generalNode = generalChildNode, ///
|
|
26
26
|
specificNode = specificChildNode; ///
|
|
@@ -4,7 +4,7 @@ import { arrayUtilities } from "necessary";
|
|
|
4
4
|
|
|
5
5
|
const { filter: arrayFilter } = arrayUtilities;
|
|
6
6
|
|
|
7
|
-
export function
|
|
7
|
+
export function asynchronousOne(array, callback, ...initialArguments) {
|
|
8
8
|
const continuation = initialArguments.pop(),
|
|
9
9
|
length = array.length;
|
|
10
10
|
|
|
@@ -54,7 +54,7 @@ export function one(array, callback, ...initialArguments) {
|
|
|
54
54
|
return next(...callbackArguments);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
export function
|
|
57
|
+
export function asynchronousSome(array, callback, ...initialArguments) {
|
|
58
58
|
const continuation = initialArguments.pop(),
|
|
59
59
|
length = array.length;
|
|
60
60
|
|
|
@@ -93,7 +93,7 @@ export function some(array, callback, ...initialArguments) {
|
|
|
93
93
|
return next(...callbackArguments);
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
export function
|
|
96
|
+
export function asynchronousEach(array, callback, ...initialArguments) {
|
|
97
97
|
const continuation = initialArguments.pop(),
|
|
98
98
|
length = array.length;
|
|
99
99
|
|
|
@@ -135,7 +135,7 @@ export function each(array, callback, ...initialArguments) {
|
|
|
135
135
|
return next(...callbackArguments);
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
export function
|
|
138
|
+
export function asynchronousEvery(array, callback, ...initialArguments) {
|
|
139
139
|
const continuation = initialArguments.pop(),
|
|
140
140
|
length = array.length;
|
|
141
141
|
|
|
@@ -174,7 +174,7 @@ export function every(array, callback, ...initialArguments) {
|
|
|
174
174
|
return next(...callbackArguments);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
export function
|
|
177
|
+
export function asynchronousReduce(array, initialValue, callback, ...initialArguments) {
|
|
178
178
|
const continuation = initialArguments.pop(),
|
|
179
179
|
length = array.length;
|
|
180
180
|
|
|
@@ -206,7 +206,7 @@ export function reduce(array, initialValue, callback, ...initialArguments) {
|
|
|
206
206
|
return next(value, ...callbackArguments);
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
-
export function
|
|
209
|
+
export function asynchronousForEach(array, callback, ...initialArguments) {
|
|
210
210
|
const continuation = initialArguments.pop(),
|
|
211
211
|
length = array.length;
|
|
212
212
|
|
|
@@ -237,7 +237,7 @@ export function forEach(array, callback, ...initialArguments) {
|
|
|
237
237
|
return next(...callbackArguments);
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
export function
|
|
240
|
+
export function asynchronousForwardsEvery(array, callback, ...initialArguments) {
|
|
241
241
|
const continuation = initialArguments.pop(),
|
|
242
242
|
length = array.length;
|
|
243
243
|
|
|
@@ -276,7 +276,7 @@ export function forwardsEvery(array, callback, ...initialArguments) {
|
|
|
276
276
|
return next(...callbackArguments);
|
|
277
277
|
}
|
|
278
278
|
|
|
279
|
-
export function
|
|
279
|
+
export function asynchronousBackwardsEvery(array, callback, ...initialArguments) {
|
|
280
280
|
const continuation = initialArguments.pop(),
|
|
281
281
|
length = array.length;
|
|
282
282
|
|
|
@@ -315,7 +315,7 @@ export function backwardsEvery(array, callback, ...initialArguments) {
|
|
|
315
315
|
return next(...callbackArguments);
|
|
316
316
|
}
|
|
317
317
|
|
|
318
|
-
export function
|
|
318
|
+
export function asynchronousForwardsForEach(array, callback, ...initialArguments) {
|
|
319
319
|
const continuation = initialArguments.pop(),
|
|
320
320
|
length = array.length;
|
|
321
321
|
|
|
@@ -346,7 +346,7 @@ export function forwardsForEach(array, callback, ...initialArguments) {
|
|
|
346
346
|
return next(...callbackArguments);
|
|
347
347
|
}
|
|
348
348
|
|
|
349
|
-
export function
|
|
349
|
+
export function asynchronousBackwardsForEach(array, callback, ...initialArguments) {
|
|
350
350
|
const continuation = initialArguments.pop(),
|
|
351
351
|
length = array.length;
|
|
352
352
|
|
|
@@ -377,7 +377,7 @@ export function backwardsForEach(array, callback, ...initialArguments) {
|
|
|
377
377
|
return next(...callbackArguments);
|
|
378
378
|
}
|
|
379
379
|
|
|
380
|
-
export function
|
|
380
|
+
export function asynchronousFilter(array, callback, ...initialArguments) {
|
|
381
381
|
const continuation = initialArguments.pop(),
|
|
382
382
|
length = array.length;
|
|
383
383
|
|
|
@@ -420,7 +420,7 @@ export function filter(array, callback, ...initialArguments) {
|
|
|
420
420
|
return next(...callbackArguments);
|
|
421
421
|
}
|
|
422
422
|
|
|
423
|
-
export function
|
|
423
|
+
export function asynchronousPrune(array, callback, ...initialArguments) {
|
|
424
424
|
const continuation = initialArguments.pop(),
|
|
425
425
|
length = array.length;
|
|
426
426
|
|
|
@@ -467,7 +467,7 @@ export function prune(array, callback, ...initialArguments) {
|
|
|
467
467
|
return next(...callbackArguments);
|
|
468
468
|
}
|
|
469
469
|
|
|
470
|
-
export function
|
|
470
|
+
export function asynchronousExtract(array, callback, ...initialArguments) {
|
|
471
471
|
const continuation = initialArguments.pop(),
|
|
472
472
|
length = array.length;
|
|
473
473
|
|
|
@@ -514,7 +514,7 @@ export function extract(array, callback, ...initialArguments) {
|
|
|
514
514
|
return next(...callbackArguments);
|
|
515
515
|
}
|
|
516
516
|
|
|
517
|
-
export function
|
|
517
|
+
export function asynchronousMatch(arrayA, arrayB, callback, ...initialArguments) {
|
|
518
518
|
const continuation = initialArguments.pop();
|
|
519
519
|
|
|
520
520
|
const arrayALength = arrayA.length,
|
|
@@ -566,7 +566,7 @@ export function match(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
566
566
|
return next(...callbackArguments);
|
|
567
567
|
}
|
|
568
568
|
|
|
569
|
-
export function
|
|
569
|
+
export function asynchronousResolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
570
570
|
arrayA = [ ///
|
|
571
571
|
...arrayA
|
|
572
572
|
];
|
|
@@ -638,34 +638,34 @@ export function resolve(arrayA, arrayB, callback, ...initialArguments) {
|
|
|
638
638
|
return nextPass(...callbackArguments);
|
|
639
639
|
}
|
|
640
640
|
|
|
641
|
-
export function
|
|
641
|
+
export function asynchronousAll(callbacks, ...initialArguments) {
|
|
642
642
|
return every(callbacks, (callback, ...callbackArguments) => {
|
|
643
643
|
return callback(...callbackArguments);
|
|
644
644
|
}, ...initialArguments);
|
|
645
645
|
}
|
|
646
646
|
|
|
647
|
-
export function
|
|
647
|
+
export function asynchronousExists(callbacks, ...initialArguments) {
|
|
648
648
|
return some(callbacks, (callback, ...callbackArguments) => {
|
|
649
649
|
return callback(...callbackArguments);
|
|
650
650
|
}, ...initialArguments);
|
|
651
651
|
}
|
|
652
652
|
|
|
653
653
|
export default {
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
654
|
+
asynchronousOne,
|
|
655
|
+
asynchronousSome,
|
|
656
|
+
asynchronousEach,
|
|
657
|
+
asynchronousEvery,
|
|
658
|
+
asynchronousReduce,
|
|
659
|
+
asynchronousForEach,
|
|
660
|
+
asynchronousForwardsEvery,
|
|
661
|
+
asynchronousBackwardsEvery,
|
|
662
|
+
asynchronousForwardsForEach,
|
|
663
|
+
asynchronousBackwardsForEach,
|
|
664
|
+
asynchronousFilter,
|
|
665
|
+
asynchronousPrune,
|
|
666
|
+
asynchronousExtract,
|
|
667
|
+
asynchronousMatch,
|
|
668
|
+
asynchronousResolve,
|
|
669
|
+
asynchronousAll,
|
|
670
|
+
asynchronousExists
|
|
671
671
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { Dependency } from "occam-model";
|
|
4
4
|
import { arrayUtilities } from "necessary";
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { asynchronousEvery } from "../utilities/continuation";
|
|
7
7
|
import { asyncEvery } from "../utilities/asynchronous";
|
|
8
8
|
import { SINGLE_SPACE } from "../constants";
|
|
9
9
|
|
|
@@ -36,7 +36,7 @@ export function initialiseReleaseContexts(context) {
|
|
|
36
36
|
export function verifyReleaseContexts(context, contiunation) {
|
|
37
37
|
const { releaseContexts } = context;
|
|
38
38
|
|
|
39
|
-
return
|
|
39
|
+
return asynchronousEvery(releaseContexts, verifyReleaseContext, context, contiunation);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
export default {
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
get asyncEvery () {
|
|
13
|
-
return asyncEvery;
|
|
14
|
-
},
|
|
15
|
-
get asyncForEach () {
|
|
16
|
-
return asyncForEach;
|
|
17
|
-
},
|
|
18
|
-
get asyncReduce () {
|
|
19
|
-
return asyncReduce;
|
|
20
|
-
},
|
|
21
|
-
get asyncSome () {
|
|
22
|
-
return asyncSome;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
async function asyncSome(array, callback) {
|
|
26
|
-
let result = false;
|
|
27
|
-
const length = array.length;
|
|
28
|
-
for(let index = 0; index < length; index += 1){
|
|
29
|
-
const element = array[index];
|
|
30
|
-
result = !!await callback(element, index, array);
|
|
31
|
-
if (result) {
|
|
32
|
-
break;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return result;
|
|
36
|
-
}
|
|
37
|
-
async function asyncEvery(array, callback) {
|
|
38
|
-
let result = true;
|
|
39
|
-
const length = array.length;
|
|
40
|
-
for(let index = 0; index < length; index += 1){
|
|
41
|
-
const element = array[index];
|
|
42
|
-
result = !!await callback(element, index, array);
|
|
43
|
-
if (!result) {
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return result;
|
|
48
|
-
}
|
|
49
|
-
async function asyncReduce(array, callback, initialValue) {
|
|
50
|
-
let value = initialValue; ///
|
|
51
|
-
const length = array.length;
|
|
52
|
-
for(let index = 0; index < length; index += 1){
|
|
53
|
-
const element = array[index];
|
|
54
|
-
value = await callback(value, element, index, array);
|
|
55
|
-
}
|
|
56
|
-
return value;
|
|
57
|
-
}
|
|
58
|
-
async function asyncForEach(array, callback) {
|
|
59
|
-
const length = array.length;
|
|
60
|
-
for(let index = 0; index < length; index += 1){
|
|
61
|
-
const element = array[index];
|
|
62
|
-
await callback(element, index, array);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXN5bmNocm9ub3VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNTb21lKGFycmF5LCBjYWxsYmFjaykge1xuICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgY29uc3QgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmVzdWx0ID0gISFhd2FpdCBjYWxsYmFjayhlbGVtZW50LCBpbmRleCwgYXJyYXkpO1xuXG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRXZlcnkoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGxldCByZXN1bHQgPSB0cnVlO1xuXG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJlc3VsdCA9ICEhYXdhaXQgY2FsbGJhY2soZWxlbWVudCwgaW5kZXgsIGFycmF5KTtcblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNSZWR1Y2UoYXJyYXksIGNhbGxiYWNrLCBpbml0aWFsVmFsdWUpIHtcbiAgbGV0IHZhbHVlID0gaW5pdGlhbFZhbHVlOyAvLy9cblxuICBjb25zdCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICB2YWx1ZSA9IGF3YWl0IGNhbGxiYWNrKHZhbHVlLCBlbGVtZW50LCBpbmRleCwgYXJyYXkpO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaykge1xuICBjb25zdCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICBhd2FpdCBjYWxsYmFjayhlbGVtZW50LCBpbmRleCwgYXJyYXkpO1xuICB9XG59XG5cbiJdLCJuYW1lcyI6WyJhc3luY0V2ZXJ5IiwiYXN5bmNGb3JFYWNoIiwiYXN5bmNSZWR1Y2UiLCJhc3luY1NvbWUiLCJhcnJheSIsImNhbGxiYWNrIiwicmVzdWx0IiwibGVuZ3RoIiwiaW5kZXgiLCJlbGVtZW50IiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQW9Cc0JBO2VBQUFBOztRQWdDQUM7ZUFBQUE7O1FBZEFDO2VBQUFBOztRQXBDQUM7ZUFBQUE7OztBQUFmLGVBQWVBLFVBQVVDLEtBQUssRUFBRUMsUUFBUTtJQUM3QyxJQUFJQyxTQUFTO0lBRWIsTUFBTUMsU0FBU0gsTUFBTUcsTUFBTTtJQUUzQixJQUFLLElBQUlDLFFBQVEsR0FBR0EsUUFBUUQsUUFBUUMsU0FBUyxFQUFHO1FBQzlDLE1BQU1DLFVBQVVMLEtBQUssQ0FBQ0ksTUFBTTtRQUU1QkYsU0FBUyxDQUFDLENBQUMsTUFBTUQsU0FBU0ksU0FBU0QsT0FBT0o7UUFFMUMsSUFBSUUsUUFBUTtZQUNWO1FBQ0Y7SUFDRjtJQUVBLE9BQU9BO0FBQ1Q7QUFFTyxlQUFlTixXQUFXSSxLQUFLLEVBQUVDLFFBQVE7SUFDOUMsSUFBSUMsU0FBUztJQUViLE1BQU1DLFNBQVNILE1BQU1HLE1BQU07SUFFM0IsSUFBSyxJQUFJQyxRQUFRLEdBQUdBLFFBQVFELFFBQVFDLFNBQVMsRUFBRztRQUM5QyxNQUFNQyxVQUFVTCxLQUFLLENBQUNJLE1BQU07UUFFNUJGLFNBQVMsQ0FBQyxDQUFDLE1BQU1ELFNBQVNJLFNBQVNELE9BQU9KO1FBRTFDLElBQUksQ0FBQ0UsUUFBUTtZQUNYO1FBQ0Y7SUFDRjtJQUVBLE9BQU9BO0FBQ1Q7QUFFTyxlQUFlSixZQUFZRSxLQUFLLEVBQUVDLFFBQVEsRUFBRUssWUFBWTtJQUM3RCxJQUFJQyxRQUFRRCxjQUFjLEdBQUc7SUFFN0IsTUFBTUgsU0FBU0gsTUFBTUcsTUFBTTtJQUUzQixJQUFLLElBQUlDLFFBQVEsR0FBR0EsUUFBUUQsUUFBUUMsU0FBUyxFQUFHO1FBQzlDLE1BQU1DLFVBQVVMLEtBQUssQ0FBQ0ksTUFBTTtRQUU1QkcsUUFBUSxNQUFNTixTQUFTTSxPQUFPRixTQUFTRCxPQUFPSjtJQUNoRDtJQUVBLE9BQU9PO0FBQ1Q7QUFFTyxlQUFlVixhQUFhRyxLQUFLLEVBQUVDLFFBQVE7SUFDaEQsTUFBTUUsU0FBU0gsTUFBTUcsTUFBTTtJQUUzQixJQUFLLElBQUlDLFFBQVEsR0FBR0EsUUFBUUQsUUFBUUMsU0FBUyxFQUFHO1FBQzlDLE1BQU1DLFVBQVVMLEtBQUssQ0FBQ0ksTUFBTTtRQUU1QixNQUFNSCxTQUFTSSxTQUFTRCxPQUFPSjtJQUNqQztBQUNGIn0=
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
export async function asyncSome(array, callback) {
|
|
4
|
-
let result = false;
|
|
5
|
-
|
|
6
|
-
const length = array.length;
|
|
7
|
-
|
|
8
|
-
for (let index = 0; index < length; index += 1) {
|
|
9
|
-
const element = array[index];
|
|
10
|
-
|
|
11
|
-
result = !!await callback(element, index, array);
|
|
12
|
-
|
|
13
|
-
if (result) {
|
|
14
|
-
break;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return result;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export async function asyncEvery(array, callback) {
|
|
22
|
-
let result = true;
|
|
23
|
-
|
|
24
|
-
const length = array.length;
|
|
25
|
-
|
|
26
|
-
for (let index = 0; index < length; index += 1) {
|
|
27
|
-
const element = array[index];
|
|
28
|
-
|
|
29
|
-
result = !!await callback(element, index, array);
|
|
30
|
-
|
|
31
|
-
if (!result) {
|
|
32
|
-
break;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
return result;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export async function asyncReduce(array, callback, initialValue) {
|
|
40
|
-
let value = initialValue; ///
|
|
41
|
-
|
|
42
|
-
const length = array.length;
|
|
43
|
-
|
|
44
|
-
for (let index = 0; index < length; index += 1) {
|
|
45
|
-
const element = array[index];
|
|
46
|
-
|
|
47
|
-
value = await callback(value, element, index, array);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return value;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export async function asyncForEach(array, callback) {
|
|
54
|
-
const length = array.length;
|
|
55
|
-
|
|
56
|
-
for (let index = 0; index < length; index += 1) {
|
|
57
|
-
const element = array[index];
|
|
58
|
-
|
|
59
|
-
await callback(element, index, array);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|