@alfresco/adf-process-services-cloud 6.9.0 → 6.10.0-10006186111

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 (169) hide show
  1. package/esm2020/lib/app/app-list-cloud.module.mjs +5 -5
  2. package/esm2020/lib/app/components/app-details-cloud.component.mjs +5 -5
  3. package/esm2020/lib/app/components/app-list-cloud.component.mjs +4 -4
  4. package/esm2020/lib/app/services/apps-process-cloud.service.mjs +4 -4
  5. package/esm2020/lib/common/date-range-filter/date-range-filter.component.mjs +6 -6
  6. package/esm2020/lib/common/date-range-filter/date-range-filter.service.mjs +4 -4
  7. package/esm2020/lib/common/process-common.module.mjs +5 -5
  8. package/esm2020/lib/form/components/cloud-form-rendering.service.mjs +4 -4
  9. package/esm2020/lib/form/components/form-cloud-custom-outcomes.component.mjs +4 -4
  10. package/esm2020/lib/form/components/form-cloud.component.mjs +10 -12
  11. package/esm2020/lib/form/components/form-definition-selector-cloud.component.mjs +4 -4
  12. package/esm2020/lib/form/components/spinner/form-spinner.component.mjs +4 -4
  13. package/esm2020/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.mjs +11 -12
  14. package/esm2020/lib/form/components/widgets/attach-file/file-properties-table-cloud.component.mjs +5 -5
  15. package/esm2020/lib/form/components/widgets/attach-file/upload-cloud.widget.mjs +6 -7
  16. package/esm2020/lib/form/components/widgets/data-table/data-table-adapter.widget.mjs +7 -7
  17. package/esm2020/lib/form/components/widgets/data-table/data-table.widget.mjs +5 -5
  18. package/esm2020/lib/form/components/widgets/data-table/helpers/data-table-path-parser.helper.mjs +11 -3
  19. package/esm2020/lib/form/components/widgets/date/date-cloud.widget.mjs +10 -11
  20. package/esm2020/lib/form/components/widgets/display-external-property/display-external-property.widget.mjs +5 -5
  21. package/esm2020/lib/form/components/widgets/display-rich-text/display-rich-text.widget.mjs +4 -4
  22. package/esm2020/lib/form/components/widgets/dropdown/dropdown-cloud.widget.mjs +20 -10
  23. package/esm2020/lib/form/components/widgets/file-viewer/file-viewer.widget.mjs +4 -4
  24. package/esm2020/lib/form/components/widgets/group/group-cloud.widget.mjs +7 -8
  25. package/esm2020/lib/form/components/widgets/people/people-cloud.widget.mjs +7 -8
  26. package/esm2020/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.mjs +4 -4
  27. package/esm2020/lib/form/components/widgets/properties-viewer/properties-viewer.widget.mjs +4 -4
  28. package/esm2020/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.mjs +6 -7
  29. package/esm2020/lib/form/form-cloud.module.mjs +5 -5
  30. package/esm2020/lib/form/services/content-cloud-node-selector.service.mjs +8 -8
  31. package/esm2020/lib/form/services/display-mode.service.mjs +4 -4
  32. package/esm2020/lib/form/services/form-cloud.service.mjs +7 -7
  33. package/esm2020/lib/form/services/form-definition-selector-cloud.service.mjs +4 -4
  34. package/esm2020/lib/form/services/process-cloud-content.service.mjs +10 -10
  35. package/esm2020/lib/form/services/spinner/form-cloud-spinner.service.mjs +4 -4
  36. package/esm2020/lib/group/components/group-cloud.component.mjs +12 -13
  37. package/esm2020/lib/group/group-cloud.module.mjs +5 -5
  38. package/esm2020/lib/group/pipe/group-initial.pipe.mjs +4 -4
  39. package/esm2020/lib/group/services/identity-group.service.mjs +4 -4
  40. package/esm2020/lib/material.module.mjs +135 -38
  41. package/esm2020/lib/people/components/people-cloud.component.mjs +12 -13
  42. package/esm2020/lib/people/people-cloud.module.mjs +5 -5
  43. package/esm2020/lib/people/services/identity-user.service.mjs +4 -4
  44. package/esm2020/lib/pipes/process-name-cloud.pipe.mjs +4 -4
  45. package/esm2020/lib/pipes/process-services-cloud-pipe.module.mjs +5 -5
  46. package/esm2020/lib/process/directives/cancel-process.directive.mjs +4 -4
  47. package/esm2020/lib/process/directives/process-directive.module.mjs +5 -5
  48. package/esm2020/lib/process/process-cloud.module.mjs +5 -5
  49. package/esm2020/lib/process/process-filters/components/edit-process-filter-cloud.component.mjs +34 -35
  50. package/esm2020/lib/process/process-filters/components/process-filter-dialog-cloud.component.mjs +7 -7
  51. package/esm2020/lib/process/process-filters/components/process-filters-cloud.component.mjs +5 -5
  52. package/esm2020/lib/process/process-filters/process-filters-cloud.module.mjs +5 -5
  53. package/esm2020/lib/process/process-filters/services/process-filter-cloud.service.mjs +4 -4
  54. package/esm2020/lib/process/process-header/components/process-header-cloud.component.mjs +10 -12
  55. package/esm2020/lib/process/process-header/process-header-cloud.module.mjs +5 -5
  56. package/esm2020/lib/process/process-list/components/process-list-cloud.component.mjs +4 -4
  57. package/esm2020/lib/process/process-list/process-list-cloud.module.mjs +5 -5
  58. package/esm2020/lib/process/process-list/services/process-list-cloud.service.mjs +4 -4
  59. package/esm2020/lib/process/process-list/services/process-task-list-cloud.service.mjs +4 -4
  60. package/esm2020/lib/process/services/process-cloud.service.mjs +4 -4
  61. package/esm2020/lib/process/start-process/components/start-process-cloud.component.mjs +14 -7
  62. package/esm2020/lib/process/start-process/services/start-process-cloud.service.mjs +4 -4
  63. package/esm2020/lib/process/start-process/start-process-cloud.module.mjs +5 -5
  64. package/esm2020/lib/process-services-cloud.module.mjs +5 -5
  65. package/esm2020/lib/rich-text-editor/rich-text-editor.component.mjs +13 -19
  66. package/esm2020/lib/rich-text-editor/rich-text-editor.module.mjs +5 -5
  67. package/esm2020/lib/services/base-cloud.service.mjs +4 -4
  68. package/esm2020/lib/services/local-preference-cloud.service.mjs +4 -4
  69. package/esm2020/lib/services/notification-cloud.service.mjs +4 -4
  70. package/esm2020/lib/services/user-preference-cloud.service.mjs +4 -4
  71. package/esm2020/lib/services/variable-mapper.sevice.mjs +4 -4
  72. package/esm2020/lib/task/directives/claim-task-cloud.directive.mjs +4 -4
  73. package/esm2020/lib/task/directives/complete-task.directive.mjs +4 -4
  74. package/esm2020/lib/task/directives/task-directive.module.mjs +5 -5
  75. package/esm2020/lib/task/directives/unclaim-task-cloud.directive.mjs +4 -4
  76. package/esm2020/lib/task/services/start-task-cloud.service.mjs +4 -4
  77. package/esm2020/lib/task/services/task-cloud.service.mjs +4 -4
  78. package/esm2020/lib/task/start-task/components/start-task-cloud.component.mjs +8 -8
  79. package/esm2020/lib/task/start-task/start-task-cloud.module.mjs +5 -5
  80. package/esm2020/lib/task/task-cloud.module.mjs +5 -5
  81. package/esm2020/lib/task/task-filters/components/base-task-filters-cloud.component.mjs +4 -4
  82. package/esm2020/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.mjs +4 -4
  83. package/esm2020/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter-cloud.component.mjs +13 -14
  84. package/esm2020/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.mjs +13 -14
  85. package/esm2020/lib/task/task-filters/components/service-task-filters-cloud.component.mjs +5 -5
  86. package/esm2020/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.mjs +4 -4
  87. package/esm2020/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.mjs +7 -7
  88. package/esm2020/lib/task/task-filters/components/task-filters-cloud.component.mjs +5 -5
  89. package/esm2020/lib/task/task-filters/services/service-task-filter-cloud.service.mjs +4 -4
  90. package/esm2020/lib/task/task-filters/services/task-filter-cloud.service.mjs +4 -4
  91. package/esm2020/lib/task/task-filters/task-filters-cloud.module.mjs +5 -5
  92. package/esm2020/lib/task/task-form/components/task-form-cloud.component.mjs +12 -6
  93. package/esm2020/lib/task/task-form/task-form.module.mjs +5 -5
  94. package/esm2020/lib/task/task-header/components/task-header-cloud.component.mjs +5 -5
  95. package/esm2020/lib/task/task-header/task-header-cloud.module.mjs +5 -5
  96. package/esm2020/lib/task/task-list/components/base-task-list-cloud.component.mjs +5 -5
  97. package/esm2020/lib/task/task-list/components/service-task-list-cloud.component.mjs +4 -4
  98. package/esm2020/lib/task/task-list/components/task-list-cloud.component.mjs +4 -4
  99. package/esm2020/lib/task/task-list/services/service-task-list-cloud.service.mjs +4 -4
  100. package/esm2020/lib/task/task-list/services/task-list-cloud.service.mjs +4 -4
  101. package/esm2020/lib/task/task-list/task-list-cloud.module.mjs +5 -5
  102. package/fesm2015/adf-process-services-cloud.mjs +5869 -5741
  103. package/fesm2015/adf-process-services-cloud.mjs.map +1 -1
  104. package/fesm2020/adf-process-services-cloud.mjs +3771 -3643
  105. package/fesm2020/adf-process-services-cloud.mjs.map +1 -1
  106. package/lib/app/components/app-details-cloud.component.d.ts +1 -1
  107. package/lib/app/components/app-list-cloud.component.d.ts +1 -1
  108. package/lib/common/date-range-filter/date-range-filter.component.d.ts +1 -1
  109. package/lib/form/components/form-cloud-custom-outcomes.component.d.ts +1 -1
  110. package/lib/form/components/form-cloud.component.d.ts +2 -2
  111. package/lib/form/components/form-cloud.component.scss +5 -8
  112. package/lib/form/components/form-definition-selector-cloud.component.d.ts +1 -1
  113. package/lib/form/components/spinner/form-spinner.component.d.ts +1 -1
  114. package/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.d.ts +1 -1
  115. package/lib/form/components/widgets/attach-file/attach-file-cloud-widget.component.scss +1 -3
  116. package/lib/form/components/widgets/attach-file/file-properties-table-cloud.component.d.ts +1 -1
  117. package/lib/form/components/widgets/attach-file/upload-cloud.widget.d.ts +1 -1
  118. package/lib/form/components/widgets/data-table/data-table.widget.d.ts +1 -1
  119. package/lib/form/components/widgets/data-table/helpers/data-table-path-parser.helper.d.ts +1 -0
  120. package/lib/form/components/widgets/date/date-cloud.widget.d.ts +1 -1
  121. package/lib/form/components/widgets/date/date-cloud.widget.scss +7 -7
  122. package/lib/form/components/widgets/display-external-property/display-external-property.widget.d.ts +1 -1
  123. package/lib/form/components/widgets/display-external-property/display-external-property.widget.scss +1 -0
  124. package/lib/form/components/widgets/display-rich-text/display-rich-text.widget.d.ts +1 -1
  125. package/lib/form/components/widgets/dropdown/dropdown-cloud.widget.d.ts +3 -1
  126. package/lib/form/components/widgets/file-viewer/file-viewer.widget.d.ts +1 -1
  127. package/lib/form/components/widgets/group/group-cloud.widget.d.ts +1 -1
  128. package/lib/form/components/widgets/people/people-cloud.widget.d.ts +1 -1
  129. package/lib/form/components/widgets/properties-viewer/properties-viewer-wrapper/properties-viewer-wrapper.component.d.ts +1 -1
  130. package/lib/form/components/widgets/properties-viewer/properties-viewer.widget.d.ts +1 -1
  131. package/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.d.ts +1 -1
  132. package/lib/form/components/widgets/radio-buttons/radio-buttons-cloud.widget.scss +12 -0
  133. package/lib/group/components/group-cloud.component.d.ts +1 -1
  134. package/lib/material.module.d.ts +4 -5
  135. package/lib/models/process-instance-variable.model.d.ts +1 -1
  136. package/lib/people/components/people-cloud.component.d.ts +1 -1
  137. package/lib/process/directives/cancel-process.directive.d.ts +1 -1
  138. package/lib/process/process-filters/components/edit-process-filter-cloud.component.d.ts +1 -1
  139. package/lib/process/process-filters/components/process-filter-dialog-cloud.component.d.ts +1 -1
  140. package/lib/process/process-filters/components/process-filters-cloud.component.d.ts +1 -1
  141. package/lib/process/process-header/components/process-header-cloud.component.d.ts +3 -3
  142. package/lib/process/process-list/components/process-list-cloud.component.d.ts +1 -1
  143. package/lib/process/process-list/models/perocess-instance-cloud-view.model.d.ts +1 -1
  144. package/lib/process/start-process/components/start-process-cloud.component.d.ts +5 -2
  145. package/lib/rich-text-editor/rich-text-editor.component.d.ts +1 -3
  146. package/lib/rich-text-editor/rich-text-editor.component.scss +10 -0
  147. package/lib/services/form-fields.interfaces.d.ts +1 -1
  148. package/lib/task/directives/claim-task-cloud.directive.d.ts +1 -1
  149. package/lib/task/directives/complete-task.directive.d.ts +1 -1
  150. package/lib/task/directives/unclaim-task-cloud.directive.d.ts +1 -1
  151. package/lib/task/start-task/components/start-task-cloud.component.d.ts +1 -1
  152. package/lib/task/start-task/models/task-details-cloud.model.d.ts +2 -2
  153. package/lib/task/task-filters/components/base-task-filters-cloud.component.d.ts +1 -1
  154. package/lib/task/task-filters/components/edit-task-filters/base-edit-task-filter-cloud.component.d.ts +1 -1
  155. package/lib/task/task-filters/components/edit-task-filters/edit-service-task-filter-cloud.component.d.ts +1 -1
  156. package/lib/task/task-filters/components/edit-task-filters/edit-task-filter-cloud.component.d.ts +1 -1
  157. package/lib/task/task-filters/components/service-task-filters-cloud.component.d.ts +1 -1
  158. package/lib/task/task-filters/components/task-assignment-filter/task-assignment-filter.component.d.ts +1 -1
  159. package/lib/task/task-filters/components/task-filter-dialog/task-filter-dialog-cloud.component.d.ts +1 -1
  160. package/lib/task/task-filters/components/task-filters-cloud.component.d.ts +1 -1
  161. package/lib/task/task-form/components/task-form-cloud.component.d.ts +5 -2
  162. package/lib/task/task-form/components/task-form-cloud.component.scss +15 -9
  163. package/lib/task/task-header/components/task-header-cloud.component.d.ts +1 -1
  164. package/lib/task/task-list/components/base-task-list-cloud.component.d.ts +1 -1
  165. package/lib/task/task-list/components/service-task-list-cloud.component.d.ts +1 -1
  166. package/lib/task/task-list/components/task-list-cloud.component.d.ts +1 -1
  167. package/lib/task/task-list/models/task-cloud-view.model.d.ts +1 -1
  168. package/lib/types.d.ts +1 -1
  169. package/package.json +6 -6
@@ -258,11 +258,11 @@ export class TaskHeaderCloudComponent {
258
258
  this.onDestroy$.complete();
259
259
  }
260
260
  }
