@eo-sdk/client 11.0.0-rc.1 → 11.0.0-rc.3

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.
Files changed (101) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +24 -5
  3. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +10 -0
  5. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  6. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts +7 -0
  7. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts.map +1 -1
  8. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts +3 -2
  9. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.d.ts.map +1 -1
  10. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts +2 -0
  11. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.d.ts.map +1 -1
  12. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts +1 -0
  13. package/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.d.ts.map +1 -1
  14. package/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.d.ts +7 -0
  15. package/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.d.ts.map +1 -1
  16. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts +6 -4
  17. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts.map +1 -1
  18. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts +2 -2
  19. package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts.map +1 -1
  20. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts +3 -2
  21. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts.map +1 -1
  22. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts +3 -2
  23. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts.map +1 -1
  24. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts +3 -2
  25. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts.map +1 -1
  26. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.d.ts +3 -2
  27. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.d.ts.map +1 -1
  28. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts +2 -3
  29. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts.map +1 -1
  30. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts +1 -2
  31. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -1
  32. package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
  33. package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
  34. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  35. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  36. package/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.d.ts.map +1 -1
  37. package/app/eo-framework/grid/filters/codesystem-filter.component.d.ts.map +1 -1
  38. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts +0 -8
  39. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts.map +1 -1
  40. package/app/eo-framework/grid/filters/dynamic-list-filter.component.d.ts.map +1 -1
  41. package/app/eo-framework/grid/grid.component.d.ts +1 -1
  42. package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
  43. package/app/eo-framework/object-details/object-details.component.d.ts +6 -2
  44. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  45. package/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.d.ts.map +1 -1
  46. package/app/eo-framework/util/services/utilities.service.d.ts +190 -0
  47. package/app/eo-framework/util/services/utilities.service.d.ts.map +1 -1
  48. package/app/eo-framework-core/api/grid.service.d.ts +1 -5
  49. package/app/eo-framework-core/api/grid.service.d.ts.map +1 -1
  50. package/assets/_default/i18n/de.json +16 -3
  51. package/assets/_default/i18n/en.json +20 -7
  52. package/esm2022/app/eo-client/about-state/about-state.component.mjs +3 -3
  53. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +161 -42
  54. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +78 -15
  55. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
  56. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +20 -12
  57. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +7 -3
  58. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
  59. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +1 -1
  60. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +35 -23
  61. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +7 -8
  62. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +16 -10
  63. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +3 -4
  64. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +15 -9
  65. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +16 -10
  66. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +15 -9
  67. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +11 -13
  68. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +4 -7
  69. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +3 -3
  70. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +7 -10
  71. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +4 -4
  72. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +6 -6
  73. package/esm2022/app/eo-client/process-state/process-state.component.mjs +3 -3
  74. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +4 -4
  75. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +4 -5
  76. package/esm2022/app/eo-client/version-state/version-state.component.mjs +3 -3
  77. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
  78. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +3 -2
  79. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
  80. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +7 -5
  81. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +2 -2
  82. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  83. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +1 -14
  84. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +6 -33
  85. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +1 -17
  86. package/esm2022/app/eo-framework/grid/filters/filesize-filter.component.mjs +2 -2
  87. package/esm2022/app/eo-framework/grid/grid.component.mjs +11 -12
  88. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +40 -12
  89. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +3 -3
  90. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +4 -4
  91. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +7 -7
  92. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  93. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  94. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +4 -4
  95. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +4 -1
  96. package/esm2022/app/eo-framework-core/api/grid.service.mjs +12 -24
  97. package/fesm2022/eo-sdk-client.mjs +636 -443
  98. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  99. package/misc/scripts/exclude-core-ng-package.js +11 -0
  100. package/misc/scripts/prebuild-about-state.js +2 -3
  101. package/package.json +6 -6
@@ -136,11 +136,11 @@ let InboxStateComponent = class InboxStateComponent {
136
136
  }];
137
137
  this.sortFields = [
138
138
  {
139
- field: 'received', headerName: this.translate.instant('eo.inbox.sort.date'), sort: 'asc',
139
+ field: 'received', headerName: this.translate.instant('eo.inbox.sort.date'), sort: null,
140
140
  valueGetter: (p) => (p.data[p.colDef.field] || '').match(/\+\d\d:\d\d/) ? new Date(p.data[p.colDef.field]).toISOString() : p.data[p.colDef.field]
141
141
  },
142
- { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: 'asc' },
143
- { field: 'description', headerName: this.translate.instant('eo.inbox.sort.description'), sort: 'asc' }
142
+ { field: 'title', headerName: this.translate.instant('eo.inbox.sort.title'), sort: null },
143
+ { field: 'description', headerName: this.translate.instant('eo.inbox.sort.description'), sort: null }
144
144
  ];
145
145
  let sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
146
146
  this.gridOptions = {
@@ -189,12 +189,9 @@ let InboxStateComponent = class InboxStateComponent {
189
189
  this.gridData = data;
190
190
  this.updateGrid(this.gridData);
191
191
  const lastInboxItemID = this.storageService.getItem(this.storageKeyLastItemID);
192
- if (lastInboxItemID) {
193
- const item = this.gridData.find(i => i.id === lastInboxItemID);
194
- if (item) {
195
- this.selectFirst = false;
196
- setTimeout(() => this.eoGrid.selectRow(item), 500);
197
- }
192
+ if (lastInboxItemID && this.gridData.find(i => i.id === lastInboxItemID)) {
193
+ this.selectFirst = false;
194
+ setTimeout(() => this.eoGrid.selectRow(lastInboxItemID), 500);
198
195
  }
199
196
  });
200
197
  }
@@ -215,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
215
212
  type: ViewChild,
216
213
  args: ['eoGrid']
