ca-components 0.0.78 → 0.0.81
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/components/ca-filters/ca-filter.component.mjs +59 -5
- package/esm2022/lib/components/ca-filters/components/ca-dispatcher-filter/ca-dispatcher-filter.component.mjs +14 -35
- package/esm2022/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.mjs +10 -9
- package/esm2022/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.mjs +8 -8
- package/esm2022/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.mjs +28 -23
- package/esm2022/lib/components/ca-filters/components/ca-status-filter/ca-status-filter.component.mjs +13 -9
- package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.mjs +62 -37
- package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/config/ca-trailer-type-filter.config.mjs +15 -0
- package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/config/index.mjs +2 -0
- package/esm2022/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.mjs +61 -37
- package/esm2022/lib/components/ca-filters/components/ca-truck-type-filter/config/ca-truck-type-filter.config.mjs +15 -0
- package/esm2022/lib/components/ca-filters/pipes/filter-popover-conditions.pipe.mjs +2 -1
- package/esm2022/lib/components/ca-filters/utils/constants/directive.constants.mjs +141 -141
- package/esm2022/lib/components/ca-filters/utils/helpers/filter.helper.mjs +13 -12
- package/esm2022/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.mjs +10 -5
- package/esm2022/lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component.mjs +1 -1
- package/esm2022/lib/components/ca-todo/ca-todo.component.mjs +52 -153
- package/esm2022/lib/components/ca-todo/components/ca-todo-card.component.mjs +139 -0
- package/esm2022/lib/components/ca-todo/config/column.config.mjs +18 -0
- package/esm2022/lib/components/ca-todo/config/index.mjs +2 -0
- package/esm2022/lib/components/ca-todo/enums/column.enum.mjs +7 -0
- package/esm2022/lib/components/ca-todo/enums/index.mjs +2 -0
- package/esm2022/lib/components/ca-todo/models/image-config.model.mjs +2 -0
- package/esm2022/lib/components/ca-todo/models/index.mjs +3 -1
- package/esm2022/lib/components/ca-todo/models/todo-card-config.model.mjs +2 -0
- package/esm2022/lib/components/ca-todo/models/todo-config.model.mjs +1 -1
- package/esm2022/lib/components/ca-todo/utils/svg-routes/todo.routes.mjs +1 -1
- package/esm2022/lib/components/ca-upload-files/ca-upload-files.component.mjs +6 -3
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/ca-upload-dropzone.component.mjs +8 -12
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/helpers/file.helper.mjs +5 -7
- package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/models/file-config.model.mjs +1 -1
- package/esm2022/lib/models/array-status.model.mjs +1 -1
- package/fesm2022/ca-components.mjs +2539 -2375
- package/fesm2022/ca-components.mjs.map +1 -1
- package/lib/components/ca-filters/ca-filter.component.d.ts +8 -1
- package/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.d.ts +4 -3
- package/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.d.ts +5 -5
- package/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.d.ts +12 -5
- package/lib/components/ca-filters/components/ca-trailer-type-filter/config/ca-trailer-type-filter.config.d.ts +4 -0
- package/lib/components/ca-filters/components/ca-trailer-type-filter/config/index.d.ts +1 -0
- package/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.d.ts +13 -6
- package/lib/components/ca-filters/components/ca-truck-type-filter/config/ca-truck-type-filter.config.d.ts +4 -0
- package/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.d.ts +4 -2
- package/lib/components/ca-todo/ca-todo.component.d.ts +19 -57
- package/lib/components/ca-todo/components/ca-todo-card.component.d.ts +56 -0
- package/lib/components/ca-todo/config/column.config.d.ts +6 -0
- package/lib/components/ca-todo/config/index.d.ts +1 -0
- package/lib/components/ca-todo/enums/column.enum.d.ts +5 -0
- package/lib/components/ca-todo/enums/index.d.ts +1 -0
- package/lib/components/ca-todo/models/image-config.model.d.ts +8 -0
- package/lib/components/ca-todo/models/index.d.ts +2 -0
- package/lib/components/ca-todo/models/todo-card-config.model.d.ts +9 -0
- package/lib/components/ca-todo/models/todo-config.model.d.ts +21 -13
- package/lib/components/ca-upload-files/ca-upload-files.component.d.ts +2 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/helpers/file.helper.d.ts +1 -1
- package/lib/components/ca-upload-files/components/ca-upload-dropzone/models/file-config.model.d.ts +1 -1
- package/lib/models/array-status.model.d.ts +2 -1
- package/package.json +1 -1
- package/esm2022/lib/components/ca-todo/services/file-service.mjs +0 -20
- package/esm2022/lib/components/ca-todo/services/index.mjs +0 -2
- package/lib/components/ca-todo/services/file-service.d.ts +0 -10
- package/lib/components/ca-todo/services/index.d.ts +0 -1
package/esm2022/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.mjs
CHANGED
|
@@ -49,7 +49,7 @@ export class CaPmFilterComponent {
|
|
|
49
49
|
addToSelectedUser(item, indx) {
|
|
50
50
|
const mainArray = this.pmFilterArray;
|
|
51
51
|
mainArray[indx].isSelected = true;
|
|
52
|
-
this.unselectedVisibleCount = mainArray.filter((
|
|
52
|
+
this.unselectedVisibleCount = mainArray.filter((pm) => !pm.isSelected)?.length;
|
|
53
53
|
this.selectedPmFilterArray.push(item);
|
|
54
54
|
this.checkFilterActiveValue();
|
|
55
55
|
}
|
|
@@ -57,12 +57,12 @@ export class CaPmFilterComponent {
|
|
|
57
57
|
this.selectedPmFilterArray.splice(indx, 1);
|
|
58
58
|
const id = item.id;
|
|
59
59
|
const mainArray = this.pmFilterArray;
|
|
60
|
-
mainArray.
|
|
61
|
-
if (
|
|
62
|
-
|
|
60
|
+
mainArray.forEach((pm) => {
|
|
61
|
+
if (pm.id === id) {
|
|
62
|
+
pm.isSelected = false;
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
|
-
this.unselectedVisibleCount = mainArray.filter((
|
|
65
|
+
this.unselectedVisibleCount = mainArray.filter((pm) => !pm.isSelected)?.length;
|
|
66
66
|
this.checkFilterActiveValue();
|
|
67
67
|
}
|
|
68
68
|
watchTableServiceValueChanges() {
|
|
@@ -131,8 +131,8 @@ export class CaPmFilterComponent {
|
|
|
131
131
|
if (event)
|
|
132
132
|
event.stopPropagation();
|
|
133
133
|
this.selectedPmFilterArray = [];
|
|
134
|
-
this.pmFilterArray.
|
|
135
|
-
|
|
134
|
+
this.pmFilterArray.forEach((pm) => {
|
|
135
|
+
pm.isSelected = false;
|
|
136
136
|
});
|
|
137
137
|
this.isButtonAvailable = true;
|
|
138
138
|
this.filterActiveArray = [];
|
|
@@ -184,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
184
184
|
}], pmFilterArray: [{
|
|
185
185
|
type: Input
|
|
186
186
|
}] } });
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcG0tZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1wbS1maWx0ZXIvY2EtcG0tZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1wbS1maWx0ZXIvY2EtcG0tZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBR1QsS0FBSyxFQUNMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBV3hELFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakUsUUFBUTtBQUNSLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLFlBQVk7QUFDWixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUV2RixhQUFhO0FBQ2IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFzQnRFLE1BQU0sT0FBTyxtQkFB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LElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0EvTFUsbUJBQW1CO21HQUFuQixtQkFBbUIsb09DeERoQyxzb0pBc0lBO2dCRHpGSSxVQUFVO2dCQUNWLFlBQVksb1ZBQ1osZ0JBQWdCLDhCQUNoQixvQkFBb0IsbU5BR1Y7WUFDVixjQUFjLENBQUMsZ0JBQWdCLENBQUM7WUFDaEMsYUFBYSxDQUFDLGVBQWUsQ0FBQztTQUMvQjs7NEZBRVUsbUJBQW1CO2tCQWpCL0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sa0JBQWtCLFdBR25CO3dCQUNQLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjtxQkFDckIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxjQUN6Qjt3QkFDVixjQUFjLENBQUMsZ0JBQWdCLENBQUM7d0JBQ2hDLGFBQWEsQ0FBQyxlQUFlLENBQUM7cUJBQy9COzhHQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG4vLyBtb2R1bGVzXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgdXNlclNlbGVjdGVkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3VzZXItc2VsZWN0ZWQubW9kZWwnO1xuaW1wb3J0IHsgQXJyYXlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYXJyYXktc3RhdHVzLm1vZGVsJztcbmltcG9ydCB7IGZpbHRlck91dHB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXItb3V0cHV0Lm1vZGVsJztcbmltcG9ydCB7IGZpbHRlck91dHB1dFdpdGhQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC1wYXJhbXMubW9kZWwnO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcy9jYS1maWx0ZXJzLXN2Zy1yb3V0ZXMnO1xuXG4vLyBoZWxwZXJzXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzL2ZpbHRlci5oZWxwZXInO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi8uLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuXG4vLyBjb25zdGFudHNcbmltcG9ydCB7IEZpbHRlckljb25Sb3V0ZXMgfSBmcm9tICcuLi8uLi91dGlscy9jb25zdGFudHMvZmlsdGVyLWljb25zLXJvdXRlcy5jb25zdGFudHMnO1xuXG4vLyBhbmltYXRpb25zXG5pbXBvcnQgeyBpbk91dEFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvaW4tb3V0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBzaG93QW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5pbWF0aW9ucy9zaG93LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBUcnVja2Fzc2lzdFRhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RydWNrYXNzaXN0LXRhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxsVGFibGVBbmltYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy90YWJsZS1tb2RlbHMvYWxsLXRhYmxlLWFuaW1hdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBSZXBhaXJNb2RhbFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3JlcGFpck1vZGFsUmVzcG9uc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdhcHAtY2EtcG0tZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhLXBtLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLXBtLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgLy8gbW9kdWxlc1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBhbmltYXRpb25zOiBbXG4gICAgaW5PdXRBbmltYXRpb24oJ2luT3V0QW5pbWF0aW9uJyksXG4gICAgc2hvd0FuaW1hdGlvbignc2hvd0FuaW1hdGlvbicpLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYVBtRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0eXBlITogc3RyaW5nO1xuICBASW5wdXQoKSBpc0ZpbHRlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNMZWZ0U2lkZUljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcG1TdWJ0eXBlITogc3RyaW5nO1xuICBASW5wdXQoKSBwbUZpbHRlckFycmF5ITogQXJyYXlTdGF0dXNbXTtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHNlbGVjdGVkUG1GaWx0ZXJBcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICBwdWJsaWMgaXNCdXR0b25BdmFpbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzQXNjZW5kaW5nU29ydE9yZGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIGZpbHRlckFjdGl2ZUFycmF5OiBBcnJheVN0YXR1c1tdID0gW107XG4gIHB1YmxpYyB1bnNlbGVjdGVkVmlzaWJsZUNvdW50OiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIHNlcnZpY2VzXG4gICAgcHJpdmF0ZSB0YWJsZVNlcnZpY2U6IFRydWNrYXNzaXN0VGFibGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndhdGNoVGFibGVTZXJ2aWNlVmFsdWVDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUlkZW50aXR5KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0SXRlbXMoKTogdm9pZCB7XG4gICAgY29uc3Qgc29ydFJlc3VsdCA9IEZpbHRlckhlbHBlci5zb3J0SXRlbXMoXG4gICAgICB0aGlzLnBtRmlsdGVyQXJyYXksXG4gICAgICB0aGlzLnNlbGVjdGVkUG1GaWx0ZXJBcnJheSxcbiAgICAgIHRoaXMuaXNBc2NlbmRpbmdTb3J0T3JkZXJcbiAgICApO1xuXG4gICAgdGhpcy5wbUZpbHRlckFycmF5ID0gc29ydFJlc3VsdC5zb3J0ZWRGaWx0ZXJBcnJheTtcbiAgICB0aGlzLnNlbGVjdGVkUG1GaWx0ZXJBcnJheSA9IHNvcnRSZXN1bHQuc29ydGVkU2VsZWN0ZWRGaWx0ZXJBcnJheTtcbiAgICB0aGlzLmlzQXNjZW5kaW5nU29ydE9yZGVyID0gc29ydFJlc3VsdC5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgfVxuXG4gIHB1YmxpYyBvbkZpbHRlckNsb3NlKCk6IHZvaWQge1xuICAgIEZpbHRlckhlbHBlci5oYW5kbGVGaWx0ZXJDbG9zZShcbiAgICAgIHRoaXMucG1GaWx0ZXJBcnJheSxcbiAgICAgIHRoaXMuc2VsZWN0ZWRQbUZpbHRlckFycmF5LFxuICAgICAgdGhpcy5yZW1vdmVGcm9tU2VsZWN0ZWRVc2VyLmJpbmQodGhpcyksXG4gICAgICB0aGlzLmFkZFRvU2VsZWN0ZWRVc2VyLmJpbmQodGhpcylcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRvU2VsZWN0ZWRVc2VyKGl0ZW06IHVzZXJTZWxlY3RlZCwgaW5keDogbnVtYmVyKSB7XG4gICAgY29uc3QgbWFpbkFycmF5ID0gdGhpcy5wbUZpbHRlckFycmF5O1xuXG4gICAgbWFpbkFycmF5W2luZHhdLmlzU2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgdGhpcy51bnNlbGVjdGVkVmlzaWJsZUNvdW50ID0gbWFpbkFycmF5LmZpbHRlcihcbiAgICAgIChpdGVtMikgPT4gIWl0ZW0yLmlzU2VsZWN0ZWRcbiAgICApPy5sZW5ndGg7XG5cbiAgICB0aGlzLnNlbGVjdGVkUG1GaWx0ZXJBcnJheS5wdXNoKGl0ZW0pO1xuXG4gICAgdGhpcy5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRnJvbVNlbGVjdGVkVXNlcihpdGVtOiB1c2VyU2VsZWN0ZWQsIGluZHg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQbUZpbHRlckFycmF5LnNwbGljZShpbmR4LCAxKTtcbiAgICBjb25zdCBpZCA9IGl0ZW0uaWQ7XG4gICAgY29uc3QgbWFpbkFycmF5ID0gdGhpcy5wbUZpbHRlckFycmF5O1xuXG4gICAgbWFpbkFycmF5Lm1hcCgoaXRlbTIpID0+IHtcbiAgICAgIGlmIChpdGVtMi5pZCA9PT0gaWQpIHtcbiAgICAgICAgaXRlbTIuaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy51bnNlbGVjdGVkVmlzaWJsZUNvdW50ID0gbWFpbkFycmF5LmZpbHRlcihcbiAgICAgIChpdGVtMikgPT4gIWl0ZW0yLmlzU2VsZWN0ZWRcbiAgICApPy5sZW5ndGg7XG5cbiAgICB0aGlzLmNoZWNrRmlsdGVyQWN0aXZlVmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgd2F0Y2hUYWJsZVNlcnZpY2VWYWx1ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZVNlcnZpY2UuY3VycmVudEFjdGlvbkFuaW1hdGlvblxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBBbGxUYWJsZUFuaW1hdGlvbk1vZGVsKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnR5cGUgPT09IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBNX0ZJTFRFUiAmJlxuICAgICAgICAgIHRoaXMucG1TdWJ0eXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UUlVDS1xuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICByZXM/LmFuaW1hdGlvbiA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUE1fVFJBSUxFUl9EQVRBX1VQREFURVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlcy5kYXRhIGFzIFJlcGFpck1vZGFsUmVzcG9uc2VbXTtcbiAgICAgICAgICAgIGlmIChkYXRhWzBdPy5wbVRydWNrcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBkYXRhWzBdPy5wbVRydWNrcy5tYXAoKHR5cGU6IEFycmF5U3RhdHVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdHlwZVsnaWNvbiddID0gRmlsdGVySWNvblJvdXRlcy5yZXBhaXJQbVNWRyArIHR5cGUubG9nb05hbWU7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUudGl0bGUpIHR5cGVbJ25hbWUnXSA9IHR5cGUudGl0bGU7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgdGhpcy5wbUZpbHRlckFycmF5ID0gbmV3RGF0YTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMucG1GaWx0ZXJBcnJheSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0aGlzLnR5cGUgPT09IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBNX0ZJTFRFUiAmJlxuICAgICAgICAgIHRoaXMucG1TdWJ0eXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5UUkFJTEVSXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHJlcz8uYW5pbWF0aW9uID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5QTV9UUkFJTEVSX0RBVEFfVVBEQVRFXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gcmVzLmRhdGEgYXMgUmVwYWlyTW9kYWxSZXNwb25zZVtdO1xuICAgICAgICAgICAgaWYgKGRhdGFbMF0/LnBtVHJhaWxlcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZGF0YVswXT8ucG1UcmFpbGVycz8ubWFwKCh0eXBlOiBBcnJheVN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgIHR5cGVbJ2ljb24nXSA9IEZpbHRlckljb25Sb3V0ZXMucmVwYWlyUG1TVkcgKyB0eXBlLmxvZ29OYW1lO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlLnRpdGxlKSB0eXBlWyduYW1lJ10gPSB0eXBlLnRpdGxlO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIHRoaXMucG1GaWx0ZXJBcnJheSA9IG5ld0RhdGE7XG4gICAgICAgICAgICB9IGVsc2UgdGhpcy5wbUZpbHRlckFycmF5ID0gW107XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIHJlcz8uYW5pbWF0aW9uID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5SRVBBSVJfQ0FURUdPUllfVVBEQVRFXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXMuZGF0YSBhcyBBcnJheVN0YXR1c1tdO1xuICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBkYXRhLm1hcCgodHlwZTogQXJyYXlTdGF0dXMpID0+IHtcbiAgICAgICAgICAgIHR5cGVbJ2ljb24nXSA9IEZpbHRlckljb25Sb3V0ZXMuY2F0ZWdvcnlTVkcgKyB0eXBlLmxvZ287XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnBtRmlsdGVyQXJyYXkgPSBuZXdEYXRhO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWx0ZXJWYWx1ZSgpOiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IHN1YlR5cGUgPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5FTVBUWV9TVFJJTkdfUExBQ0VIT0xERVIudG9TdHJpbmcoKTtcblxuICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSBmYWxzZTtcblxuICAgIGNvbnN0IGFjdGlvbiA9ICdTZXQnO1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBmaWx0ZXJUeXBlOiB0aGlzLnR5cGUsXG4gICAgICBhY3Rpb24sXG4gICAgICBxdWVyeVBhcmFtcyxcbiAgICAgIHN1YlR5cGUsXG4gICAgfTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsKGV2ZW50PzogRXZlbnQpOiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHtcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5zZWxlY3RlZFBtRmlsdGVyQXJyYXkgPSBbXTtcblxuICAgIHRoaXMucG1GaWx0ZXJBcnJheS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZSA9IHRydWU7XG4gICAgdGhpcy5maWx0ZXJBY3RpdmVBcnJheSA9IFtdO1xuXG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGFjdGlvbjogJ0NsZWFyJyxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIGZpbHRlclR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHVibGljIGNoZWNrRmlsdGVyQWN0aXZlVmFsdWUoKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyQ2hlY2sgPSBGaWx0ZXJIZWxwZXIuY2hlY2tGaWx0ZXJBY3RpdmVWYWx1ZShcbiAgICAgIHRoaXMuc2VsZWN0ZWRQbUZpbHRlckFycmF5LFxuICAgICAgdGhpcy5maWx0ZXJBY3RpdmVBcnJheSxcbiAgICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGVcbiAgICApO1xuXG4gICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZSA9IGZpbHRlckNoZWNrLmlzQnV0dG9uQXZhaWxhYmxlO1xuICB9XG5cbiAgcHVibGljIGdldFN2Z1BhdGgocHJvcGVydHlOYW1lOiBrZXlvZiB0eXBlb2YgQ2FGaWx0ZXJzU3ZnUm91dGVzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRmlsdGVySGVscGVyLmdldFN2Z1BhdGgocHJvcGVydHlOYW1lKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIlxuICAgIHR5cGUgPT09ICdwbUZpbHRlcicgfHxcbiAgICB0eXBlID09PSAnc2VydmljZUZpbHRlcicgfHxcbiAgICB0eXBlID09PSAnZnVlbEl0ZW1GaWx0ZXInIHx8XG4gICAgdHlwZSA9PT0gJ2RlcGFydG1lbnRGaWx0ZXInIHx8XG4gICAgdHlwZSA9PT0gJ3BhcmtpbmdGaWx0ZXInIHx8XG4gICAgdHlwZSA9PT0gJ3RhZ0ZpbHRlcicgfHxcbiAgICB0eXBlID09PSAnYWN0aW9uRmlsdGVyJyB8fFxuICAgIHR5cGUgPT09ICdsYWJlbEZpbHRlcidcbiAgXCJcbj5cbiAgPGRpdiBjbGFzcz1cImJvcmRlci1maWx0ZXJcIj48L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2VsZWN0ZWQtdXNlci1ob2xkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1zdGFydCBmbGV4LWNvbHVtblwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGl0ZW0gb2Ygc2VsZWN0ZWRQbUZpbHRlckFycmF5O1xuICAgICAgICBsZXQgaW5keCA9IGluZGV4O1xuICAgICAgICB0cmFja0J5OiB0cmFja0J5SWRlbnRpdHlcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInVzZXItbWFpbi1ob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgW0Bpbk91dEFuaW1hdGlvbl09XCInaW4nXCJcbiAgICAgICAgW0BzaG93QW5pbWF0aW9uXT1cIiEhaXNGaWx0ZXJBY3RpdmVcIlxuICAgICAgICAoY2xpY2spPVwicmVtb3ZlRnJvbVNlbGVjdGVkVXNlcihpdGVtLCBpbmR4KVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLXVzZXItZnJhbWUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiXG4gICAgICAgICAgW2NsYXNzLnVzZXItZnJhbWUtbm8taWNvbl09XCIhaXRlbS5pY29uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmljb25cIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLXByb2ZpbGUtaW1nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgJy0tc3ZnLWZpbGwtY29sb3InOiBpdGVtLmNvbG9yLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgc3JjPVwie3sgaXRlbS5pY29uIH19XCJcbiAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyBmaWxsOiBpdGVtLmNvbG9yIH1cIlxuICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZC1uYW1lLXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPHNwYW4+IHt7IGl0ZW0ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8uY291bnQ7IGVsc2Ugbm9Db3VudFwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudC1ob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFjdGl2ZUNvdW50XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgaXRlbS5jb3VudCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNub0NvdW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmNvdW50OyBlbHNlIG5vQ291bnRlclwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1pY29uIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnLWljb24gW3NyY109XCJnZXRTdmdQYXRoKCdpY29uQ29uZmlybScpXCI+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9Db3VudGVyPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1ob2xkZXIgYWN0aXZlQ291bnRlclwiPjI8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRnJvbVNlbGVjdGVkVXNlcihpdGVtLCBpbmR4KVwiXG4gICAgICAgICAgICBjbGFzcz1cImljb24tZGVsZXRlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICBbY2xhc3MuY291bnRlck1hcmdpbl09XCJpdGVtLmNvdW50XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1kZWxldGUtaG9sZFwiPjwvZGl2PlxuICAgICAgICAgICAgPHN2Zy1pY29uIFtzcmNdPVwiZ2V0U3ZnUGF0aCgncmVtb3ZlU2VsZWN0ZWRWYWx1ZScpXCI+PC9zdmctaWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRQbUZpbHRlckFycmF5Lmxlbmd0aFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1maWx0ZXIgYm9yZGVyLXRocmlyZC1tYXJnaW5cIj48L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ1c2VyLWhvbGRlclwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0Zvcj1cIlxuICAgICAgICBsZXQgaXRlbSBvZiBwbUZpbHRlckFycmF5O1xuICAgICAgICBsZXQgaW5keCA9IGluZGV4O1xuICAgICAgICB0cmFja0J5OiB0cmFja0J5SWRlbnRpdHlcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtLmhpZGRlbiAmJiAhaXRlbS5pc1NlbGVjdGVkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWZyYW1lLWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgW0Bpbk91dEFuaW1hdGlvbl09XCInaW4nXCJcbiAgICAgICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhZGRUb1NlbGVjdGVkVXNlcihpdGVtLCBpbmR4KVwiXG4gICAgICAgICAgICBjbGFzcz1cInVzZXItbWFpbi1ob2xkZXIgdXNlci1tYWluLWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmljb25cIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidXNlci1wcm9maWxlLWltZyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgICAgICAgICAnLS1zdmctZmlsbC1jb2xvcic6IGl0ZW0uY29sb3IsXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgIHNyYz1cInt7IGl0ZW0uaWNvbiB9fVwiXG4gICAgICAgICAgICAgICAgICBbc3ZnU3R5bGVdPVwieyBmaWxsOiBpdGVtLmNvbG9yIH1cIlxuICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInVzZXItZnJhbWUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBmdy1ub3JtYWxcIlxuICAgICAgICAgICAgICBbY2xhc3MudXNlci1mcmFtZS1uby1pY29uXT1cIiFpdGVtLmljb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtbmFtZS10ZXh0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgaXRlbS5uYW1lIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmNvdW50XCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50LWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgY2EtZm9udC1zZW1pLWJvbGRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXRlbS5jb3VudCB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2EtcG0tZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1wbS1maWx0ZXIvY2EtcG0tZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1wbS1maWx0ZXIvY2EtcG0tZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBR1QsS0FBSyxFQUNMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxVQUFVO0FBQ1YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBV3hELFVBQVU7QUFDVixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakUsUUFBUTtBQUNSLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLFlBQVk7QUFDWixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUV2RixhQUFhO0FBQ2IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFzQnRFLE1BQU0sT0FBTyxtQkFB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LElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzsrR0EvTFUsbUJBQW1CO21HQUFuQixtQkFBbUIsb09DeERoQyxzb0pBc0lBO2dCRHpGSSxVQUFVO2dCQUNWLFlBQVksb1ZBQ1osZ0JBQWdCLDhCQUNoQixvQkFBb0IsbU5BR1Y7WUFDVixjQUFjLENBQUMsZ0JBQWdCLENBQUM7WUFDaEMsYUFBYSxDQUFDLGVBQWUsQ0FBQztTQUMvQjs7NEZBRVUsbUJBQW1CO2tCQWpCL0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sa0JBQWtCLFdBR25CO3dCQUNQLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjtxQkFDckIsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxjQUN6Qjt3QkFDVixjQUFjLENBQUMsZ0JBQWdCLENBQUM7d0JBQ2hDLGFBQWEsQ0FBQyxlQUFlLENBQUM7cUJBQy9COzhHQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG4vLyBtb2R1bGVzXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFuZ3VsYXJTdmdJY29uTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1zdmctaWNvbic7XG5cbi8vIG1vZGVsc1xuaW1wb3J0IHsgdXNlclNlbGVjdGVkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3VzZXItc2VsZWN0ZWQubW9kZWwnO1xuaW1wb3J0IHsgQXJyYXlTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYXJyYXktc3RhdHVzLm1vZGVsJztcbmltcG9ydCB7IGZpbHRlck91dHB1dCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWx0ZXItb3V0cHV0Lm1vZGVsJztcbmltcG9ydCB7IGZpbHRlck91dHB1dFdpdGhQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC1wYXJhbXMubW9kZWwnO1xuXG4vLyB1dGlsc1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcy9jYS1maWx0ZXJzLXN2Zy1yb3V0ZXMnO1xuXG4vLyBoZWxwZXJzXG5pbXBvcnQgeyBGaWx0ZXJIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlscy9oZWxwZXJzL2ZpbHRlci5oZWxwZXInO1xuXG4vLyBlbnVtc1xuaW1wb3J0IHsgVG9vbGJhckZpbHRlclN0cmluZ0VudW0gfSBmcm9tICcuLi8uLi8uLi9jYS1tYXAvZW51bXMvdG9vbGJhci1maWx0ZXItc3RyaW5nLmVudW0nO1xuXG4vLyBjb25zdGFudHNcbmltcG9ydCB7IEZpbHRlckljb25Sb3V0ZXMgfSBmcm9tICcuLi8uLi91dGlscy9jb25zdGFudHMvZmlsdGVyLWljb25zLXJvdXRlcy5jb25zdGFudHMnO1xuXG4vLyBhbmltYXRpb25zXG5pbXBvcnQgeyBpbk91dEFuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvaW4tb3V0LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBzaG93QW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vYW5pbWF0aW9ucy9zaG93LmFuaW1hdGlvbic7XG5pbXBvcnQgeyBUcnVja2Fzc2lzdFRhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3RydWNrYXNzaXN0LXRhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxsVGFibGVBbmltYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy90YWJsZS1tb2RlbHMvYWxsLXRhYmxlLWFuaW1hdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBSZXBhaXJNb2RhbFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3JlcGFpck1vZGFsUmVzcG9uc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdhcHAtY2EtcG0tZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhLXBtLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhLXBtLWZpbHRlci5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgLy8gbW9kdWxlc1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEFuZ3VsYXJTdmdJY29uTW9kdWxlLFxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBhbmltYXRpb25zOiBbXG4gICAgaW5PdXRBbmltYXRpb24oJ2luT3V0QW5pbWF0aW9uJyksXG4gICAgc2hvd0FuaW1hdGlvbignc2hvd0FuaW1hdGlvbicpLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDYVBtRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0eXBlITogc3RyaW5nO1xuICBASW5wdXQoKSBpc0ZpbHRlckFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNMZWZ0U2lkZUljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcG1TdWJ0eXBlITogc3RyaW5nO1xuICBASW5wdXQoKSBwbUZpbHRlckFycmF5ITogQXJyYXlTdGF0dXNbXTtcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHNlbGVjdGVkUG1GaWx0ZXJBcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICBwdWJsaWMgaXNCdXR0b25BdmFpbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzQXNjZW5kaW5nU29ydE9yZGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgcHVibGljIGZpbHRlckFjdGl2ZUFycmF5OiBBcnJheVN0YXR1c1tdID0gW107XG4gIHB1YmxpYyB1bnNlbGVjdGVkVmlzaWJsZUNvdW50OiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIHNlcnZpY2VzXG4gICAgcHJpdmF0ZSB0YWJsZVNlcnZpY2U6IFRydWNrYXNzaXN0VGFibGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndhdGNoVGFibGVTZXJ2aWNlVmFsdWVDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUlkZW50aXR5KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0SXRlbXMoKTogdm9pZCB7XG4gICAgY29uc3Qgc29ydFJlc3VsdCA9IEZpbHRlckhlbHBlci5zb3J0SXRlbXMoXG4gICAgICB0aGlzLnBtRmlsdGVyQXJyYXksXG4gICAgICB0aGlzLnNlbGVjdGVkUG1GaWx0ZXJBcnJheSxcbiAgICAgIHRoaXMuaXNBc2NlbmRpbmdTb3J0T3JkZXJcbiAgICApO1xuXG4gICAgdGhpcy5wbUZpbHRlckFycmF5ID0gc29ydFJlc3VsdC5zb3J0ZWRGaWx0ZXJBcnJheTtcbiAgICB0aGlzLnNlbGVjdGVkUG1GaWx0ZXJBcnJheSA9IHNvcnRSZXN1bHQuc29ydGVkU2VsZWN0ZWRGaWx0ZXJBcnJheTtcbiAgICB0aGlzLmlzQXNjZW5kaW5nU29ydE9yZGVyID0gc29ydFJlc3VsdC5pc0FzY2VuZGluZ1NvcnRPcmRlcjtcbiAgfVxuXG4gIHB1YmxpYyBvbkZpbHRlckNsb3NlKCk6IHZvaWQge1xuICAgIEZpbHRlckhlbHBlci5oYW5kbGVGaWx0ZXJDbG9zZShcbiAgICAgIHRoaXMucG1GaWx0ZXJBcnJheSxcbiAgICAgIHRoaXMuc2VsZWN0ZWRQbUZpbHRlckFycmF5LFxuICAgICAgdGhpcy5yZW1vdmVGcm9tU2VsZWN0ZWRVc2VyLmJpbmQodGhpcyksXG4gICAgICB0aGlzLmFkZFRvU2VsZWN0ZWRVc2VyLmJpbmQodGhpcylcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRvU2VsZWN0ZWRVc2VyKGl0ZW06IHVzZXJTZWxlY3RlZCwgaW5keDogbnVtYmVyKSB7XG4gICAgY29uc3QgbWFpbkFycmF5ID0gdGhpcy5wbUZpbHRlckFycmF5O1xuXG4gICAgbWFpbkFycmF5W2luZHhdLmlzU2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgdGhpcy51bnNlbGVjdGVkVmlzaWJsZUNvdW50ID0gbWFpbkFycmF5LmZpbHRlcihcbiAgICAgIChwbSkgPT4gIXBtLmlzU2VsZWN0ZWRcbiAgICApPy5sZW5ndGg7XG5cbiAgICB0aGlzLnNlbGVjdGVkUG1GaWx0ZXJBcnJheS5wdXNoKGl0ZW0pO1xuXG4gICAgdGhpcy5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRnJvbVNlbGVjdGVkVXNlcihpdGVtOiB1c2VyU2VsZWN0ZWQsIGluZHg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQbUZpbHRlckFycmF5LnNwbGljZShpbmR4LCAxKTtcbiAgICBjb25zdCBpZCA9IGl0ZW0uaWQ7XG4gICAgY29uc3QgbWFpbkFycmF5ID0gdGhpcy5wbUZpbHRlckFycmF5O1xuXG4gICAgbWFpbkFycmF5LmZvckVhY2goKHBtKSA9PiB7XG4gICAgICBpZiAocG0uaWQgPT09IGlkKSB7XG4gICAgICAgIHBtLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudW5zZWxlY3RlZFZpc2libGVDb3VudCA9IG1haW5BcnJheS5maWx0ZXIoXG4gICAgICAocG0pID0+ICFwbS5pc1NlbGVjdGVkXG4gICAgKT8ubGVuZ3RoO1xuXG4gICAgdGhpcy5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIHdhdGNoVGFibGVTZXJ2aWNlVmFsdWVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMudGFibGVTZXJ2aWNlLmN1cnJlbnRBY3Rpb25BbmltYXRpb25cbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogQWxsVGFibGVBbmltYXRpb25Nb2RlbCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy50eXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5QTV9GSUxURVIgJiZcbiAgICAgICAgICB0aGlzLnBtU3VidHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVFJVQ0tcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcmVzPy5hbmltYXRpb24gPT09IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLlBNX1RSQUlMRVJfREFUQV9VUERBVEVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXMuZGF0YSBhcyBSZXBhaXJNb2RhbFJlc3BvbnNlW107XG4gICAgICAgICAgICBpZiAoZGF0YVswXT8ucG1UcnVja3M/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZGF0YVswXT8ucG1UcnVja3MubWFwKCh0eXBlOiBBcnJheVN0YXR1cykgPT4ge1xuICAgICAgICAgICAgICAgIHR5cGVbJ2ljb24nXSA9IEZpbHRlckljb25Sb3V0ZXMucmVwYWlyUG1TVkcgKyB0eXBlLmxvZ29OYW1lO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlLnRpdGxlKSB0eXBlWyduYW1lJ10gPSB0eXBlLnRpdGxlO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIHRoaXMucG1GaWx0ZXJBcnJheSA9IG5ld0RhdGE7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnBtRmlsdGVyQXJyYXkgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgdGhpcy50eXBlID09PSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5QTV9GSUxURVIgJiZcbiAgICAgICAgICB0aGlzLnBtU3VidHlwZSA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uVFJBSUxFUlxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICByZXM/LmFuaW1hdGlvbiA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUE1fVFJBSUxFUl9EQVRBX1VQREFURVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlcy5kYXRhIGFzIFJlcGFpck1vZGFsUmVzcG9uc2VbXTtcbiAgICAgICAgICAgIGlmIChkYXRhWzBdPy5wbVRyYWlsZXJzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3RGF0YSA9IGRhdGFbMF0/LnBtVHJhaWxlcnM/Lm1hcCgodHlwZTogQXJyYXlTdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICB0eXBlWydpY29uJ10gPSBGaWx0ZXJJY29uUm91dGVzLnJlcGFpclBtU1ZHICsgdHlwZS5sb2dvTmFtZTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZS50aXRsZSkgdHlwZVsnbmFtZSddID0gdHlwZS50aXRsZTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICB0aGlzLnBtRmlsdGVyQXJyYXkgPSBuZXdEYXRhO1xuICAgICAgICAgICAgfSBlbHNlIHRoaXMucG1GaWx0ZXJBcnJheSA9IFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICByZXM/LmFuaW1hdGlvbiA9PT0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uUkVQQUlSX0NBVEVHT1JZX1VQREFURVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gcmVzLmRhdGEgYXMgQXJyYXlTdGF0dXNbXTtcbiAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZGF0YS5tYXAoKHR5cGU6IEFycmF5U3RhdHVzKSA9PiB7XG4gICAgICAgICAgICB0eXBlWydpY29uJ10gPSBGaWx0ZXJJY29uUm91dGVzLmNhdGVnb3J5U1ZHICsgdHlwZS5sb2dvO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5wbUZpbHRlckFycmF5ID0gbmV3RGF0YTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0RmlsdGVyVmFsdWUoKTogZmlsdGVyT3V0cHV0IHwgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB7XG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICBjb25zdCBzdWJUeXBlID0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSLnRvU3RyaW5nKCk7XG5cbiAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlID0gZmFsc2U7XG5cbiAgICBjb25zdCBhY3Rpb24gPSAnU2V0JztcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgYWN0aW9uLFxuICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICBzdWJUeXBlLFxuICAgIH07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhckFsbChldmVudD86IEV2ZW50KTogZmlsdGVyT3V0cHV0IHwgZmlsdGVyT3V0cHV0V2l0aFBhcmFtcyB7XG4gICAgaWYgKGV2ZW50KSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRQbUZpbHRlckFycmF5ID0gW107XG5cbiAgICB0aGlzLnBtRmlsdGVyQXJyYXkuZm9yRWFjaCgocG0pID0+IHtcbiAgICAgIHBtLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9KTtcblxuICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSB0cnVlO1xuICAgIHRoaXMuZmlsdGVyQWN0aXZlQXJyYXkgPSBbXTtcblxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBhY3Rpb246ICdDbGVhcicsXG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICBmaWx0ZXJUeXBlOiB0aGlzLnR5cGUsXG4gICAgfTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlckNoZWNrID0gRmlsdGVySGVscGVyLmNoZWNrRmlsdGVyQWN0aXZlVmFsdWUoXG4gICAgICB0aGlzLnNlbGVjdGVkUG1GaWx0ZXJBcnJheSxcbiAgICAgIHRoaXMuZmlsdGVyQWN0aXZlQXJyYXksXG4gICAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlXG4gICAgKTtcblxuICAgIHRoaXMuaXNCdXR0b25BdmFpbGFibGUgPSBmaWx0ZXJDaGVjay5pc0J1dHRvbkF2YWlsYWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdmdQYXRoKHByb3BlcnR5TmFtZToga2V5b2YgdHlwZW9mIENhRmlsdGVyc1N2Z1JvdXRlcyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEZpbHRlckhlbHBlci5nZXRTdmdQYXRoKHByb3BlcnR5TmFtZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJcbiAgICB0eXBlID09PSAncG1GaWx0ZXInIHx8XG4gICAgdHlwZSA9PT0gJ3NlcnZpY2VGaWx0ZXInIHx8XG4gICAgdHlwZSA9PT0gJ2Z1ZWxJdGVtRmlsdGVyJyB8fFxuICAgIHR5cGUgPT09ICdkZXBhcnRtZW50RmlsdGVyJyB8fFxuICAgIHR5cGUgPT09ICdwYXJraW5nRmlsdGVyJyB8fFxuICAgIHR5cGUgPT09ICd0YWdGaWx0ZXInIHx8XG4gICAgdHlwZSA9PT0gJ2FjdGlvbkZpbHRlcicgfHxcbiAgICB0eXBlID09PSAnbGFiZWxGaWx0ZXInXG4gIFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyXCI+PC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNlbGVjdGVkLXVzZXItaG9sZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nRm9yPVwiXG4gICAgICAgIGxldCBpdGVtIG9mIHNlbGVjdGVkUG1GaWx0ZXJBcnJheTtcbiAgICAgICAgbGV0IGluZHggPSBpbmRleDtcbiAgICAgICAgdHJhY2tCeTogdHJhY2tCeUlkZW50aXR5XG4gICAgICBcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ1c2VyLW1haW4taG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgIFtAaW5PdXRBbmltYXRpb25dPVwiJ2luJ1wiXG4gICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZyb21TZWxlY3RlZFVzZXIoaXRlbSwgaW5keClcIlxuICAgICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC11c2VyLWZyYW1lIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIlxuICAgICAgICAgIFtjbGFzcy51c2VyLWZyYW1lLW5vLWljb25dPVwiIWl0ZW0uaWNvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pY29uXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidXNlci1wcm9maWxlLWltZyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICctLXN2Zy1maWxsLWNvbG9yJzogaXRlbS5jb2xvcixcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzdmctaWNvblxuICAgICAgICAgICAgICAgIHNyYz1cInt7IGl0ZW0uaWNvbiB9fVwiXG4gICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgZmlsbDogaXRlbS5jb2xvciB9XCJcbiAgICAgICAgICAgICAgPjwvc3ZnLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtbmFtZS10ZXh0IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxzcGFuPiB7eyBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0/LmNvdW50OyBlbHNlIG5vQ291bnRcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnQtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBhY3RpdmVDb3VudFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGl0ZW0uY291bnQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9Db3VudD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5jb3VudDsgZWxzZSBub0NvdW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtaWNvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2Zy1pY29uIFtzcmNdPVwiZ2V0U3ZnUGF0aCgnaWNvbkNvbmZpcm0nKVwiPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vQ291bnRlcj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvdW50ZXItaG9sZGVyIGFjdGl2ZUNvdW50ZXJcIj4yPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZyb21TZWxlY3RlZFVzZXIoaXRlbSwgaW5keClcIlxuICAgICAgICAgICAgY2xhc3M9XCJpY29uLWRlbGV0ZSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgW2NsYXNzLmNvdW50ZXJNYXJnaW5dPVwiaXRlbS5jb3VudFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tZGVsZXRlLWhvbGRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxzdmctaWNvbiBbc3JjXT1cImdldFN2Z1BhdGgoJ3JlbW92ZVNlbGVjdGVkVmFsdWUnKVwiPjwvc3ZnLWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkUG1GaWx0ZXJBcnJheS5sZW5ndGhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyIGJvcmRlci10aHJpcmQtbWFyZ2luXCI+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwidXNlci1ob2xkZXJcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGl0ZW0gb2YgcG1GaWx0ZXJBcnJheTtcbiAgICAgICAgbGV0IGluZHggPSBpbmRleDtcbiAgICAgICAgdHJhY2tCeTogdHJhY2tCeUlkZW50aXR5XG4gICAgICBcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5oaWRkZW4gJiYgIWl0ZW0uaXNTZWxlY3RlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1mcmFtZS1ob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtAaW5PdXRBbmltYXRpb25dPVwiJ2luJ1wiXG4gICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkVG9TZWxlY3RlZFVzZXIoaXRlbSwgaW5keClcIlxuICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLW1haW4taG9sZGVyIHVzZXItbWFpbi1ob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pY29uXCI+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInVzZXItcHJvZmlsZS1pbWcgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgJy0tc3ZnLWZpbGwtY29sb3InOiBpdGVtLmNvbG9yLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHN2Zy1pY29uXG4gICAgICAgICAgICAgICAgICBzcmM9XCJ7eyBpdGVtLmljb24gfX1cIlxuICAgICAgICAgICAgICAgICAgW3N2Z1N0eWxlXT1cInsgZmlsbDogaXRlbS5jb2xvciB9XCJcbiAgICAgICAgICAgICAgICA+PC9zdmctaWNvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLWZyYW1lIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgZnctbm9ybWFsXCJcbiAgICAgICAgICAgICAgW2NsYXNzLnVzZXItZnJhbWUtbm8taWNvbl09XCIhaXRlbS5pY29uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkLW5hbWUtdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4+IHt7IGl0ZW0ubmFtZSB9fSA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5jb3VudFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudC1ob2xkZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGNhLWZvbnQtc2VtaS1ib2xkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0uY291bnQgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|