261
- TaskHeaderCloudComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: TaskHeaderCloudComponent, deps: [{ token: i1.TaskCloudService }, { token: i2.TranslationService }, { token: i2.AppConfigService }, { token: i2.CardViewUpdateService }], target: i0.ɵɵFactoryTarget.Component });
262
- TaskHeaderCloudComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: TaskHeaderCloudComponent, selector: "adf-cloud-task-header", inputs: { appName: "appName", taskId: "taskId", showTitle: "showTitle" }, outputs: { claim: "claim", unclaim: "unclaim", error: "error" }, usesOnChanges: true, ngImport: i0, template: "<h3 *ngIf=\"showTitle\" class=\"adf-task-title\">{{ taskDetails?.name }}</h3>\n\n<div class=\"adf-task-header-container\">\n <mat-card *ngIf=\"isTaskValid()\" class=\"adf-card-container\">\n <mat-card-content>\n <adf-card-view\n *ngIf=\"!isLoading; else loadingTemplate\"\n [displayNoneOption]=\"false\"\n [properties]=\"properties\"\n [editable]=\"isTaskEditable()\"\n [displayClearAction]=\"displayDateClearAction\">\n </adf-card-view>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #loadingTemplate>\n <div class=\"adf-task-header-loading\">\n <mat-spinner></mat-spinner>\n </div>\n</ng-template>\n", styles: [".adf-controls{display:flex;justify-content:space-between}.adf-edit-controls{display:flex;justify-content:flex-end;margin-left:auto}.adf-switch-to-edit-mode,.adf-save-edit-mode{color:var(--theme-primary-color)}.adf-cancel-edit-mode,.adf-claim-controls{color:#838383}.adf-task-header-loading{display:flex;justify-content:center}@media (max-width: 959.9px){adf-card-view .adf-property-value{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i2.CardViewComponent, selector: "adf-card-view", inputs: ["properties", "editable", "displayEmpty", "displayNoneOption", "displayClearAction", "copyToClipboardAction", "useChipsForMultiValueProperty", "multiValueSeparator", "displayLabelForChips"] }], encapsulation: i0.ViewEncapsulation.None });
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: TaskHeaderCloudComponent, decorators: [{
261
+ TaskHeaderCloudComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskHeaderCloudComponent, deps: [{ token: i1.TaskCloudService }, { token: i2.TranslationService }, { token: i2.AppConfigService }, { token: i2.CardViewUpdateService }], target: i0.ɵɵFactoryTarget.Component });
262
+ TaskHeaderCloudComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TaskHeaderCloudComponent, selector: "adf-cloud-task-header", inputs: { appName: "appName", taskId: "taskId", showTitle: "showTitle" }, outputs: { claim: "claim", unclaim: "unclaim", error: "error" }, usesOnChanges: true, ngImport: i0, template: "<h3 *ngIf=\"showTitle\" class=\"adf-task-title\">{{ taskDetails?.name }}</h3>\n\n<div class=\"adf-task-header-container\">\n <mat-card appearance=\"outlined\" *ngIf=\"isTaskValid()\" class=\"adf-card-container\">\n <mat-card-content>\n <adf-card-view\n *ngIf=\"!isLoading; else loadingTemplate\"\n [displayNoneOption]=\"false\"\n [properties]=\"properties\"\n [editable]=\"isTaskEditable()\"\n [displayClearAction]=\"displayDateClearAction\">\n </adf-card-view>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #loadingTemplate>\n <div class=\"adf-task-header-loading\">\n <mat-spinner></mat-spinner>\n </div>\n</ng-template>\n", styles: [".adf-controls{display:flex;justify-content:space-between}.adf-edit-controls{display:flex;justify-content:flex-end;margin-left:auto}.adf-switch-to-edit-mode,.adf-save-edit-mode{color:var(--theme-primary-color)}.adf-cancel-edit-mode,.adf-claim-controls{color:#838383}.adf-task-header-loading{display:flex;justify-content:center}@media (max-width: 959.9px){adf-card-view .adf-property-value{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i2.CardViewComponent, selector: "adf-card-view", inputs: ["properties", "editable", "displayEmpty", "displayNoneOption", "displayClearAction", "copyToClipboardAction", "useChipsForMultiValueProperty", "multiValueSeparator", "displayLabelForChips"] }], encapsulation: i0.ViewEncapsulation.None });
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskHeaderCloudComponent, decorators: [{
264
264
  type: Component,
265
- args: [{ selector: 'adf-cloud-task-header', encapsulation: ViewEncapsulation.None, template: "<h3 *ngIf=\"showTitle\" class=\"adf-task-title\">{{ taskDetails?.name }}</h3>\n\n<div class=\"adf-task-header-container\">\n <mat-card *ngIf=\"isTaskValid()\" class=\"adf-card-container\">\n <mat-card-content>\n <adf-card-view\n *ngIf=\"!isLoading; else loadingTemplate\"\n [displayNoneOption]=\"false\"\n [properties]=\"properties\"\n [editable]=\"isTaskEditable()\"\n [displayClearAction]=\"displayDateClearAction\">\n </adf-card-view>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #loadingTemplate>\n <div class=\"adf-task-header-loading\">\n <mat-spinner></mat-spinner>\n </div>\n</ng-template>\n", styles: [".adf-controls{display:flex;justify-content:space-between}.adf-edit-controls{display:flex;justify-content:flex-end;margin-left:auto}.adf-switch-to-edit-mode,.adf-save-edit-mode{color:var(--theme-primary-color)}.adf-cancel-edit-mode,.adf-claim-controls{color:#838383}.adf-task-header-loading{display:flex;justify-content:center}@media (max-width: 959.9px){adf-card-view .adf-property-value{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}}\n"] }]
265
+ args: [{ selector: 'adf-cloud-task-header', encapsulation: ViewEncapsulation.None, template: "<h3 *ngIf=\"showTitle\" class=\"adf-task-title\">{{ taskDetails?.name }}</h3>\n\n<div class=\"adf-task-header-container\">\n <mat-card appearance=\"outlined\" *ngIf=\"isTaskValid()\" class=\"adf-card-container\">\n <mat-card-content>\n <adf-card-view\n *ngIf=\"!isLoading; else loadingTemplate\"\n [displayNoneOption]=\"false\"\n [properties]=\"properties\"\n [editable]=\"isTaskEditable()\"\n [displayClearAction]=\"displayDateClearAction\">\n </adf-card-view>\n </mat-card-content>\n </mat-card>\n</div>\n\n<ng-template #loadingTemplate>\n <div class=\"adf-task-header-loading\">\n <mat-spinner></mat-spinner>\n </div>\n</ng-template>\n", styles: [".adf-controls{display:flex;justify-content:space-between}.adf-edit-controls{display:flex;justify-content:flex-end;margin-left:auto}.adf-switch-to-edit-mode,.adf-save-edit-mode{color:var(--theme-primary-color)}.adf-cancel-edit-mode,.adf-claim-controls{color:#838383}.adf-task-header-loading{display:flex;justify-content:center}@media (max-width: 959.9px){adf-card-view .adf-property-value{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}}\n"] }]
266
266
  }], ctorParameters: function () { return [{ type: i1.TaskCloudService }, { type: i2.TranslationService }, { type: i2.AppConfigService }, { type: i2.CardViewUpdateService }]; }, propDecorators: { appName: [{
267
267
  type: Input
268
268
  }], taskId: [{
@@ -276,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
276
276
  }], error: [{
277
277
  type: Output
278
278
  }] } });
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1oZWFkZXItY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2staGVhZGVyL2NvbXBvbmVudHMvdGFzay1oZWFkZXItY2xvdWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2staGVhZGVyL2NvbXBvbmVudHMvdGFzay1oZWFkZXItY2xvdWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZ0MsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQ0gscUJBQXFCLEVBRXJCLHFCQUFxQixFQUVyQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixxQkFBcUIsRUFDckIseUJBQXlCLEVBRXpCLHVCQUF1QixFQUMxQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBUXJFLE1BQU0sT0FBTyx3QkFBd0I7SUF3Q2pDLFlBQ1ksZ0JBQWtDLEVBQ2xDLGtCQUFzQyxFQUN0QyxTQUEyQixFQUMzQixxQkFBNEM7UUFINUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx1QkFBa0Is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eEIsd0JBQXdCLDZOQzNDckMsMHVCQXFCQTsyRkRzQmEsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSTsyTUFNckMsT0FBTztzQkFETixLQUFLO2dCQUtOLE1BQU07c0JBREwsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sS0FBSztzQkFESixNQUFNO2dCQUtQLE9BQU87c0JBRE4sTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBjb25jYXRNYXAsIGNhdGNoRXJyb3IsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCwgb2YsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIENhcmRWaWV3RGF0ZUl0ZW1Nb2RlbCxcbiAgICBDYXJkVmlld0l0ZW0sXG4gICAgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsLFxuICAgIENhcmRWaWV3QmFzZUl0ZW1Nb2RlbCxcbiAgICBDYXJkVmlld0FycmF5SXRlbU1vZGVsLFxuICAgIFRyYW5zbGF0aW9uU2VydmljZSxcbiAgICBBcHBDb25maWdTZXJ2aWNlLFxuICAgIFVwZGF0ZU5vdGlmaWNhdGlvbixcbiAgICBDYXJkVmlld1VwZGF0ZVNlcnZpY2UsXG4gICAgQ2FyZFZpZXdEYXRldGltZUl0ZW1Nb2RlbCxcbiAgICBDYXJkVmlld0FycmF5SXRlbSxcbiAgICBDYXJkVmlld1NlbGVjdEl0ZW1Nb2RlbFxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgVGFza0RldGFpbHNDbG91ZE1vZGVsIH0gZnJvbSAnLi4vLi4vc3RhcnQtdGFzay9tb2RlbHMvdGFzay1kZXRhaWxzLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFRhc2tDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLWNsb3VkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC10YXNrLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rhc2staGVhZGVyLWNsb3VkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLWhlYWRlci1jbG91ZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVGFza0hlYWRlckNsb3VkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgICAvKiogKFJlcXVpcmVkKSBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBhcHBOYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiAoUmVxdWlyZWQpIFRoZSBpZCBvZiB0aGUgdGFzay4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRhc2tJZDogc3RyaW5nO1xuXG4gICAgLyoqIFNob3cvSGlkZSB0aGUgdGFzayB0aXRsZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1RpdGxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgaXMgY2xhaW1lZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjbGFpbTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgaXMgdW5jbGFpbWVkIChpZSwgcmVxdWV1ZWQpLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHVuY2xhaW06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBnaXZlbiB0YXNrIGhhcyBlcnJvcnMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICB0YXNrRGV0YWlsczogVGFza0RldGFpbHNDbG91ZE1vZGVsID0ge307XG4gICAgY2FuZGlkYXRlVXNlcnM6IENhcmRWaWV3QXJyYXlJdGVtW10gPSBbXTtcbiAgICBjYW5kaWRhdGVHcm91cHM6IENhcmRWaWV3QXJyYXlJdGVtW10gPSBbXTtcbiAgICBwcm9wZXJ0aWVzOiBDYXJkVmlld0l0ZW1bXTtcbiAgICBpbkVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwYXJlbnRUYXNrTmFtZTogc3RyaW5nO1xuICAgIGRhdGVGb3JtYXQ6IHN0cmluZztcbiAgICBkYXRlTG9jYWxlOiBzdHJpbmc7XG4gICAgZGlzcGxheURhdGVDbGVhckFjdGlvbiA9IGZhbHNlO1xuICAgIGlzTG9hZGluZyA9IHRydWU7XG4gICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0YXNrQ2xvdWRTZXJ2aWNlOiBUYXNrQ2xvdWRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZzogQXBwQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjYXJkVmlld1VwZGF0ZVNlcnZpY2U6IENhcmRWaWV3VXBkYXRlU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmRhdGVGb3JtYXQgPSB0aGlzLmFwcENvbmZpZy5nZXQoJ2FkZi1jbG91ZC10YXNrLWhlYWRlci5kZWZhdWx0RGF0ZUZvcm1hdCcpO1xuICAgICAgICB0aGlzLmRhdGVMb2NhbGUgPSB0aGlzLmFwcENvbmZpZy5nZXQoJ2RhdGVWYWx1ZXMuZGVmYXVsdERhdGVMb2NhbGUnKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmRhdGFDaGFuZ2VzRGV0ZWN0ZWQkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkVGFza0RldGFpbHNCeUlkKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNhcmRWaWV3VXBkYXRlU2VydmljZS5pdGVtVXBkYXRlZCRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLnVwZGF0ZVRhc2tEZXRhaWxzLmJpbmQodGhpcylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy50YXNrRGV0YWlscyA9IHt9O1xuICAgICAgICBpZiAoKHRoaXMuYXBwTmFtZSB8fCB0aGlzLmFwcE5hbWUgPT09ICcnKSAmJiB0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkVGFza0RldGFpbHNCeUlkKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KCdBcHAgTmFtZSBhbmQgVGFzayBJZCBhcmUgbWFuZGF0b3J5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkVGFza0RldGFpbHNCeUlkKGFwcE5hbWU6IHN0cmluZywgdGFza0lkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0VGFza0J5SWQoYXBwTmFtZSwgdGFza0lkKS5waXBlKFxuICAgICAgICAgICAgY29uY2F0TWFwKCh0YXNrKSA9PlxuICAgICAgICAgICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgICAgICAgICAgICBvZih0YXNrKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmdldENhbmRpZGF0ZVVzZXJzKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0Q2FuZGlkYXRlR3JvdXBzKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKFt0YXNrRGV0YWlscywgY2FuZGlkYXRlVXNlcnMsIGNhbmRpZGF0ZUdyb3Vwc10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzID0gdGFza0RldGFpbHM7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5kaWRhdGVHcm91cHMgPSBjYW5kaWRhdGVHcm91cHMubWFwKCh1c2VyKSA9PiAoeyBpY29uOiAnZ3JvdXAnLCB2YWx1ZTogdXNlciB9IGFzIENhcmRWaWV3QXJyYXlJdGVtKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5kaWRhdGVVc2VycyA9IGNhbmRpZGF0ZVVzZXJzLm1hcCgoZ3JvdXApID0+ICh7IGljb246ICdwZXJzb24nLCB2YWx1ZTogZ3JvdXAgfSBhcyBDYXJkVmlld0FycmF5SXRlbSkpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0luc3RhbmNlSWQgPSB0YXNrRGV0YWlscy5wcm9jZXNzSW5zdGFuY2VJZDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YXNrRGV0YWlscy5wYXJlbnRUYXNrSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkUGFyZW50TmFtZShgJHt0aGlzLnRhc2tEZXRhaWxzLnBhcmVudFRhc2tJZH1gKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdERlZmF1bHRQcm9wZXJ0aWVzKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuQVNTSUdORUUnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRGV0YWlscy5hc3NpZ25lZSxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnYXNzaWduZWUnLFxuICAgICAgICAgICAgICAgICAgICBjbGlja2FibGU6IHRoaXMuaXNBc3NpZ25lZVByb3BlcnR5Q2xpY2thYmxlKCksXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLkFTU0lHTkVFX0RFRkFVTFQnKSxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2NyZWF0ZSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuU1RBVFVTJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0RldGFpbHMuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdzdGF0dXMnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5ldyBDYXJkVmlld1NlbGVjdEl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuUFJJT1JJVFknLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRGV0YWlscy5wcmlvcml0eS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdwcmlvcml0eScsXG4gICAgICAgICAgICAgICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Tm9uZU9wdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMkOiBvZih0aGlzLnRhc2tDbG91ZFNlcnZpY2UucHJpb3JpdGllcylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbmV3IENhcmRWaWV3RGF0ZXRpbWVJdGVtTW9kZWwoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLkRVRV9EQVRFJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0RldGFpbHMuZHVlRGF0ZSxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnZHVlRGF0ZScsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLkRVRV9EQVRFX0RFRkFVTFQnKSxcbiAgICAgICAgICAgICAgICAgICAgZWRpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdDogdGhpcy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMuZGF0ZUxvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5DQVRFR09SWScsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRhc2tEZXRhaWxzLmNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdjYXRlZ29yeScsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLkNBVEVHT1JZX0RFRkFVTFQnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ2FyZFZpZXdEYXRlSXRlbU1vZGVsKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5DUkVBVEVEJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0RldGFpbHMuY3JlYXRlZERhdGUsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ2NyZWF0ZWQnLFxuICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlOiB0aGlzLmRhdGVMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuUEFSRU5UX05BTUUnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXJlbnRUYXNrTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaW5zdGFudCgnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuUEFSRU5UX05BTUVfREVGQVVMVCcpLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdwYXJlbnROYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5ldyBDYXJkVmlld1RleHRJdGVtTW9kZWwoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLlBBUkVOVF9UQVNLX0lEJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0RldGFpbHMucGFyZW50VGFza0lkLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdwYXJlbnRUYXNrSWQnLFxuICAgICAgICAgICAgICAgICAgICBjbGlja2FibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbmV3IENhcmRWaWV3RGF0ZUl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuRU5EX0RBVEUnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRGV0YWlscy5jb21wbGV0ZWREYXRlLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdlbmREYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZTogdGhpcy5kYXRlTG9jYWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5ldyBDYXJkVmlld1RleHRJdGVtTW9kZWwoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLklEJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0RldGFpbHMuaWQsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ2lkJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5QUk9DRVNTX0lOU1RBTkNFX0lEJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMucHJvY2Vzc0luc3RhbmNlSWQsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLlBST0NFU1NfSU5TVEFOQ0VfSURfREVGQVVMVCcpLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdwcm9jZXNzSW5zdGFuY2VJZCcsXG4gICAgICAgICAgICAgICAgICAgIGNsaWNrYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5ERVNDUklQVElPTicsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRhc2tEZXRhaWxzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLkRFU0NSSVBUSU9OX0RFRkFVTFQnKSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlsaW5lOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ2FyZFZpZXdBcnJheUl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuQ0FORElEQVRFX1VTRVJTJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG9mKHRoaXMuY2FuZGlkYXRlVXNlcnMpLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdjYW5kaWRhdGVVc2VycycsXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdlZGl0JyxcbiAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaW5zdGFudCgnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuQ0FORElEQVRFX1VTRVJTX0RFRkFVTFQnKSxcbiAgICAgICAgICAgICAgICAgICAgbm9PZkl0ZW1zVG9EaXNwbGF5OiAyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5ldyBDYXJkVmlld0FycmF5SXRlbU1vZGVsKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5DQU5ESURBVEVfR1JPVVBTJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG9mKHRoaXMuY2FuZGlkYXRlR3JvdXBzKSxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnY2FuZGlkYXRlR3JvdXBzJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2VkaXQnLFxuICAgICAgICAgICAgICAgICAgICBjbGlja2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KCdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5DQU5ESURBVEVfR1JPVVBTX0RFRkFVTFQnKSxcbiAgICAgICAgICAgICAgICAgICAgbm9PZkl0ZW1zVG9EaXNwbGF5OiAyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2ggdGhlIGNhcmQgZGF0YVxuICAgICAqL1xuICAgIHJlZnJlc2hEYXRhKCkge1xuICAgICAgICBpZiAodGhpcy50YXNrRGV0YWlscykge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFByb3BlcnRpZXMgPSB0aGlzLmluaXREZWZhdWx0UHJvcGVydGllcygpO1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IHRoaXMuYXBwQ29uZmlnLmdldCgnYWRmLWNsb3VkLXRhc2staGVhZGVyLnByZXNldHMucHJvcGVydGllcycpO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gZGVmYXVsdFByb3BlcnRpZXMuZmlsdGVyKChjYXJkSXRlbSkgPT4gdGhpcy5pc1ZhbGlkU2VsZWN0aW9uKGZpbHRlcmVkUHJvcGVydGllcywgY2FyZEl0ZW0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNhdmUgYSB0YXNrIGRldGFpbCBhbmQgdXBkYXRlIGl0IGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZVxuICAgICAqXG4gICAgICogQHBhcmFtIHVwZGF0ZU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24gbW9kZWxcbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZVRhc2tEZXRhaWxzKHVwZGF0ZU5vdGlmaWNhdGlvbjogVXBkYXRlTm90aWZpY2F0aW9uKSB7XG4gICAgICAgIHRoaXMudGFza0Nsb3VkU2VydmljZS51cGRhdGVUYXNrKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQsIHVwZGF0ZU5vdGlmaWNhdGlvbi5jaGFuZ2VkKVxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJkVmlld1VwZGF0ZVNlcnZpY2UudXBkYXRlRWxlbWVudCh1cGRhdGVOb3RpZmljYXRpb24udGFyZ2V0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHRhc2tEZXRhaWxzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXNrRGV0YWlscykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YXNrRGV0YWlscyA9IHRhc2tEZXRhaWxzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkUGFyZW50TmFtZSh0YXNrSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0VGFza0J5SWQodGhpcy5hcHBOYW1lLCB0YXNrSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICh0YXNrRGV0YWlscykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudFRhc2tOYW1lID0gdGFza0RldGFpbHMubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgaXNDb21wbGV0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tEZXRhaWxzICYmIHRoaXMudGFza0RldGFpbHMuc3RhdHVzID09PSAnQ09NUExFVEVEJztcbiAgICB9XG5cbiAgICBoYXNBc3NpZ25lZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0RldGFpbHMuYXNzaWduZWUgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaXNUYXNrVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAodGhpcy5hcHBOYW1lIHx8IHRoaXMuYXBwTmFtZSA9PT0gJycpICYmICEhdGhpcy50YXNrSWQ7XG4gICAgfVxuXG4gICAgaXNUYXNrQXNzaWduZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tEZXRhaWxzLmFzc2lnbmVlICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaXNUYXNrRWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuaXNUYXNrRWRpdGFibGUodGhpcy50YXNrRGV0YWlscyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYXMgcGVyIFtBQ0EtMzk2MF0gaXQgcmVxdWlyZWQgYW4gZW1wdHkgYXJyYXkgYXJndW1lbnQgZm9yIG5vd1xuICAgICAqIEVtcHR5IGFycmF5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBjYW5kaWRhdGVHcm91cHMgaW4gZmVhdHVyZVxuICAgICAqXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIGFzc2lnbmVlIHByb3BlcnR5IGlzIGNsaWNrYWJsZSwgb3RoZXJ3aXNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBpc0Fzc2lnbmVlUHJvcGVydHlDbGlja2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuaXNBc3NpZ25lZVByb3BlcnR5Q2xpY2thYmxlKHRoaXMudGFza0RldGFpbHMsIHRoaXMuY2FuZGlkYXRlVXNlcnMsIFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRTZWxlY3Rpb24oZmlsdGVyZWRQcm9wZXJ0aWVzOiBzdHJpbmdbXSwgY2FyZEl0ZW06IENhcmRWaWV3QmFzZUl0ZW1Nb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmlsdGVyZWRQcm9wZXJ0aWVzID8gZmlsdGVyZWRQcm9wZXJ0aWVzLmluZGV4T2YoY2FyZEl0ZW0ua2V5KSA+PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxoMyAqbmdJZj1cInNob3dUaXRsZVwiIGNsYXNzPVwiYWRmLXRhc2stdGl0bGVcIj57eyB0YXNrRGV0YWlscz8ubmFtZSB9fTwvaDM+XG5cbjxkaXYgY2xhc3M9XCJhZGYtdGFzay1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgPG1hdC1jYXJkICpuZ0lmPVwiaXNUYXNrVmFsaWQoKVwiIGNsYXNzPVwiYWRmLWNhcmQtY29udGFpbmVyXCI+XG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPGFkZi1jYXJkLXZpZXdcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc0xvYWRpbmc7IGVsc2UgbG9hZGluZ1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbZGlzcGxheU5vbmVPcHRpb25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtwcm9wZXJ0aWVzXT1cInByb3BlcnRpZXNcIlxuICAgICAgICAgICAgICAgIFtlZGl0YWJsZV09XCJpc1Rhc2tFZGl0YWJsZSgpXCJcbiAgICAgICAgICAgICAgICBbZGlzcGxheUNsZWFyQWN0aW9uXT1cImRpc3BsYXlEYXRlQ2xlYXJBY3Rpb25cIj5cbiAgICAgICAgICAgIDwvYWRmLWNhcmQtdmlldz5cbiAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImFkZi10YXNrLWhlYWRlci1sb2FkaW5nXCI+XG4gICAgICAgIDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1oZWFkZXItY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2staGVhZGVyL2NvbXBvbmVudHMvdGFzay1oZWFkZXItY2xvdWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2staGVhZGVyL2NvbXBvbmVudHMvdGFzay1oZWFkZXItY2xvdWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZ0MsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQ0gscUJBQXFCLEVBRXJCLHFCQUFxQixFQUVyQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixxQkFBcUIsRUFDckIseUJBQXlCLEVBRXpCLHVCQUF1QixFQUMxQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7O0FBUXJFLE1BQU0sT0FBTyx3QkFBd0I7SUF3Q2pDLFlBQ1ksZ0JBQWtDLEVBQ2xDLGtCQUFzQyxFQUN0QyxTQUEyQixFQUMzQixxQkFBNEM7UUFINUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUExQ3hELDhDQUE4QztRQUU5QyxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBTXJCLCtCQUErQjtRQUUvQixjQUFTLEdBQVksSUFBSSxDQUFDO1FBRTFCLHdDQUF3QztRQUV4QyxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFbkQseURBQXlEO1FBRXpELFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVyRCw4Q0FBOEM7UUFFOUMsVUFBSyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRW5ELGdCQUFXLEdBQTBCLEVBQUUsQ0FBQztRQUN4QyxtQkFBYyxHQUF3QixFQUFFLENBQUM7UUFDekMsb0JBQWUsR0FBd0IsRUFBRSxDQUFDO1FBRTFDLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFJeEIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFHVCxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQVF4QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQjthQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZO2FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUMvQyxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3ZEO2FBQU07WUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3pEO0lBQ0wsQ0FBQztJQUVELG1CQUFtQixDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDbkQsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDZixRQUFRLENBQ0osRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNSLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFDbEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUN0RSxDQUNKLEVBQ0QsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUMzQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBd0IsQ0FBQSxDQUFDLENBQUM7WUFDNUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUF3QixDQUFBLENBQUMsQ0FBQztZQUM3RyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLGlCQUFpQixDQUFDO1lBQ3ZELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7YUFDM0Q7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3RCO1FBQ0wsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyxxQkFBcUI7UUFDekIsT0FBTztZQUNILElBQUkscUJBQXFCLENBQ3JCO2dCQUNJLEtBQUssRUFBRSwyQ0FBMkM7Z0JBQ2xELEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7Z0JBQ2hDLEdBQUcsRUFBRSxVQUFVO2dCQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsMkJBQTJCLEVBQUU7Z0JBQzdDLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLG1EQUFtRCxDQUFDO2dCQUM3RixJQUFJLEVBQUUsUUFBUTthQUNqQixDQUNKO1lBQ0QsSUFBSSxxQkFBcUIsQ0FDckI7Z0JBQ0ksS0FBSyxFQUFFLHlDQUF5QztnQkFDaEQsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTTtnQkFDOUIsR0FBRyxFQUFFLFFBQVE7YUFDaEIsQ0FDSjtZQUNELElBQUksdUJBQXVCLENBQ3ZCO2dCQUNJLEtBQUssRUFBRSwyQ0FBMkM7Z0JBQ2xELEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7Z0JBQzNDLEdBQUcsRUFBRSxVQUFVO2dCQUNmLFFBQVEsRUFBRSxJQUFJO2dCQUNkLGlCQUFpQixFQUFFLEtBQUs7Z0JBQ3hCLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQzthQUNqRCxDQUNKO1lBQ0QsSUFBSSx5QkFBeUIsQ0FDekI7Z0JBQ0ksS0FBSyxFQUFFLDJDQUEyQztnQkFDbEQsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTztnQkFDL0IsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsbURBQW1ELENBQUM7Z0JBQzdGLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzFCLENBQ0o7WUFDRCxJQUFJLHFCQUFxQixDQUNyQjtnQkFDSSxLQUFLLEVBQUUsMkNBQTJDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRO2dCQUNoQyxHQUFHLEVBQUUsVUFBVTtnQkFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxtREFBbUQsQ0FBQzthQUNoRyxDQUNKO1lBQ0QsSUFBSSxxQkFBcUIsQ0FDckI7Z0JBQ0ksS0FBSyxFQUFFLDBDQUEwQztnQkFDakQsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVztnQkFDbkMsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDMUIsQ0FDSjtZQUNELElBQUkscUJBQXFCLENBQ3JCO2dCQUNJLEtBQUssRUFBRSw4Q0FBOEM7Z0JBQ3JELEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsc0RBQXNELENBQUM7Z0JBQ2hHLEdBQUcsRUFBRSxZQUFZO2dCQUNqQixTQUFTLEVBQUUsSUFBSTthQUNsQixDQUNKO1lBQ0QsSUFBSSxxQkFBcUIsQ0FDckI7Z0JBQ0ksS0FBSyxFQUFFLGlEQUFpRDtnQkFDeEQsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWTtnQkFDcEMsR0FBRyxFQUFFLGNBQWM7Z0JBQ25CLFNBQVMsRUFBRSxJQUFJO2FBQ2xCLENBQ0o7WUFDRCxJQUFJLHFCQUFxQixDQUNyQjtnQkFDSSxLQUFLLEVBQUUsMkNBQTJDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhO2dCQUNyQyxHQUFHLEVBQUUsU0FBUztnQkFDZCxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTthQUMxQixDQUNKO1lBQ0QsSUFBSSxxQkFBcUIsQ0FDckI7Z0JBQ0ksS0FBSyxFQUFFLHFDQUFxQztnQkFDNUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDMUIsR0FBRyxFQUFFLElBQUk7YUFDWixDQUNKO1lBQ0QsSUFBSSxxQkFBcUIsQ0FDckI7Z0JBQ0ksS0FBSyxFQUFFLHNEQUFzRDtnQkFDN0QsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7Z0JBQzdCLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLDhEQUE4RCxDQUFDO2dCQUN4RyxHQUFHLEVBQUUsbUJBQW1CO2dCQUN4QixTQUFTLEVBQUUsSUFBSTthQUNsQixDQUNKO1lBQ0QsSUFBSSxxQkFBcUIsQ0FDckI7Z0JBQ0ksS0FBSyxFQUFFLDhDQUE4QztnQkFDckQsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVztnQkFDbkMsR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLHNEQUFzRCxDQUFDO2dCQUNoRyxTQUFTLEVBQUUsSUFBSTtnQkFDZixRQUFRLEVBQUUsSUFBSTthQUNqQixDQUNKO1lBQ0QsSUFBSSxzQkFBc0IsQ0FDdEI7Z0JBQ0ksS0FBSyxFQUFFLGtEQUFrRDtnQkFDekQsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUM5QixHQUFHLEVBQUUsZ0JBQWdCO2dCQUNyQixJQUFJLEVBQUUsTUFBTTtnQkFDWixTQUFTLEVBQUUsS0FBSztnQkFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsMERBQTBELENBQUM7Z0JBQ3BHLGtCQUFrQixFQUFFLENBQUM7YUFDeEIsQ0FDSjtZQUNELElBQUksc0JBQXNCLENBQ3RCO2dCQUNJLEtBQUssRUFBRSxtREFBbUQ7Z0JBQzFELEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDL0IsR0FBRyxFQUFFLGlCQUFpQjtnQkFDdEIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osU0FBUyxFQUFFLEtBQUs7Z0JBQ2hCLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLDJEQUEyRCxDQUFDO2dCQUNyRyxrQkFBa0IsRUFBRSxDQUFDO2FBQ3hCLENBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ3ZELE1BQU0sa0JBQWtCLEdBQWEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsMENBQTBDLENBQUMsQ0FBQztZQUNwRyxJQUFJLENBQUMsVUFBVSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakg7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGlCQUFpQixDQUFDLGtCQUFzQztRQUM1RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7YUFDbEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQzthQUNGLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ25CLElBQUksV0FBVyxFQUFFO2dCQUNiLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO2FBQ2xDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQWM7UUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzthQUNsRCxTQUFTLENBQ04sQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNaLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN2QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUNKLENBQUM7SUFDVixDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUM7SUFDdkUsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwRCxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbEUsQ0FBQztJQUVELGNBQWM7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsMkJBQTJCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsa0JBQTRCLEVBQUUsUUFBK0I7UUFDbEYsT0FBTyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7c0hBclRRLHdCQUF3QjswR0FBeEIsd0JBQXdCLDZOQzNDckMsa3dCQXFCQTs0RkRzQmEsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNJLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSTsyTUFNckMsT0FBTztzQkFETixLQUFLO2dCQUtOLE1BQU07c0JBREwsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sS0FBSztzQkFESixNQUFNO2dCQUtQLE9BQU87c0JBRE4sTUFBTTtnQkFLUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBjb25jYXRNYXAsIGNhdGNoRXJyb3IsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCwgb2YsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIENhcmRWaWV3RGF0ZUl0ZW1Nb2RlbCxcbiAgICBDYXJkVmlld0l0ZW0sXG4gICAgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsLFxuICAgIENhcmRWaWV3QmFzZUl0ZW1Nb2RlbCxcbiAgICBDYXJkVmlld0FycmF5SXRlbU1vZGVsLFxuICAgIFRyYW5zbGF0aW9uU2VydmljZSxcbiAgICBBcHBDb25maWdTZXJ2aWNlLFxuICAgIFVwZGF0ZU5vdGlmaWNhdGlvbixcbiAgICBDYXJkVmlld1VwZGF0ZVNlcnZpY2UsXG4gICAgQ2FyZFZpZXdEYXRldGltZUl0ZW1Nb2RlbCxcbiAgICBDYXJkVmlld0FycmF5SXRlbSxcbiAgICBDYXJkVmlld1NlbGVjdEl0ZW1Nb2RlbFxufSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgVGFza0RldGFpbHNDbG91ZE1vZGVsIH0gZnJvbSAnLi4vLi4vc3RhcnQtdGFzay9tb2RlbHMvdGFzay1kZXRhaWxzLWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFRhc2tDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLWNsb3VkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC10YXNrLWhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Rhc2staGVhZGVyLWNsb3VkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90YXNrLWhlYWRlci1jbG91ZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVGFza0hlYWRlckNsb3VkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgICAvKiogKFJlcXVpcmVkKSBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBhcHBOYW1lOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiAoUmVxdWlyZWQpIFRoZSBpZCBvZiB0aGUgdGFzay4gKi9cbiAgICBASW5wdXQoKVxuICAgIHRhc2tJZDogc3RyaW5nO1xuXG4gICAgLyoqIFNob3cvSGlkZSB0aGUgdGFzayB0aXRsZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd1RpdGxlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgaXMgY2xhaW1lZC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjbGFpbTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgaXMgdW5jbGFpbWVkIChpZSwgcmVxdWV1ZWQpLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHVuY2xhaW06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSBnaXZlbiB0YXNrIGhhcyBlcnJvcnMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICB0YXNrRGV0YWlsczogVGFza0RldGFpbHNDbG91ZE1vZGVsID0ge307XG4gICAgY2FuZGlkYXRlVXNlcnM6IENhcmRWaWV3QXJyYXlJdGVtW10gPSBbXTtcbiAgICBjYW5kaWRhdGVHcm91cHM6IENhcmRWaWV3QXJyYXlJdGVtW10gPSBbXTtcbiAgICBwcm9wZXJ0aWVzOiBDYXJkVmlld0l0ZW1bXTtcbiAgICBpbkVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwYXJlbnRUYXNrTmFtZTogc3RyaW5nO1xuICAgIGRhdGVGb3JtYXQ6IHN0cmluZztcbiAgICBkYXRlTG9jYWxlOiBzdHJpbmc7XG4gICAgZGlzcGxheURhdGVDbGVhckFjdGlvbiA9IGZhbHNlO1xuICAgIGlzTG9hZGluZyA9IHRydWU7XG4gICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0YXNrQ2xvdWRTZXJ2aWNlOiBUYXNrQ2xvdWRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZzogQXBwQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjYXJkVmlld1VwZGF0ZVNlcnZpY2U6IENhcmRWaWV3VXBkYXRlU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmRhdGVGb3JtYXQgPSB0aGlzLmFwcENvbmZpZy5nZXQoJ2FkZi1jbG91ZC10YXNrLWhlYWRlci5kZWZhdWx0RGF0ZUZvcm1hdCcpO1xuICAgICAgICB0aGlzLmRhdGVMb2NhbGUgPSB0aGlzLmFwcENvbmZpZy5nZXQoJ2RhdGVWYWx1ZXMuZGVmYXVsdERhdGVMb2NhbGUnKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmRhdGFDaGFuZ2VzRGV0ZWN0ZWQkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkVGFza0RldGFpbHNCeUlkKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNhcmRWaWV3VXBkYXRlU2VydmljZS5pdGVtVXBkYXRlZCRcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh0aGlzLnVwZGF0ZVRhc2tEZXRhaWxzLmJpbmQodGhpcylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy50YXNrRGV0YWlscyA9IHt9O1xuICAgICAgICBpZiAoKHRoaXMuYXBwTmFtZSB8fCB0aGlzLmFwcE5hbWUgPT09ICcnKSAmJiB0aGlzLnRhc2tJZCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkVGFza0RldGFpbHNCeUlkKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KCdBcHAgTmFtZSBhbmQgVGFzayBJZCBhcmUgbWFuZGF0b3J5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsb2FkVGFza0RldGFpbHNCeUlkKGFwcE5hbWU6IHN0cmluZywgdGFza0lkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0VGFza0J5SWQoYXBwTmFtZSwgdGFza0lkKS5waXBlKFxuICAgICAgICAgICAgY29uY2F0TWFwKCh0YXNrKSA9PlxuICAgICAgICAgICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgICAgICAgICAgICBvZih0YXNrKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXNrQ2xvdWRTZXJ2aWNlLmdldENhbmRpZGF0ZVVzZXJzKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0Q2FuZGlkYXRlR3JvdXBzKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzTG9hZGluZyA9IGZhbHNlKSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKFt0YXNrRGV0YWlscywgY2FuZGlkYXRlVXNlcnMsIGNhbmRpZGF0ZUdyb3Vwc10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhc2tEZXRhaWxzID0gdGFza0RldGFpbHM7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5kaWRhdGVHcm91cHMgPSBjYW5kaWRhdGVHcm91cHMubWFwKCh1c2VyKSA9PiAoeyBpY29uOiAnZ3JvdXAnLCB2YWx1ZTogdXNlciB9IGFzIENhcmRWaWV3QXJyYXlJdGVtKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5kaWRhdGVVc2VycyA9IGNhbmRpZGF0ZVVzZXJzLm1hcCgoZ3JvdXApID0+ICh7IGljb246ICdwZXJzb24nLCB2YWx1ZTogZ3JvdXAgfSBhcyBDYXJkVmlld0FycmF5SXRlbSkpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0luc3RhbmNlSWQgPSB0YXNrRGV0YWlscy5wcm9jZXNzSW5zdGFuY2VJZDtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50YXNrRGV0YWlscy5wYXJlbnRUYXNrSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkUGFyZW50TmFtZShgJHt0aGlzLnRhc2tEZXRhaWxzLnBhcmVudFRhc2tJZH1gKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdERlZmF1bHRQcm9wZXJ0aWVzKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuQVNTSUdORUUnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRGV0YWlscy5hc3NpZ25lZSxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnYXNzaWduZWUnLFxuICAgICAgICAgICAgICAgICAgICBjbGlja2FibGU6IHRoaXMuaXNBc3NpZ25lZVByb3BlcnR5Q2xpY2thYmxlKCksXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLkFTU0lHTkVFX0RFRkFVTFQnKSxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2NyZWF0ZSdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuU1RBVFVTJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0RldGFpbHMuc3RhdHVzLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdzdGF0dXMnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5ldyBDYXJkVmlld1NlbGVjdEl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuUFJJT1JJVFknLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRGV0YWlscy5wcmlvcml0eS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdwcmlvcml0eScsXG4gICAgICAgICAgICAgICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Tm9uZU9wdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMkOiBvZih0aGlzLnRhc2tDbG91ZFNlcnZpY2UucHJpb3JpdGllcylcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbmV3IENhcmRWaWV3RGF0ZXRpbWVJdGVtTW9kZWwoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLkRVRV9EQVRFJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0RldGFpbHMuZHVlRGF0ZSxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnZHVlRGF0ZScsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLkRVRV9EQVRFX0RFRkFVTFQnKSxcbiAgICAgICAgICAgICAgICAgICAgZWRpdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdDogdGhpcy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IHRoaXMuZGF0ZUxvY2FsZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5DQVRFR09SWScsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRhc2tEZXRhaWxzLmNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdjYXRlZ29yeScsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLkNBVEVHT1JZX0RFRkFVTFQnKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ2FyZFZpZXdEYXRlSXRlbU1vZGVsKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5DUkVBVEVEJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0RldGFpbHMuY3JlYXRlZERhdGUsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ2NyZWF0ZWQnLFxuICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6IHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlOiB0aGlzLmRhdGVMb2NhbGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbmV3IENhcmRWaWV3VGV4dEl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuUEFSRU5UX05BTUUnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5wYXJlbnRUYXNrTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaW5zdGFudCgnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuUEFSRU5UX05BTUVfREVGQVVMVCcpLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdwYXJlbnROYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5ldyBDYXJkVmlld1RleHRJdGVtTW9kZWwoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLlBBUkVOVF9UQVNLX0lEJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0RldGFpbHMucGFyZW50VGFza0lkLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdwYXJlbnRUYXNrSWQnLFxuICAgICAgICAgICAgICAgICAgICBjbGlja2FibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbmV3IENhcmRWaWV3RGF0ZUl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuRU5EX0RBVEUnLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy50YXNrRGV0YWlscy5jb21wbGV0ZWREYXRlLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdlbmREYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZTogdGhpcy5kYXRlTG9jYWxlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5ldyBDYXJkVmlld1RleHRJdGVtTW9kZWwoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLklEJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudGFza0RldGFpbHMuaWQsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ2lkJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5QUk9DRVNTX0lOU1RBTkNFX0lEJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMucHJvY2Vzc0luc3RhbmNlSWQsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLlBST0NFU1NfSU5TVEFOQ0VfSURfREVGQVVMVCcpLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdwcm9jZXNzSW5zdGFuY2VJZCcsXG4gICAgICAgICAgICAgICAgICAgIGNsaWNrYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ2FyZFZpZXdUZXh0SXRlbU1vZGVsKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5ERVNDUklQVElPTicsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRhc2tEZXRhaWxzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmluc3RhbnQoJ0FERl9DTE9VRF9UQVNLX0hFQURFUi5QUk9QRVJUSUVTLkRFU0NSSVBUSU9OX0RFRkFVTFQnKSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlsaW5lOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBlZGl0YWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXcgQ2FyZFZpZXdBcnJheUl0ZW1Nb2RlbChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuQ0FORElEQVRFX1VTRVJTJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG9mKHRoaXMuY2FuZGlkYXRlVXNlcnMpLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdjYW5kaWRhdGVVc2VycycsXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdlZGl0JyxcbiAgICAgICAgICAgICAgICAgICAgY2xpY2thYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaW5zdGFudCgnQURGX0NMT1VEX1RBU0tfSEVBREVSLlBST1BFUlRJRVMuQ0FORElEQVRFX1VTRVJTX0RFRkFVTFQnKSxcbiAgICAgICAgICAgICAgICAgICAgbm9PZkl0ZW1zVG9EaXNwbGF5OiAyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG5ldyBDYXJkVmlld0FycmF5SXRlbU1vZGVsKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5DQU5ESURBVEVfR1JPVVBTJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG9mKHRoaXMuY2FuZGlkYXRlR3JvdXBzKSxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnY2FuZGlkYXRlR3JvdXBzJyxcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2VkaXQnLFxuICAgICAgICAgICAgICAgICAgICBjbGlja2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5pbnN0YW50KCdBREZfQ0xPVURfVEFTS19IRUFERVIuUFJPUEVSVElFUy5DQU5ESURBVEVfR1JPVVBTX0RFRkFVTFQnKSxcbiAgICAgICAgICAgICAgICAgICAgbm9PZkl0ZW1zVG9EaXNwbGF5OiAyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZnJlc2ggdGhlIGNhcmQgZGF0YVxuICAgICAqL1xuICAgIHJlZnJlc2hEYXRhKCkge1xuICAgICAgICBpZiAodGhpcy50YXNrRGV0YWlscykge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFByb3BlcnRpZXMgPSB0aGlzLmluaXREZWZhdWx0UHJvcGVydGllcygpO1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IHRoaXMuYXBwQ29uZmlnLmdldCgnYWRmLWNsb3VkLXRhc2staGVhZGVyLnByZXNldHMucHJvcGVydGllcycpO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gZGVmYXVsdFByb3BlcnRpZXMuZmlsdGVyKChjYXJkSXRlbSkgPT4gdGhpcy5pc1ZhbGlkU2VsZWN0aW9uKGZpbHRlcmVkUHJvcGVydGllcywgY2FyZEl0ZW0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNhdmUgYSB0YXNrIGRldGFpbCBhbmQgdXBkYXRlIGl0IGFmdGVyIGEgc3VjY2Vzc2Z1bCByZXNwb25zZVxuICAgICAqXG4gICAgICogQHBhcmFtIHVwZGF0ZU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24gbW9kZWxcbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZVRhc2tEZXRhaWxzKHVwZGF0ZU5vdGlmaWNhdGlvbjogVXBkYXRlTm90aWZpY2F0aW9uKSB7XG4gICAgICAgIHRoaXMudGFza0Nsb3VkU2VydmljZS51cGRhdGVUYXNrKHRoaXMuYXBwTmFtZSwgdGhpcy50YXNrSWQsIHVwZGF0ZU5vdGlmaWNhdGlvbi5jaGFuZ2VkKVxuICAgICAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJkVmlld1VwZGF0ZVNlcnZpY2UudXBkYXRlRWxlbWVudCh1cGRhdGVOb3RpZmljYXRpb24udGFyZ2V0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHRhc2tEZXRhaWxzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXNrRGV0YWlscykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YXNrRGV0YWlscyA9IHRhc2tEZXRhaWxzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkUGFyZW50TmFtZSh0YXNrSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0VGFza0J5SWQodGhpcy5hcHBOYW1lLCB0YXNrSWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICh0YXNrRGV0YWlscykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhcmVudFRhc2tOYW1lID0gdGFza0RldGFpbHMubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgaXNDb21wbGV0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tEZXRhaWxzICYmIHRoaXMudGFza0RldGFpbHMuc3RhdHVzID09PSAnQ09NUExFVEVEJztcbiAgICB9XG5cbiAgICBoYXNBc3NpZ25lZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFza0RldGFpbHMuYXNzaWduZWUgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgaXNUYXNrVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAodGhpcy5hcHBOYW1lIHx8IHRoaXMuYXBwTmFtZSA9PT0gJycpICYmICEhdGhpcy50YXNrSWQ7XG4gICAgfVxuXG4gICAgaXNUYXNrQXNzaWduZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tEZXRhaWxzLmFzc2lnbmVlICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaXNUYXNrRWRpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuaXNUYXNrRWRpdGFibGUodGhpcy50YXNrRGV0YWlscyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYXMgcGVyIFtBQ0EtMzk2MF0gaXQgcmVxdWlyZWQgYW4gZW1wdHkgYXJyYXkgYXJndW1lbnQgZm9yIG5vd1xuICAgICAqIEVtcHR5IGFycmF5IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCBjYW5kaWRhdGVHcm91cHMgaW4gZmVhdHVyZVxuICAgICAqXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIGFzc2lnbmVlIHByb3BlcnR5IGlzIGNsaWNrYWJsZSwgb3RoZXJ3aXNlIGBmYWxzZWBcbiAgICAgKi9cbiAgICBpc0Fzc2lnbmVlUHJvcGVydHlDbGlja2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuaXNBc3NpZ25lZVByb3BlcnR5Q2xpY2thYmxlKHRoaXMudGFza0RldGFpbHMsIHRoaXMuY2FuZGlkYXRlVXNlcnMsIFtdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsaWRTZWxlY3Rpb24oZmlsdGVyZWRQcm9wZXJ0aWVzOiBzdHJpbmdbXSwgY2FyZEl0ZW06IENhcmRWaWV3QmFzZUl0ZW1Nb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmlsdGVyZWRQcm9wZXJ0aWVzID8gZmlsdGVyZWRQcm9wZXJ0aWVzLmluZGV4T2YoY2FyZEl0ZW0ua2V5KSA+PSAwIDogdHJ1ZTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMub25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxoMyAqbmdJZj1cInNob3dUaXRsZVwiIGNsYXNzPVwiYWRmLXRhc2stdGl0bGVcIj57eyB0YXNrRGV0YWlscz8ubmFtZSB9fTwvaDM+XG5cbjxkaXYgY2xhc3M9XCJhZGYtdGFzay1oZWFkZXItY29udGFpbmVyXCI+XG4gICAgPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiICpuZ0lmPVwiaXNUYXNrVmFsaWQoKVwiIGNsYXNzPVwiYWRmLWNhcmQtY29udGFpbmVyXCI+XG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgPGFkZi1jYXJkLXZpZXdcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc0xvYWRpbmc7IGVsc2UgbG9hZGluZ1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbZGlzcGxheU5vbmVPcHRpb25dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtwcm9wZXJ0aWVzXT1cInByb3BlcnRpZXNcIlxuICAgICAgICAgICAgICAgIFtlZGl0YWJsZV09XCJpc1Rhc2tFZGl0YWJsZSgpXCJcbiAgICAgICAgICAgICAgICBbZGlzcGxheUNsZWFyQWN0aW9uXT1cImRpc3BsYXlEYXRlQ2xlYXJBY3Rpb25cIj5cbiAgICAgICAgICAgIDwvYWRmLWNhcmQtdmlldz5cbiAgICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImFkZi10YXNrLWhlYWRlci1sb2FkaW5nXCI+XG4gICAgICAgIDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -23,13 +23,13 @@ import * as i0 from "@angular/core";
23
23
  import * as i1 from "@alfresco/adf-core";
