ca-components 0.0.78 → 0.0.79

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 (35) hide show
  1. package/esm2022/lib/components/ca-filters/ca-filter.component.mjs +59 -5
  2. package/esm2022/lib/components/ca-filters/components/ca-dispatcher-filter/ca-dispatcher-filter.component.mjs +14 -35
  3. package/esm2022/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.mjs +10 -9
  4. package/esm2022/lib/components/ca-filters/components/ca-pm-filter/ca-pm-filter.component.mjs +8 -8
  5. package/esm2022/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.mjs +28 -23
  6. package/esm2022/lib/components/ca-filters/components/ca-status-filter/ca-status-filter.component.mjs +13 -9
  7. package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.mjs +62 -37
  8. package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/config/ca-trailer-type-filter.config.mjs +15 -0
  9. package/esm2022/lib/components/ca-filters/components/ca-trailer-type-filter/config/index.mjs +2 -0
  10. package/esm2022/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.mjs +61 -37
  11. package/esm2022/lib/components/ca-filters/components/ca-truck-type-filter/config/ca-truck-type-filter.config.mjs +15 -0
  12. package/esm2022/lib/components/ca-filters/pipes/filter-popover-conditions.pipe.mjs +2 -1
  13. package/esm2022/lib/components/ca-filters/utils/constants/directive.constants.mjs +141 -141
  14. package/esm2022/lib/components/ca-filters/utils/helpers/filter.helper.mjs +13 -12
  15. package/esm2022/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.mjs +10 -5
  16. package/esm2022/lib/components/ca-payroll-list-summary-overview-table/ca-payroll-list-summary-overview-table.component.mjs +1 -1
  17. package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/ca-upload-dropzone.component.mjs +8 -12
  18. package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/helpers/file.helper.mjs +5 -7
  19. package/esm2022/lib/components/ca-upload-files/components/ca-upload-dropzone/models/file-config.model.mjs +1 -1
  20. package/esm2022/lib/models/array-status.model.mjs +1 -1
  21. package/fesm2022/ca-components.mjs +448 -328
  22. package/fesm2022/ca-components.mjs.map +1 -1
  23. package/lib/components/ca-filters/ca-filter.component.d.ts +8 -1
  24. package/lib/components/ca-filters/components/ca-money-filter/ca-money-filter.component.d.ts +4 -3
  25. package/lib/components/ca-filters/components/ca-state-filter/ca-state-filter.component.d.ts +5 -5
  26. package/lib/components/ca-filters/components/ca-trailer-type-filter/ca-trailer-type-filter.component.d.ts +12 -5
  27. package/lib/components/ca-filters/components/ca-trailer-type-filter/config/ca-trailer-type-filter.config.d.ts +4 -0
  28. package/lib/components/ca-filters/components/ca-trailer-type-filter/config/index.d.ts +1 -0
  29. package/lib/components/ca-filters/components/ca-truck-type-filter/ca-truck-type-filter.component.d.ts +13 -6
  30. package/lib/components/ca-filters/components/ca-truck-type-filter/config/ca-truck-type-filter.config.d.ts +4 -0
  31. package/lib/components/ca-payroll-list-summary-overview/ca-payroll-list-summary-overview.component.d.ts +4 -2
  32. package/lib/components/ca-upload-files/components/ca-upload-dropzone/helpers/file.helper.d.ts +1 -1
  33. package/lib/components/ca-upload-files/components/ca-upload-dropzone/models/file-config.model.d.ts +1 -1
  34. package/lib/models/array-status.model.d.ts +2 -1
  35. package/package.json +1 -1
