@annalib/anna-core 31.0.20 → 31.0.22
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.
|
@@ -20,6 +20,7 @@ export class AnnaSortService {
|
|
|
20
20
|
"flightEndDate",
|
|
21
21
|
"date",
|
|
22
22
|
"GeneratedOn",
|
|
23
|
+
"AirDate"
|
|
23
24
|
]);
|
|
24
25
|
}
|
|
25
26
|
sortDataForComponentOtherThanLurAndCsrPage(isAsc, data, key) {
|
|
@@ -173,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
173
174
|
providedIn: "root",
|
|
174
175
|
}]
|
|
175
176
|
}], ctorParameters: function () { return [{ type: i1.AnnaDateTimeFormatService }]; } });
|
|
176
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1zb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLXNvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQUU1RSxnQ0FBZ0M7QUFFaEMsaUNBQWlDO0FBS2pDLE1BQU0sT0FBTyxlQUFlO0lBZ0J4QixZQUFvQix5QkFBb0Q7UUFBcEQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQWJ4RSwwQkFBcUIsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV2RCxZQUFPLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDZCxTQUFTO1lBQ1QsV0FBVztZQUNYLFVBQVU7WUFDVixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixNQUFNO1lBQ04sYUFBYTtTQUNoQixDQUFDLENBQUM7SUFFd0UsQ0FBQztJQUU1RSwwQ0FBMEMsQ0FBQyxLQUFjLEVBQUUsSUFBVyxFQUFFLEdBQVc7UUFDL0UsSUFBSSxNQUF1QixDQUFDO1FBQzVCLElBQUksTUFBdUIsQ0FBQztRQUU1QixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHlC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QUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQzFEO1FBRUQsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQzsrR0F2TFEsZUFBZTttSEFBZixlQUFlLGNBRlosTUFBTTs7NEZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tIFwibG9kYXNoLWVzXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuaW1wb3J0IHsgU29ydFR5cGUgfSBmcm9tIFwiLi4vbW9kZWxzL2FubmEtc29ydC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBBbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlIH0gZnJvbSBcIi4vYW5uYS1kYXRlLXRpbWUtZm9ybWF0LnNlcnZpY2VcIjtcclxuXHJcbi8vIFRoaXJkIHBhcnR5IGltcG9ydCBzdGF0ZW1lbnRzXHJcblxyXG4vLyBVc2VyIGRlZmluZWQgaW1wb3J0IHN0YXRlbWVudHNcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYVNvcnRTZXJ2aWNlIHtcclxuICAgIGNvbHVtblNvcnRTdGF0ZTogTWFwPHN0cmluZywgU29ydFR5cGU+O1xyXG4gICAgbm9Tb3J0aW5nQXBwbGllZERhdGE6IGFueVtdO1xyXG4gICAgdXBkYXRlU29ydFR5cGVTdWJqZWN0OiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIGRhdGVTZXQgPSBuZXcgU2V0KFtcclxuICAgICAgICBcImVuZERhdGVcIixcclxuICAgICAgICBcInN0YXJ0RGF0ZVwiLFxyXG4gICAgICAgIFwiZW5kX2RhdGVcIixcclxuICAgICAgICBcInN0YXJ0X2RhdGVcIixcclxuICAgICAgICBcImZsaWdodFN0YXJ0RGF0ZVwiLFxyXG4gICAgICAgIFwiZmxpZ2h0RW5kRGF0ZVwiLFxyXG4gICAgICAgIFwiZGF0ZVwiLFxyXG4gICAgICAgIFwiR2VuZXJhdGVkT25cIixcclxuICAgIF0pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZTogQW5uYURhdGVUaW1lRm9ybWF0U2VydmljZSkge31cclxuXHJcbiAgICBzb3J0RGF0YUZvckNvbXBvbmVudE90aGVyVGhhbkx1ckFuZENzclBhZ2UoaXNBc2M6IGJvb2xlYW4sIGRhdGE6IGFueVtdLCBrZXk6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBwYXJhbTE6IHN0cmluZyB8IG51bWJlcjtcclxuICAgICAgICBsZXQgcGFyYW0yOiBzdHJpbmcgfCBudW1iZXI7XHJcblxyXG4gICAgICAgIGxldCBkYXRhVG9CZVNvcnRlZCA9IGRhdGE7XHJcbiAgICAgICAgaWYgKHRoaXMuZGF0ZVNldC5oYXMoa2V5KSkge1xyXG4gICAgICAgICAgICBkYXRhVG9CZVNvcnRlZC5zb3J0KChhLCBiKSA9PiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZURhdGUoYVtrZXldLCBiW2tleV0sIGlzQXNjKSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09IFwiQWlyRGF0ZUFuZFRpbWVcIiB8fCBrZXkgPT09IFwiRGF0ZVwiKSB7XHJcbiAgICAgICAgICAgIGRhdGFUb0JlU29ydGVkLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChhW2tleV0gPT09IFwiLVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGJba2V5XSA9PT0gXCItXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdCA9IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5mb3JtYXREYXRlQW5kSEhNTUFUaW1lVG9TdGFuZGFyZEZvcm1hdChhW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2Vjb25kID0gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmZvcm1hdERhdGVBbmRISE1NQVRpbWVUb1N0YW5kYXJkRm9ybWF0KGJba2V5XSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wYXJlRGF0ZSA9IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5jb21wYXJlRGF0ZShmaXJzdCwgc2Vjb25kLCBpc0FzYyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZURhdGU7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcInN0YXJ0RW5kVGltZVwiIHx8IGtleSA9PT0gXCJUaW1lQmFuZFwiKSB7XHJcbiAgICAgICAgICAgIGRhdGFUb0JlU29ydGVkLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0FzYykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMSA9IGFba2V5XVsxXTtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMV07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMSA9IGFba2V5XVsyXTtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMl07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSBpc0FzY1xyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLnNvcnRCeVRpbWVBc2NlbmRpbmcocGFyYW0xLCBwYXJhbTIpXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2Uuc29ydEJ5VGltZURlc2NlbmRpbmcocGFyYW0xLCBwYXJhbTIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YVdpdGhvdXRFbXB0eU9ySHlwaGVuVmFsdWVzID0gZGF0YVRvQmVTb3J0ZWQuZmlsdGVyKChuKSA9PiBuW2tleV0gIT09IFwiLVwiKTtcclxuICAgICAgICAgICAgY29uc3Qgcm93c1dpdGhIeXBoZW5Pclplcm9WYWx1ZXMgPSBkYXRhVG9CZVNvcnRlZC5maWx0ZXIoKG4pID0+IG5ba2V5XSA9PT0gXCItXCIpO1xyXG5cclxuICAgICAgICAgICAgZGF0YVdpdGhvdXRFbXB0eU9ySHlwaGVuVmFsdWVzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICAgIHBhcmFtMSA9IGFba2V5XTtcclxuICAgICAgICAgICAgICAgIHBhcmFtMiA9IGJba2V5XTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocGFyYW0xICE9PSBwYXJhbTIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBkYXRhVG9CZVNvcnRlZCA9IGlzQXNjXHJcbiAgICAgICAgICAgICAgICA/IFsuLi5yb3dzV2l0aEh5cGhlbk9yWmVyb1ZhbHVlcywgLi4uZGF0YVdpdGhvdXRFbXB0eU9ySHlwaGVuVmFsdWVzXVxyXG4gICAgICAgICAgICAgICAgOiBbLi4uZGF0YVdpdGhvdXRFbXB0eU9ySHlwaGVuVmFsdWVzLCAuLi5yb3dzV2l0aEh5cGhlbk9yWmVyb1ZhbHVlc107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZGF0YVRvQmVTb3J0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc29ydEVudGVyRWRpdEx1ckFuZENzclBhZ2UoaXNBc2M6IGJvb2xlYW4sIGRhdGE6IGFueVtdLCBrZXk6IGFueSkge1xyXG4gICAgICAgIGxldCBwYXJhbTE6IHN0cmluZyB8IG51bWJlcjtcclxuICAgICAgICBsZXQgcGFyYW0yOiBzdHJpbmcgfCBudW1iZXI7XHJcblxyXG4gICAgICAgIGlmIChrZXkuaW5jbHVkZXMoXCJfXCIpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoXCJfXCIpO1xyXG4gICAgICAgICAgICBjb25zdCB3ZWVrTnVtYmVyID0ga2V5c1swXTtcclxuICAgICAgICAgICAgbGV0IHNvcnRLZXkgPSBrZXlzWzFdO1xyXG5cclxuICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID4gMikge1xyXG4gICAgICAgICAgICAgICAgc29ydEtleSA9IGtleXNbMl0gPT09IFwidHJ1ZVwiID8gXCJCb29rZWRBdXJJbmNsdWRpbmdOb0NoYXJnZVNwb3RzXCIgOiBcIkJvb2tlZEF1ckV4Y2x1ZGluZ05vQ2hhcmdlU3BvdHNcIjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5ID0gT2JqZWN0LmtleXMoYS5XZWVrV2lzZUludmVudG9yeUNvZGVEYXRhKS5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgKGludktleSkgPT4gaW52S2V5LnNwbGl0KFwiX1wiKVsxXSA9PT0gd2Vla051bWJlcixcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBiSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5ID0gT2JqZWN0LmtleXMoYi5XZWVrV2lzZUludmVudG9yeUNvZGVEYXRhKS5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgKGludktleSkgPT4gaW52S2V5LnNwbGl0KFwiX1wiKVsxXSA9PT0gd2Vla051bWJlcixcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgcGFyYW0xID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHBhcmFtMiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICBpZiAoYUludmVudG9yeUNvZGVXZWVrV2lzZUtleS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW0xID0gYS5XZWVrV2lzZUludmVudG9yeUNvZGVEYXRhW2FJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXlbMF1dW3NvcnRLZXldWzFdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChiSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFbYkludmVudG9yeUNvZGVXZWVrV2lzZUtleVswXV1bc29ydEtleV1bMV07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtMSAhPT0gcGFyYW0yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5jb21wYXJlKHBhcmFtMSwgcGFyYW0yLCBpc0FzYyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSBcIlRpbWVCYW5kXCIpIHtcclxuICAgICAgICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNBc2MpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTEgPSBhW2tleV1bMV07XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW0yID0gYltrZXldWzFdO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTEgPSBhW2tleV1bMl07XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW0yID0gYltrZXldWzJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsID0gaXNBc2NcclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5zb3J0QnlUaW1lQXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKVxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLnNvcnRCeVRpbWVEZXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcGFyYW0xID0gYVtrZXldO1xyXG4gICAgICAgICAgICAgICAgcGFyYW0yID0gYltrZXldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChwYXJhbTEgIT09IHBhcmFtMikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZShwYXJhbTEsIHBhcmFtMiwgaXNBc2MpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrSWZTb3J0aW5nSXNBcHBsaWVkKHRhYmxlRGF0YTogYW55W10sIGlzTHVyQW5kQ3NyQ29tcG9uZW50OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IHNvcnRlZFRhYmxlRGF0YSA9IHRhYmxlRGF0YTtcclxuICAgICAgICB0aGlzLmNvbHVtblNvcnRTdGF0ZS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gXCJBU0NcIikge1xyXG4gICAgICAgICAgICAgICAgc29ydGVkVGFibGVEYXRhID0gY2xvbmVEZWVwKFxyXG4gICAgICAgICAgICAgICAgICAgIGlzTHVyQW5kQ3NyQ29tcG9uZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zb3J0RW50ZXJFZGl0THVyQW5kQ3NyUGFnZSh0cnVlLCB0YWJsZURhdGEsIGtleSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZSh0cnVlLCB0YWJsZURhdGEsIGtleSksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBcIkRFU0NcIikge1xyXG4gICAgICAgICAgICAgICAgc29ydGVkVGFibGVEYXRhID0gY2xvbmVEZWVwKFxyXG4gICAgICAgICAgICAgICAgICAgIGlzTHVyQW5kQ3NyQ29tcG9uZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5zb3J0RW50ZXJFZGl0THVyQW5kQ3NyUGFnZShmYWxzZSwgdGFibGVEYXRhLCBrZXkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zb3J0RGF0YUZvckNvbXBvbmVudE90aGVyVGhhbkx1ckFuZENzclBhZ2UoZmFsc2UsIHRhYmxlRGF0YSwga2V5KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHNvcnRlZFRhYmxlRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBhcHBseVNvcnRpbmcoa2V5OiBzdHJpbmcsIHRlbXBTb3J0T3JkZXI6IFNvcnRUeXBlLCB0YWJsZURhdGE6IGFueVtdLCBpc0x1ckFuZENzckNvbXBvbmVudDogYm9vbGVhbikge1xyXG4gICAgICAgIGxldCBzb3J0ZWRUYWJsZURhdGEgPSB0YWJsZURhdGE7XHJcbiAgICAgICAgaWYgKHRlbXBTb3J0T3JkZXIgPT09IFwiQVNDXCIpIHtcclxuICAgICAgICAgICAgc29ydGVkVGFibGVEYXRhID0gY2xvbmVEZWVwKFxyXG4gICAgICAgICAgICAgICAgaXNMdXJBbmRDc3JDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc29ydEVudGVyRWRpdEx1ckFuZENzclBhZ2UodHJ1ZSwgdGFibGVEYXRhLCBrZXkpXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZSh0cnVlLCB0YWJsZURhdGEsIGtleSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0ZW1wU29ydE9yZGVyID09PSBcIkRFU0NcIikge1xyXG4gICAgICAgICAgICBzb3J0ZWRUYWJsZURhdGEgPSBjbG9uZURlZXAoXHJcbiAgICAgICAgICAgICAgICBpc0x1ckFuZENzckNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zb3J0RW50ZXJFZGl0THVyQW5kQ3NyUGFnZShmYWxzZSwgdGFibGVEYXRhLCBrZXkpXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZShmYWxzZSwgdGFibGVEYXRhLCBrZXkpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGVtcFNvcnRPcmRlciA9PT0gXCJERUZBVUxUXCIpIHtcclxuICAgICAgICAgICAgc29ydGVkVGFibGVEYXRhID0gY2xvbmVEZWVwKHRoaXMubm9Tb3J0aW5nQXBwbGllZERhdGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHNvcnRlZFRhYmxlRGF0YTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1zb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLXNvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQUU1RSxnQ0FBZ0M7QUFFaEMsaUNBQWlDO0FBS2pDLE1BQU0sT0FBTyxlQUFlO0lBaUJ4QixZQUFvQix5QkFBb0Q7UUFBcEQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQWR4RSwwQkFBcUIsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV2RCxZQUFPLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDZCxTQUFTO1lBQ1QsV0FBVztZQUNYLFVBQVU7WUFDVixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixNQUFNO1lBQ04sYUFBYTtZQUNiLFNBQVM7U0FDWixDQUFDLENBQUM7SUFFd0UsQ0FBQztJQUU1RSwwQ0FBMEMsQ0FBQyxLQUFjLEVBQUUsSUFBVyxFQUFFLEdBQVc7UUFDL0UsSUFBSSxNQUF1QixDQUFDO1FBQzVCLElBQUksTUFBdUIsQ0FBQztRQUU1QixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFB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QUcsU0FBUyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQzFEO1FBRUQsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQzsrR0F4TFEsZUFBZTttSEFBZixlQUFlLGNBRlosTUFBTTs7NEZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tIFwibG9kYXNoLWVzXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuaW1wb3J0IHsgU29ydFR5cGUgfSBmcm9tIFwiLi4vbW9kZWxzL2FubmEtc29ydC5tb2RlbFwiO1xyXG5pbXBvcnQgeyBBbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlIH0gZnJvbSBcIi4vYW5uYS1kYXRlLXRpbWUtZm9ybWF0LnNlcnZpY2VcIjtcclxuXHJcbi8vIFRoaXJkIHBhcnR5IGltcG9ydCBzdGF0ZW1lbnRzXHJcblxyXG4vLyBVc2VyIGRlZmluZWQgaW1wb3J0IHN0YXRlbWVudHNcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5uYVNvcnRTZXJ2aWNlIHtcclxuICAgIGNvbHVtblNvcnRTdGF0ZTogTWFwPHN0cmluZywgU29ydFR5cGU+O1xyXG4gICAgbm9Tb3J0aW5nQXBwbGllZERhdGE6IGFueVtdO1xyXG4gICAgdXBkYXRlU29ydFR5cGVTdWJqZWN0OiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIGRhdGVTZXQgPSBuZXcgU2V0KFtcclxuICAgICAgICBcImVuZERhdGVcIixcclxuICAgICAgICBcInN0YXJ0RGF0ZVwiLFxyXG4gICAgICAgIFwiZW5kX2RhdGVcIixcclxuICAgICAgICBcInN0YXJ0X2RhdGVcIixcclxuICAgICAgICBcImZsaWdodFN0YXJ0RGF0ZVwiLFxyXG4gICAgICAgIFwiZmxpZ2h0RW5kRGF0ZVwiLFxyXG4gICAgICAgIFwiZGF0ZVwiLFxyXG4gICAgICAgIFwiR2VuZXJhdGVkT25cIixcclxuICAgICAgICBcIkFpckRhdGVcIlxyXG4gICAgXSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlOiBBbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlKSB7fVxyXG5cclxuICAgIHNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZShpc0FzYzogYm9vbGVhbiwgZGF0YTogYW55W10sIGtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgbGV0IHBhcmFtMTogc3RyaW5nIHwgbnVtYmVyO1xyXG4gICAgICAgIGxldCBwYXJhbTI6IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgICAgICAgbGV0IGRhdGFUb0JlU29ydGVkID0gZGF0YTtcclxuICAgICAgICBpZiAodGhpcy5kYXRlU2V0LmhhcyhrZXkpKSB7XHJcbiAgICAgICAgICAgIGRhdGFUb0JlU29ydGVkLnNvcnQoKGEsIGIpID0+IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5jb21wYXJlRGF0ZShhW2tleV0sIGJba2V5XSwgaXNBc2MpKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gXCJBaXJEYXRlQW5kVGltZVwiIHx8IGtleSA9PT0gXCJEYXRlXCIpIHtcclxuICAgICAgICAgICAgZGF0YVRvQmVTb3J0ZWQuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGFba2V5XSA9PT0gXCItXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoYltrZXldID09PSBcIi1cIikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmZvcm1hdERhdGVBbmRISE1NQVRpbWVUb1N0YW5kYXJkRm9ybWF0KGFba2V5XSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZWNvbmQgPSB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuZm9ybWF0RGF0ZUFuZEhITU1BVGltZVRvU3RhbmRhcmRGb3JtYXQoYltrZXldKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBhcmVEYXRlID0gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmVEYXRlKGZpcnN0LCBzZWNvbmQsIGlzQXNjKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBjb21wYXJlRGF0ZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09IFwic3RhcnRFbmRUaW1lXCIgfHwga2V5ID09PSBcIlRpbWVCYW5kXCIpIHtcclxuICAgICAgICAgICAgZGF0YVRvQmVTb3J0ZWQuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzQXNjKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW0xID0gYVtrZXldWzFdO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMiA9IGJba2V5XVsxXTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW0xID0gYVtrZXldWzJdO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMiA9IGJba2V5XVsyXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbCA9IGlzQXNjXHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2Uuc29ydEJ5VGltZUFzY2VuZGluZyhwYXJhbTEsIHBhcmFtMilcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5zb3J0QnlUaW1lRGVzY2VuZGluZyhwYXJhbTEsIHBhcmFtMik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBkYXRhV2l0aG91dEVtcHR5T3JIeXBoZW5WYWx1ZXMgPSBkYXRhVG9CZVNvcnRlZC5maWx0ZXIoKG4pID0+IG5ba2V5XSAhPT0gXCItXCIpO1xyXG4gICAgICAgICAgICBjb25zdCByb3dzV2l0aEh5cGhlbk9yWmVyb1ZhbHVlcyA9IGRhdGFUb0JlU29ydGVkLmZpbHRlcigobikgPT4gbltrZXldID09PSBcIi1cIik7XHJcblxyXG4gICAgICAgICAgICBkYXRhV2l0aG91dEVtcHR5T3JIeXBoZW5WYWx1ZXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcGFyYW0xID0gYVtrZXldO1xyXG4gICAgICAgICAgICAgICAgcGFyYW0yID0gYltrZXldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChwYXJhbTEgIT09IHBhcmFtMikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZShwYXJhbTEsIHBhcmFtMiwgaXNBc2MpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGRhdGFUb0JlU29ydGVkID0gaXNBc2NcclxuICAgICAgICAgICAgICAgID8gWy4uLnJvd3NXaXRoSHlwaGVuT3JaZXJvVmFsdWVzLCAuLi5kYXRhV2l0aG91dEVtcHR5T3JIeXBoZW5WYWx1ZXNdXHJcbiAgICAgICAgICAgICAgICA6IFsuLi5kYXRhV2l0aG91dEVtcHR5T3JIeXBoZW5WYWx1ZXMsIC4uLnJvd3NXaXRoSHlwaGVuT3JaZXJvVmFsdWVzXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRhVG9CZVNvcnRlZDtcclxuICAgIH1cclxuXHJcbiAgICBzb3J0RW50ZXJFZGl0THVyQW5kQ3NyUGFnZShpc0FzYzogYm9vbGVhbiwgZGF0YTogYW55W10sIGtleTogYW55KSB7XHJcbiAgICAgICAgbGV0IHBhcmFtMTogc3RyaW5nIHwgbnVtYmVyO1xyXG4gICAgICAgIGxldCBwYXJhbTI6IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgICAgICAgaWYgKGtleS5pbmNsdWRlcyhcIl9cIikpIHtcclxuICAgICAgICAgICAgY29uc3Qga2V5cyA9IGtleS5zcGxpdChcIl9cIik7XHJcbiAgICAgICAgICAgIGNvbnN0IHdlZWtOdW1iZXIgPSBrZXlzWzBdO1xyXG4gICAgICAgICAgICBsZXQgc29ydEtleSA9IGtleXNbMV07XHJcblxyXG4gICAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICAgICAgICBzb3J0S2V5ID0ga2V5c1syXSA9PT0gXCJ0cnVlXCIgPyBcIkJvb2tlZEF1ckluY2x1ZGluZ05vQ2hhcmdlU3BvdHNcIiA6IFwiQm9va2VkQXVyRXhjbHVkaW5nTm9DaGFyZ2VTcG90c1wiO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkgPSBPYmplY3Qua2V5cyhhLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGEpLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAoaW52S2V5KSA9PiBpbnZLZXkuc3BsaXQoXCJfXCIpWzFdID09PSB3ZWVrTnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGJJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkgPSBPYmplY3Qua2V5cyhiLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGEpLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAoaW52S2V5KSA9PiBpbnZLZXkuc3BsaXQoXCJfXCIpWzFdID09PSB3ZWVrTnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBwYXJhbTEgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcGFyYW0yID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGlmIChhSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTEgPSBhLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFbYUludmVudG9yeUNvZGVXZWVrV2lzZUtleVswXV1bc29ydEtleV1bMV07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGJJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMiA9IGIuV2Vla1dpc2VJbnZlbnRvcnlDb2RlRGF0YVtiSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5WzBdXVtzb3J0S2V5XVsxXTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocGFyYW0xICE9PSBwYXJhbTIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09IFwiVGltZUJhbmRcIikge1xyXG4gICAgICAgICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0FzYykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMSA9IGFba2V5XVsxXTtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMV07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMSA9IGFba2V5XVsyXTtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMl07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSBpc0FzY1xyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLnNvcnRCeVRpbWVBc2NlbmRpbmcocGFyYW0xLCBwYXJhbTIpXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2Uuc29ydEJ5VGltZURlc2NlbmRpbmcocGFyYW0xLCBwYXJhbTIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbTEgPSBhW2tleV07XHJcbiAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV07XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtMSAhPT0gcGFyYW0yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5jb21wYXJlKHBhcmFtMSwgcGFyYW0yLCBpc0FzYyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tJZlNvcnRpbmdJc0FwcGxpZWQodGFibGVEYXRhOiBhbnlbXSwgaXNMdXJBbmRDc3JDb21wb25lbnQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBsZXQgc29ydGVkVGFibGVEYXRhID0gdGFibGVEYXRhO1xyXG4gICAgICAgIHRoaXMuY29sdW1uU29ydFN0YXRlLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBcIkFTQ1wiKSB7XHJcbiAgICAgICAgICAgICAgICBzb3J0ZWRUYWJsZURhdGEgPSBjbG9uZURlZXAoXHJcbiAgICAgICAgICAgICAgICAgICAgaXNMdXJBbmRDc3JDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNvcnRFbnRlckVkaXRMdXJBbmRDc3JQYWdlKHRydWUsIHRhYmxlRGF0YSwga2V5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc29ydERhdGFGb3JDb21wb25lbnRPdGhlclRoYW5MdXJBbmRDc3JQYWdlKHRydWUsIHRhYmxlRGF0YSwga2V5KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFwiREVTQ1wiKSB7XHJcbiAgICAgICAgICAgICAgICBzb3J0ZWRUYWJsZURhdGEgPSBjbG9uZURlZXAoXHJcbiAgICAgICAgICAgICAgICAgICAgaXNMdXJBbmRDc3JDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNvcnRFbnRlckVkaXRMdXJBbmRDc3JQYWdlKGZhbHNlLCB0YWJsZURhdGEsIGtleSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZShmYWxzZSwgdGFibGVEYXRhLCBrZXkpLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gc29ydGVkVGFibGVEYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGFwcGx5U29ydGluZyhrZXk6IHN0cmluZywgdGVtcFNvcnRPcmRlcjogU29ydFR5cGUsIHRhYmxlRGF0YTogYW55W10sIGlzTHVyQW5kQ3NyQ29tcG9uZW50OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IHNvcnRlZFRhYmxlRGF0YSA9IHRhYmxlRGF0YTtcclxuICAgICAgICBpZiAodGVtcFNvcnRPcmRlciA9PT0gXCJBU0NcIikge1xyXG4gICAgICAgICAgICBzb3J0ZWRUYWJsZURhdGEgPSBjbG9uZURlZXAoXHJcbiAgICAgICAgICAgICAgICBpc0x1ckFuZENzckNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zb3J0RW50ZXJFZGl0THVyQW5kQ3NyUGFnZSh0cnVlLCB0YWJsZURhdGEsIGtleSlcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc29ydERhdGFGb3JDb21wb25lbnRPdGhlclRoYW5MdXJBbmRDc3JQYWdlKHRydWUsIHRhYmxlRGF0YSwga2V5KSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRlbXBTb3J0T3JkZXIgPT09IFwiREVTQ1wiKSB7XHJcbiAgICAgICAgICAgIHNvcnRlZFRhYmxlRGF0YSA9IGNsb25lRGVlcChcclxuICAgICAgICAgICAgICAgIGlzTHVyQW5kQ3NyQ29tcG9uZW50XHJcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNvcnRFbnRlckVkaXRMdXJBbmRDc3JQYWdlKGZhbHNlLCB0YWJsZURhdGEsIGtleSlcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc29ydERhdGFGb3JDb21wb25lbnRPdGhlclRoYW5MdXJBbmRDc3JQYWdlKGZhbHNlLCB0YWJsZURhdGEsIGtleSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0ZW1wU29ydE9yZGVyID09PSBcIkRFRkFVTFRcIikge1xyXG4gICAgICAgICAgICBzb3J0ZWRUYWJsZURhdGEgPSBjbG9uZURlZXAodGhpcy5ub1NvcnRpbmdBcHBsaWVkRGF0YSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gc29ydGVkVGFibGVEYXRhO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|