217
214
  }] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3gtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd0RSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBT25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBRzVHLE9BQU8sRUFBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU96RCxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQW1COUIsWUFBbUIsU0FBMkIsRUFDckMsU0FBMkIsRUFDMUIsWUFBOEIsRUFDL0IsWUFBMEIsRUFDekIsY0FBcUMsRUFDckMsS0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsS0FBcUIsRUFDckIsY0FBbUM7UUFSMUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixtQkFBYyxHQUFk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bUIsQ0E2TS9COzsyRkE3TVksbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGdCQUFnQjs0VUFxQkwsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb2xEZWYsIEdyaWRPcHRpb25zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtFdmVudFNlcnZpY2UsIEluYm94SXRlbSwgSW5ib3hTZXJ2aWNlLCBJbmJveFN0YXRlLCBMb2NhbFN0b3JhZ2VTZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtFbXB0eVN0YXRlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtFbXB0eVN0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge1NlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3RpdGxlL3BhZ2UtdGl0bGUuc2VydmljZSc7XG5pbXBvcnQge0N1c3RvbVNvcnRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2V4dGVuc2lvbnMvY3VzdG9tLXNvcnQvY3VzdG9tLXNvcnQuY29tcG9uZW50JztcbmltcG9ydCB7SVNldEZpbHRlcn0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZXh0ZW5zaW9ucy9maWx0ZXIvc2V0RmlsdGVycy9zZXQtZmlsdGVycy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtHcmlkQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0luYm94VHlwZXMsIEluYm94VHlwZXNGaWx0ZXJ9IGZyb20gJy4vaW5ib3gudHlwZXMuZW51bSc7XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWluYm94LXN0YXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luYm94LXN0YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5ib3gtc3RhdGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbmJveFN0YXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50IHtcblxuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIHNvcnRGaWVsZHM6IENvbERlZltdO1xuICBpbmJveEZpbHRlckZpZWxkczogSVNldEZpbHRlcltdID0gW107XG4gIHR5cGVGaWx0ZXJGaWVsZHM6IElTZXRGaWx0ZXJbXSA9IFtdO1xuICBpbmJveFNlbGVjdGlvbklkID0gJ2luYm94JztcbiAgaW5ib3hEbXNPYmplY3RTZWxlY3Rpb25JZCA9ICdpbmJveF9kbXMnO1xuICBpbmJveFNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZTtcbiAgc2VsZWN0Rmlyc3QgPSB0cnVlO1xuICBpZE1hdGNoID0gdHJ1ZTtcbiAgZ3JpZERhdGE7XG4gIGRlZmF1bHRGaWx0ZXJQYXJhbXM6IGFueSA9IHt9O1xuICBlbXB0eVN0YXRlOiBFbXB0eVN0YXRlID0ge2ljb246ICdpY19uby1maWxlLnN2ZycsIHRleHQ6ICcnLCBjbGFzc05hbWU6ICcnfTtcbiAgaW5ib3hDaGFuZ2VkID0gZmFsc2U7XG4gIHN0b3JhZ2VLZXlMYXN0SXRlbUlEID0gJ2VvLmluYm94Lmxhc3RJdGVtSUQnO1xuXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGVvR3JpZDogR3JpZENvbXBvbmVudDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzZWxlY3Rpb246IFNlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHVibGljIGluYm94U2VydmljZTogSW5ib3hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGVuZGluZ0NoYW5nZXM6IFBlbmRpbmdDaGFuZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIGVtcHR5OiBFbXB0eVN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHtcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRCYXNlVGl0bGUodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3gubGlzdC50aXRsZScpKTtcbiAgICAvL3NlY29uZGFyeSBzZWxlY3Rpb24gaW5zdGFuY2UgZm9yIGluYm94IGl0ZW1zXG4gICAgdGhpcy5pbmJveFNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uLmNyZWF0ZU5ldyh0aGlzLmluYm94U2VsZWN0aW9uSWQpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmNyZWF0ZU5ldyh0aGlzLmluYm94RG1zT2JqZWN0U2VsZWN0aW9uSWQpO1xuXG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtc1xuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChwYXJhbXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMgPSB7Y29udGV4dDoge2RlZmF1bHRWYWx1ZTogcGFyYW1zLmlkfX07XG4gICAgICB9KTtcblxuICAgIHRoaXMuaW5ib3hTZXJ2aWNlLmluYm94U3RhdGUkXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBJbmJveFN0YXRlKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmVvR3JpZCkge1xuICAgICAgICAgIC8vIHRvZG86IHRlbXBvcmFyeSBmaXggdW50aWwgc3RhdHVzIHNlcnZpY2UgdXBkYXRlXG4gICAgICAgICAgLy8gdGhpcy5pbmJveENoYW5nZWQgPSB0aGlzLmVvR3JpZC5jb250ZXh0Q291bnQgIT09IHN0YXRlLnRvdGFsbWVzc2FnZXM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgb25Db3VudENoYW5nZWQoZXZ0OiBhbnkpIHtcbiAgICBpZiAodGhpcy5kZWZhdWx0RmlsdGVyUGFyYW1zLmNvbnRleHQgJiYgdGhpcy5kZWZhdWx0RmlsdGVyUGFyYW1zLmNvbnRleHQuZGVmYXVsdFZhbHVlKSB7XG4gICAgICBpZiAoZXZ0LnJvd0NvdW50ID09PSAwKSB7XG4gICAgICAgIHRoaXMuaWRNYXRjaCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMuY29udGV4dC5kZWZhdWx0VmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5pbmJveFNlbGVjdGlvbi5jbGVhcigpO1xuICAgICAgICB0aGlzLmluYm94U2VsZWN0aW9uLmRpc2FibGUoKTtcbiAgICAgICAgdGhpcy5lb0dyaWQuZ3JpZE9wdGlvbnMuY29udGV4dC5jb3VudCA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRlZmF1bHRGaWx0ZXJQYXJhbXMuY29udGV4dC5kZWZhdWx0VmFsdWUgPSAnJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYXNQZW5kaW5nQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzaygpO1xuICB9XG5cbiAgcmVmcmVzaEdyaWQoKSB7XG4gICAgdGhpcy5pbmJveENoYW5nZWQgPSBmYWxzZTtcbiAgICB0aGlzLmluYm94U2VsZWN0aW9uLmRpc2FibGUoZmFsc2UpO1xuICAgIHRoaXMuaW5ib3hTZXJ2aWNlLmdldEl0ZW1zKCkuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pbmJveFNlcnZpY2UucmVmcmVzaEluYm94U3RhdGUoKTtcbiAgfVxuXG4gIGl0ZW1GaWx0ZXJGaWVsZHMobm9kZSwgaXRlbSkge1xuICAgIGNvbnN0IHZhbHVlID0gbm9kZS5kYXRhW0luYm94VHlwZXNGaWx0ZXJbaXRlbV1dO1xuICAgIGNvbnN0IGFjY2VwdGVkQW5kVW5hY2NlcHRlZENvbWJpbmVkID0gdGhpcy5pbmJveEZpbHRlckZpZWxkcy5maW5kKGZpbHRlciA9PiBmaWx0ZXIuaWQgPT09ICdhY2NlcHRlZFRhc2tzJykudmFsdWVcbiAgICAgICYmIHRoaXMuaW5ib3hGaWx0ZXJGaWVsZHMuZmluZChmaWx0ZXIgPT4gZmlsdGVyLmlkID09PSAndW5hY2NlcHRlZFRhc2tzJykudmFsdWU7XG4gICAgc3dpdGNoIChJbmJveFR5cGVzRmlsdGVyW2l0ZW1dKSB7XG4gICAgICBjYXNlIEluYm94VHlwZXNGaWx0ZXIub3ZlcmR1ZTpcbiAgICAgICAgcmV0dXJuIG5vZGUuZGF0YS5pc092ZXJkdWUoKTtcbiAgICAgIGNhc2UgSW5ib3hUeXBlc0ZpbHRlci5hYnNlbnQ6XG4gICAgICAgIHJldHVybiAhIXZhbHVlO1xuICAgICAgY2FzZSBJbmJveFR5cGVzRmlsdGVyLmFjY2VwdGVkVGFza3M6XG4gICAgICAgIHJldHVybiBhY2NlcHRlZEFuZFVuYWNjZXB0ZWRDb21iaW5lZCA/IG5vZGUuZGF0YS50eXBlID09PSAnQlBNJyA6IG5vZGUuZGF0YS50eXBlID09PSAnQlBNJyAmJiAhIW5vZGUuZGF0YS5hY2NlcHRlZDtcbiAgICAgIGNhc2UgSW5ib3hUeXBlc0ZpbHRlci51bmFjY2VwdGVkVGFza3M6XG4gICAgICAgIHJldHVybiBhY2NlcHRlZEFuZFVuYWNjZXB0ZWRDb21iaW5lZCA/IG5vZGUuZGF0YS50eXBlID09PSAnQlBNJyA6IG5vZGUuZGF0YS50eXBlID09PSAnQlBNJyAmJiAhbm9kZS5kYXRhLmFjY2VwdGVkO1xuICAgIH1cbiAgfVxuXG4gIGZpZWxkRmlsdGVycygpIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXJGaWVsZHMgPSBPYmplY3Qua2V5cyhJbmJveFR5cGVzKS5tYXAoaXRlbSA9PiAoe1xuICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYGVvLmluYm94LiR7aXRlbX1gKSxcbiAgICAgIGZpbHRlcjogKG5vZGUpID0+IG5vZGUuZGF0YS50eXBlID09PSBpdGVtLFxuICAgICAgdmFsdWU6IHRydWUsXG4gICAgICBpZDogaXRlbVxuICAgIH0pKTtcblxuICAgIHRoaXMuaW5ib3hGaWx0ZXJGaWVsZHMgPSBPYmplY3Qua2V5cyhJbmJveFR5cGVzRmlsdGVyKS5tYXAoaXRlbSA9PiAoe1xuICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoYGVvLmluYm94LmZpbHRlci4ke2l0ZW19YCksXG4gICAgICBmaWx0ZXI6IChub2RlKSA9PiB0aGlzLml0ZW1GaWx0ZXJGaWVsZHMobm9kZSwgaXRlbSksXG4gICAgICB2YWx1ZTogZmFsc2UsXG4gICAgICBpZDogaXRlbVxuICAgIH0pKTtcbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLmZpZWxkRmlsdGVycygpO1xuICB9XG5cbiAgdXBkYXRlR3JpZChkYXRhOiBJbmJveEl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuZW1wdHlTdGF0ZSA9IHRoaXMuZW1wdHkuZ2V0RW1wdHlTdGF0ZShkYXRhID8gZGF0YS5sZW5ndGggOiAtMSwgdW5kZWZpbmVkLCAnaWNfbm8tZmlsZS5zdmcnKTtcblxuICAgIGlmICh0aGlzLmVvR3JpZCAmJiB0aGlzLmVvR3JpZC5pc1JlYWR5KSB7XG4gICAgICByZXR1cm4gdGhpcy5lb0dyaWQudXBkYXRlUm93RGF0YShkYXRhKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc2V0RmlsdGVycygpO1xuXG4gICAgbGV0IGNvbERlZnM6IENvbERlZltdID0gW3tcbiAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgZmllbGQ6ICdfX2N1c3RvbScsXG4gICAgICBjZWxsUmVuZGVyZXI6IHRoaXMuY2VsbFJlbmRlcmVyLFxuICAgICAgZmlsdGVyOiBmYWxzZVxuICAgICAgLy8gY2VsbFJlbmRlcmVyRnJhbWV3b3JrOiBJbmJveFJlbmRlcmVyQ29tcG9uZW50XG4gICAgfV07XG5cbiAgICB0aGlzLnNvcnRGaWVsZHMgPSBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkOiAncmVjZWl2ZWQnLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5zb3J0LmRhdGUnKSwgc29ydDogJ2FzYycsXG4gICAgICAgIHZhbHVlR2V0dGVyOiAocCkgPT4gKHAuZGF0YVtwLmNvbERlZi5maWVsZF0gfHwgJycpLm1hdGNoKC9cXCtcXGRcXGQ6XFxkXFxkLykgPyBuZXcgRGF0ZShwLmRhdGFbcC5jb2xEZWYuZmllbGRdKS50b0lTT1N0cmluZygpIDogcC5kYXRhW3AuY29sRGVmLmZpZWxkXVxuICAgICAgfSxcbiAgICAgIHtmaWVsZDogJ3RpdGxlJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3guc29ydC50aXRsZScpLCBzb3J0OiAnYXNjJ30sXG4gICAgICB7ZmllbGQ6ICdkZXNjcmlwdGlvbicsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94LnNvcnQuZGVzY3JpcHRpb24nKSwgc29ydDogJ2FzYyd9XG4gICAgXTtcblxuICAgIGxldCBzb3J0Q29sRGVmcyA9IEN1c3RvbVNvcnRDb21wb25lbnQuc29ydENvbERlZnModGhpcy5zb3J0RmllbGRzKTtcblxuICAgIHRoaXMuZ3JpZE9wdGlvbnMgPSB7XG4gICAgICBjb250ZXh0OiB7Y291bnQ6IGRhdGEubGVuZ3RofSxcbiAgICAgIHJvd0RhdGE6IGRhdGEsXG4gICAgICBjb2x1bW5EZWZzOiBjb2xEZWZzLmNvbmNhdChzb3J0Q29sRGVmcyksXG4gICAgICByb3dCdWZmZXI6IDIwLFxuICAgICAgcm93SGVpZ2h0OiA4MCxcbiAgICAgIHJvd1NlbGVjdGlvbjogJ3NpbmdsZSdcbiAgICB9O1xuICB9XG5cbiAgY2VsbFJlbmRlcmVyKHBhcmFtcykge1xuXG4gICAgbGV0IGxhYmVsID0gJyc7XG4gICAgaWYgKE9iamVjdC5rZXlzKEluYm94VHlwZXMpLmluY2x1ZGVzKHBhcmFtcy5kYXRhLnR5cGUpKSB7XG4gICAgICBsYWJlbCA9IHBhcmFtcy5jb250ZXh0LnRyYW5zbGF0ZS5pbnN0YW50KGBlby5pbmJveC4ke3BhcmFtcy5kYXRhLnR5cGV9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgdXJsID0gYGFzc2V0cy9fZGVmYXVsdC9zdmcvaWNfJHtJbmJveFR5cGVzW3BhcmFtcy5kYXRhLnR5cGVdfS5zdmdgO1xuXG4gICAgbGV0IGljb24gPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2ljb24nLCBwYXJhbXMsIHt2YWx1ZToge3VybCwgbGFiZWx9fSk7XG4gICAgbGV0IHNob3J0RGF0ZSA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignZGF0ZVRpbWUnLCBwYXJhbXMsIHt2YWx1ZTogcGFyYW1zLmRhdGEucmVjZWl2ZWQsIHBhdHRlcm46ICdlb1Nob3J0RGF0ZSd9KTtcbiAgICBsZXQgc2hvcnRUaW1lID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdkYXRlVGltZScsIHBhcmFtcywge3ZhbHVlOiBwYXJhbXMuZGF0YS5yZWNlaXZlZCwgcGF0dGVybjogJ2VvU2hvcnRUaW1lJ30pO1xuICAgIGxldCBkdWV0aW1lID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdkYXRlVGltZScsIHBhcmFtcywge3ZhbHVlOiBwYXJhbXMuZGF0YS5kdWV0aW1lfSk7XG4gICAgY29uc3QgdGl0bGVDbGFzcyA9IHBhcmFtcy5kYXRhLmFjY2VwdGVkID8gJ3RpdGxlJyA6ICd0aXRsZS1ib2xkJztcblxuICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSR7cGFyYW1zLmRhdGEuZm9sZGVyID8gJyBmb2xkZXInIDogJyd9XCIgdW5zZWxlY3RhYmxlPlxuICAgICAgICAgICAgICAke2ljb259XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2NvbnRlbnQnPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9JyR7dGl0bGVDbGFzc30nPiR7cGFyYW1zLmRhdGEudGl0bGUgfHwgJyd9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZGVzY3JpcHRpb24nPiR7cGFyYW1zLmRhdGEuZGVzY3JpcHRpb24gfHwgJyd9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nbm90ZXMke3BhcmFtcy5kYXRhLmlzT3ZlcmR1ZSgpID8gJyBwYXN0RHVlJyA6ICcnfSc+XG4gICAgICAgICAgICAgICAgICAke3BhcmFtcy5kYXRhLmR1ZXRpbWUgPyAnPHNwYW4gY2xhc3M9XCJwZXJpb2RcIj4nICsgZHVldGltZSArICc8L3NwYW4+JyA6ICcnfVxuICAgICAgICAgICAgICAgICAgJHtwYXJhbXMuZGF0YS5pc2RlcHV0eSA/ICc8c3Bhbj4nICsgcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94Lml0ZW0ubm90ZS5hYnNlbmNlJykgKyAnPC9zcGFuPicgOiAnJ31cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRhXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj4ke3Nob3J0RGF0ZX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPiR7c2hvcnRUaW1lfTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgYDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVmcmVzaEdyaWQoKTtcbiAgICB0aGlzLmluYm94U2VydmljZVxuICAgICAgLmluYm94SXRlbXNHcmlkRGF0YSRcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogSW5ib3hJdGVtW10pID0+IHtcblxuICAgICAgICB0aGlzLmdyaWREYXRhID0gZGF0YTtcbiAgICAgICAgdGhpcy51cGRhdGVHcmlkKHRoaXMuZ3JpZERhdGEpO1xuXG4gICAgICAgIGNvbnN0IGxhc3RJbmJveEl0ZW1JRCA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXlMYXN0SXRlbUlEKTtcbiAgICAgICAgaWYgKGxhc3RJbmJveEl0ZW1JRCkge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdyaWREYXRhLmZpbmQoaSA9PiBpLmlkID09PSBsYXN0SW5ib3hJdGVtSUQpO1xuICAgICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEZpcnN0ID0gZmFsc2U7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZW9HcmlkLnNlbGVjdFJvdyhpdGVtKSwgNTAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgfVxufVxuIiwiPHl2Yy1zcGxpdC12aWV3IFtsYXlvdXRTZXR0aW5nc0lEXT1cIidpbmJveC5zdGF0ZSdcIj5cbiAgPCEtLSBsaXN0IC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjMwXCI+XG4gICAgPGVvLWxpc3QtY29udGFpbmVyICNlb0xpc3QgW2FwcGx5U2VsZWN0aW9uXT1cIntvdXQ6IGluYm94U2VsZWN0aW9uSWR9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyXCI+XG5cbiAgICAgICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2luYm94LnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItaW5mb1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItdGl0bGVcIiB0cmFuc2xhdGU+ZW8uaW5ib3gubGlzdC50aXRsZTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gcmVmcmVzaC1idXR0b25cIiBbbmdDbGFzc109XCJ7aW5ib3hDaGFuZ2VkOiBpbmJveENoYW5nZWR9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJjRmlsdGVyLnJlc2V0RmlsdGVyKCk7IHJlZnJlc2hHcmlkKClcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmxpc3QucmVmcmVzaCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29GaWx0ZXIgY2xhc3M9XCJvdmVybGF5LWZpbHRlclwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2ZpbHRlci5zdmcnXCIgW2ljb25UaXRsZV09XCInZW8ubGlzdC5maWx0ZXInIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8ZW8tY3VzdG9tLWZpbHRlciAjY0ZpbHRlciAoY2hhbmdlKT1cImNGaWx0ZXIudXBkYXRlR3JpZChlb0xpc3QuZW9HcmlkU3ViamVjdCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3RpdmUpPVwib0ZpbHRlci5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8ZW8tdGV4dC1maWx0ZXIgW3RpdGxlXT1cIidlby5pbmJveC5maWx0ZXIudGl0bGUnIHwgdHJhbnNsYXRlXCIgW2ZpbHRlclBhcmFtc109XCJkZWZhdWx0RmlsdGVyUGFyYW1zXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiJ2luYm94LnRleHQnXCIgW21hdGNoRmllbGRzXT1cIlsndGl0bGUnLCdkZXNjcmlwdGlvbicsJ2lkJ11cIiBbZW5hYmxlU2F2ZV09XCJ0cnVlXCI+PC9lby10ZXh0LWZpbHRlcj5cbiAgICAgICAgICAgICAgPGVvLXNldC1maWx0ZXIgY2xhc3M9XCJ0eXBlLWZpbHRlcnNcIiBbb3BlcmF0b3JdPVwiJ09SJ1wiIFtpZF09XCInaW5ib3gudHlwZSdcIiBbZmlsdGVyUGFyYW1zXT1cImRlZmF1bHRGaWx0ZXJQYXJhbXNcIiBbb3B0aW9uc109XCJ0eXBlRmlsdGVyRmllbGRzXCI+PC9lby1zZXQtZmlsdGVyPlxuICAgICAgICAgICAgICA8ZW8tc2V0LWZpbHRlciBjbGFzcz1cImluYm94LWZpbHRlcnNcIiBbb3BlcmF0b3JdPVwiJ0FORCdcIiBbaWRdPVwiJ2luYm94LnNldCdcIiBbZmlsdGVyUGFyYW1zXT1cImRlZmF1bHRGaWx0ZXJQYXJhbXNcIiBbb3B0aW9uc109XCJpbmJveEZpbHRlckZpZWxkc1wiPjwvZW8tc2V0LWZpbHRlcj5cbiAgICAgICAgICAgIDwvZW8tY3VzdG9tLWZpbHRlcj5cbiAgICAgICAgICA8L2VvLW92ZXJsYXk+XG5cbiAgICAgICAgICA8ZW8tb3ZlcmxheSAjb1NvcnQgY2xhc3M9XCJvdmVybGF5LXNvcnRcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19zb3J0LnN2ZydcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCInZW8ubGlzdC5zb3J0JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1zb3J0ICNjU29ydCBbaWRdPVwiJ2luYm94LnNvcnQnXCIgKGNoYW5nZSk9XCJjU29ydC51cGRhdGVHcmlkKGVvTGlzdC5lb0dyaWQsICRldmVudClcIlxuICAgICAgICAgICAgICAoYWN0aXZlKT1cIm9Tb3J0Lm9uQWN0aXZlQ2hhbmdlZCgkZXZlbnQpXCIgW3NvcnRGaWVsZHNdPVwic29ydEZpZWxkc1wiPjwvZW8tY3VzdG9tLXNvcnQ+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8tYm9keVwiPlxuICAgICAgICA8ZW8tZ3JpZCAjZW9HcmlkICpuZ0lmPVwiZ3JpZE9wdGlvbnM/LnJvd0RhdGFcIiBbZ3JpZE9wdGlvbnNdPVwiZ3JpZE9wdGlvbnNcIiBbZnVsbFdpZHRoXT1cInRydWVcIiBbc2hvd0hlYWRlcl09XCJ0cnVlXCJcbiAgICAgICAgICBbc2hvd0Zvb3Rlcl09XCJ0cnVlXCIgW3NlbGVjdEZpcnN0XT1cInNlbGVjdEZpcnN0XCIgW29wdGlvbnNdPVwie2ZpbHRlckFjdGl2ZTogb0ZpbHRlci5hY3RpdmV9XCJcbiAgICAgICAgICAoZW9HcmlkQ291bnRDaGFuZ2VkKT1cImVvTGlzdC5vbkNvdW50Q2hhbmdlZCgkZXZlbnQpO29uQ291bnRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChlb0dyaWRTZWxlY3Rpb25DaGFuZ2VkKT1cImVvTGlzdC5vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGVvR3JpZEZvY3VzQ2hhbmdlZCk9XCJlb0xpc3Qub25Gb2N1c0NoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cbiAgICAgICAgICAgIDxlby10b3RhbC1jb3VudCBbZ3JpZENvdW50XT1cImVvTGlzdC5ncmlkQ291bnRcIiBbb3V0c2lkZUdyaWRdPVwiZmFsc2VcIiBjbGFzcz1cImZsZXgtcm93XCI+PC9lby10b3RhbC1jb3VudD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICAgICAgPGVvLWVycm9yLW1lc3NhZ2VcbiAgICAgICAgICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19pbmJveC5zdmcnLCB0ZXh0OiBvRmlsdGVyLmFjdGl2ZSA/ICdlby5uby5maWx0ZXIucmVzdWx0JyA6ICdlby5pbmJveC5saXN0LmVtcHR5J31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8ZW8tcmVzZXQtZmlsdGVyIFtpc0ZpbHRlckFjdGl2ZV09XCJvRmlsdGVyLmFjdGl2ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjRmlsdGVyLnJlc2V0RmlsdGVyKCk7Y1NvcnQucmVzZXQoKTtyZWZyZXNoR3JpZCgpXCI+PC9lby1yZXNldC1maWx0ZXI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9lby1ncmlkPlxuICAgICAgPC9kaXY+XG4gICAgPC9lby1saXN0LWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPCEtLSBpbmJveCBkZXRhaWxzIC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjMwXCI+XG4gICAgPGVvLWluYm94LWRldGFpbHMgW2FwcGx5U2VsZWN0aW9uXT1cIntpbjogaW5ib3hTZWxlY3Rpb25JZCwgb3V0OiBpbmJveERtc09iamVjdFNlbGVjdGlvbklkfVwiXG4gICAgICBbZW1wdHlTdGF0ZV09XCJlbXB0eVN0YXRlXCIgW3BsdWdpbnNdPVwiJ2luYm94LWRldGFpbHMtdGFiLmluYm94JyB8IHBsdWdpbnNcIj5cbiAgICA8L2VvLWluYm94LWRldGFpbHM+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDwhLS0gb2JqZWN0IGRldGFpbHMgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNDBcIj5cbiAgICA8ZW8tb2JqZWN0LWRldGFpbHMgW2FwcGx5U2VsZWN0aW9uXT1cIntpbjogaW5ib3hEbXNPYmplY3RTZWxlY3Rpb25JZH1cIiBbY2FjaGVMYXlvdXRdPVwiJ2luYm94LnN0YXRlLm9iamVjdC1kZXRhaWxzJ1wiXG4gICAgW3BsdWdpbnNdPVwiJ29iamVjdC1kZXRhaWxzLXRhYi5pbmJveCcgfCBwbHVnaW5zXCI+XG4gICAgPC9lby1vYmplY3QtZGV0YWlscz5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwveXZjLXNwbGl0LXZpZXc+Il19
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5ib3gtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUvaW5ib3gtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQXFCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd0RSxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBT25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlFQUF5RSxDQUFDO0FBRzVHLE9BQU8sRUFBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU96RCxJQUFNLG1CQUFtQixHQUF6QixNQUFNLG1CQUFtQjtJQW1COUIsWUFBbUIsU0FBMkIsRUFDckMsU0FBMkIsRUFDMUIsWUFBOEIsRUFDL0IsWUFBMEIsRUFDekIsY0FBcUMsRUFDckMsS0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIsS0FBcUIsRUFDckIsY0FBbUM7UUFSMUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixtQkFBYyxHQUFk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QU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sRGVmLCBHcmlkT3B0aW9uc30gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RXZlbnRTZXJ2aWNlLCBJbmJveEl0ZW0sIEluYm94U2VydmljZSwgSW5ib3hTdGF0ZSwgTG9jYWxTdG9yYWdlU2VydmljZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7RW1wdHlTdGF0ZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7RW1wdHlTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS90aXRsZS9wYWdlLXRpdGxlLnNlcnZpY2UnO1xuaW1wb3J0IHtDdXN0b21Tb3J0Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2N1c3RvbS1zb3J0L2N1c3RvbS1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQge0lTZXRGaWx0ZXJ9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2V4dGVuc2lvbnMvZmlsdGVyL3NldEZpbHRlcnMvc2V0LWZpbHRlcnMuaW50ZXJmYWNlJztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmJveFR5cGVzLCBJbmJveFR5cGVzRmlsdGVyfSBmcm9tICcuL2luYm94LnR5cGVzLmVudW0nO1xuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1pbmJveC1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmJveC1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luYm94LXN0YXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW5ib3hTdGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudCB7XG5cbiAgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBzb3J0RmllbGRzOiBDb2xEZWZbXTtcbiAgaW5ib3hGaWx0ZXJGaWVsZHM6IElTZXRGaWx0ZXJbXSA9IFtdO1xuICB0eXBlRmlsdGVyRmllbGRzOiBJU2V0RmlsdGVyW10gPSBbXTtcbiAgaW5ib3hTZWxlY3Rpb25JZCA9ICdpbmJveCc7XG4gIGluYm94RG1zT2JqZWN0U2VsZWN0aW9uSWQgPSAnaW5ib3hfZG1zJztcbiAgaW5ib3hTZWxlY3Rpb246IFNlbGVjdGlvblNlcnZpY2U7XG4gIHNlbGVjdEZpcnN0ID0gdHJ1ZTtcbiAgaWRNYXRjaCA9IHRydWU7XG4gIGdyaWREYXRhO1xuICBkZWZhdWx0RmlsdGVyUGFyYW1zOiBhbnkgPSB7fTtcbiAgZW1wdHlTdGF0ZTogRW1wdHlTdGF0ZSA9IHtpY29uOiAnaWNfbm8tZmlsZS5zdmcnLCB0ZXh0OiAnJywgY2xhc3NOYW1lOiAnJ307XG4gIGluYm94Q2hhbmdlZCA9IGZhbHNlO1xuICBzdG9yYWdlS2V5TGFzdEl0ZW1JRCA9ICdlby5pbmJveC5sYXN0SXRlbUlEJztcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBlb0dyaWQ6IEdyaWRDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwdWJsaWMgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBQYWdlVGl0bGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBpbmJveFNlcnZpY2U6IEluYm94U2VydmljZSxcbiAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbXB0eTogRW1wdHlTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlKSB7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0QmFzZVRpdGxlKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94Lmxpc3QudGl0bGUnKSk7XG4gICAgLy9zZWNvbmRhcnkgc2VsZWN0aW9uIGluc3RhbmNlIGZvciBpbmJveCBpdGVtc1xuICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGlvbi5jcmVhdGVOZXcodGhpcy5pbmJveFNlbGVjdGlvbklkKTtcbiAgICB0aGlzLnNlbGVjdGlvbi5jcmVhdGVOZXcodGhpcy5pbmJveERtc09iamVjdFNlbGVjdGlvbklkKTtcblxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXNcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnN1YnNjcmliZSgocGFyYW1zOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5kZWZhdWx0RmlsdGVyUGFyYW1zID0ge2NvbnRleHQ6IHtkZWZhdWx0VmFsdWU6IHBhcmFtcy5pZH19O1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmluYm94U2VydmljZS5pbmJveFN0YXRlJFxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogSW5ib3hTdGF0ZSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5lb0dyaWQpIHtcbiAgICAgICAgICAvLyB0b2RvOiB0ZW1wb3JhcnkgZml4IHVudGlsIHN0YXR1cyBzZXJ2aWNlIHVwZGF0ZVxuICAgICAgICAgIC8vIHRoaXMuaW5ib3hDaGFuZ2VkID0gdGhpcy5lb0dyaWQuY29udGV4dENvdW50ICE9PSBzdGF0ZS50b3RhbG1lc3NhZ2VzO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG9uQ291bnRDaGFuZ2VkKGV2dDogYW55KSB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcy5jb250ZXh0ICYmIHRoaXMuZGVmYXVsdEZpbHRlclBhcmFtcy5jb250ZXh0LmRlZmF1bHRWYWx1ZSkge1xuICAgICAgaWYgKGV2dC5yb3dDb3VudCA9PT0gMCkge1xuICAgICAgICB0aGlzLmlkTWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kZWZhdWx0RmlsdGVyUGFyYW1zLmNvbnRleHQuZGVmYXVsdFZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMuaW5ib3hTZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5pbmJveFNlbGVjdGlvbi5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuZW9HcmlkLmdyaWRPcHRpb25zLmNvbnRleHQuY291bnQgPSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0RmlsdGVyUGFyYW1zLmNvbnRleHQuZGVmYXVsdFZhbHVlID0gJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFzUGVuZGluZ0NoYW5nZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGVuZGluZ0NoYW5nZXMuaGFzUGVuZGluZ1Rhc2soKTtcbiAgfVxuXG4gIHJlZnJlc2hHcmlkKCkge1xuICAgIHRoaXMuaW5ib3hDaGFuZ2VkID0gZmFsc2U7XG4gICAgdGhpcy5pbmJveFNlbGVjdGlvbi5kaXNhYmxlKGZhbHNlKTtcbiAgICB0aGlzLmluYm94U2VydmljZS5nZXRJdGVtcygpLnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaW5ib3hTZXJ2aWNlLnJlZnJlc2hJbmJveFN0YXRlKCk7XG4gIH1cblxuICBpdGVtRmlsdGVyRmllbGRzKG5vZGUsIGl0ZW0pIHtcbiAgICBjb25zdCB2YWx1ZSA9IG5vZGUuZGF0YVtJbmJveFR5cGVzRmlsdGVyW2l0ZW1dXTtcbiAgICBjb25zdCBhY2NlcHRlZEFuZFVuYWNjZXB0ZWRDb21iaW5lZCA9IHRoaXMuaW5ib3hGaWx0ZXJGaWVsZHMuZmluZChmaWx0ZXIgPT4gZmlsdGVyLmlkID09PSAnYWNjZXB0ZWRUYXNrcycpLnZhbHVlXG4gICAgICAmJiB0aGlzLmluYm94RmlsdGVyRmllbGRzLmZpbmQoZmlsdGVyID0+IGZpbHRlci5pZCA9PT0gJ3VuYWNjZXB0ZWRUYXNrcycpLnZhbHVlO1xuICAgIHN3aXRjaCAoSW5ib3hUeXBlc0ZpbHRlcltpdGVtXSkge1xuICAgICAgY2FzZSBJbmJveFR5cGVzRmlsdGVyLm92ZXJkdWU6XG4gICAgICAgIHJldHVybiBub2RlLmRhdGEuaXNPdmVyZHVlKCk7XG4gICAgICBjYXNlIEluYm94VHlwZXNGaWx0ZXIuYWJzZW50OlxuICAgICAgICByZXR1cm4gISF2YWx1ZTtcbiAgICAgIGNhc2UgSW5ib3hUeXBlc0ZpbHRlci5hY2NlcHRlZFRhc2tzOlxuICAgICAgICByZXR1cm4gYWNjZXB0ZWRBbmRVbmFjY2VwdGVkQ29tYmluZWQgPyBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgOiBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgJiYgISFub2RlLmRhdGEuYWNjZXB0ZWQ7XG4gICAgICBjYXNlIEluYm94VHlwZXNGaWx0ZXIudW5hY2NlcHRlZFRhc2tzOlxuICAgICAgICByZXR1cm4gYWNjZXB0ZWRBbmRVbmFjY2VwdGVkQ29tYmluZWQgPyBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgOiBub2RlLmRhdGEudHlwZSA9PT0gJ0JQTScgJiYgIW5vZGUuZGF0YS5hY2NlcHRlZDtcbiAgICB9XG4gIH1cblxuICBmaWVsZEZpbHRlcnMoKSB7XG4gICAgdGhpcy50eXBlRmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXMoSW5ib3hUeXBlcykubWFwKGl0ZW0gPT4gKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5pbmJveC4ke2l0ZW19YCksXG4gICAgICBmaWx0ZXI6IChub2RlKSA9PiBub2RlLmRhdGEudHlwZSA9PT0gaXRlbSxcbiAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgaWQ6IGl0ZW1cbiAgICB9KSk7XG5cbiAgICB0aGlzLmluYm94RmlsdGVyRmllbGRzID0gT2JqZWN0LmtleXMoSW5ib3hUeXBlc0ZpbHRlcikubWFwKGl0ZW0gPT4gKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5pbmJveC5maWx0ZXIuJHtpdGVtfWApLFxuICAgICAgZmlsdGVyOiAobm9kZSkgPT4gdGhpcy5pdGVtRmlsdGVyRmllbGRzKG5vZGUsIGl0ZW0pLFxuICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgaWQ6IGl0ZW1cbiAgICB9KSk7XG4gIH1cblxuICByZXNldEZpbHRlcnMoKSB7XG4gICAgdGhpcy5maWVsZEZpbHRlcnMoKTtcbiAgfVxuXG4gIHVwZGF0ZUdyaWQoZGF0YTogSW5ib3hJdGVtW10pOiB2b2lkIHtcbiAgICB0aGlzLmVtcHR5U3RhdGUgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUoZGF0YSA/IGRhdGEubGVuZ3RoIDogLTEsIHVuZGVmaW5lZCwgJ2ljX25vLWZpbGUuc3ZnJyk7XG5cbiAgICBpZiAodGhpcy5lb0dyaWQgJiYgdGhpcy5lb0dyaWQuaXNSZWFkeSkge1xuICAgICAgcmV0dXJuIHRoaXMuZW9HcmlkLnVwZGF0ZVJvd0RhdGEoZGF0YSk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldEZpbHRlcnMoKTtcblxuICAgIGxldCBjb2xEZWZzOiBDb2xEZWZbXSA9IFt7XG4gICAgICBoZWFkZXJOYW1lOiAnJyxcbiAgICAgIGZpZWxkOiAnX19jdXN0b20nLFxuICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLmNlbGxSZW5kZXJlcixcbiAgICAgIGZpbHRlcjogZmFsc2VcbiAgICAgIC8vIGNlbGxSZW5kZXJlckZyYW1ld29yazogSW5ib3hSZW5kZXJlckNvbXBvbmVudFxuICAgIH1dO1xuXG4gICAgdGhpcy5zb3J0RmllbGRzID0gW1xuICAgICAge1xuICAgICAgICBmaWVsZDogJ3JlY2VpdmVkJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3guc29ydC5kYXRlJyksIHNvcnQ6IG51bGwsXG4gICAgICAgIHZhbHVlR2V0dGVyOiAocCkgPT4gKHAuZGF0YVtwLmNvbERlZi5maWVsZF0gfHwgJycpLm1hdGNoKC9cXCtcXGRcXGQ6XFxkXFxkLykgPyBuZXcgRGF0ZShwLmRhdGFbcC5jb2xEZWYuZmllbGRdKS50b0lTT1N0cmluZygpIDogcC5kYXRhW3AuY29sRGVmLmZpZWxkXVxuICAgICAgfSxcbiAgICAgIHtmaWVsZDogJ3RpdGxlJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3guc29ydC50aXRsZScpLCBzb3J0OiBudWxsfSxcbiAgICAgIHtmaWVsZDogJ2Rlc2NyaXB0aW9uJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3guc29ydC5kZXNjcmlwdGlvbicpLCBzb3J0OiBudWxsfVxuICAgIF07XG5cbiAgICBsZXQgc29ydENvbERlZnMgPSBDdXN0b21Tb3J0Q29tcG9uZW50LnNvcnRDb2xEZWZzKHRoaXMuc29ydEZpZWxkcyk7XG5cbiAgICB0aGlzLmdyaWRPcHRpb25zID0ge1xuICAgICAgY29udGV4dDoge2NvdW50OiBkYXRhLmxlbmd0aH0sXG4gICAgICByb3dEYXRhOiBkYXRhLFxuICAgICAgY29sdW1uRGVmczogY29sRGVmcy5jb25jYXQoc29ydENvbERlZnMpLFxuICAgICAgcm93QnVmZmVyOiAyMCxcbiAgICAgIHJvd0hlaWdodDogODAsXG4gICAgICByb3dTZWxlY3Rpb246ICdzaW5nbGUnXG4gICAgfTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcihwYXJhbXMpIHtcblxuICAgIGxldCBsYWJlbCA9ICcnO1xuICAgIGlmIChPYmplY3Qua2V5cyhJbmJveFR5cGVzKS5pbmNsdWRlcyhwYXJhbXMuZGF0YS50eXBlKSkge1xuICAgICAgbGFiZWwgPSBwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudChgZW8uaW5ib3guJHtwYXJhbXMuZGF0YS50eXBlfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHVybCA9IGBhc3NldHMvX2RlZmF1bHQvc3ZnL2ljXyR7SW5ib3hUeXBlc1twYXJhbXMuZGF0YS50eXBlXX0uc3ZnYDtcblxuICAgIGxldCBpY29uID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdpY29uJywgcGFyYW1zLCB7dmFsdWU6IHt1cmwsIGxhYmVsfX0pO1xuICAgIGxldCBzaG9ydERhdGUgPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2RhdGVUaW1lJywgcGFyYW1zLCB7dmFsdWU6IHBhcmFtcy5kYXRhLnJlY2VpdmVkLCBwYXR0ZXJuOiAnZW9TaG9ydERhdGUnfSk7XG4gICAgbGV0IHNob3J0VGltZSA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignZGF0ZVRpbWUnLCBwYXJhbXMsIHt2YWx1ZTogcGFyYW1zLmRhdGEucmVjZWl2ZWQsIHBhdHRlcm46ICdlb1Nob3J0VGltZSd9KTtcbiAgICBsZXQgZHVldGltZSA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignZGF0ZVRpbWUnLCBwYXJhbXMsIHt2YWx1ZTogcGFyYW1zLmRhdGEuZHVldGltZX0pO1xuICAgIGNvbnN0IHRpdGxlQ2xhc3MgPSBwYXJhbXMuZGF0YS5hY2NlcHRlZCA/ICd0aXRsZScgOiAndGl0bGUtYm9sZCc7XG5cbiAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW0ke3BhcmFtcy5kYXRhLmZvbGRlciA/ICcgZm9sZGVyJyA6ICcnfVwiIHVuc2VsZWN0YWJsZT5cbiAgICAgICAgICAgICAgJHtpY29ufVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdjb250ZW50Jz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPScke3RpdGxlQ2xhc3N9Jz4ke3BhcmFtcy5kYXRhLnRpdGxlIHx8ICcnfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2Rlc2NyaXB0aW9uJz4ke3BhcmFtcy5kYXRhLmRlc2NyaXB0aW9uIHx8ICcnfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J25vdGVzJHtwYXJhbXMuZGF0YS5pc092ZXJkdWUoKSA/ICcgcGFzdER1ZScgOiAnJ30nPlxuICAgICAgICAgICAgICAgICAgJHtwYXJhbXMuZGF0YS5kdWV0aW1lID8gJzxzcGFuIGNsYXNzPVwicGVyaW9kXCI+JyArIGR1ZXRpbWUgKyAnPC9zcGFuPicgOiAnJ31cbiAgICAgICAgICAgICAgICAgICR7cGFyYW1zLmRhdGEuaXNkZXB1dHkgPyAnPHNwYW4+JyArIHBhcmFtcy5jb250ZXh0LnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5pdGVtLm5vdGUuYWJzZW5jZScpICsgJzwvc3Bhbj4nIDogJyd9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWV0YVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+JHtzaG9ydERhdGV9PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj4ke3Nob3J0VGltZX08L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIGA7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlZnJlc2hHcmlkKCk7XG4gICAgdGhpcy5pbmJveFNlcnZpY2VcbiAgICAgIC5pbmJveEl0ZW1zR3JpZERhdGEkXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IEluYm94SXRlbVtdKSA9PiB7XG5cbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGRhdGE7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh0aGlzLmdyaWREYXRhKTtcblxuICAgICAgICBjb25zdCBsYXN0SW5ib3hJdGVtSUQgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5TGFzdEl0ZW1JRCk7XG4gICAgICAgIGlmIChsYXN0SW5ib3hJdGVtSUQgJiYgdGhpcy5ncmlkRGF0YS5maW5kKGkgPT4gaS5pZCA9PT0gbGFzdEluYm94SXRlbUlEKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0Rmlyc3QgPSBmYWxzZTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZW9HcmlkLnNlbGVjdFJvdyhsYXN0SW5ib3hJdGVtSUQpLCA1MDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gIH1cbn1cbiIsIjx5dmMtc3BsaXQtdmlldyBbbGF5b3V0U2V0dGluZ3NJRF09XCInaW5ib3guc3RhdGUnXCI+XG4gIDwhLS0gbGlzdCAtLT5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCIzMFwiPlxuICAgIDxlby1saXN0LWNvbnRhaW5lciAjZW9MaXN0IFthcHBseVNlbGVjdGlvbl09XCJ7b3V0OiBpbmJveFNlbGVjdGlvbklkfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlclwiPlxuXG4gICAgICAgIDxlby1pY29uIGNsYXNzPVwiZW8taGVhZGVyLWljb25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19pbmJveC5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCIgdHJhbnNsYXRlPmVvLmluYm94Lmxpc3QudGl0bGU8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItYWN0aW9uc1wiPlxuICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIHJlZnJlc2gtYnV0dG9uXCIgW25nQ2xhc3NdPVwie2luYm94Q2hhbmdlZDogaW5ib3hDaGFuZ2VkfVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY0ZpbHRlci5yZXNldEZpbHRlcigpOyByZWZyZXNoR3JpZCgpXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiKCdlby5saXN0LnJlZnJlc2gnIHwgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cblxuICAgICAgICAgIDxlby1vdmVybGF5ICNvRmlsdGVyIGNsYXNzPVwib3ZlcmxheS1maWx0ZXJcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19maWx0ZXIuc3ZnJ1wiIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3QuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1maWx0ZXIgI2NGaWx0ZXIgKGNoYW5nZSk9XCJjRmlsdGVyLnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZFN1YmplY3QsICRldmVudClcIlxuICAgICAgICAgICAgICAoYWN0aXZlKT1cIm9GaWx0ZXIub25BY3RpdmVDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPGVvLXRleHQtZmlsdGVyIFt0aXRsZV09XCInZW8uaW5ib3guZmlsdGVyLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFtmaWx0ZXJQYXJhbXNdPVwiZGVmYXVsdEZpbHRlclBhcmFtc1wiXG4gICAgICAgICAgICAgICAgW2lkXT1cIidpbmJveC50ZXh0J1wiIFttYXRjaEZpZWxkc109XCJbJ3RpdGxlJywnZGVzY3JpcHRpb24nLCdpZCddXCIgW2VuYWJsZVNhdmVdPVwidHJ1ZVwiPjwvZW8tdGV4dC1maWx0ZXI+XG4gICAgICAgICAgICAgIDxlby1zZXQtZmlsdGVyIGNsYXNzPVwidHlwZS1maWx0ZXJzXCIgW29wZXJhdG9yXT1cIidPUidcIiBbaWRdPVwiJ2luYm94LnR5cGUnXCIgW2ZpbHRlclBhcmFtc109XCJkZWZhdWx0RmlsdGVyUGFyYW1zXCIgW29wdGlvbnNdPVwidHlwZUZpbHRlckZpZWxkc1wiPjwvZW8tc2V0LWZpbHRlcj5cbiAgICAgICAgICAgICAgPGVvLXNldC1maWx0ZXIgY2xhc3M9XCJpbmJveC1maWx0ZXJzXCIgW29wZXJhdG9yXT1cIidBTkQnXCIgW2lkXT1cIidpbmJveC5zZXQnXCIgW2ZpbHRlclBhcmFtc109XCJkZWZhdWx0RmlsdGVyUGFyYW1zXCIgW29wdGlvbnNdPVwiaW5ib3hGaWx0ZXJGaWVsZHNcIj48L2VvLXNldC1maWx0ZXI+XG4gICAgICAgICAgICA8L2VvLWN1c3RvbS1maWx0ZXI+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29Tb3J0IGNsYXNzPVwib3ZlcmxheS1zb3J0XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc29ydC5zdmcnXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3Quc29ydCcgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgIDxlby1jdXN0b20tc29ydCAjY1NvcnQgW2lkXT1cIidpbmJveC5zb3J0J1wiIChjaGFuZ2UpPVwiY1NvcnQudXBkYXRlR3JpZChlb0xpc3QuZW9HcmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFjdGl2ZSk9XCJvU29ydC5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiIFtzb3J0RmllbGRzXT1cInNvcnRGaWVsZHNcIj48L2VvLWN1c3RvbS1zb3J0PlxuICAgICAgICAgIDwvZW8tb3ZlcmxheT5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImVvLWJvZHlcIj5cbiAgICAgICAgPGVvLWdyaWQgI2VvR3JpZCAqbmdJZj1cImdyaWRPcHRpb25zPy5yb3dEYXRhXCIgW2dyaWRPcHRpb25zXT1cImdyaWRPcHRpb25zXCIgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgW3Nob3dIZWFkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dGb290ZXJdPVwidHJ1ZVwiIFtzZWxlY3RGaXJzdF09XCJzZWxlY3RGaXJzdFwiIFtvcHRpb25zXT1cIntmaWx0ZXJBY3RpdmU6IG9GaWx0ZXIuYWN0aXZlfVwiXG4gICAgICAgICAgKGVvR3JpZENvdW50Q2hhbmdlZCk9XCJlb0xpc3Qub25Db3VudENoYW5nZWQoJGV2ZW50KTtvbkNvdW50Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZW9HcmlkU2VsZWN0aW9uQ2hhbmdlZCk9XCJlb0xpc3Qub25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChlb0dyaWRGb2N1c0NoYW5nZWQpPVwiZW9MaXN0Lm9uRm9jdXNDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICA8ZW8tdG90YWwtY291bnQgW2dyaWRDb3VudF09XCJlb0xpc3QuZ3JpZENvdW50XCIgW291dHNpZGVHcmlkXT1cImZhbHNlXCIgY2xhc3M9XCJmbGV4LXJvd1wiPjwvZW8tdG90YWwtY291bnQ+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHlcIj5cbiAgICAgICAgICAgIDxlby1lcnJvci1tZXNzYWdlXG4gICAgICAgICAgICAgIFtlbXB0eVN0YXRlXT1cIntpY29uOiAnaWNfaW5ib3guc3ZnJywgdGV4dDogb0ZpbHRlci5hY3RpdmUgPyAnZW8ubm8uZmlsdGVyLnJlc3VsdCcgOiAnZW8uaW5ib3gubGlzdC5lbXB0eSd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPGVvLXJlc2V0LWZpbHRlciBbaXNGaWx0ZXJBY3RpdmVdPVwib0ZpbHRlci5hY3RpdmVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY0ZpbHRlci5yZXNldEZpbHRlcigpO2NTb3J0LnJlc2V0KCk7cmVmcmVzaEdyaWQoKVwiPjwvZW8tcmVzZXQtZmlsdGVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZW8tZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tbGlzdC1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDwhLS0gaW5ib3ggZGV0YWlscyAtLT5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCIzMFwiPlxuICAgIDxlby1pbmJveC1kZXRhaWxzIFthcHBseVNlbGVjdGlvbl09XCJ7aW46IGluYm94U2VsZWN0aW9uSWQsIG91dDogaW5ib3hEbXNPYmplY3RTZWxlY3Rpb25JZH1cIlxuICAgICAgW2VtcHR5U3RhdGVdPVwiZW1wdHlTdGF0ZVwiIFtwbHVnaW5zXT1cIidpbmJveC1kZXRhaWxzLXRhYi5pbmJveCcgfCBwbHVnaW5zXCI+XG4gICAgPC9lby1pbmJveC1kZXRhaWxzPlxuICA8L25nLXRlbXBsYXRlPlxuICA8IS0tIG9iamVjdCBkZXRhaWxzIC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjQwXCI+XG4gICAgPGVvLW9iamVjdC1kZXRhaWxzIFthcHBseVNlbGVjdGlvbl09XCJ7aW46IGluYm94RG1zT2JqZWN0U2VsZWN0aW9uSWR9XCIgW2NhY2hlTGF5b3V0XT1cIidpbmJveC5zdGF0ZS5vYmplY3QtZGV0YWlscydcIlxuICAgIFtwbHVnaW5zXT1cIidvYmplY3QtZGV0YWlscy10YWIuaW5ib3gnIHwgcGx1Z2luc1wiPlxuICAgIDwvZW8tb2JqZWN0LWRldGFpbHM+XG4gIDwvbmctdGVtcGxhdGU+XG48L3l2Yy1zcGxpdC12aWV3PiJdfQ==
@@ -121,9 +121,9 @@ let NotificationsStateComponent = class NotificationsStateComponent {
121
121
  ];