24
24
  export class TaskHeaderCloudModule {
25
25
  }
26
- TaskHeaderCloudModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: TaskHeaderCloudModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
27
- TaskHeaderCloudModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.3", ngImport: i0, type: TaskHeaderCloudModule, declarations: [TaskHeaderCloudComponent], imports: [CommonModule,
26
+ TaskHeaderCloudModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskHeaderCloudModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
27
+ TaskHeaderCloudModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TaskHeaderCloudModule, declarations: [TaskHeaderCloudComponent], imports: [CommonModule,
28
28
  MaterialModule, i1.CoreModule], exports: [TaskHeaderCloudComponent] });
29
- TaskHeaderCloudModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: TaskHeaderCloudModule, imports: [CommonModule,
29
+ TaskHeaderCloudModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskHeaderCloudModule, imports: [CommonModule,
30
30
  MaterialModule,
31
31
  CoreModule.forChild()] });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: TaskHeaderCloudModule, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TaskHeaderCloudModule, decorators: [{
33
33
  type: NgModule,
34
34
  args: [{
35
35
  imports: [
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
45
45
  ]
46
46
  }]
47
47
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1oZWFkZXItY2xvdWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2staGVhZGVyL3Rhc2staGVhZGVyLWNsb3VkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFlcEYsTUFBTSxPQUFPLHFCQUFxQjs7a0hBQXJCLHFCQUFxQjttSEFBckIscUJBQXFCLGlCQU4xQix3QkFBd0IsYUFMeEIsWUFBWTtRQUNaLGNBQWMsNEJBT2Qsd0JBQXdCO21IQUduQixxQkFBcUIsWUFYMUIsWUFBWTtRQUNaLGNBQWM7UUFDZCxVQUFVLENBQUMsUUFBUSxFQUFFOzJGQVNoQixxQkFBcUI7a0JBYmpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxVQUFVLENBQUMsUUFBUSxFQUFFO3FCQUN4QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1Ysd0JBQXdCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsd0JBQXdCO3FCQUMzQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uLy4uL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFRhc2tIZWFkZXJDbG91ZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXNrLWhlYWRlci1jbG91ZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICAgICAgQ29yZU1vZHVsZS5mb3JDaGlsZCgpXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgVGFza0hlYWRlckNsb3VkQ29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFRhc2tIZWFkZXJDbG91ZENvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFza0hlYWRlckNsb3VkTW9kdWxlIHsgfVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1oZWFkZXItY2xvdWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2staGVhZGVyL3Rhc2staGVhZGVyLWNsb3VkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFlcEYsTUFBTSxPQUFPLHFCQUFxQjs7bUhBQXJCLHFCQUFxQjtvSEFBckIscUJBQXFCLGlCQU4xQix3QkFBd0IsYUFMeEIsWUFBWTtRQUNaLGNBQWMsNEJBT2Qsd0JBQXdCO29IQUduQixxQkFBcUIsWUFYMUIsWUFBWTtRQUNaLGNBQWM7UUFDZCxVQUFVLENBQUMsUUFBUSxFQUFFOzRGQVNoQixxQkFBcUI7a0JBYmpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxVQUFVLENBQUMsUUFBUSxFQUFFO3FCQUN4QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1Ysd0JBQXdCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsd0JBQXdCO3FCQUMzQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRlcmlhbE1vZHVsZSB9IGZyb20gJy4uLy4uL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFRhc2tIZWFkZXJDbG91ZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXNrLWhlYWRlci1jbG91ZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICAgICAgQ29yZU1vZHVsZS5mb3JDaGlsZCgpXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgVGFza0hlYWRlckNsb3VkQ29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFRhc2tIZWFkZXJDbG91ZENvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFza0hlYWRlckNsb3VkTW9kdWxlIHsgfVxuIl19
@@ -231,7 +231,7 @@ export class BaseTaskListCloudComponent extends DataTableSchema {
231
231
  setSorting(sortDetail) {
232
232
  const sorting = sortDetail
233
233
  ? {
234
- orderBy: sortDetail.key,
234
+ orderBy: sortDetail.sortingKey || sortDetail.key,
235
235
  direction: sortDetail.direction.toUpperCase()
236
236
  }
237
237
  : { ...this.defaultSorting };
@@ -252,9 +252,9 @@ export class BaseTaskListCloudComponent extends DataTableSchema {
252
252
  }, row.obj);
253
253
  }
254
254
  }
255
- BaseTaskListCloudComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: BaseTaskListCloudComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
256
- BaseTaskListCloudComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.3", type: BaseTaskListCloudComponent, inputs: { appName: "appName", selectionMode: "selectionMode", multiselect: "multiselect", stickyHeader: "stickyHeader", sorting: "sorting", showActions: "showActions", actionsPosition: "actionsPosition", showContextMenu: "showContextMenu", showMainDatatableActions: "showMainDatatableActions", isResizingEnabled: "isResizingEnabled" }, outputs: { showRowContextMenu: "showRowContextMenu", showRowActionsMenu: "showRowActionsMenu", executeRowAction: "executeRowAction", rowClick: "rowClick", rowsSelected: "rowsSelected", success: "success", error: "error" }, queries: [{ propertyName: "emptyCustomContent", first: true, predicate: CustomEmptyContentTemplateDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
257
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: BaseTaskListCloudComponent, decorators: [{
255
+ BaseTaskListCloudComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseTaskListCloudComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
256
+ BaseTaskListCloudComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: BaseTaskListCloudComponent, inputs: { appName: "appName", selectionMode: "selectionMode", multiselect: "multiselect", stickyHeader: "stickyHeader", sorting: "sorting", showActions: "showActions", actionsPosition: "actionsPosition", showContextMenu: "showContextMenu", showMainDatatableActions: "showMainDatatableActions", isResizingEnabled: "isResizingEnabled" }, outputs: { showRowContextMenu: "showRowContextMenu", showRowActionsMenu: "showRowActionsMenu", executeRowAction: "executeRowAction", rowClick: "rowClick", rowsSelected: "rowsSelected", success: "success", error: "error" }, queries: [{ propertyName: "emptyCustomContent", first: true, predicate: CustomEmptyContentTemplateDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BaseTaskListCloudComponent, decorators: [{
258
258
  type: Directive
259
259
  }], ctorParameters: function () { return [{ type: i1.AppConfigService }, { type: i2.TaskCloudService }, { type: i1.UserPreferencesService }, { type: undefined }, { type: undefined }]; }, propDecorators: { emptyCustomContent: [{
260
260
  type: ContentChild,
@@ -294,4 +294,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
294
294
  }], error: [{
295
295
  type: Output
296
296
  }] } });
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stbGlzdC9jb21wb25lbnRzL2Jhc2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQWEsS0FBSyxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBdUMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BKLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFDZixvQkFBb0IsRUFJcEIsbUNBQW1DLEVBTXRDLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakYsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFHOUUsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBZ0IsMEJBQ2xCLFNBQVEsZUFBa0I7SUFvRzFCLFlBQ0ksZ0JBQWtDLEVBQzFCLGdCQUFrQyxFQUNsQyxlQUF1QyxFQUMvQyxTQUFpQixFQUNULHNCQUF1RDtRQUUvRCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLDRCQUE0QixDQUFDLENBQUM7UUFM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O3NCQURYLE1BQU07Z0JBS1AsT0FBTztzQkFETixNQUFNO2dCQUtQLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgT25DaGFuZ2VzLCBJbnB1dCwgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENvbnRlbnRDaGlsZCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBcHBDb25maWdTZXJ2aWNlLFxuICAgIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgRGF0YVRhYmxlU2NoZW1hLFxuICAgIFVzZXJQcmVmZXJlbmNlVmFsdWVzLFxuICAgIFBhZ2luYXRlZENvbXBvbmVudCxcbiAgICBQYWdpbmF0aW9uTW9kZWwsXG4gICAgRGF0YVJvd0V2ZW50LFxuICAgIEN1c3RvbUVtcHR5Q29udGVudFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgIERhdGFDZWxsRXZlbnQsXG4gICAgRGF0YVJvd0FjdGlvbkV2ZW50LFxuICAgIERhdGFSb3csXG4gICAgRGF0YUNvbHVtbixcbiAgICBPYmplY3REYXRhVGFibGVBZGFwdGVyXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyB0YXNrUHJlc2V0c0Nsb3VkRGVmYXVsdE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3Rhc2stcHJlc2V0LWNsb3VkLm1vZGVsJztcbmltcG9ydCB7IFRhc2tRdWVyeUNsb3VkUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci1jbG91ZC1tb2RlbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRhc2tMaXN0Q2xvdWRTb3J0aW5nTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvdGFzay1saXN0LXNvcnRpbmcubW9kZWwnO1xuaW1wb3J0IHsgbWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUYXNrQ2xvdWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFzay1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWZlcmVuY2VDbG91ZFNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVmZXJlbmNlLWNsb3VkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYXNrc0xpc3RDbG91ZFByZWZlcmVuY2VzIH0gZnJvbSAnLi4vbW9kZWxzL3Rhc2tzLWNsb3VkLXByZWZlcmVuY2VzJztcblxuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlVGFza0xpc3RDbG91ZENvbXBvbmVudDxUID0gdW5rbm93bj5cbiAgICBleHRlbmRzIERhdGFUYWJsZVNjaGVtYTxUPlxuICAgIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBQYWdpbmF0ZWRDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2JyYWNlLXN0eWxlXG57XG4gICAgQENvbnRlbnRDaGlsZChDdXN0b21FbXB0eUNvbnRlbnRUZW1wbGF0ZURpcmVjdGl2ZSlcbiAgICBlbXB0eUN1c3RvbUNvbnRlbnQ6IEN1c3RvbUVtcHR5Q29udGVudFRlbXBsYXRlRGlyZWN0aXZlO1xuXG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogUm93IHNlbGVjdGlvbiBtb2RlLiBDYW4gYmUgbm9uZSwgYHNpbmdsZWAgb3IgYG11bHRpcGxlYC4gRm9yIGBtdWx0aXBsZWAgbW9kZSxcbiAgICAgKiB5b3UgY2FuIHVzZSB0aGUgQ21kIChtYWNPUykgb3IgQ3RybCAoV2luKSBtb2RpZmllciBrZXkgdG8gdG9nZ2xlIHNlbGVjdGlvbiBmb3JcbiAgICAgKiBtdWx0aXBsZSByb3dzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0aW9uTW9kZTogc3RyaW5nID0gJ3NpbmdsZSc7IC8vIG5vbmV8c2luZ2xlfG11bHRpcGxlXG5cbiAgICAvKiogVG9nZ2xlcyBtdWx0aXBsZSByb3cgc2VsZWN0aW9uLCByZW5kZXJpbmcgYSBjaGVja2JveCBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggcm93LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbXVsdGlzZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBzdGlja3kgaGVhZGVyIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBzdGlja3lIZWFkZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNwZWNpZmllcyBob3cgdGhlIHRhYmxlIHNob3VsZCBiZSBzb3J0ZWQuIFRoZSBwYXJhbWV0ZXJzIGFyZSBmb3IgQkUgc29ydGluZy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNvcnRpbmc6IFRhc2tMaXN0Q2xvdWRTb3J0aW5nTW9kZWxbXTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBkYXRhIGFjdGlvbnMgY29sdW1uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0FjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBQb3NpdGlvbiBvZiB0aGUgYWN0aW9ucyBkcm9wZG93biBtZW51LiBDYW4gYmUgXCJsZWZ0XCIgb3IgXCJyaWdodFwiLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWN0aW9uc1Bvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHQnOyAvLyBsZWZ0fHJpZ2h0XG5cbiAgICAvKiogVG9nZ2xlcyBjdXN0b20gY29udGV4dCBtZW51IGZvciB0aGUgY29tcG9uZW50LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0NvbnRleHRNZW51OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyBtYWluIGRhdGF0YWJsZSBhY3Rpb25zLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd01haW5EYXRhdGFibGVBY3Rpb25zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlcyBtYWluIGRhdGF0YWJsZSBjb2x1bW4gcmVzaXppbmcgZmVhdHVyZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzUmVzaXppbmdFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogRW1pdHRlZCBiZWZvcmUgdGhlIGNvbnRleHQgbWVudSBpcyBkaXNwbGF5ZWQgZm9yIGEgcm93LiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNob3dSb3dDb250ZXh0TWVudSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YUNlbGxFdmVudD4oKTtcblxuICAgIC8qKiBFbWl0dGVkIGJlZm9yZSB0aGUgYWN0aW9ucyBtZW51IGlzIGRpc3BsYXllZCBmb3IgYSByb3cuICovXG4gICAgQE91dHB1dCgpXG4gICAgc2hvd1Jvd0FjdGlvbnNNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhQ2VsbEV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBleGVjdXRlcyBhIHJvdyBhY3Rpb24uICovXG4gICAgQE91dHB1dCgpXG4gICAgZXhlY3V0ZVJvd0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YVJvd0FjdGlvbkV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhIHRhc2sgaW4gdGhlIGxpc3QgaXMgY2xpY2tlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiByb3dzIGFyZSBzZWxlY3RlZC91bnNlbGVjdGVkICovXG4gICAgQE91dHB1dCgpXG4gICAgcm93c1NlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIHRhc2sgbGlzdCBpcyBsb2FkZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBwYWdpbmF0aW9uOiBCZWhhdmlvclN1YmplY3Q8UGFnaW5hdGlvbk1vZGVsPjtcblxuICAgIHJlcXVlc3ROb2RlOiBUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbDtcbiAgICByb3dzOiBhbnlbXSA9IFtdO1xuICAgIHNpemU6IG51bWJlcjtcbiAgICBza2lwQ291bnQ6IG51bWJlciA9IDA7XG4gICAgY3VycmVudEluc3RhbmNlSWQ6IGFueTtcbiAgICBzZWxlY3RlZEluc3RhbmNlczogYW55W107XG4gICAgZm9ybWF0dGVkU29ydGluZzogYW55W107XG4gICAgZGF0YUFkYXB0ZXI6IE9iamVjdERhdGFUYWJsZUFkYXB0ZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBwcml2YXRlIGRlZmF1bHRTb3J0aW5nID0geyBrZXk6ICdzdGFydERhdGUnLCBkaXJlY3Rpb246ICdkZXNjJyB9O1xuICAgIGJvdW5kUmVwbGFjZVByaW9yaXR5VmFsdWVzOiAocm93OiBEYXRhUm93LCBjb2w6IERhdGFDb2x1bW4pID0+IGFueTtcblxuICAgIHByaXZhdGUgb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgaXNMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwcm90ZWN0ZWQgaXNMb2FkaW5nUHJlZmVyZW5jZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRhc2tDbG91ZFNlcnZpY2U6IFRhc2tDbG91ZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdXNlclByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgICAgICBwcmVzZXRLZXk6IHN0cmluZyxcbiAgICAgICAgcHJpdmF0ZSBjbG91ZFByZWZlcmVuY2VTZXJ2aWNlOiBQcmVmZXJlbmNlQ2xvdWRTZXJ2aWNlSW50ZXJmYWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGFwcENvbmZpZ1NlcnZpY2UsIHByZXNldEtleSwgdGFza1ByZXNldHNDbG91ZERlZmF1bHRNb2RlbCk7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHVzZXJQcmVmZXJlbmNlcy5wYWdpbmF0aW9uU2l6ZTtcblxuICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhZ2luYXRpb25Nb2RlbD4oe1xuICAgICAgICAgICAgbWF4SXRlbXM6IHRoaXMuc2l6ZSxcbiAgICAgICAgICAgIHNraXBDb3VudDogMCxcbiAgICAgICAgICAgIHRvdGFsSXRlbXM6IDBcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ib3VuZFJlcGxhY2VQcmlvcml0eVZhbHVlcyA9IHRoaXMucmVwbGFjZVByaW9yaXR5VmFsdWVzLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXNlclByZWZlcmVuY2VzXG4gICAgICAgICAgICAuc2VsZWN0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLlBhZ2luYXRpb25TaXplKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMub25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwYWdlU2l6ZSkgPT4gKHRoaXMuc2l6ZSA9IHBhZ2VTaXplKSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlc1snc29ydGluZyddKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1hdFNvcnRpbmcoY2hhbmdlc1snc29ydGluZyddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXNbJ2FwcE5hbWUnXSkge1xuICAgICAgICAgICAgdGhpcy5yZXRyaWV2ZVRhc2tzUHJlZmVyZW5jZXMoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm9uRGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXRyaWV2ZVRhc2tzUHJlZmVyZW5jZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nUHJlZmVyZW5jZXMkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2xvdWRQcmVmZXJlbmNlU2VydmljZVxuICAgICAgICAgICAgLmdldFByZWZlcmVuY2VzKHRoaXMuYXBwTmFtZSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgbWFwKChwcmVmZXJlbmNlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmVmZXJlbmNlc0xpc3QgPSBwcmVmZXJlbmNlcz8ubGlzdD8uZW50cmllcyA/PyBbXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uc09yZGVyID0gcHJlZmVyZW5jZXNMaXN0LmZpbmQoKHByZWZlcmVuY2UpID0+IHByZWZlcmVuY2UuZW50cnkua2V5ID09PSBUYXNrc0xpc3RDbG91ZFByZWZlcmVuY2VzLmNvbHVtbk9yZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29sdW1uc1Zpc2liaWxpdHkgPSBwcmVmZXJlbmNlc0xpc3QuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIChwcmVmZXJlbmNlKSA9PiBwcmVmZXJlbmNlLmVudHJ5LmtleSA9PT0gVGFza3NMaXN0Q2xvdWRQcmVmZXJlbmNlcy5jb2x1bW5zVmlzaWJpbGl0eVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5zV2lkdGhzID0gcHJlZmVyZW5jZXNMaXN0LmZpbmQoKHByZWZlcmVuY2UpID0+IHByZWZlcmVuY2UuZW50cnkua2V5ID09PSBUYXNrc0xpc3RDbG91ZFByZWZlcmVuY2VzLmNvbHVtbnNXaWR0aHMpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zT3JkZXI6IGNvbHVtbnNPcmRlciA/IEpTT04ucGFyc2UoY29sdW1uc09yZGVyLmVudHJ5LnZhbHVlKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnNWaXNpYmlsaXR5OiBjb2x1bW5zVmlzaWJpbGl0eSA/IEpTT04ucGFyc2UoY29sdW1uc1Zpc2liaWxpdHkuZW50cnkudmFsdWUpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uc1dpZHRoczogY29sdW1uc1dpZHRocyA/IEpTT04ucGFyc2UoY29sdW1uc1dpZHRocy5lbnRyeS52YWx1ZSkgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoeyBjb2x1bW5zT3JkZXIsIGNvbHVtbnNWaXNpYmlsaXR5LCBjb2x1bW5zV2lkdGhzIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbnNPcmRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zT3JkZXIgPSBjb2x1bW5zT3JkZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoY29sdW1uc1Zpc2liaWxpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29sdW1uc1Zpc2liaWxpdHkgPSBjb2x1bW5zVmlzaWJpbGl0eTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW5zV2lkdGhzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnNXaWR0aHMgPSBjb2x1bW5zV2lkdGhzO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVEYXRhdGFibGVTY2hlbWEoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVDb2x1bW5zKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nUHJlZmVyZW5jZXMkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nUHJlZmVyZW5jZXMkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJldHJpZXZlVGFza3NQcmVmZXJlbmNlcygpO1xuICAgIH1cblxuICAgIGlzTGlzdEVtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMucm93cyB8fCB0aGlzLnJvd3MubGVuZ3RoID09PSAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2V0cyB0aGUgcGFnaW5hdGlvbiB2YWx1ZXNcbiAgICAgKi9cbiAgICByZXNldFBhZ2luYXRpb24oKSB7XG4gICAgICAgIHRoaXMuc2tpcENvdW50ID0gMDtcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy51c2VyUHJlZmVyZW5jZXMucGFnaW5hdGlvblNpemU7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5uZXh0KHtcbiAgICAgICAgICAgIHNraXBDb3VudDogMCxcbiAgICAgICAgICAgIG1heEl0ZW1zOiB0aGlzLnNpemVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZXRzIHRoZSBwYWdpbmF0aW9uIHZhbHVlcyBhbmRcbiAgICAgKiBSZWxvYWRzIHRoZSB0YXNrIGxpc3RcbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdpbmF0aW9uIFBhZ2luYXRpb24gdmFsdWVzIHRvIGJlIHNldFxuICAgICAqL1xuICAgIHVwZGF0ZVBhZ2luYXRpb24ocGFnaW5hdGlvbjogUGFnaW5hdGlvbk1vZGVsKSB7XG4gICAgICAgIHRoaXMuc2l6ZSA9IHBhZ2luYXRpb24ubWF4SXRlbXM7XG4gICAgICAgIHRoaXMuc2tpcENvdW50ID0gcGFnaW5hdGlvbi5za2lwQ291bnQ7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5uZXh0KHBhZ2luYXRpb24pO1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIG9uU29ydGluZ0NoYW5nZWQoZXZlbnQ6IEN1c3RvbUV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2V0U29ydGluZyhldmVudC5kZXRhaWwpO1xuICAgICAgICB0aGlzLmZvcm1hdFNvcnRpbmcodGhpcy5zb3J0aW5nKTtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9XG5cbiAgICBvblJvd0NsaWNrKGl0ZW06IERhdGFSb3dFdmVudCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbnN0YW5jZUlkID0gaXRlbS52YWx1ZS5nZXRWYWx1ZSgnaWQnKTtcbiAgICAgICAgdGhpcy5yb3dDbGljay5lbWl0KHRoaXMuY3VycmVudEluc3RhbmNlSWQpO1xuICAgIH1cblxuICAgIG9uUm93U2VsZWN0KGV2ZW50OiBDdXN0b21FdmVudCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5zdGFuY2VzID0gWy4uLmV2ZW50LmRldGFpbC5zZWxlY3Rpb25dO1xuICAgICAgICB0aGlzLnJvd3NTZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0ZWRJbnN0YW5jZXMpO1xuICAgIH1cblxuICAgIG9uUm93VW5zZWxlY3QoZXZlbnQ6IEN1c3RvbUV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbnN0YW5jZXMgPSBbLi4uZXZlbnQuZGV0YWlsLnNlbGVjdGlvbl07XG4gICAgICAgIHRoaXMucm93c1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZEluc3RhbmNlcyk7XG4gICAgfVxuXG4gICAgb25Sb3dLZXlVcChldmVudDogQ3VzdG9tRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmRldGFpbC5rZXlib2FyZEV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluc3RhbmNlSWQgPSBldmVudC5kZXRhaWwucm93LmdldFZhbHVlKCdpZCcpO1xuICAgICAgICAgICAgdGhpcy5yb3dDbGljay5lbWl0KHRoaXMuY3VycmVudEluc3RhbmNlSWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TaG93Um93QWN0aW9uc01lbnUoZXZlbnQ6IERhdGFDZWxsRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zaG93Um93QWN0aW9uc01lbnUuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25TaG93Um93Q29udGV4dE1lbnUoZXZlbnQ6IERhdGFDZWxsRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zaG93Um93Q29udGV4dE1lbnUuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgb25FeGVjdXRlUm93QWN0aW9uKHJvdzogRGF0YVJvd0FjdGlvbkV2ZW50KSB7XG4gICAgICAgIHRoaXMuZXhlY3V0ZVJvd0FjdGlvbi5lbWl0KHJvdyk7XG4gICAgfVxuXG4gICAgb25Db2x1bW5PcmRlckNoYW5nZWQoY29sdW1uc1dpdGhOZXdPcmRlcjogRGF0YUNvbHVtbltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sdW1uc09yZGVyID0gY29sdW1uc1dpdGhOZXdPcmRlci5tYXAoKGNvbHVtbikgPT4gY29sdW1uLmlkKTtcbiAgICAgICAgdGhpcy5jcmVhdGVDb2x1bW5zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXBwTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5jbG91ZFByZWZlcmVuY2VTZXJ2aWNlLnVwZGF0ZVByZWZlcmVuY2UodGhpcy5hcHBOYW1lLCBUYXNrc0xpc3RDbG91ZFByZWZlcmVuY2VzLmNvbHVtbk9yZGVyLCB0aGlzLmNvbHVtbnNPcmRlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNvbHVtbnNWaXNpYmlsaXR5Q2hhbmdlKGNvbHVtbnM6IERhdGFDb2x1bW5bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbHVtbnNWaXNpYmlsaXR5ID0gY29sdW1ucy5yZWR1Y2UoKHZpc2libGVDb2x1bW5zTWFwLCBjb2x1bW4pID0+IHtcbiAgICAgICAgICAgIGlmIChjb2x1bW4uaXNIaWRkZW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHZpc2libGVDb2x1bW5zTWFwW2NvbHVtbi5pZF0gPSAhY29sdW1uLmlzSGlkZGVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdmlzaWJsZUNvbHVtbnNNYXA7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLmNyZWF0ZUNvbHVtbnMoKTtcbiAgICAgICAgdGhpcy5jcmVhdGVEYXRhdGFibGVTY2hlbWEoKTtcblxuICAgICAgICBpZiAodGhpcy5hcHBOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3VkUHJlZmVyZW5jZVNlcnZpY2UudXBkYXRlUHJlZmVyZW5jZSh0aGlzLmFwcE5hbWUsIFRhc2tzTGlzdENsb3VkUHJlZmVyZW5jZXMuY29sdW1uc1Zpc2liaWxpdHksIHRoaXMuY29sdW1uc1Zpc2liaWxpdHkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Db2x1bW5zV2lkdGhDaGFuZ2VkKGNvbHVtbnM6IERhdGFDb2x1bW5bXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdDb2x1bW5zV2lkdGhzID0gY29sdW1ucy5yZWR1Y2UoKHdpZHRoc0NvbHVtbnNNYXAsIGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbHVtbi53aWR0aCkge1xuICAgICAgICAgICAgICAgIHdpZHRoc0NvbHVtbnNNYXBbY29sdW1uLmlkXSA9IE1hdGguY2VpbChjb2x1bW4ud2lkdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHdpZHRoc0NvbHVtbnNNYXA7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLmNvbHVtbnNXaWR0aHMgPSB7IC4uLnRoaXMuY29sdW1uc1dpZHRocywgLi4ubmV3Q29sdW1uc1dpZHRocyB9O1xuXG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1ucygpO1xuXG4gICAgICAgIGlmICh0aGlzLmFwcE5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvdWRQcmVmZXJlbmNlU2VydmljZS51cGRhdGVQcmVmZXJlbmNlKHRoaXMuYXBwTmFtZSwgVGFza3NMaXN0Q2xvdWRQcmVmZXJlbmNlcy5jb2x1bW5zV2lkdGhzLCB0aGlzLmNvbHVtbnNXaWR0aHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0U29ydGluZyhzb3J0RGV0YWlsKSB7XG4gICAgICAgIGNvbnN0IHNvcnRpbmcgPSBzb3J0RGV0YWlsXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIG9yZGVyQnk6IHNvcnREZXRhaWwua2V5LFxuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBzb3J0RGV0YWlsLmRpcmVjdGlvbi50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogeyAuLi50aGlzLmRlZmF1bHRTb3J0aW5nIH07XG4gICAgICAgIHRoaXMuc29ydGluZyA9IFtuZXcgVGFza0xpc3RDbG91ZFNvcnRpbmdNb2RlbChzb3J0aW5nKV07XG4gICAgfVxuXG4gICAgZm9ybWF0U29ydGluZyhzb3J0aW5nOiBUYXNrTGlzdENsb3VkU29ydGluZ01vZGVsW10pIHtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZWRTb3J0aW5nID0gdGhpcy5pc1ZhbGlkU29ydGluZyhzb3J0aW5nKSA/IFtzb3J0aW5nWzBdLm9yZGVyQnksIHNvcnRpbmdbMF0uZGlyZWN0aW9uLnRvTG9jYWxlTG93ZXJDYXNlKCldIDogbnVsbDtcbiAgICB9XG5cbiAgICBpc1ZhbGlkU29ydGluZyhzb3J0aW5nOiBUYXNrTGlzdENsb3VkU29ydGluZ01vZGVsW10pIHtcbiAgICAgICAgcmV0dXJuIHNvcnRpbmc/Lmxlbmd0aCAmJiBzb3J0aW5nWzBdLm9yZGVyQnkgJiYgc29ydGluZ1swXS5kaXJlY3Rpb247XG4gICAgfVxuXG4gICAgcmVwbGFjZVByaW9yaXR5VmFsdWVzKHJvdzogRGF0YVJvdywgY29sdW1uOiBEYXRhQ29sdW1uKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW4ua2V5LnNwbGl0KCcuJykucmVkdWNlKChzb3VyY2UsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ3ByaW9yaXR5JyAmJiBzb3VyY2UgJiYgdHlwZW9mIHNvdXJjZVtrZXldID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHJldHVybiAoc291cmNlW2tleV0gPSB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0UHJpb3JpdHlMYWJlbChzb3VyY2Vba2V5XSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZSAmJiB0eXBlb2Ygc291cmNlID09PSAnb2JqZWN0JyA/IHNvdXJjZVtrZXldIDogdW5kZWZpbmVkO1xuICAgICAgICB9LCByb3cub2JqKTtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCByZWxvYWQoKTtcbn1cbiJdfQ==
297
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stbGlzdC9jb21wb25lbnRzL2Jhc2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQWEsS0FBSyxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBdUMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BKLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFDZixvQkFBb0IsRUFJcEIsbUNBQW1DLEVBTXRDLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFakYsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDcEYsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFHOUUsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBZ0IsMEJBQ2xCLFNBQVEsZUFBa0I7SUFvRzFCLFlBQ0ksZ0JBQWtDLEVBQzFCLGdCQUFrQyxFQUNsQyxlQUF1QyxFQUMvQyxTQUFpQixFQUNULHNCQUF1RDtRQUUvRCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLDRCQUE0QixDQUFDLENBQUM7UUFM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QkFEUCxNQUFNO2dCQUtQLFlBQVk7c0JBRFgsTUFBTTtnQkFLUCxPQUFPO3NCQUROLE1BQU07Z0JBS1AsS0FBSztzQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNCBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBPbkNoYW5nZXMsIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ29udGVudENoaWxkLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgVXNlclByZWZlcmVuY2VzU2VydmljZSxcbiAgICBEYXRhVGFibGVTY2hlbWEsXG4gICAgVXNlclByZWZlcmVuY2VWYWx1ZXMsXG4gICAgUGFnaW5hdGVkQ29tcG9uZW50LFxuICAgIFBhZ2luYXRpb25Nb2RlbCxcbiAgICBEYXRhUm93RXZlbnQsXG4gICAgQ3VzdG9tRW1wdHlDb250ZW50VGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgRGF0YUNlbGxFdmVudCxcbiAgICBEYXRhUm93QWN0aW9uRXZlbnQsXG4gICAgRGF0YVJvdyxcbiAgICBEYXRhQ29sdW1uLFxuICAgIE9iamVjdERhdGFUYWJsZUFkYXB0ZXJcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IHRhc2tQcmVzZXRzQ2xvdWREZWZhdWx0TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvdGFzay1wcmVzZXQtY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZmlsdGVyLWNsb3VkLW1vZGVsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFza0xpc3RDbG91ZFNvcnRpbmdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90YXNrLWxpc3Qtc29ydGluZy5tb2RlbCc7XG5pbXBvcnQgeyBtYXAsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRhc2tDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlZmVyZW5jZUNsb3VkU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZWZlcmVuY2UtY2xvdWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRhc2tzTGlzdENsb3VkUHJlZmVyZW5jZXMgfSBmcm9tICcuLi9tb2RlbHMvdGFza3MtY2xvdWQtcHJlZmVyZW5jZXMnO1xuXG5ARGlyZWN0aXZlKClcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VUYXNrTGlzdENsb3VkQ29tcG9uZW50PFQgPSB1bmtub3duPlxuICAgIGV4dGVuZHMgRGF0YVRhYmxlU2NoZW1hPFQ+XG4gICAgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIFBhZ2luYXRlZENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXRcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYnJhY2Utc3R5bGVcbntcbiAgICBAQ29udGVudENoaWxkKEN1c3RvbUVtcHR5Q29udGVudFRlbXBsYXRlRGlyZWN0aXZlKVxuICAgIGVtcHR5Q3VzdG9tQ29udGVudDogQ3VzdG9tRW1wdHlDb250ZW50VGVtcGxhdGVEaXJlY3RpdmU7XG5cbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXBwTmFtZTogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBSb3cgc2VsZWN0aW9uIG1vZGUuIENhbiBiZSBub25lLCBgc2luZ2xlYCBvciBgbXVsdGlwbGVgLiBGb3IgYG11bHRpcGxlYCBtb2RlLFxuICAgICAqIHlvdSBjYW4gdXNlIHRoZSBDbWQgKG1hY09TKSBvciBDdHJsIChXaW4pIG1vZGlmaWVyIGtleSB0byB0b2dnbGUgc2VsZWN0aW9uIGZvclxuICAgICAqIG11bHRpcGxlIHJvd3MuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3Rpb25Nb2RlOiBzdHJpbmcgPSAnc2luZ2xlJzsgLy8gbm9uZXxzaW5nbGV8bXVsdGlwbGVcblxuICAgIC8qKiBUb2dnbGVzIG11bHRpcGxlIHJvdyBzZWxlY3Rpb24sIHJlbmRlcmluZyBhIGNoZWNrYm94IGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCByb3cuICovXG4gICAgQElucHV0KClcbiAgICBtdWx0aXNlbGVjdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIFRvZ2dsZXMgdGhlIHN0aWNreSBoZWFkZXIgbW9kZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN0aWNreUhlYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU3BlY2lmaWVzIGhvdyB0aGUgdGFibGUgc2hvdWxkIGJlIHNvcnRlZC4gVGhlIHBhcmFtZXRlcnMgYXJlIGZvciBCRSBzb3J0aW5nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc29ydGluZzogVGFza0xpc3RDbG91ZFNvcnRpbmdNb2RlbFtdO1xuXG4gICAgLyoqIFRvZ2dsZXMgdGhlIGRhdGEgYWN0aW9ucyBjb2x1bW4uICovXG4gICAgQElucHV0KClcbiAgICBzaG93QWN0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIFBvc2l0aW9uIG9mIHRoZSBhY3Rpb25zIGRyb3Bkb3duIG1lbnUuIENhbiBiZSBcImxlZnRcIiBvciBcInJpZ2h0XCIuICovXG4gICAgQElucHV0KClcbiAgICBhY3Rpb25zUG9zaXRpb246IHN0cmluZyA9ICdyaWdodCc7IC8vIGxlZnR8cmlnaHRcblxuICAgIC8qKiBUb2dnbGVzIGN1c3RvbSBjb250ZXh0IG1lbnUgZm9yIHRoZSBjb21wb25lbnQuICovXG4gICAgQElucHV0KClcbiAgICBzaG93Q29udGV4dE1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIG1haW4gZGF0YXRhYmxlIGFjdGlvbnMuICovXG4gICAgQElucHV0KClcbiAgICBzaG93TWFpbkRhdGF0YWJsZUFjdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBUb2dnbGVzIG1haW4gZGF0YXRhYmxlIGNvbHVtbiByZXNpemluZyBmZWF0dXJlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNSZXNpemluZ0VuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBFbWl0dGVkIGJlZm9yZSB0aGUgY29udGV4dCBtZW51IGlzIGRpc3BsYXllZCBmb3IgYSByb3cuICovXG4gICAgQE91dHB1dCgpXG4gICAgc2hvd1Jvd0NvbnRleHRNZW51ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhQ2VsbEV2ZW50PigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgYmVmb3JlIHRoZSBhY3Rpb25zIG1lbnUgaXMgZGlzcGxheWVkIGZvciBhIHJvdy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBzaG93Um93QWN0aW9uc01lbnUgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFDZWxsRXZlbnQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHRoZSB1c2VyIGV4ZWN1dGVzIGEgcm93IGFjdGlvbi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBleGVjdXRlUm93QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhUm93QWN0aW9uRXZlbnQ+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGEgdGFzayBpbiB0aGUgbGlzdCBpcyBjbGlja2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIHJvd3MgYXJlIHNlbGVjdGVkL3Vuc2VsZWN0ZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByb3dzU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgdGFzayBsaXN0IGlzIGxvYWRlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3Vycy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHBhZ2luYXRpb246IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uTW9kZWw+O1xuXG4gICAgcmVxdWVzdE5vZGU6IFRhc2tRdWVyeUNsb3VkUmVxdWVzdE1vZGVsO1xuICAgIHJvd3M6IGFueVtdID0gW107XG4gICAgc2l6ZTogbnVtYmVyO1xuICAgIHNraXBDb3VudDogbnVtYmVyID0gMDtcbiAgICBjdXJyZW50SW5zdGFuY2VJZDogYW55O1xuICAgIHNlbGVjdGVkSW5zdGFuY2VzOiBhbnlbXTtcbiAgICBmb3JtYXR0ZWRTb3J0aW5nOiBhbnlbXTtcbiAgICBkYXRhQWRhcHRlcjogT2JqZWN0RGF0YVRhYmxlQWRhcHRlciB8IHVuZGVmaW5lZDtcblxuICAgIHByaXZhdGUgZGVmYXVsdFNvcnRpbmcgPSB7IGtleTogJ3N0YXJ0RGF0ZScsIGRpcmVjdGlvbjogJ2Rlc2MnIH07XG4gICAgYm91bmRSZXBsYWNlUHJpb3JpdHlWYWx1ZXM6IChyb3c6IERhdGFSb3csIGNvbDogRGF0YUNvbHVtbikgPT4gYW55O1xuXG4gICAgcHJpdmF0ZSBvbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpc0xvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHByb3RlY3RlZCBpc0xvYWRpbmdQcmVmZXJlbmNlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGFza0Nsb3VkU2VydmljZTogVGFza0Nsb3VkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB1c2VyUHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgICAgIHByZXNldEtleTogc3RyaW5nLFxuICAgICAgICBwcml2YXRlIGNsb3VkUHJlZmVyZW5jZVNlcnZpY2U6IFByZWZlcmVuY2VDbG91ZFNlcnZpY2VJbnRlcmZhY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoYXBwQ29uZmlnU2VydmljZSwgcHJlc2V0S2V5LCB0YXNrUHJlc2V0c0Nsb3VkRGVmYXVsdE1vZGVsKTtcbiAgICAgICAgdGhpcy5zaXplID0gdXNlclByZWZlcmVuY2VzLnBhZ2luYXRpb25TaXplO1xuXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UGFnaW5hdGlvbk1vZGVsPih7XG4gICAgICAgICAgICBtYXhJdGVtczogdGhpcy5zaXplLFxuICAgICAgICAgICAgc2tpcENvdW50OiAwLFxuICAgICAgICAgICAgdG90YWxJdGVtczogMFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmJvdW5kUmVwbGFjZVByaW9yaXR5VmFsdWVzID0gdGhpcy5yZXBsYWNlUHJpb3JpdHlWYWx1ZXMuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZXNcbiAgICAgICAgICAgIC5zZWxlY3QoVXNlclByZWZlcmVuY2VWYWx1ZXMuUGFnaW5hdGlvblNpemUpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHBhZ2VTaXplKSA9PiAodGhpcy5zaXplID0gcGFnZVNpemUpKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydzb3J0aW5nJ10pIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybWF0U29ydGluZyhjaGFuZ2VzWydzb3J0aW5nJ10uY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlc1snYXBwTmFtZSddKSB7XG4gICAgICAgICAgICB0aGlzLnJldHJpZXZlVGFza3NQcmVmZXJlbmNlcygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMub25EZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLm9uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJldHJpZXZlVGFza3NQcmVmZXJlbmNlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdQcmVmZXJlbmNlcyQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5jbG91ZFByZWZlcmVuY2VTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0UHJlZmVyZW5jZXModGhpcy5hcHBOYW1lKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICBtYXAoKHByZWZlcmVuY2VzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZWZlcmVuY2VzTGlzdCA9IHByZWZlcmVuY2VzPy5saXN0Py5lbnRyaWVzID8/IFtdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5zT3JkZXIgPSBwcmVmZXJlbmNlc0xpc3QuZmluZCgocHJlZmVyZW5jZSkgPT4gcHJlZmVyZW5jZS5lbnRyeS5rZXkgPT09IFRhc2tzTGlzdENsb3VkUHJlZmVyZW5jZXMuY29sdW1uT3JkZXIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5zVmlzaWJpbGl0eSA9IHByZWZlcmVuY2VzTGlzdC5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgICAgKHByZWZlcmVuY2UpID0+IHByZWZlcmVuY2UuZW50cnkua2V5ID09PSBUYXNrc0xpc3RDbG91ZFByZWZlcmVuY2VzLmNvbHVtbnNWaXNpYmlsaXR5XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbnNXaWR0aHMgPSBwcmVmZXJlbmNlc0xpc3QuZmluZCgocHJlZmVyZW5jZSkgPT4gcHJlZmVyZW5jZS5lbnRyeS5rZXkgPT09IFRhc2tzTGlzdENsb3VkUHJlZmVyZW5jZXMuY29sdW1uc1dpZHRocyk7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnNPcmRlcjogY29sdW1uc09yZGVyID8gSlNPTi5wYXJzZShjb2x1bW5zT3JkZXIuZW50cnkudmFsdWUpIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uc1Zpc2liaWxpdHk6IGNvbHVtbnNWaXNpYmlsaXR5ID8gSlNPTi5wYXJzZShjb2x1bW5zVmlzaWJpbGl0eS5lbnRyeS52YWx1ZSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zV2lkdGhzOiBjb2x1bW5zV2lkdGhzID8gSlNPTi5wYXJzZShjb2x1bW5zV2lkdGhzLmVudHJ5LnZhbHVlKSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICh7IGNvbHVtbnNPcmRlciwgY29sdW1uc1Zpc2liaWxpdHksIGNvbHVtbnNXaWR0aHMgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29sdW1uc09yZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbnNPcmRlciA9IGNvbHVtbnNPcmRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW5zVmlzaWJpbGl0eSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zVmlzaWJpbGl0eSA9IGNvbHVtbnNWaXNpYmlsaXR5O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHVtbnNXaWR0aHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29sdW1uc1dpZHRocyA9IGNvbHVtbnNXaWR0aHM7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZURhdGF0YWJsZVNjaGVtYSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZUNvbHVtbnMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdQcmVmZXJlbmNlcyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmdQcmVmZXJlbmNlcyQubmV4dChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmV0cmlldmVUYXNrc1ByZWZlcmVuY2VzKCk7XG4gICAgfVxuXG4gICAgaXNMaXN0RW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5yb3dzIHx8IHRoaXMucm93cy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZXRzIHRoZSBwYWdpbmF0aW9uIHZhbHVlc1xuICAgICAqL1xuICAgIHJlc2V0UGFnaW5hdGlvbigpIHtcbiAgICAgICAgdGhpcy5za2lwQ291bnQgPSAwO1xuICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnVzZXJQcmVmZXJlbmNlcy5wYWdpbmF0aW9uU2l6ZTtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLm5leHQoe1xuICAgICAgICAgICAgc2tpcENvdW50OiAwLFxuICAgICAgICAgICAgbWF4SXRlbXM6IHRoaXMuc2l6ZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldHMgdGhlIHBhZ2luYXRpb24gdmFsdWVzIGFuZFxuICAgICAqIFJlbG9hZHMgdGhlIHRhc2sgbGlzdFxuICAgICAqXG4gICAgICogQHBhcmFtIHBhZ2luYXRpb24gUGFnaW5hdGlvbiB2YWx1ZXMgdG8gYmUgc2V0XG4gICAgICovXG4gICAgdXBkYXRlUGFnaW5hdGlvbihwYWdpbmF0aW9uOiBQYWdpbmF0aW9uTW9kZWwpIHtcbiAgICAgICAgdGhpcy5zaXplID0gcGFnaW5hdGlvbi5tYXhJdGVtcztcbiAgICAgICAgdGhpcy5za2lwQ291bnQgPSBwYWdpbmF0aW9uLnNraXBDb3VudDtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLm5leHQocGFnaW5hdGlvbik7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgb25Tb3J0aW5nQ2hhbmdlZChldmVudDogQ3VzdG9tRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZXRTb3J0aW5nKGV2ZW50LmRldGFpbCk7XG4gICAgICAgIHRoaXMuZm9ybWF0U29ydGluZyh0aGlzLnNvcnRpbmcpO1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIG9uUm93Q2xpY2soaXRlbTogRGF0YVJvd0V2ZW50KSB7XG4gICAgICAgIHRoaXMuY3VycmVudEluc3RhbmNlSWQgPSBpdGVtLnZhbHVlLmdldFZhbHVlKCdpZCcpO1xuICAgICAgICB0aGlzLnJvd0NsaWNrLmVtaXQodGhpcy5jdXJyZW50SW5zdGFuY2VJZCk7XG4gICAgfVxuXG4gICAgb25Sb3dTZWxlY3QoZXZlbnQ6IEN1c3RvbUV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbnN0YW5jZXMgPSBbLi4uZXZlbnQuZGV0YWlsLnNlbGVjdGlvbl07XG4gICAgICAgIHRoaXMucm93c1NlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZEluc3RhbmNlcyk7XG4gICAgfVxuXG4gICAgb25Sb3dVbnNlbGVjdChldmVudDogQ3VzdG9tRXZlbnQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluc3RhbmNlcyA9IFsuLi5ldmVudC5kZXRhaWwuc2VsZWN0aW9uXTtcbiAgICAgICAgdGhpcy5yb3dzU2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkSW5zdGFuY2VzKTtcbiAgICB9XG5cbiAgICBvblJvd0tleVVwKGV2ZW50OiBDdXN0b21FdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLmtleWJvYXJkRXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5zdGFuY2VJZCA9IGV2ZW50LmRldGFpbC5yb3cuZ2V0VmFsdWUoJ2lkJyk7XG4gICAgICAgICAgICB0aGlzLnJvd0NsaWNrLmVtaXQodGhpcy5jdXJyZW50SW5zdGFuY2VJZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNob3dSb3dBY3Rpb25zTWVudShldmVudDogRGF0YUNlbGxFdmVudCkge1xuICAgICAgICB0aGlzLnNob3dSb3dBY3Rpb25zTWVudS5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvblNob3dSb3dDb250ZXh0TWVudShldmVudDogRGF0YUNlbGxFdmVudCkge1xuICAgICAgICB0aGlzLnNob3dSb3dDb250ZXh0TWVudS5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkV4ZWN1dGVSb3dBY3Rpb24ocm93OiBEYXRhUm93QWN0aW9uRXZlbnQpIHtcbiAgICAgICAgdGhpcy5leGVjdXRlUm93QWN0aW9uLmVtaXQocm93KTtcbiAgICB9XG5cbiAgICBvbkNvbHVtbk9yZGVyQ2hhbmdlZChjb2x1bW5zV2l0aE5ld09yZGVyOiBEYXRhQ29sdW1uW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb2x1bW5zT3JkZXIgPSBjb2x1bW5zV2l0aE5ld09yZGVyLm1hcCgoY29sdW1uKSA9PiBjb2x1bW4uaWQpO1xuICAgICAgICB0aGlzLmNyZWF0ZUNvbHVtbnMoKTtcblxuICAgICAgICBpZiAodGhpcy5hcHBOYW1lKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3VkUHJlZmVyZW5jZVNlcnZpY2UudXBkYXRlUHJlZmVyZW5jZSh0aGlzLmFwcE5hbWUsIFRhc2tzTGlzdENsb3VkUHJlZmVyZW5jZXMuY29sdW1uT3JkZXIsIHRoaXMuY29sdW1uc09yZGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29sdW1uc1Zpc2liaWxpdHlDaGFuZ2UoY29sdW1uczogRGF0YUNvbHVtbltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29sdW1uc1Zpc2liaWxpdHkgPSBjb2x1bW5zLnJlZHVjZSgodmlzaWJsZUNvbHVtbnNNYXAsIGNvbHVtbikgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbHVtbi5pc0hpZGRlbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdmlzaWJsZUNvbHVtbnNNYXBbY29sdW1uLmlkXSA9ICFjb2x1bW4uaXNIaWRkZW47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2aXNpYmxlQ29sdW1uc01hcDtcbiAgICAgICAgfSwge30pO1xuXG4gICAgICAgIHRoaXMuY3JlYXRlQ29sdW1ucygpO1xuICAgICAgICB0aGlzLmNyZWF0ZURhdGF0YWJsZVNjaGVtYSgpO1xuXG4gICAgICAgIGlmICh0aGlzLmFwcE5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvdWRQcmVmZXJlbmNlU2VydmljZS51cGRhdGVQcmVmZXJlbmNlKHRoaXMuYXBwTmFtZSwgVGFza3NMaXN0Q2xvdWRQcmVmZXJlbmNlcy5jb2x1bW5zVmlzaWJpbGl0eSwgdGhpcy5jb2x1bW5zVmlzaWJpbGl0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNvbHVtbnNXaWR0aENoYW5nZWQoY29sdW1uczogRGF0YUNvbHVtbltdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbnNXaWR0aHMgPSBjb2x1bW5zLnJlZHVjZSgod2lkdGhzQ29sdW1uc01hcCwgY29sdW1uKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29sdW1uLndpZHRoKSB7XG4gICAgICAgICAgICAgICAgd2lkdGhzQ29sdW1uc01hcFtjb2x1bW4uaWRdID0gTWF0aC5jZWlsKGNvbHVtbi53aWR0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gd2lkdGhzQ29sdW1uc01hcDtcbiAgICAgICAgfSwge30pO1xuXG4gICAgICAgIHRoaXMuY29sdW1uc1dpZHRocyA9IHsgLi4udGhpcy5jb2x1bW5zV2lkdGhzLCAuLi5uZXdDb2x1bW5zV2lkdGhzIH07XG5cbiAgICAgICAgdGhpcy5jcmVhdGVDb2x1bW5zKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXBwTmFtZSkge1xuICAgICAgICAgICAgdGhpcy5jbG91ZFByZWZlcmVuY2VTZXJ2aWNlLnVwZGF0ZVByZWZlcmVuY2UodGhpcy5hcHBOYW1lLCBUYXNrc0xpc3RDbG91ZFByZWZlcmVuY2VzLmNvbHVtbnNXaWR0aHMsIHRoaXMuY29sdW1uc1dpZHRocyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTb3J0aW5nKHNvcnREZXRhaWwpIHtcbiAgICAgICAgY29uc3Qgc29ydGluZyA9IHNvcnREZXRhaWxcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgb3JkZXJCeTogc29ydERldGFpbC5zb3J0aW5nS2V5IHx8IHNvcnREZXRhaWwua2V5LFxuICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiBzb3J0RGV0YWlsLmRpcmVjdGlvbi50b1VwcGVyQ2FzZSgpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogeyAuLi50aGlzLmRlZmF1bHRTb3J0aW5nIH07XG4gICAgICAgIHRoaXMuc29ydGluZyA9IFtuZXcgVGFza0xpc3RDbG91ZFNvcnRpbmdNb2RlbChzb3J0aW5nKV07XG4gICAgfVxuXG4gICAgZm9ybWF0U29ydGluZyhzb3J0aW5nOiBUYXNrTGlzdENsb3VkU29ydGluZ01vZGVsW10pIHtcbiAgICAgICAgdGhpcy5mb3JtYXR0ZWRTb3J0aW5nID0gdGhpcy5pc1ZhbGlkU29ydGluZyhzb3J0aW5nKSA/IFtzb3J0aW5nWzBdLm9yZGVyQnksIHNvcnRpbmdbMF0uZGlyZWN0aW9uLnRvTG9jYWxlTG93ZXJDYXNlKCldIDogbnVsbDtcbiAgICB9XG5cbiAgICBpc1ZhbGlkU29ydGluZyhzb3J0aW5nOiBUYXNrTGlzdENsb3VkU29ydGluZ01vZGVsW10pIHtcbiAgICAgICAgcmV0dXJuIHNvcnRpbmc/Lmxlbmd0aCAmJiBzb3J0aW5nWzBdLm9yZGVyQnkgJiYgc29ydGluZ1swXS5kaXJlY3Rpb247XG4gICAgfVxuXG4gICAgcmVwbGFjZVByaW9yaXR5VmFsdWVzKHJvdzogRGF0YVJvdywgY29sdW1uOiBEYXRhQ29sdW1uKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW4ua2V5LnNwbGl0KCcuJykucmVkdWNlKChzb3VyY2UsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ3ByaW9yaXR5JyAmJiBzb3VyY2UgJiYgdHlwZW9mIHNvdXJjZVtrZXldID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHJldHVybiAoc291cmNlW2tleV0gPSB0aGlzLnRhc2tDbG91ZFNlcnZpY2UuZ2V0UHJpb3JpdHlMYWJlbChzb3VyY2Vba2V5XSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZSAmJiB0eXBlb2Ygc291cmNlID09PSAnb2JqZWN0JyA/IHNvdXJjZVtrZXldIDogdW5kZWZpbmVkO1xuICAgICAgICB9LCByb3cub2JqKTtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCByZWxvYWQoKTtcbn1cbiJdfQ==
@@ -93,9 +93,9 @@ export class ServiceTaskListCloudComponent extends BaseTaskListCloudComponent {
93
93
  return requestNode;
94
94
  }
95
95
  }
96
- ServiceTaskListCloudComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ServiceTaskListCloudComponent, deps: [{ token: i1.ServiceTaskListCloudService }, { token: i2.AppConfigService }, { token: i3.TaskCloudService }, { token: i2.UserPreferencesService }, { token: TASK_LIST_PREFERENCES_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
97
- ServiceTaskListCloudComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ServiceTaskListCloudComponent, selector: "adf-cloud-service-task-list", inputs: { queryParams: "queryParams" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"!rows\">{{ 'ADF_CLOUD_TASK_LIST.FILTERS.MESSAGES.NONE' | translate }}</div>\n<ng-container *ngIf=\"rows\">\n <adf-datatable\n [rows]=\"rows\"\n [columns]=\"columns\"\n [data]=\"dataAdapter\"\n [loading]=\"isLoading$ | async\"\n [sorting]=\"formattedSorting\"\n [multiselect]=\"multiselect\"\n [selectionMode]=\"selectionMode\"\n [stickyHeader]=\"stickyHeader\"\n [actions]=\"showActions\"\n [actionsPosition]=\"actionsPosition\"\n [contextMenu]=\"showContextMenu\"\n [resolverFn]=\"boundReplacePriorityValues\"\n [showMainDatatableActions]=\"showMainDatatableActions\"\n [isResizingEnabled]=\"isResizingEnabled\"\n (showRowActionsMenu)=\"onShowRowActionsMenu($event)\"\n (showRowContextMenu)=\"onShowRowContextMenu($event)\"\n (executeRowAction)=\"onExecuteRowAction($event)\"\n (row-select)=\"onRowSelect($any($event))\"\n (row-unselect)=\"onRowUnselect($any($event))\"\n (rowClick)=\"onRowClick($any($event))\"\n (row-keyup)=\"onRowKeyUp($any($event))\"\n (sorting-changed)=\"onSortingChanged($any($event))\"\n (columnOrderChanged)=\"onColumnOrderChanged($event)\"\n (columnsWidthChanged)=\"onColumnsWidthChanged($event)\"\n >\n <adf-loading-content-template>\n <ng-template>\n <!-- Add your custom loading template here -->\n <mat-progress-spinner class=\"adf-cloud-task-list-loading-margin\"\n [color]=\"'primary'\"\n [mode]=\"'indeterminate'\">\n </mat-progress-spinner>\n </ng-template>\n </adf-loading-content-template>\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content *ngIf=\"!emptyCustomContent\"\n icon=\"assignment\"\n [title]=\"'ADF_CLOUD_TASK_LIST.LIST.MESSAGES.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.LIST.MESSAGES.SUBTITLE' | translate\">\n </adf-empty-content>\n <ng-content select=\"adf-custom-empty-content-template\"></ng-content>\n </ng-template>\n </adf-no-content-template>\n\n <adf-main-menu-datatable-template>\n <ng-template let-mainMenuTrigger>\n <adf-datatable-column-selector\n [columns]=\"columns\"\n [mainMenuTrigger]=\"mainMenuTrigger\"\n (submitColumnsVisibility)=\"onColumnsVisibilityChange($event)\">\n </adf-datatable-column-selector>\n </ng-template>\n </adf-main-menu-datatable-template>\n </adf-datatable>\n</ng-container>\n", styles: [".adf-cloud-task-list-loading-margin{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i2.DataTableComponent, selector: "adf-datatable", inputs: ["data", "rows", "sorting", "columns", "selectionMode", "multiselect", "mainTableAction", "actions", "showMainDatatableActions", "actionsPosition", "actionsVisibleOnHover", "fallbackThumbnail", "contextMenu", "rowStyle", "rowStyleClass", "showHeader", "stickyHeader", "loading", "noPermission", "rowMenuCacheEnabled", "resolverFn", "allowFiltering", "isResizingEnabled", "blurOnResize"], outputs: ["rowClick", "rowDblClick", "showRowContextMenu", "showRowActionsMenu", "executeRowAction", "columnOrderChanged", "columnsWidthChanged"] }, { kind: "component", type: i2.ColumnsSelectorComponent, selector: "adf-datatable-column-selector", inputs: ["columns", "mainMenuTrigger", "columnsSorting", "maxColumnsVisible"], outputs: ["submitColumnsVisibility"] }, { kind: "directive", type: i2.NoContentTemplateDirective, selector: "adf-no-content-template, no-content-template" }, { kind: "directive", type: i2.LoadingContentTemplateDirective, selector: "adf-loading-content-template, loading-content-template" }, { kind: "directive", type: i2.MainMenuDataTableTemplateDirective, selector: "adf-main-menu-datatable-template" }, { kind: "component", type: i2.EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ServiceTaskListCloudComponent, decorators: [{
96
+ ServiceTaskListCloudComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServiceTaskListCloudComponent, deps: [{ token: i1.ServiceTaskListCloudService }, { token: i2.AppConfigService }, { token: i3.TaskCloudService }, { token: i2.UserPreferencesService }, { token: TASK_LIST_PREFERENCES_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
97
+ ServiceTaskListCloudComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ServiceTaskListCloudComponent, selector: "adf-cloud-service-task-list", inputs: { queryParams: "queryParams" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"!rows\">{{ 'ADF_CLOUD_TASK_LIST.FILTERS.MESSAGES.NONE' | translate }}</div>\n<ng-container *ngIf=\"rows\">\n <adf-datatable\n [rows]=\"rows\"\n [columns]=\"columns\"\n [data]=\"dataAdapter\"\n [loading]=\"isLoading$ | async\"\n [sorting]=\"formattedSorting\"\n [multiselect]=\"multiselect\"\n [selectionMode]=\"selectionMode\"\n [stickyHeader]=\"stickyHeader\"\n [actions]=\"showActions\"\n [actionsPosition]=\"actionsPosition\"\n [contextMenu]=\"showContextMenu\"\n [resolverFn]=\"boundReplacePriorityValues\"\n [showMainDatatableActions]=\"showMainDatatableActions\"\n [isResizingEnabled]=\"isResizingEnabled\"\n (showRowActionsMenu)=\"onShowRowActionsMenu($event)\"\n (showRowContextMenu)=\"onShowRowContextMenu($event)\"\n (executeRowAction)=\"onExecuteRowAction($event)\"\n (row-select)=\"onRowSelect($any($event))\"\n (row-unselect)=\"onRowUnselect($any($event))\"\n (rowClick)=\"onRowClick($any($event))\"\n (row-keyup)=\"onRowKeyUp($any($event))\"\n (sorting-changed)=\"onSortingChanged($any($event))\"\n (columnOrderChanged)=\"onColumnOrderChanged($event)\"\n (columnsWidthChanged)=\"onColumnsWidthChanged($event)\"\n >\n <adf-loading-content-template>\n <ng-template>\n <!-- Add your custom loading template here -->\n <mat-progress-spinner class=\"adf-cloud-task-list-loading-margin\"\n [color]=\"'primary'\"\n [mode]=\"'indeterminate'\">\n </mat-progress-spinner>\n </ng-template>\n </adf-loading-content-template>\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content *ngIf=\"!emptyCustomContent\"\n icon=\"assignment\"\n [title]=\"'ADF_CLOUD_TASK_LIST.LIST.MESSAGES.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.LIST.MESSAGES.SUBTITLE' | translate\">\n </adf-empty-content>\n <ng-content select=\"adf-custom-empty-content-template\"></ng-content>\n </ng-template>\n </adf-no-content-template>\n\n <adf-main-menu-datatable-template>\n <ng-template let-mainMenuTrigger>\n <adf-datatable-column-selector\n [columns]=\"columns\"\n [mainMenuTrigger]=\"mainMenuTrigger\"\n (submitColumnsVisibility)=\"onColumnsVisibilityChange($event)\">\n </adf-datatable-column-selector>\n </ng-template>\n </adf-main-menu-datatable-template>\n </adf-datatable>\n</ng-container>\n", styles: [".adf-cloud-task-list-loading-margin{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i2.DataTableComponent, selector: "adf-datatable", inputs: ["data", "rows", "sorting", "columns", "selectionMode", "multiselect", "mainTableAction", "actions", "showMainDatatableActions", "actionsPosition", "actionsVisibleOnHover", "fallbackThumbnail", "contextMenu", "rowStyle", "rowStyleClass", "showHeader", "stickyHeader", "loading", "noPermission", "rowMenuCacheEnabled", "resolverFn", "allowFiltering", "isResizingEnabled", "blurOnResize"], outputs: ["rowClick", "rowDblClick", "showRowContextMenu", "showRowActionsMenu", "executeRowAction", "columnOrderChanged", "columnsWidthChanged"] }, { kind: "component", type: i2.ColumnsSelectorComponent, selector: "adf-datatable-column-selector", inputs: ["columns", "mainMenuTrigger", "columnsSorting", "maxColumnsVisible"], outputs: ["submitColumnsVisibility"] }, { kind: "directive", type: i2.NoContentTemplateDirective, selector: "adf-no-content-template, no-content-template" }, { kind: "directive", type: i2.LoadingContentTemplateDirective, selector: "adf-loading-content-template, loading-content-template" }, { kind: "directive", type: i2.MainMenuDataTableTemplateDirective, selector: "adf-main-menu-datatable-template" }, { kind: "component", type: i2.EmptyContentComponent, selector: "adf-empty-content", inputs: ["icon", "title", "subtitle"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServiceTaskListCloudComponent, decorators: [{
99
99
  type: Component,
100
100
  args: [{ selector: 'adf-cloud-service-task-list', encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"!rows\">{{ 'ADF_CLOUD_TASK_LIST.FILTERS.MESSAGES.NONE' | translate }}</div>\n<ng-container *ngIf=\"rows\">\n <adf-datatable\n [rows]=\"rows\"\n [columns]=\"columns\"\n [data]=\"dataAdapter\"\n [loading]=\"isLoading$ | async\"\n [sorting]=\"formattedSorting\"\n [multiselect]=\"multiselect\"\n [selectionMode]=\"selectionMode\"\n [stickyHeader]=\"stickyHeader\"\n [actions]=\"showActions\"\n [actionsPosition]=\"actionsPosition\"\n [contextMenu]=\"showContextMenu\"\n [resolverFn]=\"boundReplacePriorityValues\"\n [showMainDatatableActions]=\"showMainDatatableActions\"\n [isResizingEnabled]=\"isResizingEnabled\"\n (showRowActionsMenu)=\"onShowRowActionsMenu($event)\"\n (showRowContextMenu)=\"onShowRowContextMenu($event)\"\n (executeRowAction)=\"onExecuteRowAction($event)\"\n (row-select)=\"onRowSelect($any($event))\"\n (row-unselect)=\"onRowUnselect($any($event))\"\n (rowClick)=\"onRowClick($any($event))\"\n (row-keyup)=\"onRowKeyUp($any($event))\"\n (sorting-changed)=\"onSortingChanged($any($event))\"\n (columnOrderChanged)=\"onColumnOrderChanged($event)\"\n (columnsWidthChanged)=\"onColumnsWidthChanged($event)\"\n >\n <adf-loading-content-template>\n <ng-template>\n <!-- Add your custom loading template here -->\n <mat-progress-spinner class=\"adf-cloud-task-list-loading-margin\"\n [color]=\"'primary'\"\n [mode]=\"'indeterminate'\">\n </mat-progress-spinner>\n </ng-template>\n </adf-loading-content-template>\n <adf-no-content-template>\n <ng-template>\n <adf-empty-content *ngIf=\"!emptyCustomContent\"\n icon=\"assignment\"\n [title]=\"'ADF_CLOUD_TASK_LIST.LIST.MESSAGES.TITLE' | translate\"\n [subtitle]=\"'ADF_CLOUD_TASK_LIST.LIST.MESSAGES.SUBTITLE' | translate\">\n </adf-empty-content>\n <ng-content select=\"adf-custom-empty-content-template\"></ng-content>\n </ng-template>\n </adf-no-content-template>\n\n <adf-main-menu-datatable-template>\n <ng-template let-mainMenuTrigger>\n <adf-datatable-column-selector\n [columns]=\"columns\"\n [mainMenuTrigger]=\"mainMenuTrigger\"\n (submitColumnsVisibility)=\"onColumnsVisibilityChange($event)\">\n </adf-datatable-column-selector>\n </ng-template>\n </adf-main-menu-datatable-template>\n </adf-datatable>\n</ng-container>\n", styles: [".adf-cloud-task-list-loading-margin{margin-left:calc((100% - 100px)/2);margin-right:calc((100% - 100px)/2)}\n"] }]
101
101
  }], ctorParameters: function () { return [{ type: i1.ServiceTaskListCloudService }, { type: i2.AppConfigService }, { type: i3.TaskCloudService }, { type: i2.UserPreferencesService }, { type: undefined, decorators: [{
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
104
104
  }] }]; }, propDecorators: { queryParams: [{
105
105
  type: Input
106
106
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stbGlzdC9jb21wb25lbnRzL3NlcnZpY2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWxpc3QvY29tcG9uZW50cy9iYXNlLXRhc2stbGlzdC1jbG91ZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUNILGdCQUFnQixFQUFFLHNCQUFzQixFQUMzQyxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQW1DLG1DQUFtQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFFaEQsTUFBTSxVQUFVLEdBQUcscUNBQXFDLENBQUM7QUFRekQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLDBCQUEwQjtJQWN6RSxZQUFvQiwyQkFBd0Qs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LEVBQUUsYUFBYTtZQUM5QyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTO1lBQ3RDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVc7WUFDMUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxtQkFBbUI7WUFDMUQsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxvQkFBb0I7WUFDNUQsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSx3QkFBd0I7WUFDcEUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxpQkFBaUI7WUFDdEQsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZTtZQUNsRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXO1lBQzFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLGNBQWM7WUFDaEQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVztZQUMxQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNO1NBQ0UsQ0FBQztRQUN2QyxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDOzswSEEvRVEsNkJBQTZCLG1LQWtCbEIsbUNBQW1DOzhHQWxCOUMsNkJBQTZCLGtJQ3JDMUMsZ2dHQTJEQTsyRkR0QmEsNkJBQTZCO2tCQU56QyxTQUFTOytCQUNJLDZCQUE2QixpQkFHeEIsaUJBQWlCLENBQUMsSUFBSTs7MEJBb0J4QixNQUFNOzJCQUFDLG1DQUFtQzs0Q0FoQnZELFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFwcENvbmZpZ1NlcnZpY2UsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFNlcnZpY2VUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zZXJ2aWNlLXRhc2stY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgQmFzZVRhc2tMaXN0Q2xvdWRDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXJ2aWNlVGFza0xpc3RDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZXJ2aWNlLXRhc2stbGlzdC1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcmVmZXJlbmNlQ2xvdWRTZXJ2aWNlSW50ZXJmYWNlLCBUQVNLX0xJU1RfUFJFRkVSRU5DRVNfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IFBSRVNFVF9LRVkgPSAnYWRmLWNsb3VkLXNlcnZpY2UtdGFzay1saXN0LnByZXNldHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC1zZXJ2aWNlLXRhc2stbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jhc2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXNlLXRhc2stbGlzdC1jbG91ZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZVRhc2tMaXN0Q2xvdWRDb21wb25lbnQgZXh0ZW5kcyBCYXNlVGFza0xpc3RDbG91ZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBxdWVyeVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBvbkRlc3Ryb3lTZXJ2aWNlVGFza0xpc3QkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgaXNSZWxvYWRpbmdTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGlzTG9hZGluZyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdQcmVmZXJlbmNlcyQsXG4gICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JFxuICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2lzTG9hZGluZ1ByZWZlcmVuY2VzLCBpc1JlbG9hZGluZ10pID0+IGlzTG9hZGluZ1ByZWZlcmVuY2VzIHx8IGlzUmVsb2FkaW5nKVxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2VUYXNrTGlzdENsb3VkU2VydmljZTogU2VydmljZVRhc2tMaXN0Q2xvdWRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgdGFza0Nsb3VkU2VydmljZTogVGFza0Nsb3VkU2VydmljZSxcbiAgICAgICAgICAgICAgICB1c2VyUHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgQEluamVjdChUQVNLX0xJU1RfUFJFRkVSRU5DRVNfU0VSVklDRV9UT0tFTikgY2xvdWRQcmVmZXJlbmNlU2VydmljZTogUHJlZmVyZW5jZUNsb3VkU2VydmljZUludGVyZmFjZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgIHN1cGVyKGFwcENvbmZpZ1NlcnZpY2UsIHRhc2tDbG91ZFNlcnZpY2UsIHVzZXJQcmVmZXJlbmNlcywgUFJFU0VUX0tFWSwgY2xvdWRQcmVmZXJlbmNlU2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMub25EZXN0cm95U2VydmljZVRhc2tMaXN0JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLm9uRGVzdHJveVNlcnZpY2VUYXNrTGlzdCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICByZWxvYWQoKSB7XG4gICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JC5uZXh0KHRydWUpO1xuXG4gICAgICAgIHRoaXMucmVxdWVzdE5vZGUgPSB0aGlzLmNyZWF0ZVJlcXVlc3ROb2RlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWVzdE5vZGUuYXBwTmFtZSB8fCB0aGlzLnJlcXVlc3ROb2RlLmFwcE5hbWUgPT09ICcnKSB7XG5cbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVRhc2tMaXN0Q2xvdWRTZXJ2aWNlLmdldFNlcnZpY2VUYXNrQnlSZXF1ZXN0KHRoaXMucmVxdWVzdE5vZGUpLFxuICAgICAgICAgICAgICAgIHRoaXMuaXNDb2x1bW5TY2hlbWFDcmVhdGVkJFxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3lTZXJ2aWNlVGFza0xpc3QkKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKFt0YXNrc10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3dzID0gdGFza3MubGlzdC5lbnRyaWVzO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0YXNrcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbi5uZXh0KHRhc2tzLmxpc3QucGFnaW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlbG9hZGluZ1N1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yb3dzID0gW107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVSZXF1ZXN0Tm9kZSgpOiBTZXJ2aWNlVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwge1xuICAgICAgICBjb25zdCByZXF1ZXN0Tm9kZTogU2VydmljZVRhc2tRdWVyeUNsb3VkUmVxdWVzdE1vZGVsID0ge1xuICAgICAgICAgICAgYXBwTmFtZTogdGhpcy5hcHBOYW1lLFxuICAgICAgICAgICAgbWF4SXRlbXM6IHRoaXMuc2l6ZSxcbiAgICAgICAgICAgIHNraXBDb3VudDogdGhpcy5za2lwQ291bnQsXG4gICAgICAgICAgICBzb3J0aW5nOiB0aGlzLnNvcnRpbmcsXG4gICAgICAgICAgICBpZDogdGhpcy5xdWVyeVBhcmFtcz8uc2VydmljZVRhc2tJZCxcbiAgICAgICAgICAgIGVudmlyb25tZW50SWQ6IHRoaXMucXVlcnlQYXJhbXM/LmVudmlyb25tZW50SWQsXG4gICAgICAgICAgICBhY3Rpdml0eU5hbWU6IHRoaXMucXVlcnlQYXJhbXM/LmFjdGl2aXR5TmFtZSxcbiAgICAgICAgICAgIGFjdGl2aXR5VHlwZTogdGhpcy5xdWVyeVBhcmFtcz8uYWN0aXZpdHlUeXBlLFxuICAgICAgICAgICAgY29tcGxldGVkRGF0ZTogdGhpcy5xdWVyeVBhcmFtcz8uY29tcGxldGVkRGF0ZSxcbiAgICAgICAgICAgIGVsZW1lbnRJZDogdGhpcy5xdWVyeVBhcmFtcz8uZWxlbWVudElkLFxuICAgICAgICAgICAgZXhlY3V0aW9uSWQ6IHRoaXMucXVlcnlQYXJhbXM/LmV4ZWN1dGlvbklkLFxuICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25JZDogdGhpcy5xdWVyeVBhcmFtcz8ucHJvY2Vzc0RlZmluaXRpb25JZCxcbiAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uS2V5OiB0aGlzLnF1ZXJ5UGFyYW1zPy5wcm9jZXNzRGVmaW5pdGlvbktleSxcbiAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbjogdGhpcy5xdWVyeVBhcmFtcz8ucHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uLFxuICAgICAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHRoaXMucXVlcnlQYXJhbXM/LnByb2Nlc3NJbnN0YW5jZUlkLFxuICAgICAgICAgICAgc2VydmljZUZ1bGxOYW1lOiB0aGlzLnF1ZXJ5UGFyYW1zPy5zZXJ2aWNlRnVsbE5hbWUsXG4gICAgICAgICAgICBzZXJ2aWNlTmFtZTogdGhpcy5xdWVyeVBhcmFtcz8uc2VydmljZU5hbWUsXG4gICAgICAgICAgICBzZXJ2aWNlVmVyc2lvbjogdGhpcy5xdWVyeVBhcmFtcz8uc2VydmljZVZlcnNpb24sXG4gICAgICAgICAgICBzdGFydGVkRGF0ZTogdGhpcy5xdWVyeVBhcmFtcz8uc3RhcnRlZERhdGUsXG4gICAgICAgICAgICBzdGF0dXM6IHRoaXMucXVlcnlQYXJhbXM/LnN0YXR1c1xuICAgICAgICB9IGFzIFNlcnZpY2VUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbDtcbiAgICAgICAgcmV0dXJuIHJlcXVlc3ROb2RlO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCIhcm93c1wiPnt7ICdBREZfQ0xPVURfVEFTS19MSVNULkZJTFRFUlMuTUVTU0FHRVMuTk9ORScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dzXCI+XG4gICAgICAgIDxhZGYtZGF0YXRhYmxlXG4gICAgICAgICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgW2RhdGFdPVwiZGF0YUFkYXB0ZXJcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtzb3J0aW5nXT1cImZvcm1hdHRlZFNvcnRpbmdcIlxuICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cIm11bHRpc2VsZWN0XCJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgW3N0aWNreUhlYWRlcl09XCJzdGlja3lIZWFkZXJcIlxuICAgICAgICAgICAgW2FjdGlvbnNdPVwic2hvd0FjdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGlvbnNQb3NpdGlvbl09XCJhY3Rpb25zUG9zaXRpb25cIlxuICAgICAgICAgICAgW2NvbnRleHRNZW51XT1cInNob3dDb250ZXh0TWVudVwiXG4gICAgICAgICAgICBbcmVzb2x2ZXJGbl09XCJib3VuZFJlcGxhY2VQcmlvcml0eVZhbHVlc1wiXG4gICAgICAgICAgICBbc2hvd01haW5EYXRhdGFibGVBY3Rpb25zXT1cInNob3dNYWluRGF0YXRhYmxlQWN0aW9uc1wiXG4gICAgICAgICAgICBbaXNSZXNpemluZ0VuYWJsZWRdPVwiaXNSZXNpemluZ0VuYWJsZWRcIlxuICAgICAgICAgICAgKHNob3dSb3dBY3Rpb25zTWVudSk9XCJvblNob3dSb3dBY3Rpb25zTWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzaG93Um93Q29udGV4dE1lbnUpPVwib25TaG93Um93Q29udGV4dE1lbnUoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZXhlY3V0ZVJvd0FjdGlvbik9XCJvbkV4ZWN1dGVSb3dBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAocm93LXNlbGVjdCk9XCJvblJvd1NlbGVjdCgkYW55KCRldmVudCkpXCJcbiAgICAgICAgICAgIChyb3ctdW5zZWxlY3QpPVwib25Sb3dVbnNlbGVjdCgkYW55KCRldmVudCkpXCJcbiAgICAgICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHJvdy1rZXl1cCk9XCJvblJvd0tleVVwKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHNvcnRpbmctY2hhbmdlZCk9XCJvblNvcnRpbmdDaGFuZ2VkKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKGNvbHVtbk9yZGVyQ2hhbmdlZCk9XCJvbkNvbHVtbk9yZGVyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChjb2x1bW5zV2lkdGhDaGFuZ2VkKT1cIm9uQ29sdW1uc1dpZHRoQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxhZGYtbG9hZGluZy1jb250ZW50LXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBBZGQgeW91ciBjdXN0b20gbG9hZGluZyB0ZW1wbGF0ZSBoZXJlIC0tPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgY2xhc3M9XCJhZGYtY2xvdWQtdGFzay1saXN0LWxvYWRpbmctbWFyZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwiJ2luZGV0ZXJtaW5hdGUnXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYWRmLWxvYWRpbmctY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxhZGYtbm8tY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtZW1wdHktY29udGVudCAqbmdJZj1cIiFlbXB0eUN1c3RvbUNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImFzc2lnbm1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBREZfQ0xPVURfVEFTS19MSVNULkxJU1QuTUVTU0FHRVMuVElUTEUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCInQURGX0NMT1VEX1RBU0tfTElTVC5MSVNULk1FU1NBR0VTLlNVQlRJVExFJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2FkZi1lbXB0eS1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtY3VzdG9tLWVtcHR5LWNvbnRlbnQtdGVtcGxhdGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYWRmLW5vLWNvbnRlbnQtdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxhZGYtbWFpbi1tZW51LWRhdGF0YWJsZS10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LW1haW5NZW51VHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgPGFkZi1kYXRhdGFibGUtY29sdW1uLXNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYWluTWVudVRyaWdnZXJdPVwibWFpbk1lbnVUcmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtaXRDb2x1bW5zVmlzaWJpbGl0eSk9XCJvbkNvbHVtbnNWaXNpYmlsaXR5Q2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9hZGYtZGF0YXRhYmxlLWNvbHVtbi1zZWxlY3Rvcj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9hZGYtbWFpbi1tZW51LWRhdGF0YWJsZS10ZW1wbGF0ZT5cbiAgICAgICAgPC9hZGYtZGF0YXRhYmxlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS10YXNrLWxpc3QtY2xvdWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3Byb2Nlc3Mtc2VydmljZXMtY2xvdWQvc3JjL2xpYi90YXNrL3Rhc2stbGlzdC9jb21wb25lbnRzL3NlcnZpY2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9wcm9jZXNzLXNlcnZpY2VzLWNsb3VkL3NyYy9saWIvdGFzay90YXNrLWxpc3QvY29tcG9uZW50cy9iYXNlLXRhc2stbGlzdC1jbG91ZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUNILGdCQUFnQixFQUFFLHNCQUFzQixFQUMzQyxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQW1DLG1DQUFtQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFFaEQsTUFBTSxVQUFVLEdBQUcscUNBQXFDLENBQUM7QUFRekQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLDBCQUEwQjtJQWN6RSxZQUFvQiwyQkFBd0Qs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LEVBQUUsYUFBYTtZQUM5QyxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTO1lBQ3RDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVc7WUFDMUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxtQkFBbUI7WUFDMUQsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxvQkFBb0I7WUFDNUQsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSx3QkFBd0I7WUFDcEUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxpQkFBaUI7WUFDdEQsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZTtZQUNsRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXO1lBQzFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLGNBQWM7WUFDaEQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVztZQUMxQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNO1NBQ0UsQ0FBQztRQUN2QyxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDOzsySEEvRVEsNkJBQTZCLG1LQWtCbEIsbUNBQW1DOytHQWxCOUMsNkJBQTZCLGtJQ3JDMUMsZ2dHQTJEQTs0RkR0QmEsNkJBQTZCO2tCQU56QyxTQUFTOytCQUNJLDZCQUE2QixpQkFHeEIsaUJBQWlCLENBQUMsSUFBSTs7MEJBb0J4QixNQUFNOzJCQUFDLG1DQUFtQzs0Q0FoQnZELFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjQgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFwcENvbmZpZ1NlcnZpY2UsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFNlcnZpY2VUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zZXJ2aWNlLXRhc2stY2xvdWQubW9kZWwnO1xuaW1wb3J0IHsgQmFzZVRhc2tMaXN0Q2xvdWRDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXJ2aWNlVGFza0xpc3RDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zZXJ2aWNlLXRhc2stbGlzdC1jbG91ZC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhc2tDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLWNsb3VkLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCwgY29tYmluZUxhdGVzdCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcmVmZXJlbmNlQ2xvdWRTZXJ2aWNlSW50ZXJmYWNlLCBUQVNLX0xJU1RfUFJFRkVSRU5DRVNfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IFBSRVNFVF9LRVkgPSAnYWRmLWNsb3VkLXNlcnZpY2UtdGFzay1saXN0LnByZXNldHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1jbG91ZC1zZXJ2aWNlLXRhc2stbGlzdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jhc2UtdGFzay1saXN0LWNsb3VkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9iYXNlLXRhc2stbGlzdC1jbG91ZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZVRhc2tMaXN0Q2xvdWRDb21wb25lbnQgZXh0ZW5kcyBCYXNlVGFza0xpc3RDbG91ZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBxdWVyeVBhcmFtczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBvbkRlc3Ryb3lTZXJ2aWNlVGFza0xpc3QkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHByaXZhdGUgaXNSZWxvYWRpbmdTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGlzTG9hZGluZyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdQcmVmZXJlbmNlcyQsXG4gICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JFxuICAgIF0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2lzTG9hZGluZ1ByZWZlcmVuY2VzLCBpc1JlbG9hZGluZ10pID0+IGlzTG9hZGluZ1ByZWZlcmVuY2VzIHx8IGlzUmVsb2FkaW5nKVxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2VUYXNrTGlzdENsb3VkU2VydmljZTogU2VydmljZVRhc2tMaXN0Q2xvdWRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgdGFza0Nsb3VkU2VydmljZTogVGFza0Nsb3VkU2VydmljZSxcbiAgICAgICAgICAgICAgICB1c2VyUHJlZmVyZW5jZXM6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgQEluamVjdChUQVNLX0xJU1RfUFJFRkVSRU5DRVNfU0VSVklDRV9UT0tFTikgY2xvdWRQcmVmZXJlbmNlU2VydmljZTogUHJlZmVyZW5jZUNsb3VkU2VydmljZUludGVyZmFjZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgIHN1cGVyKGFwcENvbmZpZ1NlcnZpY2UsIHRhc2tDbG91ZFNlcnZpY2UsIHVzZXJQcmVmZXJlbmNlcywgUFJFU0VUX0tFWSwgY2xvdWRQcmVmZXJlbmNlU2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMub25EZXN0cm95U2VydmljZVRhc2tMaXN0JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLm9uRGVzdHJveVNlcnZpY2VUYXNrTGlzdCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICByZWxvYWQoKSB7XG4gICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JC5uZXh0KHRydWUpO1xuXG4gICAgICAgIHRoaXMucmVxdWVzdE5vZGUgPSB0aGlzLmNyZWF0ZVJlcXVlc3ROb2RlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMucmVxdWVzdE5vZGUuYXBwTmFtZSB8fCB0aGlzLnJlcXVlc3ROb2RlLmFwcE5hbWUgPT09ICcnKSB7XG5cbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVRhc2tMaXN0Q2xvdWRTZXJ2aWNlLmdldFNlcnZpY2VUYXNrQnlSZXF1ZXN0KHRoaXMucmVxdWVzdE5vZGUpLFxuICAgICAgICAgICAgICAgIHRoaXMuaXNDb2x1bW5TY2hlbWFDcmVhdGVkJFxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5vbkRlc3Ryb3lTZXJ2aWNlVGFza0xpc3QkKVxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKFt0YXNrc10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3dzID0gdGFza3MubGlzdC5lbnRyaWVzO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0YXNrcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbi5uZXh0KHRhc2tzLmxpc3QucGFnaW5hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWxvYWRpbmdTdWJqZWN0JC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlbG9hZGluZ1N1YmplY3QkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yb3dzID0gW107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVSZXF1ZXN0Tm9kZSgpOiBTZXJ2aWNlVGFza1F1ZXJ5Q2xvdWRSZXF1ZXN0TW9kZWwge1xuICAgICAgICBjb25zdCByZXF1ZXN0Tm9kZTogU2VydmljZVRhc2tRdWVyeUNsb3VkUmVxdWVzdE1vZGVsID0ge1xuICAgICAgICAgICAgYXBwTmFtZTogdGhpcy5hcHBOYW1lLFxuICAgICAgICAgICAgbWF4SXRlbXM6IHRoaXMuc2l6ZSxcbiAgICAgICAgICAgIHNraXBDb3VudDogdGhpcy5za2lwQ291bnQsXG4gICAgICAgICAgICBzb3J0aW5nOiB0aGlzLnNvcnRpbmcsXG4gICAgICAgICAgICBpZDogdGhpcy5xdWVyeVBhcmFtcz8uc2VydmljZVRhc2tJZCxcbiAgICAgICAgICAgIGVudmlyb25tZW50SWQ6IHRoaXMucXVlcnlQYXJhbXM/LmVudmlyb25tZW50SWQsXG4gICAgICAgICAgICBhY3Rpdml0eU5hbWU6IHRoaXMucXVlcnlQYXJhbXM/LmFjdGl2aXR5TmFtZSxcbiAgICAgICAgICAgIGFjdGl2aXR5VHlwZTogdGhpcy5xdWVyeVBhcmFtcz8uYWN0aXZpdHlUeXBlLFxuICAgICAgICAgICAgY29tcGxldGVkRGF0ZTogdGhpcy5xdWVyeVBhcmFtcz8uY29tcGxldGVkRGF0ZSxcbiAgICAgICAgICAgIGVsZW1lbnRJZDogdGhpcy5xdWVyeVBhcmFtcz8uZWxlbWVudElkLFxuICAgICAgICAgICAgZXhlY3V0aW9uSWQ6IHRoaXMucXVlcnlQYXJhbXM/LmV4ZWN1dGlvbklkLFxuICAgICAgICAgICAgcHJvY2Vzc0RlZmluaXRpb25JZDogdGhpcy5xdWVyeVBhcmFtcz8ucHJvY2Vzc0RlZmluaXRpb25JZCxcbiAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uS2V5OiB0aGlzLnF1ZXJ5UGFyYW1zPy5wcm9jZXNzRGVmaW5pdGlvbktleSxcbiAgICAgICAgICAgIHByb2Nlc3NEZWZpbml0aW9uVmVyc2lvbjogdGhpcy5xdWVyeVBhcmFtcz8ucHJvY2Vzc0RlZmluaXRpb25WZXJzaW9uLFxuICAgICAgICAgICAgcHJvY2Vzc0luc3RhbmNlSWQ6IHRoaXMucXVlcnlQYXJhbXM/LnByb2Nlc3NJbnN0YW5jZUlkLFxuICAgICAgICAgICAgc2VydmljZUZ1bGxOYW1lOiB0aGlzLnF1ZXJ5UGFyYW1zPy5zZXJ2aWNlRnVsbE5hbWUsXG4gICAgICAgICAgICBzZXJ2aWNlTmFtZTogdGhpcy5xdWVyeVBhcmFtcz8uc2VydmljZU5hbWUsXG4gICAgICAgICAgICBzZXJ2aWNlVmVyc2lvbjogdGhpcy5xdWVyeVBhcmFtcz8uc2VydmljZVZlcnNpb24sXG4gICAgICAgICAgICBzdGFydGVkRGF0ZTogdGhpcy5xdWVyeVBhcmFtcz8uc3RhcnRlZERhdGUsXG4gICAgICAgICAgICBzdGF0dXM6IHRoaXMucXVlcnlQYXJhbXM/LnN0YXR1c1xuICAgICAgICB9IGFzIFNlcnZpY2VUYXNrUXVlcnlDbG91ZFJlcXVlc3RNb2RlbDtcbiAgICAgICAgcmV0dXJuIHJlcXVlc3ROb2RlO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCIhcm93c1wiPnt7ICdBREZfQ0xPVURfVEFTS19MSVNULkZJTFRFUlMuTUVTU0FHRVMuTk9ORScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dzXCI+XG4gICAgICAgIDxhZGYtZGF0YXRhYmxlXG4gICAgICAgICAgICBbcm93c109XCJyb3dzXCJcbiAgICAgICAgICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgICAgICAgW2RhdGFdPVwiZGF0YUFkYXB0ZXJcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiaXNMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtzb3J0aW5nXT1cImZvcm1hdHRlZFNvcnRpbmdcIlxuICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cIm11bHRpc2VsZWN0XCJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cInNlbGVjdGlvbk1vZGVcIlxuICAgICAgICAgICAgW3N0aWNreUhlYWRlcl09XCJzdGlja3lIZWFkZXJcIlxuICAgICAgICAgICAgW2FjdGlvbnNdPVwic2hvd0FjdGlvbnNcIlxuICAgICAgICAgICAgW2FjdGlvbnNQb3NpdGlvbl09XCJhY3Rpb25zUG9zaXRpb25cIlxuICAgICAgICAgICAgW2NvbnRleHRNZW51XT1cInNob3dDb250ZXh0TWVudVwiXG4gICAgICAgICAgICBbcmVzb2x2ZXJGbl09XCJib3VuZFJlcGxhY2VQcmlvcml0eVZhbHVlc1wiXG4gICAgICAgICAgICBbc2hvd01haW5EYXRhdGFibGVBY3Rpb25zXT1cInNob3dNYWluRGF0YXRhYmxlQWN0aW9uc1wiXG4gICAgICAgICAgICBbaXNSZXNpemluZ0VuYWJsZWRdPVwiaXNSZXNpemluZ0VuYWJsZWRcIlxuICAgICAgICAgICAgKHNob3dSb3dBY3Rpb25zTWVudSk9XCJvblNob3dSb3dBY3Rpb25zTWVudSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzaG93Um93Q29udGV4dE1lbnUpPVwib25TaG93Um93Q29udGV4dE1lbnUoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZXhlY3V0ZVJvd0FjdGlvbik9XCJvbkV4ZWN1dGVSb3dBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICAocm93LXNlbGVjdCk9XCJvblJvd1NlbGVjdCgkYW55KCRldmVudCkpXCJcbiAgICAgICAgICAgIChyb3ctdW5zZWxlY3QpPVwib25Sb3dVbnNlbGVjdCgkYW55KCRldmVudCkpXCJcbiAgICAgICAgICAgIChyb3dDbGljayk9XCJvblJvd0NsaWNrKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHJvdy1rZXl1cCk9XCJvblJvd0tleVVwKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKHNvcnRpbmctY2hhbmdlZCk9XCJvblNvcnRpbmdDaGFuZ2VkKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgKGNvbHVtbk9yZGVyQ2hhbmdlZCk9XCJvbkNvbHVtbk9yZGVyQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChjb2x1bW5zV2lkdGhDaGFuZ2VkKT1cIm9uQ29sdW1uc1dpZHRoQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxhZGYtbG9hZGluZy1jb250ZW50LXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBBZGQgeW91ciBjdXN0b20gbG9hZGluZyB0ZW1wbGF0ZSBoZXJlIC0tPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgY2xhc3M9XCJhZGYtY2xvdWQtdGFzay1saXN0LWxvYWRpbmctbWFyZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwiJ2luZGV0ZXJtaW5hdGUnXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYWRmLWxvYWRpbmctY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxhZGYtbm8tY29udGVudC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtZW1wdHktY29udGVudCAqbmdJZj1cIiFlbXB0eUN1c3RvbUNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImFzc2lnbm1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBREZfQ0xPVURfVEFTS19MSVNULkxJU1QuTUVTU0FHRVMuVElUTEUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdWJ0aXRsZV09XCInQURGX0NMT1VEX1RBU0tfTElTVC5MSVNULk1FU1NBR0VTLlNVQlRJVExFJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2FkZi1lbXB0eS1jb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJhZGYtY3VzdG9tLWVtcHR5LWNvbnRlbnQtdGVtcGxhdGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYWRmLW5vLWNvbnRlbnQtdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxhZGYtbWFpbi1tZW51LWRhdGF0YWJsZS10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LW1haW5NZW51VHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgPGFkZi1kYXRhdGFibGUtY29sdW1uLXNlbGVjdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYWluTWVudVRyaWdnZXJdPVwibWFpbk1lbnVUcmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtaXRDb2x1bW5zVmlzaWJpbGl0eSk9XCJvbkNvbHVtbnNWaXNpYmlsaXR5Q2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9hZGYtZGF0YXRhYmxlLWNvbHVtbi1zZWxlY3Rvcj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9hZGYtbWFpbi1tZW51LWRhdGF0YWJsZS10ZW1wbGF0ZT5cbiAgICAgICAgPC9hZGYtZGF0YXRhYmxlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=