@@ -51,7 +51,7 @@ export class CaStatusFilterComponent {
51
51
  const selectedUsersIdArray = [];
52
52
  this.totalFiltersNum = this.filterActiveArray.length;
53
53
  const mainArray = this.loadStatusOptionsArray;
54
- mainArray.map((item) => {
54
+ mainArray.forEach((item) => {
55
55
  if (item.isSelected) {
56
56
  item['currentSet'] = true;
57
57
  }
@@ -59,7 +59,7 @@ export class CaStatusFilterComponent {
59
59
  item['currentSet'] = false;
60
60
  }
61
61
  });
62
- this.filterActiveArray.map((data) => {
62
+ this.filterActiveArray.forEach((data) => {
63
63
  selectedUsersIdArray.push(data.id);
64
64
  });
65
65
  queryParams = selectedUsersIdArray;
@@ -79,9 +79,12 @@ export class CaStatusFilterComponent {
79
79
  if (event)
80
80
  event.stopPropagation();
81
81
  this.selectedUser = [];
82
- this.loadStatusOptionsArray.map((item) => {
82
+ this.loadStatusOptionsArray = this.loadStatusOptionsArray.map((item) => {
83
83
  item.isSelected = false;
84
+ item.currentSet = false;
85
+ return item;
84
86
  });
87
+ this.checkFilterActiveValue();
85
88
  this.isButtonAvailable = true;
86
89
  this.filterActiveArray = [];
87
90
  this.totalFiltersNum = 0;
@@ -90,6 +93,7 @@ export class CaStatusFilterComponent {
90
93
  action,
91
94
  type: this.type,
92
95
  filterType: this.type,
96
+ queryParams: [],
93
97
  };
94
98
  return data;
95
99
  }
@@ -112,7 +116,7 @@ export class CaStatusFilterComponent {
112
116
  addToSelectedUser(item, indx) {
113
117
  const mainArray = this.loadStatusOptionsArray;
114
118
  mainArray[indx].isSelected = true;
115
- this.unselectedVisibleCount = mainArray.filter((item2) => !item2.isSelected)?.length;
119
+ this.unselectedVisibleCount = mainArray.filter((status) => !status.isSelected)?.length;
116
120
  this.selectedUser.push(item);
117
121
  this.checkFilterActiveValue();
118
122
  }
@@ -120,12 +124,12 @@ export class CaStatusFilterComponent {
120
124
  this.selectedUser.splice(indx, 1);
121
125
  const id = item.id;
122
126
  const mainArray = this.loadStatusOptionsArray;
123
- mainArray.map((item2) => {
124
- if (item2.id === id) {
125
- item2.isSelected = false;
127
+ mainArray.forEach((status) => {
128
+ if (status.id === id) {
129
+ status.isSelected = false;
126
130
  }
127
131
  });
128
- this.unselectedVisibleCount = mainArray.filter((item2) => !item2.isSelected)?.length;
132
+ this.unselectedVisibleCount = mainArray.filter((status) => !status.isSelected)?.length;
129
133
  this.checkFilterActiveValue();
130
134
  }
131
135
  checkFilterActiveValue() {
@@ -173,4 +177,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
173
177
  }], loadStatusOptionsArray: [{
174
178
  type: Input
175
179
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Etc3RhdHVzLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1maWx0ZXJzL2NvbXBvbmVudHMvY2Etc3RhdHVzLWZpbHRlci9jYS1zdGF0dXMtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1zdGF0dXMtZmlsdGVyL2NhLXN0YXR1cy1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBR0wsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLFVBQVU7QUFDVixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsUUFBUTtBQUNSLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxRQUFRO0FBQ1IsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFaEcsYUFBYTtBQUNiLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVB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cG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG4vLyBtb2R1bGVzXG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbi8vIGVudW1zXG5pbXBvcnQgeyBMb2FkRmlsdGVyU3RyaW5nRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zL2xvYWQtZmlsdGVyLXN0cmluZy5lbnVtJztcbmltcG9ydCB7IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtIH0gZnJvbSAnLi4vLi4vLi4vY2EtbWFwL2VudW1zL3Rvb2xiYXItZmlsdGVyLXN0cmluZy5lbnVtJztcbmltcG9ydCB7IExvYWRTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMvbG9hZC1zdGF0dXMuZW51bSc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBEcm9wZG93bkxvYWRTdGF0dXNDb2xvclBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi9waXBlcy9kcm9wZG93bi1sb2FkLXN0YXR1cy1jb2xvci5waXBlJztcblxuLy8gYW5pbWF0aW9uc1xuaW1wb3J0IHsgaW5PdXRBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL2luLW91dC5hbmltYXRpb24nO1xuaW1wb3J0IHsgc2hvd0FuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvc2hvdy5hbmltYXRpb24nO1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcy9jYS1maWx0ZXJzLXN2Zy1yb3V0ZXMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IEFycmF5U3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2FycmF5LXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQtcGFyYW1zLm1vZGVsJztcblxuLy8gc2VydmljZXNcbmltcG9ydCB7IFRydWNrYXNzaXN0VGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdHJ1Y2thc3Npc3QtdGFibGUuc2VydmljZSc7XG5cbi8vIGhlbHBlcnNcbmltcG9ydCB7IEZpbHRlckhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxzL2hlbHBlcnMvZmlsdGVyLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYS1zdGF0dXMtZmlsdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIC8vIG1vZHVsZXNcbiAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAvLyBwaXBlc1xuICAgIERyb3Bkb3duTG9hZFN0YXR1c0NvbG9yUGlwZSxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhLXN0YXR1cy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYS1zdGF0dXMtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBpbk91dEFuaW1hdGlvbignaW5PdXRBbmltYXRpb24nKSxcbiAgICBzaG93QW5pbWF0aW9uKCdzaG93QW5pbWF0aW9uJyksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhU3RhdHVzRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0eXBlITogc3RyaW5nO1xuICBASW5wdXQoKSBpc0xlZ2VuZFZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNGaWx0ZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdG9Eb1N1YlR5cGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxvYWRTdGF0dXNPcHRpb25zQXJyYXkhOiBBcnJheVN0YXR1c1tdO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgdW5zZWxlY3RlZFZpc2libGVDb3VudDogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgc2VsZWN0ZWRVc2VyOiBBcnJheVN0YXR1c1tdID0gW107XG5cbiAgcHVibGljIGlzQnV0dG9uQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc0FzY2VuZGluZ1NvcnRPcmRlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHVibGljIGxvYWRTdGF0dXNFbnVtID0gTG9hZFN0YXR1c0VudW07XG4gIHB1YmxpYyBmaWx0ZXJBY3RpdmVBcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICBwdWJsaWMgdG90YWxGaWx0ZXJzTnVtOiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIHNlcnZpY2VzXG4gICAgcHJpdmF0ZSB0YWJsZVNlcnZpY2U6IFRydWNrYXNzaXN0VGFibGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndhdGNoTG9hZFN0YXR1c0ZpbHRlclZhbHVlQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBwdWJsaWMgb25GaWx0ZXJDbG9zZSgpOiB2b2lkIHtcbiAgICBGaWx0ZXJIZWxwZXIuaGFuZGxlRmlsdGVyQ2xvc2UoXG4gICAgICB0aGlzLmxvYWRTdGF0dXNPcHRpb25zQXJyYXksXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcixcbiAgICAgIHRoaXMucmVtb3ZlRnJvbVNlbGVjdGVkVXNlci5iaW5kKHRoaXMpLFxuICAgICAgdGhpcy5hZGRUb1NlbGVjdGVkVXNlci5iaW5kKHRoaXMpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWx0ZXJWYWx1ZSgpOiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHtcbiAgICBsZXQgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICBsZXQgc3ViVHlwZSA9IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUi50b1N0cmluZygpO1xuXG4gICAgdGhpcy5maWx0ZXJBY3RpdmVBcnJheSA9IFsuLi50aGlzLnNlbGVjdGVkVXNlcl07XG4gICAgY29uc3Qgc2VsZWN0ZWRVc2Vyc0lkQXJyYXk6IG51bWJlcltdID0gW107XG4gICAgdGhpcy50b3RhbEZpbHRlcnNOdW0gPSB0aGlzLmZpbHRlckFjdGl2ZUFycmF5Lmxlbmd0aDtcblxuICAgIGNvbnN0IG1haW5BcnJheTogQXJyYXlTdGF0dXNbXSA9IHRoaXMubG9hZFN0YXR1c09wdGlvbnNBcnJheTtcblxuICAgIG1haW5BcnJheS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgaXRlbVsnY3VycmVudFNldCddID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZW1bJ2N1cnJlbnRTZXQnXSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5maWx0ZXJBY3RpdmVBcnJheS5tYXAoKGRhdGEpID0+IHtcbiAgICAgIHNlbGVjdGVkVXNlcnNJZEFycmF5LnB1c2goZGF0YS5pZCEpO1xuICAgIH0pO1xuXG4gICAgcXVlcnlQYXJhbXMgPSBzZWxlY3RlZFVzZXJzSWRBcnJheTtcbiAgICBzdWJUeXBlID1cbiAgICAgIHRoaXMudG9Eb1N1YlR5cGUgPz9cbiAgICAgIFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUi50b1N0cmluZygpO1xuXG4gICAgY29uc3QgYWN0aW9uID0gJ1NldCc7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGZpbHRlclR5cGU6IHRoaXMudHlwZSxcbiAgICAgIGFjdGlvbixcbiAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgICAgc3ViVHlwZSxcbiAgICB9O1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWxsKGV2ZW50PzogRXZlbnQpOiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHtcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgdGhpcy5zZWxlY3RlZFVzZXIgPSBbXTtcblxuICAgIHRoaXMubG9hZFN0YXR1c09wdGlvbnNBcnJheS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZSA9IHRydWU7XG4gICAgdGhpcy5maWx0ZXJBY3RpdmVBcnJheSA9IFtdO1xuICAgIHRoaXMudG90YWxGaWx0ZXJzTnVtID0gMDtcblxuICAgIGNvbnN0IGFjdGlvbiA9ICdDbGVhcic7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGFjdGlvbixcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIGZpbHRlclR5cGU6IHRoaXMudHlwZSxcbiAgICB9O1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHVibGljIHNvcnRJdGVtcygpOiB2b2lkIHtcbiAgICBjb25zdCBzb3J0UmVzdWx0ID0gRmlsdGVySGVscGVyLnNvcnRJdGVtc0NvdW50KFxuICAgICAgdGhpcy5sb2FkU3RhdHVzT3B0aW9uc0FycmF5LFxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXIsXG4gICAgICB0aGlzLmlzQXNjZW5kaW5nU29ydE9yZGVyXG4gICAgKTtcblxuICAgIHRoaXMubG9hZFN0YXR1c09wdGlvbnNBcnJheSA9IHNvcnRSZXN1bHQuc29ydGVkRmlsdGVyQXJyYXk7XG4gICAgdGhpcy5zZWxlY3RlZFVzZXIgPSBzb3J0UmVzdWx0LnNvcnRlZFNlbGVjdGVkRmlsdGVyQXJyYXk7XG4gICAgdGhpcy5pc0FzY2VuZGluZ1NvcnRPcmRlciA9IHNvcnRSZXN1bHQuaXNBc2NlbmRpbmdTb3J0T3JkZXI7XG4gIH1cblxuICBwcml2YXRlIHdhdGNoTG9hZFN0YXR1c0ZpbHRlclZhbHVlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnR5cGUgPSBUb29sYmFyRmlsdGVyU3RyaW5nRW51bS5TVEFUVVNfRklMVEVSO1xuICAgIHRoaXMudGFibGVTZXJ2aWNlLmN1cnJlbnRMb2FkU3RhdHVzRmlsdGVyT3B0aW9uc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMgJiYgdGhpcy50eXBlID09PSBMb2FkRmlsdGVyU3RyaW5nRW51bS5TVEFUVVNfRklMVEVSKSB7XG4gICAgICAgICAgdGhpcy5sb2FkU3RhdHVzT3B0aW9uc0FycmF5ID0gcmVzLm9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFkZFRvU2VsZWN0ZWRVc2VyKGl0ZW06IEFycmF5U3RhdHVzLCBpbmR4OiBudW1iZXIpIHtcbiAgICBjb25zdCBtYWluQXJyYXkgPSB0aGlzLmxvYWRTdGF0dXNPcHRpb25zQXJyYXk7XG5cbiAgICBtYWluQXJyYXlbaW5keF0uaXNTZWxlY3RlZCA9IHRydWU7XG5cbiAgICB0aGlzLnVuc2VsZWN0ZWRWaXNpYmxlQ291bnQgPSBtYWluQXJyYXkuZmlsdGVyKFxuICAgICAgKGl0ZW0yKSA9PiAhaXRlbTIuaXNTZWxlY3RlZFxuICAgICk/Lmxlbmd0aDtcblxuICAgIHRoaXMuc2VsZWN0ZWRVc2VyLnB1c2goaXRlbSk7XG5cbiAgICB0aGlzLmNoZWNrRmlsdGVyQWN0aXZlVmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVGcm9tU2VsZWN0ZWRVc2VyKGl0ZW06IEFycmF5U3RhdHVzLCBpbmR4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVXNlci5zcGxpY2UoaW5keCwgMSk7XG4gICAgY29uc3QgaWQgPSBpdGVtLmlkO1xuICAgIGNvbnN0IG1haW5BcnJheSA9IHRoaXMubG9hZFN0YXR1c09wdGlvbnNBcnJheTtcblxuICAgIG1haW5BcnJheS5tYXAoKGl0ZW0yKSA9PiB7XG4gICAgICBpZiAoaXRlbTIuaWQgPT09IGlkKSB7XG4gICAgICAgIGl0ZW0yLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudW5zZWxlY3RlZFZpc2libGVDb3VudCA9IG1haW5BcnJheS5maWx0ZXIoXG4gICAgICAoaXRlbTIpID0+ICFpdGVtMi5pc1NlbGVjdGVkXG4gICAgKT8ubGVuZ3RoO1xuXG4gICAgdGhpcy5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tGaWx0ZXJBY3RpdmVWYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJDaGVjayA9IEZpbHRlckhlbHBlci5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKFxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXIsXG4gICAgICB0aGlzLmZpbHRlckFjdGl2ZUFycmF5LFxuICAgICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZVxuICAgICk7XG5cbiAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlID0gZmlsdGVyQ2hlY2suaXNCdXR0b25BdmFpbGFibGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWU6IGtleW9mIHR5cGVvZiBDYUZpbHRlcnNTdmdSb3V0ZXMpOiBzdHJpbmcge1xuICAgIHJldHVybiBGaWx0ZXJIZWxwZXIuZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYm9yZGVyLWZpbHRlclwiPjwvZGl2PlxuPGRpdiBjbGFzcz1cInVzZXItaG9sZGVyXCIgKm5nSWY9XCJ0eXBlID09PSAnc3RhdHVzRmlsdGVyJ1wiPlxuICA8ZGl2IGNsYXNzPVwic3RhdHVzLWRhdGEtbWFpbi1ob2xkZXJcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZFVzZXI7IGxldCBpbmR4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInVzZXItZnJhbWUtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtdXNlci1ob2xkZXIgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1zdGFydFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInVzZXItbWFpbi1ob2xkZXJcIlxuICAgICAgICAgICAgW0Bpbk91dEFuaW1hdGlvbl09XCInaW4nXCJcbiAgICAgICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGcm9tU2VsZWN0ZWRVc2VyKGl0ZW0sIGluZHgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtdXNlci1mcmFtZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLXByb2ZpbGUtaW1nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXR1cy1jaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgIGxvYWRTdGF0dXNFbnVtW2l0ZW0uaWQhXSB8IGRyb3Bkb3duTG9hZFN0YXR1c0NvbG9yOiB0cnVlXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLW5hbWUtdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudGV4dC11cHBlcmNhc2VdPVwidHlwZSA9PT0gJ3N0YXR1c0ZpbHRlcidcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1uYW1lLXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MudGV4dC11cHBlcmNhc2VdPVwidHlwZSA9PT0gJ3N0YXR1c0ZpbHRlcidcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8uY291bnQ7IGVsc2Ugbm9Db3VudFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50LWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWN0aXZlQ291bnQgY2EtZm9udC1zZW1pLWJvbGRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uY291bnQgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9Db3VudD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uY291bnQ7IGVsc2Ugbm9Db3VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ3JlbW92ZVNlbGVjdGVkVmFsdWUnKVwiXG4gICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0NvdW50ZXI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1ob2xkZXIgYWN0aXZlQ291bnRlclwiPjI8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZyb21TZWxlY3RlZFVzZXIoaXRlbSwgaW5keClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1kZWxldGUgZC1mbGV4XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuY291bnRlck1hcmdpbl09XCJpdGVtLmNvdW50XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmctaWNvbiBbc3JjXT1cImdldFN2Z1BhdGgoJ3JlbW92ZVNlbGVjdGVkVmFsdWUnKVwiPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRVc2VyLmxlbmd0aCA+IDAgJiYgdW5zZWxlY3RlZFZpc2libGVDb3VudFwiXG4gICAgICAgIGNsYXNzPVwiYm9yZGVyLWZpbHRlciBib3JkZXItdGhyaXJkLW1hcmdpblwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGl0ZW0gb2YgbG9hZFN0YXR1c09wdGlvbnNBcnJheTtcbiAgICAgICAgbGV0IGluZHggPSBpbmRleDtcbiAgICAgICAgdHJhY2tCeTogdHJhY2tCeUluZGV4XG4gICAgICBcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWZyYW1lLWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5oaWRkZW4gJiYgIWl0ZW0uaXNTZWxlY3RlZFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtAaW5PdXRBbmltYXRpb25dPVwiJ2luJ1wiXG4gICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkVG9TZWxlY3RlZFVzZXIoaXRlbSwgaW5keClcIlxuICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLW1haW4taG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcjtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLXByb2ZpbGUtaW1nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdHVzLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiXG4gICAgICAgICAgICAgICAgICBsb2FkU3RhdHVzRW51bVtpdGVtLmlkIV0gfCBkcm9wZG93bkxvYWRTdGF0dXNDb2xvcjogdHJ1ZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInVzZXItZnJhbWUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBmdy1ub3JtYWxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1uYW1lLXRleHQgdGV4dC11cHBlcmNhc2UgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgaXRlbS5uYW1lIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0/LmNvdW50XCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnQtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBjYS1mb250LXNlbWktYm9sZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbS5jb3VudCB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJcbiAgICAhaXNMZWdlbmRWaWV3ICYmICh0eXBlID09PSAnc3RhdHVzRmlsdGVyJyB8fCB0eXBlID09PSAnZGlzcGF0Y2hlckZpbHRlcicpXG4gIFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyXCI+PC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Etc3RhdHVzLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYS1maWx0ZXJzL2NvbXBvbmVudHMvY2Etc3RhdHVzLWZpbHRlci9jYS1zdGF0dXMtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhLWZpbHRlcnMvY29tcG9uZW50cy9jYS1zdGF0dXMtZmlsdGVyL2NhLXN0YXR1cy1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBR0wsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLFVBQVU7QUFDVixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsUUFBUTtBQUNSLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxRQUFRO0FBQ1IsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFaEcsYUFBYTtBQUNiLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVB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QUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG4vLyBtb2R1bGVzXG5pbXBvcnQgeyBBbmd1bGFyU3ZnSWNvbk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3ZnLWljb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbi8vIGVudW1zXG5pbXBvcnQgeyBMb2FkRmlsdGVyU3RyaW5nRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zL2xvYWQtZmlsdGVyLXN0cmluZy5lbnVtJztcbmltcG9ydCB7IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtIH0gZnJvbSAnLi4vLi4vLi4vY2EtbWFwL2VudW1zL3Rvb2xiYXItZmlsdGVyLXN0cmluZy5lbnVtJztcbmltcG9ydCB7IExvYWRTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZW51bXMvbG9hZC1zdGF0dXMuZW51bSc7XG5cbi8vIHBpcGVzXG5pbXBvcnQgeyBEcm9wZG93bkxvYWRTdGF0dXNDb2xvclBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi9waXBlcy9kcm9wZG93bi1sb2FkLXN0YXR1cy1jb2xvci5waXBlJztcblxuLy8gYW5pbWF0aW9uc1xuaW1wb3J0IHsgaW5PdXRBbmltYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9hbmltYXRpb25zL2luLW91dC5hbmltYXRpb24nO1xuaW1wb3J0IHsgc2hvd0FuaW1hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL2FuaW1hdGlvbnMvc2hvdy5hbmltYXRpb24nO1xuaW1wb3J0IHsgQ2FGaWx0ZXJzU3ZnUm91dGVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvc3ZnLXJvdXRlcy9jYS1maWx0ZXJzLXN2Zy1yb3V0ZXMnO1xuXG4vLyBtb2RlbHNcbmltcG9ydCB7IEFycmF5U3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2FycmF5LXN0YXR1cy5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLW91dHB1dC5tb2RlbCc7XG5pbXBvcnQgeyBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1vdXRwdXQtcGFyYW1zLm1vZGVsJztcblxuLy8gc2VydmljZXNcbmltcG9ydCB7IFRydWNrYXNzaXN0VGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdHJ1Y2thc3Npc3QtdGFibGUuc2VydmljZSc7XG5cbi8vIGhlbHBlcnNcbmltcG9ydCB7IEZpbHRlckhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxzL2hlbHBlcnMvZmlsdGVyLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jYS1zdGF0dXMtZmlsdGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIC8vIG1vZHVsZXNcbiAgICBBbmd1bGFyU3ZnSWNvbk1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAvLyBwaXBlc1xuICAgIERyb3Bkb3duTG9hZFN0YXR1c0NvbG9yUGlwZSxcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhLXN0YXR1cy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYS1zdGF0dXMtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBpbk91dEFuaW1hdGlvbignaW5PdXRBbmltYXRpb24nKSxcbiAgICBzaG93QW5pbWF0aW9uKCdzaG93QW5pbWF0aW9uJyksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhU3RhdHVzRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0eXBlITogc3RyaW5nO1xuICBASW5wdXQoKSBpc0xlZ2VuZFZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNGaWx0ZXJBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdG9Eb1N1YlR5cGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxvYWRTdGF0dXNPcHRpb25zQXJyYXkhOiBBcnJheVN0YXR1c1tdO1xuXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgdW5zZWxlY3RlZFZpc2libGVDb3VudDogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgc2VsZWN0ZWRVc2VyOiBBcnJheVN0YXR1c1tdID0gW107XG5cbiAgcHVibGljIGlzQnV0dG9uQXZhaWxhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc0FzY2VuZGluZ1NvcnRPcmRlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHVibGljIGxvYWRTdGF0dXNFbnVtID0gTG9hZFN0YXR1c0VudW07XG4gIHB1YmxpYyBmaWx0ZXJBY3RpdmVBcnJheTogQXJyYXlTdGF0dXNbXSA9IFtdO1xuICBwdWJsaWMgdG90YWxGaWx0ZXJzTnVtOiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIHNlcnZpY2VzXG4gICAgcHJpdmF0ZSB0YWJsZVNlcnZpY2U6IFRydWNrYXNzaXN0VGFibGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndhdGNoTG9hZFN0YXR1c0ZpbHRlclZhbHVlQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBwdWJsaWMgb25GaWx0ZXJDbG9zZSgpOiB2b2lkIHtcbiAgICBGaWx0ZXJIZWxwZXIuaGFuZGxlRmlsdGVyQ2xvc2UoXG4gICAgICB0aGlzLmxvYWRTdGF0dXNPcHRpb25zQXJyYXksXG4gICAgICB0aGlzLnNlbGVjdGVkVXNlcixcbiAgICAgIHRoaXMucmVtb3ZlRnJvbVNlbGVjdGVkVXNlci5iaW5kKHRoaXMpLFxuICAgICAgdGhpcy5hZGRUb1NlbGVjdGVkVXNlci5iaW5kKHRoaXMpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWx0ZXJWYWx1ZSgpOiBmaWx0ZXJPdXRwdXQgfCBmaWx0ZXJPdXRwdXRXaXRoUGFyYW1zIHtcbiAgICBsZXQgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICBsZXQgc3ViVHlwZSA9IFRvb2xiYXJGaWx0ZXJTdHJpbmdFbnVtLkVNUFRZX1NUUklOR19QTEFDRUhPTERFUi50b1N0cmluZygpO1xuXG4gICAgdGhpcy5maWx0ZXJBY3RpdmVBcnJheSA9IFsuLi50aGlzLnNlbGVjdGVkVXNlcl07XG4gICAgY29uc3Qgc2VsZWN0ZWRVc2Vyc0lkQXJyYXk6IG51bWJlcltdID0gW107XG4gICAgdGhpcy50b3RhbEZpbHRlcnNOdW0gPSB0aGlzLmZpbHRlckFjdGl2ZUFycmF5Lmxlbmd0aDtcblxuICAgIGNvbnN0IG1haW5BcnJheTogQXJyYXlTdGF0dXNbXSA9IHRoaXMubG9hZFN0YXR1c09wdGlvbnNBcnJheTtcblxuICAgIG1haW5BcnJheS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5pc1NlbGVjdGVkKSB7XG4gICAgICAgIGl0ZW1bJ2N1cnJlbnRTZXQnXSA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpdGVtWydjdXJyZW50U2V0J10gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZmlsdGVyQWN0aXZlQXJyYXkuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgc2VsZWN0ZWRVc2Vyc0lkQXJyYXkucHVzaChkYXRhLmlkISk7XG4gICAgfSk7XG5cbiAgICBxdWVyeVBhcmFtcyA9IHNlbGVjdGVkVXNlcnNJZEFycmF5O1xuICAgIHN1YlR5cGUgPVxuICAgICAgdGhpcy50b0RvU3ViVHlwZSA/P1xuICAgICAgVG9vbGJhckZpbHRlclN0cmluZ0VudW0uRU1QVFlfU1RSSU5HX1BMQUNFSE9MREVSLnRvU3RyaW5nKCk7XG5cbiAgICBjb25zdCBhY3Rpb24gPSAnU2V0JztcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgYWN0aW9uLFxuICAgICAgcXVlcnlQYXJhbXMsXG4gICAgICBzdWJUeXBlLFxuICAgIH07XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJBbGwoZXZlbnQ/OiBFdmVudCk6IGZpbHRlck91dHB1dCB8IGZpbHRlck91dHB1dFdpdGhQYXJhbXMge1xuICAgIGlmIChldmVudCkgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkVXNlciA9IFtdO1xuXG4gICAgdGhpcy5sb2FkU3RhdHVzT3B0aW9uc0FycmF5ID0gdGhpcy5sb2FkU3RhdHVzT3B0aW9uc0FycmF5Lm1hcCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICBpdGVtLmN1cnJlbnRTZXQgPSBmYWxzZTtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH0pO1xuXG4gICAgdGhpcy5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk7XG5cbiAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlID0gdHJ1ZTtcbiAgICB0aGlzLmZpbHRlckFjdGl2ZUFycmF5ID0gW107XG4gICAgdGhpcy50b3RhbEZpbHRlcnNOdW0gPSAwO1xuXG4gICAgY29uc3QgYWN0aW9uID0gJ0NsZWFyJztcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgYWN0aW9uLFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgZmlsdGVyVHlwZTogdGhpcy50eXBlLFxuICAgICAgcXVlcnlQYXJhbXM6IFtdLFxuICAgIH07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0SXRlbXMoKTogdm9pZCB7XG4gICAgY29uc3Qgc29ydFJlc3VsdCA9IEZpbHRlckhlbHBlci5zb3J0SXRlbXNDb3VudChcbiAgICAgIHRoaXMubG9hZFN0YXR1c09wdGlvbnNBcnJheSxcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VyLFxuICAgICAgdGhpcy5pc0FzY2VuZGluZ1NvcnRPcmRlclxuICAgICk7XG5cbiAgICB0aGlzLmxvYWRTdGF0dXNPcHRpb25zQXJyYXkgPSBzb3J0UmVzdWx0LnNvcnRlZEZpbHRlckFycmF5O1xuICAgIHRoaXMuc2VsZWN0ZWRVc2VyID0gc29ydFJlc3VsdC5zb3J0ZWRTZWxlY3RlZEZpbHRlckFycmF5O1xuICAgIHRoaXMuaXNBc2NlbmRpbmdTb3J0T3JkZXIgPSBzb3J0UmVzdWx0LmlzQXNjZW5kaW5nU29ydE9yZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSB3YXRjaExvYWRTdGF0dXNGaWx0ZXJWYWx1ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy50eXBlID0gVG9vbGJhckZpbHRlclN0cmluZ0VudW0uU1RBVFVTX0ZJTFRFUjtcbiAgICB0aGlzLnRhYmxlU2VydmljZS5jdXJyZW50TG9hZFN0YXR1c0ZpbHRlck9wdGlvbnNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICBpZiAocmVzICYmIHRoaXMudHlwZSA9PT0gTG9hZEZpbHRlclN0cmluZ0VudW0uU1RBVFVTX0ZJTFRFUikge1xuICAgICAgICAgIHRoaXMubG9hZFN0YXR1c09wdGlvbnNBcnJheSA9IHJlcy5vcHRpb25zO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb1NlbGVjdGVkVXNlcihpdGVtOiBBcnJheVN0YXR1cywgaW5keDogbnVtYmVyKSB7XG4gICAgY29uc3QgbWFpbkFycmF5ID0gdGhpcy5sb2FkU3RhdHVzT3B0aW9uc0FycmF5O1xuXG4gICAgbWFpbkFycmF5W2luZHhdLmlzU2VsZWN0ZWQgPSB0cnVlO1xuXG4gICAgdGhpcy51bnNlbGVjdGVkVmlzaWJsZUNvdW50ID0gbWFpbkFycmF5LmZpbHRlcihcbiAgICAgIChzdGF0dXMpID0+ICFzdGF0dXMuaXNTZWxlY3RlZFxuICAgICk/Lmxlbmd0aDtcblxuICAgIHRoaXMuc2VsZWN0ZWRVc2VyLnB1c2goaXRlbSk7XG5cbiAgICB0aGlzLmNoZWNrRmlsdGVyQWN0aXZlVmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVGcm9tU2VsZWN0ZWRVc2VyKGl0ZW06IEFycmF5U3RhdHVzLCBpbmR4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVXNlci5zcGxpY2UoaW5keCwgMSk7XG4gICAgY29uc3QgaWQgPSBpdGVtLmlkO1xuICAgIGNvbnN0IG1haW5BcnJheSA9IHRoaXMubG9hZFN0YXR1c09wdGlvbnNBcnJheTtcblxuICAgIG1haW5BcnJheS5mb3JFYWNoKChzdGF0dXMpID0+IHtcbiAgICAgIGlmIChzdGF0dXMuaWQgPT09IGlkKSB7XG4gICAgICAgIHN0YXR1cy5pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnVuc2VsZWN0ZWRWaXNpYmxlQ291bnQgPSBtYWluQXJyYXkuZmlsdGVyKFxuICAgICAgKHN0YXR1cykgPT4gIXN0YXR1cy5pc1NlbGVjdGVkXG4gICAgKT8ubGVuZ3RoO1xuXG4gICAgdGhpcy5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tGaWx0ZXJBY3RpdmVWYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJDaGVjayA9IEZpbHRlckhlbHBlci5jaGVja0ZpbHRlckFjdGl2ZVZhbHVlKFxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXIsXG4gICAgICB0aGlzLmZpbHRlckFjdGl2ZUFycmF5LFxuICAgICAgdGhpcy5pc0J1dHRvbkF2YWlsYWJsZVxuICAgICk7XG5cbiAgICB0aGlzLmlzQnV0dG9uQXZhaWxhYmxlID0gZmlsdGVyQ2hlY2suaXNCdXR0b25BdmFpbGFibGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWU6IGtleW9mIHR5cGVvZiBDYUZpbHRlcnNTdmdSb3V0ZXMpOiBzdHJpbmcge1xuICAgIHJldHVybiBGaWx0ZXJIZWxwZXIuZ2V0U3ZnUGF0aChwcm9wZXJ0eU5hbWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYm9yZGVyLWZpbHRlclwiPjwvZGl2PlxuPGRpdiBjbGFzcz1cInVzZXItaG9sZGVyXCIgKm5nSWY9XCJ0eXBlID09PSAnc3RhdHVzRmlsdGVyJ1wiPlxuICA8ZGl2IGNsYXNzPVwic3RhdHVzLWRhdGEtbWFpbi1ob2xkZXJcIj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZWxlY3RlZFVzZXI7IGxldCBpbmR4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInVzZXItZnJhbWUtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtdXNlci1ob2xkZXIgZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1zdGFydFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInVzZXItbWFpbi1ob2xkZXJcIlxuICAgICAgICAgICAgW0Bpbk91dEFuaW1hdGlvbl09XCInaW4nXCJcbiAgICAgICAgICAgIFtAc2hvd0FuaW1hdGlvbl09XCIhIWlzRmlsdGVyQWN0aXZlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGcm9tU2VsZWN0ZWRVc2VyKGl0ZW0sIGluZHgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtdXNlci1mcmFtZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNhLWZvbnQtYm9sZFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLXByb2ZpbGUtaW1nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXR1cy1jaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgIGxvYWRTdGF0dXNFbnVtW2l0ZW0uaWQhXSB8IGRyb3Bkb3duTG9hZFN0YXR1c0NvbG9yOiB0cnVlXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLW5hbWUtdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MudGV4dC11cHBlcmNhc2VdPVwidHlwZSA9PT0gJ3N0YXR1c0ZpbHRlcidcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1uYW1lLXRleHQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MudGV4dC11cHBlcmNhc2VdPVwidHlwZSA9PT0gJ3N0YXR1c0ZpbHRlcidcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPiB7eyBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8uY291bnQ7IGVsc2Ugbm9Db3VudFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50LWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWN0aXZlQ291bnQgY2EtZm9udC1zZW1pLWJvbGRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uY291bnQgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9Db3VudD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uY291bnQ7IGVsc2Ugbm9Db3VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnLWljb25cbiAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImdldFN2Z1BhdGgoJ3JlbW92ZVNlbGVjdGVkVmFsdWUnKVwiXG4gICAgICAgICAgICAgICAgICAgID48L3N2Zy1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0NvdW50ZXI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY291bnRlci1ob2xkZXIgYWN0aXZlQ291bnRlclwiPjI8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZyb21TZWxlY3RlZFVzZXIoaXRlbSwgaW5keClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbi1kZWxldGUgZC1mbGV4XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuY291bnRlck1hcmdpbl09XCJpdGVtLmNvdW50XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzdmctaWNvbiBbc3JjXT1cImdldFN2Z1BhdGgoJ3JlbW92ZVNlbGVjdGVkVmFsdWUnKVwiPjwvc3ZnLWljb24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRVc2VyLmxlbmd0aCA+IDAgJiYgdW5zZWxlY3RlZFZpc2libGVDb3VudFwiXG4gICAgICAgIGNsYXNzPVwiYm9yZGVyLWZpbHRlciBib3JkZXItdGhyaXJkLW1hcmdpblwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdGb3I9XCJcbiAgICAgICAgbGV0IGl0ZW0gb2YgbG9hZFN0YXR1c09wdGlvbnNBcnJheTtcbiAgICAgICAgbGV0IGluZHggPSBpbmRleDtcbiAgICAgICAgdHJhY2tCeTogdHJhY2tCeUluZGV4XG4gICAgICBcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWZyYW1lLWhvbGRlciBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5oaWRkZW4gJiYgIWl0ZW0uaXNTZWxlY3RlZFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtAaW5PdXRBbmltYXRpb25dPVwiJ2luJ1wiXG4gICAgICAgICAgICBbQHNob3dBbmltYXRpb25dPVwiISFpc0ZpbHRlckFjdGl2ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkVG9TZWxlY3RlZFVzZXIoaXRlbSwgaW5keClcIlxuICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLW1haW4taG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcjtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLXByb2ZpbGUtaW1nIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3RhdHVzLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiXG4gICAgICAgICAgICAgICAgICBsb2FkU3RhdHVzRW51bVtpdGVtLmlkIV0gfCBkcm9wZG93bkxvYWRTdGF0dXNDb2xvcjogdHJ1ZVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInVzZXItZnJhbWUgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBmdy1ub3JtYWxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1uYW1lLXRleHQgdGV4dC11cHBlcmNhc2UgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj4ge3sgaXRlbS5uYW1lIH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0/LmNvdW50XCI+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnQtaG9sZGVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBjYS1mb250LXNlbWktYm9sZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbS5jb3VudCB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJcbiAgICAhaXNMZWdlbmRWaWV3ICYmICh0eXBlID09PSAnc3RhdHVzRmlsdGVyJyB8fCB0eXBlID09PSAnZGlzcGF0Y2hlckZpbHRlcicpXG4gIFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJib3JkZXItZmlsdGVyXCI+PC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==