122
122
  this.textFilterParams = { context: { defaultValue: '' } };
123
123
  this.sortFields = [
124
- { field: 'due', headerName: this.translate.instant('eo.notifications.sort.due'), sort: 'asc' },
125
- { field: 'info', headerName: this.translate.instant('eo.notifications.sort.title'), sort: 'asc' },
126
- { field: 'messagetype', headerName: this.translate.instant('eo.notifications.sort.type'), sort: 'asc' }
124
+ { field: 'due', headerName: this.translate.instant('eo.notifications.sort.due'), sort: null },
125
+ { field: 'info', headerName: this.translate.instant('eo.notifications.sort.title'), sort: null },
126
+ { field: 'messagetype', headerName: this.translate.instant('eo.notifications.sort.type'), sort: null }
127
127
  ];
128
128
  const sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
129
129
  this.gridOptions = {
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
224
224
  type: ViewChild,
225
225
  args: ['eoGrid']
226
226
  }] } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9ub3RpZmljYXRpb25zLXN0YXRlL25vdGlmaWNhdGlvbnMtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvbm90aWZpY2F0aW9ucy1zdGF0ZS9ub3RpZmljYXRpb25zLXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFxQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUVrQixVQUFVLEVBQzJCLEtBQUssRUFDbEUsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFLMUYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFDekcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkVBQTJFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVXRHLElBQU0sMkJBQTJCLEdBQWpDLE1BQU0sMkJBQTJCO0lBYXRDLFlBQW1CLFNBQTJCLEVBQ3JDLFNBQTJCLEVBQzNCLE1BQXFCLEVBQ3BCLGNBQXFDLEVBQ3JDLEtBQXdCLEVBQ3hCLE9BQXVCLEVBQ3ZCLFlBQTBCLEVBQzFCLFVBQXNCLEVBQ3RCLFlBQThCLEVBQy9CLFdBQXdCO1FBVGQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNw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QUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQW5OVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixnS0MxQnhDLHE0SUE4RUE7O0FEcERhLDJCQUEyQjtJQU52QyxZQUFZLEVBQUU7R0FNRiwyQkFBMkIsQ0FvTnZDOzsyRkFwTlksMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHdCQUF3Qjs4VkFlYixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbERlZiwgR3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJhY2tlbmRTZXJ2aWNlLCBEbXNPYmplY3QsXG4gIERtc1BhcmFtcywgRG1zU2VydmljZSwgRW5haW9FdmVudCxcbiAgRXZlbnRTZXJ2aWNlLCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVc2VyU2VydmljZSwgVXRpbHNcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtFbXB0eVN0YXRlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtFbXB0eVN0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge1NlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3RpdGxlL3BhZ2UtdGl0bGUuc2VydmljZSc7XG5pbXBvcnQge0N1c3RvbVNvcnRDb21wb25lbnR9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2V4dGVuc2lvbnMvY3VzdG9tLXNvcnQvY3VzdG9tLXNvcnQuY29tcG9uZW50JztcbmltcG9ydCB7U2V0RmlsdGVyQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2ZpbHRlci9zZXRGaWx0ZXJzL3NldC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7SVNldEZpbHRlcn0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZXh0ZW5zaW9ucy9maWx0ZXIvc2V0RmlsdGVycy9zZXQtZmlsdGVycy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtHcmlkQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0lOb3RpZmljYXRpb25TdGF0ZSwgSVJlc3VibWlzc2lvbiwgSVN1YnNjcmlwdGlvbn0gZnJvbSAnLi9ub3RpZmljYXRpb25zLXN0YXRlLmludGVyZmFjZSc7XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW5vdGlmaWNhdGlvbnMtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9ucy1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbnMtc3RhdGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50LCBPbkRlc3Ryb3kge1xuXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgc29ydEZpZWxkczogQ29sRGVmW107XG4gIHR5cGVGaWx0ZXJGaWVsZHM6IElTZXRGaWx0ZXJbXTtcbiAgb2JqZWN0VHlwZUZpbHRlckZpZWxkczogSVNldEZpbHRlcltdO1xuICBzZWxlY3RlZEl0ZW1zOiBEbXNPYmplY3RbXTtcbiAgZ3JpZERhdGE7XG4gIGVtcHR5U3RhdGU6IEVtcHR5U3RhdGUgPSBFbXB0eVN0YXRlU2VydmljZS5kZWZhdWx0RW1wdHlTdGF0ZSgpO1xuICB0ZXh0RmlsdGVyUGFyYW1zOiBhbnkgPSB7fTtcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBlb0dyaWQ6IEdyaWRDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzeXN0ZW06IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW1wdHk6IEVtcHR5U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZSh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5ub3RpZmljYXRpb25zLmxpc3QudGl0bGUnKSk7XG4gIH1cblxuICBoYXNQZW5kaW5nQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzaygpO1xuICB9XG5cbiAgZ2V0Tm90aWZpY2F0aW9uRGF0YSgpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAuZ2V0Tm90aWZpY2F0aW9ucygpXG4gICAgICAuc3Vic2NyaWJlKChbc3ViLCByZVN1Yl06IFtJU3Vic2NyaXB0aW9uW10sIElSZXN1Ym1pc3Npb25bXV0pID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IFsuLi5zdWIsIC4uLnJlU3ViXTtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGRhdGE7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh0aGlzLmdyaWREYXRhKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVmcmVzaEdyaWQoKSB7XG4gICAgdGhpcy5nZXROb3RpZmljYXRpb25EYXRhKCk7XG4gIH1cblxuICBwYXJzZURtc1BhcmFtcyhkYXRhKTogRG1zUGFyYW1zIHtcbiAgICByZXR1cm4gZGF0YSAmJiBkYXRhLnRhcmdldCA/IHsgaWQ6IGRhdGEudGFyZ2V0LmlkLCB0eXBlOiBkYXRhLnRhcmdldC50eXBlIH0gOiBudWxsO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIGNvbnN0IGZvY3VzZWQgPSB0aGlzLnNlbGVjdGlvbi5nZXRGb2N1cygpO1xuICAgIGlmIChmb2N1c2VkKSB7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnJlbW92ZU5vdGlmaWNhdGlvbnMoZm9jdXNlZC5pZCwgZm9jdXNlZC5tZXNzYWdldHlwZSlcbiAgICAgICAgLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRCwgZm9jdXNlZCkpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVN1YnNjcmlwdGlvbkFuZFJlc3VibWlzc2lvbnMoKXtcbiAgICBjb25zdCBmb2N1c2VkID0gdGhpcy5zZWxlY3Rpb24uZ2V0Rm9jdXMoKTtcbiAgICBpZiAoZm9jdXNlZCkge1xuICAgICAgdGhpcy5kbXNTZXJ2aWNlLmdldERtc09iamVjdChmb2N1c2VkLnRhcmdldC5pZCwgbnVsbCwgbnVsbCwgbnVsbCwgdHJ1ZSkuc3Vic2NyaWJlKGRtc09iamVjdCA9PiB7XG4gICAgICAgIHRoaXMuZG1zU2VydmljZS5yZW1vdmVSZXN1Ym1pc3Npb25zQnlJZChmb2N1c2VkLnRhcmdldC5pZCwgZG1zT2JqZWN0KS5waXBlKGNhdGNoRXJyb3IoVXRpbHMuY2F0Y2hTa2lwKGVyciA9PiBlcnIuc3RhdHVzID09PSA0MDQpKSkuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZG1zU2VydmljZS5yZW1vdmVTdWJzY3JpcHRpb25CeUlkKGRtc09iamVjdC5zdWJzY3JpcHRpb25zWzBdLmlkLCBkbXNPYmplY3QpLnBpcGUoY2F0Y2hFcnJvcihVdGlscy5jYXRjaFNraXAoZXJyID0+IGVyci5zdGF0dXMgPT09IDQwNCkpKS5zdWJzY3JpYmUoKVxuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9ERUxFVEVELCBmb2N1c2VkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXJzKHRoaXMuZ3JpZERhdGEpO1xuICB9XG5cbiAgdHlwZUZpbHRlcihkYXRhKSB7XG4gICAgY29uc3QgdW5pcXVlQnlUeXBlID0gU2V0RmlsdGVyQ29tcG9uZW50LnVuaXFCeShkYXRhLCAndGFyZ2V0LnR5cGUnLCB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlcygpKTtcbiAgICB0aGlzLnR5cGVGaWx0ZXJGaWVsZHMgPSB1bmlxdWVCeVR5cGUubWFwKCh0eXBlKSA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgIGxhYmVsOiB0eXBlLmxhYmVsLFxuICAgICAgdmFsdWU6IHRydWUsXG4gICAgICBmaWx0ZXI6IChub2RlKSA9PiBub2RlLmRhdGEudGFyZ2V0LnR5cGUgPT09IHR5cGUucW5hbWUsXG4gICAgICBpZDogdHlwZS5xbmFtZVxuICAgIH0pKS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJykpO1xuICB9XG5cbiAgb2JqZWN0VHlwZUZpbHRlcihkYXRhKSB7XG4gICAgY29uc3QgdW5pcXVlQnlNZXNzYWdlVHlwZTogSU5vdGlmaWNhdGlvblN0YXRlW10gPSBTZXRGaWx0ZXJDb21wb25lbnQudW5pcUJ5UHJvcGVydHkoZGF0YSwgJ21lc3NhZ2V0eXBlJyk7XG4gICAgdGhpcy5vYmplY3RUeXBlRmlsdGVyRmllbGRzID0gdW5pcXVlQnlNZXNzYWdlVHlwZS5tYXAodHlwZSA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5ub3RpZmljYXRpb25zLmZpbHRlci4ke3R5cGUubWVzc2FnZXR5cGUudG9Mb3dlckNhc2UoKX0ubGFiZWxgKSxcbiAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgZmlsdGVyOiAobm9kZSkgPT4gbm9kZS5kYXRhLm1lc3NhZ2V0eXBlID09PSB0eXBlLm1lc3NhZ2V0eXBlLFxuICAgICAgaWQ6IHR5cGUubWVzc2FnZXR5cGVcbiAgICB9KSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdsYWJlbCcpKTtcbiAgfVxuXG4gIHR5cGVGaWx0ZXJzKGRhdGEpIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXIoZGF0YSk7XG4gICAgdGhpcy5vYmplY3RUeXBlRmlsdGVyKGRhdGEpO1xuICB9XG5cbiAgdXBkYXRlR3JpZChkYXRhOiBJTm90aWZpY2F0aW9uU3RhdGUgfCBhbnkpIHtcbiAgICB0aGlzLmVtcHR5U3RhdGUgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUoZGF0YSA/IGRhdGEubGVuZ3RoIDogLTEpO1xuXG4gICAgaWYgKHRoaXMuZW9HcmlkICYmIHRoaXMuZW9HcmlkLmlzUmVhZHkpIHtcbiAgICAgIHRoaXMuZW9HcmlkLnVwZGF0ZVJvd0RhdGEoZGF0YSk7XG4gICAgICByZXR1cm4gdGhpcy5yZXNldEZpbHRlcnMoKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc2V0RmlsdGVycygpO1xuXG4gICAgY29uc3QgY29sRGVmczogQ29sRGVmW10gPSBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgICBmaWVsZDogJ19fY3VzdG9tJyxcbiAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLmNlbGxSZW5kZXJlcixcbiAgICAgICAgZmlsdGVyOiBmYWxzZVxuICAgICAgfV07XG5cbiAgICB0aGlzLnRleHRGaWx0ZXJQYXJhbXMgPSB7IGNvbnRleHQ6IHsgZGVmYXVsdFZhbHVlOiAnJyB9IH07XG4gICAgdGhpcy5zb3J0RmllbGRzID0gW1xuICAgICAgeyBmaWVsZDogJ2R1ZScsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLm5vdGlmaWNhdGlvbnMuc29ydC5kdWUnKSwgc29ydDogJ2FzYycgfSxcbiAgICAgIHsgZmllbGQ6ICdpbmZvJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ubm90aWZpY2F0aW9ucy5zb3J0LnRpdGxlJyksIHNvcnQ6ICdhc2MnIH0sXG4gICAgICB7IGZpZWxkOiAnbWVzc2FnZXR5cGUnLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5ub3RpZmljYXRpb25zLnNvcnQudHlwZScpLCBzb3J0OiAnYXNjJyB9XG4gICAgXTtcblxuICAgIGNvbnN0IHNvcnRDb2xEZWZzID0gQ3VzdG9tU29ydENvbXBvbmVudC5zb3J0Q29sRGVmcyh0aGlzLnNvcnRGaWVsZHMpO1xuICAgIHRoaXMuZ3JpZE9wdGlvbnMgPSB7XG4gICAgICBjb250ZXh0OiB7IGNvdW50OiBkYXRhLmxlbmd0aCB9LFxuICAgICAgcm93RGF0YTogZGF0YSxcbiAgICAgIGNvbHVtbkRlZnM6IGNvbERlZnMuY29uY2F0KHNvcnRDb2xEZWZzKSxcbiAgICAgIHJvd0J1ZmZlcjogMjAsXG4gICAgICByb3dIZWlnaHQ6IDgwXG4gICAgfTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcihwYXJhbXMpIHtcblxuICAgIGNvbnN0IGljb24gPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2ljb24nLCBwYXJhbXMsIHtcbiAgICAgIHZhbHVlOiB7XG4gICAgICAgIHVybDogYGFzc2V0cy9fZGVmYXVsdC9zdmcvaWNfJHtwYXJhbXMuZGF0YS5tZXNzYWdldHlwZS50b0xvd2VyQ2FzZSgpfS5zdmdgLFxuICAgICAgICBsYWJlbDogcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoYGVvLm5vdGlmaWNhdGlvbnMuZmlsdGVyLiR7cGFyYW1zLmRhdGEubWVzc2FnZXR5cGUudG9Mb3dlckNhc2UoKX0ubGFiZWxgKVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgZm9sZGVyID0gcGFyYW1zLmRhdGEudGFyZ2V0LmlzZm9sZGVyID8gJ2ZvbGRlcicgOiAnJztcbiAgICBjb25zdCBjcmVhdGVkVGltZSA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignZGF0ZVRpbWUnLCBwYXJhbXMsIHsgdmFsdWU6IHBhcmFtcy5kYXRhLmR1ZSB9KTtcblxuICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSAke2ZvbGRlcn1cIiBtZXNzYWdldHlwZT1cIiR7cGFyYW1zLmRhdGEubWVzc2FnZXR5cGV9XCIgdW5zZWxlY3RhYmxlPlxuICAgICAgICAgICAgICAke2ljb259XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+JHtwYXJhbXMuZGF0YS5pbmZvIHx8ICcnfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRhXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgJHtwYXJhbXMuZGF0YS50YXJnZXQuZGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2Rlc2NyaXB0aW9uIGRhdGUnPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcmlvZFwiPiR7Y3JlYXRlZFRpbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+YDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVmcmVzaEdyaWQoKTtcbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVEKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgbGV0IHJlbW92ZWRFbnRyaWVzID0gW107XG4gICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaCgoZW50cnksIGkpID0+IHtcbiAgICAgICAgICBpZiAoZW50cnkudGFyZ2V0LmlkID09PSBldmVudC5kYXRhLmlkKSB7XG4gICAgICAgICAgICBpZiAoZW50cnkuc3Vic2NyaWJlZGFjdGlvbnMpIHsvLyBpZiBzdWJzY3JpcHRpb24gZW50cnlcbiAgICAgICAgICAgICAgaWYgKCFldmVudC5kYXRhLnN1YnNjcmlwdGlvbnMuZmluZChzID0+IHMuaWQgPT09IGVudHJ5LmlkKSkge1xuICAgICAgICAgICAgICAgIHJlbW92ZWRFbnRyaWVzLnB1c2goZW50cnkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoIWV2ZW50LmRhdGEucmVzdWJtaXNzaW9ucy5maW5kKHMgPT4gcy5pZCA9PT0gZW50cnkuaWQpKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlZEVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBldmVudC5kYXRhLnJlc3VibWlzc2lvbnMuY29uY2F0KGV2ZW50LmRhdGEuc3Vic2NyaXB0aW9ucykuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMuZ3JpZERhdGEuZmluZChnRCA9PiBnRC5pZCA9PT0gaXRlbS5pZCk7XG4gICAgICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICAgICAgaXRlbS50YXJnZXQgPSB7XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBldmVudC5kYXRhLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICBpZDogZXZlbnQuZGF0YS5pZCxcbiAgICAgICAgICAgICAgaXNmb2xkZXI6IGV2ZW50LmRhdGEuaXNmb2xkZXIsXG4gICAgICAgICAgICAgIHRpdGxlOiBldmVudC5kYXRhLnRpdGxlLFxuICAgICAgICAgICAgICB0eXBlOiBldmVudC5kYXRhLnR5cGVOYW1lXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5ncmlkRGF0YS5wdXNoKGl0ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEgPSB0aGlzLmdyaWREYXRhLmZpbHRlcihlbnRyeSA9PiAhcmVtb3ZlZEVudHJpZXMuZmluZChyRW50cnkgPT4gckVudHJ5LmlkID09PSBlbnRyeS5pZCkpO1xuICAgICAgICBpZiAodGhpcy5lb0dyaWQgJiYgdGhpcy5lb0dyaWQuaXNSZWFkeSkge1xuICAgICAgICAgIHRoaXMuZW9HcmlkLnVwZGF0ZVJvd0RhdGEodGhpcy5ncmlkRGF0YSk7XG4gICAgICAgICAgdGhpcy5lb0dyaWQuc2VsZWN0Um93KHRoaXMuZ3JpZERhdGEubGVuZ3RoIC0gMSwgW3RoaXMuZ3JpZERhdGEubGVuZ3RoIC0gMV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX0RFTEVURUQpXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZW9HcmlkKSB7XG4gICAgICAgICAgdGhpcy5lb0dyaWQudXBkYXRlUm93cyh0aGlzLmJhY2tlbmQudXBkYXRlKFtyZXMuZGF0YV0sIFt7IGlkOiByZXMuZGF0YS5pZCB9XSkpO1xuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgfVxufVxuIiwiPHl2Yy1zcGxpdC12aWV3IFtsYXlvdXRTZXR0aW5nc0lEXT1cIidub3RpZmljYXRpb24uc3RhdGUnXCI+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMjVcIj48ZW8tbGlzdC1jb250YWluZXIgI2VvTGlzdCBbYXBwbHlTZWxlY3Rpb25dPVwie31cIlxuICAgICAgW3BhcnNlRG1zUGFyYW1zXT1cInBhcnNlRG1zUGFyYW1zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyXCI+XG4gICAgICAgIDxlby1pY29uIGNsYXNzPVwiZW8taGVhZGVyLWljb25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19pbmJveC5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCIgdHJhbnNsYXRlPmVvLm5vdGlmaWNhdGlvbnMubGlzdC50aXRsZTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItc3ViLXRpdGxlXCIgdHJhbnNsYXRlPmVvLm5vdGlmaWNhdGlvbnMubGlzdC5zdWJ0aXRsZTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gcmVmcmVzaC1idXR0b25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNGaWx0ZXIucmVzZXRGaWx0ZXIoKTtjU29ydC5yZXNldCgpO3JlZnJlc2hHcmlkKClcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmxpc3QucmVmcmVzaCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29GaWx0ZXIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmlsdGVyLnN2ZydcIlxuICAgICAgICAgICAgY2xhc3M9XCJvdmVybGF5LWZpbHRlclwiIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3QuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1maWx0ZXIgI2NGaWx0ZXIgKGNoYW5nZSk9XCJjRmlsdGVyLnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3RpdmUpPVwib0ZpbHRlci5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8ZW8tdGV4dC1maWx0ZXIgW3RpdGxlXT1cIidlby5ub3RpZmljYXRpb25zLmZpbHRlci50aXRsZScgfCB0cmFuc2xhdGVcIiBbbWF0Y2hGaWVsZHNdPVwiWydpbmZvJ11cIlxuICAgICAgICAgICAgICAgIFtmaWx0ZXJQYXJhbXNdPVwidGV4dEZpbHRlclBhcmFtc1wiIFtpZF09XCInbm90aWZpY2F0aW9ucy50ZXh0J1wiPjwvZW8tdGV4dC1maWx0ZXI+XG5cbiAgICAgICAgICAgICAgPGVvLXNldC1maWx0ZXIgW29wZXJhdG9yXT1cIidPUidcIiBbdGl0bGVdPVwiJ2VvLm5vdGlmaWNhdGlvbnMuZmlsdGVyLnNlY3Rpb24udGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJvYmplY3RUeXBlRmlsdGVyRmllbGRzXCIgW2lkXT1cIidub3RpZmljYXRpb25zLm9iamVjdC50eXBlJ1wiPjwvZW8tc2V0LWZpbHRlcj5cblxuICAgICAgICAgICAgICA8ZW8tc2V0LWZpbHRlciBbb3BlcmF0b3JdPVwiJ09SJ1wiIFt0aXRsZV09XCInZW8ubm90aWZpY2F0aW9ucy5maWx0ZXIuc2VjdGlvbi5vYmplY3R0eXBlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidHlwZUZpbHRlckZpZWxkc1wiIFtpZF09XCInbm90aWZpY2F0aW9ucy50eXBlJ1wiPjwvZW8tc2V0LWZpbHRlcj5cbiAgICAgICAgICAgIDwvZW8tY3VzdG9tLWZpbHRlcj5cbiAgICAgICAgICA8L2VvLW92ZXJsYXk+XG5cbiAgICAgICAgICA8ZW8tb3ZlcmxheSAjb1NvcnQgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc29ydC5zdmcnXCIgY2xhc3M9XCJvdmVybGF5LXNvcnRcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCInZW8ubGlzdC5zb3J0JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1zb3J0ICNjU29ydCBbaWRdPVwiJ25vdGlmaWNhdGlvbnMuc29ydCdcIiAoY2hhbmdlKT1cImNTb3J0LnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3RpdmUpPVwib1NvcnQub25BY3RpdmVDaGFuZ2VkKCRldmVudClcIiBbc29ydEZpZWxkc109XCJzb3J0RmllbGRzXCI+PC9lby1jdXN0b20tc29ydD5cbiAgICAgICAgICA8L2VvLW92ZXJsYXk+XG5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBhY3Rpb25zLWJ1dHRvblwiIChjbGljayk9XCJlb0xpc3Quc2hvd0FjdGlvbnMoKVwiXG4gICAgICAgICAgICBbaWNvblRpdGxlXT1cIidlby5vYmplY3QuYWN0aW9ucy50aXRsZScgfCB0cmFuc2xhdGVcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19tb3JlLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1ib2R5XCI+XG4gICAgICAgIDxlby1ncmlkICNlb0dyaWQgW2dyaWRPcHRpb25zXT1cImdyaWRPcHRpb25zXCIgKm5nSWY9XCJncmlkT3B0aW9uc1wiIFtmdWxsV2lkdGhdPVwidHJ1ZVwiIFtzaG93SGVhZGVyXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIiAoZW9HcmlkQ291bnRDaGFuZ2VkKT1cImVvTGlzdC5vbkNvdW50Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZW9HcmlkQ29udGV4dE1lbnVDbGljayk9XCJlb0xpc3Qub25Db250ZXh0TWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAoZW9HcmlkU2VsZWN0aW9uQ2hhbmdlZCk9XCJlb0xpc3Qub25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChlb0dyaWREb3VibGVDbGljayk9XCJlb0xpc3Qub25Eb3VibGVDbGljaygkZXZlbnQpXCIgKGVvR3JpZEZvY3VzQ2hhbmdlZCk9XCJlb0xpc3Qub25Gb2N1c0NoYW5nZWQoJGV2ZW50KVwiPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgICAgPGVvLXRvdGFsLWNvdW50IFtncmlkQ291bnRdPVwiZW9MaXN0LmdyaWRDb3VudFwiIFtvdXRzaWRlR3JpZF09XCJmYWxzZVwiIGNsYXNzPVwiZmxleC1yb3dcIj48L2VvLXRvdGFsLWNvdW50PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX2luYm94LnN2ZycsIHRleHQ6IG9GaWx0ZXIuYWN0aXZlID8gJ2VvLm5vLmZpbHRlci5yZXN1bHQnIDogJ2VvLm5vdGlmaWNhdGlvbnMubGlzdC5lbXB0eSd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPGVvLXJlc2V0LWZpbHRlciBbaXNGaWx0ZXJBY3RpdmVdPVwib0ZpbHRlci5hY3RpdmVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY0ZpbHRlci5yZXNldEZpbHRlcigpO2NTb3J0LnJlc2V0KCk7cmVmcmVzaEdyaWQoKVwiPjwvZW8tcmVzZXQtZmlsdGVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZW8tZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tbGlzdC1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCI3NVwiPlxuICAgIDxlby1vYmplY3QtZGV0YWlscyBbYXBwbHlTZWxlY3Rpb25dPVwie31cIiBbcGFyc2VEbXNQYXJhbXNdPVwicGFyc2VEbXNQYXJhbXNcIlxuICAgICAgW2NhY2hlTGF5b3V0XT1cIidub3RpZmljYXRpb24uc3RhdGUub2JqZWN0LWRldGFpbHMnXCIgW2VtcHR5U3RhdGVdPVwiZW1wdHlTdGF0ZVwiIFtwbHVnaW5zXT1cIidvYmplY3QtZGV0YWlscy10YWIubm90aWZpY2F0aW9ucycgfCBwbHVnaW5zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JcIiAqbmdJZj1cImdyaWREYXRhPy5sZW5ndGhcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBzZWNvbmRhcnlcIiAoY2xpY2spPVwicmVtb3ZlKClcIiB0cmFuc2xhdGU+ZW8ubm90aWZpY2F0aW9ucy5kZXRhaWxzLml0ZW0uZ29uZS5yZW1vdmU8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBzZWNvbmRhcnlcIiAoY2xpY2spPVwicmVtb3ZlU3Vic2NyaXB0aW9uQW5kUmVzdWJtaXNzaW9ucygpXCJcbiAgICAgICAgICB0cmFuc2xhdGU+ZW8ubm90aWZpY2F0aW9ucy5kZXRhaWxzLml0ZW0uZ29uZS5yZW1vdmUuc3Vic2NyaXB0aW9uczwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9lby1vYmplY3QtZGV0YWlscz5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuPC95dmMtc3BsaXQtdmlldz5cbiJdfQ==
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9ub3RpZmljYXRpb25zLXN0YXRlL25vdGlmaWNhdGlvbnMtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvbm90aWZpY2F0aW9ucy1zdGF0ZS9ub3RpZmljYXRpb25zLXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFxQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUVrQixVQUFVLEVBQzJCLEtBQUssRUFDbEUsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFLMUYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFDekcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkVBQTJFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVXRHLElBQU0sMkJBQTJCLEdBQWpDLE1BQU0sMkJBQTJCO0lBYXRDLFlBQW1CLFNBQTJCLEVBQ3JDLFNBQTJCLEVBQzNCLE1BQXFCLEVBQ3BCLGNBQXFDLEVBQ3JDLEtBQXdCLEVBQ3hCLE9BQXVCLEVBQ3ZCLFlBQTBCLEVBQzFCLFVBQXNCLEVBQ3RCLFlBQThCLEVBQy9CLFdBQXdCO1FBVGQsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNw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QUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQW5OVSwyQkFBMkI7a0dBQTNCLDJCQUEyQixnS0MxQnhDLHE0SUE4RUE7O0FEcERhLDJCQUEyQjtJQU52QyxZQUFZLEVBQUU7R0FNRiwyQkFBMkIsQ0FvTnZDOzsyRkFwTlksMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLHdCQUF3Qjs4VkFlYixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbERlZiwgR3JpZE9wdGlvbnN9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJhY2tlbmRTZXJ2aWNlLCBEbXNPYmplY3QsXG4gIERtc1BhcmFtcywgRG1zU2VydmljZSwgRW5haW9FdmVudCxcbiAgRXZlbnRTZXJ2aWNlLCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVc2VyU2VydmljZSwgVXRpbHNcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtFbXB0eVN0YXRlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtFbXB0eVN0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc1NlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5pbXBvcnQge1NlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1BhZ2VUaXRsZVNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3RpdGxlL3BhZ2UtdGl0bGUuc2VydmljZSc7XG5pbXBvcnQge0N1c3RvbVNvcnRDb21wb25lbnR9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2V4dGVuc2lvbnMvY3VzdG9tLXNvcnQvY3VzdG9tLXNvcnQuY29tcG9uZW50JztcbmltcG9ydCB7U2V0RmlsdGVyQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2ZpbHRlci9zZXRGaWx0ZXJzL3NldC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7SVNldEZpbHRlcn0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZXh0ZW5zaW9ucy9maWx0ZXIvc2V0RmlsdGVycy9zZXQtZmlsdGVycy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtHcmlkQ29tcG9uZW50fSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQge0lOb3RpZmljYXRpb25TdGF0ZSwgSVJlc3VibWlzc2lvbiwgSVN1YnNjcmlwdGlvbn0gZnJvbSAnLi9ub3RpZmljYXRpb25zLXN0YXRlLmludGVyZmFjZSc7XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW5vdGlmaWNhdGlvbnMtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9ucy1zdGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbnMtc3RhdGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFBlbmRpbmdDaGFuZ2VzQ29tcG9uZW50LCBPbkRlc3Ryb3kge1xuXG4gIGdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucztcbiAgc29ydEZpZWxkczogQ29sRGVmW107XG4gIHR5cGVGaWx0ZXJGaWVsZHM6IElTZXRGaWx0ZXJbXTtcbiAgb2JqZWN0VHlwZUZpbHRlckZpZWxkczogSVNldEZpbHRlcltdO1xuICBzZWxlY3RlZEl0ZW1zOiBEbXNPYmplY3RbXTtcbiAgZ3JpZERhdGE7XG4gIGVtcHR5U3RhdGU6IEVtcHR5U3RhdGUgPSBFbXB0eVN0YXRlU2VydmljZS5kZWZhdWx0RW1wdHlTdGF0ZSgpO1xuICB0ZXh0RmlsdGVyUGFyYW1zOiBhbnkgPSB7fTtcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBlb0dyaWQ6IEdyaWRDb21wb25lbnQ7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzeXN0ZW06IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZW1wdHk6IEVtcHR5U3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSkge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZSh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5ub3RpZmljYXRpb25zLmxpc3QudGl0bGUnKSk7XG4gIH1cblxuICBoYXNQZW5kaW5nQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzaygpO1xuICB9XG5cbiAgZ2V0Tm90aWZpY2F0aW9uRGF0YSgpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAuZ2V0Tm90aWZpY2F0aW9ucygpXG4gICAgICAuc3Vic2NyaWJlKChbc3ViLCByZVN1Yl06IFtJU3Vic2NyaXB0aW9uW10sIElSZXN1Ym1pc3Npb25bXV0pID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IFsuLi5zdWIsIC4uLnJlU3ViXTtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGRhdGE7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh0aGlzLmdyaWREYXRhKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVmcmVzaEdyaWQoKSB7XG4gICAgdGhpcy5nZXROb3RpZmljYXRpb25EYXRhKCk7XG4gIH1cblxuICBwYXJzZURtc1BhcmFtcyhkYXRhKTogRG1zUGFyYW1zIHtcbiAgICByZXR1cm4gZGF0YSAmJiBkYXRhLnRhcmdldCA/IHsgaWQ6IGRhdGEudGFyZ2V0LmlkLCB0eXBlOiBkYXRhLnRhcmdldC50eXBlIH0gOiBudWxsO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIGNvbnN0IGZvY3VzZWQgPSB0aGlzLnNlbGVjdGlvbi5nZXRGb2N1cygpO1xuICAgIGlmIChmb2N1c2VkKSB7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnJlbW92ZU5vdGlmaWNhdGlvbnMoZm9jdXNlZC5pZCwgZm9jdXNlZC5tZXNzYWdldHlwZSlcbiAgICAgICAgLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfREVMRVRFRCwgZm9jdXNlZCkpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVN1YnNjcmlwdGlvbkFuZFJlc3VibWlzc2lvbnMoKXtcbiAgICBjb25zdCBmb2N1c2VkID0gdGhpcy5zZWxlY3Rpb24uZ2V0Rm9jdXMoKTtcbiAgICBpZiAoZm9jdXNlZCkge1xuICAgICAgdGhpcy5kbXNTZXJ2aWNlLmdldERtc09iamVjdChmb2N1c2VkLnRhcmdldC5pZCwgbnVsbCwgbnVsbCwgbnVsbCwgdHJ1ZSkuc3Vic2NyaWJlKGRtc09iamVjdCA9PiB7XG4gICAgICAgIHRoaXMuZG1zU2VydmljZS5yZW1vdmVSZXN1Ym1pc3Npb25zQnlJZChmb2N1c2VkLnRhcmdldC5pZCwgZG1zT2JqZWN0KS5waXBlKGNhdGNoRXJyb3IoVXRpbHMuY2F0Y2hTa2lwKGVyciA9PiBlcnIuc3RhdHVzID09PSA0MDQpKSkuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZG1zU2VydmljZS5yZW1vdmVTdWJzY3JpcHRpb25CeUlkKGRtc09iamVjdC5zdWJzY3JpcHRpb25zWzBdLmlkLCBkbXNPYmplY3QpLnBpcGUoY2F0Y2hFcnJvcihVdGlscy5jYXRjaFNraXAoZXJyID0+IGVyci5zdGF0dXMgPT09IDQwNCkpKS5zdWJzY3JpYmUoKVxuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9ERUxFVEVELCBmb2N1c2VkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXJzKHRoaXMuZ3JpZERhdGEpO1xuICB9XG5cbiAgdHlwZUZpbHRlcihkYXRhKSB7XG4gICAgY29uc3QgdW5pcXVlQnlUeXBlID0gU2V0RmlsdGVyQ29tcG9uZW50LnVuaXFCeShkYXRhLCAndGFyZ2V0LnR5cGUnLCB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlcygpKTtcbiAgICB0aGlzLnR5cGVGaWx0ZXJGaWVsZHMgPSB1bmlxdWVCeVR5cGUubWFwKCh0eXBlKSA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgIGxhYmVsOiB0eXBlLmxhYmVsLFxuICAgICAgdmFsdWU6IHRydWUsXG4gICAgICBmaWx0ZXI6IChub2RlKSA9PiBub2RlLmRhdGEudGFyZ2V0LnR5cGUgPT09IHR5cGUucW5hbWUsXG4gICAgICBpZDogdHlwZS5xbmFtZVxuICAgIH0pKS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJykpO1xuICB9XG5cbiAgb2JqZWN0VHlwZUZpbHRlcihkYXRhKSB7XG4gICAgY29uc3QgdW5pcXVlQnlNZXNzYWdlVHlwZTogSU5vdGlmaWNhdGlvblN0YXRlW10gPSBTZXRGaWx0ZXJDb21wb25lbnQudW5pcUJ5UHJvcGVydHkoZGF0YSwgJ21lc3NhZ2V0eXBlJyk7XG4gICAgdGhpcy5vYmplY3RUeXBlRmlsdGVyRmllbGRzID0gdW5pcXVlQnlNZXNzYWdlVHlwZS5tYXAodHlwZSA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGBlby5ub3RpZmljYXRpb25zLmZpbHRlci4ke3R5cGUubWVzc2FnZXR5cGUudG9Mb3dlckNhc2UoKX0ubGFiZWxgKSxcbiAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgZmlsdGVyOiAobm9kZSkgPT4gbm9kZS5kYXRhLm1lc3NhZ2V0eXBlID09PSB0eXBlLm1lc3NhZ2V0eXBlLFxuICAgICAgaWQ6IHR5cGUubWVzc2FnZXR5cGVcbiAgICB9KSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdsYWJlbCcpKTtcbiAgfVxuXG4gIHR5cGVGaWx0ZXJzKGRhdGEpIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXIoZGF0YSk7XG4gICAgdGhpcy5vYmplY3RUeXBlRmlsdGVyKGRhdGEpO1xuICB9XG5cbiAgdXBkYXRlR3JpZChkYXRhOiBJTm90aWZpY2F0aW9uU3RhdGUgfCBhbnkpIHtcbiAgICB0aGlzLmVtcHR5U3RhdGUgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUoZGF0YSA/IGRhdGEubGVuZ3RoIDogLTEpO1xuXG4gICAgaWYgKHRoaXMuZW9HcmlkICYmIHRoaXMuZW9HcmlkLmlzUmVhZHkpIHtcbiAgICAgIHRoaXMuZW9HcmlkLnVwZGF0ZVJvd0RhdGEoZGF0YSk7XG4gICAgICByZXR1cm4gdGhpcy5yZXNldEZpbHRlcnMoKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc2V0RmlsdGVycygpO1xuXG4gICAgY29uc3QgY29sRGVmczogQ29sRGVmW10gPSBbXG4gICAgICB7XG4gICAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgICBmaWVsZDogJ19fY3VzdG9tJyxcbiAgICAgICAgY2VsbFJlbmRlcmVyOiB0aGlzLmNlbGxSZW5kZXJlcixcbiAgICAgICAgZmlsdGVyOiBmYWxzZVxuICAgICAgfV07XG5cbiAgICB0aGlzLnRleHRGaWx0ZXJQYXJhbXMgPSB7IGNvbnRleHQ6IHsgZGVmYXVsdFZhbHVlOiAnJyB9IH07XG4gICAgdGhpcy5zb3J0RmllbGRzID0gW1xuICAgICAgeyBmaWVsZDogJ2R1ZScsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLm5vdGlmaWNhdGlvbnMuc29ydC5kdWUnKSwgc29ydDogbnVsbCB9LFxuICAgICAgeyBmaWVsZDogJ2luZm8nLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5ub3RpZmljYXRpb25zLnNvcnQudGl0bGUnKSwgc29ydDogbnVsbCB9LFxuICAgICAgeyBmaWVsZDogJ21lc3NhZ2V0eXBlJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ubm90aWZpY2F0aW9ucy5zb3J0LnR5cGUnKSwgc29ydDogbnVsbCB9XG4gICAgXTtcblxuICAgIGNvbnN0IHNvcnRDb2xEZWZzID0gQ3VzdG9tU29ydENvbXBvbmVudC5zb3J0Q29sRGVmcyh0aGlzLnNvcnRGaWVsZHMpO1xuICAgIHRoaXMuZ3JpZE9wdGlvbnMgPSB7XG4gICAgICBjb250ZXh0OiB7IGNvdW50OiBkYXRhLmxlbmd0aCB9LFxuICAgICAgcm93RGF0YTogZGF0YSxcbiAgICAgIGNvbHVtbkRlZnM6IGNvbERlZnMuY29uY2F0KHNvcnRDb2xEZWZzKSxcbiAgICAgIHJvd0J1ZmZlcjogMjAsXG4gICAgICByb3dIZWlnaHQ6IDgwXG4gICAgfTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcihwYXJhbXMpIHtcblxuICAgIGNvbnN0IGljb24gPSBwYXJhbXMuY29udGV4dC5jci5yZW5kZXIoJ2ljb24nLCBwYXJhbXMsIHtcbiAgICAgIHZhbHVlOiB7XG4gICAgICAgIHVybDogYGFzc2V0cy9fZGVmYXVsdC9zdmcvaWNfJHtwYXJhbXMuZGF0YS5tZXNzYWdldHlwZS50b0xvd2VyQ2FzZSgpfS5zdmdgLFxuICAgICAgICBsYWJlbDogcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoYGVvLm5vdGlmaWNhdGlvbnMuZmlsdGVyLiR7cGFyYW1zLmRhdGEubWVzc2FnZXR5cGUudG9Mb3dlckNhc2UoKX0ubGFiZWxgKVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgZm9sZGVyID0gcGFyYW1zLmRhdGEudGFyZ2V0LmlzZm9sZGVyID8gJ2ZvbGRlcicgOiAnJztcbiAgICBjb25zdCBjcmVhdGVkVGltZSA9IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcignZGF0ZVRpbWUnLCBwYXJhbXMsIHsgdmFsdWU6IHBhcmFtcy5kYXRhLmR1ZSB9KTtcblxuICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImxpc3QtaXRlbSAke2ZvbGRlcn1cIiBtZXNzYWdldHlwZT1cIiR7cGFyYW1zLmRhdGEubWVzc2FnZXR5cGV9XCIgdW5zZWxlY3RhYmxlPlxuICAgICAgICAgICAgICAke2ljb259XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+JHtwYXJhbXMuZGF0YS5pbmZvIHx8ICcnfTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRhXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgJHtwYXJhbXMuZGF0YS50YXJnZXQuZGVzY3JpcHRpb259XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2Rlc2NyaXB0aW9uIGRhdGUnPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcmlvZFwiPiR7Y3JlYXRlZFRpbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+YDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVmcmVzaEdyaWQoKTtcbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVEKVxuICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgbGV0IHJlbW92ZWRFbnRyaWVzID0gW107XG4gICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaCgoZW50cnksIGkpID0+IHtcbiAgICAgICAgICBpZiAoZW50cnkudGFyZ2V0LmlkID09PSBldmVudC5kYXRhLmlkKSB7XG4gICAgICAgICAgICBpZiAoZW50cnkuc3Vic2NyaWJlZGFjdGlvbnMpIHsvLyBpZiBzdWJzY3JpcHRpb24gZW50cnlcbiAgICAgICAgICAgICAgaWYgKCFldmVudC5kYXRhLnN1YnNjcmlwdGlvbnMuZmluZChzID0+IHMuaWQgPT09IGVudHJ5LmlkKSkge1xuICAgICAgICAgICAgICAgIHJlbW92ZWRFbnRyaWVzLnB1c2goZW50cnkpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoIWV2ZW50LmRhdGEucmVzdWJtaXNzaW9ucy5maW5kKHMgPT4gcy5pZCA9PT0gZW50cnkuaWQpKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlZEVudHJpZXMucHVzaChlbnRyeSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBldmVudC5kYXRhLnJlc3VibWlzc2lvbnMuY29uY2F0KGV2ZW50LmRhdGEuc3Vic2NyaXB0aW9ucykuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMuZ3JpZERhdGEuZmluZChnRCA9PiBnRC5pZCA9PT0gaXRlbS5pZCk7XG4gICAgICAgICAgaWYgKCFtYXRjaCkge1xuICAgICAgICAgICAgaXRlbS50YXJnZXQgPSB7XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBldmVudC5kYXRhLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICBpZDogZXZlbnQuZGF0YS5pZCxcbiAgICAgICAgICAgICAgaXNmb2xkZXI6IGV2ZW50LmRhdGEuaXNmb2xkZXIsXG4gICAgICAgICAgICAgIHRpdGxlOiBldmVudC5kYXRhLnRpdGxlLFxuICAgICAgICAgICAgICB0eXBlOiBldmVudC5kYXRhLnR5cGVOYW1lXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5ncmlkRGF0YS5wdXNoKGl0ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEgPSB0aGlzLmdyaWREYXRhLmZpbHRlcihlbnRyeSA9PiAhcmVtb3ZlZEVudHJpZXMuZmluZChyRW50cnkgPT4gckVudHJ5LmlkID09PSBlbnRyeS5pZCkpO1xuICAgICAgICBpZiAodGhpcy5lb0dyaWQgJiYgdGhpcy5lb0dyaWQuaXNSZWFkeSkge1xuICAgICAgICAgIHRoaXMuZW9HcmlkLnVwZGF0ZVJvd0RhdGEodGhpcy5ncmlkRGF0YSk7XG4gICAgICAgICAgdGhpcy5lb0dyaWQuc2VsZWN0Um93KHRoaXMuZ3JpZERhdGEubGVuZ3RoIC0gMSwgW3RoaXMuZ3JpZERhdGEubGVuZ3RoIC0gMV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5ETVNfT0JKRUNUX0RFTEVURUQpXG4gICAgICAucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZW9HcmlkKSB7XG4gICAgICAgICAgdGhpcy5lb0dyaWQudXBkYXRlUm93cyh0aGlzLmJhY2tlbmQudXBkYXRlKFtyZXMuZGF0YV0sIFt7IGlkOiByZXMuZGF0YS5pZCB9XSkpO1xuICAgICAgICB9XG4gICAgICB9KVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgfVxufVxuIiwiPHl2Yy1zcGxpdC12aWV3IFtsYXlvdXRTZXR0aW5nc0lEXT1cIidub3RpZmljYXRpb24uc3RhdGUnXCI+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMjVcIj48ZW8tbGlzdC1jb250YWluZXIgI2VvTGlzdCBbYXBwbHlTZWxlY3Rpb25dPVwie31cIlxuICAgICAgW3BhcnNlRG1zUGFyYW1zXT1cInBhcnNlRG1zUGFyYW1zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyXCI+XG4gICAgICAgIDxlby1pY29uIGNsYXNzPVwiZW8taGVhZGVyLWljb25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19pbmJveC5zdmcnXCI+PC9lby1pY29uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCIgdHJhbnNsYXRlPmVvLm5vdGlmaWNhdGlvbnMubGlzdC50aXRsZTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItc3ViLXRpdGxlXCIgdHJhbnNsYXRlPmVvLm5vdGlmaWNhdGlvbnMubGlzdC5zdWJ0aXRsZTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJidXR0b24gcmVmcmVzaC1idXR0b25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19yZWZyZXNoLnN2ZydcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNGaWx0ZXIucmVzZXRGaWx0ZXIoKTtjU29ydC5yZXNldCgpO3JlZnJlc2hHcmlkKClcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmxpc3QucmVmcmVzaCcgfCB0cmFuc2xhdGUpXCI+PC9lby1pY29uPlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29GaWx0ZXIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfZmlsdGVyLnN2ZydcIlxuICAgICAgICAgICAgY2xhc3M9XCJvdmVybGF5LWZpbHRlclwiIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3QuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1maWx0ZXIgI2NGaWx0ZXIgKGNoYW5nZSk9XCJjRmlsdGVyLnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3RpdmUpPVwib0ZpbHRlci5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8ZW8tdGV4dC1maWx0ZXIgW3RpdGxlXT1cIidlby5ub3RpZmljYXRpb25zLmZpbHRlci50aXRsZScgfCB0cmFuc2xhdGVcIiBbbWF0Y2hGaWVsZHNdPVwiWydpbmZvJ11cIlxuICAgICAgICAgICAgICAgIFtmaWx0ZXJQYXJhbXNdPVwidGV4dEZpbHRlclBhcmFtc1wiIFtpZF09XCInbm90aWZpY2F0aW9ucy50ZXh0J1wiPjwvZW8tdGV4dC1maWx0ZXI+XG5cbiAgICAgICAgICAgICAgPGVvLXNldC1maWx0ZXIgW29wZXJhdG9yXT1cIidPUidcIiBbdGl0bGVdPVwiJ2VvLm5vdGlmaWNhdGlvbnMuZmlsdGVyLnNlY3Rpb24udGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJvYmplY3RUeXBlRmlsdGVyRmllbGRzXCIgW2lkXT1cIidub3RpZmljYXRpb25zLm9iamVjdC50eXBlJ1wiPjwvZW8tc2V0LWZpbHRlcj5cblxuICAgICAgICAgICAgICA8ZW8tc2V0LWZpbHRlciBbb3BlcmF0b3JdPVwiJ09SJ1wiIFt0aXRsZV09XCInZW8ubm90aWZpY2F0aW9ucy5maWx0ZXIuc2VjdGlvbi5vYmplY3R0eXBlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidHlwZUZpbHRlckZpZWxkc1wiIFtpZF09XCInbm90aWZpY2F0aW9ucy50eXBlJ1wiPjwvZW8tc2V0LWZpbHRlcj5cbiAgICAgICAgICAgIDwvZW8tY3VzdG9tLWZpbHRlcj5cbiAgICAgICAgICA8L2VvLW92ZXJsYXk+XG5cbiAgICAgICAgICA8ZW8tb3ZlcmxheSAjb1NvcnQgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc29ydC5zdmcnXCIgY2xhc3M9XCJvdmVybGF5LXNvcnRcIlxuICAgICAgICAgICAgW2ljb25UaXRsZV09XCInZW8ubGlzdC5zb3J0JyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1zb3J0ICNjU29ydCBbaWRdPVwiJ25vdGlmaWNhdGlvbnMuc29ydCdcIiAoY2hhbmdlKT1cImNTb3J0LnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3RpdmUpPVwib1NvcnQub25BY3RpdmVDaGFuZ2VkKCRldmVudClcIiBbc29ydEZpZWxkc109XCJzb3J0RmllbGRzXCI+PC9lby1jdXN0b20tc29ydD5cbiAgICAgICAgICA8L2VvLW92ZXJsYXk+XG5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBhY3Rpb25zLWJ1dHRvblwiIChjbGljayk9XCJlb0xpc3Quc2hvd0FjdGlvbnMoKVwiXG4gICAgICAgICAgICBbaWNvblRpdGxlXT1cIidlby5vYmplY3QuYWN0aW9ucy50aXRsZScgfCB0cmFuc2xhdGVcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19tb3JlLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1ib2R5XCI+XG4gICAgICAgIDxlby1ncmlkICNlb0dyaWQgW2dyaWRPcHRpb25zXT1cImdyaWRPcHRpb25zXCIgKm5nSWY9XCJncmlkT3B0aW9uc1wiIFtmdWxsV2lkdGhdPVwidHJ1ZVwiIFtzaG93SGVhZGVyXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIiAoZW9HcmlkQ291bnRDaGFuZ2VkKT1cImVvTGlzdC5vbkNvdW50Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoZW9HcmlkQ29udGV4dE1lbnVDbGljayk9XCJlb0xpc3Qub25Db250ZXh0TWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAoZW9HcmlkU2VsZWN0aW9uQ2hhbmdlZCk9XCJlb0xpc3Qub25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIChlb0dyaWREb3VibGVDbGljayk9XCJlb0xpc3Qub25Eb3VibGVDbGljaygkZXZlbnQpXCIgKGVvR3JpZEZvY3VzQ2hhbmdlZCk9XCJlb0xpc3Qub25Gb2N1c0NoYW5nZWQoJGV2ZW50KVwiPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgICAgPGVvLXRvdGFsLWNvdW50IFtncmlkQ291bnRdPVwiZW9MaXN0LmdyaWRDb3VudFwiIFtvdXRzaWRlR3JpZF09XCJmYWxzZVwiIGNsYXNzPVwiZmxleC1yb3dcIj48L2VvLXRvdGFsLWNvdW50PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX2luYm94LnN2ZycsIHRleHQ6IG9GaWx0ZXIuYWN0aXZlID8gJ2VvLm5vLmZpbHRlci5yZXN1bHQnIDogJ2VvLm5vdGlmaWNhdGlvbnMubGlzdC5lbXB0eSd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPGVvLXJlc2V0LWZpbHRlciBbaXNGaWx0ZXJBY3RpdmVdPVwib0ZpbHRlci5hY3RpdmVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY0ZpbHRlci5yZXNldEZpbHRlcigpO2NTb3J0LnJlc2V0KCk7cmVmcmVzaEdyaWQoKVwiPjwvZW8tcmVzZXQtZmlsdGVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZW8tZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tbGlzdC1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCI3NVwiPlxuICAgIDxlby1vYmplY3QtZGV0YWlscyBbYXBwbHlTZWxlY3Rpb25dPVwie31cIiBbcGFyc2VEbXNQYXJhbXNdPVwicGFyc2VEbXNQYXJhbXNcIlxuICAgICAgW2NhY2hlTGF5b3V0XT1cIidub3RpZmljYXRpb24uc3RhdGUub2JqZWN0LWRldGFpbHMnXCIgW2VtcHR5U3RhdGVdPVwiZW1wdHlTdGF0ZVwiIFtwbHVnaW5zXT1cIidvYmplY3QtZGV0YWlscy10YWIubm90aWZpY2F0aW9ucycgfCBwbHVnaW5zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JcIiAqbmdJZj1cImdyaWREYXRhPy5sZW5ndGhcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBzZWNvbmRhcnlcIiAoY2xpY2spPVwicmVtb3ZlKClcIiB0cmFuc2xhdGU+ZW8ubm90aWZpY2F0aW9ucy5kZXRhaWxzLml0ZW0uZ29uZS5yZW1vdmU8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBzZWNvbmRhcnlcIiAoY2xpY2spPVwicmVtb3ZlU3Vic2NyaXB0aW9uQW5kUmVzdWJtaXNzaW9ucygpXCJcbiAgICAgICAgICB0cmFuc2xhdGU+ZW8ubm90aWZpY2F0aW9ucy5kZXRhaWxzLml0ZW0uZ29uZS5yZW1vdmUuc3Vic2NyaXB0aW9uczwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9lby1vYmplY3QtZGV0YWlscz5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuPC95dmMtc3BsaXQtdmlldz5cbiJdfQ==
@@ -71,7 +71,7 @@ let PrepareStateComponent = class PrepareStateComponent {
71
71
  updateGrid(data) {
72
72
  this.emptyState = this.empty.getEmptyState(data ? data.length : -1);
73
73
  if (this.eoGrid && this.eoGrid.isReady) {
74
- this.eoGrid.updateRowData(data, data && data.length ? data[0].id : 0);
74
+ this.eoGrid.updateRowData(data);
75
75
  // need to refresh filters based on new grid data
76
76
  return this.resetFilters();
77
77
  }
@@ -85,8 +85,8 @@ let PrepareStateComponent = class PrepareStateComponent {
85
85
  }
86
86
  ];
87
87
  this.sortFields = [
88
- { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: 'asc' },
89
- { field: 'selectedtype.label', headerName: this.translate.instant('eo.inbox.sort.title'), sort: 'asc' }
88
+ { field: 'created', headerName: this.translate.instant('eo.inbox.sort.date'), sort: null },
89
+ { field: 'selectedtype.label', headerName: this.translate.instant('eo.inbox.sort.title'), sort: null }
90
90
  ];
91
91
  let sortColDefs = CustomSortComponent.sortColDefs(this.sortFields);
92
92
  this.gridOptions = {
@@ -143,7 +143,7 @@ let PrepareStateComponent = class PrepareStateComponent {
143
143
  this.selection.clear();
144
144
  }
145
145
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PrepareStateComponent, deps: [{ token: i1.SelectionService }, { token: i2.TranslateService }, { token: i2.BackendService }, { token: i3.PageTitleService }, { token: i2.PrepareService }, { token: i4.EmptyStateService }, { token: i5.PendingChangesService }, { token: i2.SystemService }], target: i0.ɵɵFactoryTarget.Component }); }
146
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: PrepareStateComponent, selector: "eo-prepare-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .reset-filter{padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-grid .eo-grid-header,:host ::ng-deep eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected{background-color:rgba(var(--color-white-rgb),.06)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i8.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i9.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i10.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i11.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i12.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: i13.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "directive", type: i14.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i15.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i16.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"] }, { kind: "component", type: i17.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i18.PrepareDetailsComponent, selector: "eo-prepare-details", inputs: ["preparedItem", "emptyState", "applySelection"], outputs: ["onItemChanged", "onCommit", "onItemRemove"] }, { kind: "component", type: i19.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i19.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] }); }
146
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: PrepareStateComponent, selector: "eo-prepare-state", viewQueries: [{ propertyName: "eoGrid", first: true, predicate: ["eoGrid"], descendants: true }], ngImport: i0, template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .reset-filter{padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-grid .eo-grid-header,:host ::ng-deep eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-focus,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover:before{background-color:var(--color-primary-3)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.GridComponent, selector: "eo-grid", inputs: ["selectFirst", "selectionLimit", "sizeToFit", "fullWidth", "showHeader", "showFooter", "loaderContent", "options", "gridOptions"], outputs: ["eoGridCountChanged", "eoGridSelectionChanged", "eoGridFocusChanged", "eoGridCellClick", "eoGridDoubleClick", "eoGridContextMenuClick", "eoGridColumnResized"] }, { kind: "component", type: i8.TotalCountComponent, selector: "eo-total-count", inputs: ["eoGrid", "outsideGrid", "gridCount"] }, { kind: "component", type: i9.CustomSortComponent, selector: "eo-custom-sort", inputs: ["eoGrid", "overlay", "id", "sortFields"], outputs: ["change", "active"] }, { kind: "component", type: i10.CustomFilterComponent, selector: "eo-custom-filter", inputs: ["overlay", "eoGrid", "activeFilter", "isFilterActive"], outputs: ["change", "active", "onResetFilters"] }, { kind: "component", type: i11.SetFilterComponent, selector: "eo-set-filter", inputs: ["title", "searchLimit", "operator", "options", "filterParams"] }, { kind: "component", type: i12.ResetFilterComponent, selector: "eo-reset-filter", inputs: ["isFilterActive"] }, { kind: "component", type: i13.ListContainerComponent, selector: "eo-list-container", inputs: ["applySelection", "applyVersion", "loading", "tabs", "parseDmsParams"] }, { kind: "directive", type: i14.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i15.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i16.OverlayComponent, selector: "eo-overlay", inputs: ["iconSrc", "badge", "iconClass", "active", "iconTitle", "userAvatar"] }, { kind: "component", type: i17.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "component", type: i18.PrepareDetailsComponent, selector: "eo-prepare-details", inputs: ["preparedItem", "emptyState", "applySelection"], outputs: ["onItemChanged", "onCommit", "onItemRemove"] }, { kind: "component", type: i19.SplitViewComponent, selector: "yvc-split-view", inputs: ["direction", "gutterSize", "restrictMove", "disabled", "gutterDblClickDuration", "layoutSettingsID"], outputs: ["layoutSettingsChange", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"] }, { kind: "directive", type: i19.SplitAreaDirective, selector: "[yvcSplitArea]", inputs: ["size", "order", "minSize", "maxSize", "panelClass", "visible"] }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] }); }
147
147
  };
148
148
  PrepareStateComponent = __decorate([
149
149
  UntilDestroy()
@@ -151,9 +151,9 @@ PrepareStateComponent = __decorate([
151
151
  export { PrepareStateComponent };
152
152
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PrepareStateComponent, decorators: [{
153
153
  type: Component,
154
- args: [{ selector: 'eo-prepare-state', template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .reset-filter{padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-grid .eo-grid-header,:host ::ng-deep eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected{background-color:rgba(var(--color-white-rgb),.06)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"] }]
154
+ args: [{ selector: 'eo-prepare-state', template: "<yvc-split-view [layoutSettingsID]=\"'prepare.state'\">\n <ng-template yvcSplitArea [size]=\"30\">\n <eo-list-container #eoList [applySelection]=\"{}\">\n <div class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [iconSrc]=\"'assets/_default/svg/ic_prepare.svg'\"></eo-icon>\n <div class=\"eo-header-info\">\n <div class=\"eo-header-title\" translate>eo.prepare.list.title</div>\n <div class=\"eo-header-subtitle\" translate>eo.prepare.list.title.sub</div>\n </div>\n <div class=\"eo-header-actions\">\n <eo-icon class=\"button primary refresh-button\" [iconSrc]=\"'assets/_default/svg/ic_refresh.svg'\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"\n [iconTitle]=\"('eo.list.refresh' | translate)\"></eo-icon>\n\n <eo-overlay #oFilter class=\"overlay-filter\" [iconSrc]=\"'assets/_default/svg/ic_filter.svg'\"\n [iconClass]=\"'primary'\" [iconTitle]=\"'eo.list.filter' | translate\">\n <eo-custom-filter #cFilter (change)=\"cFilter.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oFilter.onActiveChanged($event)\">\n <!--<eo-text-filter [title]=\"'eo.timeline.filter.action' | translate\" [matchFields]=\"['selectedtype.label']\"></eo-text-filter>-->\n <eo-set-filter [operator]=\"'OR'\" [id]=\"'prepare.object.type'\"\n [title]=\"'eo.favorites.filter.section.objecttype' | translate\"\n [options]=\"typeFilterFields\"></eo-set-filter>\n </eo-custom-filter>\n </eo-overlay>\n\n <eo-overlay #oSort class=\"overlay-sort\" [iconSrc]=\"'assets/_default/svg/ic_sort.svg'\" [iconClass]=\"'primary'\"\n [title]=\"'eo.list.sort' | translate\">\n <eo-custom-sort #cSort [id]=\"'prepare.sort'\" (change)=\"cSort.updateGrid(eoList.eoGrid, $event)\"\n (active)=\"oSort.onActiveChanged($event)\" [sortFields]=\"sortFields\"></eo-custom-sort>\n </eo-overlay>\n\n <eo-icon class=\"button actions-button\" (click)=\"eoList.showActions(null, 'PREPARED_ITEM')\"\n [iconTitle]=\"'eo.object.actions.title' | translate\" [iconSrc]=\"'assets/_default/svg/ic_more.svg'\"></eo-icon>\n </div>\n </div>\n <div class=\"eo-body dark\">\n <eo-grid #eoGrid *ngIf=\"gridOptions?.rowData\" [gridOptions]=\"gridOptions\" [fullWidth]=\"true\" [showHeader]=\"true\"\n [showFooter]=\"true\" (eoGridCountChanged)=\"eoList.onCountChanged($event);\"\n (eoGridContextMenuClick)=\"eoList.onContextMenu($event, 'PREPARED_ITEM')\"\n (eoGridSelectionChanged)=\"eoList.onSelectionChanged($event)\"\n (eoGridFocusChanged)=\"eoList.onFocusChanged($event)\">\n\n <div class=\"header\">\n </div>\n\n <div class=\"footer\">\n <eo-total-count [gridCount]=\"eoList.gridCount\" [outsideGrid]=\"false\" class=\"flex-row\"></eo-total-count>\n </div>\n\n <div class=\"empty\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_prepare.svg', text: oFilter.active ? 'eo.no.filter.result' : 'eo.prepare.list.empty'}\"></eo-error-message>\n <eo-reset-filter [isFilterActive]=\"oFilter.active\"\n (click)=\"cFilter.resetFilter();cSort.reset();refreshGrid()\"></eo-reset-filter>\n </div>\n </eo-grid>\n </div>\n </eo-list-container>\n </ng-template>\n <ng-template yvcSplitArea [size]=\"70\">\n <eo-prepare-details [applySelection]=\"{}\" [emptyState]=\"emptyState\" (onItemChanged)=\"updateList($event)\"\n (onItemRemove)=\"remove()\">\n <div class=\"error\" *ngIf=\"gridData?.length\">\n <button class=\"button secondary\" (click)=\"remove()\" translate>eo.prepare.details.item.gone.remove</button>\n </div>\n </eo-prepare-details>\n </ng-template>\n</yvc-split-view>", styles: [":host{position:absolute;left:var(--app-pane-padding);right:var(--app-pane-padding);top:var(--app-pane-padding);bottom:var(--app-pane-padding);overflow:hidden}:host yvc-split-view{height:100%}:host .eo-body.dark{background-color:var(--color-primary-2)}:host eo-list-container{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .reset-filter{padding:calc(var(--app-pane-padding) / 2)}:host ::ng-deep eo-list-container .eo-loader{border-color:rgba(var(--color-white-rgb),.2)!important;border-left-color:rgba(var(--color-white-rgb),.7)!important}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-footer{background-color:var(--color-primary-2)}:host ::ng-deep eo-list-container .eo-head,:host ::ng-deep eo-list-container .eo-head .eo-header,:host ::ng-deep eo-list-container .eo-head .eo-footer,:host ::ng-deep eo-list-container .eo-grid-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-header,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer,:host ::ng-deep eo-list-container .eo-grid-footer,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-head .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-header .eo-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-header .eo-header-subtitle,:host ::ng-deep eo-list-container .eo-grid-footer .eo-footer .eo-header-subtitle{opacity:.7}:host ::ng-deep eo-list-container .eo-head eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-header eo-total-count .count-container,:host ::ng-deep eo-list-container .eo-grid-footer eo-total-count .count-container{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary{color:rgba(var(--color-white-rgb),.5)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary:hover,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon:hover,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary:hover{color:var(--color-white)}:host ::ng-deep eo-list-container .eo-head .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-head .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-head eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-header .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-header eo-icon.button.primary.active,:host ::ng-deep eo-list-container .eo-grid-footer .header>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer .footer>eo-icon.active,:host ::ng-deep eo-list-container .eo-grid-footer eo-icon.button.primary.active{color:var(--color-accent)}:host ::ng-deep eo-grid{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid .eo-grid-empty *{color:var(--color-white)}:host ::ng-deep eo-grid .eo-grid-header,:host ::ng-deep eo-grid .eo-grid-footer{border-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham{background-color:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row{color:var(--color-white);background:var(--color-primary-2)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell{border-bottom-color:rgba(var(--color-white-rgb),.15)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .iconempty,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .object-type{background-color:rgba(var(--color-white-rgb),.9);height:24px;width:24px;box-sizing:content-box;padding:2px;border-radius:2px;opacity:.2}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row .ag-cell .list-item .content>*{color:rgba(var(--color-white-rgb),.75)}:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-selected,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-focus,:host ::ng-deep eo-grid ag-grid-angular.ag-theme-balham .ag-row-hover:before{background-color:var(--color-primary-3)!important}:host ::ng-deep .ag-cell .list-item{display:flex;flex:1;flex-direction:row;min-height:0;min-width:0;align-items:center;height:80px}:host ::ng-deep .ag-cell .list-item[unselectable]{-webkit-user-select:none;user-select:none}:host ::ng-deep .ag-cell .list-item .content{flex:1;padding:var(--app-pane-padding);display:inline-block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:host ::ng-deep .ag-cell .list-item .content .title{font-weight:var(--font-weight-bold);font-size:var(--font-body)}:host ::ng-deep .ag-cell .list-item .content .location,:host ::ng-deep .ag-cell .list-item .content .file{font-size:var(--font-caption);color:var(--text-color-caption)}:host ::ng-deep .ag-cell .list-item .content .meta{padding:0 calc(var(--app-pane-padding) / 2);display:flex;flex-flow:column;align-items:flex-end}:host ::ng-deep .ag-cell .list-item .content .meta .date{color:rgba(var(--color-black-rgb),.4)}\n"] }]
155
155
  }], ctorParameters: () => [{ type: i1.SelectionService }, { type: i2.TranslateService }, { type: i2.BackendService }, { type: i3.PageTitleService }, { type: i2.PrepareService }, { type: i4.EmptyStateService }, { type: i5.PendingChangesService }, { type: i2.SystemService }], propDecorators: { eoGrid: [{
156
156
  type: ViewChild,
157
157
  args: ['eoGrid']
158
158
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9wcmVwYXJlLXN0YXRlL3ByZXBhcmUtc3RhdGUvcHJlcGFyZS1zdGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9wcmVwYXJlLXN0YXRlL3ByZXBhcmUtc3RhdGUvcHJlcGFyZS1zdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBZ0YsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ2xILE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFRbkUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDNUcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEVBQThFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVF6RyxJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFxQjtJQWNoQyxZQUFtQixTQUEyQixFQUMzQixTQUEyQixFQUMxQixPQUF1QixFQUN2QixZQUE4QixFQUM5QixjQUE4QixFQUM5QixLQUF3QixFQUN4QixjQUFxQyxFQUNyQyxNQUFxQjtRQVB0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxXQUFNLEdB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RCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYzthQUMvQixJQUFJLENBQ0gsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUNyQjthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQWxKVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwwSkNwQmxDLHkxSEFtRWlCOztBRC9DSixxQkFBcUI7SUFOakMsWUFBWSxFQUFFO0dBTUYscUJBQXFCLENBbUpqQzs7MkZBbkpZLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxrQkFBa0I7NlNBYVAsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb2xEZWYsIEdyaWRPcHRpb25zfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlLCBQcmVwYXJlU2VydmljZSwgUHJlcGFyZWRJdGVtLCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7RW1wdHlTdGF0ZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7RW1wdHlTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWxlY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS90aXRsZS9wYWdlLXRpdGxlLnNlcnZpY2UnO1xuaW1wb3J0IHtJU2V0RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZCc7XG5pbXBvcnQge0N1c3RvbVNvcnRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2V4dGVuc2lvbnMvY3VzdG9tLXNvcnQvY3VzdG9tLXNvcnQuY29tcG9uZW50JztcbmltcG9ydCB7U2V0RmlsdGVyQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2ZpbHRlci9zZXRGaWx0ZXJzL3NldC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7R3JpZENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZ3JpZC5jb21wb25lbnQnO1xuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1wcmVwYXJlLXN0YXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXBhcmUtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcmVwYXJlLXN0YXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJlcGFyZVN0YXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBQZW5kaW5nQ2hhbmdlc0NvbXBvbmVudCwgT25EZXN0cm95IHtcblxuICBncmlkT3B0aW9uczogR3JpZE9wdGlvbnM7XG4gIHNvcnRGaWVsZHM6IENvbERlZltdO1xuICB0eXBlRmlsdGVyRmllbGRzOiBJU2V0RmlsdGVyW107XG4gIGdyaWREYXRhO1xuICBpZE1hdGNoID0gdHJ1ZTtcbiAgZW1wdHlTdGF0ZTogRW1wdHlTdGF0ZSA9IHtpY29uOiAnJywgdGV4dDogJycsIGNsYXNzTmFtZTogJyd9O1xuXG4gIEBWaWV3Q2hpbGQoJ2VvR3JpZCcpIGVvR3JpZDogR3JpZENvbXBvbmVudDtcblxuICBwcmVwYXJlZEl0ZW1zOiBQcmVwYXJlZEl0ZW1bXSA9IFtdO1xuICBwcmVwYXJlZEl0ZW06IFByZXBhcmVkSXRlbTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VsZWN0aW9uOiBTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICAgICAgICBwdWJsaWMgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwcmVwYXJlU2VydmljZTogUHJlcGFyZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZW1wdHk6IEVtcHR5U3RhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlKSB7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0QmFzZVRpdGxlKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByZXBhcmUubGlzdC50aXRsZScpKTtcbiAgfVxuXG4gIGhhc1BlbmRpbmdDaGFuZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdDaGFuZ2VzLmhhc1BlbmRpbmdUYXNrKCk7XG4gIH1cblxuICByZW1vdmVJdGVtKGl0ZW06IFByZXBhcmVkSXRlbSkge1xuICAgIGlmICh0aGlzLnByZXBhcmVkSXRlbSAmJiBpdGVtLmlkID09PSB0aGlzLnByZXBhcmVkSXRlbS5pZCkge1xuICAgICAgdGhpcy5wcmVwYXJlZEl0ZW0gPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLnByZXBhcmVTZXJ2aWNlLmRlbGV0ZVByZXBhcmVkSXRlbShpdGVtLmlkKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHVwZGF0ZUxpc3QoY2hhbmdlZEl0ZW06IFByZXBhcmVkSXRlbSkge1xuICAgIHRoaXMudXBkYXRlR3JpZCh0aGlzLmJhY2tlbmQudXBkYXRlKHRoaXMuZ3JpZERhdGEsIFt7aWQ6IGNoYW5nZWRJdGVtLmlkLCBpdGVtOiBjaGFuZ2VkSXRlbX1dKSk7XG4gIH1cblxuICByZWZyZXNoR3JpZCgpIHtcbiAgICB0aGlzLnByZXBhcmVTZXJ2aWNlLmdldFByZXBhcmVkSXRlbXMkKCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB0eXBlRmlsdGVycygpIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5ncmlkRGF0YTtcbiAgICBsZXQgdW5pcXVlQnlUeXBlID0gU2V0RmlsdGVyQ29tcG9uZW50LnVuaXFCeShkYXRhLCAnc2VsZWN0ZWR0eXBlLm5hbWUnLCB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlcygpKTtcbiAgICB1bmlxdWVCeVR5cGUucHVzaCh7cW5hbWU6ICcnLCBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJlcGFyZS5saXN0Lml0ZW0udHlwZS51bmRlZmluZWQnKX0pO1xuICAgIHRoaXMudHlwZUZpbHRlckZpZWxkcyA9IHVuaXF1ZUJ5VHlwZS5tYXAodCA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgIGxhYmVsOiB0LmxhYmVsLFxuICAgICAgdmFsdWU6IHRydWUsXG4gICAgICBpZDogJyMnICsgdC5xbmFtZSxcbiAgICAgIGZpbHRlcjogKG5vZGUpID0+IG5vZGUuZGF0YS5zZWxlY3RlZHR5cGUgPyBub2RlLmRhdGEuc2VsZWN0ZWR0eXBlLm5hbWUgPT09IHQucW5hbWUgOiAnJyA9PT0gdC5xbmFtZVxuICAgIH0pKS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJykpO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMudHlwZUZpbHRlcnMoKTtcbiAgfVxuXG4gIHVwZGF0ZUdyaWQoZGF0YSkge1xuICAgIHRoaXMuZW1wdHlTdGF0ZSA9IHRoaXMuZW1wdHkuZ2V0RW1wdHlTdGF0ZShkYXRhID8gZGF0YS5sZW5ndGggOiAtMSk7XG5cbiAgICBpZiAodGhpcy5lb0dyaWQgJiYgdGhpcy5lb0dyaWQuaXNSZWFkeSkge1xuICAgICAgdGhpcy5lb0dyaWQudXBkYXRlUm93RGF0YShkYXRhLCBkYXRhICYmIGRhdGEubGVuZ3RoID8gZGF0YVswXS5pZCA6IDApO1xuICAgICAgLy8gbmVlZCB0byByZWZyZXNoIGZpbHRlcnMgYmFzZWQgb24gbmV3IGdyaWQgZGF0YVxuICAgICAgcmV0dXJuIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNldEZpbHRlcnMoKTtcblxuICAgIGxldCBjb2xEZWZzOiBDb2xEZWZbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgaGVhZGVyTmFtZTogJycsXG4gICAgICAgIGZpZWxkOiAnX19jdXN0b20nLFxuICAgICAgICBjZWxsUmVuZGVyZXI6IHRoaXMuY2VsbFJlbmRlcmVyLFxuICAgICAgICBmaWx0ZXI6IGZhbHNlXG4gICAgICB9XG4gICAgXTtcblxuICAgIHRoaXMuc29ydEZpZWxkcyA9IFtcbiAgICAgIHtmaWVsZDogJ2NyZWF0ZWQnLCBoZWFkZXJOYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmJveC5zb3J0LmRhdGUnKSwgc29ydDogJ2FzYyd9LFxuICAgICAge2ZpZWxkOiAnc2VsZWN0ZWR0eXBlLmxhYmVsJywgaGVhZGVyTmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uaW5ib3guc29ydC50aXRsZScpLCBzb3J0OiAnYXNjJ31cbiAgICBdO1xuXG4gICAgbGV0IHNvcnRDb2xEZWZzID0gQ3VzdG9tU29ydENvbXBvbmVudC5zb3J0Q29sRGVmcyh0aGlzLnNvcnRGaWVsZHMpO1xuXG4gICAgdGhpcy5ncmlkT3B0aW9ucyA9IHtcbiAgICAgIGNvbnRleHQ6IHtjb3VudDogZGF0YS5sZW5ndGh9LFxuICAgICAgcm93RGF0YTogZGF0YSxcbiAgICAgIGNvbHVtbkRlZnM6IGNvbERlZnMuY29uY2F0KHNvcnRDb2xEZWZzKSxcbiAgICAgIHJvd0J1ZmZlcjogMjAsXG4gICAgICByb3dIZWlnaHQ6IDgwXG4gICAgfTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcihwYXJhbXMpIHtcbiAgICBsZXQgaWNvbiA9IHBhcmFtcy5kYXRhLnNlbGVjdGVkdHlwZSA/IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcigndHlwZScsIHBhcmFtcywge1xuICAgICAgdmFsdWU6IHBhcmFtcy5kYXRhLnNlbGVjdGVkdHlwZS5uYW1lXG4gICAgfSkgOiAnPGRpdiBjbGFzcz1cImljb25lbXB0eVwiPjwvZGl2Pic7XG4gICAgbGV0IGNyZWF0ZWRUaW1lID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdkYXRlVGltZScsIHBhcmFtcywge3ZhbHVlOiBwYXJhbXMuZGF0YS5jcmVhdGVkLCBwYXR0ZXJuOiAnZW9OaWNlU2hvcnQnfSk7XG4gICAgbGV0IGxhYmVsID0gcGFyYW1zLmRhdGEudGl0bGUgfHwgcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByZXBhcmUubGlzdC5pdGVtLnR5cGUudW5kZWZpbmVkJyk7XG4gICAgbGV0IGxvY2F0aW9uID0gcGFyYW1zLmRhdGEucGFyZW50ICYmIHBhcmFtcy5kYXRhLnBhcmVudC50eXBlICE9PSAnc3lzcm9vdCcgPyBwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJlcGFyZS5saXN0Lml0ZW0ubG9jYXRpb24uc2V0JykgOlxuICAgICAgIXBhcmFtcy5kYXRhLnBhcmVudCB8fCBwYXJhbXMuZGF0YS5wYXJlbnQudHlwZSA9PT0gJ3N5c3Jvb3QnID8gcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByZXBhcmUubGlzdC5pdGVtLmxvY2F0aW9uLm5vdHNldCcpIDogJyc7XG4gICAgbGV0IHRlbXBsYXRlID0gIXBhcmFtcy5kYXRhLnRlbXBsYXRlID8gJycgOlxuICAgICAgYDxzcGFuPiR7cGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByZXBhcmUubGlzdC5pdGVtLnRlbXBsYXRlJyl9PC9zcGFuPiA8c3Bhbj4ke3BhcmFtcy5kYXRhLnRlbXBsYXRlLnRpdGxlfTwvc3Bhbj5gO1xuICAgIGxldCBmaWxlID0gdGVtcGxhdGUgfHwgcGFyYW1zLmRhdGEuc3RhdGUuY29udGVudHN0YXRlID09PSAnTk9DT05URU5UQUxMT1dFRCcgPyAnJyA6XG4gICAgICBwYXJhbXMuZGF0YS5jb250ZW50Y291bnQgPT09IDAgPyBgPHNwYW4+JHtwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJlcGFyZS5saXN0Lml0ZW0uZmlsZS5ub25lJyl9PC9zcGFuPmAgOlxuICAgICAgICBwYXJhbXMuZGF0YS5jb250ZW50Y291bnQgPT09IDEgPyBgPHNwYW4+JHtwYXJhbXMuZGF0YS5jb250ZW50c1swXS5wYXRofTwvc3Bhbj5gIDpcbiAgICAgICAgICBgPHNwYW4+JHtwYXJhbXMuZGF0YS5jb250ZW50Y291bnR9eCAke3BhcmFtcy5jb250ZXh0LnRyYW5zbGF0ZS5pbnN0YW50KCdlby5wcmVwYXJlLmxpc3QuaXRlbS5maWxlcycpfTwvc3Bhbj5gO1xuXG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtXCIgdW5zZWxlY3RhYmxlPlxuICAgICAgICAgICAgICAke2ljb259XG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+JHtsYWJlbH08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uXCI+JHtsb2NhdGlvbn08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVcIj4ke3RlbXBsYXRlIHx8IGZpbGV9PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRhXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj4ke2NyZWF0ZWRUaW1lfTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIGxldCBmb2N1c2VkID0gdGhpcy5zZWxlY3Rpb24uZ2V0Rm9jdXMoKTtcbiAgICBpZiAoZm9jdXNlZCkge1xuICAgICAgdGhpcy5wcmVwYXJlU2VydmljZS5kZWxldGVQcmVwYXJlZEl0ZW0oZm9jdXNlZC5pZCkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIHRoaXMucHJlcGFyZVNlcnZpY2UucHJlcGFyZWRJdGVtcyRcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGRhdGE7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh0aGlzLmdyaWREYXRhKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgfVxufVxuIiwiPHl2Yy1zcGxpdC12aWV3IFtsYXlvdXRTZXR0aW5nc0lEXT1cIidwcmVwYXJlLnN0YXRlJ1wiPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjMwXCI+XG4gICAgPGVvLWxpc3QtY29udGFpbmVyICNlb0xpc3QgW2FwcGx5U2VsZWN0aW9uXT1cInt9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyXCI+XG4gICAgICAgIDxlby1pY29uIGNsYXNzPVwiZW8taGVhZGVyLWljb25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19wcmVwYXJlLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItaW5mb1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItdGl0bGVcIiB0cmFuc2xhdGU+ZW8ucHJlcGFyZS5saXN0LnRpdGxlPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1zdWJ0aXRsZVwiIHRyYW5zbGF0ZT5lby5wcmVwYXJlLmxpc3QudGl0bGUuc3ViPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5IHJlZnJlc2gtYnV0dG9uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjRmlsdGVyLnJlc2V0RmlsdGVyKCk7Y1NvcnQucmVzZXQoKTtyZWZyZXNoR3JpZCgpXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiKCdlby5saXN0LnJlZnJlc2gnIHwgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cblxuICAgICAgICAgIDxlby1vdmVybGF5ICNvRmlsdGVyIGNsYXNzPVwib3ZlcmxheS1maWx0ZXJcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19maWx0ZXIuc3ZnJ1wiXG4gICAgICAgICAgICBbaWNvbkNsYXNzXT1cIidwcmltYXJ5J1wiIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3QuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1maWx0ZXIgI2NGaWx0ZXIgKGNoYW5nZSk9XCJjRmlsdGVyLnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3RpdmUpPVwib0ZpbHRlci5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8IS0tPGVvLXRleHQtZmlsdGVyIFt0aXRsZV09XCInZW8udGltZWxpbmUuZmlsdGVyLmFjdGlvbicgfCB0cmFuc2xhdGVcIiBbbWF0Y2hGaWVsZHNdPVwiWydzZWxlY3RlZHR5cGUubGFiZWwnXVwiPjwvZW8tdGV4dC1maWx0ZXI+LS0+XG4gICAgICAgICAgICAgIDxlby1zZXQtZmlsdGVyIFtvcGVyYXRvcl09XCInT1InXCIgW2lkXT1cIidwcmVwYXJlLm9iamVjdC50eXBlJ1wiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidlby5mYXZvcml0ZXMuZmlsdGVyLnNlY3Rpb24ub2JqZWN0dHlwZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInR5cGVGaWx0ZXJGaWVsZHNcIj48L2VvLXNldC1maWx0ZXI+XG4gICAgICAgICAgICA8L2VvLWN1c3RvbS1maWx0ZXI+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29Tb3J0IGNsYXNzPVwib3ZlcmxheS1zb3J0XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc29ydC5zdmcnXCIgW2ljb25DbGFzc109XCIncHJpbWFyeSdcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidlby5saXN0LnNvcnQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8ZW8tY3VzdG9tLXNvcnQgI2NTb3J0IFtpZF09XCIncHJlcGFyZS5zb3J0J1wiIChjaGFuZ2UpPVwiY1NvcnQudXBkYXRlR3JpZChlb0xpc3QuZW9HcmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFjdGl2ZSk9XCJvU29ydC5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiIFtzb3J0RmllbGRzXT1cInNvcnRGaWVsZHNcIj48L2VvLWN1c3RvbS1zb3J0PlxuICAgICAgICAgIDwvZW8tb3ZlcmxheT5cblxuICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIGFjdGlvbnMtYnV0dG9uXCIgKGNsaWNrKT1cImVvTGlzdC5zaG93QWN0aW9ucyhudWxsLCAnUFJFUEFSRURfSVRFTScpXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiJ2VvLm9iamVjdC5hY3Rpb25zLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX21vcmUuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1ib2R5IGRhcmtcIj5cbiAgICAgICAgPGVvLWdyaWQgI2VvR3JpZCAqbmdJZj1cImdyaWRPcHRpb25zPy5yb3dEYXRhXCIgW2dyaWRPcHRpb25zXT1cImdyaWRPcHRpb25zXCIgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgW3Nob3dIZWFkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dGb290ZXJdPVwidHJ1ZVwiIChlb0dyaWRDb3VudENoYW5nZWQpPVwiZW9MaXN0Lm9uQ291bnRDaGFuZ2VkKCRldmVudCk7XCJcbiAgICAgICAgICAoZW9HcmlkQ29udGV4dE1lbnVDbGljayk9XCJlb0xpc3Qub25Db250ZXh0TWVudSgkZXZlbnQsICdQUkVQQVJFRF9JVEVNJylcIlxuICAgICAgICAgIChlb0dyaWRTZWxlY3Rpb25DaGFuZ2VkKT1cImVvTGlzdC5vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGVvR3JpZEZvY3VzQ2hhbmdlZCk9XCJlb0xpc3Qub25Gb2N1c0NoYW5nZWQoJGV2ZW50KVwiPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgICAgPGVvLXRvdGFsLWNvdW50IFtncmlkQ291bnRdPVwiZW9MaXN0LmdyaWRDb3VudFwiIFtvdXRzaWRlR3JpZF09XCJmYWxzZVwiIGNsYXNzPVwiZmxleC1yb3dcIj48L2VvLXRvdGFsLWNvdW50PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX3ByZXBhcmUuc3ZnJywgdGV4dDogb0ZpbHRlci5hY3RpdmUgPyAnZW8ubm8uZmlsdGVyLnJlc3VsdCcgOiAnZW8ucHJlcGFyZS5saXN0LmVtcHR5J31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8ZW8tcmVzZXQtZmlsdGVyIFtpc0ZpbHRlckFjdGl2ZV09XCJvRmlsdGVyLmFjdGl2ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjRmlsdGVyLnJlc2V0RmlsdGVyKCk7Y1NvcnQucmVzZXQoKTtyZWZyZXNoR3JpZCgpXCI+PC9lby1yZXNldC1maWx0ZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZW8tZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tbGlzdC1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNzBcIj5cbiAgICA8ZW8tcHJlcGFyZS1kZXRhaWxzIFthcHBseVNlbGVjdGlvbl09XCJ7fVwiIFtlbXB0eVN0YXRlXT1cImVtcHR5U3RhdGVcIiAob25JdGVtQ2hhbmdlZCk9XCJ1cGRhdGVMaXN0KCRldmVudClcIlxuICAgICAgKG9uSXRlbVJlbW92ZSk9XCJyZW1vdmUoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yXCIgKm5nSWY9XCJncmlkRGF0YT8ubGVuZ3RoXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gc2Vjb25kYXJ5XCIgKGNsaWNrKT1cInJlbW92ZSgpXCIgdHJhbnNsYXRlPmVvLnByZXBhcmUuZGV0YWlscy5pdGVtLmdvbmUucmVtb3ZlPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2VvLXByZXBhcmUtZGV0YWlscz5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwveXZjLXNwbGl0LXZpZXc+Il19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcGFyZS1zdGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9wcmVwYXJlLXN0YXRlL3ByZXBhcmUtc3RhdGUvcHJlcGFyZS1zdGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9wcmVwYXJlLXN0YXRlL3ByZXBhcmUtc3RhdGUvcHJlcGFyZS1zdGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFNBQVMsRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBZ0YsS0FBSyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ2xILE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFRbkUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDNUcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEVBQThFLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVF6RyxJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFxQjtJQWNoQyxZQUFtQixTQUEyQixFQUMzQixTQUEyQixFQUMxQixPQUF1QixFQUN2QixZQUE4QixFQUM5QixjQUE4QixFQUM5QixLQUF3QixFQUN4QixjQUFxQyxFQUNyQyxNQUFxQjtRQVB0QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxXQUFNLEdB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QUFJLENBQUMsQ0FDckI7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQzs4R0FsSlUscUJBQXFCO2tHQUFyQixxQkFBcUIsMEpDcEJsQyx5MUhBbUVpQjs7QUQvQ0oscUJBQXFCO0lBTmpDLFlBQVksRUFBRTtHQU1GLHFCQUFxQixDQW1KakM7OzJGQW5KWSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usa0JBQWtCOzZTQWFQLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29sRGVmLCBHcmlkT3B0aW9uc30gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYWNrZW5kU2VydmljZSwgUHJlcGFyZVNlcnZpY2UsIFByZXBhcmVkSXRlbSwgU3lzdGVtU2VydmljZSwgVHJhbnNsYXRlU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge0VtcHR5U3RhdGV9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQge0VtcHR5U3RhdGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7UGVuZGluZ0NoYW5nZXNDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMtY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQge1BlbmRpbmdDaGFuZ2VzU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmltcG9ydCB7U2VsZWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UGFnZVRpdGxlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvdGl0bGUvcGFnZS10aXRsZS5zZXJ2aWNlJztcbmltcG9ydCB7SVNldEZpbHRlcn0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQnO1xuaW1wb3J0IHtDdXN0b21Tb3J0Q29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9lby1mcmFtZXdvcmsvZ3JpZC9leHRlbnNpb25zL2N1c3RvbS1zb3J0L2N1c3RvbS1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQge1NldEZpbHRlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrL2dyaWQvZXh0ZW5zaW9ucy9maWx0ZXIvc2V0RmlsdGVycy9zZXQtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge0dyaWRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay9ncmlkL2dyaWQuY29tcG9uZW50JztcbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tcHJlcGFyZS1zdGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmVwYXJlLXN0YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJlcGFyZS1zdGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByZXBhcmVTdGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgUGVuZGluZ0NoYW5nZXNDb21wb25lbnQsIE9uRGVzdHJveSB7XG5cbiAgZ3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zO1xuICBzb3J0RmllbGRzOiBDb2xEZWZbXTtcbiAgdHlwZUZpbHRlckZpZWxkczogSVNldEZpbHRlcltdO1xuICBncmlkRGF0YTtcbiAgaWRNYXRjaCA9IHRydWU7XG4gIGVtcHR5U3RhdGU6IEVtcHR5U3RhdGUgPSB7aWNvbjogJycsIHRleHQ6ICcnLCBjbGFzc05hbWU6ICcnfTtcblxuICBAVmlld0NoaWxkKCdlb0dyaWQnKSBlb0dyaWQ6IEdyaWRDb21wb25lbnQ7XG5cbiAgcHJlcGFyZWRJdGVtczogUHJlcGFyZWRJdGVtW10gPSBbXTtcbiAgcHJlcGFyZWRJdGVtOiBQcmVwYXJlZEl0ZW07XG5cbiAgY29uc3RydWN0b3IocHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0aXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcHJlcGFyZVNlcnZpY2U6IFByZXBhcmVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGVtcHR5OiBFbXB0eVN0YXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwZW5kaW5nQ2hhbmdlczogUGVuZGluZ0NoYW5nZXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSkge1xuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldEJhc2VUaXRsZSh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5wcmVwYXJlLmxpc3QudGl0bGUnKSk7XG4gIH1cblxuICBoYXNQZW5kaW5nQ2hhbmdlcygpIHtcbiAgICByZXR1cm4gdGhpcy5wZW5kaW5nQ2hhbmdlcy5oYXNQZW5kaW5nVGFzaygpO1xuICB9XG5cbiAgcmVtb3ZlSXRlbShpdGVtOiBQcmVwYXJlZEl0ZW0pIHtcbiAgICBpZiAodGhpcy5wcmVwYXJlZEl0ZW0gJiYgaXRlbS5pZCA9PT0gdGhpcy5wcmVwYXJlZEl0ZW0uaWQpIHtcbiAgICAgIHRoaXMucHJlcGFyZWRJdGVtID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5wcmVwYXJlU2VydmljZS5kZWxldGVQcmVwYXJlZEl0ZW0oaXRlbS5pZCkuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB1cGRhdGVMaXN0KGNoYW5nZWRJdGVtOiBQcmVwYXJlZEl0ZW0pIHtcbiAgICB0aGlzLnVwZGF0ZUdyaWQodGhpcy5iYWNrZW5kLnVwZGF0ZSh0aGlzLmdyaWREYXRhLCBbe2lkOiBjaGFuZ2VkSXRlbS5pZCwgaXRlbTogY2hhbmdlZEl0ZW19XSkpO1xuICB9XG5cbiAgcmVmcmVzaEdyaWQoKSB7XG4gICAgdGhpcy5wcmVwYXJlU2VydmljZS5nZXRQcmVwYXJlZEl0ZW1zJCgpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgdHlwZUZpbHRlcnMoKSB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuZ3JpZERhdGE7XG4gICAgbGV0IHVuaXF1ZUJ5VHlwZSA9IFNldEZpbHRlckNvbXBvbmVudC51bmlxQnkoZGF0YSwgJ3NlbGVjdGVkdHlwZS5uYW1lJywgdGhpcy5zeXN0ZW0uZ2V0T2JqZWN0VHlwZXMoKSk7XG4gICAgdW5pcXVlQnlUeXBlLnB1c2goe3FuYW1lOiAnJywgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByZXBhcmUubGlzdC5pdGVtLnR5cGUudW5kZWZpbmVkJyl9KTtcbiAgICB0aGlzLnR5cGVGaWx0ZXJGaWVsZHMgPSB1bmlxdWVCeVR5cGUubWFwKHQgPT4gT2JqZWN0LmFzc2lnbih7XG4gICAgICBsYWJlbDogdC5sYWJlbCxcbiAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgaWQ6ICcjJyArIHQucW5hbWUsXG4gICAgICBmaWx0ZXI6IChub2RlKSA9PiBub2RlLmRhdGEuc2VsZWN0ZWR0eXBlID8gbm9kZS5kYXRhLnNlbGVjdGVkdHlwZS5uYW1lID09PSB0LnFuYW1lIDogJycgPT09IHQucW5hbWVcbiAgICB9KSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdsYWJlbCcpKTtcbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnR5cGVGaWx0ZXJzKCk7XG4gIH1cblxuICB1cGRhdGVHcmlkKGRhdGEpIHtcbiAgICB0aGlzLmVtcHR5U3RhdGUgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUoZGF0YSA/IGRhdGEubGVuZ3RoIDogLTEpO1xuXG4gICAgaWYgKHRoaXMuZW9HcmlkICYmIHRoaXMuZW9HcmlkLmlzUmVhZHkpIHtcbiAgICAgIHRoaXMuZW9HcmlkLnVwZGF0ZVJvd0RhdGEoZGF0YSk7XG4gICAgICAvLyBuZWVkIHRvIHJlZnJlc2ggZmlsdGVycyBiYXNlZCBvbiBuZXcgZ3JpZCBkYXRhXG4gICAgICByZXR1cm4gdGhpcy5yZXNldEZpbHRlcnMoKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc2V0RmlsdGVycygpO1xuXG4gICAgbGV0IGNvbERlZnM6IENvbERlZltdID0gW1xuICAgICAge1xuICAgICAgICBoZWFkZXJOYW1lOiAnJyxcbiAgICAgICAgZmllbGQ6ICdfX2N1c3RvbScsXG4gICAgICAgIGNlbGxSZW5kZXJlcjogdGhpcy5jZWxsUmVuZGVyZXIsXG4gICAgICAgIGZpbHRlcjogZmFsc2VcbiAgICAgIH1cbiAgICBdO1xuXG4gICAgdGhpcy5zb3J0RmllbGRzID0gW1xuICAgICAge2ZpZWxkOiAnY3JlYXRlZCcsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94LnNvcnQuZGF0ZScpLCBzb3J0OiBudWxsfSxcbiAgICAgIHtmaWVsZDogJ3NlbGVjdGVkdHlwZS5sYWJlbCcsIGhlYWRlck5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluYm94LnNvcnQudGl0bGUnKSwgc29ydDogbnVsbH1cbiAgICBdO1xuXG4gICAgbGV0IHNvcnRDb2xEZWZzID0gQ3VzdG9tU29ydENvbXBvbmVudC5zb3J0Q29sRGVmcyh0aGlzLnNvcnRGaWVsZHMpO1xuXG4gICAgdGhpcy5ncmlkT3B0aW9ucyA9IHtcbiAgICAgIGNvbnRleHQ6IHtjb3VudDogZGF0YS5sZW5ndGh9LFxuICAgICAgcm93RGF0YTogZGF0YSxcbiAgICAgIGNvbHVtbkRlZnM6IGNvbERlZnMuY29uY2F0KHNvcnRDb2xEZWZzKSxcbiAgICAgIHJvd0J1ZmZlcjogMjAsXG4gICAgICByb3dIZWlnaHQ6IDgwXG4gICAgfTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcihwYXJhbXMpIHtcbiAgICBsZXQgaWNvbiA9IHBhcmFtcy5kYXRhLnNlbGVjdGVkdHlwZSA/IHBhcmFtcy5jb250ZXh0LmNyLnJlbmRlcigndHlwZScsIHBhcmFtcywge1xuICAgICAgdmFsdWU6IHBhcmFtcy5kYXRhLnNlbGVjdGVkdHlwZS5uYW1lXG4gICAgfSkgOiAnPGRpdiBjbGFzcz1cImljb25lbXB0eVwiPjwvZGl2Pic7XG4gICAgbGV0IGNyZWF0ZWRUaW1lID0gcGFyYW1zLmNvbnRleHQuY3IucmVuZGVyKCdkYXRlVGltZScsIHBhcmFtcywge3ZhbHVlOiBwYXJhbXMuZGF0YS5jcmVhdGVkLCBwYXR0ZXJuOiAnZW9OaWNlU2hvcnQnfSk7XG4gICAgbGV0IGxhYmVsID0gcGFyYW1zLmRhdGEudGl0bGUgfHwgcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByZXBhcmUubGlzdC5pdGVtLnR5cGUudW5kZWZpbmVkJyk7XG4gICAgbGV0IGxvY2F0aW9uID0gcGFyYW1zLmRhdGEucGFyZW50ICYmIHBhcmFtcy5kYXRhLnBhcmVudC50eXBlICE9PSAnc3lzcm9vdCcgPyBwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJlcGFyZS5saXN0Lml0ZW0ubG9jYXRpb24uc2V0JykgOlxuICAgICAgIXBhcmFtcy5kYXRhLnBhcmVudCB8fCBwYXJhbXMuZGF0YS5wYXJlbnQudHlwZSA9PT0gJ3N5c3Jvb3QnID8gcGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByZXBhcmUubGlzdC5pdGVtLmxvY2F0aW9uLm5vdHNldCcpIDogJyc7XG4gICAgbGV0IHRlbXBsYXRlID0gIXBhcmFtcy5kYXRhLnRlbXBsYXRlID8gJycgOlxuICAgICAgYDxzcGFuPiR7cGFyYW1zLmNvbnRleHQudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnByZXBhcmUubGlzdC5pdGVtLnRlbXBsYXRlJyl9PC9zcGFuPiA8c3Bhbj4ke3BhcmFtcy5kYXRhLnRlbXBsYXRlLnRpdGxlfTwvc3Bhbj5gO1xuICAgIGxldCBmaWxlID0gdGVtcGxhdGUgfHwgcGFyYW1zLmRhdGEuc3RhdGUuY29udGVudHN0YXRlID09PSAnTk9DT05URU5UQUxMT1dFRCcgPyAnJyA6XG4gICAgICBwYXJhbXMuZGF0YS5jb250ZW50Y291bnQgPT09IDAgPyBgPHNwYW4+JHtwYXJhbXMuY29udGV4dC50cmFuc2xhdGUuaW5zdGFudCgnZW8ucHJlcGFyZS5saXN0Lml0ZW0uZmlsZS5ub25lJyl9PC9zcGFuPmAgOlxuICAgICAgICBwYXJhbXMuZGF0YS5jb250ZW50Y291bnQgPT09IDEgPyBgPHNwYW4+JHtwYXJhbXMuZGF0YS5jb250ZW50c1swXS5wYXRofTwvc3Bhbj5gIDpcbiAgICAgICAgICBgPHNwYW4+JHtwYXJhbXMuZGF0YS5jb250ZW50Y291bnR9eCAke3BhcmFtcy5jb250ZXh0LnRyYW5zbGF0ZS5pbnN0YW50KCdlby5wcmVwYXJlLmxpc3QuaXRlbS5maWxlcycpfTwvc3Bhbj5gO1xuXG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtXCIgdW5zZWxlY3RhYmxlPlxuICAgICAgICAgICAgICAke2ljb259XG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+JHtsYWJlbH08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uXCI+JHtsb2NhdGlvbn08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGVcIj4ke3RlbXBsYXRlIHx8IGZpbGV9PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRhXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj4ke2NyZWF0ZWRUaW1lfTwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBgO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIGxldCBmb2N1c2VkID0gdGhpcy5zZWxlY3Rpb24uZ2V0Rm9jdXMoKTtcbiAgICBpZiAoZm9jdXNlZCkge1xuICAgICAgdGhpcy5wcmVwYXJlU2VydmljZS5kZWxldGVQcmVwYXJlZEl0ZW0oZm9jdXNlZC5pZCkuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5yZWZyZXNoR3JpZCgpO1xuICAgIHRoaXMucHJlcGFyZVNlcnZpY2UucHJlcGFyZWRJdGVtcyRcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGRhdGE7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZCh0aGlzLmdyaWREYXRhKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgfVxufVxuIiwiPHl2Yy1zcGxpdC12aWV3IFtsYXlvdXRTZXR0aW5nc0lEXT1cIidwcmVwYXJlLnN0YXRlJ1wiPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjMwXCI+XG4gICAgPGVvLWxpc3QtY29udGFpbmVyICNlb0xpc3QgW2FwcGx5U2VsZWN0aW9uXT1cInt9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyXCI+XG4gICAgICAgIDxlby1pY29uIGNsYXNzPVwiZW8taGVhZGVyLWljb25cIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19wcmVwYXJlLnN2ZydcIj48L2VvLWljb24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItaW5mb1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlby1oZWFkZXItdGl0bGVcIiB0cmFuc2xhdGU+ZW8ucHJlcGFyZS5saXN0LnRpdGxlPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1zdWJ0aXRsZVwiIHRyYW5zbGF0ZT5lby5wcmVwYXJlLmxpc3QudGl0bGUuc3ViPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgICA8ZW8taWNvbiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5IHJlZnJlc2gtYnV0dG9uXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfcmVmcmVzaC5zdmcnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjRmlsdGVyLnJlc2V0RmlsdGVyKCk7Y1NvcnQucmVzZXQoKTtyZWZyZXNoR3JpZCgpXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiKCdlby5saXN0LnJlZnJlc2gnIHwgdHJhbnNsYXRlKVwiPjwvZW8taWNvbj5cblxuICAgICAgICAgIDxlby1vdmVybGF5ICNvRmlsdGVyIGNsYXNzPVwib3ZlcmxheS1maWx0ZXJcIiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19maWx0ZXIuc3ZnJ1wiXG4gICAgICAgICAgICBbaWNvbkNsYXNzXT1cIidwcmltYXJ5J1wiIFtpY29uVGl0bGVdPVwiJ2VvLmxpc3QuZmlsdGVyJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgPGVvLWN1c3RvbS1maWx0ZXIgI2NGaWx0ZXIgKGNoYW5nZSk9XCJjRmlsdGVyLnVwZGF0ZUdyaWQoZW9MaXN0LmVvR3JpZCwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChhY3RpdmUpPVwib0ZpbHRlci5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8IS0tPGVvLXRleHQtZmlsdGVyIFt0aXRsZV09XCInZW8udGltZWxpbmUuZmlsdGVyLmFjdGlvbicgfCB0cmFuc2xhdGVcIiBbbWF0Y2hGaWVsZHNdPVwiWydzZWxlY3RlZHR5cGUubGFiZWwnXVwiPjwvZW8tdGV4dC1maWx0ZXI+LS0+XG4gICAgICAgICAgICAgIDxlby1zZXQtZmlsdGVyIFtvcGVyYXRvcl09XCInT1InXCIgW2lkXT1cIidwcmVwYXJlLm9iamVjdC50eXBlJ1wiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidlby5mYXZvcml0ZXMuZmlsdGVyLnNlY3Rpb24ub2JqZWN0dHlwZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInR5cGVGaWx0ZXJGaWVsZHNcIj48L2VvLXNldC1maWx0ZXI+XG4gICAgICAgICAgICA8L2VvLWN1c3RvbS1maWx0ZXI+XG4gICAgICAgICAgPC9lby1vdmVybGF5PlxuXG4gICAgICAgICAgPGVvLW92ZXJsYXkgI29Tb3J0IGNsYXNzPVwib3ZlcmxheS1zb3J0XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfc29ydC5zdmcnXCIgW2ljb25DbGFzc109XCIncHJpbWFyeSdcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidlby5saXN0LnNvcnQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICA8ZW8tY3VzdG9tLXNvcnQgI2NTb3J0IFtpZF09XCIncHJlcGFyZS5zb3J0J1wiIChjaGFuZ2UpPVwiY1NvcnQudXBkYXRlR3JpZChlb0xpc3QuZW9HcmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFjdGl2ZSk9XCJvU29ydC5vbkFjdGl2ZUNoYW5nZWQoJGV2ZW50KVwiIFtzb3J0RmllbGRzXT1cInNvcnRGaWVsZHNcIj48L2VvLWN1c3RvbS1zb3J0PlxuICAgICAgICAgIDwvZW8tb3ZlcmxheT5cblxuICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uIGFjdGlvbnMtYnV0dG9uXCIgKGNsaWNrKT1cImVvTGlzdC5zaG93QWN0aW9ucyhudWxsLCAnUFJFUEFSRURfSVRFTScpXCJcbiAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiJ2VvLm9iamVjdC5hY3Rpb25zLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX21vcmUuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJlby1ib2R5IGRhcmtcIj5cbiAgICAgICAgPGVvLWdyaWQgI2VvR3JpZCAqbmdJZj1cImdyaWRPcHRpb25zPy5yb3dEYXRhXCIgW2dyaWRPcHRpb25zXT1cImdyaWRPcHRpb25zXCIgW2Z1bGxXaWR0aF09XCJ0cnVlXCIgW3Nob3dIZWFkZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgW3Nob3dGb290ZXJdPVwidHJ1ZVwiIChlb0dyaWRDb3VudENoYW5nZWQpPVwiZW9MaXN0Lm9uQ291bnRDaGFuZ2VkKCRldmVudCk7XCJcbiAgICAgICAgICAoZW9HcmlkQ29udGV4dE1lbnVDbGljayk9XCJlb0xpc3Qub25Db250ZXh0TWVudSgkZXZlbnQsICdQUkVQQVJFRF9JVEVNJylcIlxuICAgICAgICAgIChlb0dyaWRTZWxlY3Rpb25DaGFuZ2VkKT1cImVvTGlzdC5vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGVvR3JpZEZvY3VzQ2hhbmdlZCk9XCJlb0xpc3Qub25Gb2N1c0NoYW5nZWQoJGV2ZW50KVwiPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgICAgPGVvLXRvdGFsLWNvdW50IFtncmlkQ291bnRdPVwiZW9MaXN0LmdyaWRDb3VudFwiIFtvdXRzaWRlR3JpZF09XCJmYWxzZVwiIGNsYXNzPVwiZmxleC1yb3dcIj48L2VvLXRvdGFsLWNvdW50PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5XCI+XG4gICAgICAgICAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgICBbZW1wdHlTdGF0ZV09XCJ7aWNvbjogJ2ljX3ByZXBhcmUuc3ZnJywgdGV4dDogb0ZpbHRlci5hY3RpdmUgPyAnZW8ubm8uZmlsdGVyLnJlc3VsdCcgOiAnZW8ucHJlcGFyZS5saXN0LmVtcHR5J31cIj48L2VvLWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgICA8ZW8tcmVzZXQtZmlsdGVyIFtpc0ZpbHRlckFjdGl2ZV09XCJvRmlsdGVyLmFjdGl2ZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjRmlsdGVyLnJlc2V0RmlsdGVyKCk7Y1NvcnQucmVzZXQoKTtyZWZyZXNoR3JpZCgpXCI+PC9lby1yZXNldC1maWx0ZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZW8tZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tbGlzdC1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNzBcIj5cbiAgICA8ZW8tcHJlcGFyZS1kZXRhaWxzIFthcHBseVNlbGVjdGlvbl09XCJ7fVwiIFtlbXB0eVN0YXRlXT1cImVtcHR5U3RhdGVcIiAob25JdGVtQ2hhbmdlZCk9XCJ1cGRhdGVMaXN0KCRldmVudClcIlxuICAgICAgKG9uSXRlbVJlbW92ZSk9XCJyZW1vdmUoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yXCIgKm5nSWY9XCJncmlkRGF0YT8ubGVuZ3RoXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gc2Vjb25kYXJ5XCIgKGNsaWNrKT1cInJlbW92ZSgpXCIgdHJhbnNsYXRlPmVvLnByZXBhcmUuZGV0YWlscy5pdGVtLmdvbmUucmVtb3ZlPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2VvLXByZXBhcmUtZGV0YWlscz5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwveXZjLXNwbGl0LXZpZXc+Il19