ps-toolkit-ui 1.6.9 → 1.6.12
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/bundles/ps-toolkit-ui.umd.js +9 -4
- package/bundles/ps-toolkit-ui.umd.js.map +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js.map +1 -1
- package/esm2015/lib/classes/helper.class.js +4 -4
- package/esm2015/lib/classes/login.class.js +3 -2
- package/esm2015/lib/components/form/select/form.select.component.js +4 -1
- package/fesm2015/ps-toolkit-ui.js +8 -4
- package/fesm2015/ps-toolkit-ui.js.map +1 -1
- package/lib/classes/helper.class.d.ts +1 -1
- package/lib/classes/login.class.d.ts +1 -0
- package/package.json +1 -1
|
@@ -105,11 +105,11 @@ export class HelperClass {
|
|
|
105
105
|
}
|
|
106
106
|
return result;
|
|
107
107
|
}
|
|
108
|
-
static setCookie(name, value,
|
|
108
|
+
static setCookie(name, value, hours = 30 * 24) {
|
|
109
109
|
let expires = '';
|
|
110
|
-
if (
|
|
110
|
+
if (hours) {
|
|
111
111
|
const date = new Date();
|
|
112
|
-
date.setTime(date.getTime() + (
|
|
112
|
+
date.setTime(date.getTime() + (hours * 60 * 60 * 1000));
|
|
113
113
|
expires = '; expires=' + date.toUTCString();
|
|
114
114
|
}
|
|
115
115
|
document.cookie = name + '=' + (value || '') + expires + '; path=/';
|
|
@@ -321,4 +321,4 @@ export class HelperClass {
|
|
|
321
321
|
document.body.removeChild(input);
|
|
322
322
|
}
|
|
323
323
|
}
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL2hlbHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXhDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLFdBQVc7QUFDWCxNQUFNLE9BQU8sV0FBVztJQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQWU7UUFDN0IsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDbkQsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDckMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO2FBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxPQUFPLEVBQUU7WUFDM0MsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDMUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO2FBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDN0MsT0FBTyxHQUFHLENBQUMs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TUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUM3QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUNWO1lBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0MsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9CLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7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QUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNmLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbnB1dEVycm9yfSBmcm9tICcuL2VudW0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4vZm9ybS5jbGFzcyc7XHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdqYWxhbGktbW9tZW50JztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEhlbHBlckNsYXNzIHtcclxuICBzdGF0aWMgZ2V0TGFiZWwoaW5wOiBJbnB1dENsYXNzKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG4gPSBpbnAubGFiZWwgIT0gbnVsbCA/IGlucC5sYWJlbCA6IGlucC5uYW1lO1xyXG4gICAgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5SZXF1aXJlZCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvclJlcXVpcmVkJywgbik7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5JbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9ySW52YWxpZCcsIG4pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTGVuZ3RoJywgW24sIGlucC5taW5MZW5ndGhdKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk1pbkxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck1pbkxlbmd0aCcsIFtuLCBpbnAubWluTGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5NYXhMZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JNYXhMZW5ndGgnLCBbbiwgaW5wLm1heExlbmd0aF0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTWluQW1vdW50KSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTWluQW1vdW50JywgW24sIGlucC5taW5MZW5ndGhdKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk1heEFtb3VudCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck1heEFtb3VudCcsIFtuLCBpbnAubWF4TGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5FeHBpcmVkKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yRXhwaXJlZCcsIG4pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuV3JvbmcpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JXcm9uZycsIG4pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuRXJyb3IpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3InLCBuKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk5vdE1hdGNoKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTm90TWF0Y2gnLCBpbnAubWF0Y2gubmFtZSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5FeGlzdCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvckV4aXN0Jywgbik7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5Ob3RFeGlzdCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck5vdEV4aXN0Jywgbik7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5Ob3RBbGxvd2VkKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTm90QWxsb3dlZCcsIFtuLCBpbnAuYWxsb3dlZC5qb2luKCcsICcpXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5NYXhDb250ZW50KSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTWF4Q29udGVudCcsIFtuLCBpbnAubWF4TGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5VcGxvYWQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JVcGxvYWQnLCBuKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGRlc2MgPSBpbnAuZGVzY3JpcHRpb24gIT09IG51bGwgPyAnICgnICsgaW5wLmwoaW5wLmRlc2NyaXB0aW9uKSArICcpJyA6ICcnO1xyXG4gICAgcmV0dXJuIGlucC5sKG4pICsgZGVzYztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBuYXRpb25hbENvZGVWYWxpZChjKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIVJlZ0V4cCgvXlxcZHsxMH0kLykudGVzdChjKSB8fCBSZWdFeHAoL14oLilcXDErJC8pLnRlc3QoYykpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY2hlY2sgPSBwYXJzZUludChjWzldLCAxMCk7XHJcbiAgICBsZXQgc3VtID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgOTsgKytpKSB7XHJcbiAgICAgIHN1bSArPSBwYXJzZUludChjW2ldLCAxMCkgKiAoMTAgLSBpKTtcclxuICAgIH1cclxuICAgIHN1bSAlPSAxMTtcclxuICAgIHJldHVybiAoc3VtIDwgMiAmJiBjaGVjayA9PT0gc3VtKSB8fCAoc3VtID49IDIgJiYgY2hlY2sgKyBzdW0gPT09IDExKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBpc283MDY0TW9kOTdfMTAoaWJhbik6IG51bWJlcntcclxuICAgIGxldCByZW1haW5kZXIgPSBpYmFuO1xyXG4gICAgd2hpbGUgKHJlbWFpbmRlci5sZW5ndGggPiAyKXtcclxuICAgICAgY29uc3QgYmxvY2sgPSByZW1haW5kZXIuc2xpY2UoMCwgOSk7XHJcbiAgICAgIHJlbWFpbmRlciA9IHBhcnNlSW50KGJsb2NrLCAxMCkgJSA5NyArIHJlbWFpbmRlci5zbGljZShibG9jay5sZW5ndGgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYXJzZUludChyZW1haW5kZXIsIDEwKSAlIDk3O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHNoZWJhVmFsaWQoc3RyKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBwYXR0ZXJuID0gL0lSWzAtOV17MjR9LztcclxuICAgIGlmICghc3RyLnN0YXJ0V2l0aCgnSVInKSl7XHJcbiAgICAgIHN0ciA9ICdJUicgKyBzdHI7XHJcbiAgICB9XHJcbiAgICBpZiAoc3RyLmxlbmd0aCAhPT0gMjYpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghcGF0dGVybi50ZXN0KHN0cikpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBuZXdTdHIgPSBzdHIuc3Vic3RyKDQpO1xyXG4gICAgY29uc3QgZDEgPSBzdHIuY2hhckNvZGVBdCgwKSAtIDY1ICsgMTA7XHJcbiAgICBjb25zdCBkMiA9IHN0ci5jaGFyQ29kZUF0KDEpIC0gNjUgKyAxMDtcclxuICAgIG5ld1N0ciArPSBkMS50b1N0cmluZygpICsgZDIudG9TdHJpbmcoKSArIHN0ci5zdWJzdHIoMiwgMik7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaXNvNzA2NE1vZDk3XzEwKG5ld1N0cikgPT09IDE7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcG9zdGFsQ29kZVZhbGlkKGMpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBSZWdFeHAoL15cXGIoPyEoXFxkKVxcMXszfSlbMTMtOV17NH1bMTM0Ni05XVswMTMtOV17NX1cXGIkLykudGVzdChjKTtcclxuICB9XHJcbiAgc3RhdGljIHJhbmRvbShsZW5ndGgsIHVwcGVyID0gdHJ1ZSwgbG93ZXIgPSB0cnVlLCBudW0gPSB0cnVlKTogc3RyaW5nIHtcclxuICAgIGxldCByZXN1bHQgPSAnJztcclxuICAgIGNvbnN0IGNoYXJhY3RlcnMgPSBgJHt1cHBlciA/ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgOiAnJ30ke2xvd2VyID8gJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyA6ICcnfSR7bnVtID8gJzEyMzQ1Njc4OScgOiAnJ31gO1xyXG4gICAgY29uc3QgY2hhcmFjdGVyc0xlbmd0aCA9IGNoYXJhY3RlcnMubGVuZ3RoO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKyApIHtcclxuICAgICAgcmVzdWx0ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnNMZW5ndGgpKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG4gIHN0YXRpYyBzZXRDb29raWUobmFtZSwgdmFsdWUsIGRheXMpOiB2b2lkIHtcclxuICAgIGxldCBleHBpcmVzID0gJyc7XHJcbiAgICBpZiAoZGF5cykge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuICAgICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgKGRheXMgKiAyNCAqIDYwICogNjAgKiAxMDAwKSk7XHJcbiAgICAgIGV4cGlyZXMgPSAnOyBleHBpcmVzPScgKyBkYXRlLnRvVVRDU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgJz0nICsgKHZhbHVlIHx8ICcnKSAgKyBleHBpcmVzICsgJzsgcGF0aD0vJztcclxuICB9XHJcbiAgc3RhdGljIGdldENvb2tpZShuYW1lLCBkZWYgPSBudWxsKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG5hbWVFUSA9IG5hbWUgKyAnPSc7XHJcbiAgICBjb25zdCBjYSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpO1xyXG4gICAgZm9yIChsZXQgYyBvZiBjYSkge1xyXG4gICAgICB3aGlsZSAoYy5jaGFyQXQoMCkgPT09ICcgJyl7XHJcbiAgICAgICAgYyA9IGMuc3Vic3RyaW5nKDEsIGMubGVuZ3RoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYy5pbmRleE9mKG5hbWVFUSkgPT09IDApe1xyXG4gICAgICAgIHJldHVybiBjLnN1YnN0cmluZyhuYW1lRVEubGVuZ3RoLCBjLmxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBkZWY7XHJcbiAgfVxyXG4gIHN0YXRpYyBlcmFzZUNvb2tpZShuYW1lKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKVxyXG4gICAgICAuZm9yRWFjaCgoYykgPT4geyBkb2N1bWVudC5jb29raWUgPSBjLnJlcGxhY2UoL14gKy8sICcnKS5yZXBsYWNlKC89LiovLCAnPTtleHBpcmVzPScgKyBuZXcgRGF0ZSgpLnRvVVRDU3RyaW5nKCkgKyAnO3BhdGg9LycpOyB9KTtcclxuICB9XHJcbiAgc3RhdGljIGdldERhdGVEaWYobCwgZHQ6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgIGNvbnN0IG5vdyA9IG1vbWVudC5ub3coKTtcclxuICAgIGNvbnN0IGRpZiA9IChub3cgLSBkKSAvIDEwMDA7XHJcbiAgICBjb25zdCBoID0gTWF0aC5mbG9vcihkaWYgLyAzNjAwKTtcclxuICAgIGNvbnN0IG0gPSBNYXRoLmZsb29yKGRpZiAlIDM2MDAgLyA2MCk7XHJcbiAgICBpZiAoaCA8IDI0KVxyXG4gICAge1xyXG4gICAgICBsZXQgciA9IGggPiAwID8gbCgnSG91clAnLCBoLnRvU3RyaW5nKCkpIDogJyc7XHJcbiAgICAgIHIgKz0gciAhPT0gJycgJiYgbSA+IDAgPyBsKCdBbmQnKSA6ICcnO1xyXG4gICAgICByICs9IG0gPiAwID8gbCgnTWludXRlUCcsIG0udG9TdHJpbmcoKSkgOiAnJztcclxuICAgICAgciArPSByICE9PSAnJyA/ICcnIDogbCgnQUZldycpO1xyXG4gICAgICByICs9ICcgJyArIGwoJ0FnbycpO1xyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImx0clwiPicgKyBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCBISDptbScpICsgJzwvZGl2Pic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRSb3dFbnVtKGwsIGUsIGR0KTogc3RyaW5ne1xyXG4gICAgY29uc3QgdiA9IGUuZmluZCh4ID0+IHguVmFsdWUgPT09IGR0KTtcclxuICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCJzdGF0dXMgJHt2LkNsYXNzfVwiPmAgKyBsKHYuTmFtZSkgKyAnPC9zcGFuPic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXROb3coKTogYW55e1xyXG4gICAgcmV0dXJuIG1vbWVudC5ub3coKTtcclxuICB9XHJcbiAgc3RhdGljIGdldE1vbWVudChpID0gbnVsbCwgZiA9IG51bGwpOiBhbnl7XHJcbiAgICBpZiAoaSA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuIG1vbWVudCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vbWVudChpLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGdldERhdGVSZW1haW4obCwgZHQ6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgIGNvbnN0IG5vdyA9IG1vbWVudC5ub3coKTtcclxuICAgIGNvbnN0IGRpZiA9IChkIC0gbm93KSAvIDEwMDA7XHJcbiAgICBpZiAoZGlmIDw9IDApXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiBsKCdFbmRlZCcpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaCA9IE1hdGguZmxvb3IoZGlmIC8gMzYwMCk7XHJcbiAgICBjb25zdCBtID0gTWF0aC5mbG9vcihkaWYgJSAzNjAwIC8gNjApO1xyXG4gICAgaWYgKGggPCAyNClcclxuICAgIHtcclxuICAgICAgbGV0IHIgPSBoID4gMCA/IGwoJ0hvdXJQJywgaC50b1N0cmluZygpKSA6ICcnO1xyXG4gICAgICByICs9IHIgIT09ICcnICYmIG0gPiAwID8gbCgnQW5kJykgOiAnJztcclxuICAgICAgciArPSBtID4gMCA/IGwoJ01pbnV0ZVAnLCBtLnRvU3RyaW5nKCkpIDogJyc7XHJcbiAgICAgIHIgKz0gciAhPT0gJycgPyAnJyA6IGwoJ0FGZXcnKTtcclxuICAgICAgciArPSAnICcgKyBsKCdMYXRlcicpO1xyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImx0clwiPicgKyBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCBISDptbScpICsgJzwvZGl2Pic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXREYXRlKGR0OiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nID0gJ2pZWVlZL2pNTS9qREQnKTogc3RyaW5ne1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGR0ID09PSBudWxsKXtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZCA9IHBhcnNlSW50KGR0LnN1YnN0cmluZyg2LCBkdC5sZW5ndGggLSAyKSwgMTApO1xyXG4gICAgICByZXR1cm4gbW9tZW50KGQpLmxvY2FsZSgnZmEnKS5mb3JtYXQoZm9ybWF0KTtcclxuICAgIH1jYXRjaCAoZSkge1xyXG4gICAgICByZXR1cm4gZHQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRUaW1lKGR0OiBhbnkpOiBzdHJpbmd7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoZHQgPT09IG51bGwpe1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gYCR7KGR0LkhvdXJzID4gOSA/IGR0LkhvdXJzIDogYDAke2R0LkhvdXJzfWApfTokeyhkdC5NaW51dGVzID4gOSA/IGR0Lk1pbnV0ZXMgOiBgMCR7ZHQuTWludXRlc31gKX1gO1xyXG4gICAgfWNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiBkdDtcclxuICAgIH1cclxuICB9XHJcbiAgc3RhdGljIGdldERhdGVUaW1lKGR0OiBzdHJpbmcpOiBzdHJpbmd7XHJcbiAgICBpZiAoZHQgPT09IG51bGwpe1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkID0gcGFyc2VJbnQoZHQuc3Vic3RyaW5nKDYsIGR0Lmxlbmd0aCAtIDIpLCAxMCk7XHJcbiAgICByZXR1cm4gbW9tZW50KGQpLmxvY2FsZSgnZmEnKS5mb3JtYXQoJ2pZWVlZL2pNTS9qREQgSEg6bW0nKTtcclxuICB9XHJcbiAgc3RhdGljIGdldEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc3VmZml4ID0gWyAnQicsICdLQicsICdNQicsICdHQicsICdUQiddO1xyXG4gICAgbGV0IGRibFNCeXRlID0gYnl0ZXM7XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBmb3IgKDsgaSA8IHN1ZmZpeC5sZW5ndGggJiYgYnl0ZXMgPj0gMTAyNDsgaSsrLCBieXRlcyAvPSAxMDI0KVxyXG4gICAge1xyXG4gICAgICBkYmxTQnl0ZSA9IGJ5dGVzIC8gMTAyNC4wO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke2RibFNCeXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcclxuICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAwLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDEsXHJcbiAgICB9KX0gJHtzdWZmaXhbaV19YDtcclxuICB9XHJcbiAgc3RhdGljIGdldFBEYXRlKGwsIHMpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gcy5yZXBsYWNlKC9Ib3VyL2csIGwoJ0hvdXInKSlcclxuICAgICAgLnJlcGxhY2UoL0xlc3NUaGFuTWludXRlL2csIGwoJ0xlc3NUaGFuTWludXRlJykpXHJcbiAgICAgIC5yZXBsYWNlKC9NaW51dGUvZywgbCgnTWludXRlJykpXHJcbiAgICAgIC5yZXBsYWNlKC9BbmQvZywgbCgnQW5kJykpXHJcbiAgICAgIC5yZXBsYWNlKC9BRmV3L2csIGwoJ0FGZXcnKSlcclxuICAgICAgLnJlcGxhY2UoL0ZpbmlzaGVkL2csIGwoJ0ZpbmlzaGVkJykpXHJcbiAgICAgIC5yZXBsYWNlKC9EYXkvZywgbCgnRGF5JykpXHJcbiAgICAgIC5yZXBsYWNlKC9MYXRlci9nLCBsKCdMYXRlcicpKVxyXG4gICAgICAucmVwbGFjZSgvQWdvL2csIGwoJ0FnbycpKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjbG9uZTxUPih2OiBUKTogVCB7XHJcbiAgICBpZiAodiA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29weSA9IG5ldyAodi5jb25zdHJ1Y3RvciBhcyB7IG5ldygpIH0pKCk7XHJcbiAgICBPYmplY3QuYXNzaWduKGNvcHksIHYpO1xyXG4gICAgcmV0dXJuIGNvcHk7XHJcbiAgfVxyXG4gIHN0YXRpYyBjbG9uZUpzb24oaW5wKTogYW55IHtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGlucCkpO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0TmFtZShuKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIG4ucmVwbGFjZSgv2qkvZywgJ9mDJykucmVwbGFjZSgv24wvZywgJ9mKJykucmVwbGFjZSgv2KIvZywgJ9iiJyk7XHJcbiAgfVxyXG4gIHN0YXRpYyBhZGROb3RpZmljYXRpb24obSwgZSA9IHRydWUpOiB2b2lke1xyXG4gICAgY29uc3QgaWQgPSBIZWxwZXJDbGFzcy5yYW5kb20oMjApO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXHJcbiAgICAkKCcjTm90aWZpY2F0aW9ucycpLmFwcGVuZCgnPGRpdiBpZD1cIicgKyBpZCArICdcIiBjbGFzcz1cImNvblwiPjxkaXYgY2xhc3M9XCJpdGVtICcgKyAoZSA/ICdlcnJvcicgOiAnc3VjY2VzcycpICsgJ1wiPjxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPjxkaXY+JyArIG0gKyAnPC9kaXY+PC9kaXY+PC9kaXY+Jyk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZCA9ICQoJyMnICsgaWQpO1xyXG4gICAgICBkLmZhZGVPdXQoMzAwLCAoKSA9PiB7XHJcbiAgICAgICAgZC5yZW1vdmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9LCA1MDAwKTtcclxuICB9XHJcbiAgc3RhdGljIGNoZWNrQ2FydERpZ2l0KGNvZGUpOiBib29sZWFue1xyXG4gICAgY29uc3QgbCA9IGNvZGUubGVuZ3RoO1xyXG4gICAgaWYgKGwgPCAxNiB8fCBwYXJzZUludChjb2RlLnN1YnN0cigxLCAxMCksIDEwKSA9PT0gMCB8fFxyXG4gICAgICBwYXJzZUludChjb2RlLnN1YnN0cigxMCwgNiksIDEwKSA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBsZXQgcyA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE2OyBpKyspe1xyXG4gICAgICBjb25zdCBrID0gaSAlIDIgPT09IDAgPyAyIDogMTtcclxuICAgICAgY29uc3QgZCA9IHBhcnNlSW50KGNvZGUuc3Vic3RyKGksIDEpLCAxMCkgKiBrO1xyXG4gICAgICBzICs9IGQgPiA5ID8gZCAtIDkgOiBkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHMgJSAxMCA9PT0gMDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXREYXRhKGtleSwgc3RhdGUsIHBhcmVudCk6IGFueSB7XHJcbiAgICBjb25zdCBkYXRhID0gW107XHJcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5zbmFwc2hvdC5kYXRhICYmIHBhcmVudC5zbmFwc2hvdC5kYXRhW2tleV0pIHtcclxuICAgICAgZGF0YS5wdXNoKHBhcmVudC5zbmFwc2hvdC5kYXRhW2tleV0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdGF0ZSAmJiBwYXJlbnQpIHtcclxuICAgICAgZGF0YS5wdXNoKC4uLnRoaXMuZ2V0RGF0YShrZXksIHN0YXRlLCBzdGF0ZS5maXJzdENoaWxkKHBhcmVudCkpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldENvbG9yQnlCZ0NvbG9yKGJnQ29sb3IpOiBzdHJpbmd7XHJcbiAgICBpZiAoIWJnQ29sb3IpIHsgcmV0dXJuICcnOyB9XHJcbiAgICByZXR1cm4gKHBhcnNlSW50KGJnQ29sb3IucmVwbGFjZSgnIycsICcnKSwgMTYpID4gMHhmZmZmZmYgLyAyKSA/ICcjMDAwJyA6ICcjZmZmJztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBxdWVyeVN0cmluZ1RvSlNPTihxcyA9IG51bGwpOiBhbnkge1xyXG4gICAgcXMgPSBxcyB8fCBsb2NhdGlvbi5zZWFyY2guc2xpY2UoMSk7XHJcbiAgICBpZiAocXMgPT09ICcnKXtcclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFpcnMgPSBxcy5zcGxpdCgnJicpO1xyXG4gICAgY29uc3QgcmVzdWx0ID0ge307XHJcbiAgICBwYWlycy5mb3JFYWNoKChwKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBhaXIgPSBwLnNwbGl0KCc9Jyk7XHJcbiAgICAgIGNvbnN0IGtleSA9IHBhaXJbMF0ucmVwbGFjZSgnJTVCJTVEJywgJycpO1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudChwYWlyWzFdIHx8ICcnKTtcclxuXHJcbiAgICAgIGlmICggcmVzdWx0W2tleV0gKSB7XHJcbiAgICAgICAgaWYgKCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoIHJlc3VsdFtrZXldICkgPT09ICdbb2JqZWN0IEFycmF5XScgKSB7XHJcbiAgICAgICAgICByZXN1bHRba2V5XS5wdXNoKCB2YWx1ZSApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHRba2V5XSA9IFsgcmVzdWx0W2tleV0sIHZhbHVlIF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocmVzdWx0KSk7XHJcbiAgfVxyXG4gIHN0YXRpYyBjb3B5VG9DbGlwYm9hcmQodGV4dCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgaW5wdXQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIHRleHQpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnB1dCk7XHJcbiAgICBpbnB1dC5zZWxlY3QoKTtcclxuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlucHV0KTtcclxuICB9XHJcbn1cclxuIl19
|
|
324
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL2hlbHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXhDLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVCLFdBQVc7QUFDWCxNQUFNLE9BQU8sV0FBVztJQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQWU7UUFDN0IsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDbkQsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDckMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO2FBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxPQUFPLEVBQUU7WUFDM0MsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDMUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO2FBQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxTQUFTLEVBQUU7WUFDN0MsT0FBTyxHQUFHLENBQUMs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QUk7UUFDekIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZixRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5wdXRFcnJvcn0gZnJvbSAnLi9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnamFsYWxpLW1vbWVudCc7XHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBIZWxwZXJDbGFzcyB7XHJcbiAgc3RhdGljIGdldExhYmVsKGlucDogSW5wdXRDbGFzcyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBuID0gaW5wLmxhYmVsICE9IG51bGwgPyBpbnAubGFiZWwgOiBpbnAubmFtZTtcclxuICAgIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuUmVxdWlyZWQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JSZXF1aXJlZCcsIG4pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuSW52YWxpZCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvckludmFsaWQnLCBuKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLkxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvckxlbmd0aCcsIFtuLCBpbnAubWluTGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5NaW5MZW5ndGgpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JNaW5MZW5ndGgnLCBbbiwgaW5wLm1pbkxlbmd0aF0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTWF4TGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yTWF4TGVuZ3RoJywgW24sIGlucC5tYXhMZW5ndGhdKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLk1pbkFtb3VudCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck1pbkFtb3VudCcsIFtuLCBpbnAubWluTGVuZ3RoXSk7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5NYXhBbW91bnQpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JNYXhBbW91bnQnLCBbbiwgaW5wLm1heExlbmd0aF0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuRXhwaXJlZCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvckV4cGlyZWQnLCBuKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLldyb25nKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yV3JvbmcnLCBuKTtcclxuICAgIH0gZWxzZSBpZiAoaW5wLmVycm9yID09PSBJbnB1dEVycm9yLkVycm9yKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yJywgbik7XHJcbiAgICB9IGVsc2UgaWYgKGlucC5lcnJvciA9PT0gSW5wdXRFcnJvci5Ob3RNYXRjaCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck5vdE1hdGNoJywgaW5wLm1hdGNoLm5hbWUpO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuRXhpc3QpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JFeGlzdCcsIG4pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTm90RXhpc3QpIHtcclxuICAgICAgcmV0dXJuIGlucC5sKCdGb3JtRXJyb3JOb3RFeGlzdCcsIG4pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTm90QWxsb3dlZCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck5vdEFsbG93ZWQnLCBbbiwgaW5wLmFsbG93ZWQuam9pbignLCAnKV0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuTWF4Q29udGVudCkge1xyXG4gICAgICByZXR1cm4gaW5wLmwoJ0Zvcm1FcnJvck1heENvbnRlbnQnLCBbbiwgaW5wLm1heExlbmd0aF0pO1xyXG4gICAgfSBlbHNlIGlmIChpbnAuZXJyb3IgPT09IElucHV0RXJyb3IuVXBsb2FkKSB7XHJcbiAgICAgIHJldHVybiBpbnAubCgnRm9ybUVycm9yVXBsb2FkJywgbik7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkZXNjID0gaW5wLmRlc2NyaXB0aW9uICE9PSBudWxsID8gJyAoJyArIGlucC5sKGlucC5kZXNjcmlwdGlvbikgKyAnKScgOiAnJztcclxuICAgIHJldHVybiBpbnAubChuKSArIGRlc2M7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgbmF0aW9uYWxDb2RlVmFsaWQoYyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFSZWdFeHAoL15cXGR7MTB9JC8pLnRlc3QoYykgfHwgUmVnRXhwKC9eKC4pXFwxKyQvKS50ZXN0KGMpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNoZWNrID0gcGFyc2VJbnQoY1s5XSwgMTApO1xyXG4gICAgbGV0IHN1bSA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDk7ICsraSkge1xyXG4gICAgICBzdW0gKz0gcGFyc2VJbnQoY1tpXSwgMTApICogKDEwIC0gaSk7XHJcbiAgICB9XHJcbiAgICBzdW0gJT0gMTE7XHJcbiAgICByZXR1cm4gKHN1bSA8IDIgJiYgY2hlY2sgPT09IHN1bSkgfHwgKHN1bSA+PSAyICYmIGNoZWNrICsgc3VtID09PSAxMSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgaXNvNzA2NE1vZDk3XzEwKGliYW4pOiBudW1iZXJ7XHJcbiAgICBsZXQgcmVtYWluZGVyID0gaWJhbjtcclxuICAgIHdoaWxlIChyZW1haW5kZXIubGVuZ3RoID4gMil7XHJcbiAgICAgIGNvbnN0IGJsb2NrID0gcmVtYWluZGVyLnNsaWNlKDAsIDkpO1xyXG4gICAgICByZW1haW5kZXIgPSBwYXJzZUludChibG9jaywgMTApICUgOTcgKyByZW1haW5kZXIuc2xpY2UoYmxvY2subGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcGFyc2VJbnQocmVtYWluZGVyLCAxMCkgJSA5NztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBzaGViYVZhbGlkKHN0cik6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcGF0dGVybiA9IC9JUlswLTldezI0fS87XHJcbiAgICBpZiAoIXN0ci5zdGFydFdpdGgoJ0lSJykpe1xyXG4gICAgICBzdHIgPSAnSVInICsgc3RyO1xyXG4gICAgfVxyXG4gICAgaWYgKHN0ci5sZW5ndGggIT09IDI2KSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXBhdHRlcm4udGVzdChzdHIpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbmV3U3RyID0gc3RyLnN1YnN0cig0KTtcclxuICAgIGNvbnN0IGQxID0gc3RyLmNoYXJDb2RlQXQoMCkgLSA2NSArIDEwO1xyXG4gICAgY29uc3QgZDIgPSBzdHIuY2hhckNvZGVBdCgxKSAtIDY1ICsgMTA7XHJcbiAgICBuZXdTdHIgKz0gZDEudG9TdHJpbmcoKSArIGQyLnRvU3RyaW5nKCkgKyBzdHIuc3Vic3RyKDIsIDIpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmlzbzcwNjRNb2Q5N18xMChuZXdTdHIpID09PSAxO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHBvc3RhbENvZGVWYWxpZChjKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gUmVnRXhwKC9eXFxiKD8hKFxcZClcXDF7M30pWzEzLTldezR9WzEzNDYtOV1bMDEzLTldezV9XFxiJC8pLnRlc3QoYyk7XHJcbiAgfVxyXG4gIHN0YXRpYyByYW5kb20obGVuZ3RoLCB1cHBlciA9IHRydWUsIGxvd2VyID0gdHJ1ZSwgbnVtID0gdHJ1ZSk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0ID0gJyc7XHJcbiAgICBjb25zdCBjaGFyYWN0ZXJzID0gYCR7dXBwZXIgPyAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonIDogJyd9JHtsb3dlciA/ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgOiAnJ30ke251bSA/ICcxMjM0NTY3ODknIDogJyd9YDtcclxuICAgIGNvbnN0IGNoYXJhY3RlcnNMZW5ndGggPSBjaGFyYWN0ZXJzLmxlbmd0aDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKysgKSB7XHJcbiAgICAgIHJlc3VsdCArPSBjaGFyYWN0ZXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzTGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuICBzdGF0aWMgc2V0Q29va2llKG5hbWUsIHZhbHVlLCBob3VycyA9IDMwICogMjQpOiB2b2lkIHtcclxuICAgIGxldCBleHBpcmVzID0gJyc7XHJcbiAgICBpZiAoaG91cnMpIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIChob3VycyAqIDYwICogNjAgKiAxMDAwKSk7XHJcbiAgICAgIGV4cGlyZXMgPSAnOyBleHBpcmVzPScgKyBkYXRlLnRvVVRDU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgJz0nICsgKHZhbHVlIHx8ICcnKSAgKyBleHBpcmVzICsgJzsgcGF0aD0vJztcclxuICB9XHJcbiAgc3RhdGljIGdldENvb2tpZShuYW1lLCBkZWYgPSBudWxsKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG5hbWVFUSA9IG5hbWUgKyAnPSc7XHJcbiAgICBjb25zdCBjYSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpO1xyXG4gICAgZm9yIChsZXQgYyBvZiBjYSkge1xyXG4gICAgICB3aGlsZSAoYy5jaGFyQXQoMCkgPT09ICcgJyl7XHJcbiAgICAgICAgYyA9IGMuc3Vic3RyaW5nKDEsIGMubGVuZ3RoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYy5pbmRleE9mKG5hbWVFUSkgPT09IDApe1xyXG4gICAgICAgIHJldHVybiBjLnN1YnN0cmluZyhuYW1lRVEubGVuZ3RoLCBjLmxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBkZWY7XHJcbiAgfVxyXG4gIHN0YXRpYyBlcmFzZUNvb2tpZShuYW1lKTogdm9pZCB7XHJcbiAgICBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKVxyXG4gICAgICAuZm9yRWFjaCgoYykgPT4geyBkb2N1bWVudC5jb29raWUgPSBjLnJlcGxhY2UoL14gKy8sICcnKS5yZXBsYWNlKC89LiovLCAnPTtleHBpcmVzPScgKyBuZXcgRGF0ZSgpLnRvVVRDU3RyaW5nKCkgKyAnO3BhdGg9LycpOyB9KTtcclxuICB9XHJcbiAgc3RhdGljIGdldERhdGVEaWYobCwgZHQ6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgIGNvbnN0IG5vdyA9IG1vbWVudC5ub3coKTtcclxuICAgIGNvbnN0IGRpZiA9IChub3cgLSBkKSAvIDEwMDA7XHJcbiAgICBjb25zdCBoID0gTWF0aC5mbG9vcihkaWYgLyAzNjAwKTtcclxuICAgIGNvbnN0IG0gPSBNYXRoLmZsb29yKGRpZiAlIDM2MDAgLyA2MCk7XHJcbiAgICBpZiAoaCA8IDI0KVxyXG4gICAge1xyXG4gICAgICBsZXQgciA9IGggPiAwID8gbCgnSG91clAnLCBoLnRvU3RyaW5nKCkpIDogJyc7XHJcbiAgICAgIHIgKz0gciAhPT0gJycgJiYgbSA+IDAgPyBsKCdBbmQnKSA6ICcnO1xyXG4gICAgICByICs9IG0gPiAwID8gbCgnTWludXRlUCcsIG0udG9TdHJpbmcoKSkgOiAnJztcclxuICAgICAgciArPSByICE9PSAnJyA/ICcnIDogbCgnQUZldycpO1xyXG4gICAgICByICs9ICcgJyArIGwoJ0FnbycpO1xyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImx0clwiPicgKyBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCBISDptbScpICsgJzwvZGl2Pic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRSb3dFbnVtKGwsIGUsIGR0KTogc3RyaW5ne1xyXG4gICAgY29uc3QgdiA9IGUuZmluZCh4ID0+IHguVmFsdWUgPT09IGR0KTtcclxuICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCJzdGF0dXMgJHt2LkNsYXNzfVwiPmAgKyBsKHYuTmFtZSkgKyAnPC9zcGFuPic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXROb3coKTogYW55e1xyXG4gICAgcmV0dXJuIG1vbWVudC5ub3coKTtcclxuICB9XHJcbiAgc3RhdGljIGdldE1vbWVudChpID0gbnVsbCwgZiA9IG51bGwpOiBhbnl7XHJcbiAgICBpZiAoaSA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuIG1vbWVudCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vbWVudChpLCBmKTtcclxuICB9XHJcbiAgc3RhdGljIGdldERhdGVSZW1haW4obCwgZHQ6IHN0cmluZyk6IHN0cmluZ3tcclxuICAgIGNvbnN0IGQgPSBwYXJzZUludChkdC5zdWJzdHJpbmcoNiwgZHQubGVuZ3RoIC0gMiksIDEwKTtcclxuICAgIGNvbnN0IG5vdyA9IG1vbWVudC5ub3coKTtcclxuICAgIGNvbnN0IGRpZiA9IChkIC0gbm93KSAvIDEwMDA7XHJcbiAgICBpZiAoZGlmIDw9IDApXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiBsKCdFbmRlZCcpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaCA9IE1hdGguZmxvb3IoZGlmIC8gMzYwMCk7XHJcbiAgICBjb25zdCBtID0gTWF0aC5mbG9vcihkaWYgJSAzNjAwIC8gNjApO1xyXG4gICAgaWYgKGggPCAyNClcclxuICAgIHtcclxuICAgICAgbGV0IHIgPSBoID4gMCA/IGwoJ0hvdXJQJywgaC50b1N0cmluZygpKSA6ICcnO1xyXG4gICAgICByICs9IHIgIT09ICcnICYmIG0gPiAwID8gbCgnQW5kJykgOiAnJztcclxuICAgICAgciArPSBtID4gMCA/IGwoJ01pbnV0ZVAnLCBtLnRvU3RyaW5nKCkpIDogJyc7XHJcbiAgICAgIHIgKz0gciAhPT0gJycgPyAnJyA6IGwoJ0FGZXcnKTtcclxuICAgICAgciArPSAnICcgKyBsKCdMYXRlcicpO1xyXG4gICAgICByZXR1cm4gcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnPGRpdiBjbGFzcz1cImx0clwiPicgKyBtb21lbnQoZCkubG9jYWxlKCdmYScpLmZvcm1hdCgnallZWVkvak1NL2pERCBISDptbScpICsgJzwvZGl2Pic7XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXREYXRlKGR0OiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nID0gJ2pZWVlZL2pNTS9qREQnKTogc3RyaW5ne1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKGR0ID09PSBudWxsKXtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZCA9IHBhcnNlSW50KGR0LnN1YnN0cmluZyg2LCBkdC5sZW5ndGggLSAyKSwgMTApO1xyXG4gICAgICByZXR1cm4gbW9tZW50KGQpLmxvY2FsZSgnZmEnKS5mb3JtYXQoZm9ybWF0KTtcclxuICAgIH1jYXRjaCAoZSkge1xyXG4gICAgICByZXR1cm4gZHQ7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHN0YXRpYyBnZXRUaW1lKGR0OiBhbnkpOiBzdHJpbmd7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoZHQgPT09IG51bGwpe1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gYCR7KGR0LkhvdXJzID4gOSA/IGR0LkhvdXJzIDogYDAke2R0LkhvdXJzfWApfTokeyhkdC5NaW51dGVzID4gOSA/IGR0Lk1pbnV0ZXMgOiBgMCR7ZHQuTWludXRlc31gKX1gO1xyXG4gICAgfWNhdGNoIChlKSB7XHJcbiAgICAgIHJldHVybiBkdDtcclxuICAgIH1cclxuICB9XHJcbiAgc3RhdGljIGdldERhdGVUaW1lKGR0OiBzdHJpbmcpOiBzdHJpbmd7XHJcbiAgICBpZiAoZHQgPT09IG51bGwpe1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICBjb25zdCBkID0gcGFyc2VJbnQoZHQuc3Vic3RyaW5nKDYsIGR0Lmxlbmd0aCAtIDIpLCAxMCk7XHJcbiAgICByZXR1cm4gbW9tZW50KGQpLmxvY2FsZSgnZmEnKS5mb3JtYXQoJ2pZWVlZL2pNTS9qREQgSEg6bW0nKTtcclxuICB9XHJcbiAgc3RhdGljIGdldEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qgc3VmZml4ID0gWyAnQicsICdLQicsICdNQicsICdHQicsICdUQiddO1xyXG4gICAgbGV0IGRibFNCeXRlID0gYnl0ZXM7XHJcbiAgICBsZXQgaSA9IDA7XHJcbiAgICBmb3IgKDsgaSA8IHN1ZmZpeC5sZW5ndGggJiYgYnl0ZXMgPj0gMTAyNDsgaSsrLCBieXRlcyAvPSAxMDI0KVxyXG4gICAge1xyXG4gICAgICBkYmxTQnl0ZSA9IGJ5dGVzIC8gMTAyNC4wO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke2RibFNCeXRlLnRvTG9jYWxlU3RyaW5nKCdlbi1VUycsIHtcclxuICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAwLFxyXG4gICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDEsXHJcbiAgICB9KX0gJHtzdWZmaXhbaV19YDtcclxuICB9XHJcbiAgc3RhdGljIGdldFBEYXRlKGwsIHMpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gcy5yZXBsYWNlKC9Ib3VyL2csIGwoJ0hvdXInKSlcclxuICAgICAgLnJlcGxhY2UoL0xlc3NUaGFuTWludXRlL2csIGwoJ0xlc3NUaGFuTWludXRlJykpXHJcbiAgICAgIC5yZXBsYWNlKC9NaW51dGUvZywgbCgnTWludXRlJykpXHJcbiAgICAgIC5yZXBsYWNlKC9BbmQvZywgbCgnQW5kJykpXHJcbiAgICAgIC5yZXBsYWNlKC9BRmV3L2csIGwoJ0FGZXcnKSlcclxuICAgICAgLnJlcGxhY2UoL0ZpbmlzaGVkL2csIGwoJ0ZpbmlzaGVkJykpXHJcbiAgICAgIC5yZXBsYWNlKC9EYXkvZywgbCgnRGF5JykpXHJcbiAgICAgIC5yZXBsYWNlKC9MYXRlci9nLCBsKCdMYXRlcicpKVxyXG4gICAgICAucmVwbGFjZSgvQWdvL2csIGwoJ0FnbycpKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjbG9uZTxUPih2OiBUKTogVCB7XHJcbiAgICBpZiAodiA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29weSA9IG5ldyAodi5jb25zdHJ1Y3RvciBhcyB7IG5ldygpIH0pKCk7XHJcbiAgICBPYmplY3QuYXNzaWduKGNvcHksIHYpO1xyXG4gICAgcmV0dXJuIGNvcHk7XHJcbiAgfVxyXG4gIHN0YXRpYyBjbG9uZUpzb24oaW5wKTogYW55IHtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGlucCkpO1xyXG4gIH1cclxuICBzdGF0aWMgZ2V0TmFtZShuKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIG4ucmVwbGFjZSgv2qkvZywgJ9mDJykucmVwbGFjZSgv24wvZywgJ9mKJykucmVwbGFjZSgv2KIvZywgJ9iiJyk7XHJcbiAgfVxyXG4gIHN0YXRpYyBhZGROb3RpZmljYXRpb24obSwgZSA9IHRydWUpOiB2b2lke1xyXG4gICAgY29uc3QgaWQgPSBIZWxwZXJDbGFzcy5yYW5kb20oMjApO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXHJcbiAgICAkKCcjTm90aWZpY2F0aW9ucycpLmFwcGVuZCgnPGRpdiBpZD1cIicgKyBpZCArICdcIiBjbGFzcz1cImNvblwiPjxkaXYgY2xhc3M9XCJpdGVtICcgKyAoZSA/ICdlcnJvcicgOiAnc3VjY2VzcycpICsgJ1wiPjxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPjxkaXY+JyArIG0gKyAnPC9kaXY+PC9kaXY+PC9kaXY+Jyk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgZCA9ICQoJyMnICsgaWQpO1xyXG4gICAgICBkLmZhZGVPdXQoMzAwLCAoKSA9PiB7XHJcbiAgICAgICAgZC5yZW1vdmUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9LCA1MDAwKTtcclxuICB9XHJcbiAgc3RhdGljIGNoZWNrQ2FydERpZ2l0KGNvZGUpOiBib29sZWFue1xyXG4gICAgY29uc3QgbCA9IGNvZGUubGVuZ3RoO1xyXG4gICAgaWYgKGwgPCAxNiB8fCBwYXJzZUludChjb2RlLnN1YnN0cigxLCAxMCksIDEwKSA9PT0gMCB8fFxyXG4gICAgICBwYXJzZUludChjb2RlLnN1YnN0cigxMCwgNiksIDEwKSA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBsZXQgcyA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDE2OyBpKyspe1xyXG4gICAgICBjb25zdCBrID0gaSAlIDIgPT09IDAgPyAyIDogMTtcclxuICAgICAgY29uc3QgZCA9IHBhcnNlSW50KGNvZGUuc3Vic3RyKGksIDEpLCAxMCkgKiBrO1xyXG4gICAgICBzICs9IGQgPiA5ID8gZCAtIDkgOiBkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHMgJSAxMCA9PT0gMDtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBnZXREYXRhKGtleSwgc3RhdGUsIHBhcmVudCk6IGFueSB7XHJcbiAgICBjb25zdCBkYXRhID0gW107XHJcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5zbmFwc2hvdC5kYXRhICYmIHBhcmVudC5zbmFwc2hvdC5kYXRhW2tleV0pIHtcclxuICAgICAgZGF0YS5wdXNoKHBhcmVudC5zbmFwc2hvdC5kYXRhW2tleV0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdGF0ZSAmJiBwYXJlbnQpIHtcclxuICAgICAgZGF0YS5wdXNoKC4uLnRoaXMuZ2V0RGF0YShrZXksIHN0YXRlLCBzdGF0ZS5maXJzdENoaWxkKHBhcmVudCkpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdldENvbG9yQnlCZ0NvbG9yKGJnQ29sb3IpOiBzdHJpbmd7XHJcbiAgICBpZiAoIWJnQ29sb3IpIHsgcmV0dXJuICcnOyB9XHJcbiAgICByZXR1cm4gKHBhcnNlSW50KGJnQ29sb3IucmVwbGFjZSgnIycsICcnKSwgMTYpID4gMHhmZmZmZmYgLyAyKSA/ICcjMDAwJyA6ICcjZmZmJztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBxdWVyeVN0cmluZ1RvSlNPTihxcyA9IG51bGwpOiBhbnkge1xyXG4gICAgcXMgPSBxcyB8fCBsb2NhdGlvbi5zZWFyY2guc2xpY2UoMSk7XHJcbiAgICBpZiAocXMgPT09ICcnKXtcclxuICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFpcnMgPSBxcy5zcGxpdCgnJicpO1xyXG4gICAgY29uc3QgcmVzdWx0ID0ge307XHJcbiAgICBwYWlycy5mb3JFYWNoKChwKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBhaXIgPSBwLnNwbGl0KCc9Jyk7XHJcbiAgICAgIGNvbnN0IGtleSA9IHBhaXJbMF0ucmVwbGFjZSgnJTVCJTVEJywgJycpO1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGRlY29kZVVSSUNvbXBvbmVudChwYWlyWzFdIHx8ICcnKTtcclxuXHJcbiAgICAgIGlmICggcmVzdWx0W2tleV0gKSB7XHJcbiAgICAgICAgaWYgKCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoIHJlc3VsdFtrZXldICkgPT09ICdbb2JqZWN0IEFycmF5XScgKSB7XHJcbiAgICAgICAgICByZXN1bHRba2V5XS5wdXNoKCB2YWx1ZSApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXN1bHRba2V5XSA9IFsgcmVzdWx0W2tleV0sIHZhbHVlIF07XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocmVzdWx0KSk7XHJcbiAgfVxyXG4gIHN0YXRpYyBjb3B5VG9DbGlwYm9hcmQodGV4dCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgaW5wdXQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIHRleHQpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnB1dCk7XHJcbiAgICBpbnB1dC5zZWxlY3QoKTtcclxuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlucHV0KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -5,12 +5,13 @@ export class LoginClass {
|
|
|
5
5
|
this.active = 0;
|
|
6
6
|
this.onSuccess = null;
|
|
7
7
|
this.rules = null;
|
|
8
|
+
this.expireHours = 30 * 24;
|
|
8
9
|
this.type = type;
|
|
9
10
|
this.l = l;
|
|
10
11
|
}
|
|
11
12
|
setCookie(r) {
|
|
12
13
|
if (r.Token) {
|
|
13
|
-
HelperClass.setCookie('Authorization', `Bearer ${r.Token}`,
|
|
14
|
+
HelperClass.setCookie('Authorization', `Bearer ${r.Token}`, this.expireHours);
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
}
|
|
@@ -21,4 +22,4 @@ export class LoginStepClass {
|
|
|
21
22
|
}
|
|
22
23
|
show(result = null) { }
|
|
23
24
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY2xhc3MuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NsYXNzZXMvbG9naW4uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQVksQ0FBb0IsRUFBRSxJQUFZO1FBTTlDLFVBQUssR0FBcUIsRUFBRSxDQUFDO1FBQzdCLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFDWCxjQUFTLEdBQXFCLElBQUksQ0FBQztRQUduQyxVQUFLLEdBQVcsSUFBSSxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQVhwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNiLENBQUM7SUFVRCxTQUFTLENBQUMsQ0FBQztRQUNULElBQUksQ0FBQyxDQUFDLEtBQUssRUFBQztZQUNWLFdBQVcsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvRTtJQUNILENBQUM7Q0FDRjtBQUNELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQVksSUFBZTtRQUczQixTQUFJLEdBQWMsSUFBSSxDQUFDO1FBRnJCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBYyxJQUFJLElBQVMsQ0FBQztDQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Rm9ybUNsYXNzfSBmcm9tICcuL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0hlbHBlckNsYXNzfSBmcm9tICcuL2hlbHBlci5jbGFzcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgTG9naW5DbGFzcyB7XHJcbiAgY29uc3RydWN0b3IobDogKGssIHY/KSA9PiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIHRoaXMubCA9IGw7XHJcbiAgfVxyXG4gIHR5cGU6IHN0cmluZztcclxuICBsOiAoaywgdj8pID0+IHN0cmluZztcclxuICBzdGVwczogTG9naW5TdGVwQ2xhc3NbXSA9IFtdO1xyXG4gIGFjdGl2ZSA9IDA7XHJcbiAgb25TdWNjZXNzOiAocmVzdWx0KSA9PiB2b2lkID0gbnVsbDtcclxuICBzZW5kQ29kZVVybDogc3RyaW5nO1xyXG4gIGxvZ2luVXJsOiBzdHJpbmc7XHJcbiAgcnVsZXM6IHN0cmluZyA9IG51bGw7XHJcbiAgZXhwaXJlSG91cnMgPSAzMCAqIDI0O1xyXG4gIHNldENvb2tpZShyKTogdm9pZHtcclxuICAgIGlmIChyLlRva2VuKXtcclxuICAgICAgSGVscGVyQ2xhc3Muc2V0Q29va2llKCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke3IuVG9rZW59YCwgdGhpcy5leHBpcmVIb3Vycyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBMb2dpblN0ZXBDbGFzc3tcclxuICBjb25zdHJ1Y3Rvcihmb3JtOiBGb3JtQ2xhc3MpIHtcclxuICAgIHRoaXMuZm9ybSA9IGZvcm07XHJcbiAgfVxyXG4gIGZvcm06IEZvcm1DbGFzcyA9IG51bGw7XHJcbiAgc2hvdyhyZXN1bHQ6IGFueSA9IG51bGwpOiB2b2lkIHt9XHJcbn1cclxuIl19
|
|
@@ -164,6 +164,9 @@ export class FormSelectComponent {
|
|
|
164
164
|
return;
|
|
165
165
|
}
|
|
166
166
|
this.inp.value = null;
|
|
167
|
+
if (this.inp.onChange) {
|
|
168
|
+
this.inp.onChange(this.inp, false);
|
|
169
|
+
}
|
|
167
170
|
if (this.inp.type === InputType.SelectSearch) {
|
|
168
171
|
this.setOptions();
|
|
169
172
|
}
|
|
@@ -371,4 +374,4 @@ FormSelectComponent.propDecorators = {
|
|
|
371
374
|
inputOptionsDiv: [{ type: ViewChild, args: ['inputOptionsDiv',] }],
|
|
372
375
|
inputLabel: [{ type: ViewChild, args: ['inputLabel',] }]
|
|
373
376
|
};
|
|
374
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L2Zvcm0uc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBT2xFLE1BQU0sT0FBTyxtQkFBbUI7SUFMaEM7UUFPRSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFLekMsWUFBTyxHQUFHLEVBQUUsQ0FBQztJQW9WZixDQUFDO0lBblZDLElBQUksSUFBSSxLQUF1QixPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFLbEQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLGtCQUFrQixFQUFDO1lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDNUQ7aUJBQUk7Z0JBQ0gsS0FBSyxNQUFNLENB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SSxJQUFJLEVBQUM7WUFDbkIsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFDO2dCQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2pCO1lBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBQztnQkFDdkMsU0FBUzthQUNWO1lBQ0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbEI7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7OztZQS9WRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsdW5EQUEyQzs7YUFFNUM7OzswQkFFRSxNQUFNO2tCQUVOLEtBQUs7cUJBRUwsS0FBSzt1QkFJTCxTQUFTLFNBQUMsVUFBVTt3QkFDcEIsU0FBUyxTQUFDLFdBQVc7OEJBQ3JCLFNBQVMsU0FBQyxpQkFBaUI7eUJBQzNCLFNBQVMsU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7SW5wdXRDbGFzcywgT3B0aW9uQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvciwgSW5wdXRUeXBlfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLnNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5zZWxlY3QuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQElucHV0KClcclxuICBpbkZvcm06IGJvb2xlYW47XHJcbiAgY1NlYXJjaCA9ICcnO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRPcHRpb25zRGl2JykgaW5wdXRPcHRpb25zRGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0TGFiZWwnKSBpbnB1dExhYmVsOiBFbGVtZW50UmVmO1xyXG4gIG5nT25Jbml0KCk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5pbnAudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgIHRoaXMuaW5wLmxvYWQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLnNldFZhbHVlID0gKHYsIGlzRWRpdCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaW5wLm11bHRpcGxlKXtcclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih2ID09IG51bGwgPyBudWxsIDogdi50b1N0cmluZygpLCBpc0VkaXQpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBmb3IgKGNvbnN0IHQgb2Ygdil7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih0LnRvU3RyaW5nKCksIGlzRWRpdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuaW5wLmRlZmF1bHQgIT0gbnVsbCl7XHJcbiAgICAgIHRoaXMuaW5wLnNldFZhbHVlKHRoaXMuaW5wLmRlZmF1bHQsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLnNldFNlYXJjaCA9IChzKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9IHM7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub3Blbk9wdGlvbnMoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiAoKCF0aGlzLmlucC5tdWx0aXBsZSAmJiAoKHRoaXMuaW5wLmFkZE5ldyAmJiAhdGhpcy5pbnAuc2VhcmNoKSB8fCAoIXRoaXMuaW5wLmFkZE5ldyAmJiAhdGhpcy5pbnAudmFsdWUpKSkgfHxcclxuICAgICAgICAodGhpcy5pbnAubXVsdGlwbGUgJiYgdGhpcy5nZXRTZWxlY3RlZCgpLmxlbmd0aCA9PT0gMCkpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5jbGVhciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAoIXRoaXMuaW5wLm11bHRpcGxlKXtcclxuICAgICAgICB0aGlzLmlucC5zZXRWYWx1ZSh0aGlzLmlucC5kZWZhdWx0LCB0cnVlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucy5mb3JFYWNoKHggPT4gdGhpcy51bkNoZWNrKHgpKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVsICE9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaW5wLnJlbC5vcHRpb25zID0gW107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpe1xyXG4gICAgICAgIHRoaXMuaW5wLm9wdGlvbnMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiAhdGhpcy5pbnAubXVsdGlwbGUgPyAodGhpcy5pbnAuYWRkTmV3ID8gdGhpcy5pbnAuc2VhcmNoIDogdGhpcy5pbnAudmFsdWUpIDogdGhpcy5nZXRTZWxlY3RlZCgpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzT3V0ID0gKCkgPT4ge1xyXG4gICAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmJsdXIoKTtcclxuICAgIH07XHJcbiAgfVxyXG4gIGxvYWRPcHRpb25zKCk6IHZvaWR7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnAuc2VhcmNoLnJlcGxhY2UoL15fK3xfKyQvZywgJycpO1xyXG4gICAgaWYgKHYpe1xyXG4gICAgICB0aGlzLmlucC5sb2FkKHRoaXMuaW5wLnVybC5yZXBsYWNlKCd7fScsIHYpKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5PcHRpb25zKCk6IHZvaWR7XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKCk7XHJcbiAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XHJcbiAgfVxyXG4gIG9uRm9jdXNPdXQoKTogdm9pZHtcclxuICAgIHRoaXMuY2xvc2VPcHRpb25zKCk7XHJcbiAgfVxyXG4gIGNsb3NlT3B0aW9ucygpOiBib29sZWFue1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICQodGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygndG9wJyk7XHJcbiAgICAgIHRoaXMuaW5wLmhvdmVyID0gLTE7XHJcbiAgICAgIGlmICh0aGlzLmlucC52YWx1ZSA9PT0gbnVsbCl7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlucC5hZGROZXcpe1xyXG4gICAgICAgICAgdGhpcy5pbnAuc2VhcmNoID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlKXtcclxuICAgICAgICAgIHRoaXMuaW5wLm9wdGlvbnMgPSBbXTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSwgMSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgc2V0UG9zaXRpb24oKTogdm9pZHtcclxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBvZmZzZXRPZkJvdHRvbSA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHJlY3QuYm90dG9tO1xyXG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICBpZiAob2Zmc2V0T2ZCb3R0b20gPCBoZWlnaHQpe1xyXG4gICAgICAkKHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudCkuYWRkQ2xhc3MoJ3RvcCcpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgICQodGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygndG9wJyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldE9wdGlvbnMociA9IHRoaXMuaW5wLm9wdGlvbnMpOiB2b2lke1xyXG4gICAgci5tYXAoKHgpID0+IHtcclxuICAgICAgdGhpcy5zZXRPcHRpb25zKHgub3B0aW9ucyk7XHJcbiAgICAgIHguc2hvdyA9ICh0aGlzLmlucC52YWx1ZSAhPT0gbnVsbCB8fCB0aGlzLmlucC5zZWFyY2ggPT09ICcnIHx8IHgubmFtZS5pbmNsdWRlcyh0aGlzLmlucC5zZWFyY2gpIHx8XHJcbiAgICAgICAgICB4LnZhbHVlLmluY2x1ZGVzKHRoaXMuaW5wLnNlYXJjaCkgfHwgeC5vcHRpb25zLmZpbHRlcihvID0+IG8uc2hvdykubGVuZ3RoID4gMCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb25LZXlEb3duKGUpOiB2b2lke1xyXG4gICAgY29uc3QgY29kZSA9IGUua2V5Q29kZSB8fCBlLndoaWNoO1xyXG4gICAgaWYgKGNvZGUgPT09IDkpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLmNJKGUuc2hpZnRLZXkgPyAnU2hpZnRUYWInIDogJ1RhYicpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoY29kZSA9PT0gMTMpe1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGlmICgkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmlzKCc6Zm9jdXMnKSl7XHJcbiAgICAgICAgY29uc3QgaCA9IHRoaXMuZ2V0U2VsZWN0ZWRIb3ZlcigpO1xyXG4gICAgICAgIGlmICghaCl7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKGgudmFsdWUpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmNJKCdUYWInKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoY29kZSA9PT0gNDApe1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5ob3ZlciArIDEgPj0gdGhpcy5pbnAuaW5kZXgpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucC5ob3ZlciA9IHRoaXMuZ2V0SG92ZXIoKTtcclxuICAgICAgdGhpcy5zZXRIb3ZlckNlbnRlcigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoY29kZSA9PT0gMzgpe1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5ob3ZlciA8PSAwKXtcclxuICAgICAgICB0aGlzLmlucC5ob3ZlciA9IDA7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaW5wLmhvdmVyID0gdGhpcy5nZXRIb3ZlcigtMSk7XHJcbiAgICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlT3B0aW9uKGUpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuaW5wLm11bHRpcGxlICYmICQoZS50YXJnZXQpLmNsb3Nlc3QoJy5vcHRpb24nKS5oYXNDbGFzcygnb3B0aW9uJykpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm9wZW5PcHRpb25zKCk7XHJcbiAgfVxyXG4gIG9uS2V5VXAoZSk6IHZvaWR7XHJcbiAgICBpZiAodGhpcy5jU2VhcmNoICE9PSBlLnRhcmdldC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmNTZWFyY2ggPSBlLnRhcmdldC52YWx1ZTtcclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3Qpe1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0U2VhcmNoKXtcclxuICAgICAgICB0aGlzLnNldE9wdGlvbnMoKTtcclxuICAgICAgfWVsc2UgaWYgKGUudGFyZ2V0LnZhbHVlKXtcclxuICAgICAgICB0aGlzLmxvYWRPcHRpb25zKCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuaW5wLm9wdGlvbnMgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBzZWxlY3RPcHRpb24odiwgaXNFZGl0ID0gZmFsc2UpOiB2b2lke1xyXG4gICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgY29uc3QgdmEgPSB0aGlzLmdldFZhbHVlKHYpO1xyXG4gICAgaWYgKHRoaXMuaW5wLm11bHRpcGxlKXtcclxuICAgICAgdGhpcy50b2dnbGUodmEpO1xyXG4gICAgICB0aGlzLmlucC5zZWFyY2ggPSAnJztcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IHY7XHJcbiAgICAgIHRoaXMuaW5wLmhvdmVyID0gdmEgPyB2YS5pbmRleCA6IC0xO1xyXG4gICAgICB0aGlzLmlucC5zZWFyY2ggPSB2YSA/ICgoKHRoaXMuaW5wLnR5cGUgIT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2ggJiYgdGhpcy5pbnAudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdCkgfHwgdmEuc2VhcmNoKSA/IHZhLnNlYXJjaCA6IHZhLm5hbWUpIDogJyc7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldE9wdGlvbnMoKTtcclxuICAgIHRoaXMuY1NlYXJjaCA9IHRoaXMuaW5wLnNlYXJjaDtcclxuICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wLCBpc0VkaXQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaW5wLnJlbCl7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5ob3ZlciA9IC0xO1xyXG4gICAgICB0aGlzLmlucC5yZWwuaW5kZXggPSAwO1xyXG4gICAgICB0aGlzLmlucC5yZWwuc2VhcmNoID0gJyc7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5vcHRpb25zID0gW107XHJcbiAgICAgIGlmICh2ICE9PSBudWxsKXtcclxuICAgICAgICB0aGlzLmlucC5yZWwudXJsID0gdGhpcy5pbnAucmVsVXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5pbnAudmFsdWUpO1xyXG4gICAgICAgIGlmICh0aGlzLmlucC5yZWwudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSkge1xyXG4gICAgICAgICAgdGhpcy5pbnAucmVsLmxvYWQoKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMuaW5wLnJlbC51cmwgKz0gJ197fSc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRWRpdCAmJiAhdGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICB0aGlzLmNJKCdUYWInKTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlKG9wOiBPcHRpb25DbGFzcyk6IHZvaWQge1xyXG4gICAgaWYgKG9wLnNlbGVjdGVkKXtcclxuICAgICAgdGhpcy51bkNoZWNrKG9wKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy51bkNoZWNrUGFyZW50KG9wLnBhcmVudCk7IH0sIDEwMCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jaGVjayhvcCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge3RoaXMuY2hlY2tQYXJlbnQob3AucGFyZW50KTsgfSwgMTAwKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2soYzogT3B0aW9uQ2xhc3MpOiB2b2lkIHtcclxuICAgIGMuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5jaGVja0NoaWxkcmVuKGMpO1xyXG4gIH1cclxuICB1bkNoZWNrKGM6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBjLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICBjLm9wdGlvbnMuZm9yRWFjaCgoY2gpID0+IHtcclxuICAgICAgdGhpcy51bkNoZWNrKGNoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGVja0NoaWxkcmVuKG86IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIG8ub3B0aW9ucy5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrKGNoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBjaGVja1BhcmVudChwOiBPcHRpb25DbGFzcyk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLm9wdGlvbnMuZmlsdGVyKHggPT4gIXguc2VsZWN0ZWQpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgdW5DaGVja1BhcmVudChwOiBPcHRpb25DbGFzcyk6IHZvaWR7XHJcbiAgICBpZiAocCl7XHJcbiAgICAgIGlmIChwLm9wdGlvbnMuZmlsdGVyKHggPT4geC5zZWxlY3RlZCB8fCB4LnNlbGVjdGVkID09IG51bGwpLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBudWxsO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICBwLnNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51bkNoZWNrUGFyZW50KHAucGFyZW50KTtcclxuICAgIH1cclxuICB9XHJcbiAgY0koaTogc3RyaW5nKTogdm9pZHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoaSk7XHJcbiAgICAgIGlmICghdGhpcy5pbkZvcm0pe1xyXG4gICAgICAgICQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuYmx1cigpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZU9wdGlvbnMoKTtcclxuICAgIH0sIDIwKTtcclxuICB9XHJcbiAgc2V0SG92ZXJDZW50ZXIoKTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgaG92ZXI6IGFueSA9ICQodGhpcy5pbnB1dE9wdGlvbnNEaXYubmF0aXZlRWxlbWVudCkuZmluZCgnLm9wdGlvbi5ob3ZlcicpO1xyXG4gICAgICBjb25zdCBpdGVtczogYW55ID0gJCh0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50KS5maW5kKCcuaXRlbXMnKTtcclxuICAgICAgaWYgKGhvdmVyLmxlbmd0aCA9PT0gMCl7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZW1zLnNjcm9sbFRvcCA9IGl0ZW1zLnNjcm9sbFRvcCAtIGl0ZW1zLm9mZnNldC50b3AgKyBob3Zlci5vZmZzZXQudG9wIC0gaG92ZXIuaGVpZ2h0KCk7XHJcbiAgICB9LCAxKTtcclxuICB9XHJcbiAgdGl0bGUoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmlucC52YWx1ZSA9PSBudWxsKXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5nZXRUaXRsZSh0aGlzLmlucCk7XHJcbiAgfVxyXG4gIGdldFRpdGxlKG9zKTogc3RyaW5ne1xyXG4gICAgZm9yIChjb25zdCBzIG9mIG9zLm9wdGlvbnMpe1xyXG4gICAgICBpZiAocy52YWx1ZSA9PT0gdGhpcy5pbnAudmFsdWUudG9TdHJpbmcoKSl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wLmwocy5uYW1lKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB2ID0gdGhpcy5nZXRUaXRsZShzKTtcclxuICAgICAgaWYgKHYgIT0gbnVsbCl7XHJcbiAgICAgICAgcmV0dXJuIHY7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZEhvdmVyKG86IE9wdGlvbkNsYXNzW10gPSB0aGlzLmlucC5vcHRpb25zKTogYW55e1xyXG4gICAgY29uc3QgaCA9IG8uZmluZCh4ID0+IHguaW5kZXggPT09IHRoaXMuaW5wLmhvdmVyKTtcclxuICAgIGlmIChoKXtcclxuICAgICAgcmV0dXJuIGg7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGkgb2Ygbyl7XHJcbiAgICAgIGNvbnN0IGhpID0gdGhpcy5nZXRTZWxlY3RlZEhvdmVyKGkub3B0aW9ucyk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEhvdmVyKGkgPSAxLCBvOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucywgaCA9IHRoaXMuaW5wLmhvdmVyKTogbnVtYmVye1xyXG4gICAgY29uc3QgaG8gPSBvLmZpbmQoeCA9PiB4LmluZGV4ID09PSBoICsgaSk7XHJcbiAgICBpZiAoaG8pe1xyXG4gICAgICBpZiAoaG8uc2hvdyl7XHJcbiAgICAgICAgcmV0dXJuIGhvLmluZGV4O1xyXG4gICAgICB9ZWxzZSB7XHJcbiAgICAgICAgaCA9IGggKyBpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGl0IG9mIG8pe1xyXG4gICAgICBjb25zdCBoaSA9IHRoaXMuZ2V0SG92ZXIoaSwgaXQub3B0aW9ucywgaCk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcbiAgZ2V0VmFsdWUodiwgbzogT3B0aW9uQ2xhc3NbXSA9IHRoaXMuaW5wLm9wdGlvbnMpOiBPcHRpb25DbGFzc3tcclxuICAgIGNvbnN0IGggPSBvLmZpbmQoeCA9PiB4LnZhbHVlID09PSB2KTtcclxuICAgIGlmIChoKXtcclxuICAgICAgcmV0dXJuIGg7XHJcbiAgICB9XHJcbiAgICBmb3IgKGNvbnN0IGkgb2Ygbyl7XHJcbiAgICAgIGNvbnN0IGhpID0gdGhpcy5nZXRWYWx1ZSh2LCBpLm9wdGlvbnMpO1xyXG4gICAgICBpZiAoaGkpe1xyXG4gICAgICAgIHJldHVybiBoaTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWQob3B0czogT3B0aW9uQ2xhc3NbXT0gdGhpcy5pbnAub3B0aW9ucyk6IGFueVtde1xyXG4gICAgbGV0IGwgPSBbXTtcclxuICAgIGZvciAoY29uc3QgZiBvZiBvcHRzKXtcclxuICAgICAgaWYgKGYuc2VsZWN0ZWQpe1xyXG4gICAgICAgIGwucHVzaChmLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZi5zZWxlY3RlZCAmJiBmLm9wdGlvbnMubGVuZ3RoICE9PSAwKXtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBycyA9IHRoaXMuZ2V0U2VsZWN0ZWQoZi5vcHRpb25zKTtcclxuICAgICAgbCA9IGwuY29uY2F0KHJzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBsO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vc2VsZWN0L2Zvcm0uc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBT2xFLE1BQU0sT0FBTyxtQkFBbUI7SUFMaEM7UUFPRSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFLekMsWUFBTyxHQUFHLEVBQUUsQ0FBQztJQXVWZixDQUFDO0lBdFZDLElBQUksSUFBSSxLQUF1QixPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFLbEQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLGtCQUFrQixFQUFDO1lBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDNUQ7aUJBQUk7Z0JBQ0gsS0FBSyxNQUFNLENB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Q1g7U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBcUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPO1FBQy9DLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNYLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFDO1lBQ25CLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBQztnQkFDYixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNqQjtZQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUM7Z0JBQ3ZDLFNBQVM7YUFDVjtZQUNELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzs7WUFsV0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHVuREFBMkM7O2FBRTVDOzs7MEJBRUUsTUFBTTtrQkFFTixLQUFLO3FCQUVMLEtBQUs7dUJBSUwsU0FBUyxTQUFDLFVBQVU7d0JBQ3BCLFNBQVMsU0FBQyxXQUFXOzhCQUNyQixTQUFTLFNBQUMsaUJBQWlCO3lCQUMzQixTQUFTLFNBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge0lucHV0Q2xhc3MsIE9wdGlvbkNsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0RXJyb3IsIElucHV0VHlwZX0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZvcm0tc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uc2VsZWN0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBAT3V0cHV0KClcclxuICBjaGFuZ2VJbmRleCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5wOiBJbnB1dENsYXNzO1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5Gb3JtOiBib29sZWFuO1xyXG4gIGNTZWFyY2ggPSAnJztcclxuICBnZXQgdHlwZSgpOiB0eXBlb2YgSW5wdXRUeXBlIHsgcmV0dXJuIElucHV0VHlwZTsgfVxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RGl2JykgaW5wdXREaXY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRCYXNlJykgaW5wdXRCYXNlOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0T3B0aW9uc0RpdicpIGlucHV0T3B0aW9uc0RpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dExhYmVsJykgaW5wdXRMYWJlbDogRWxlbWVudFJlZjtcclxuICBuZ09uSW5pdCgpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuaW5wLnR5cGUgIT09IElucHV0VHlwZS5TZWxlY3RBdXRvQ29tcGxldGUpe1xyXG4gICAgICB0aGlzLmlucC5sb2FkKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2LCBpc0VkaXQpID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmlucC5tdWx0aXBsZSl7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24odiA9PSBudWxsID8gbnVsbCA6IHYudG9TdHJpbmcoKSwgaXNFZGl0KTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgZm9yIChjb25zdCB0IG9mIHYpe1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24odC50b1N0cmluZygpLCBpc0VkaXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmlucC5kZWZhdWx0ICE9IG51bGwpe1xyXG4gICAgICB0aGlzLmlucC5zZXRWYWx1ZSh0aGlzLmlucC5kZWZhdWx0LCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucC5zZXRTZWFyY2ggPSAocykgPT4ge1xyXG4gICAgICB0aGlzLmlucC5zZWFyY2ggPSBzO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5PcHRpb25zKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgKCghdGhpcy5pbnAubXVsdGlwbGUgJiYgKCh0aGlzLmlucC5hZGROZXcgJiYgIXRoaXMuaW5wLnNlYXJjaCkgfHwgKCF0aGlzLmlucC5hZGROZXcgJiYgIXRoaXMuaW5wLnZhbHVlKSkpIHx8XHJcbiAgICAgICAgKHRoaXMuaW5wLm11bHRpcGxlICYmIHRoaXMuZ2V0U2VsZWN0ZWQoKS5sZW5ndGggPT09IDApKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKCF0aGlzLmlucC5tdWx0aXBsZSl7XHJcbiAgICAgICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAuZGVmYXVsdCwgdHJ1ZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuaW5wLm9wdGlvbnMuZm9yRWFjaCh4ID0+IHRoaXMudW5DaGVjayh4KSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnJlbCAhPSBudWxsKXtcclxuICAgICAgICB0aGlzLmlucC5yZWwub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlKXtcclxuICAgICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5kYXRhID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gIXRoaXMuaW5wLm11bHRpcGxlID8gKHRoaXMuaW5wLmFkZE5ldyA/IHRoaXMuaW5wLnNlYXJjaCA6IHRoaXMuaW5wLnZhbHVlKSA6IHRoaXMuZ2V0U2VsZWN0ZWQoKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5mb2N1c091dCA9ICgpID0+IHtcclxuICAgICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5ibHVyKCk7XHJcbiAgICB9O1xyXG4gIH1cclxuICBsb2FkT3B0aW9ucygpOiB2b2lke1xyXG4gICAgY29uc3QgdiA9IHRoaXMuaW5wLnNlYXJjaC5yZXBsYWNlKC9eXyt8XyskL2csICcnKTtcclxuICAgIGlmICh2KXtcclxuICAgICAgdGhpcy5pbnAubG9hZCh0aGlzLmlucC51cmwucmVwbGFjZSgne30nLCB2KSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuICBvcGVuT3B0aW9ucygpOiB2b2lke1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5zZXRIb3ZlckNlbnRlcigpO1xyXG4gICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5mb2N1cygpO1xyXG4gIH1cclxuICBvbkZvY3VzT3V0KCk6IHZvaWR7XHJcbiAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gIH1cclxuICBjbG9zZU9wdGlvbnMoKTogYm9vbGVhbntcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAkKHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3RvcCcpO1xyXG4gICAgICB0aGlzLmlucC5ob3ZlciA9IC0xO1xyXG4gICAgICBpZiAodGhpcy5pbnAudmFsdWUgPT09IG51bGwpe1xyXG4gICAgICAgIGlmICghdGhpcy5pbnAuYWRkTmV3KXtcclxuICAgICAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pbnAudHlwZSA9PT0gSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSl7XHJcbiAgICAgICAgICB0aGlzLmlucC5vcHRpb25zID0gW107XHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLnNldE9wdGlvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sIDEpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIHNldFBvc2l0aW9uKCk6IHZvaWR7XHJcbiAgICBjb25zdCByZWN0ID0gdGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3Qgb2Zmc2V0T2ZCb3R0b20gPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LmJvdHRvbTtcclxuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgaWYgKG9mZnNldE9mQm90dG9tIDwgaGVpZ2h0KXtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLmFkZENsYXNzKCd0b3AnKTtcclxuICAgIH1lbHNle1xyXG4gICAgICAkKHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3RvcCcpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRPcHRpb25zKHIgPSB0aGlzLmlucC5vcHRpb25zKTogdm9pZHtcclxuICAgIHIubWFwKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0T3B0aW9ucyh4Lm9wdGlvbnMpO1xyXG4gICAgICB4LnNob3cgPSAodGhpcy5pbnAudmFsdWUgIT09IG51bGwgfHwgdGhpcy5pbnAuc2VhcmNoID09PSAnJyB8fCB4Lm5hbWUuaW5jbHVkZXModGhpcy5pbnAuc2VhcmNoKSB8fFxyXG4gICAgICAgICAgeC52YWx1ZS5pbmNsdWRlcyh0aGlzLmlucC5zZWFyY2gpIHx8IHgub3B0aW9ucy5maWx0ZXIobyA9PiBvLnNob3cpLmxlbmd0aCA+IDApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZHtcclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5KSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jSShlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDEzKXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAoJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5pcygnOmZvY3VzJykpe1xyXG4gICAgICAgIGNvbnN0IGggPSB0aGlzLmdldFNlbGVjdGVkSG92ZXIoKTtcclxuICAgICAgICBpZiAoIWgpe1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbihoLnZhbHVlKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5jSSgnVGFiJyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDQwKXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnAuaG92ZXIgKyAxID49IHRoaXMuaW5wLmluZGV4KXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnAuaG92ZXIgPSB0aGlzLmdldEhvdmVyKCk7XHJcbiAgICAgIHRoaXMuc2V0SG92ZXJDZW50ZXIoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNvZGUgPT09IDM4KXtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnAuaG92ZXIgPD0gMCl7XHJcbiAgICAgICAgdGhpcy5pbnAuaG92ZXIgPSAwO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucC5ob3ZlciA9IHRoaXMuZ2V0SG92ZXIoLTEpO1xyXG4gICAgICB0aGlzLnNldEhvdmVyQ2VudGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRvZ2dsZU9wdGlvbihlKTogdm9pZHtcclxuICAgIGlmICh0aGlzLmlucC5tdWx0aXBsZSAmJiAkKGUudGFyZ2V0KS5jbG9zZXN0KCcub3B0aW9uJykuaGFzQ2xhc3MoJ29wdGlvbicpKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vcGVuT3B0aW9ucygpO1xyXG4gIH1cclxuICBvbktleVVwKGUpOiB2b2lke1xyXG4gICAgaWYgKHRoaXMuY1NlYXJjaCAhPT0gZS50YXJnZXQudmFsdWUpIHtcclxuICAgICAgdGhpcy5jU2VhcmNoID0gZS50YXJnZXQudmFsdWU7XHJcbiAgICAgIGlmICh0aGlzLmlucC50eXBlID09PSBJbnB1dFR5cGUuU2VsZWN0KXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAub25DaGFuZ2Upe1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wLCBmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnR5cGUgPT09IElucHV0VHlwZS5TZWxlY3RTZWFyY2gpe1xyXG4gICAgICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgICB9ZWxzZSBpZiAoZS50YXJnZXQudmFsdWUpe1xyXG4gICAgICAgIHRoaXMubG9hZE9wdGlvbnMoKTtcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5pbnAub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNlbGVjdE9wdGlvbih2LCBpc0VkaXQgPSBmYWxzZSk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICBjb25zdCB2YSA9IHRoaXMuZ2V0VmFsdWUodik7XHJcbiAgICBpZiAodGhpcy5pbnAubXVsdGlwbGUpe1xyXG4gICAgICB0aGlzLnRvZ2dsZSh2YSk7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9ICcnO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgICAgdGhpcy5pbnAuaG92ZXIgPSB2YSA/IHZhLmluZGV4IDogLTE7XHJcbiAgICAgIHRoaXMuaW5wLnNlYXJjaCA9IHZhID8gKCgodGhpcy5pbnAudHlwZSAhPT0gSW5wdXRUeXBlLlNlbGVjdFNlYXJjaCAmJiB0aGlzLmlucC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0KSB8fCB2YS5zZWFyY2gpID8gdmEuc2VhcmNoIDogdmEubmFtZSkgOiAnJztcclxuICAgIH1cclxuICAgIHRoaXMuc2V0T3B0aW9ucygpO1xyXG4gICAgdGhpcy5jU2VhcmNoID0gdGhpcy5pbnAuc2VhcmNoO1xyXG4gICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5pbnAsIGlzRWRpdCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pbnAucmVsKXtcclxuICAgICAgdGhpcy5pbnAucmVsLnZhbHVlID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAucmVsLmhvdmVyID0gLTE7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5pbmRleCA9IDA7XHJcbiAgICAgIHRoaXMuaW5wLnJlbC5zZWFyY2ggPSAnJztcclxuICAgICAgdGhpcy5pbnAucmVsLm9wdGlvbnMgPSBbXTtcclxuICAgICAgaWYgKHYgIT09IG51bGwpe1xyXG4gICAgICAgIHRoaXMuaW5wLnJlbC51cmwgPSB0aGlzLmlucC5yZWxVcmwucmVwbGFjZSgne30nLCB0aGlzLmlucC52YWx1ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wLnJlbC50eXBlICE9PSBJbnB1dFR5cGUuU2VsZWN0QXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgICAgICB0aGlzLmlucC5yZWwubG9hZCgpO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5pbnAucmVsLnVybCArPSAnX3t9JztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghaXNFZGl0ICYmICF0aGlzLmlucC5tdWx0aXBsZSl7XHJcbiAgICAgIHRoaXMuY0koJ1RhYicpO1xyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGUob3A6IE9wdGlvbkNsYXNzKTogdm9pZCB7XHJcbiAgICBpZiAob3Auc2VsZWN0ZWQpe1xyXG4gICAgICB0aGlzLnVuQ2hlY2sob3ApO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHt0aGlzLnVuQ2hlY2tQYXJlbnQob3AucGFyZW50KTsgfSwgMTAwKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmNoZWNrKG9wKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7dGhpcy5jaGVja1BhcmVudChvcC5wYXJlbnQpOyB9LCAxMDApO1xyXG4gICAgfVxyXG4gIH1cclxuICBjaGVjayhjOiBPcHRpb25DbGFzcyk6IHZvaWQge1xyXG4gICAgYy5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICB0aGlzLmNoZWNrQ2hpbGRyZW4oYyk7XHJcbiAgfVxyXG4gIHVuQ2hlY2soYzogT3B0aW9uQ2xhc3MpOiB2b2lkIHtcclxuICAgIGMuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIGMub3B0aW9ucy5mb3JFYWNoKChjaCkgPT4ge1xyXG4gICAgICB0aGlzLnVuQ2hlY2soY2gpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoZWNrQ2hpbGRyZW4obzogT3B0aW9uQ2xhc3MpOiB2b2lke1xyXG4gICAgby5vcHRpb25zLmZvckVhY2goKGNoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hlY2soY2gpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoZWNrUGFyZW50KHA6IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAub3B0aW9ucy5maWx0ZXIoeCA9PiAheC5zZWxlY3RlZCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hlY2tQYXJlbnQocC5wYXJlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICB1bkNoZWNrUGFyZW50KHA6IE9wdGlvbkNsYXNzKTogdm9pZHtcclxuICAgIGlmIChwKXtcclxuICAgICAgaWYgKHAub3B0aW9ucy5maWx0ZXIoeCA9PiB4LnNlbGVjdGVkIHx8IHguc2VsZWN0ZWQgPT0gbnVsbCkubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgcC5zZWxlY3RlZCA9IG51bGw7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHAuc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVuQ2hlY2tQYXJlbnQocC5wYXJlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjSShpOiBzdHJpbmcpOiB2b2lke1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdChpKTtcclxuICAgICAgaWYgKCF0aGlzLmluRm9ybSl7XHJcbiAgICAgICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5ibHVyKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlT3B0aW9ucygpO1xyXG4gICAgfSwgMjApO1xyXG4gIH1cclxuICBzZXRIb3ZlckNlbnRlcigpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBob3ZlcjogYW55ID0gJCh0aGlzLmlucHV0T3B0aW9uc0Rpdi5uYXRpdmVFbGVtZW50KS5maW5kKCcub3B0aW9uLmhvdmVyJyk7XHJcbiAgICAgIGNvbnN0IGl0ZW1zOiBhbnkgPSAkKHRoaXMuaW5wdXRPcHRpb25zRGl2Lm5hdGl2ZUVsZW1lbnQpLmZpbmQoJy5pdGVtcycpO1xyXG4gICAgICBpZiAoaG92ZXIubGVuZ3RoID09PSAwKXtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaXRlbXMuc2Nyb2xsVG9wID0gaXRlbXMuc2Nyb2xsVG9wIC0gaXRlbXMub2Zmc2V0LnRvcCArIGhvdmVyLm9mZnNldC50b3AgLSBob3Zlci5oZWlnaHQoKTtcclxuICAgIH0sIDEpO1xyXG4gIH1cclxuICB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuaW5wLnZhbHVlID09IG51bGwpe1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldFRpdGxlKHRoaXMuaW5wKTtcclxuICB9XHJcbiAgZ2V0VGl0bGUob3MpOiBzdHJpbmd7XHJcbiAgICBmb3IgKGNvbnN0IHMgb2Ygb3Mub3B0aW9ucyl7XHJcbiAgICAgIGlmIChzLnZhbHVlID09PSB0aGlzLmlucC52YWx1ZS50b1N0cmluZygpKXtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnAubChzLm5hbWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHYgPSB0aGlzLmdldFRpdGxlKHMpO1xyXG4gICAgICBpZiAodiAhPSBudWxsKXtcclxuICAgICAgICByZXR1cm4gdjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkSG92ZXIobzogT3B0aW9uQ2xhc3NbXSA9IHRoaXMuaW5wLm9wdGlvbnMpOiBhbnl7XHJcbiAgICBjb25zdCBoID0gby5maW5kKHggPT4geC5pbmRleCA9PT0gdGhpcy5pbnAuaG92ZXIpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFNlbGVjdGVkSG92ZXIoaS5vcHRpb25zKTtcclxuICAgICAgaWYgKGhpKXtcclxuICAgICAgICByZXR1cm4gaGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0SG92ZXIoaSA9IDEsIG86IE9wdGlvbkNsYXNzW10gPSB0aGlzLmlucC5vcHRpb25zLCBoID0gdGhpcy5pbnAuaG92ZXIpOiBudW1iZXJ7XHJcbiAgICBjb25zdCBobyA9IG8uZmluZCh4ID0+IHguaW5kZXggPT09IGggKyBpKTtcclxuICAgIGlmIChobyl7XHJcbiAgICAgIGlmIChoby5zaG93KXtcclxuICAgICAgICByZXR1cm4gaG8uaW5kZXg7XHJcbiAgICAgIH1lbHNlIHtcclxuICAgICAgICBoID0gaCArIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaXQgb2Ygbyl7XHJcbiAgICAgIGNvbnN0IGhpID0gdGhpcy5nZXRIb3ZlcihpLCBpdC5vcHRpb25zLCBoKTtcclxuICAgICAgaWYgKGhpKXtcclxuICAgICAgICByZXR1cm4gaGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuICBnZXRWYWx1ZSh2LCBvOiBPcHRpb25DbGFzc1tdID0gdGhpcy5pbnAub3B0aW9ucyk6IE9wdGlvbkNsYXNze1xyXG4gICAgY29uc3QgaCA9IG8uZmluZCh4ID0+IHgudmFsdWUgPT09IHYpO1xyXG4gICAgaWYgKGgpe1xyXG4gICAgICByZXR1cm4gaDtcclxuICAgIH1cclxuICAgIGZvciAoY29uc3QgaSBvZiBvKXtcclxuICAgICAgY29uc3QgaGkgPSB0aGlzLmdldFZhbHVlKHYsIGkub3B0aW9ucyk7XHJcbiAgICAgIGlmIChoaSl7XHJcbiAgICAgICAgcmV0dXJuIGhpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3RlZChvcHRzOiBPcHRpb25DbGFzc1tdPSB0aGlzLmlucC5vcHRpb25zKTogYW55W117XHJcbiAgICBsZXQgbCA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBmIG9mIG9wdHMpe1xyXG4gICAgICBpZiAoZi5zZWxlY3RlZCl7XHJcbiAgICAgICAgbC5wdXNoKGYudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChmLnNlbGVjdGVkICYmIGYub3B0aW9ucy5sZW5ndGggIT09IDApe1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHJzID0gdGhpcy5nZXRTZWxlY3RlZChmLm9wdGlvbnMpO1xyXG4gICAgICBsID0gbC5jb25jYXQocnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -650,11 +650,11 @@ class HelperClass {
|
|
|
650
650
|
}
|
|
651
651
|
return result;
|
|
652
652
|
}
|
|
653
|
-
static setCookie(name, value,
|
|
653
|
+
static setCookie(name, value, hours = 30 * 24) {
|
|
654
654
|
let expires = '';
|
|
655
|
-
if (
|
|
655
|
+
if (hours) {
|
|
656
656
|
const date = new Date();
|
|
657
|
-
date.setTime(date.getTime() + (
|
|
657
|
+
date.setTime(date.getTime() + (hours * 60 * 60 * 1000));
|
|
658
658
|
expires = '; expires=' + date.toUTCString();
|
|
659
659
|
}
|
|
660
660
|
document.cookie = name + '=' + (value || '') + expires + '; path=/';
|
|
@@ -4540,6 +4540,9 @@ class FormSelectComponent {
|
|
|
4540
4540
|
return;
|
|
4541
4541
|
}
|
|
4542
4542
|
this.inp.value = null;
|
|
4543
|
+
if (this.inp.onChange) {
|
|
4544
|
+
this.inp.onChange(this.inp, false);
|
|
4545
|
+
}
|
|
4543
4546
|
if (this.inp.type === InputType.SelectSearch) {
|
|
4544
4547
|
this.setOptions();
|
|
4545
4548
|
}
|
|
@@ -5996,12 +5999,13 @@ class LoginClass {
|
|
|
5996
5999
|
this.active = 0;
|
|
5997
6000
|
this.onSuccess = null;
|
|
5998
6001
|
this.rules = null;
|
|
6002
|
+
this.expireHours = 30 * 24;
|
|
5999
6003
|
this.type = type;
|
|
6000
6004
|
this.l = l;
|
|
6001
6005
|
}
|
|
6002
6006
|
setCookie(r) {
|
|
6003
6007
|
if (r.Token) {
|
|
6004
|
-
HelperClass.setCookie('Authorization', `Bearer ${r.Token}`,
|
|
6008
|
+
HelperClass.setCookie('Authorization', `Bearer ${r.Token}`, this.expireHours);
|
|
6005
6009
|
}
|
|
6006
6010
|
}
|
|
6007
6011
|
}
|