vc-create-dashboard 3.0.86 → 3.0.87
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/esm2022/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.mjs +7 -7
- package/esm2022/lib/create-dashboard-container/services/create-dashboard.service.mjs +26 -31
- package/fesm2022/vc-create-dashboard.mjs +31 -36
- package/fesm2022/vc-create-dashboard.mjs.map +1 -1
- package/lib/create-dashboard-container/configure-widgets/configure-widgets/configure-widgets.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -195,12 +195,12 @@ export class ConfigureWidgetsComponent {
|
|
|
195
195
|
visibility: true,
|
|
196
196
|
module: 'COMPLIANCE',
|
|
197
197
|
subWidgets: [
|
|
198
|
-
{
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
},
|
|
198
|
+
// {
|
|
199
|
+
// title: 'Overview',
|
|
200
|
+
// id: 'key_responsibilities_overview_flag',
|
|
201
|
+
// value: false,
|
|
202
|
+
// visibility: true,
|
|
203
|
+
// },
|
|
204
204
|
{
|
|
205
205
|
title: 'My Responsibilities',
|
|
206
206
|
id: 'key_my_responsibilities_flag',
|
|
@@ -347,4 +347,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
347
347
|
}], mode: [{
|
|
348
348
|
type: Input
|
|
349
349
|
}] } });
|
|
350
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLXdpZGdldHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLHlCQUF5QjtJQXlCMUI7SUFDRDtJQUNDO0lBMUJBLG1CQUFtQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVELHFCQUFxQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3hFLGNBQWMsQ0FBTztJQUNyQixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLFlBQVksR0FBNkMsRUFBRSxDQUFDO0lBQzVELGVBQWUsR0FBMkIsRUFBRSxDQUFDO0lBQzdDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDaEIsTUFBTSxHQUEwQixZQUFZLENBQUM7SUFDcEMsbUJBQW1CLEdBQVEsRUFBRSxDQUFDO0lBQzlCLGdCQUFnQixHQUFRLEVBQUUsQ0FBQztJQUMzQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLGNBQWMsR0FBRyxLQUFL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QUU7Z0JBQzdCLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7b0JBQ3pDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2dCQUNoQyxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxnREFBZ0Q7UUFDaEQsNEJBQTRCO1FBQzVCLHFDQUFxQztRQUNyQyxvREFBb0Q7UUFDcEQsdUNBQXVDO1FBQ3ZDLFVBQVU7UUFDVixNQUFNO1FBQ04sTUFBTTtJQUNSLENBQUM7d0dBalhVLHlCQUF5Qjs0RkFBekIseUJBQXlCLCtWQ3JCdEMsaXBLQTZJQTs7NEZEeEhhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUI7b0tBS3ZCLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBT0UsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlndXJlV2lkZ2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25maWd1cmUtd2lkZ2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgd2lkZ2V0RGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aWRnZXQtZGF0YS1tb2RlbCc7XHJcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9kaWFsb2cvZGlhbG9nLXJlZic7XHJcbmltcG9ydCB7IHdpZGdldENvbmZpZyB9IGZyb20gJy4vd2lkZ2V0LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvbmZpZ3VyZS13aWRnZXRzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJlLXdpZGdldHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmVXaWRnZXRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBPdXRwdXQoKSB3aWRnZXRzRGF0YU1vZGlmaWVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VDb25maWd1cmVXaWRnZXRzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjaGVja2JveFN0YXR1cyE6IGFueTtcclxuICBzZWFyY2g6IHN0cmluZyA9ICcnO1xyXG4gIGNoZWNrZWRBcnJheTogQXJyYXk8eyBpbmRleDogbnVtYmVyOyBzdGF0dXM6IG51bWJlciB9PiA9IFtdO1xyXG4gIHNlbGVjdGVkV2lkZ2V0czogQXJyYXk8d2lkZ2V0RGF0YU1vZGVsPiA9IFtdO1xyXG4gIEFTU0VUUyA9IEFTU0VUUztcclxuICBtb2R1bGU6ICdDT01QTElBTkNFJyB8ICdSSVNLJyA9ICdDT01QTElBTkNFJztcclxuICBASW5wdXQoKSBzZWxlY3RlZFdpZGdldHNEYXRhOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBkaXNwbGF5ZWRXaWRnZXRzOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBzaG93UmlzayA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNob3dDb21wbGlhbmNlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbW9kZSA9ICdDUkVBVEUnO1xyXG4gIG5vRGF0YVRleHQgPVxyXG4gICAgJ1lvdSBoYXZlIG5vdCBjb25maWd1cmVkIGFueSB3aWRnZXRzLiBDbGljayBvbiB0aGUgPHN0cm9uZz5Db25maWd1cmUgV2lkZ2V0czwvc3Ryb25nPiBidXR0b24gdG8gYmVnaW4uJztcclxuXHJcbiAgc2VsZWN0ZWRXaWRnZXRJZHM6IGFueSA9IFtdO1xyXG4gIHN1YlJlc3BvbnNpYmlsaXRpZXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHN1YktleVJlc3BvbnNpYmlsaXRpZXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dXaWRnZXRzID0gdHJ1ZTtcclxuICBjb21wbGlhbmNlV2lkZ2V0c0Rpc3BsYXlDb3VudCA9IDk7XHJcbiAgcmlza1dpZGdldHNEaXNwbGF5Q291bnQgPSA5O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBEaWFsb2dSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlndXJlV2lkZ2V0c1NlcnZpY2U6IENvbmZpZ3VyZVdpZGdldHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMuYXBwbHlFZGl0TW9kZVdpZGdldENhdGFsb2coKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXBwbHlDcmVhdGVNb2RlV2lkZ2V0VmlzaWJpbGl0eSgpO1xyXG4gICAgICB0aGlzLmFwcGx5U2F2ZWRXaWRnZXRTZWxlY3Rpb24odGhpcy5zZWxlY3RlZFdpZGdldHNEYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1vZHVsZSA9IHRoaXMuc2hvd0NvbXBsaWFuY2UgPyAnQ09NUExJQU5DRScgOiAnUklTSyc7XHJcbiAgICB0aGlzLnNldFNlbGVjdGVkV2lkZ2V0cygpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEVESVQ6IHNob3cgZnVsbCB3aWRnZXQgY2F0YWxvZzsgY2hlY2sgaXRlbXMgcHJlc2VudCBpbiBnZXRXaWRnZXRzIHdpZGdldEFyci4gKi9cclxuICBwcml2YXRlIGFwcGx5RWRpdE1vZGVXaWRnZXRDYXRhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy53aWRnZXRzTGlzdC5DT01QTElBTkNFLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGVsZS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICBlbGUudmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICAgIChlbGUuc3ViV2lkZ2V0cyA/PyBbXSkuZm9yRWFjaCgoc3ViOiBhbnkpID0+IHtcclxuICAgICAgICBzdWIudmFsdWUgPSBmYWxzZTtcclxuICAgICAgICBzdWIudmlzaWJpbGl0eSA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmNvbXBsaWFuY2VXaWRnZXRzRGlzcGxheUNvdW50ID0gdGhpcy53aWRnZXRzTGlzdC5DT01QTElBTkNFLmZpbHRlcihcclxuICAgICAgKHcpID0+IHcudmlzaWJpbGl0eVxyXG4gICAgKS5sZW5ndGg7XHJcbiAgICB0aGlzLnJpc2tXaWRnZXRzRGlzcGxheUNvdW50ID0gMDtcclxuICAgIHRoaXMuYXBwbHlTYXZlZFdpZGdldFNlbGVjdGlvbih0aGlzLnNlbGVjdGVkV2lkZ2V0c0RhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqIENSRUFURTogbGltaXQgdmlzaWJsZSB0aWxlcyB0byBkaXNwbGF5ZWRXaWRnZXRzIHdoZW4gcHJvdmlkZWQuICovXHJcbiAgcHJpdmF0ZSBhcHBseUNyZWF0ZU1vZGVXaWRnZXRWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc3BsYXllZFdpZGdldHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFdpZGdldHNWaXNpYmlsaXR5VG9GYWxzZSgpO1xyXG4gICAgdGhpcy5yaXNrV2lkZ2V0c0Rpc3BsYXlDb3VudCA9IDA7XHJcbiAgICB0aGlzLmNvbXBsaWFuY2VXaWRnZXRzRGlzcGxheUNvdW50ID0gMDtcclxuICAgIGNvbnN0IGZpbmFsRGF0YSA9IFsuLi5uZXcgU2V0KHRoaXMuZGlzcGxheWVkV2lkZ2V0cyldO1xyXG4gICAgZmluYWxEYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlkICE9PSBlbGVtZW50LndpZGdldF9jb2RlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsZS52aXNpYmlsaXR5ID0gdHJ1ZTtcclxuICAgICAgICBpZiAoZWxlLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3QgdmlzaWJsZVN1YkNvZGVzID0gKGVsZW1lbnQuc3ViX3dpZGdldHMgPz8gW10pLm1hcChcclxuICAgICAgICAgICAgKHN1YndpZGdldDogYW55KSA9PiBzdWJ3aWRnZXQud2lkZ2V0X2NvZGVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBlbGUuc3ViV2lkZ2V0cy5mb3JFYWNoKChzdWJFbGVtZW50OiBhbnksIHN1YkluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgZWxlLnN1YldpZGdldHNbc3ViSW5kZXhdLnZpc2liaWxpdHkgPSB2aXNpYmxlU3ViQ29kZXMuaW5jbHVkZXMoXHJcbiAgICAgICAgICAgICAgc3ViRWxlbWVudC5pZFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQrKztcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlTYXZlZFdpZGdldFNlbGVjdGlvbihzYXZlZFdpZGdldHM6IGFueVtdKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhID0gWy4uLm5ldyBTZXQoc2F2ZWRXaWRnZXRzID8/IFtdKV07XHJcbiAgICBkYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZWxlbWVudD8uc3RhdGUgJiYgZWxlbWVudC5zdGF0ZSAhPT0gJ0FDVElWRScpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy53aWRnZXRzTGlzdC5DT01QTElBTkNFLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGVsZS5pZCAhPT0gZWxlbWVudC53aWRnZXRfY29kZSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbGUudmFsdWUgPSB0cnVlO1xyXG4gICAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwICYmIGVsZW1lbnQuc3ViX3dpZGdldHM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3QgYWN0aXZlU3ViQ29kZXMgPSAoZWxlbWVudC5zdWJfd2lkZ2V0cyA/PyBbXSlcclxuICAgICAgICAgICAgLmZpbHRlcigoc3Vid2lkZ2V0OiBhbnkpID0+IHN1YndpZGdldC5zdGF0ZSA9PT0gJ0FDVElWRScpXHJcbiAgICAgICAgICAgIC5tYXAoKHN1YndpZGdldDogYW55KSA9PiBzdWJ3aWRnZXQud2lkZ2V0X2NvZGUpO1xyXG4gICAgICAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55LCBzdWJJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIGVsZS5zdWJXaWRnZXRzW3N1YkluZGV4XS52YWx1ZSA9IGFjdGl2ZVN1YkNvZGVzLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgIHN1YkVsZW1lbnQuaWRcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgd2lkZ2V0c0xpc3QgPSB7XHJcbiAgICBDT01QTElBTkNFOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ092ZXJ2aWV3JyxcclxuICAgICAgICBpZDogJ292ZXJ2aWV3JyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdPdmVydmlldyBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBhbmQgUHJvZ3JhbXMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLm92ZXJ2aWV3V2lkZ2V0LFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDYWxlbmRhcicsXHJcbiAgICAgICAgaWQ6ICdjb21wbGlhbmNlX2NhbGVuZGFyX2ZsYWcnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgJ1RoZSBSZXNwb25zaWJpbGl0eSBDYWxlbmRhciBzaG93cyB0aGUgZHVlIGRhdGVzIG9mIHJlc3BvbnNpYmlsaXRpZXMgaW4gYSBjYWxlbmRhciBmb3JtYXQuIFRoZSByZXNwb25zaWJpbGl0aWVzIGFyZSBjb2xvciBjb2RlZCB0byByZWZsZWN0IHRoZSBzdGF0dXMgb2YgdGhlIHJlc3BvbnNpYmlsaXRpZXMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLnJlc3BvbnNpYmlsaXR5Q2FsZW5kZXJXaWRnZXQsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW10sXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0aWVzIGJ5IEFzc2lnbmVlJyxcclxuICAgICAgICBpZDogJ3Jlc3BvbnNpYmlsaXRpZXNfYnlfYXNzaWduZWUnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIFJlc3BvbnNpYmlsaXRpZXMgYnkgQXNzaWduZWUgd2lkZ2V0IHNob3dzIHRoZSBwZXJmb3JtYW5jZSBvZiByZXNwb25zaWJpbGl0aWVzIGJ5IHVzZXJzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy5yZXNwb25zaWJpbGl0aWVzQnlBc3NpZ25lZSxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyIE92ZXJ2aWV3JyxcclxuICAgICAgICBpZDogJ3Jlc3BvbnNpYmlsaXR5X2NlbnRlcl9vdmVydmlld19mbGFnJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdUaGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIE92ZXJ2aWV3IHNob3dzIHRoZSBwZXJmb3JtYW5jZSBvZiByZXNwb25zaWJpbGl0aWVzIGFuZCBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy5yZXNwb25zaWJpbGl0eUNlbnRlck92ZXJ2aWV3V2lkZ2V0LFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBpZDogJ215X3Jlc3BvbnNpYmlsaXRpZXMnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgJ1RoaXMgd2lkZ2V0IHNob3dzIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IHlvdSBhcmUgcmVxdWlyZWQgdG8gY29tcGxldGUsIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgeW91IGFyZSByZXZpZXdpbmcgYW5kIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgeW91IGFyZSBvdmVyc2VlaW5nLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy5teVJlc3BvbnNpYmlsaXRpZXNXaWRnZXQsXHJcbiAgICAgICAgdGFiT3B0aW9uOiB0cnVlLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdNeSBSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICAgICAgaWQ6ICdteV9yZXNwb25zaWJpbGl0eV9mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdJ4oCZbSBSZXZpZXdpbmcnLFxyXG4gICAgICAgICAgICBpZDogJ3Jldmlld2VyX3Jlc3BvbnNpYmlsaXR5X2ZsYWcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ0nigJltIE92ZXJzZWVpbmcnLFxyXG4gICAgICAgICAgICBpZDogJ2NjX3Jlc3BvbnNpYmlsaXR5X2ZsYWcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ0tleSBSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBpZDogJ2tleV9yZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdUaGlzIHdpZGdldCBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2Yga2V5IHJlc3BvbnNpYmlsaXRpZXMgdGhhdCB5b3UgYXJlIHJlcXVpcmVkIHRvIGNvbXBsZXRlLCB0aGF0IHlvdSBhcmUgcmV2aWV3aW5nLCB0aGF0IHlvdSBhcmUgb3ZlcnNlZWluZyBhbmQgdGhhdCB5b3UgaGF2ZSBhc3NpZ25lZCB0byBhbm90aGVyIHBlcnNvbi4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMua2V5UmVzcG9uc2liaWxpdGllc1dpZGdldCxcclxuICAgICAgICB0YWJPcHRpb246IHRydWUsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0aXRsZTogJ092ZXJ2aWV3JyxcclxuICAgICAgICAgICAgaWQ6ICdrZXlfcmVzcG9uc2liaWxpdGllc19vdmVydmlld19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdNeSBSZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICAgICAgaWQ6ICdrZXlfbXlfcmVzcG9uc2liaWxpdGllc19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdJ4oCZbSBSZXZpZXdpbmcnLFxyXG4gICAgICAgICAgICBpZDogJ2tleV9pX2FtX3Jldmlld2luZ19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdJ4oCZbSBPdmVyc2VlaW5nJyxcclxuICAgICAgICAgICAgaWQ6ICdrZXlfaV9hbV9vdmVyc2VlaW5nX2ZsYWcnLFxyXG4gICAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1RyZW5kIEFuYWx5c2lzJyxcclxuICAgICAgICBpZDogJ3RyZW5kX2FuYWx5c2lzX2ZsYWcnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgJ1RoZSBUcmVuZCBBbmFseXNpcyBpcyBhIGdyYXBoaWNhbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBvdmVyIGEgcGVyaW9kLicsXHJcbiAgICAgICAgd2lkZ2V0SW1hZ2U6IEFTU0VUUy50cmVuZEFuYWx5c2lzV2lkZ2V0LFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICBcclxuICB9O1xyXG5cclxuICBzZWxlY3RXaWRnZXQoXHJcbiAgICBldmVudDogYW55LFxyXG4gICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICB3aWRnZXRJZDogc3RyaW5nLFxyXG4gICAgc3ViV2lkZ2V0SWQ/OiBzdHJpbmdcclxuICApIHtcclxuICAgIGNvbnN0IHdpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdLmZpbmRJbmRleChcclxuICAgICAgKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gd2lkZ2V0SWRcclxuICAgICk7XHJcbiAgICBjb25zdCBpc1N1YldpZGdldEFkZGFibGUgPSB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5maW5kSW5kZXgoXHJcbiAgICAgICh3aWRnZXQ6IGFueSkgPT4gd2lkZ2V0LmlkID09PSB3aWRnZXRJZFxyXG4gICAgKTtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFdpZGdldHMubGVuZ3RoID49IDEwICYmXHJcbiAgICAgICAgIShzdWJXaWRnZXRJZCAmJiBpc1N1YldpZGdldEFkZGFibGUgPj0gMClcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KCdZb3UgY2Fubm90IGFkZCBtb3JlIHRoYW4gMTAgd2lkZ2V0cy4nLCAnYWxlcnQnKTtcclxuICAgICAgICB0aGlzLnNob3dXaWRnZXRzID0gZmFsc2U7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dXaWRnZXRzID0gdHJ1ZTtcclxuICAgICAgICB9LCAxMCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0udmFsdWUgPSB0cnVlO1xyXG4gICAgICBpZiAodGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAoIXN1YldpZGdldElkKSB7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZm9yRWFjaChcclxuICAgICAgICAgICAgKGVsZSkgPT4gKGVsZS52YWx1ZSA9IHRydWUpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJXaWRnZXRJbmRleCA9IHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVtcclxuICAgICAgICAgICAgd2lkZ2V0SW5kZXhcclxuICAgICAgICAgIF0uc3ViV2lkZ2V0cy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gc3ViV2lkZ2V0SWQpO1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzW1xyXG4gICAgICAgICAgICBzdWJXaWRnZXRJbmRleFxyXG4gICAgICAgICAgXS52YWx1ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAoIXN1YldpZGdldElkKSB7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZm9yRWFjaChcclxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiAoZWxlLnZhbHVlID0gZmFsc2UpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJXaWRnZXRJbmRleCA9IHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVtcclxuICAgICAgICAgICAgd2lkZ2V0SW5kZXhcclxuICAgICAgICAgIF0uc3ViV2lkZ2V0cy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gc3ViV2lkZ2V0SWQpO1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzW1xyXG4gICAgICAgICAgICBzdWJXaWRnZXRJbmRleFxyXG4gICAgICAgICAgXS52YWx1ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGlzQWxsV2lkZ2V0c1JlbW92ZWQgPSB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bXHJcbiAgICAgICAgICAgIHdpZGdldEluZGV4XHJcbiAgICAgICAgICBdLnN1YldpZGdldHMuZXZlcnkoKGVsZTogYW55KSA9PiBlbGUudmFsdWUgPT0gZmFsc2UpO1xyXG4gICAgICAgICAgaWYgKGlzQWxsV2lkZ2V0c1JlbW92ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRXaWRnZXRzKCk7XHJcbiAgfVxyXG4gIHNldFNlbGVjdGVkV2lkZ2V0cygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzID0gW107XHJcbiAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVsZS52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB0aGlzLndpZGdldHNMaXN0LlJJU0suZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgIC8vICAgaWYgKGVsZS52YWx1ZSkge1xyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVXaWRnZXQod2lkZ2V0OiB3aWRnZXRDb25maWcpIHtcclxuICAgIGNvbnN0IHdpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFt3aWRnZXQubW9kdWxlXS5maW5kSW5kZXgoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLmlkID09IHdpZGdldC5pZFxyXG4gICAgKTtcclxuICAgIHRoaXMud2lkZ2V0c0xpc3Rbd2lkZ2V0Lm1vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy53aWRnZXRzTGlzdFt3aWRnZXQubW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0c0xpc3Rbd2lkZ2V0Lm1vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMuZm9yRWFjaChcclxuICAgICAgICAoZWxlOiBhbnkpID0+IChlbGUudmFsdWUgPSBmYWxzZSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRXaWRnZXRzKCk7XHJcbiAgfVxyXG5cclxuICBvbk5leHRDbGljaygpIHtcclxuICAgIHRoaXMud2lkZ2V0c0RhdGFNb2RpZmllZC5lbWl0KHRoaXMuc2VsZWN0ZWRXaWRnZXRzKTtcclxuICB9XHJcblxyXG4gIGNsb3NlQ29uZmlndXJlRGFzaGJvYXJkKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdpZGdldHMgPSBbXTtcclxuICAgIHRoaXMuZGlhbG9nLmNsb3NlKCk7XHJcbiAgICB0aGlzLmNsb3NlQ29uZmlndXJlV2lkZ2V0cy5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHNldFdpZGdldHNWaXNpYmlsaXR5VG9GYWxzZSgpIHtcclxuICAgIHRoaXMud2lkZ2V0c0xpc3QuQ09NUExJQU5DRS5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICBlbGUudmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgICBpZiAoZWxlLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGVsZS5zdWJXaWRnZXRzLmZvckVhY2goKHN1YkVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgc3ViRWxlbWVudC52aXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy53aWRnZXRzTGlzdC5SSVNLLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAvLyAgIGVsZS52aXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAvLyAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAvLyAgICAgICBzdWJFbGVtZW50LnZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgIC8vICAgICB9KTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cyB2eC1kLWJsb2NrXCIgKm5nSWY9XCJzaG93V2lkZ2V0c1wiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy10aXRsZSB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+XHJcbiAgICAgIENvbmZpZ3VyZSBXaWRnZXRzXHJcbiAgICA8L2Rpdj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1iYWNrIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbS0wIHZ4LXAtMCB2eC1kLWlubGluZS1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgIChjbGljayk9XCJjbG9zZUNvbmZpZ3VyZURhc2hib2FyZCgpXCJcclxuICAgID5cclxuICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xNlwiPiYjeGU5MWQ7PC9pPiBCYWNrXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtYm9keVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLXRhYlwiPlxyXG4gICAgICA8dWw+XHJcbiAgICAgICAgPGxpXHJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIm1vZHVsZSA9PT0gJ0NPTVBMSUFOQ0UnXCJcclxuICAgICAgICAgICpuZ0lmPVwic2hvd0NvbXBsaWFuY2VcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm1vZHVsZSA9ICdDT01QTElBTkNFJ1wiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPCEtLSA8YnV0dG9uPlxyXG4gICAgICAgICAgICBDb21wbGlhbmNlPHNwYW4+e3sgY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgW2NsYXNzLmFjdGl2ZV09XCJtb2R1bGUgPT09ICdSSVNLJ1wiICpuZ0lmPVwic2hvd1Jpc2tcIj5cclxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm1vZHVsZSA9ICdSSVNLJ1wiPlxyXG4gICAgICAgICAgICBSaXNrczxzcGFuPnt7IHJpc2tXaWRnZXRzRGlzcGxheUNvdW50IH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLXNlYXJjaCB2eC1tYi0yXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2ggd2lkZ2V0c1wiIFsobmdNb2RlbCldPVwic2VhcmNoXCIgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWxpc3QgdngtZC1mbGV4IHZ4LWZsZXgtd3JhcFwiXHJcbiAgICAgICpuZ0lmPVwiKHdpZGdldHNMaXN0W21vZHVsZV0gfCBzZWFyY2ggOiBzZWFyY2gpLmxlbmd0aCAhPT0gMFwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgd2lkZ2V0IG9mIHdpZGdldHNMaXN0W21vZHVsZV0gfCBzZWFyY2ggOiBzZWFyY2hcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWl0ZW1cIiAqbmdJZj1cIndpZGdldD8udmlzaWJpbGl0eVwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYmxvY2tcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ3aWRnZXQudmFsdWVcIlxyXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0V2lkZ2V0KCRldmVudC50YXJnZXQuY2hlY2tlZCwgbW9kdWxlLCB3aWRnZXQuaWQpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrLWljb25cIj5cclxuICAgICAgICAgICAgICA8c3ZnXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrXCJcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrLWNpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGN4PVwiMjZcIlxyXG4gICAgICAgICAgICAgICAgICBjeT1cIjI2XCJcclxuICAgICAgICAgICAgICAgICAgcj1cIjI1XCJcclxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2stY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWl0ZW0taGVhZFwiPlxyXG4gICAgICAgICAgICAgIDxoNFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1pdGVtLXRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwid2lkZ2V0Py50aXRsZVwiXHJcbiAgICAgICAgICAgICAgPjwvaDQ+XHJcbiAgICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaXRlbS1kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIndpZGdldD8uZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgID48L3A+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhd2lkZ2V0LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaXRlbS1idXR0b24gYWRkXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RXaWRnZXQodHJ1ZSwgbW9kdWxlLCB3aWRnZXQuaWQpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICArIEFERFxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwid2lkZ2V0LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaXRlbS1idXR0b24gcmVtb3ZlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RXaWRnZXQoZmFsc2UsIG1vZHVsZSwgd2lkZ2V0LmlkKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgLSBSZW1vdmVcclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1pdGVtLWJvZHlcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2Utd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICBbbmdTcmNdPVwid2lkZ2V0Py53aWRnZXRJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgIHdpZHRoPVwiNzkwXCJcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiNjEzXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbG9hdGluZy1vcHRpb24gdngtZC1mbGV4XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwid2lkZ2V0Py5zdWJXaWRnZXRzPy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWJXaWRnZXQgb2Ygd2lkZ2V0LnN1YldpZGdldHNcIj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3ViV2lkZ2V0LnZpc2liaWxpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0V2lkZ2V0KCRldmVudCwgbW9kdWxlLCB3aWRnZXQuaWQsIHN1YldpZGdldC5pZClcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cInN1YldpZGdldC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPnt7IHN1YldpZGdldC50aXRsZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2FwcC1jcy1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBObyBEYXRhIEltYWdlIC0tPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXBwLW5vLWRhdGFcclxuICAgICAgKm5nSWY9XCIod2lkZ2V0c0xpc3RbbW9kdWxlXSB8IHNlYXJjaCA6IHNlYXJjaCkubGVuZ3RoID09PSAwXCJcclxuICAgICAgW25vRGF0YUltYWdlXT1cIkFTU0VUUy5jb25maWd1cmVfd2lkZ2V0XCJcclxuICAgICAgW25vRGF0YVRleHRdPVwiJ05vIGRhdGEgdG8gZGlzcGxheSdcIlxyXG4gICAgPlxyXG4gICAgPC9hcHAtbm8tZGF0YT5cclxuXHJcbiAgICA8ZmxvYXRpbmctYmFyXHJcbiAgICAgIChzdWJtaXRFdmVudCk9XCJvbk5leHRDbGljaygpXCJcclxuICAgICAgKGNhbmNlbEV2ZW50KT1cImNsb3NlQ29uZmlndXJlRGFzaGJvYXJkKClcIlxyXG4gICAgICBbc2VsZWN0ZWREYXRhXT1cInNlbGVjdGVkV2lkZ2V0c1wiXHJcbiAgICAgIChkZWxldGVFdmVudCk9XCJyZW1vdmVXaWRnZXQoJGV2ZW50KVwiXHJcbiAgICA+PC9mbG9hdGluZy1iYXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLXdpZGdldHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NyZWF0ZS1kYXNoYm9hcmQvc3JjL2xpYi9jcmVhdGUtZGFzaGJvYXJkLWNvbnRhaW5lci9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy9jb25maWd1cmUtd2lkZ2V0cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFPekQsTUFBTSxPQUFPLHlCQUF5QjtJQXlCMUI7SUFDRDtJQUNDO0lBMUJBLG1CQUFtQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVELHFCQUFxQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3hFLGNBQWMsQ0FBTztJQUNyQixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLFlBQVksR0FBNkMsRUFBRSxDQUFDO0lBQzVELGVBQWUsR0FBMkIsRUFBRSxDQUFDO0lBQzdDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDaEIsTUFBTSxHQUEwQixZQUFZLENBQUM7SUFDcEMsbUJBQW1CLEdBQVEsRUFBRSxDQUFDO0lBQzlCLGdCQUFnQixHQUFRLEVBQUUsQ0FBQztJQUMzQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLGNBQWMsR0FBRyxLQUFL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VSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFO29CQUN6QyxVQUFVLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsZ0RBQWdEO1FBQ2hELDRCQUE0QjtRQUM1QixxQ0FBcUM7UUFDckMsb0RBQW9EO1FBQ3BELHVDQUF1QztRQUN2QyxVQUFVO1FBQ1YsTUFBTTtRQUNOLE1BQU07SUFDUixDQUFDO3dHQWpYVSx5QkFBeUI7NEZBQXpCLHlCQUF5QiwrVkNyQnRDLGlwS0E2SUE7OzRGRHhIYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCO29LQUt2QixtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQU9FLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ3VyZVdpZGdldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uZmlndXJlLXdpZGdldHMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IHdpZGdldERhdGFNb2RlbCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvd2lkZ2V0LWRhdGEtbW9kZWwnO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuLi8uLi8uLi91aS1raXQvZGlhbG9nL2RpYWxvZy1yZWYnO1xyXG5pbXBvcnQgeyB3aWRnZXRDb25maWcgfSBmcm9tICcuL3dpZGdldC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91aS1raXQvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb25maWd1cmUtd2lkZ2V0cycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmZpZ3VyZS13aWRnZXRzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maWd1cmUtd2lkZ2V0cy5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlndXJlV2lkZ2V0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAT3V0cHV0KCkgd2lkZ2V0c0RhdGFNb2RpZmllZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlQ29uZmlndXJlV2lkZ2V0czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY2hlY2tib3hTdGF0dXMhOiBhbnk7XHJcbiAgc2VhcmNoOiBzdHJpbmcgPSAnJztcclxuICBjaGVja2VkQXJyYXk6IEFycmF5PHsgaW5kZXg6IG51bWJlcjsgc3RhdHVzOiBudW1iZXIgfT4gPSBbXTtcclxuICBzZWxlY3RlZFdpZGdldHM6IEFycmF5PHdpZGdldERhdGFNb2RlbD4gPSBbXTtcclxuICBBU1NFVFMgPSBBU1NFVFM7XHJcbiAgbW9kdWxlOiAnQ09NUExJQU5DRScgfCAnUklTSycgPSAnQ09NUExJQU5DRSc7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRXaWRnZXRzRGF0YTogYW55ID0gW107XHJcbiAgQElucHV0KCkgZGlzcGxheWVkV2lkZ2V0czogYW55ID0gW107XHJcbiAgQElucHV0KCkgc2hvd1Jpc2sgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaG93Q29tcGxpYW5jZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1vZGUgPSAnQ1JFQVRFJztcclxuICBub0RhdGFUZXh0ID1cclxuICAgICdZb3UgaGF2ZSBub3QgY29uZmlndXJlZCBhbnkgd2lkZ2V0cy4gQ2xpY2sgb24gdGhlIDxzdHJvbmc+Q29uZmlndXJlIFdpZGdldHM8L3N0cm9uZz4gYnV0dG9uIHRvIGJlZ2luLic7XHJcblxyXG4gIHNlbGVjdGVkV2lkZ2V0SWRzOiBhbnkgPSBbXTtcclxuICBzdWJSZXNwb25zaWJpbGl0aWVzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdWJLZXlSZXNwb25zaWJpbGl0aWVzU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93V2lkZ2V0cyA9IHRydWU7XHJcbiAgY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQgPSA5O1xyXG4gIHJpc2tXaWRnZXRzRGlzcGxheUNvdW50ID0gOTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogRGlhbG9nUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ3VyZVdpZGdldHNTZXJ2aWNlOiBDb25maWd1cmVXaWRnZXRzU2VydmljZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdpZGdldHMgPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5hcHBseUVkaXRNb2RlV2lkZ2V0Q2F0YWxvZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hcHBseUNyZWF0ZU1vZGVXaWRnZXRWaXNpYmlsaXR5KCk7XHJcbiAgICAgIHRoaXMuYXBwbHlTYXZlZFdpZGdldFNlbGVjdGlvbih0aGlzLnNlbGVjdGVkV2lkZ2V0c0RhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubW9kdWxlID0gdGhpcy5zaG93Q29tcGxpYW5jZSA/ICdDT01QTElBTkNFJyA6ICdSSVNLJztcclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRXaWRnZXRzKCk7XHJcbiAgfVxyXG5cclxuICAvKiogRURJVDogc2hvdyBmdWxsIHdpZGdldCBjYXRhbG9nOyBjaGVjayBpdGVtcyBwcmVzZW50IGluIGdldFdpZGdldHMgd2lkZ2V0QXJyLiAqL1xyXG4gIHByaXZhdGUgYXBwbHlFZGl0TW9kZVdpZGdldENhdGFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgZWxlLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgIGVsZS52aXNpYmlsaXR5ID0gdHJ1ZTtcclxuICAgICAgKGVsZS5zdWJXaWRnZXRzID8/IFtdKS5mb3JFYWNoKChzdWI6IGFueSkgPT4ge1xyXG4gICAgICAgIHN1Yi52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgIHN1Yi52aXNpYmlsaXR5ID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuY29tcGxpYW5jZVdpZGdldHNEaXNwbGF5Q291bnQgPSB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZmlsdGVyKFxyXG4gICAgICAodykgPT4gdy52aXNpYmlsaXR5LFxyXG4gICAgKS5sZW5ndGg7XHJcbiAgICB0aGlzLnJpc2tXaWRnZXRzRGlzcGxheUNvdW50ID0gMDtcclxuICAgIHRoaXMuYXBwbHlTYXZlZFdpZGdldFNlbGVjdGlvbih0aGlzLnNlbGVjdGVkV2lkZ2V0c0RhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqIENSRUFURTogbGltaXQgdmlzaWJsZSB0aWxlcyB0byBkaXNwbGF5ZWRXaWRnZXRzIHdoZW4gcHJvdmlkZWQuICovXHJcbiAgcHJpdmF0ZSBhcHBseUNyZWF0ZU1vZGVXaWRnZXRWaXNpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc3BsYXllZFdpZGdldHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFdpZGdldHNWaXNpYmlsaXR5VG9GYWxzZSgpO1xyXG4gICAgdGhpcy5yaXNrV2lkZ2V0c0Rpc3BsYXlDb3VudCA9IDA7XHJcbiAgICB0aGlzLmNvbXBsaWFuY2VXaWRnZXRzRGlzcGxheUNvdW50ID0gMDtcclxuICAgIGNvbnN0IGZpbmFsRGF0YSA9IFsuLi5uZXcgU2V0KHRoaXMuZGlzcGxheWVkV2lkZ2V0cyldO1xyXG4gICAgZmluYWxEYXRhLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlkICE9PSBlbGVtZW50LndpZGdldF9jb2RlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsZS52aXNpYmlsaXR5ID0gdHJ1ZTtcclxuICAgICAgICBpZiAoZWxlLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgY29uc3QgdmlzaWJsZVN1YkNvZGVzID0gKGVsZW1lbnQuc3ViX3dpZGdldHMgPz8gW10pLm1hcChcclxuICAgICAgICAgICAgKHN1YndpZGdldDogYW55KSA9PiBzdWJ3aWRnZXQud2lkZ2V0X2NvZGUsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55LCBzdWJJbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIGVsZS5zdWJXaWRnZXRzW3N1YkluZGV4XS52aXNpYmlsaXR5ID0gdmlzaWJsZVN1YkNvZGVzLmluY2x1ZGVzKFxyXG4gICAgICAgICAgICAgIHN1YkVsZW1lbnQuaWQsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jb21wbGlhbmNlV2lkZ2V0c0Rpc3BsYXlDb3VudCsrO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseVNhdmVkV2lkZ2V0U2VsZWN0aW9uKHNhdmVkV2lkZ2V0czogYW55W10pOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGEgPSBbLi4ubmV3IFNldChzYXZlZFdpZGdldHMgPz8gW10pXTtcclxuICAgIGRhdGEuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChlbGVtZW50Py5zdGF0ZSAmJiBlbGVtZW50LnN0YXRlICE9PSAnQUNUSVZFJykge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZWxlLmlkICE9PSBlbGVtZW50LndpZGdldF9jb2RlKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsZS52YWx1ZSA9IHRydWU7XHJcbiAgICAgICAgaWYgKGVsZS5zdWJXaWRnZXRzLmxlbmd0aCA+IDAgJiYgZWxlbWVudC5zdWJfd2lkZ2V0cz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCBhY3RpdmVTdWJDb2RlcyA9IChlbGVtZW50LnN1Yl93aWRnZXRzID8/IFtdKVxyXG4gICAgICAgICAgICAuZmlsdGVyKChzdWJ3aWRnZXQ6IGFueSkgPT4gc3Vid2lkZ2V0LnN0YXRlID09PSAnQUNUSVZFJylcclxuICAgICAgICAgICAgLm1hcCgoc3Vid2lkZ2V0OiBhbnkpID0+IHN1YndpZGdldC53aWRnZXRfY29kZSk7XHJcbiAgICAgICAgICBlbGUuc3ViV2lkZ2V0cy5mb3JFYWNoKChzdWJFbGVtZW50OiBhbnksIHN1YkluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgZWxlLnN1YldpZGdldHNbc3ViSW5kZXhdLnZhbHVlID0gYWN0aXZlU3ViQ29kZXMuaW5jbHVkZXMoXHJcbiAgICAgICAgICAgICAgc3ViRWxlbWVudC5pZCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgd2lkZ2V0c0xpc3QgPSB7XHJcbiAgICBDT01QTElBTkNFOiBbXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ092ZXJ2aWV3JyxcclxuICAgICAgICBpZDogJ292ZXJ2aWV3JyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdPdmVydmlldyBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBhbmQgUHJvZ3JhbXMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLm92ZXJ2aWV3V2lkZ2V0LFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDYWxlbmRhcicsXHJcbiAgICAgICAgaWQ6ICdjb21wbGlhbmNlX2NhbGVuZGFyX2ZsYWcnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgJ1RoZSBSZXNwb25zaWJpbGl0eSBDYWxlbmRhciBzaG93cyB0aGUgZHVlIGRhdGVzIG9mIHJlc3BvbnNpYmlsaXRpZXMgaW4gYSBjYWxlbmRhciBmb3JtYXQuIFRoZSByZXNwb25zaWJpbGl0aWVzIGFyZSBjb2xvciBjb2RlZCB0byByZWZsZWN0IHRoZSBzdGF0dXMgb2YgdGhlIHJlc3BvbnNpYmlsaXRpZXMuJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLnJlc3BvbnNpYmlsaXR5Q2FsZW5kZXJXaWRnZXQsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW10sXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdSZXNwb25zaWJpbGl0aWVzIGJ5IEFzc2lnbmVlJyxcclxuICAgICAgICBpZDogJ3Jlc3BvbnNpYmlsaXRpZXNfYnlfYXNzaWduZWUnLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOlxyXG4gICAgICAgICAgJ1RoZSBSZXNwb25zaWJpbGl0aWVzIGJ5IEFzc2lnbmVlIHdpZGdldCBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBieSB1c2Vycy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMucmVzcG9uc2liaWxpdGllc0J5QXNzaWduZWUsXHJcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgIHZpc2liaWxpdHk6IHRydWUsXHJcbiAgICAgICAgbW9kdWxlOiAnQ09NUExJQU5DRScsXHJcbiAgICAgICAgc3ViV2lkZ2V0czogW10sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlciBPdmVydmlldycsXHJcbiAgICAgICAgaWQ6ICdyZXNwb25zaWJpbGl0eV9jZW50ZXJfb3ZlcnZpZXdfZmxhZycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAnVGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBPdmVydmlldyBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgcmVzcG9uc2liaWxpdGllcyBhbmQgUmVzcG9uc2liaWxpdHkgQ2VudGVycy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMucmVzcG9uc2liaWxpdHlDZW50ZXJPdmVydmlld1dpZGdldCxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgaWQ6ICdteV9yZXNwb25zaWJpbGl0aWVzJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdUaGlzIHdpZGdldCBzaG93cyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCB5b3UgYXJlIHJlcXVpcmVkIHRvIGNvbXBsZXRlLCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IHlvdSBhcmUgcmV2aWV3aW5nIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IHlvdSBhcmUgb3ZlcnNlZWluZy4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMubXlSZXNwb25zaWJpbGl0aWVzV2lkZ2V0LFxyXG4gICAgICAgIHRhYk9wdGlvbjogdHJ1ZSxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnTXkgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgICAgIGlkOiAnbXlfcmVzcG9uc2liaWxpdHlfZmxhZycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnSeKAmW0gUmV2aWV3aW5nJyxcclxuICAgICAgICAgICAgaWQ6ICdyZXZpZXdlcl9yZXNwb25zaWJpbGl0eV9mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdGl0bGU6ICdJ4oCZbSBPdmVyc2VlaW5nJyxcclxuICAgICAgICAgICAgaWQ6ICdjY19yZXNwb25zaWJpbGl0eV9mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdLZXkgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgaWQ6ICdrZXlfcmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgZGVzY3JpcHRpb246XHJcbiAgICAgICAgICAnVGhpcyB3aWRnZXQgc2hvd3MgdGhlIHBlcmZvcm1hbmNlIG9mIGtleSByZXNwb25zaWJpbGl0aWVzIHRoYXQgeW91IGFyZSByZXF1aXJlZCB0byBjb21wbGV0ZSwgdGhhdCB5b3UgYXJlIHJldmlld2luZywgdGhhdCB5b3UgYXJlIG92ZXJzZWVpbmcgYW5kIHRoYXQgeW91IGhhdmUgYXNzaWduZWQgdG8gYW5vdGhlciBwZXJzb24uJyxcclxuICAgICAgICB3aWRnZXRJbWFnZTogQVNTRVRTLmtleVJlc3BvbnNpYmlsaXRpZXNXaWRnZXQsXHJcbiAgICAgICAgdGFiT3B0aW9uOiB0cnVlLFxyXG4gICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgICAgIHN1YldpZGdldHM6IFtcclxuICAgICAgICAgIC8vIHtcclxuICAgICAgICAgIC8vICAgdGl0bGU6ICdPdmVydmlldycsXHJcbiAgICAgICAgICAvLyAgIGlkOiAna2V5X3Jlc3BvbnNpYmlsaXRpZXNfb3ZlcnZpZXdfZmxhZycsXHJcbiAgICAgICAgICAvLyAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgIC8vICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnTXkgUmVzcG9uc2liaWxpdGllcycsXHJcbiAgICAgICAgICAgIGlkOiAna2V5X215X3Jlc3BvbnNpYmlsaXRpZXNfZmxhZycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnSeKAmW0gUmV2aWV3aW5nJyxcclxuICAgICAgICAgICAgaWQ6ICdrZXlfaV9hbV9yZXZpZXdpbmdfZmxhZycsXHJcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnSeKAmW0gT3ZlcnNlZWluZycsXHJcbiAgICAgICAgICAgIGlkOiAna2V5X2lfYW1fb3ZlcnNlZWluZ19mbGFnJyxcclxuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxyXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgdGl0bGU6ICdUcmVuZCBBbmFseXNpcycsXHJcbiAgICAgICAgaWQ6ICd0cmVuZF9hbmFseXNpc19mbGFnJyxcclxuICAgICAgICBkZXNjcmlwdGlvbjpcclxuICAgICAgICAgICdUaGUgVHJlbmQgQW5hbHlzaXMgaXMgYSBncmFwaGljYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBlcmZvcm1hbmNlIG9mIHJlc3BvbnNpYmlsaXRpZXMgb3ZlciBhIHBlcmlvZC4nLFxyXG4gICAgICAgIHdpZGdldEltYWdlOiBBU1NFVFMudHJlbmRBbmFseXNpc1dpZGdldCxcclxuICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcclxuICAgICAgICBtb2R1bGU6ICdDT01QTElBTkNFJyxcclxuICAgICAgICBzdWJXaWRnZXRzOiBbXSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgc2VsZWN0V2lkZ2V0KFxyXG4gICAgZXZlbnQ6IGFueSxcclxuICAgIG1vZHVsZTogJ0NPTVBMSUFOQ0UnLFxyXG4gICAgd2lkZ2V0SWQ6IHN0cmluZyxcclxuICAgIHN1YldpZGdldElkPzogc3RyaW5nLFxyXG4gICkge1xyXG4gICAgY29uc3Qgd2lkZ2V0SW5kZXggPSB0aGlzLndpZGdldHNMaXN0W21vZHVsZV0uZmluZEluZGV4KFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS5pZCA9PSB3aWRnZXRJZCxcclxuICAgICk7XHJcbiAgICBjb25zdCBpc1N1YldpZGdldEFkZGFibGUgPSB0aGlzLnNlbGVjdGVkV2lkZ2V0cy5maW5kSW5kZXgoXHJcbiAgICAgICh3aWRnZXQ6IGFueSkgPT4gd2lkZ2V0LmlkID09PSB3aWRnZXRJZCxcclxuICAgICk7XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLmxlbmd0aCA+PSAxMCAmJlxyXG4gICAgICAgICEoc3ViV2lkZ2V0SWQgJiYgaXNTdWJXaWRnZXRBZGRhYmxlID49IDApXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdygnWW91IGNhbm5vdCBhZGQgbW9yZSB0aGFuIDEwIHdpZGdldHMuJywgJ2FsZXJ0Jyk7XHJcbiAgICAgICAgdGhpcy5zaG93V2lkZ2V0cyA9IGZhbHNlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93V2lkZ2V0cyA9IHRydWU7XHJcbiAgICAgICAgfSwgMTApO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgaWYgKCFzdWJXaWRnZXRJZCkge1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmZvckVhY2goXHJcbiAgICAgICAgICAgIChlbGUpID0+IChlbGUudmFsdWUgPSB0cnVlKSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHN1YldpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW1xyXG4gICAgICAgICAgICB3aWRnZXRJbmRleFxyXG4gICAgICAgICAgXS5zdWJXaWRnZXRzLmZpbmRJbmRleCgoZWxlOiBhbnkpID0+IGVsZS5pZCA9PSBzdWJXaWRnZXRJZCk7XHJcbiAgICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHNbXHJcbiAgICAgICAgICAgIHN1YldpZGdldEluZGV4XHJcbiAgICAgICAgICBdLnZhbHVlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGlmICghc3ViV2lkZ2V0SWQpIHtcclxuICAgICAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0udmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVt3aWRnZXRJbmRleF0uc3ViV2lkZ2V0cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IChlbGUudmFsdWUgPSBmYWxzZSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJXaWRnZXRJbmRleCA9IHRoaXMud2lkZ2V0c0xpc3RbbW9kdWxlXVtcclxuICAgICAgICAgICAgd2lkZ2V0SW5kZXhcclxuICAgICAgICAgIF0uc3ViV2lkZ2V0cy5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuaWQgPT0gc3ViV2lkZ2V0SWQpO1xyXG4gICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzW1xyXG4gICAgICAgICAgICBzdWJXaWRnZXRJbmRleFxyXG4gICAgICAgICAgXS52YWx1ZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGlzQWxsV2lkZ2V0c1JlbW92ZWQgPSB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bXHJcbiAgICAgICAgICAgIHdpZGdldEluZGV4XHJcbiAgICAgICAgICBdLnN1YldpZGdldHMuZXZlcnkoKGVsZTogYW55KSA9PiBlbGUudmFsdWUgPT0gZmFsc2UpO1xyXG4gICAgICAgICAgaWYgKGlzQWxsV2lkZ2V0c1JlbW92ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy53aWRnZXRzTGlzdFttb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLndpZGdldHNMaXN0W21vZHVsZV1bd2lkZ2V0SW5kZXhdLnZhbHVlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRXaWRnZXRzKCk7XHJcbiAgfVxyXG4gIHNldFNlbGVjdGVkV2lkZ2V0cygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzID0gW107XHJcbiAgICB0aGlzLndpZGdldHNMaXN0LkNPTVBMSUFOQ0UuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGVsZS52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB0aGlzLndpZGdldHNMaXN0LlJJU0suZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgIC8vICAgaWYgKGVsZS52YWx1ZSkge1xyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXRzLnB1c2goZWxlKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVXaWRnZXQod2lkZ2V0OiB3aWRnZXRDb25maWcpIHtcclxuICAgIGNvbnN0IHdpZGdldEluZGV4ID0gdGhpcy53aWRnZXRzTGlzdFt3aWRnZXQubW9kdWxlXS5maW5kSW5kZXgoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLmlkID09IHdpZGdldC5pZCxcclxuICAgICk7XHJcbiAgICB0aGlzLndpZGdldHNMaXN0W3dpZGdldC5tb2R1bGVdW3dpZGdldEluZGV4XS52YWx1ZSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMud2lkZ2V0c0xpc3Rbd2lkZ2V0Lm1vZHVsZV1bd2lkZ2V0SW5kZXhdLnN1YldpZGdldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLndpZGdldHNMaXN0W3dpZGdldC5tb2R1bGVdW3dpZGdldEluZGV4XS5zdWJXaWRnZXRzLmZvckVhY2goXHJcbiAgICAgICAgKGVsZTogYW55KSA9PiAoZWxlLnZhbHVlID0gZmFsc2UpLFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTZWxlY3RlZFdpZGdldHMoKTtcclxuICB9XHJcblxyXG4gIG9uTmV4dENsaWNrKCkge1xyXG4gICAgdGhpcy53aWRnZXRzRGF0YU1vZGlmaWVkLmVtaXQodGhpcy5zZWxlY3RlZFdpZGdldHMpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VDb25maWd1cmVEYXNoYm9hcmQoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0cyA9IFtdO1xyXG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcclxuICAgIHRoaXMuY2xvc2VDb25maWd1cmVXaWRnZXRzLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc2V0V2lkZ2V0c1Zpc2liaWxpdHlUb0ZhbHNlKCkge1xyXG4gICAgdGhpcy53aWRnZXRzTGlzdC5DT01QTElBTkNFLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgIGVsZS52aXNpYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgIGlmIChlbGUuc3ViV2lkZ2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZWxlLnN1YldpZGdldHMuZm9yRWFjaCgoc3ViRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICBzdWJFbGVtZW50LnZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB0aGlzLndpZGdldHNMaXN0LlJJU0suZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgIC8vICAgZWxlLnZpc2liaWxpdHkgPSBmYWxzZTtcclxuICAgIC8vICAgaWYgKGVsZS5zdWJXaWRnZXRzLmxlbmd0aCA+IDApIHtcclxuICAgIC8vICAgICBlbGUuc3ViV2lkZ2V0cy5mb3JFYWNoKChzdWJFbGVtZW50OiBhbnkpID0+IHtcclxuICAgIC8vICAgICAgIHN1YkVsZW1lbnQudmlzaWJpbGl0eSA9IGZhbHNlO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzIHZ4LWQtYmxvY2tcIiAqbmdJZj1cInNob3dXaWRnZXRzXCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLXRpdGxlIHZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5cclxuICAgICAgQ29uZmlndXJlIFdpZGdldHNcclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWJhY2sgdngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1tLTAgdngtcC0wIHZ4LWQtaW5saW5lLWZsZXggdngtYWxpZ24tY2VudGVyXCJcclxuICAgICAgKGNsaWNrKT1cImNsb3NlQ29uZmlndXJlRGFzaGJvYXJkKClcIlxyXG4gICAgPlxyXG4gICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTE2XCI+JiN4ZTkxZDs8L2k+IEJhY2tcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1ib2R5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtdGFiXCI+XHJcbiAgICAgIDx1bD5cclxuICAgICAgICA8bGlcclxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwibW9kdWxlID09PSAnQ09NUExJQU5DRSdcIlxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93Q29tcGxpYW5jZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwibW9kdWxlID0gJ0NPTVBMSUFOQ0UnXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8IS0tIDxidXR0b24+XHJcbiAgICAgICAgICAgIENvbXBsaWFuY2U8c3Bhbj57eyBjb21wbGlhbmNlV2lkZ2V0c0Rpc3BsYXlDb3VudCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBbY2xhc3MuYWN0aXZlXT1cIm1vZHVsZSA9PT0gJ1JJU0snXCIgKm5nSWY9XCJzaG93Umlza1wiPlxyXG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibW9kdWxlID0gJ1JJU0snXCI+XHJcbiAgICAgICAgICAgIFJpc2tzPHNwYW4+e3sgcmlza1dpZGdldHNEaXNwbGF5Q291bnQgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtc2VhcmNoIHZ4LW1iLTJcIj5cclxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCB3aWRnZXRzXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtbGlzdCB2eC1kLWZsZXggdngtZmxleC13cmFwXCJcclxuICAgICAgKm5nSWY9XCIod2lkZ2V0c0xpc3RbbW9kdWxlXSB8IHNlYXJjaCA6IHNlYXJjaCkubGVuZ3RoICE9PSAwXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ0Zvcj1cImxldCB3aWRnZXQgb2Ygd2lkZ2V0c0xpc3RbbW9kdWxlXSB8IHNlYXJjaCA6IHNlYXJjaFwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaXRlbVwiICpuZ0lmPVwid2lkZ2V0Py52aXNpYmlsaXR5XCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJibG9ja1wiPlxyXG4gICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cIndpZGdldC52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RXaWRnZXQoJGV2ZW50LnRhcmdldC5jaGVja2VkLCBtb2R1bGUsIHdpZGdldC5pZClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2staWNvblwiPlxyXG4gICAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2stY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgY3g9XCIyNlwiXHJcbiAgICAgICAgICAgICAgICAgIGN5PVwiMjZcIlxyXG4gICAgICAgICAgICAgICAgICByPVwiMjVcIlxyXG4gICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVjay1jaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlndXJlLXdpZGdldHMtaXRlbS1oZWFkXCI+XHJcbiAgICAgICAgICAgICAgPGg0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWl0ZW0tdGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ3aWRnZXQ/LnRpdGxlXCJcclxuICAgICAgICAgICAgICA+PC9oND5cclxuICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1pdGVtLWRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwid2lkZ2V0Py5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgPjwvcD5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiF3aWRnZXQudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1pdGVtLWJ1dHRvbiBhZGRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFdpZGdldCh0cnVlLCBtb2R1bGUsIHdpZGdldC5pZClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICsgQUREXHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ3aWRnZXQudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb25maWd1cmUtd2lkZ2V0cy1pdGVtLWJ1dHRvbiByZW1vdmVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFdpZGdldChmYWxzZSwgbW9kdWxlLCB3aWRnZXQuaWQpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAtIFJlbW92ZVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpZ3VyZS13aWRnZXRzLWl0ZW0tYm9keVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgIFtuZ1NyY109XCJ3aWRnZXQ/LndpZGdldEltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCI3OTBcIlxyXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9XCI2MTNcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsb2F0aW5nLW9wdGlvbiB2eC1kLWZsZXhcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ3aWRnZXQ/LnN1YldpZGdldHM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN1YldpZGdldCBvZiB3aWRnZXQuc3ViV2lkZ2V0c1wiPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzdWJXaWRnZXQudmlzaWJpbGl0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RXaWRnZXQoJGV2ZW50LCBtb2R1bGUsIHdpZGdldC5pZCwgc3ViV2lkZ2V0LmlkKVxyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwic3ViV2lkZ2V0LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICA+e3sgc3ViV2lkZ2V0LnRpdGxlIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8IS0tIE5vIERhdGEgSW1hZ2UgLS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtbm8tZGF0YVxyXG4gICAgICAqbmdJZj1cIih3aWRnZXRzTGlzdFttb2R1bGVdIHwgc2VhcmNoIDogc2VhcmNoKS5sZW5ndGggPT09IDBcIlxyXG4gICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLmNvbmZpZ3VyZV93aWRnZXRcIlxyXG4gICAgICBbbm9EYXRhVGV4dF09XCInTm8gZGF0YSB0byBkaXNwbGF5J1wiXHJcbiAgICA+XHJcbiAgICA8L2FwcC1uby1kYXRhPlxyXG5cclxuICAgIDxmbG9hdGluZy1iYXJcclxuICAgICAgKHN1Ym1pdEV2ZW50KT1cIm9uTmV4dENsaWNrKClcIlxyXG4gICAgICAoY2FuY2VsRXZlbnQpPVwiY2xvc2VDb25maWd1cmVEYXNoYm9hcmQoKVwiXHJcbiAgICAgIFtzZWxlY3RlZERhdGFdPVwic2VsZWN0ZWRXaWRnZXRzXCJcclxuICAgICAgKGRlbGV0ZUV2ZW50KT1cInJlbW92ZVdpZGdldCgkZXZlbnQpXCJcclxuICAgID48L2Zsb2F0aW5nLWJhcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -117,37 +117,32 @@ export class CreateDashboardService {
|
|
|
117
117
|
}
|
|
118
118
|
normalizeWidgetDetailsResponse(res) {
|
|
119
119
|
const payload = res?.data ?? res;
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
activeWidgetArr: res.data,
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
const legacyWidgets = res?.widget_details ?? res?.widgets ?? [];
|
|
146
|
-
const legacyAll = res?.all_widgets ?? legacyWidgets;
|
|
120
|
+
const collect = (...candidates) => {
|
|
121
|
+
const collected = [];
|
|
122
|
+
const seen = new Set();
|
|
123
|
+
candidates.forEach((candidate) => {
|
|
124
|
+
if (!Array.isArray(candidate)) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
candidate.forEach((widget) => {
|
|
128
|
+
const code = widget?.widget_code ?? widget?.widgetCode;
|
|
129
|
+
const key = code != null ? String(code) : JSON.stringify(widget);
|
|
130
|
+
if (seen.has(key)) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
seen.add(key);
|
|
134
|
+
collected.push(widget);
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
return collected;
|
|
138
|
+
};
|
|
139
|
+
const widgetArr = collect(payload?.widgetArr, res?.widgetArr, payload?.widget_details, Array.isArray(payload) ? payload : null, Array.isArray(res?.data) ? res.data : null);
|
|
140
|
+
const allWidgetsArray = collect(payload?.allWidgetsArray, payload?.all_widgets, payload?.allWidgets, payload?.allWidgetArray, payload?.widgets, res?.allWidgetsArray, res?.all_widgets, res?.allWidgets, res?.widgets, widgetArr);
|
|
141
|
+
const activeWidgetArr = collect(payload?.activeWidgetArr, res?.activeWidgetArr, widgetArr);
|
|
147
142
|
return {
|
|
148
|
-
widgetArr
|
|
149
|
-
allWidgetsArray:
|
|
150
|
-
activeWidgetArr:
|
|
143
|
+
widgetArr,
|
|
144
|
+
allWidgetsArray: allWidgetsArray.length ? allWidgetsArray : widgetArr,
|
|
145
|
+
activeWidgetArr: activeWidgetArr.length ? activeWidgetArr : widgetArr,
|
|
151
146
|
};
|
|
152
147
|
}
|
|
153
148
|
getSailsProgramList() {
|
|
@@ -224,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
224
219
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Configurations, decorators: [{
|
|
225
220
|
type: Optional
|
|
226
221
|
}] }]; } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRhc2hib2FyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL3NlcnZpY2VzL2NyZWF0ZS1kYXNoYm9hcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU14RCxNQUFNLE9BQU8sc0JBQXNCO0lBS3ZCO0lBSkgsR0FBRyxDQUFPO0lBRWpCLFdBQVcsQ0FBTTtJQUNqQixZQUNVLElBQWdCLEVBQ1osTUFBdUI7UUFEM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUd4QixJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDakIsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUN2QixjQUFjLEVBQUUsa0JBQWtCO2FBQ25DLENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsR0FBUztRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUNGLElBQUksQ0FBQyxHQUFHLEVBQUUsZUFBZTtZQUN2Qiw0Q0FBNEM7WUFDNUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxD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Q0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0lBQ0MsWUFBWSxDQUFDLE9BQVk7UUFDdkIsT0FBTztZQUNMLFNBQVMsRUFBRTtnQkFDVCxJQUFJLEVBQUUsT0FBTyxDQUFDLGNBQWM7Z0JBQzVCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQzNDLE1BQU0sRUFBRTtvQkFDTixNQUFNLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtvQkFDaEMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxpQkFBaUI7aUJBQ3ZDO2dCQUNELHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxxQkFBcUI7Z0JBQ3JELFNBQVMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3pFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3hDLElBQUksRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVU7b0JBQ2xDLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVE7aUJBQy9CLENBQUMsQ0FBQyxDQUFDLElBQUk7YUFDVDtTQUNGLENBQUE7SUFDSCxDQUFDO3dHQW5SVSxzQkFBc0I7NEdBQXRCLHNCQUFzQixjQUZyQixNQUFNOzs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFPSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICdAYXV0aDAvYW5ndWxhci1qd3QnO1xyXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb25zJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVEYXNoYm9hcmRTZXJ2aWNlIHtcclxuICBwdWJsaWMgZW52ITogYW55O1xyXG5cclxuICBodHRwT3B0aW9uczogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcclxuICApIHtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBGZXRjaGVzIHRoZSBPcmdhbml6YXRpb24gVXNlcnMgTGlzdCBieSBtYWtpbmcgYW4gQVBJIGNhbGxcclxuICAgKi9cclxuICBnZXRPcmdhbml6YXRpb25Vc2Vycyh1cmw/OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChcclxuICAgICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uR2V0ICtcclxuICAgICAgICAgICdvcmdhbmlzYXRpb25Vc2Vyc0xpc3QmcGFnaW5hdGlvblR5cGU9c21hbGwnICtcclxuICAgICAgICAgICh1cmwucCA/ICcmcD0nICsgdXJsLnAgOiAnJykgK1xyXG4gICAgICAgICAgKHVybC50eXBlID8gJyZ0eXBlPScgKyB1cmwudHlwZSA6ICcnKSArXHJcbiAgICAgICAgICAodXJsLnEgPyAnJnE9JyArIHVybC5xIDogJycpLFxyXG4gICAgICAgIHRoaXMuaHR0cE9wdGlvbnNcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHJldHJ5KDIpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4gb2YoZXJyKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIE9yZ2FuaXphdGlvblVzZXJzIGRldGFpbHMgb2YgdXNlcnMgTGlzdCB0byBzZXQgcGFnaW5hdGlvbiBkZXRhaWxzIGluY2x1ZGluZyBudW1iZXIgb2ZcclxuICAgKiBwYWdlcyBhbmQgcmVjb3JkcyBsaW1pdCBwZXIgcGFnZSxcclxuICAgKiBAcGFyYW0gdXJsICBjb250YWlucyBpbmZvIGFib3V0IHR5cGUgJiBzZWFyY2ggcXVlcnlcclxuICAgKi9cclxuICBnZXRPcmdhbml6YXRpb25Vc2Vyc0NvdW50KHVybD86IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KFxyXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgK1xyXG4gICAgICAgICAgJ29yZ2FuaXNhdGlvblVzZXJzQ291bnQmcGFnaW5hdGlvblR5cGU9c21hbGwnICtcclxuICAgICAgICAgICh1cmwudHlwZSA/ICcmdHlwZT0nICsgdXJsLnR5cGUgOiAnJykgK1xyXG4gICAgICAgICAgKHVybC5xID8gJyZxPScgKyB1cmwucSA6ICcnKSxcclxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXMpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiBvZihlcnIpKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0ZWdvcnlMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPih0aGlzLmVudj8ucmlza0dldCArICdjYXRlZ29yeS9saXN0JylcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhbGwgdXNlcnMgYnkgbWFraW5nIGFuIEFQSSBjYWxsXHJcbiAgICovXHJcbiAgZ2V0QWxsVXNlcnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoXHJcbiAgICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArICdzZWxlY3RBbGxVc2VycyZ0eXBlPWFsbCcsXHJcbiAgICAgICAgdGhpcy5odHRwT3B0aW9uc1xyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICBGZXRjaGVzIGFsbCBncm91cHMgYnkgbWFraW5nIGFuIEFQSSBjYWxsXHJcbiAgICogKi9cclxuICBnZXRBbGxHcm91cHMocGFyYW1zPzogSHR0cFBhcmFtcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KFxyXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgK1xyXG4gICAgICAgICAgJ2dyb3Vwc0xpc3QmcGVybVR5cGU9ZGFzaGJvYXJkJm1lbWJlckV4aXN0cz0xJyxcclxuICAgICAgICB7IHBhcmFtcyB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyByZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0IGJ5IG1ha2luZyBhbiBBUEkgY2FsbFxyXG4gICAqL1xyXG4gIGdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArICdyZXNwb25zaWJpbGl0eUNlbnRlclRyZWUnKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21wbGlhbmNlQ2F0ZWdvcmllc0xpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KFxyXG4gICAgICAgIHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZUNhdGVnb3J5L0NhdGVnb3J5TGlzdFRyZWUnXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcGxpYW5jZUNhdGVnb3JpZXNMaXN0RnJvbUdsb2JhbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4oXHJcbiAgICAgICAgdGhpcy5lbnY/LmNvbXBsaWFuY2VHZXQgK1xyXG4gICAgICAgICAgJ2NvbXBsaWFuY2VDYXRlZ29yeS9DYXRlZ29yeUxpc3RUcmVlJnByb2dyYW09MSZpc0Rhc2hib2FyZD10cnVlJ1xyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdERhc2hib2FyZChwYXlsb2FkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodGhpcy5lbnYuZGFzaGJvYXJkICsgJ0NyZWF0ZURhc2hib2FyZCcsIHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIERhc2hib2FyZCBkZXRhaWxzIGZvciBkYXRhIHBvcHVsYXRpb24gdG8gRWRpdCB0aGUgZGFzaGJvYXJkXHJcbiAgICogQHBhcmFtIGlkXHJcbiAgICovXHJcbiAgLyoqIEBkZXByZWNhdGVkIExlZ2FjeSBHbG9iYWwtRGFzaGJvYXJkIGVkaXQgZmV0Y2g7IGN1c3RvbSBkYXNoYm9hcmRzIHVzZSBmZXRjaEN1c3RvbURhc2hib2FyZEJ5SWQgKyBnZXRXaWRnZXRzLiAqL1xyXG4gIGZldGNoRGFzaGJvYXJkKGlkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh0aGlzLmVudi5kYXNoYm9hcmQgKyBpZCArICc/bW9kZT1lZGl0JywgdGhpcy5odHRwT3B0aW9ucylcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRWRpdCBtb2RlIG9ubHkg4oCUIEdFVCBHbG9iYWwtRGFzaGJvYXJkL2dldFdpZGdldHM/ZGFzaGJvYXJkSWQ9e2NkaWR9XHJcbiAgICogQHBhcmFtIGNkaWQgQ3VzdG9tIGRhc2hib2FyZCBpZCAoZS5nLiA0MzhGOEtTSzIyKSwgbm90IG51bWVyaWMgcmVjb3JkIGlkXHJcbiAgICovXHJcbiAgZmV0Y2hDdXN0b21EYXNoYm9hcmRXaWRnZXREZXRhaWxzKGNkaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KFxyXG4gICAgICAgIGAke3RoaXMuZW52LmRhc2hib2FyZH1nZXRXaWRnZXRzP2Rhc2hib2FyZElkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGNkaWQpfWAsXHJcbiAgICAgICAgdGhpcy5odHRwT3B0aW9uc1xyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHRoaXMubm9ybWFsaXplV2lkZ2V0RGV0YWlsc1Jlc3BvbnNlKHJlcykpLFxyXG4gICAgICAgIHJldHJ5KDIpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBub3JtYWxpemVXaWRnZXREZXRhaWxzUmVzcG9uc2UocmVzOiBhbnkpOiB7XHJcbiAgICB3aWRnZXRBcnI6IGFueVtdO1xyXG4gICAgYWxsV2lkZ2V0c0FycmF5OiBhbnlbXTtcclxuICAgIGFjdGl2ZVdpZGdldEFycjogYW55W107XHJcbiAgfSB7XHJcbiAgICBjb25zdCBwYXlsb2FkID0gcmVzPy5kYXRhID8/IHJlcztcclxuICAgIGNvbnN0IHdpZGdldEFyciA9IHBheWxvYWQ/LndpZGdldEFyciA/PyByZXM/LndpZGdldEFycjtcclxuICAgIGNvbnN0IGFsbFdpZGdldHNBcnJheSA9XHJcbiAgICAgIHBheWxvYWQ/LmFsbFdpZGdldHNBcnJheSA/PyByZXM/LmFsbFdpZGdldHNBcnJheSA/PyB3aWRnZXRBcnI7XHJcbiAgICBpZiAod2lkZ2V0QXJyIHx8IGFsbFdpZGdldHNBcnJheSkge1xyXG4gICAgICBjb25zdCBub3JtYWxpemVkV2lkZ2V0QXJyID0gQXJyYXkuaXNBcnJheSh3aWRnZXRBcnIpID8gd2lkZ2V0QXJyIDogW107XHJcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRBbGwgPSBBcnJheS5pc0FycmF5KGFsbFdpZGdldHNBcnJheSlcclxuICAgICAgICA/IGFsbFdpZGdldHNBcnJheVxyXG4gICAgICAgIDogbm9ybWFsaXplZFdpZGdldEFycjtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB3aWRnZXRBcnI6IG5vcm1hbGl6ZWRXaWRnZXRBcnIsXHJcbiAgICAgICAgYWxsV2lkZ2V0c0FycmF5OiBub3JtYWxpemVkQWxsLFxyXG4gICAgICAgIGFjdGl2ZVdpZGdldEFycjpcclxuICAgICAgICAgIHBheWxvYWQ/LmFjdGl2ZVdpZGdldEFyciA/P1xyXG4gICAgICAgICAgcmVzPy5hY3RpdmVXaWRnZXRBcnIgPz9cclxuICAgICAgICAgIG5vcm1hbGl6ZWRXaWRnZXRBcnIsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXMpKSB7XHJcbiAgICAgIHJldHVybiB7IHdpZGdldEFycjogcmVzLCBhbGxXaWRnZXRzQXJyYXk6IHJlcywgYWN0aXZlV2lkZ2V0QXJyOiByZXMgfTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHJlcz8uZGF0YSkpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB3aWRnZXRBcnI6IHJlcy5kYXRhLFxyXG4gICAgICAgIGFsbFdpZGdldHNBcnJheTogcmVzLmRhdGEsXHJcbiAgICAgICAgYWN0aXZlV2lkZ2V0QXJyOiByZXMuZGF0YSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IGxlZ2FjeVdpZGdldHMgPSByZXM/LndpZGdldF9kZXRhaWxzID8/IHJlcz8ud2lkZ2V0cyA/PyBbXTtcclxuICAgIGNvbnN0IGxlZ2FjeUFsbCA9IHJlcz8uYWxsX3dpZGdldHMgPz8gbGVnYWN5V2lkZ2V0cztcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHdpZGdldEFycjogbGVnYWN5V2lkZ2V0cyxcclxuICAgICAgYWxsV2lkZ2V0c0FycmF5OiBsZWdhY3lBbGwsXHJcbiAgICAgIGFjdGl2ZVdpZGdldEFycjogcmVzPy5hY3RpdmVXaWRnZXRBcnIgPz8gbGVnYWN5V2lkZ2V0cyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRTYWlsc1Byb2dyYW1MaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnc2FpbHNQcm9ncmFtTGlzdCcsIHRoaXMuaHR0cE9wdGlvbnMpXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldFByb2dyYW1DYXRlZ29yaWVzKHByb2dyYW1JZDogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoXHJcbiAgICAgICAgYCR7dGhpcy5lbnYuY29tcGxpYW5jZUdldH1zYWlsc1Byb2dyYW1DYXRlZ29yaWVzJmlkPSR7cHJvZ3JhbUlkfWAsXHJcbiAgICAgICAgdGhpcy5odHRwT3B0aW9uc1xyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIC8qKiBGdWxsIGN1c3RvbSBkYXNoYm9hcmQgcGF5bG9hZCAoaW5jbHVkZXMgcmVzcG9uc2liaWxpdHlDZW50ZXJJZCwgcHJvZ3JhbUlkLCBldGMuKS4gKi9cclxuICBmZXRjaEN1c3RvbURhc2hib2FyZEJ5SWQoaWQ6IHN0cmluZyB8IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KGAke3RoaXMuZW52LmRhc2hib2FyZH1jdXN0b21EYXNoYm9hcmQvJHtpZH1gLCB0aGlzLmh0dHBPcHRpb25zKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGdldFVzZXJJbmZvcm1hdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChcclxuICAgICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uR2V0ICsgJ3VzZXJzJmlkPScgKyB0aGlzPy5fSUQoKSxcclxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBfSUQoKSB7XHJcbiAgICBjb25zdCBoZWxwZXIgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gICAgY29uc3QgbXlSYXdUb2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdjdXJyZW50VXNlcicpIHx8ICd7fSc7XHJcbiAgICBjb25zdCBpc0V4cGlyZWQgPSBoZWxwZXI/LmlzVG9rZW5FeHBpcmVkKG15UmF3VG9rZW4pO1xyXG4gICAgaWYgKGlzRXhwaXJlZCA9PT0gZmFsc2UpIHtcclxuICAgICAgY29uc3QgdG9rZW5JbmZvID0gaGVscGVyPy5kZWNvZGVUb2tlbihteVJhd1Rva2VuKTtcclxuICAgICAgcmV0dXJuIHRva2VuSW5mby5faWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBjaGVja0R1cGxpY2F0ZURhc2hib2FyZE5hbWUocGF5bG9hZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KFxyXG4gICAgICAgIHRoaXMuZW52LmRhc2hib2FyZCArICdEdXBsaWNhdGVEYXNoYm9hcmQnLFxyXG4gICAgICAgIHBheWxvYWQsXHJcbiAgICAgICAgdGhpcy5odHRwT3B0aW9uc1xyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbmNyZWF0ZURhc2hib2FyZChwYXlsb2FkOiBhbnkpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuZGFzaGJvYXJkICsgJ2N1c3RvbURhc2hib2FyZCcsIHBheWxvYWQsIHRoaXMuaHR0cE9wdGlvbnMpXHJcbn1cclxuXHJcbnVwZGF0ZURhc2hib2FyZChwYXlsb2FkOiBhbnksIGlkOiBhbnkpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLnB1dCh0aGlzLmVudi5kYXNoYm9hcmQgKyAnY3VzdG9tRGFzaGJvYXJkLycgKyBpZCwgcGF5bG9hZCwgdGhpcy5odHRwT3B0aW9ucylcclxufVxyXG5cclxuc2F2ZVdpZGdldERldGFpbHMocGF5bG9hZDogYW55KSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZW52LmRhc2hib2FyZCArICdjcmVhdGVXaWRnZXRzL2NyZWF0b3InLCBwYXlsb2FkLCB0aGlzLmh0dHBPcHRpb25zKVxyXG59XHJcbiAgYnVpbGRQYXlsb2FkKHBheWxvYWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGFzaGJvYXJkOiB7XHJcbiAgICAgICAgbmFtZTogcGF5bG9hZC5kYXNoYm9hcmRfbmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbjogcGF5bG9hZC5kZXNjcmlwdGlvblswXS5jb250ZW50LFxyXG4gICAgICAgIHZpZXdlcjoge1xyXG4gICAgICAgICAgdXNlcklkOiBwYXlsb2FkLnZpc2libGVfdG9fdXNlcnMsXHJcbiAgICAgICAgICB1c2VyR3JvdXBJZDogcGF5bG9hZC52aXNpYmxlX3RvX2dyb3VwcyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVySWQ6IHBheWxvYWQucmVzcG9uc2liaWxpdHlfY2VudGVyLFxyXG4gICAgICAgIHByb2dyYW1JZDogcGF5bG9hZC5wcm9ncmFtLmFsbF9wcm9ncmFtcy5tYXAoKHByb2dyYW06IGFueSkgPT4gcHJvZ3JhbS5pZCksXHJcbiAgICAgICAgdGltZWZyYW1lOiBwYXlsb2FkLnRpbWVmcmFtZS5zdGFydF9kYXRlID8ge1xyXG4gICAgICAgICAgZnJvbTogcGF5bG9hZC50aW1lZnJhbWUuc3RhcnRfZGF0ZSxcclxuICAgICAgICAgIHRvOiBwYXlsb2FkLnRpbWVmcmFtZS5lbmRfZGF0ZSxcclxuICAgICAgICB9IDogbnVsbFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRhc2hib2FyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JlYXRlLWRhc2hib2FyZC9zcmMvbGliL2NyZWF0ZS1kYXNoYm9hcmQtY29udGFpbmVyL3NlcnZpY2VzL2NyZWF0ZS1kYXNoYm9hcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsV0FBVyxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU14RCxNQUFNLE9BQU8sc0JBQXNCO0lBS3ZCO0lBSkgsR0FBRyxDQUFPO0lBRWpCLFdBQVcsQ0FBTTtJQUNqQixZQUNVLElBQWdCLEVBQ1osTUFBdUI7UUFEM0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUd4QixJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDakIsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFDO2dCQUN2QixjQUFjLEVBQUUsa0JBQWtCO2FBQ25DLENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CLENBQUMsR0FBUztRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUNGLElBQUksQ0FBQyxHQUFHLEVBQUUsZUFBZTtZQUN2Qiw0Q0FBNEM7WUFDNUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxD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TyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO29CQUN4QyxJQUFJLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxVQUFVO29CQUNsQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRO2lCQUMvQixDQUFDLENBQUMsQ0FBQyxJQUFJO2FBQ1Q7U0FDRixDQUFBO0lBQ0gsQ0FBQzt3R0FuU1Usc0JBQXNCOzRHQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBKd3RIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnQGF1dGgwL2FuZ3VsYXItand0JztcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlRGFzaGJvYXJkU2VydmljZSB7XHJcbiAgcHVibGljIGVudiE6IGFueTtcclxuXHJcbiAgaHR0cE9wdGlvbnM6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXHJcbiAgKSB7XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmh0dHBPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgIH0pLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogRmV0Y2hlcyB0aGUgT3JnYW5pemF0aW9uIFVzZXJzIExpc3QgYnkgbWFraW5nIGFuIEFQSSBjYWxsXHJcbiAgICovXHJcbiAgZ2V0T3JnYW5pemF0aW9uVXNlcnModXJsPzogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoXHJcbiAgICAgICAgdGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArXHJcbiAgICAgICAgICAnb3JnYW5pc2F0aW9uVXNlcnNMaXN0JnBhZ2luYXRpb25UeXBlPXNtYWxsJyArXHJcbiAgICAgICAgICAodXJsLnAgPyAnJnA9JyArIHVybC5wIDogJycpICtcclxuICAgICAgICAgICh1cmwudHlwZSA/ICcmdHlwZT0nICsgdXJsLnR5cGUgOiAnJykgK1xyXG4gICAgICAgICAgKHVybC5xID8gJyZxPScgKyB1cmwucSA6ICcnKSxcclxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgICAgICB9KSxcclxuICAgICAgICByZXRyeSgyKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IG9mKGVycikpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBPcmdhbml6YXRpb25Vc2VycyBkZXRhaWxzIG9mIHVzZXJzIExpc3QgdG8gc2V0IHBhZ2luYXRpb24gZGV0YWlscyBpbmNsdWRpbmcgbnVtYmVyIG9mXHJcbiAgICogcGFnZXMgYW5kIHJlY29yZHMgbGltaXQgcGVyIHBhZ2UsXHJcbiAgICogQHBhcmFtIHVybCAgY29udGFpbnMgaW5mbyBhYm91dCB0eXBlICYgc2VhcmNoIHF1ZXJ5XHJcbiAgICovXHJcbiAgZ2V0T3JnYW5pemF0aW9uVXNlcnNDb3VudCh1cmw/OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChcclxuICAgICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uR2V0ICtcclxuICAgICAgICAgICdvcmdhbmlzYXRpb25Vc2Vyc0NvdW50JnBhZ2luYXRpb25UeXBlPXNtYWxsJyArXHJcbiAgICAgICAgICAodXJsLnR5cGUgPyAnJnR5cGU9JyArIHVybC50eXBlIDogJycpICtcclxuICAgICAgICAgICh1cmwucSA/ICcmcT0nICsgdXJsLnEgOiAnJyksXHJcbiAgICAgICAgdGhpcy5odHRwT3B0aW9uc1xyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4gb2YoZXJyKSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGdldENhdGVnb3J5TGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnlbXT4odGhpcy5lbnY/LnJpc2tHZXQgKyAnY2F0ZWdvcnkvbGlzdCcpXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYWxsIHVzZXJzIGJ5IG1ha2luZyBhbiBBUEkgY2FsbFxyXG4gICAqL1xyXG4gIGdldEFsbFVzZXJzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KFxyXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgKyAnc2VsZWN0QWxsVXNlcnMmdHlwZT1hbGwnLFxyXG4gICAgICAgIHRoaXMuaHR0cE9wdGlvbnNcclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAgRmV0Y2hlcyBhbGwgZ3JvdXBzIGJ5IG1ha2luZyBhbiBBUEkgY2FsbFxyXG4gICAqICovXHJcbiAgZ2V0QWxsR3JvdXBzKHBhcmFtcz86IEh0dHBQYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChcclxuICAgICAgICB0aGlzLmVudj8ub3JnYW5pemF0aW9uR2V0ICtcclxuICAgICAgICAgICdncm91cHNMaXN0JnBlcm1UeXBlPWRhc2hib2FyZCZtZW1iZXJFeGlzdHM9MScsXHJcbiAgICAgICAgeyBwYXJhbXMgfVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgcmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCBieSBtYWtpbmcgYW4gQVBJIGNhbGxcclxuICAgKi9cclxuICBnZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgKyAncmVzcG9uc2liaWxpdHlDZW50ZXJUcmVlJylcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29tcGxpYW5jZUNhdGVnb3JpZXNMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueVtdPihcclxuICAgICAgICB0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VDYXRlZ29yeS9DYXRlZ29yeUxpc3RUcmVlJ1xyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldENvbXBsaWFuY2VDYXRlZ29yaWVzTGlzdEZyb21HbG9iYWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55W10+KFxyXG4gICAgICAgIHRoaXMuZW52Py5jb21wbGlhbmNlR2V0ICtcclxuICAgICAgICAgICdjb21wbGlhbmNlQ2F0ZWdvcnkvQ2F0ZWdvcnlMaXN0VHJlZSZwcm9ncmFtPTEmaXNEYXNoYm9hcmQ9dHJ1ZSdcclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXREYXNoYm9hcmQocGF5bG9hZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KHRoaXMuZW52LmRhc2hib2FyZCArICdDcmVhdGVEYXNoYm9hcmQnLCBwYXlsb2FkKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBEYXNoYm9hcmQgZGV0YWlscyBmb3IgZGF0YSBwb3B1bGF0aW9uIHRvIEVkaXQgdGhlIGRhc2hib2FyZFxyXG4gICAqIEBwYXJhbSBpZFxyXG4gICAqL1xyXG4gIC8qKiBAZGVwcmVjYXRlZCBMZWdhY3kgR2xvYmFsLURhc2hib2FyZCBlZGl0IGZldGNoOyBjdXN0b20gZGFzaGJvYXJkcyB1c2UgZmV0Y2hDdXN0b21EYXNoYm9hcmRCeUlkICsgZ2V0V2lkZ2V0cy4gKi9cclxuICBmZXRjaERhc2hib2FyZChpZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5lbnYuZGFzaGJvYXJkICsgaWQgKyAnP21vZGU9ZWRpdCcsIHRoaXMuaHR0cE9wdGlvbnMpXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVkaXQgbW9kZSBvbmx5IOKAlCBHRVQgR2xvYmFsLURhc2hib2FyZC9nZXRXaWRnZXRzP2Rhc2hib2FyZElkPXtjZGlkfVxyXG4gICAqIEBwYXJhbSBjZGlkIEN1c3RvbSBkYXNoYm9hcmQgaWQgKGUuZy4gNDM4RjhLU0syMiksIG5vdCBudW1lcmljIHJlY29yZCBpZFxyXG4gICAqL1xyXG4gIGZldGNoQ3VzdG9tRGFzaGJvYXJkV2lkZ2V0RGV0YWlscyhjZGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChcclxuICAgICAgICBgJHt0aGlzLmVudi5kYXNoYm9hcmR9Z2V0V2lkZ2V0cz9kYXNoYm9hcmRJZD0ke2VuY29kZVVSSUNvbXBvbmVudChjZGlkKX1gLFxyXG4gICAgICAgIHRoaXMuaHR0cE9wdGlvbnNcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlczogYW55KSA9PiB0aGlzLm5vcm1hbGl6ZVdpZGdldERldGFpbHNSZXNwb25zZShyZXMpKSxcclxuICAgICAgICByZXRyeSgyKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgbm9ybWFsaXplV2lkZ2V0RGV0YWlsc1Jlc3BvbnNlKHJlczogYW55KToge1xyXG4gICAgd2lkZ2V0QXJyOiBhbnlbXTtcclxuICAgIGFsbFdpZGdldHNBcnJheTogYW55W107XHJcbiAgICBhY3RpdmVXaWRnZXRBcnI6IGFueVtdO1xyXG4gIH0ge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHJlcz8uZGF0YSA/PyByZXM7XHJcbiAgICBjb25zdCBjb2xsZWN0ID0gKC4uLmNhbmRpZGF0ZXM6IGFueVtdKTogYW55W10gPT4ge1xyXG4gICAgICBjb25zdCBjb2xsZWN0ZWQ6IGFueVtdID0gW107XHJcbiAgICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgICAgY2FuZGlkYXRlcy5mb3JFYWNoKChjYW5kaWRhdGUpID0+IHtcclxuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY2FuZGlkYXRlKSkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYW5kaWRhdGUuZm9yRWFjaCgod2lkZ2V0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvZGUgPSB3aWRnZXQ/LndpZGdldF9jb2RlID8/IHdpZGdldD8ud2lkZ2V0Q29kZTtcclxuICAgICAgICAgIGNvbnN0IGtleSA9IGNvZGUgIT0gbnVsbCA/IFN0cmluZyhjb2RlKSA6IEpTT04uc3RyaW5naWZ5KHdpZGdldCk7XHJcbiAgICAgICAgICBpZiAoc2Vlbi5oYXMoa2V5KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBzZWVuLmFkZChrZXkpO1xyXG4gICAgICAgICAgY29sbGVjdGVkLnB1c2god2lkZ2V0KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBjb2xsZWN0ZWQ7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IHdpZGdldEFyciA9IGNvbGxlY3QoXHJcbiAgICAgIHBheWxvYWQ/LndpZGdldEFycixcclxuICAgICAgcmVzPy53aWRnZXRBcnIsXHJcbiAgICAgIHBheWxvYWQ/LndpZGdldF9kZXRhaWxzLFxyXG4gICAgICBBcnJheS5pc0FycmF5KHBheWxvYWQpID8gcGF5bG9hZCA6IG51bGwsXHJcbiAgICAgIEFycmF5LmlzQXJyYXkocmVzPy5kYXRhKSA/IHJlcy5kYXRhIDogbnVsbFxyXG4gICAgKTtcclxuICAgIGNvbnN0IGFsbFdpZGdldHNBcnJheSA9IGNvbGxlY3QoXHJcbiAgICAgIHBheWxvYWQ/LmFsbFdpZGdldHNBcnJheSxcclxuICAgICAgcGF5bG9hZD8uYWxsX3dpZGdldHMsXHJcbiAgICAgIHBheWxvYWQ/LmFsbFdpZGdldHMsXHJcbiAgICAgIHBheWxvYWQ/LmFsbFdpZGdldEFycmF5LFxyXG4gICAgICBwYXlsb2FkPy53aWRnZXRzLFxyXG4gICAgICByZXM/LmFsbFdpZGdldHNBcnJheSxcclxuICAgICAgcmVzPy5hbGxfd2lkZ2V0cyxcclxuICAgICAgcmVzPy5hbGxXaWRnZXRzLFxyXG4gICAgICByZXM/LndpZGdldHMsXHJcbiAgICAgIHdpZGdldEFyclxyXG4gICAgKTtcclxuICAgIGNvbnN0IGFjdGl2ZVdpZGdldEFyciA9IGNvbGxlY3QoXHJcbiAgICAgIHBheWxvYWQ/LmFjdGl2ZVdpZGdldEFycixcclxuICAgICAgcmVzPy5hY3RpdmVXaWRnZXRBcnIsXHJcbiAgICAgIHdpZGdldEFyclxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB3aWRnZXRBcnIsXHJcbiAgICAgIGFsbFdpZGdldHNBcnJheTogYWxsV2lkZ2V0c0FycmF5Lmxlbmd0aCA/IGFsbFdpZGdldHNBcnJheSA6IHdpZGdldEFycixcclxuICAgICAgYWN0aXZlV2lkZ2V0QXJyOiBhY3RpdmVXaWRnZXRBcnIubGVuZ3RoID8gYWN0aXZlV2lkZ2V0QXJyIDogd2lkZ2V0QXJyLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldFNhaWxzUHJvZ3JhbUxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdzYWlsc1Byb2dyYW1MaXN0JywgdGhpcy5odHRwT3B0aW9ucylcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZ3JhbUNhdGVnb3JpZXMocHJvZ3JhbUlkOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldChcclxuICAgICAgICBgJHt0aGlzLmVudi5jb21wbGlhbmNlR2V0fXNhaWxzUHJvZ3JhbUNhdGVnb3JpZXMmaWQ9JHtwcm9ncmFtSWR9YCxcclxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEZ1bGwgY3VzdG9tIGRhc2hib2FyZCBwYXlsb2FkIChpbmNsdWRlcyByZXNwb25zaWJpbGl0eUNlbnRlcklkLCBwcm9ncmFtSWQsIGV0Yy4pLiAqL1xyXG4gIGZldGNoQ3VzdG9tRGFzaGJvYXJkQnlJZChpZDogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQoYCR7dGhpcy5lbnYuZGFzaGJvYXJkfWN1c3RvbURhc2hib2FyZC8ke2lkfWAsIHRoaXMuaHR0cE9wdGlvbnMpXHJcbiAgICAgIC5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0VXNlckluZm9ybWF0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0KFxyXG4gICAgICAgIHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgKyAndXNlcnMmaWQ9JyArIHRoaXM/Ll9JRCgpLFxyXG4gICAgICAgIHRoaXMuaHR0cE9wdGlvbnNcclxuICAgICAgKVxyXG4gICAgICAucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIF9JRCgpIHtcclxuICAgIGNvbnN0IGhlbHBlciA9IG5ldyBKd3RIZWxwZXJTZXJ2aWNlKCk7XHJcbiAgICBjb25zdCBteVJhd1Rva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJykgfHwgJ3t9JztcclxuICAgIGNvbnN0IGlzRXhwaXJlZCA9IGhlbHBlcj8uaXNUb2tlbkV4cGlyZWQobXlSYXdUb2tlbik7XHJcbiAgICBpZiAoaXNFeHBpcmVkID09PSBmYWxzZSkge1xyXG4gICAgICBjb25zdCB0b2tlbkluZm8gPSBoZWxwZXI/LmRlY29kZVRva2VuKG15UmF3VG9rZW4pO1xyXG4gICAgICByZXR1cm4gdG9rZW5JbmZvLl9pZDtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGNoZWNrRHVwbGljYXRlRGFzaGJvYXJkTmFtZShwYXlsb2FkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QoXHJcbiAgICAgICAgdGhpcy5lbnYuZGFzaGJvYXJkICsgJ0R1cGxpY2F0ZURhc2hib2FyZCcsXHJcbiAgICAgICAgcGF5bG9hZCxcclxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuY3JlYXRlRGFzaGJvYXJkKHBheWxvYWQ6IGFueSkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5kYXNoYm9hcmQgKyAnY3VzdG9tRGFzaGJvYXJkJywgcGF5bG9hZCwgdGhpcy5odHRwT3B0aW9ucylcclxufVxyXG5cclxudXBkYXRlRGFzaGJvYXJkKHBheWxvYWQ6IGFueSwgaWQ6IGFueSkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuZW52LmRhc2hib2FyZCArICdjdXN0b21EYXNoYm9hcmQvJyArIGlkLCBwYXlsb2FkLCB0aGlzLmh0dHBPcHRpb25zKVxyXG59XHJcblxyXG5zYXZlV2lkZ2V0RGV0YWlscyhwYXlsb2FkOiBhbnkpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuZGFzaGJvYXJkICsgJ2NyZWF0ZVdpZGdldHMvY3JlYXRvcicsIHBheWxvYWQsIHRoaXMuaHR0cE9wdGlvbnMpXHJcbn1cclxuICBidWlsZFBheWxvYWQocGF5bG9hZDogYW55KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkYXNoYm9hcmQ6IHtcclxuICAgICAgICBuYW1lOiBwYXlsb2FkLmRhc2hib2FyZF9uYW1lLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBwYXlsb2FkLmRlc2NyaXB0aW9uWzBdLmNvbnRlbnQsXHJcbiAgICAgICAgdmlld2VyOiB7XHJcbiAgICAgICAgICB1c2VySWQ6IHBheWxvYWQudmlzaWJsZV90b191c2VycyxcclxuICAgICAgICAgIHVzZXJHcm91cElkOiBwYXlsb2FkLnZpc2libGVfdG9fZ3JvdXBzLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJJZDogcGF5bG9hZC5yZXNwb25zaWJpbGl0eV9jZW50ZXIsXHJcbiAgICAgICAgcHJvZ3JhbUlkOiBwYXlsb2FkLnByb2dyYW0uYWxsX3Byb2dyYW1zLm1hcCgocHJvZ3JhbTogYW55KSA9PiBwcm9ncmFtLmlkKSxcclxuICAgICAgICB0aW1lZnJhbWU6IHBheWxvYWQudGltZWZyYW1lLnN0YXJ0X2RhdGUgPyB7XHJcbiAgICAgICAgICBmcm9tOiBwYXlsb2FkLnRpbWVmcmFtZS5zdGFydF9kYXRlLFxyXG4gICAgICAgICAgdG86IHBheWxvYWQudGltZWZyYW1lLmVuZF9kYXRlLFxyXG4gICAgICAgIH0gOiBudWxsXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -414,37 +414,32 @@ class CreateDashboardService {
|
|
|
414
414
|
}
|
|
415
415
|
normalizeWidgetDetailsResponse(res) {
|
|
416
416
|
const payload = res?.data ?? res;
|
|
417
|
-
const
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
activeWidgetArr: res.data,
|
|
440
|
-
};
|
|
441
|
-
}
|
|
442
|
-
const legacyWidgets = res?.widget_details ?? res?.widgets ?? [];
|
|
443
|
-
const legacyAll = res?.all_widgets ?? legacyWidgets;
|
|
417
|
+
const collect = (...candidates) => {
|
|
418
|
+
const collected = [];
|
|
419
|
+
const seen = new Set();
|
|
420
|
+
candidates.forEach((candidate) => {
|
|
421
|
+
if (!Array.isArray(candidate)) {
|
|
422
|
+
return;
|
|
423
|
+
}
|
|
424
|
+
candidate.forEach((widget) => {
|
|
425
|
+
const code = widget?.widget_code ?? widget?.widgetCode;
|
|
426
|
+
const key = code != null ? String(code) : JSON.stringify(widget);
|
|
427
|
+
if (seen.has(key)) {
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
430
|
+
seen.add(key);
|
|
431
|
+
collected.push(widget);
|
|
432
|
+
});
|
|
433
|
+
});
|
|
434
|
+
return collected;
|
|
435
|
+
};
|
|
436
|
+
const widgetArr = collect(payload?.widgetArr, res?.widgetArr, payload?.widget_details, Array.isArray(payload) ? payload : null, Array.isArray(res?.data) ? res.data : null);
|
|
437
|
+
const allWidgetsArray = collect(payload?.allWidgetsArray, payload?.all_widgets, payload?.allWidgets, payload?.allWidgetArray, payload?.widgets, res?.allWidgetsArray, res?.all_widgets, res?.allWidgets, res?.widgets, widgetArr);
|
|
438
|
+
const activeWidgetArr = collect(payload?.activeWidgetArr, res?.activeWidgetArr, widgetArr);
|
|
444
439
|
return {
|
|
445
|
-
widgetArr
|
|
446
|
-
allWidgetsArray:
|
|
447
|
-
activeWidgetArr:
|
|
440
|
+
widgetArr,
|
|
441
|
+
allWidgetsArray: allWidgetsArray.length ? allWidgetsArray : widgetArr,
|
|
442
|
+
activeWidgetArr: activeWidgetArr.length ? activeWidgetArr : widgetArr,
|
|
448
443
|
};
|
|
449
444
|
}
|
|
450
445
|
getSailsProgramList() {
|
|
@@ -1534,12 +1529,12 @@ class ConfigureWidgetsComponent {
|
|
|
1534
1529
|
visibility: true,
|
|
1535
1530
|
module: 'COMPLIANCE',
|
|
1536
1531
|
subWidgets: [
|
|
1537
|
-
{
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
},
|
|
1532
|
+
// {
|
|
1533
|
+
// title: 'Overview',
|
|
1534
|
+
// id: 'key_responsibilities_overview_flag',
|
|
1535
|
+
// value: false,
|
|
1536
|
+
// visibility: true,
|
|
1537
|
+
// },
|
|
1543
1538
|
{
|
|
1544
1539
|
title: 'My Responsibilities',
|
|
1545
1540
|
id: 'key_my_responsibilities_flag',
|