@hmcts/ccd-case-ui-toolkit 7.2.41-3044-javascript-void-removal → 7.2.41-remove-ld-feature-flags

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 (78) hide show
  1. package/esm2022/lib/app.config.mjs +1 -5
  2. package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +4 -4
  3. package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +5 -5
  4. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +3 -3
  5. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +5 -5
  6. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +5 -5
  7. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +5 -9
  8. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +5 -9
  9. package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +4 -4
  10. package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +4 -4
  11. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +4 -4
  12. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +4 -9
  13. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +3 -16
  14. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +8 -15
  15. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +9 -13
  16. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +4 -4
  17. package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +4 -4
  18. package/esm2022/lib/shared/components/case-viewer/case-viewer.component.mjs +9 -10
  19. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +2 -4
  20. package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +5 -9
  21. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +5 -9
  22. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +6 -10
  23. package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +3 -3
  24. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +5 -9
  25. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +3 -3
  26. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +6 -6
  27. package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +4 -4
  28. package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +4 -4
  29. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +4 -4
  30. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +9 -9
  31. package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +4 -5
  32. package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +7 -7
  33. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +6 -6
  34. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +5 -5
  35. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +12 -12
  36. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +7 -7
  37. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +6 -6
  38. package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +7 -7
  39. package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +5 -5
  40. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +2 -6
  41. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +69 -71
  42. package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +19 -23
  43. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +5 -5
  44. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +5 -5
  45. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +5 -5
  46. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +399 -470
  47. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  48. package/lib/app.config.d.ts +0 -2
  49. package/lib/app.config.d.ts.map +1 -1
  50. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts +0 -2
  51. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -1
  52. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts +0 -2
  53. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  54. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts +0 -2
  55. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts.map +1 -1
  56. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +0 -1
  57. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  58. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  59. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts +0 -2
  60. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts.map +1 -1
  61. package/lib/shared/components/case-viewer/case-viewer.component.d.ts.map +1 -1
  62. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts.map +1 -1
  63. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts +0 -2
  64. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts.map +1 -1
  65. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts +0 -2
  66. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts.map +1 -1
  67. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts +0 -2
  68. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts.map +1 -1
  69. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts +0 -2
  70. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts.map +1 -1
  71. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +2 -2
  72. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  73. package/lib/shared/components/event-start/services/event-start-state-machine.service.d.ts.map +1 -1
  74. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +0 -2
  75. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -1
  76. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts +0 -2
  77. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts.map +1 -1
  78. package/package.json +1 -1
@@ -7,7 +7,7 @@ export class TaskConflictComponent {
7
7
  task;
8
8
  caseId;
9
9
  static ɵfac = function TaskConflictComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TaskConflictComponent)(); };
10
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TaskConflictComponent, selectors: [["app-task-conflict"]], inputs: { task: "task", caseId: "caseId" }, decls: 24, vars: 21, consts: [[1, "govuk-!-margin-9"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], ["href", "#"], [1, "govuk-form-group", "govuk-form-group--error"], [1, "govuk-heading-m"], [3, "routerLink"]], template: function TaskConflictComponent_Template(rf, ctx) { if (rf & 1) {
10
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TaskConflictComponent, selectors: [["app-task-conflict"]], inputs: { task: "task", caseId: "caseId" }, decls: 24, vars: 21, consts: [[1, "govuk-!-margin-9"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], ["href", "#"], [1, "govuk-form-group", "govuk-form-group--error"], [1, "govuk-heading-m"], ["href", "javascript:void(0)", 3, "routerLink"]], template: function TaskConflictComponent_Template(rf, ctx) { if (rf & 1) {
11
11
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h2", 2);
12
12
  i0.ɵɵtext(3);
13
13
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -51,11 +51,11 @@ export class TaskConflictComponent {
51
51
  }
52
52
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskConflictComponent, [{
53
53
  type: Component,
54
- args: [{ selector: 'app-task-conflict', template: "<div class=\"govuk-!-margin-9\">\n <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{'There is a problem' | rpxTranslate}}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a href=\"#\">{{'Task conflict' | rpxTranslate}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"govuk-form-group govuk-form-group--error\">\n <h2 class=\"govuk-heading-m\">{{'Task conflict' | rpxTranslate}}</h2>\n <p>{{'This task cannot be completed due to conflict with another task or tasks for this case.' | rpxTranslate}}</p>\n <p>{{'If the problem persists, contact William Priest' | rpxTranslate}}</p>\n <a [routerLink]=\"['/', 'cases', 'case-details', caseId, 'tasks']\">{{'Return to tasks tab' | rpxTranslate}}</a>\n </div>\n</div>\n" }]
54
+ args: [{ selector: 'app-task-conflict', template: "<div class=\"govuk-!-margin-9\">\n <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{'There is a problem' | rpxTranslate}}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a href=\"#\">{{'Task conflict' | rpxTranslate}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"govuk-form-group govuk-form-group--error\">\n <h2 class=\"govuk-heading-m\">{{'Task conflict' | rpxTranslate}}</h2>\n <p>{{'This task cannot be completed due to conflict with another task or tasks for this case.' | rpxTranslate}}</p>\n <p>{{'If the problem persists, contact William Priest' | rpxTranslate}}</p>\n <a href=\"javascript:void(0)\" [routerLink]=\"['/', 'cases', 'case-details', caseId, 'tasks']\">{{'Return to tasks tab' | rpxTranslate}}</a>\n </div>\n</div>\n" }]
55
55
  }], null, { task: [{
56
56
  type: Input
57
57
  }], caseId: [{
58
58
  type: Input
59
59
  }] }); })();
60
60
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskConflictComponent, { className: "TaskConflictComponent", filePath: "lib/shared/components/event-start/components/task-conflict/task-conflict.component.ts", lineNumber: 8 }); })();
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jb25mbGljdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvZXZlbnQtc3RhcnQvY29tcG9uZW50cy90YXNrLWNvbmZsaWN0L3Rhc2stY29uZmxpY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2V2ZW50LXN0YXJ0L2NvbXBvbmVudHMvdGFzay1jb25mbGljdC90YXNrLWNvbmZsaWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU9qRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hCLElBQUksQ0FBTztJQUNYLE1BQU0sQ0FBUzsrR0FGcEIscUJBQXFCOzZEQUFyQixxQkFBcUI7WUNMOUIsQUFERixBQURGLDhCQUE4QixhQUNrRyxZQUM1RDtZQUM5RCxZQUNGOztZQUFBLGlCQUFLO1lBSUMsQUFERixBQURGLEFBREYsOEJBQXVDLFlBQ1ksU0FDM0MsV0FDVTtZQUFBLFlBQWtDOztZQUl0RCxBQURFLEFBREUsQUFERSxBQURnRCxpQkFBSSxFQUMvQyxFQUNGLEVBQ0QsRUFDRjtZQUdKLEFBREYsK0JBQXNELGFBQ3hCO1lBQUEsYUFBa0M7O1lBQUEsaUJBQUs7WUFDbkUsMEJBQUc7WUFBQSxhQUE0Rzs7WUFBQSxpQkFBSTtZQUNuSCwwQkFBRztZQUFBLGFBQW9FOztZQUFBLGlCQUFJO1lBQzNFLDZCQUFrRTtZQUFBLGFBQXdDOztZQUU5RyxBQURFLEFBRDRHLGlCQUFJLEVBQzFHLEVBQ0Y7O1lBakJBLGVBQ0Y7WUFERSwyRUFDRjtZQUlrQixlQUFrQztZQUFsQyw0REFBa0M7WUFPeEIsZUFBa0M7WUFBbEMsNkRBQWtDO1lBQzNELGVBQTRHO1lBQTVHLHVJQUE0RztZQUM1RyxlQUFvRTtZQUFwRSwrRkFBb0U7WUFDcEUsZUFBOEQ7WUFBOUQsb0VBQThEO1lBQUMsY0FBd0M7WUFBeEMsbUVBQXdDOzs7aUZEWGpHLHFCQUFxQjtjQUpqQyxTQUFTOzJCQUNFLG1CQUFtQjtnQkFJYixJQUFJO2tCQUFuQixLQUFLO1lBQ1UsTUFBTTtrQkFBckIsS0FBSzs7a0ZBRksscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10YXNrLWNvbmZsaWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rhc2stY29uZmxpY3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tDb25mbGljdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyB0YXNrOiBUYXNrO1xuICBASW5wdXQoKSBwdWJsaWMgY2FzZUlkOiBzdHJpbmc7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstIS1tYXJnaW4tOVwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeVwiIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIiByb2xlPVwiYWxlcnRcIiB0YWJpbmRleD1cIi0xXCIgZGF0YS1tb2R1bGU9XCJlcnJvci1zdW1tYXJ5XCI+XG4gICAgPGgyIGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fdGl0bGVcIiBpZD1cImVycm9yLXN1bW1hcnktdGl0bGVcIj5cbiAgICAgIHt7J1RoZXJlIGlzIGEgcHJvYmxlbScgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvaDI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHlcIj5cbiAgICAgIDx1bCBjbGFzcz1cImdvdnVrLWxpc3QgZ292dWstZXJyb3Itc3VtbWFyeV9fbGlzdFwiPlxuICAgICAgICA8bGk+XG4gICAgICAgICAgPGEgaHJlZj1cIiNcIj57eydUYXNrIGNvbmZsaWN0JyB8IHJweFRyYW5zbGF0ZX19PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXAgZ292dWstZm9ybS1ncm91cC0tZXJyb3JcIj5cbiAgICA8aDIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLW1cIj57eydUYXNrIGNvbmZsaWN0JyB8IHJweFRyYW5zbGF0ZX19PC9oMj5cbiAgICA8cD57eydUaGlzIHRhc2sgY2Fubm90IGJlIGNvbXBsZXRlZCBkdWUgdG8gY29uZmxpY3Qgd2l0aCBhbm90aGVyIHRhc2sgb3IgdGFza3MgZm9yIHRoaXMgY2FzZS4nIHwgcnB4VHJhbnNsYXRlfX08L3A+XG4gICAgPHA+e3snSWYgdGhlIHByb2JsZW0gcGVyc2lzdHMsIGNvbnRhY3QgV2lsbGlhbSBQcmllc3QnIHwgcnB4VHJhbnNsYXRlfX08L3A+XG4gICAgPGEgW3JvdXRlckxpbmtdPVwiWycvJywgJ2Nhc2VzJywgJ2Nhc2UtZGV0YWlscycsIGNhc2VJZCwgJ3Rhc2tzJ11cIj57eydSZXR1cm4gdG8gdGFza3MgdGFiJyB8IHJweFRyYW5zbGF0ZX19PC9hPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jb25mbGljdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvZXZlbnQtc3RhcnQvY29tcG9uZW50cy90YXNrLWNvbmZsaWN0L3Rhc2stY29uZmxpY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2V2ZW50LXN0YXJ0L2NvbXBvbmVudHMvdGFzay1jb25mbGljdC90YXNrLWNvbmZsaWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQU9qRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hCLElBQUksQ0FBTztJQUNYLE1BQU0sQ0FBUzsrR0FGcEIscUJBQXFCOzZEQUFyQixxQkFBcUI7WUNMOUIsQUFERixBQURGLDhCQUE4QixhQUNrRyxZQUM1RDtZQUM5RCxZQUNGOztZQUFBLGlCQUFLO1lBSUMsQUFERixBQURGLEFBREYsOEJBQXVDLFlBQ1ksU0FDM0MsV0FDVTtZQUFBLFlBQWtDOztZQUl0RCxBQURFLEFBREUsQUFERSxBQURnRCxpQkFBSSxFQUMvQyxFQUNGLEVBQ0QsRUFDRjtZQUdKLEFBREYsK0JBQXNELGFBQ3hCO1lBQUEsYUFBa0M7O1lBQUEsaUJBQUs7WUFDbkUsMEJBQUc7WUFBQSxhQUE0Rzs7WUFBQSxpQkFBSTtZQUNuSCwwQkFBRztZQUFBLGFBQW9FOztZQUFBLGlCQUFJO1lBQzNFLDZCQUE0RjtZQUFBLGFBQXdDOztZQUV4SSxBQURFLEFBRHNJLGlCQUFJLEVBQ3BJLEVBQ0Y7O1lBakJBLGVBQ0Y7WUFERSwyRUFDRjtZQUlrQixlQUFrQztZQUFsQyw0REFBa0M7WUFPeEIsZUFBa0M7WUFBbEMsNkRBQWtDO1lBQzNELGVBQTRHO1lBQTVHLHVJQUE0RztZQUM1RyxlQUFvRTtZQUFwRSwrRkFBb0U7WUFDMUMsZUFBOEQ7WUFBOUQsb0VBQThEO1lBQUMsY0FBd0M7WUFBeEMsbUVBQXdDOzs7aUZEWDNILHFCQUFxQjtjQUpqQyxTQUFTOzJCQUNFLG1CQUFtQjtnQkFJYixJQUFJO2tCQUFuQixLQUFLO1lBQ1UsTUFBTTtrQkFBckIsS0FBSzs7a0ZBRksscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10YXNrLWNvbmZsaWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Rhc2stY29uZmxpY3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tDb25mbGljdENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyB0YXNrOiBUYXNrO1xuICBASW5wdXQoKSBwdWJsaWMgY2FzZUlkOiBzdHJpbmc7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstIS1tYXJnaW4tOVwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeVwiIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIiByb2xlPVwiYWxlcnRcIiB0YWJpbmRleD1cIi0xXCIgZGF0YS1tb2R1bGU9XCJlcnJvci1zdW1tYXJ5XCI+XG4gICAgPGgyIGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fdGl0bGVcIiBpZD1cImVycm9yLXN1bW1hcnktdGl0bGVcIj5cbiAgICAgIHt7J1RoZXJlIGlzIGEgcHJvYmxlbScgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvaDI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHlcIj5cbiAgICAgIDx1bCBjbGFzcz1cImdvdnVrLWxpc3QgZ292dWstZXJyb3Itc3VtbWFyeV9fbGlzdFwiPlxuICAgICAgICA8bGk+XG4gICAgICAgICAgPGEgaHJlZj1cIiNcIj57eydUYXNrIGNvbmZsaWN0JyB8IHJweFRyYW5zbGF0ZX19PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXAgZ292dWstZm9ybS1ncm91cC0tZXJyb3JcIj5cbiAgICA8aDIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLW1cIj57eydUYXNrIGNvbmZsaWN0JyB8IHJweFRyYW5zbGF0ZX19PC9oMj5cbiAgICA8cD57eydUaGlzIHRhc2sgY2Fubm90IGJlIGNvbXBsZXRlZCBkdWUgdG8gY29uZmxpY3Qgd2l0aCBhbm90aGVyIHRhc2sgb3IgdGFza3MgZm9yIHRoaXMgY2FzZS4nIHwgcnB4VHJhbnNsYXRlfX08L3A+XG4gICAgPHA+e3snSWYgdGhlIHByb2JsZW0gcGVyc2lzdHMsIGNvbnRhY3QgV2lsbGlhbSBQcmllc3QnIHwgcnB4VHJhbnNsYXRlfX08L3A+XG4gICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIFtyb3V0ZXJMaW5rXT1cIlsnLycsICdjYXNlcycsICdjYXNlLWRldGFpbHMnLCBjYXNlSWQsICd0YXNrcyddXCI+e3snUmV0dXJuIHRvIHRhc2tzIHRhYicgfCBycHhUcmFuc2xhdGV9fTwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -3,20 +3,16 @@ import { ActivatedRoute } from '@angular/router';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/router";
5
5
  import * as i2 from "rpx-xui-translation";
6
- const _c0 = (a0, a1, a2) => ["/", "cases", "case-details", a0, a1, a2, "tasks"];
6
+ const _c0 = a0 => ["/", "cases", "case-details", a0, "tasks"];
7
7
  export class TaskUnassignedComponent {
8
8
  route;
9
9
  caseId;
10
- jurisdiction;
11
- caseType;
12
10
  constructor(route) {
13
11
  this.route = route;
14
12
  this.caseId = this.route.snapshot.data.case.case_id;
15
- this.jurisdiction = this.route.snapshot.data.case.case_type.jurisdiction.id;
16
- this.caseType = this.route.snapshot.data.case.case_type.id;
17
13
  }
18
14
  static ɵfac = function TaskUnassignedComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TaskUnassignedComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute)); };
19
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TaskUnassignedComponent, selectors: [["app-task-unassigned"]], decls: 21, vars: 20, consts: [[1, "govuk-!-margin-9"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], ["href", "#"], [1, "govuk-form-group", "govuk-form-group--error"], [1, "govuk-heading-m"], [3, "routerLink"]], template: function TaskUnassignedComponent_Template(rf, ctx) { if (rf & 1) {
15
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TaskUnassignedComponent, selectors: [["app-task-unassigned"]], decls: 21, vars: 18, consts: [[1, "govuk-!-margin-9"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], ["href", "#"], [1, "govuk-form-group", "govuk-form-group--error"], [1, "govuk-heading-m"], ["href", "javascript:void(0)", 3, "routerLink"]], template: function TaskUnassignedComponent_Template(rf, ctx) { if (rf & 1) {
20
16
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h2", 2);
21
17
  i0.ɵɵtext(3);
22
18
  i0.ɵɵpipe(4, "rpxTranslate");
@@ -47,14 +43,14 @@ export class TaskUnassignedComponent {
47
43
  i0.ɵɵadvance(3);
48
44
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(17, 12, "You must assign one of the available tasks from the task tab to continue with your work."));
49
45
  i0.ɵɵadvance(2);
50
- i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction3(16, _c0, ctx.jurisdiction, ctx.caseType, ctx.caseId));
46
+ i0.ɵɵproperty("routerLink", i0.ɵɵpureFunction1(16, _c0, ctx.caseId));
51
47
  i0.ɵɵadvance();
52
48
  i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 14, "Return to tasks tab to assign a task"), " ");
53
49
  } }, dependencies: [i1.RouterLink, i2.RpxTranslatePipe], encapsulation: 2 });
54
50
  }
55
51
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TaskUnassignedComponent, [{
56
52
  type: Component,
57
- args: [{ selector: 'app-task-unassigned', template: "<div class=\"govuk-!-margin-9\">\n <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n data-module=\"error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{'There is a problem' | rpxTranslate}}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a href=\"#\">{{'Task assignment required' | rpxTranslate}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"govuk-form-group govuk-form-group--error\">\n <h2 class=\"govuk-heading-m\">{{'Task assignment required' | rpxTranslate}}</h2>\n\n <p>{{'You must assign one of the available tasks from the task tab to continue with your work.' | rpxTranslate}}</p>\n\n <a [routerLink]=\"['/', 'cases', 'case-details', jurisdiction, caseType, caseId, 'tasks']\">\n {{'Return to tasks tab to assign a task' | rpxTranslate}}\n </a>\n </div>\n</div>\n" }]
53
+ args: [{ selector: 'app-task-unassigned', template: "<div class=\"govuk-!-margin-9\">\n <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n data-module=\"error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{'There is a problem' | rpxTranslate}}\n </h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a href=\"#\">{{'Task assignment required' | rpxTranslate}}</a>\n </li>\n </ul>\n </div>\n </div>\n\n <div class=\"govuk-form-group govuk-form-group--error\">\n <h2 class=\"govuk-heading-m\">{{'Task assignment required' | rpxTranslate}}</h2>\n\n <p>{{'You must assign one of the available tasks from the task tab to continue with your work.' | rpxTranslate}}</p>\n\n <a href=\"javascript:void(0)\" [routerLink]=\"['/', 'cases', 'case-details', caseId, 'tasks']\">\n {{'Return to tasks tab to assign a task' | rpxTranslate}}\n </a>\n </div>\n</div>\n" }]
58
54
  }], () => [{ type: i1.ActivatedRoute }], null); })();
59
55
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TaskUnassignedComponent, { className: "TaskUnassignedComponent", filePath: "lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.ts", lineNumber: 8 }); })();
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay11bmFzc2lnbmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9ldmVudC1zdGFydC9jb21wb25lbnRzL3Rhc2stdW5hc3NpZ25lZC90YXNrLXVuYXNzaWduZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2V2ZW50LXN0YXJ0L2NvbXBvbmVudHMvdGFzay11bmFzc2lnbmVkL3Rhc2stdW5hc3NpZ25lZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFNakQsTUFBTSxPQUFPLHVCQUF1QjtJQU1MO0lBSnRCLE1BQU0sQ0FBUztJQUNmLFlBQVksQ0FBUztJQUNyQixRQUFRLENBQVM7SUFFeEIsWUFBNkIsS0FBcUI7UUFBckIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDNUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7SUFDN0QsQ0FBQztpSEFWVSx1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ0poQyxBQUZGLEFBREYsOEJBQThCLGFBRUUsWUFDb0M7WUFDOUQsWUFDRjs7WUFBQSxpQkFBSztZQUlDLEFBREYsQUFERixBQURGLDhCQUF1QyxZQUNZLFNBQzNDLFdBQ1U7WUFBQSxZQUE2Qzs7WUFJakUsQUFERSxBQURFLEFBREUsQUFEMkQsaUJBQUksRUFDMUQsRUFDRixFQUNELEVBQ0Y7WUFHSixBQURGLCtCQUFzRCxhQUN4QjtZQUFBLGFBQTZDOztZQUFBLGlCQUFLO1lBRTlFLDBCQUFHO1lBQUEsYUFBNkc7O1lBQUEsaUJBQUk7WUFFcEgsNkJBQTBGO1lBQ3hGLGFBQ0Y7O1lBRUosQUFERSxBQURFLGlCQUFJLEVBQ0EsRUFDRjs7WUFwQkEsZUFDRjtZQURFLDJFQUNGO1lBSWtCLGVBQTZDO1lBQTdDLHVFQUE2QztZQU9uQyxlQUE2QztZQUE3Qyx3RUFBNkM7WUFFdEUsZUFBNkc7WUFBN0csd0lBQTZHO1lBRTdHLGVBQXNGO1lBQXRGLG9HQUFzRjtZQUN2RixjQUNGO1lBREUsK0ZBQ0Y7OztpRkRmUyx1QkFBdUI7Y0FKbkMsU0FBUzsyQkFDRSxxQkFBcUI7O2tGQUdwQix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXRhc2stdW5hc3NpZ25lZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90YXNrLXVuYXNzaWduZWQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFRhc2tVbmFzc2lnbmVkQ29tcG9uZW50IHtcblxuICBwdWJsaWMgY2FzZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBqdXJpc2RpY3Rpb246IHN0cmluZztcbiAgcHVibGljIGNhc2VUeXBlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICB0aGlzLmNhc2VJZCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlLmNhc2VfaWQ7XG4gICAgdGhpcy5qdXJpc2RpY3Rpb24gPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmlkO1xuICAgIHRoaXMuY2FzZVR5cGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS5jYXNlX3R5cGUuaWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi05XCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5XCIgYXJpYS1sYWJlbGxlZGJ5PVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiIHJvbGU9XCJhbGVydFwiIHRhYmluZGV4PVwiLTFcIlxuICAgIGRhdGEtbW9kdWxlPVwiZXJyb3Itc3VtbWFyeVwiPlxuICAgIDxoMiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlXCIgaWQ9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCI+XG4gICAgICB7eydUaGVyZSBpcyBhIHByb2JsZW0nIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgICA8dWwgY2xhc3M9XCJnb3Z1ay1saXN0IGdvdnVrLWVycm9yLXN1bW1hcnlfX2xpc3RcIj5cbiAgICAgICAgPGxpPlxuICAgICAgICAgIDxhIGhyZWY9XCIjXCI+e3snVGFzayBhc3NpZ25tZW50IHJlcXVpcmVkJyB8IHJweFRyYW5zbGF0ZX19PC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXAgZ292dWstZm9ybS1ncm91cC0tZXJyb3JcIj5cbiAgICA8aDIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLW1cIj57eydUYXNrIGFzc2lnbm1lbnQgcmVxdWlyZWQnIHwgcnB4VHJhbnNsYXRlfX08L2gyPlxuXG4gICAgPHA+e3snWW91IG11c3QgYXNzaWduIG9uZSBvZiB0aGUgYXZhaWxhYmxlIHRhc2tzIGZyb20gdGhlIHRhc2sgdGFiIHRvIGNvbnRpbnVlIHdpdGggeW91ciB3b3JrLicgfCBycHhUcmFuc2xhdGV9fTwvcD5cblxuICAgIDxhIFtyb3V0ZXJMaW5rXT1cIlsnLycsICdjYXNlcycsICdjYXNlLWRldGFpbHMnLCBqdXJpc2RpY3Rpb24sIGNhc2VUeXBlLCBjYXNlSWQsICd0YXNrcyddXCI+XG4gICAgICB7eydSZXR1cm4gdG8gdGFza3MgdGFiIHRvIGFzc2lnbiBhIHRhc2snIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L2E+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay11bmFzc2lnbmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9ldmVudC1zdGFydC9jb21wb25lbnRzL3Rhc2stdW5hc3NpZ25lZC90YXNrLXVuYXNzaWduZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2V2ZW50LXN0YXJ0L2NvbXBvbmVudHMvdGFzay11bmFzc2lnbmVkL3Rhc2stdW5hc3NpZ25lZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFNakQsTUFBTSxPQUFPLHVCQUF1QjtJQUlMO0lBRnRCLE1BQU0sQ0FBUztJQUV0QixZQUE2QixLQUFxQjtRQUFyQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RELENBQUM7aUhBTlUsdUJBQXVCOzZEQUF2Qix1QkFBdUI7WUNKaEMsQUFGRixBQURGLDhCQUE4QixhQUVFLFlBQ29DO1lBQzlELFlBQ0Y7O1lBQUEsaUJBQUs7WUFJQyxBQURGLEFBREYsQUFERiw4QkFBdUMsWUFDWSxTQUMzQyxXQUNVO1lBQUEsWUFBNkM7O1lBSWpFLEFBREUsQUFERSxBQURFLEFBRDJELGlCQUFJLEVBQzFELEVBQ0YsRUFDRCxFQUNGO1lBR0osQUFERiwrQkFBc0QsYUFDeEI7WUFBQSxhQUE2Qzs7WUFBQSxpQkFBSztZQUU5RSwwQkFBRztZQUFBLGFBQTZHOztZQUFBLGlCQUFJO1lBRXBILDZCQUE0RjtZQUMxRixhQUNGOztZQUVKLEFBREUsQUFERSxpQkFBSSxFQUNBLEVBQ0Y7O1lBcEJBLGVBQ0Y7WUFERSwyRUFDRjtZQUlrQixlQUE2QztZQUE3Qyx1RUFBNkM7WUFPbkMsZUFBNkM7WUFBN0Msd0VBQTZDO1lBRXRFLGVBQTZHO1lBQTdHLHdJQUE2RztZQUVuRixlQUE4RDtZQUE5RCxvRUFBOEQ7WUFDekYsY0FDRjtZQURFLCtGQUNGOzs7aUZEZlMsdUJBQXVCO2NBSm5DLFNBQVM7MkJBQ0UscUJBQXFCOztrRkFHcEIsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC10YXNrLXVuYXNzaWduZWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFzay11bmFzc2lnbmVkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBUYXNrVW5hc3NpZ25lZENvbXBvbmVudCB7XG5cbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgdGhpcy5jYXNlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS5jYXNlX2lkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstIS1tYXJnaW4tOVwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeVwiIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIiByb2xlPVwiYWxlcnRcIiB0YWJpbmRleD1cIi0xXCJcbiAgICBkYXRhLW1vZHVsZT1cImVycm9yLXN1bW1hcnlcIj5cbiAgICA8aDIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZVwiIGlkPVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiPlxuICAgICAge3snVGhlcmUgaXMgYSBwcm9ibGVtJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgPC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiPlxuICAgICAgPHVsIGNsYXNzPVwiZ292dWstbGlzdCBnb3Z1ay1lcnJvci1zdW1tYXJ5X19saXN0XCI+XG4gICAgICAgIDxsaT5cbiAgICAgICAgICA8YSBocmVmPVwiI1wiPnt7J1Rhc2sgYXNzaWdubWVudCByZXF1aXJlZCcgfCBycHhUcmFuc2xhdGV9fTwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwIGdvdnVrLWZvcm0tZ3JvdXAtLWVycm9yXCI+XG4gICAgPGgyIGNsYXNzPVwiZ292dWstaGVhZGluZy1tXCI+e3snVGFzayBhc3NpZ25tZW50IHJlcXVpcmVkJyB8IHJweFRyYW5zbGF0ZX19PC9oMj5cblxuICAgIDxwPnt7J1lvdSBtdXN0IGFzc2lnbiBvbmUgb2YgdGhlIGF2YWlsYWJsZSB0YXNrcyBmcm9tIHRoZSB0YXNrIHRhYiB0byBjb250aW51ZSB3aXRoIHlvdXIgd29yay4nIHwgcnB4VHJhbnNsYXRlfX08L3A+XG5cbiAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgW3JvdXRlckxpbmtdPVwiWycvJywgJ2Nhc2VzJywgJ2Nhc2UtZGV0YWlscycsIGNhc2VJZCwgJ3Rhc2tzJ11cIj5cbiAgICAgIHt7J1JldHVybiB0byB0YXNrcyB0YWIgdG8gYXNzaWduIGEgdGFzaycgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -116,7 +116,7 @@ export class EventStartGuard {
116
116
  }
117
117
  else if (tasksAssignedToUser.length > 1 && !taskId) {
118
118
  // if more than one task assigned to the user then give multiple tasks error
119
- this.router.navigate([`/cases/case-details/${this.jurisdiction}/${this.caseType}/${caseId}/multiple-tasks-exist`]);
119
+ this.router.navigate([`/cases/case-details/${caseId}/multiple-tasks-exist`]);
120
120
  return false;
121
121
  }
122
122
  else {
@@ -149,7 +149,7 @@ export class EventStartGuard {
149
149
  if (this.router && this.router.url && this.router.url.includes('event-start')) {
150
150
  return of(true);
151
151
  }
152
- this.router.navigate([`/cases/case-details/${this.jurisdiction}/${this.caseType}/${caseId}/event-start`], { queryParams: { caseId, eventId, taskId } });
152
+ this.router.navigate([`/cases/case-details/${caseId}/event-start`], { queryParams: { caseId, eventId, taskId } });
153
153
  return of(false);
154
154
  }
155
155
  else {
@@ -187,4 +187,4 @@ export class EventStartGuard {
187
187
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventStartGuard, [{
188
188
  type: Injectable
189
189
  }], () => [{ type: i1.WorkAllocationService }, { type: i2.Router }, { type: i3.SessionStorageService }, { type: i4.AbstractAppConfig }, { type: i3.ReadCookieService }, { type: i1.CaseNotifier }], null); })();
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3RhcnQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvZXZlbnQtc3RhcnQvZXZlbnQtZ3VhcmQvZXZlbnQtc3RhcnQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7QUFHaEcsTUFBTSxPQUFPLGVBQWU7SUFLRztJQUNWO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFUWixZQUFZLENBQVM7SUFDckIsUUFBUSxDQUFTO0lBQ2hCLE1BQU0sQ0FBUztJQUV2QixZQUE2QixxQkFBNEMsRUFDdEQsTUFBYyxFQUNkLHFCQUE0QyxFQUM1QyxjQUFpQyxFQUNqQyxhQUFnQyxFQUNoQyxZQUEwQjtRQUxoQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQ3RELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLG1C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RSxJQUFJLENBQUMsRUFBRTtZQUNmLGdCQUFnQixFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7U0FDN0IsQ0FBQztRQUNGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDaEYsTUFBTSxrQkFBa0IsR0FBRztZQUN6QixjQUFjLEVBQUU7Z0JBQ2QsU0FBUyxFQUFFO29CQUNULFNBQVMsRUFBRSxJQUFJO29CQUNmLGFBQWEsRUFBRSxJQUFJO2lCQUNwQjtnQkFDRCxhQUFhLEVBQUU7b0JBQ2IsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUMxSCxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO3lHQTFLVSxlQUFlO2dFQUFmLGVBQWUsV0FBZixlQUFlOztpRkFBZixlQUFlO2NBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgVGFzaywgVGFza0V2ZW50Q29tcGxldGlvbkluZm8gfSBmcm9tICcuLi8uLi8uLi9kb21haW4vd29yay1hbGxvY2F0aW9uL1Rhc2snO1xuaW1wb3J0IHsgVGFza1BheWxvYWQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vd29yay1hbGxvY2F0aW9uL1Rhc2tQYXlsb2FkJztcbmltcG9ydCB7IFJlYWRDb29raWVTZXJ2aWNlLCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlRWRpdENvbXBvbmVudCwgQ2FzZU5vdGlmaWVyLCBXb3JrQWxsb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvcic7XG5pbXBvcnQgeyByZW1vdmVUYXNrRnJvbUNsaWVudENvbnRleHQgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9jYXNlLWVkaXQtdXRpbHMvY2FzZS1lZGl0LnV0aWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV2ZW50U3RhcnRHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgcHVibGljIGp1cmlzZGljdGlvbjogc3RyaW5nO1xuICBwdWJsaWMgY2FzZVR5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBjYXNlSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHdvcmtBbGxvY2F0aW9uU2VydmljZTogV29ya0FsbG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFic3RyYWN0Q29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvb2tpZVNlcnZpY2U6IFJlYWRDb29raWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIpIHtcbiAgICB0aGlzLmNhc2VOb3RpZmllci5jYXNlVmlldy5zdWJzY3JpYmUoKGNhc2VEZXRhaWxzKSA9PiB7XG4gICAgICBpZiAoY2FzZURldGFpbHMpIHtcbiAgICAgICAgdGhpcy5qdXJpc2RpY3Rpb24gPSBjYXNlRGV0YWlscz8uY2FzZV90eXBlPy5qdXJpc2RpY3Rpb24/LmlkO1xuICAgICAgICB0aGlzLmNhc2VUeXBlID0gY2FzZURldGFpbHM/LmNhc2VfdHlwZT8uaWQ7XG4gICAgICAgIHRoaXMuY2FzZUlkID0gY2FzZURldGFpbHM/LmNhc2VfaWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBjYXNlSWQgPSByb3V0ZS5wYXJhbXNbJ2NpZCddO1xuICAgIGNvbnN0IGV2ZW50SWQgPSByb3V0ZS5wYXJhbXNbJ2VpZCddO1xuICAgIGNvbnN0IHRhc2tJZCA9IHJvdXRlLnF1ZXJ5UGFyYW1zWyd0aWQnXTtcbiAgICAvLyBjaGVjayBpZiB3ZSBoYXZlIHRoZSBjYXNlIGRldGFpbHMgaW4gdGhlIGNhc2Ugbm90aWZpZXJcbiAgICAvLyBpZiBub3QsIHRoZW4gZmV0Y2ggdGhlIGNhc2UgZGV0YWlscyB1c2luZyBjYXNlIG5vdGlmaWVyXG4gICAgY29uc3QgY2FzZURhdGFPYnNlcnZhYmxlID0gKCF0aGlzLmp1cmlzZGljdGlvbiB8fCAhdGhpcy5jYXNlVHlwZSB8fCAhdGhpcy5jYXNlSWQpID9cbiAgICAgIHRoaXMuY2FzZU5vdGlmaWVyLmZldGNoQW5kUmVmcmVzaChjYXNlSWQpLnBpcGUoXG4gICAgICAgIHRhcCgoY2FzZURldGFpbHMpID0+IHtcbiAgICAgICAgICB0aGlzLmp1cmlzZGljdGlvbiA9IGNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8uaWQ7XG4gICAgICAgICAgdGhpcy5jYXNlVHlwZSA9IGNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/LmlkO1xuICAgICAgICAgIHRoaXMuY2FzZUlkID0gY2FzZURldGFpbHM/LmNhc2VfaWQ7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICAgICkgOiBvZih0cnVlKTtcblxuICAgIGxldCB1c2VySWQ6IHN0cmluZztcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgICAgdXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICB9XG4gICAgY29uc3QgbGFuZ3VhZ2VDb29raWUgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0Q29va2llKCdleHVpLXByZWZlcnJlZC1sYW5ndWFnZScpO1xuICAgIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9ICEhbGFuZ3VhZ2VDb29raWUgJiYgbGFuZ3VhZ2VDb29raWUgIT09ICcnID8gbGFuZ3VhZ2VDb29raWUgOiAnZW4nO1xuICAgIGNvbnN0IHByZUNsaWVudENvbnRleHQgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKENhc2VFZGl0Q29tcG9uZW50LkNMSUVOVF9DT05URVhUKTtcbiAgICBpZiAoIXByZUNsaWVudENvbnRleHQpIHtcbiAgICAgIC8vIGNyZWF0ZXMgY2xpZW50IGNvbnRleHQgZm9yIGxhbmd1YWdlIGlmIG5vdCBhbHJlYWR5IGV4aXN0aW5nXG4gICAgICBjb25zdCBzdG9yZUNsaWVudENvbnRleHQgPSB7XG4gICAgICAgIGNsaWVudF9jb250ZXh0OiB7XG4gICAgICAgICAgdXNlcl9sYW5ndWFnZToge1xuICAgICAgICAgICAgbGFuZ3VhZ2U6IGN1cnJlbnRMYW5ndWFnZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuQ0xJRU5UX0NPTlRFWFQsIEpTT04uc3RyaW5naWZ5KHN0b3JlQ2xpZW50Q29udGV4dCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGllbnRDb250ZXh0T2JqID0gSlNPTi5wYXJzZShwcmVDbGllbnRDb250ZXh0KTtcbiAgICAgIGlmICghY2xpZW50Q29udGV4dE9iaj8uY2xpZW50X2NvbnRleHQ/LnVzZXJfbGFuZ3VhZ2UpIHtcbiAgICAgICAgY29uc3QgY2xpZW50Q29udGV4dEFkZExhbmd1YWdlID0ge1xuICAgICAgICAgIC4uLmNsaWVudENvbnRleHRPYmosXG4gICAgICAgICAgY2xpZW50X2NvbnRleHQ6IHtcbiAgICAgICAgICAgIC4uLmNsaWVudENvbnRleHRPYmouY2xpZW50X2NvbnRleHQsXG4gICAgICAgICAgICB1c2VyX2xhbmd1YWdlOiB7XG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBjdXJyZW50TGFuZ3VhZ2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCwgSlNPTi5zdHJpbmdpZnkoY2xpZW50Q29udGV4dEFkZExhbmd1YWdlKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYXNlRGF0YU9ic2VydmFibGUucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmp1cmlzZGljdGlvbiAmJiB0aGlzLmNhc2VUeXBlKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndvcmtBbGxvY2F0aW9uU2VydmljZS5nZXRUYXNrc0J5Q2FzZUlkQW5kRXZlbnRJZChldmVudElkLCBjYXNlSWQsIHRoaXMuY2FzZVR5cGUsIHRoaXMuanVyaXNkaWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHBheWxvYWQ6IFRhc2tQYXlsb2FkKSA9PiB0aGlzLmNoZWNrRm9yVGFza3MocGF5bG9hZCwgY2FzZUlkLCBldmVudElkLCB0YXNrSWQsIHVzZXJJZCkpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuYWJzdHJhY3RDb25maWcubG9nTWVzc2FnZShgRXZlbnRTdGFydEd1YXJkOiBjYXNlSWQgJHt0aGlzLmNhc2VJZH0gaW4gY2FzZSBub3RpZmllciBub3QgbWF0Y2hlZCB3aXRoIHRoZSByb3V0ZSBwYXJhbWV0ZXIgY2FzZUlkICR7Y2FzZUlkfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWJzdHJhY3RDb25maWcubG9nTWVzc2FnZShgRXZlbnRTdGFydEd1YXJkOiBjYXNlSW5mbyBkZXRhaWxzIG5vdCBhdmFpbGFibGUgaW4gY2FzZSBub3RpZmllciBmb3IgJHtjYXNlSWR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja1Rhc2tJbkV2ZW50Tm90UmVxdWlyZWQocGF5bG9hZDogVGFza1BheWxvYWQsIGNhc2VJZDogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgZXZlbnRJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghcGF5bG9hZCB8fCAhcGF5bG9hZC50YXNrcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHRhc2tOdW1iZXIgPSBwYXlsb2FkLnRhc2tzLmxlbmd0aDtcbiAgICBpZiAodGFza051bWJlciA9PT0gMCkge1xuICAgICAgLy8gaWYgdGhlcmUgYXJlIG5vIHRhc2tzIGp1c3QgY2Fycnkgb25cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBHZXQgbnVtYmVyIG9mIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXJcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICBjb25zdCB0YXNrc0Fzc2lnbmVkVG9Vc2VyID0gcGF5bG9hZC50YXNrcy5maWx0ZXIoeCA9PlxuICAgICAgeC50YXNrX3N0YXRlICE9PSAndW5hc3NpZ25lZCcgJiYgKHguYXNzaWduZWUgPT09IHVzZXJJbmZvLmlkIHx8IHguYXNzaWduZWUgPT09IHVzZXJJbmZvLnVpZClcbiAgICApO1xuICAgIGlmICh0YXNrc0Fzc2lnbmVkVG9Vc2VyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gaWYgbm8gdGFza3MgYXNzaWduZWQgdG8gdXNlciBjYXJyeSBvblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICh0YXNrc0Fzc2lnbmVkVG9Vc2VyLmxlbmd0aCA+IDEgJiYgIXRhc2tJZCkge1xuICAgICAgLy8gaWYgbW9yZSB0aGFuIG9uZSB0YXNrIGFzc2lnbmVkIHRvIHRoZSB1c2VyIHRoZW4gZ2l2ZSBtdWx0aXBsZSB0YXNrcyBlcnJvclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7dGhpcy5qdXJpc2RpY3Rpb259LyR7dGhpcy5jYXNlVHlwZX0vJHtjYXNlSWR9L211bHRpcGxlLXRhc2tzLWV4aXN0YF0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgdGFzazogYW55O1xuICAgICAgaWYgKHRhc2tJZCkge1xuICAgICAgICB0YXNrID0gcGF5bG9hZC50YXNrcy5maW5kKHggPT4geC5pZCA9PT0gdGFza0lkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhc2sgPSB0YXNrc0Fzc2lnbmVkVG9Vc2VyWzBdO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRDbGllbnRDb250ZXh0U3RvcmFnZSh0YXNrLCBjYXNlSWQsIGV2ZW50SWQsIHVzZXJJZCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9yVGFza3MocGF5bG9hZDogVGFza1BheWxvYWQsIGNhc2VJZDogc3RyaW5nLCBldmVudElkOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICh0YXNrSWQgJiYgcGF5bG9hZD8udGFza3M/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHRhc2sgPSBwYXlsb2FkLnRhc2tzLmZpbmQoKHQpID0+IHQuaWQgPT0gdGFza0lkKTtcbiAgICAgIGlmICh0YXNrKSB7XG4gICAgICAgIHRoaXMuc2V0Q2xpZW50Q29udGV4dFN0b3JhZ2UodGFzaywgY2FzZUlkLCBldmVudElkLCB1c2VySWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVtb3ZlVGFza0Zyb21DbGllbnRDb250ZXh0KHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHBheWxvYWQudGFza19yZXF1aXJlZF9mb3JfZXZlbnQpIHtcbiAgICAgIC8vIFRoZXJlIGFyZSBzb21lIGlzc3VlcyBpbiBFdmVudFRyaWdnZXJSZXNvbHZlci9DYXNlU2VydmljZSBhbmQvb3IgQ0NEIGZvciBzb21lIGV2ZW50c1xuICAgICAgLy8gd2hpY2ggdHJpZ2dlcnMgdGhlIENhbkFjdGl2YXRlIGd1YXJkIGFnYWluLlxuICAgICAgLy8gSWYgZXZlbnQgc3RhcnQgaXMgaW5pdGlhdGVkIGFnYWluLCB0aGVuIHdlIGRvIG5vdCBuZWVkIHRvIHBlcmZvcm0gc3RhdGUgbWFjaGluZSBwcm9jZXNzaW5nIGFnYWluLlxuICAgICAgLy8gaHR0cHM6Ly90b29scy5obWN0cy5uZXQvamlyYS9icm93c2UvRVVJLTU0ODlcbiAgICAgIGlmICh0aGlzLnJvdXRlciAmJiB0aGlzLnJvdXRlci51cmwgJiYgdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdldmVudC1zdGFydCcpKSB7XG4gICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Nhc2VzL2Nhc2UtZGV0YWlscy8ke3RoaXMuanVyaXNkaWN0aW9ufS8ke3RoaXMuY2FzZVR5cGV9LyR7Y2FzZUlkfS9ldmVudC1zdGFydGBdLCB7IHF1ZXJ5UGFyYW1zOiB7IGNhc2VJZCwgZXZlbnRJZCwgdGFza0lkIH0gfSk7XG4gICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5jaGVja1Rhc2tJbkV2ZW50Tm90UmVxdWlyZWQocGF5bG9hZCwgY2FzZUlkLCB0YXNrSWQsIGV2ZW50SWQsIHVzZXJJZCkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEVYVUktMjc0MyAtIE1ha2UgdGFza0V2ZW50Q29tcGxldGlvbkluZm8gYWx3YXlzIGF2YWlsYWJsZSBpbiBzZXNzaW9uIHN0b3JhZ2Ugd2l0aCBjbGllbnQgY29udGV4dFxuICBwcml2YXRlIHNldENsaWVudENvbnRleHRTdG9yYWdlKHRhc2s6IFRhc2ssIGNhc2VJZDogc3RyaW5nLCBldmVudElkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gU3RvcmUgdGFzayB0byBzZXNzaW9uXG4gICAgY29uc3QgdGFza0V2ZW50Q29tcGxldGlvbkluZm86IFRhc2tFdmVudENvbXBsZXRpb25JbmZvID0ge1xuICAgICAgY2FzZUlkOiBjYXNlSWQsXG4gICAgICBldmVudElkOiBldmVudElkLFxuICAgICAgdXNlcklkOiB1c2VySWQsXG4gICAgICB0YXNrSWQ6IHRhc2suaWQsXG4gICAgICBjcmVhdGVkVGltZXN0YW1wOiBEYXRlLm5vdygpXG4gICAgfTtcbiAgICBjb25zdCBjdXJyZW50TGFuZ3VhZ2UgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0Q29va2llKCdleHVpLXByZWZlcnJlZC1sYW5ndWFnZScpO1xuICAgIGNvbnN0IHN0b3JlQ2xpZW50Q29udGV4dCA9IHtcbiAgICAgIGNsaWVudF9jb250ZXh0OiB7XG4gICAgICAgIHVzZXJfdGFzazoge1xuICAgICAgICAgIHRhc2tfZGF0YTogdGFzayxcbiAgICAgICAgICBjb21wbGV0ZV90YXNrOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHVzZXJfbGFuZ3VhZ2U6IHtcbiAgICAgICAgICBsYW5ndWFnZTogY3VycmVudExhbmd1YWdlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8sIEpTT04uc3RyaW5naWZ5KHRhc2tFdmVudENvbXBsZXRpb25JbmZvKSk7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCwgSlNPTi5zdHJpbmdpZnkoc3RvcmVDbGllbnRDb250ZXh0KSk7XG4gIH1cbn1cbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3RhcnQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvZXZlbnQtc3RhcnQvZXZlbnQtZ3VhcmQvZXZlbnQtc3RhcnQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOzs7Ozs7QUFHaEcsTUFBTSxPQUFPLGVBQWU7SUFLRztJQUNWO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFUWCxZQUFZLENBQVM7SUFDckIsUUFBUSxDQUFTO0lBQ2pCLE1BQU0sQ0FBUztJQUV2QixZQUE2QixxQkFBNEMsRUFDdEQsTUFBYyxFQUNkLHFCQUE0QyxFQUM1QyxjQUFpQyxFQUNqQyxhQUFnQyxFQUNoQyxZQUEwQjtRQUxoQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQ3RELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLG1C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R0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sa0JBQWtCLEdBQUc7WUFDekIsY0FBYyxFQUFFO2dCQUNkLFNBQVMsRUFBRTtvQkFDVCxTQUFTLEVBQUUsSUFBSTtvQkFDZixhQUFhLEVBQUUsSUFBSTtpQkFDcEI7Z0JBQ0QsYUFBYSxFQUFFO29CQUNiLFFBQVEsRUFBRSxlQUFlO2lCQUMxQjthQUNGO1NBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7UUFDMUgsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDM0csQ0FBQzt5R0ExS1UsZUFBZTtnRUFBZixlQUFlLFdBQWYsZUFBZTs7aUZBQWYsZUFBZTtjQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IFRhc2ssIFRhc2tFdmVudENvbXBsZXRpb25JbmZvIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3dvcmstYWxsb2NhdGlvbi9UYXNrJztcbmltcG9ydCB7IFRhc2tQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3dvcmstYWxsb2NhdGlvbi9UYXNrUGF5bG9hZCc7XG5pbXBvcnQgeyBSZWFkQ29va2llU2VydmljZSwgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FzZUVkaXRDb21wb25lbnQsIENhc2VOb3RpZmllciwgV29ya0FsbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3InO1xuaW1wb3J0IHsgcmVtb3ZlVGFza0Zyb21DbGllbnRDb250ZXh0IH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3IvY2FzZS1lZGl0LXV0aWxzL2Nhc2UtZWRpdC51dGlscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFdmVudFN0YXJ0R3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIHByaXZhdGUganVyaXNkaWN0aW9uOiBzdHJpbmc7XG4gIHByaXZhdGUgY2FzZVR5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBjYXNlSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHdvcmtBbGxvY2F0aW9uU2VydmljZTogV29ya0FsbG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFic3RyYWN0Q29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvb2tpZVNlcnZpY2U6IFJlYWRDb29raWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIpIHtcbiAgICB0aGlzLmNhc2VOb3RpZmllci5jYXNlVmlldy5zdWJzY3JpYmUoKGNhc2VEZXRhaWxzKSA9PiB7XG4gICAgICBpZiAoY2FzZURldGFpbHMpIHtcbiAgICAgICAgdGhpcy5qdXJpc2RpY3Rpb24gPSBjYXNlRGV0YWlscz8uY2FzZV90eXBlPy5qdXJpc2RpY3Rpb24/LmlkO1xuICAgICAgICB0aGlzLmNhc2VUeXBlID0gY2FzZURldGFpbHM/LmNhc2VfdHlwZT8uaWQ7XG4gICAgICAgIHRoaXMuY2FzZUlkID0gY2FzZURldGFpbHM/LmNhc2VfaWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBjYXNlSWQgPSByb3V0ZS5wYXJhbXNbJ2NpZCddO1xuICAgIGNvbnN0IGV2ZW50SWQgPSByb3V0ZS5wYXJhbXNbJ2VpZCddO1xuICAgIGNvbnN0IHRhc2tJZCA9IHJvdXRlLnF1ZXJ5UGFyYW1zWyd0aWQnXTtcbiAgICAvLyBjaGVjayBpZiB3ZSBoYXZlIHRoZSBjYXNlIGRldGFpbHMgaW4gdGhlIGNhc2Ugbm90aWZpZXJcbiAgICAvLyBpZiBub3QsIHRoZW4gZmV0Y2ggdGhlIGNhc2UgZGV0YWlscyB1c2luZyBjYXNlIG5vdGlmaWVyXG4gICAgY29uc3QgY2FzZURhdGFPYnNlcnZhYmxlID0gKCF0aGlzLmp1cmlzZGljdGlvbiB8fCAhdGhpcy5jYXNlVHlwZSB8fCAhdGhpcy5jYXNlSWQpID9cbiAgICAgIHRoaXMuY2FzZU5vdGlmaWVyLmZldGNoQW5kUmVmcmVzaChjYXNlSWQpLnBpcGUoXG4gICAgICAgIHRhcCgoY2FzZURldGFpbHMpID0+IHtcbiAgICAgICAgICB0aGlzLmp1cmlzZGljdGlvbiA9IGNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8uaWQ7XG4gICAgICAgICAgdGhpcy5jYXNlVHlwZSA9IGNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/LmlkO1xuICAgICAgICAgIHRoaXMuY2FzZUlkID0gY2FzZURldGFpbHM/LmNhc2VfaWQ7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKCkgPT4gdHJ1ZSlcbiAgICAgICkgOiBvZih0cnVlKTtcblxuICAgIGxldCB1c2VySWQ6IHN0cmluZztcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgICAgdXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICB9XG4gICAgY29uc3QgbGFuZ3VhZ2VDb29raWUgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0Q29va2llKCdleHVpLXByZWZlcnJlZC1sYW5ndWFnZScpO1xuICAgIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9ICEhbGFuZ3VhZ2VDb29raWUgJiYgbGFuZ3VhZ2VDb29raWUgIT09ICcnID8gbGFuZ3VhZ2VDb29raWUgOiAnZW4nO1xuICAgIGNvbnN0IHByZUNsaWVudENvbnRleHQgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKENhc2VFZGl0Q29tcG9uZW50LkNMSUVOVF9DT05URVhUKTtcbiAgICBpZiAoIXByZUNsaWVudENvbnRleHQpIHtcbiAgICAgIC8vIGNyZWF0ZXMgY2xpZW50IGNvbnRleHQgZm9yIGxhbmd1YWdlIGlmIG5vdCBhbHJlYWR5IGV4aXN0aW5nXG4gICAgICBjb25zdCBzdG9yZUNsaWVudENvbnRleHQgPSB7XG4gICAgICAgIGNsaWVudF9jb250ZXh0OiB7XG4gICAgICAgICAgdXNlcl9sYW5ndWFnZToge1xuICAgICAgICAgICAgbGFuZ3VhZ2U6IGN1cnJlbnRMYW5ndWFnZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuQ0xJRU5UX0NPTlRFWFQsIEpTT04uc3RyaW5naWZ5KHN0b3JlQ2xpZW50Q29udGV4dCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGllbnRDb250ZXh0T2JqID0gSlNPTi5wYXJzZShwcmVDbGllbnRDb250ZXh0KTtcbiAgICAgIGlmICghY2xpZW50Q29udGV4dE9iaj8uY2xpZW50X2NvbnRleHQ/LnVzZXJfbGFuZ3VhZ2UpIHtcbiAgICAgICAgY29uc3QgY2xpZW50Q29udGV4dEFkZExhbmd1YWdlID0ge1xuICAgICAgICAgIC4uLmNsaWVudENvbnRleHRPYmosXG4gICAgICAgICAgY2xpZW50X2NvbnRleHQ6IHtcbiAgICAgICAgICAgIC4uLmNsaWVudENvbnRleHRPYmouY2xpZW50X2NvbnRleHQsXG4gICAgICAgICAgICB1c2VyX2xhbmd1YWdlOiB7XG4gICAgICAgICAgICAgIGxhbmd1YWdlOiBjdXJyZW50TGFuZ3VhZ2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCwgSlNPTi5zdHJpbmdpZnkoY2xpZW50Q29udGV4dEFkZExhbmd1YWdlKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYXNlRGF0YU9ic2VydmFibGUucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmp1cmlzZGljdGlvbiAmJiB0aGlzLmNhc2VUeXBlKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2FzZUlkID09PSBjYXNlSWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndvcmtBbGxvY2F0aW9uU2VydmljZS5nZXRUYXNrc0J5Q2FzZUlkQW5kRXZlbnRJZChldmVudElkLCBjYXNlSWQsIHRoaXMuY2FzZVR5cGUsIHRoaXMuanVyaXNkaWN0aW9uKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHBheWxvYWQ6IFRhc2tQYXlsb2FkKSA9PiB0aGlzLmNoZWNrRm9yVGFza3MocGF5bG9hZCwgY2FzZUlkLCBldmVudElkLCB0YXNrSWQsIHVzZXJJZCkpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuYWJzdHJhY3RDb25maWcubG9nTWVzc2FnZShgRXZlbnRTdGFydEd1YXJkOiBjYXNlSWQgJHt0aGlzLmNhc2VJZH0gaW4gY2FzZSBub3RpZmllciBub3QgbWF0Y2hlZCB3aXRoIHRoZSByb3V0ZSBwYXJhbWV0ZXIgY2FzZUlkICR7Y2FzZUlkfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWJzdHJhY3RDb25maWcubG9nTWVzc2FnZShgRXZlbnRTdGFydEd1YXJkOiBjYXNlSW5mbyBkZXRhaWxzIG5vdCBhdmFpbGFibGUgaW4gY2FzZSBub3RpZmllciBmb3IgJHtjYXNlSWR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja1Rhc2tJbkV2ZW50Tm90UmVxdWlyZWQocGF5bG9hZDogVGFza1BheWxvYWQsIGNhc2VJZDogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgZXZlbnRJZDogc3RyaW5nLCB1c2VySWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghcGF5bG9hZCB8fCAhcGF5bG9hZC50YXNrcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHRhc2tOdW1iZXIgPSBwYXlsb2FkLnRhc2tzLmxlbmd0aDtcbiAgICBpZiAodGFza051bWJlciA9PT0gMCkge1xuICAgICAgLy8gaWYgdGhlcmUgYXJlIG5vIHRhc2tzIGp1c3QgY2Fycnkgb25cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBHZXQgbnVtYmVyIG9mIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXJcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICBjb25zdCB0YXNrc0Fzc2lnbmVkVG9Vc2VyID0gcGF5bG9hZC50YXNrcy5maWx0ZXIoeCA9PlxuICAgICAgeC50YXNrX3N0YXRlICE9PSAndW5hc3NpZ25lZCcgJiYgKHguYXNzaWduZWUgPT09IHVzZXJJbmZvLmlkIHx8IHguYXNzaWduZWUgPT09IHVzZXJJbmZvLnVpZClcbiAgICApO1xuICAgIGlmICh0YXNrc0Fzc2lnbmVkVG9Vc2VyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gaWYgbm8gdGFza3MgYXNzaWduZWQgdG8gdXNlciBjYXJyeSBvblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICh0YXNrc0Fzc2lnbmVkVG9Vc2VyLmxlbmd0aCA+IDEgJiYgIXRhc2tJZCkge1xuICAgICAgLy8gaWYgbW9yZSB0aGFuIG9uZSB0YXNrIGFzc2lnbmVkIHRvIHRoZSB1c2VyIHRoZW4gZ2l2ZSBtdWx0aXBsZSB0YXNrcyBlcnJvclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7Y2FzZUlkfS9tdWx0aXBsZS10YXNrcy1leGlzdGBdKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHRhc2s6IGFueTtcbiAgICAgIGlmICh0YXNrSWQpIHtcbiAgICAgICAgdGFzayA9IHBheWxvYWQudGFza3MuZmluZCh4ID0+IHguaWQgPT09IHRhc2tJZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXNrID0gdGFza3NBc3NpZ25lZFRvVXNlclswXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0Q2xpZW50Q29udGV4dFN0b3JhZ2UodGFzaywgY2FzZUlkLCBldmVudElkLCB1c2VySWQpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZvclRhc2tzKHBheWxvYWQ6IFRhc2tQYXlsb2FkLCBjYXNlSWQ6IHN0cmluZywgZXZlbnRJZDogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgdXNlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAodGFza0lkICYmIHBheWxvYWQ/LnRhc2tzPy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB0YXNrID0gcGF5bG9hZC50YXNrcy5maW5kKCh0KSA9PiB0LmlkID09IHRhc2tJZCk7XG4gICAgICBpZiAodGFzaykge1xuICAgICAgICB0aGlzLnNldENsaWVudENvbnRleHRTdG9yYWdlKHRhc2ssIGNhc2VJZCwgZXZlbnRJZCwgdXNlcklkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlbW92ZVRhc2tGcm9tQ2xpZW50Q29udGV4dCh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwYXlsb2FkLnRhc2tfcmVxdWlyZWRfZm9yX2V2ZW50KSB7XG4gICAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZXMgaW4gRXZlbnRUcmlnZ2VyUmVzb2x2ZXIvQ2FzZVNlcnZpY2UgYW5kL29yIENDRCBmb3Igc29tZSBldmVudHNcbiAgICAgIC8vIHdoaWNoIHRyaWdnZXJzIHRoZSBDYW5BY3RpdmF0ZSBndWFyZCBhZ2Fpbi5cbiAgICAgIC8vIElmIGV2ZW50IHN0YXJ0IGlzIGluaXRpYXRlZCBhZ2FpbiwgdGhlbiB3ZSBkbyBub3QgbmVlZCB0byBwZXJmb3JtIHN0YXRlIG1hY2hpbmUgcHJvY2Vzc2luZyBhZ2Fpbi5cbiAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaG1jdHMubmV0L2ppcmEvYnJvd3NlL0VVSS01NDg5XG4gICAgICBpZiAodGhpcy5yb3V0ZXIgJiYgdGhpcy5yb3V0ZXIudXJsICYmIHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnZXZlbnQtc3RhcnQnKSkge1xuICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjYXNlSWR9L2V2ZW50LXN0YXJ0YF0sIHsgcXVlcnlQYXJhbXM6IHsgY2FzZUlkLCBldmVudElkLCB0YXNrSWQgfSB9KTtcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmNoZWNrVGFza0luRXZlbnROb3RSZXF1aXJlZChwYXlsb2FkLCBjYXNlSWQsIHRhc2tJZCwgZXZlbnRJZCwgdXNlcklkKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRVhVSS0yNzQzIC0gTWFrZSB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbyBhbHdheXMgYXZhaWxhYmxlIGluIHNlc3Npb24gc3RvcmFnZSB3aXRoIGNsaWVudCBjb250ZXh0XG4gIHByaXZhdGUgc2V0Q2xpZW50Q29udGV4dFN0b3JhZ2UodGFzazogVGFzaywgY2FzZUlkOiBzdHJpbmcsIGV2ZW50SWQ6IHN0cmluZywgdXNlcklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBTdG9yZSB0YXNrIHRvIHNlc3Npb25cbiAgICBjb25zdCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8gPSB7XG4gICAgICBjYXNlSWQ6IGNhc2VJZCxcbiAgICAgIGV2ZW50SWQ6IGV2ZW50SWQsXG4gICAgICB1c2VySWQ6IHVzZXJJZCxcbiAgICAgIHRhc2tJZDogdGFzay5pZCxcbiAgICAgIGNyZWF0ZWRUaW1lc3RhbXA6IERhdGUubm93KClcbiAgICB9O1xuICAgIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9IHRoaXMuY29va2llU2VydmljZS5nZXRDb29raWUoJ2V4dWktcHJlZmVycmVkLWxhbmd1YWdlJyk7XG4gICAgY29uc3Qgc3RvcmVDbGllbnRDb250ZXh0ID0ge1xuICAgICAgY2xpZW50X2NvbnRleHQ6IHtcbiAgICAgICAgdXNlcl90YXNrOiB7XG4gICAgICAgICAgdGFza19kYXRhOiB0YXNrLFxuICAgICAgICAgIGNvbXBsZXRlX3Rhc2s6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcl9sYW5ndWFnZToge1xuICAgICAgICAgIGxhbmd1YWdlOiBjdXJyZW50TGFuZ3VhZ2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5UQVNLX0VWRU5UX0NPTVBMRVRJT05fSU5GTywgSlNPTi5zdHJpbmdpZnkodGFza0V2ZW50Q29tcGxldGlvbkluZm8pKTtcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKENhc2VFZGl0Q29tcG9uZW50LkNMSUVOVF9DT05URVhULCBKU09OLnN0cmluZ2lmeShzdG9yZUNsaWVudENvbnRleHQpKTtcbiAgfVxufVxuIl19
@@ -64,7 +64,7 @@ export class EventStartStateMachineService {
64
64
  // Trigger final state to complete processing of state machine
65
65
  state.trigger(EventStartStates.FINAL);
66
66
  // Navigate to no tasks available error page
67
- context.router.navigate([`/cases/case-details/${context.tasks[0]?.jurisdiction}/${context.tasks[0]?.case_type_id}/${context.caseId}/no-tasks-available`], { relativeTo: context.route });
67
+ context.router.navigate([`/cases/case-details/${context.caseId}/no-tasks-available`], { relativeTo: context.route });
68
68
  }
69
69
  entryActionForStateOneOrMoreTasks(state, context) {
70
70
  state.trigger(EventStartStates.TASK_ASSIGNED_TO_USER);
@@ -106,12 +106,12 @@ export class EventStartStateMachineService {
106
106
  let theQueryParams = {};
107
107
  if (context.tasks[0].assignee) {
108
108
  // Task is assigned to some other user, navigate to task assigned error page
109
- navigationURL = `/cases/case-details/${context.tasks[0]?.jurisdiction}/${context.tasks[0]?.case_type_id}/${context.caseId}/task-assigned`;
109
+ navigationURL = `/cases/case-details/${context.caseId}/task-assigned`;
110
110
  theQueryParams = context.tasks[0];
111
111
  }
112
112
  else {
113
113
  // Task is unassigned, navigate to task unassigned error page
114
- navigationURL = `/cases/case-details/${context.tasks[0]?.jurisdiction}/${context.tasks[0]?.case_type_id}/${context.caseId}/task-unassigned`;
114
+ navigationURL = `/cases/case-details/${context.caseId}/task-unassigned`;
115
115
  }
116
116
  // Trigger final state to complete processing of state machine
117
117
  state.trigger(EventStartStates.FINAL);
@@ -158,13 +158,13 @@ export class EventStartStateMachineService {
158
158
  // EXUI-2668 - Only add client context when taskEventCompletionInfo is set - stops auto completing incorrect tasks
159
159
  context.sessionStorageService.setItem(CaseEditComponent.CLIENT_CONTEXT, JSON.stringify(clientContext));
160
160
  // Allow user to perform the event
161
- context.router.navigate([`/cases/case-details/${task.jurisdiction}/${task.case_type_id}/${context.caseId}/trigger/${context.eventId}`], { relativeTo: context.route });
161
+ context.router.navigate([`/cases/case-details/${context.caseId}/trigger/${context.eventId}`], { relativeTo: context.route });
162
162
  }
163
163
  entryActionForStateMultipleTasksAssignedToUser(state, context) {
164
164
  // Trigger final state to complete processing of state machine
165
165
  state.trigger(EventStartStates.FINAL);
166
166
  // Navigate to multiple tasks exist error page
167
- context.router.navigate([`/cases/case-details/${context.tasks[0]?.jurisdiction}/${context.tasks[0]?.case_type_id}/${context.caseId}/multiple-tasks-exist`], { relativeTo: context.route });
167
+ context.router.navigate([`/cases/case-details/${context.caseId}/multiple-tasks-exist`], { relativeTo: context.route });
168
168
  }
169
169
  finalAction(state) {
170
170
  // Final actions can be performed here, the state machine finished running
@@ -204,4 +204,4 @@ export class EventStartStateMachineService {
204
204
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventStartStateMachineService, [{
205
205
  type: Injectable
206
206
  }], null, null); })();
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3RhcnQtc3RhdGUtbWFjaGluZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2V2ZW50LXN0YXJ0L3NlcnZpY2VzL2V2ZW50LXN0YXJ0LXN0YXRlLW1hY2hpbmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBUyxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFpQyxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFdEQsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUdsRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ2pDLDBCQUEwQixDQUFRO0lBQ2xDLFdBQVcsQ0FBUTtJQUNuQixZQUFZLENBQVE7SUFDcEIsbUJBQW1CLENBQVE7SUFDM0IsdUJBQXVCLENBQVE7SUFDL0IsMEJBQTBCLENBQVE7SUFDbEMsZ0NBQWdDLENBQVE7SUFDeEMsbUJBQW1CLENBQVE7SUFDM0IsVUFBVSxDQUFRO0lBRWxCLHNCQUFzQixDQUFDLE9BQXNDO1FBQ2xFLE9BQU8sSUFBSSxZQUFZLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLFlBQVksQ0FBQyxZQUEwQjtRQUM1QyxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFlBQVksQ0FBQyxXQUFXLENBQ3hELGdCQUFnQixDQUFDLHdCQUF3QixFQUN6QyxLQUFLLEVBQ0wsSUFBSSxDQUFDLHdDQUF3QyxDQUM5QyxDQUFDO1FBRUYsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxXQUFX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QVUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFTSx3Q0FBd0M7UUFDN0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FDeEMsZ0JBQWdCLENBQUMseUJBQXlCLEVBQzFDLElBQUksQ0FBQywwQkFBMEIsQ0FDaEMsQ0FBQztRQUNGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQ3hDLGdCQUFnQixDQUFDLGVBQWUsRUFDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUN6QixDQUFDO1FBQ0YsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FDeEMsZ0JBQWdCLENBQUMsK0JBQStCLEVBQ2hELElBQUksQ0FBQyxnQ0FBZ0MsQ0FDdEMsQ0FBQztRQUNGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQ3hDLGdCQUFnQixDQUFDLEtBQUssRUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7SUFFTSwyQ0FBMkM7UUFDaEQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGFBQWEsQ0FDM0MsZ0JBQWdCLENBQUMsS0FBSyxFQUN0QixJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO0lBQ0osQ0FBQztJQUVNLGlEQUFpRDtRQUN0RCxJQUFJLENBQUMsZ0NBQWdDLENBQUMsYUFBYSxDQUNqRCxnQkFBZ0IsQ0FBQyxLQUFLLEVBQ3RCLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7SUFDSixDQUFDO3VIQWhTVSw2QkFBNkI7Z0VBQTdCLDZCQUE2QixXQUE3Qiw2QkFBNkI7O2lGQUE3Qiw2QkFBNkI7Y0FEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdGF0ZSwgU3RhdGVNYWNoaW5lIH0gZnJvbSAnQGVkaXVtL2ZzbSc7XG5pbXBvcnQgeyBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCwgRXZlbnRTdGFydFN0YXRlcyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBUYXNrRXZlbnRDb21wbGV0aW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5pbXBvcnQgeyBVc2VySW5mbyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi91c2VyL3VzZXItaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlRWRpdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yJztcblxuY29uc3QgRVZFTlRfU1RBVEVfTUFDSElORSA9ICdFVkVOVCBTVEFURSBNQUNISU5FJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVTZXJ2aWNlIHtcbiAgcHVibGljIHN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzOiBTdGF0ZTtcbiAgcHVibGljIHN0YXRlTm9UYXNrOiBTdGF0ZTtcbiAgcHVibGljIHN0YXRlT25lVGFzazogU3RhdGU7XG4gIHB1YmxpYyBzdGF0ZU9uZU9yTW9yZVRhc2tzOiBTdGF0ZTtcbiAgcHVibGljIHN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyOiBTdGF0ZTtcbiAgcHVibGljIHN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyOiBTdGF0ZTtcbiAgcHVibGljIHN0YXRlTXVsdGlwbGVUYXNrc0Fzc2lnbmVkVG9Vc2VyOiBTdGF0ZTtcbiAgcHVibGljIHN0YXRlVGFza1VuYXNzaWduZWQ6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVGaW5hbDogU3RhdGU7XG5cbiAgcHVibGljIGluaXRpYWxpc2VTdGF0ZU1hY2hpbmUoY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiBTdGF0ZU1hY2hpbmUge1xuICAgIHJldHVybiBuZXcgU3RhdGVNYWNoaW5lKEVWRU5UX1NUQVRFX01BQ0hJTkUsIGNvbnRleHQpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZVN0YXRlcyhzdGF0ZU1hY2hpbmU6IFN0YXRlTWFjaGluZSk6IHZvaWQge1xuICAgIC8vIEluaXRpYWwgc3RhdGVcbiAgICB0aGlzLnN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5DSEVDS19GT1JfTUFUQ0hJTkdfVEFTS1MsXG4gICAgICBmYWxzZSxcbiAgICAgIHRoaXMuZW50cnlBY3Rpb25Gb3JTdGF0ZUNoZWNrRm9yTWF0Y2hpbmdUYXNrc1xuICAgICk7XG5cbiAgICAvLyBTdGF0ZXMgYmFzZWQgb24gbnVtYmVyIG9mIHRhc2tzIGF2YWlsYWJsZVxuICAgIHRoaXMuc3RhdGVOb1Rhc2sgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk5PX1RBU0ssXG4gICAgICBmYWxzZSxcbiAgICAgIHRoaXMuZW50cnlBY3Rpb25Gb3JTdGF0ZU5vVGFza1xuICAgICk7XG4gICAgdGhpcy5zdGF0ZU9uZU9yTW9yZVRhc2tzID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5PTkVfT1JfTU9SRV9UQVNLUyxcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlT25lT3JNb3JlVGFza3NcbiAgICApO1xuXG4gICAgLy8gU3RhdGVzIGJhc2VkIG9uIG51bWJlciBvZiB0YXNrcyBhc3NpZ25lZCB0byB1c2VyXG4gICAgdGhpcy5zdGF0ZVRhc2tVbmFzc2lnbmVkID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5UQVNLX1VOQVNTSUdORUQsXG4gICAgICBmYWxzZSxcbiAgICAgIHRoaXMuZW50cnlBY3Rpb25Gb3JTdGF0ZVRhc2tVbkFzc2lnbmVkXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5UQVNLX0FTU0lHTkVEX1RPX1VTRVIsXG4gICAgICBmYWxzZSxcbiAgICAgIHRoaXMuZW50cnlBY3Rpb25Gb3JTdGF0ZVRhc2tBc3NpZ25lZFRvVXNlclxuICAgICk7XG4gICAgdGhpcy5zdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlciA9IHN0YXRlTWFjaGluZS5jcmVhdGVTdGF0ZShcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuT05FX1RBU0tfQVNTSUdORURfVE9fVVNFUixcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlTXVsdGlwbGVUYXNrc0Fzc2lnbmVkVG9Vc2VyID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5NVUxUSVBMRV9UQVNLU19BU1NJR05FRF9UT19VU0VSLFxuICAgICAgZmFsc2UsXG4gICAgICB0aGlzLmVudHJ5QWN0aW9uRm9yU3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXJcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIGZpbmFsIHN0YXRlLCB0aGUgc2Vjb25kIHBhcmFtIGlzQ29tcGxldGUgaXMgc2V0IHRvIHRydWUgdG8gbWFrZSBzdXJlIHN0YXRlIG1hY2hpbmUgZmluaXNoZWQgcnVubmluZ1xuICAgIHRoaXMuc3RhdGVGaW5hbCA9IHN0YXRlTWFjaGluZS5jcmVhdGVTdGF0ZShcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwsXG4gICAgICB0cnVlLFxuICAgICAgdGhpcy5maW5hbEFjdGlvblxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnMoKTogdm9pZCB7XG4gICAgLy8gSW5pdGlhbCB0cmFuc2l0aW9uXG4gICAgdGhpcy5hZGRUcmFuc2l0aW9uc0ZvclN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzKCk7XG5cbiAgICAvLyBUcmFuc2l0aW9ucyBiYXNlZCBvbiBudW1iZXIgb2YgdGFza3MgYXZhaWxhYmxlXG4gICAgdGhpcy5hZGRUcmFuc2l0aW9uc0ZvclN0YXRlTm9UYXNrKCk7XG4gICAgdGhpcy5hZGRUcmFuc2l0aW9uc0ZvclN0YXRlT25lT3JNb3JlVGFza3MoKTtcblxuICAgIC8vIFRyYW5zaXRpb25zIGJhc2VkIG9uIG51bWJlciBvZiB0YXNrcyBhc3NpZ25lZCB0byB1c2VyXG4gICAgdGhpcy5hZGRUcmFuc2l0aW9uc0ZvclN0YXRlVGFza1VuYXNzaWduZWQoKTtcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVUYXNrQXNzaWduZWRUb1VzZXIoKTtcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXIoKTtcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydFN0YXRlTWFjaGluZShzdGF0ZU1hY2hpbmU6IFN0YXRlTWFjaGluZSk6IHZvaWQge1xuICAgIHN0YXRlTWFjaGluZS5zdGFydCh0aGlzLnN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsIGVudHJ5IGFjdGlvbiBmb3Igc3RhdGUgY2hlY2sgZm9yIG1hdGNoaW5nIHRhc2tzLCBkZWNpZGVkIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgdGFza3NcbiAgICovXG4gIHB1YmxpYyBlbnRyeUFjdGlvbkZvclN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXNrQ291bnQgPSBjb250ZXh0ICYmIGNvbnRleHQudGFza3MgPyBjb250ZXh0LnRhc2tzLmxlbmd0aCA6IDA7XG5cbiAgICBpZiAodGFza0NvdW50ID09PSAwKSB7XG4gICAgICAvLyBUcmlnZ2VyIHN0YXRlIG5vIHRhc2tcbiAgICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5OT19UQVNLKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVHJpZ2dlciBzdGF0ZSBvbmUgb3IgbW9yZSB0YXNrc1xuICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLk9ORV9PUl9NT1JFX1RBU0tTKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZU5vVGFzayhzdGF0ZTogU3RhdGUsIGNvbnRleHQ6IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0KTogdm9pZCB7XG4gICAgLy8gVHJpZ2dlciBmaW5hbCBzdGF0ZSB0byBjb21wbGV0ZSBwcm9jZXNzaW5nIG9mIHN0YXRlIG1hY2hpbmVcbiAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwpO1xuICAgIC8vIE5hdmlnYXRlIHRvIG5vIHRhc2tzIGF2YWlsYWJsZSBlcnJvciBwYWdlXG4gICAgY29udGV4dC5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7Y29udGV4dC50YXNrc1swXT8uanVyaXNkaWN0aW9ufS8ke2NvbnRleHQudGFza3NbMF0/LmNhc2VfdHlwZV9pZH0vJHtjb250ZXh0LmNhc2VJZH0vbm8tdGFza3MtYXZhaWxhYmxlYF0sIHsgcmVsYXRpdmVUbzogY29udGV4dC5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlbnRyeUFjdGlvbkZvclN0YXRlT25lT3JNb3JlVGFza3Moc3RhdGU6IFN0YXRlLCBjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IHZvaWQge1xuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5UQVNLX0FTU0lHTkVEX1RPX1VTRVIpO1xuICB9XG5cbiAgcHVibGljIGVudHJ5QWN0aW9uRm9yU3RhdGVNdWx0aXBsZVRhc2tzKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuTVVMVElQTEVfVEFTS1NfQVNTSUdORURfVE9fVVNFUik7XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZVRhc2tBc3NpZ25lZFRvVXNlcihzdGF0ZTogU3RhdGUsIGNvbnRleHQ6IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0KTogdm9pZCB7XG4gICAgLy8gR2V0IG51bWJlciBvZiB0YXNrcyBhc3NpZ25lZCB0byB1c2VyXG4gICAgY29uc3QgdXNlckluZm9TdHIgPSBjb250ZXh0LnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgY29uc3QgdGFza3NBc3NpZ25lZFRvVXNlciA9IGNvbnRleHQudGFza3MuZmlsdGVyKHggPT5cbiAgICAgICAgeC50YXNrX3N0YXRlICE9PSAndW5hc3NpZ25lZCcgJiYgeC5hc3NpZ25lZSA9PT0gdXNlckluZm8uaWQgfHwgeC5hc3NpZ25lZSA9PT0gdXNlckluZm8udWlkXG4gICAgICApO1xuXG4gICAgLy8gQ2hlY2sgaWYgdXNlciBpbml0aWF0ZWQgdGhlIGV2ZW50IGZyb20gdGFzayB0YWJcbiAgICBjb25zdCBpc0V2ZW50SW5pdGlhdGVkRnJvbVRhc2tUYWIgPSBjb250ZXh0LnRhc2tJZCAhPT0gdW5kZWZpbmVkICYmIHRhc2tzQXNzaWduZWRUb1VzZXIuZmluZEluZGV4KHggPT4geC5pZCA9PT0gY29udGV4dC50YXNrSWQpID4gLTE7XG5cbiAgICBpZiAoaXNFdmVudEluaXRpYXRlZEZyb21UYXNrVGFiKSB7XG4gICAgICAvLyBVc2VyIGluaXRpYXRlZCBldmVudCBmcm9tIHRhc2sgdGFiXG4gICAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuT05FX1RBU0tfQVNTSUdORURfVE9fVVNFUik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVzZXIgaW5pdGlhdGVkIGV2ZW50IGZyb20gZHJvcGRvd25cbiAgICAgIHN3aXRjaCAodGFza3NBc3NpZ25lZFRvVXNlci5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIC8vIE5vIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXIsIHRyaWdnZXIgc3RhdGUgdGFzayB1bmFzc2lnbmVkXG4gICAgICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLlRBU0tfVU5BU1NJR05FRCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAvLyBPbmUgdGFzayBhc3NpZ25lZCB0byB1c2VyXG4gICAgICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLk9ORV9UQVNLX0FTU0lHTkVEX1RPX1VTRVIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIC8vIE11bHRpcGxlIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXIsIHRyaWdnZXIgc3RhdGUgbXVsdGlwbGUgdGFza3MgYXNzaWduZWQgdG8gdXNlclxuICAgICAgICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5NVUxUSVBMRV9UQVNLU19BU1NJR05FRF9UT19VU0VSKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZVRhc2tVbkFzc2lnbmVkKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICBsZXQgbmF2aWdhdGlvblVSTCA9ICcnO1xuICAgIGxldCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG4gICAgaWYgKGNvbnRleHQudGFza3NbMF0uYXNzaWduZWUpIHtcbiAgICAgIC8vIFRhc2sgaXMgYXNzaWduZWQgdG8gc29tZSBvdGhlciB1c2VyLCBuYXZpZ2F0ZSB0byB0YXNrIGFzc2lnbmVkIGVycm9yIHBhZ2VcbiAgICAgIG5hdmlnYXRpb25VUkwgPSBgL2Nhc2VzL2Nhc2UtZGV0YWlscy8ke2NvbnRleHQudGFza3NbMF0/Lmp1cmlzZGljdGlvbn0vJHtjb250ZXh0LnRhc2tzWzBdPy5jYXNlX3R5cGVfaWR9LyR7Y29udGV4dC5jYXNlSWR9L3Rhc2stYXNzaWduZWRgO1xuICAgICAgdGhlUXVlcnlQYXJhbXMgPSBjb250ZXh0LnRhc2tzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUYXNrIGlzIHVuYXNzaWduZWQsIG5hdmlnYXRlIHRvIHRhc2sgdW5hc3NpZ25lZCBlcnJvciBwYWdlXG4gICAgICBuYXZpZ2F0aW9uVVJMID0gYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjb250ZXh0LnRhc2tzWzBdPy5qdXJpc2RpY3Rpb259LyR7Y29udGV4dC50YXNrc1swXT8uY2FzZV90eXBlX2lkfS8ke2NvbnRleHQuY2FzZUlkfS90YXNrLXVuYXNzaWduZWRgO1xuICAgIH1cblxuICAgIC8vIFRyaWdnZXIgZmluYWwgc3RhdGUgdG8gY29tcGxldGUgcHJvY2Vzc2luZyBvZiBzdGF0ZSBtYWNoaW5lXG4gICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLkZJTkFMKTtcbiAgICAvLyBOYXZpZ2F0ZVxuICAgIGNvbnRleHQucm91dGVyLm5hdmlnYXRlKFtgJHtuYXZpZ2F0aW9uVVJMfWBdLCB7IHF1ZXJ5UGFyYW1zOiB0aGVRdWVyeVBhcmFtcywgcmVsYXRpdmVUbzogY29udGV4dC5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlbnRyeUFjdGlvbkZvclN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICAvLyBUcmlnZ2VyIGZpbmFsIHN0YXRlIHRvIGNvbXBsZXRlIHByb2Nlc3Npbmcgb2Ygc3RhdGUgbWFjaGluZVxuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5GSU5BTCk7XG5cbiAgICAvLyBHZXQgdGFzayBhc3NpZ25lZCB0byB1c2VyXG4gICAgbGV0IHRhc2sgPSBjb250ZXh0LnRhc2tzLmZpbmQoeCA9PiB4LmlkID09PSBjb250ZXh0LnRhc2tJZCk7XG4gICAgaWYgKCF0YXNrKSB7XG4gICAgICB0YXNrID0gY29udGV4dC50YXNrc1swXTtcbiAgICB9XG5cbiAgICBjb25zdCB0YXNrU3RyID0gSlNPTi5zdHJpbmdpZnkodGFzayk7XG4gICAgY29uc29sZS5sb2coJ2VudHJ5QWN0aW9uRm9yU3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXI6IHNldHRpbmcgY2xpZW50IGNvbnRleHQgdGFza19kYXRhIHRvICcgKyB0YXNrU3RyKTtcbiAgICAvLyBTdG9yZSB0YXNrIHRvIHNlc3Npb25cbiAgICBjb25zdCBjdXJyZW50TGFuZ3VhZ2UgPSBjb250ZXh0LmNvb2tpZVNlcnZpY2UuZ2V0Q29va2llKCdleHVpLXByZWZlcnJlZC1sYW5ndWFnZScpO1xuICAgIGNvbnN0IGNsaWVudENvbnRleHQgPSB7XG4gICAgICBjbGllbnRfY29udGV4dDoge1xuICAgICAgICB1c2VyX3Rhc2s6IHtcbiAgICAgICAgICB0YXNrX2RhdGE6IHRhc2ssXG4gICAgICAgICAgY29tcGxldGVfdGFzazogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB1c2VyX2xhbmd1YWdlOiB7XG4gICAgICAgICAgbGFuZ3VhZ2U6IGN1cnJlbnRMYW5ndWFnZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBsZXQgdXNlckluZm86IFVzZXJJbmZvO1xuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gY29udGV4dC5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgfVxuICAgIC8vIFN0b3JlIHRhc2sgdG8gc2Vzc2lvblxuICAgIGNvbnN0IHRhc2tFdmVudENvbXBsZXRpb25JbmZvOiBUYXNrRXZlbnRDb21wbGV0aW9uSW5mbyA9IHtcbiAgICAgIGNhc2VJZDogY29udGV4dC5jYXNlSWQsXG4gICAgICBldmVudElkOiBjb250ZXh0LmV2ZW50SWQsXG4gICAgICB1c2VySWQ6IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQsXG4gICAgICB0YXNrSWQ6IHRhc2suaWQsXG4gICAgICBjcmVhdGVkVGltZXN0YW1wOiBEYXRlLm5vdygpfTtcbiAgICBjb250ZXh0LnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKENhc2VFZGl0Q29tcG9uZW50LlRBU0tfRVZFTlRfQ09NUExFVElPTl9JTkZPLCBKU09OLnN0cmluZ2lmeSh0YXNrRXZlbnRDb21wbGV0aW9uSW5mbykpO1xuICAgIC8vIEVYVUktMjY2OCAtIE9ubHkgYWRkIGNsaWVudCBjb250ZXh0IHdoZW4gdGFza0V2ZW50Q29tcGxldGlvbkluZm8gaXMgc2V0IC0gc3RvcHMgYXV0byBjb21wbGV0aW5nIGluY29ycmVjdCB0YXNrc1xuICAgIGNvbnRleHQuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuQ0xJRU5UX0NPTlRFWFQsIEpTT04uc3RyaW5naWZ5KGNsaWVudENvbnRleHQpKTtcbiAgICAvLyBBbGxvdyB1c2VyIHRvIHBlcmZvcm0gdGhlIGV2ZW50XG4gICAgY29udGV4dC5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7dGFzay5qdXJpc2RpY3Rpb259LyR7dGFzay5jYXNlX3R5cGVfaWR9LyR7Y29udGV4dC5jYXNlSWR9L3RyaWdnZXIvJHtjb250ZXh0LmV2ZW50SWR9YF0sXG4gICAgICB7IHJlbGF0aXZlVG86IGNvbnRleHQucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlcihzdGF0ZTogU3RhdGUsIGNvbnRleHQ6IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0KTogdm9pZCB7XG4gICAgLy8gVHJpZ2dlciBmaW5hbCBzdGF0ZSB0byBjb21wbGV0ZSBwcm9jZXNzaW5nIG9mIHN0YXRlIG1hY2hpbmVcbiAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwpO1xuICAgIC8vIE5hdmlnYXRlIHRvIG11bHRpcGxlIHRhc2tzIGV4aXN0IGVycm9yIHBhZ2VcbiAgICBjb250ZXh0LnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjb250ZXh0LnRhc2tzWzBdPy5qdXJpc2RpY3Rpb259LyR7Y29udGV4dC50YXNrc1swXT8uY2FzZV90eXBlX2lkfS8ke2NvbnRleHQuY2FzZUlkfS9tdWx0aXBsZS10YXNrcy1leGlzdGBdLCB7IHJlbGF0aXZlVG86IGNvbnRleHQucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgZmluYWxBY3Rpb24oc3RhdGU6IFN0YXRlKTogdm9pZCB7XG4gICAgLy8gRmluYWwgYWN0aW9ucyBjYW4gYmUgcGVyZm9ybWVkIGhlcmUsIHRoZSBzdGF0ZSBtYWNoaW5lIGZpbmlzaGVkIHJ1bm5pbmdcbiAgICAvLyBjb25zb2xlLmxvZygnRklOQUwnLCBzdGF0ZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zaXRpb25zRm9yU3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MoKTogdm9pZCB7XG4gICAgLy8gTm8gdGFza3NcbiAgICB0aGlzLnN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk5PX1RBU0ssXG4gICAgICB0aGlzLnN0YXRlTm9UYXNrXG4gICAgKTtcbiAgICAvLyBPbmUgdGFza1xuICAgIHRoaXMuc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuT05FX09SX01PUkVfVEFTS1MsXG4gICAgICB0aGlzLnN0YXRlT25lT3JNb3JlVGFza3NcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zaXRpb25zRm9yU3RhdGVOb1Rhc2soKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZU5vVGFzay5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5GSU5BTCxcbiAgICAgIHRoaXMuc3RhdGVGaW5hbFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU9uZU9yTW9yZVRhc2tzKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVPbmVPck1vcmVUYXNrcy5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5UQVNLX0FTU0lHTkVEX1RPX1VTRVIsXG4gICAgICB0aGlzLnN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9uc0ZvclN0YXRlVGFza1VuYXNzaWduZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVRhc2tVbmFzc2lnbmVkLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLkZJTkFMLFxuICAgICAgdGhpcy5zdGF0ZUZpbmFsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9uc0ZvclN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXIuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuT05FX1RBU0tfQVNTSUdORURfVE9fVVNFUixcbiAgICAgIHRoaXMuc3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXJcbiAgICApO1xuICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXIuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuVEFTS19VTkFTU0lHTkVELFxuICAgICAgdGhpcy5zdGF0ZVRhc2tVbmFzc2lnbmVkXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk1VTFRJUExFX1RBU0tTX0FTU0lHTkVEX1RPX1VTRVIsXG4gICAgICB0aGlzLnN0YXRlTXVsdGlwbGVUYXNrc0Fzc2lnbmVkVG9Vc2VyXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLkZJTkFMLFxuICAgICAgdGhpcy5zdGF0ZUZpbmFsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9uc0ZvclN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXIuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwsXG4gICAgICB0aGlzLnN0YXRlRmluYWxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zaXRpb25zRm9yU3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXIoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlci5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5GSU5BTCxcbiAgICAgIHRoaXMuc3RhdGVGaW5hbFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3RhcnQtc3RhdGUtbWFjaGluZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2V2ZW50LXN0YXJ0L3NlcnZpY2VzL2V2ZW50LXN0YXJ0LXN0YXRlLW1hY2hpbmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBUyxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFpQyxnQkFBZ0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFdEQsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUdsRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ2pDLDBCQUEwQixDQUFRO0lBQ2xDLFdBQVcsQ0FBUTtJQUNuQixZQUFZLENBQVE7SUFDcEIsbUJBQW1CLENBQVE7SUFDM0IsdUJBQXVCLENBQVE7SUFDL0IsMEJBQTBCLENBQVE7SUFDbEMsZ0NBQWdDLENBQVE7SUFDeEMsbUJBQW1CLENBQVE7SUFDM0IsVUFBVSxDQUFRO0lBRWxCLHNCQUFzQixDQUFDLE9BQXNDO1FBQ2xFLE9BQU8sSUFBSSxZQUFZLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLFlBQVksQ0FBQyxZQUEwQjtRQUM1QyxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFlBQVksQ0FBQyxXQUFXLENBQ3hELGdCQUFnQixDQUFDLHdCQUF3QixFQUN6QyxLQUFLLEVBQ0wsSUFBSSxDQUFDLHdDQUF3QyxDQUM5QyxDQUFDO1FBRUYsNENBQTRDO1FBQzVDLElBQUksQ0FBQyxXQUFX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Q0FBQztJQUVNLDJDQUEyQztRQUNoRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsYUFBYSxDQUMzQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQ3RCLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRU0saURBQWlEO1FBQ3RELElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxhQUFhLENBQ2pELGdCQUFnQixDQUFDLEtBQUssRUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUNKLENBQUM7dUhBalNVLDZCQUE2QjtnRUFBN0IsNkJBQTZCLFdBQTdCLDZCQUE2Qjs7aUZBQTdCLDZCQUE2QjtjQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0YXRlLCBTdGF0ZU1hY2hpbmUgfSBmcm9tICdAZWRpdW0vZnNtJztcbmltcG9ydCB7IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0LCBFdmVudFN0YXJ0U3RhdGVzIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFRhc2tFdmVudENvbXBsZXRpb25JbmZvIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3dvcmstYWxsb2NhdGlvbi9UYXNrJztcbmltcG9ydCB7IFVzZXJJbmZvIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3VzZXIvdXNlci1pbmZvLm1vZGVsJztcbmltcG9ydCB7IENhc2VFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3InO1xuXG5jb25zdCBFVkVOVF9TVEFURV9NQUNISU5FID0gJ0VWRU5UIFNUQVRFIE1BQ0hJTkUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRTdGFydFN0YXRlTWFjaGluZVNlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3M6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVOb1Rhc2s6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVPbmVUYXNrOiBTdGF0ZTtcbiAgcHVibGljIHN0YXRlT25lT3JNb3JlVGFza3M6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVUYXNrQXNzaWduZWRUb1VzZXI6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXI6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXI6IFN0YXRlO1xuICBwdWJsaWMgc3RhdGVUYXNrVW5hc3NpZ25lZDogU3RhdGU7XG4gIHB1YmxpYyBzdGF0ZUZpbmFsOiBTdGF0ZTtcblxuICBwdWJsaWMgaW5pdGlhbGlzZVN0YXRlTWFjaGluZShjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IFN0YXRlTWFjaGluZSB7XG4gICAgcmV0dXJuIG5ldyBTdGF0ZU1hY2hpbmUoRVZFTlRfU1RBVEVfTUFDSElORSwgY29udGV4dCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlU3RhdGVzKHN0YXRlTWFjaGluZTogU3RhdGVNYWNoaW5lKTogdm9pZCB7XG4gICAgLy8gSW5pdGlhbCBzdGF0ZVxuICAgIHRoaXMuc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLkNIRUNLX0ZPUl9NQVRDSElOR19UQVNLUyxcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzXG4gICAgKTtcblxuICAgIC8vIFN0YXRlcyBiYXNlZCBvbiBudW1iZXIgb2YgdGFza3MgYXZhaWxhYmxlXG4gICAgdGhpcy5zdGF0ZU5vVGFzayA9IHN0YXRlTWFjaGluZS5jcmVhdGVTdGF0ZShcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuTk9fVEFTSyxcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlTm9UYXNrXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlT25lT3JNb3JlVGFza3MgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk9ORV9PUl9NT1JFX1RBU0tTLFxuICAgICAgZmFsc2UsXG4gICAgICB0aGlzLmVudHJ5QWN0aW9uRm9yU3RhdGVPbmVPck1vcmVUYXNrc1xuICAgICk7XG5cbiAgICAvLyBTdGF0ZXMgYmFzZWQgb24gbnVtYmVyIG9mIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXJcbiAgICB0aGlzLnN0YXRlVGFza1VuYXNzaWduZWQgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLlRBU0tfVU5BU1NJR05FRCxcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlVGFza1VuQXNzaWduZWRcbiAgICApO1xuICAgIHRoaXMuc3RhdGVUYXNrQXNzaWduZWRUb1VzZXIgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLlRBU0tfQVNTSUdORURfVE9fVVNFUixcbiAgICAgIGZhbHNlLFxuICAgICAgdGhpcy5lbnRyeUFjdGlvbkZvclN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5PTkVfVEFTS19BU1NJR05FRF9UT19VU0VSLFxuICAgICAgZmFsc2UsXG4gICAgICB0aGlzLmVudHJ5QWN0aW9uRm9yU3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXJcbiAgICApO1xuICAgIHRoaXMuc3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXIgPSBzdGF0ZU1hY2hpbmUuY3JlYXRlU3RhdGUoXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk1VTFRJUExFX1RBU0tTX0FTU0lHTkVEX1RPX1VTRVIsXG4gICAgICBmYWxzZSxcbiAgICAgIHRoaXMuZW50cnlBY3Rpb25Gb3JTdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlclxuICAgICk7XG5cbiAgICAvLyBDcmVhdGUgZmluYWwgc3RhdGUsIHRoZSBzZWNvbmQgcGFyYW0gaXNDb21wbGV0ZSBpcyBzZXQgdG8gdHJ1ZSB0byBtYWtlIHN1cmUgc3RhdGUgbWFjaGluZSBmaW5pc2hlZCBydW5uaW5nXG4gICAgdGhpcy5zdGF0ZUZpbmFsID0gc3RhdGVNYWNoaW5lLmNyZWF0ZVN0YXRlKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5GSU5BTCxcbiAgICAgIHRydWUsXG4gICAgICB0aGlzLmZpbmFsQWN0aW9uXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9ucygpOiB2b2lkIHtcbiAgICAvLyBJbml0aWFsIHRyYW5zaXRpb25cbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MoKTtcblxuICAgIC8vIFRyYW5zaXRpb25zIGJhc2VkIG9uIG51bWJlciBvZiB0YXNrcyBhdmFpbGFibGVcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVOb1Rhc2soKTtcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVPbmVPck1vcmVUYXNrcygpO1xuXG4gICAgLy8gVHJhbnNpdGlvbnMgYmFzZWQgb24gbnVtYmVyIG9mIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXJcbiAgICB0aGlzLmFkZFRyYW5zaXRpb25zRm9yU3RhdGVUYXNrVW5hc3NpZ25lZCgpO1xuICAgIHRoaXMuYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZVRhc2tBc3NpZ25lZFRvVXNlcigpO1xuICAgIHRoaXMuYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlcigpO1xuICAgIHRoaXMuYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlcigpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0U3RhdGVNYWNoaW5lKHN0YXRlTWFjaGluZTogU3RhdGVNYWNoaW5lKTogdm9pZCB7XG4gICAgc3RhdGVNYWNoaW5lLnN0YXJ0KHRoaXMuc3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgZW50cnkgYWN0aW9uIGZvciBzdGF0ZSBjaGVjayBmb3IgbWF0Y2hpbmcgdGFza3MsIGRlY2lkZWQgYmFzZWQgb24gdGhlIG51bWJlciBvZiB0YXNrc1xuICAgKi9cbiAgcHVibGljIGVudHJ5QWN0aW9uRm9yU3RhdGVDaGVja0Zvck1hdGNoaW5nVGFza3Moc3RhdGU6IFN0YXRlLCBjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IHZvaWQge1xuICAgIGNvbnN0IHRhc2tDb3VudCA9IGNvbnRleHQgJiYgY29udGV4dC50YXNrcyA/IGNvbnRleHQudGFza3MubGVuZ3RoIDogMDtcblxuICAgIGlmICh0YXNrQ291bnQgPT09IDApIHtcbiAgICAgIC8vIFRyaWdnZXIgc3RhdGUgbm8gdGFza1xuICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLk5PX1RBU0spO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUcmlnZ2VyIHN0YXRlIG9uZSBvciBtb3JlIHRhc2tzXG4gICAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuT05FX09SX01PUkVfVEFTS1MpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbnRyeUFjdGlvbkZvclN0YXRlTm9UYXNrKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICAvLyBUcmlnZ2VyIGZpbmFsIHN0YXRlIHRvIGNvbXBsZXRlIHByb2Nlc3Npbmcgb2Ygc3RhdGUgbWFjaGluZVxuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5GSU5BTCk7XG4gICAgLy8gTmF2aWdhdGUgdG8gbm8gdGFza3MgYXZhaWxhYmxlIGVycm9yIHBhZ2VcbiAgICBjb250ZXh0LnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjb250ZXh0LmNhc2VJZH0vbm8tdGFza3MtYXZhaWxhYmxlYF0sIHsgcmVsYXRpdmVUbzogY29udGV4dC5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlbnRyeUFjdGlvbkZvclN0YXRlT25lT3JNb3JlVGFza3Moc3RhdGU6IFN0YXRlLCBjb250ZXh0OiBFdmVudFN0YXJ0U3RhdGVNYWNoaW5lQ29udGV4dCk6IHZvaWQge1xuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5UQVNLX0FTU0lHTkVEX1RPX1VTRVIpO1xuICB9XG5cbiAgcHVibGljIGVudHJ5QWN0aW9uRm9yU3RhdGVNdWx0aXBsZVRhc2tzKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuTVVMVElQTEVfVEFTS1NfQVNTSUdORURfVE9fVVNFUik7XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZVRhc2tBc3NpZ25lZFRvVXNlcihzdGF0ZTogU3RhdGUsIGNvbnRleHQ6IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0KTogdm9pZCB7XG4gICAgLy8gR2V0IG51bWJlciBvZiB0YXNrcyBhc3NpZ25lZCB0byB1c2VyXG4gICAgY29uc3QgdXNlckluZm9TdHIgPSBjb250ZXh0LnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgY29uc3QgdGFza3NBc3NpZ25lZFRvVXNlciA9IGNvbnRleHQudGFza3MuZmlsdGVyKHggPT5cbiAgICAgICAgeC50YXNrX3N0YXRlICE9PSAndW5hc3NpZ25lZCcgJiYgeC5hc3NpZ25lZSA9PT0gdXNlckluZm8uaWQgfHwgeC5hc3NpZ25lZSA9PT0gdXNlckluZm8udWlkXG4gICAgICApO1xuXG4gICAgLy8gQ2hlY2sgaWYgdXNlciBpbml0aWF0ZWQgdGhlIGV2ZW50IGZyb20gdGFzayB0YWJcbiAgICBjb25zdCBpc0V2ZW50SW5pdGlhdGVkRnJvbVRhc2tUYWIgPSBjb250ZXh0LnRhc2tJZCAhPT0gdW5kZWZpbmVkICYmIHRhc2tzQXNzaWduZWRUb1VzZXIuZmluZEluZGV4KHggPT4geC5pZCA9PT0gY29udGV4dC50YXNrSWQpID4gLTE7XG5cbiAgICBpZiAoaXNFdmVudEluaXRpYXRlZEZyb21UYXNrVGFiKSB7XG4gICAgICAvLyBVc2VyIGluaXRpYXRlZCBldmVudCBmcm9tIHRhc2sgdGFiXG4gICAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuT05FX1RBU0tfQVNTSUdORURfVE9fVVNFUik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVzZXIgaW5pdGlhdGVkIGV2ZW50IGZyb20gZHJvcGRvd25cbiAgICAgIHN3aXRjaCAodGFza3NBc3NpZ25lZFRvVXNlci5sZW5ndGgpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIC8vIE5vIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXIsIHRyaWdnZXIgc3RhdGUgdGFzayB1bmFzc2lnbmVkXG4gICAgICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLlRBU0tfVU5BU1NJR05FRCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAvLyBPbmUgdGFzayBhc3NpZ25lZCB0byB1c2VyXG4gICAgICAgICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLk9ORV9UQVNLX0FTU0lHTkVEX1RPX1VTRVIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIC8vIE11bHRpcGxlIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXIsIHRyaWdnZXIgc3RhdGUgbXVsdGlwbGUgdGFza3MgYXNzaWduZWQgdG8gdXNlclxuICAgICAgICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5NVUxUSVBMRV9UQVNLU19BU1NJR05FRF9UT19VU0VSKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZVRhc2tVbkFzc2lnbmVkKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICBsZXQgbmF2aWdhdGlvblVSTCA9ICcnO1xuICAgIGxldCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG4gIFxuICAgIGlmIChjb250ZXh0LnRhc2tzWzBdLmFzc2lnbmVlKSB7XG4gICAgICAvLyBUYXNrIGlzIGFzc2lnbmVkIHRvIHNvbWUgb3RoZXIgdXNlciwgbmF2aWdhdGUgdG8gdGFzayBhc3NpZ25lZCBlcnJvciBwYWdlXG4gICAgICBuYXZpZ2F0aW9uVVJMID0gYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjb250ZXh0LmNhc2VJZH0vdGFzay1hc3NpZ25lZGA7XG4gICAgICB0aGVRdWVyeVBhcmFtcyA9IGNvbnRleHQudGFza3NbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRhc2sgaXMgdW5hc3NpZ25lZCwgbmF2aWdhdGUgdG8gdGFzayB1bmFzc2lnbmVkIGVycm9yIHBhZ2VcbiAgICAgIG5hdmlnYXRpb25VUkwgPSBgL2Nhc2VzL2Nhc2UtZGV0YWlscy8ke2NvbnRleHQuY2FzZUlkfS90YXNrLXVuYXNzaWduZWRgO1xuICAgIH1cblxuICAgIC8vIFRyaWdnZXIgZmluYWwgc3RhdGUgdG8gY29tcGxldGUgcHJvY2Vzc2luZyBvZiBzdGF0ZSBtYWNoaW5lXG4gICAgc3RhdGUudHJpZ2dlcihFdmVudFN0YXJ0U3RhdGVzLkZJTkFMKTtcbiAgICAvLyBOYXZpZ2F0ZVxuICAgIGNvbnRleHQucm91dGVyLm5hdmlnYXRlKFtgJHtuYXZpZ2F0aW9uVVJMfWBdLCB7IHF1ZXJ5UGFyYW1zOiB0aGVRdWVyeVBhcmFtcywgcmVsYXRpdmVUbzogY29udGV4dC5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBlbnRyeUFjdGlvbkZvclN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyKHN0YXRlOiBTdGF0ZSwgY29udGV4dDogRXZlbnRTdGFydFN0YXRlTWFjaGluZUNvbnRleHQpOiB2b2lkIHtcbiAgICAvLyBUcmlnZ2VyIGZpbmFsIHN0YXRlIHRvIGNvbXBsZXRlIHByb2Nlc3Npbmcgb2Ygc3RhdGUgbWFjaGluZVxuICAgIHN0YXRlLnRyaWdnZXIoRXZlbnRTdGFydFN0YXRlcy5GSU5BTCk7XG5cbiAgICAvLyBHZXQgdGFzayBhc3NpZ25lZCB0byB1c2VyXG4gICAgbGV0IHRhc2sgPSBjb250ZXh0LnRhc2tzLmZpbmQoeCA9PiB4LmlkID09PSBjb250ZXh0LnRhc2tJZCk7XG4gICAgaWYgKCF0YXNrKSB7XG4gICAgICB0YXNrID0gY29udGV4dC50YXNrc1swXTtcbiAgICB9XG5cbiAgICBjb25zdCB0YXNrU3RyID0gSlNPTi5zdHJpbmdpZnkodGFzayk7XG4gICAgY29uc29sZS5sb2coJ2VudHJ5QWN0aW9uRm9yU3RhdGVPbmVUYXNrQXNzaWduZWRUb1VzZXI6IHNldHRpbmcgY2xpZW50IGNvbnRleHQgdGFza19kYXRhIHRvICcgKyB0YXNrU3RyKTtcbiAgICAvLyBTdG9yZSB0YXNrIHRvIHNlc3Npb25cbiAgICBjb25zdCBjdXJyZW50TGFuZ3VhZ2UgPSBjb250ZXh0LmNvb2tpZVNlcnZpY2UuZ2V0Q29va2llKCdleHVpLXByZWZlcnJlZC1sYW5ndWFnZScpO1xuICAgIGNvbnN0IGNsaWVudENvbnRleHQgPSB7XG4gICAgICBjbGllbnRfY29udGV4dDoge1xuICAgICAgICB1c2VyX3Rhc2s6IHtcbiAgICAgICAgICB0YXNrX2RhdGE6IHRhc2ssXG4gICAgICAgICAgY29tcGxldGVfdGFzazogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB1c2VyX2xhbmd1YWdlOiB7XG4gICAgICAgICAgbGFuZ3VhZ2U6IGN1cnJlbnRMYW5ndWFnZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBsZXQgdXNlckluZm86IFVzZXJJbmZvO1xuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gY29udGV4dC5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgfVxuICAgIC8vIFN0b3JlIHRhc2sgdG8gc2Vzc2lvblxuICAgIGNvbnN0IHRhc2tFdmVudENvbXBsZXRpb25JbmZvOiBUYXNrRXZlbnRDb21wbGV0aW9uSW5mbyA9IHtcbiAgICAgIGNhc2VJZDogY29udGV4dC5jYXNlSWQsXG4gICAgICBldmVudElkOiBjb250ZXh0LmV2ZW50SWQsXG4gICAgICB1c2VySWQ6IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQsXG4gICAgICB0YXNrSWQ6IHRhc2suaWQsXG4gICAgICBjcmVhdGVkVGltZXN0YW1wOiBEYXRlLm5vdygpfTtcbiAgICBjb250ZXh0LnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKENhc2VFZGl0Q29tcG9uZW50LlRBU0tfRVZFTlRfQ09NUExFVElPTl9JTkZPLCBKU09OLnN0cmluZ2lmeSh0YXNrRXZlbnRDb21wbGV0aW9uSW5mbykpO1xuICAgIC8vIEVYVUktMjY2OCAtIE9ubHkgYWRkIGNsaWVudCBjb250ZXh0IHdoZW4gdGFza0V2ZW50Q29tcGxldGlvbkluZm8gaXMgc2V0IC0gc3RvcHMgYXV0byBjb21wbGV0aW5nIGluY29ycmVjdCB0YXNrc1xuICAgIGNvbnRleHQuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuQ0xJRU5UX0NPTlRFWFQsIEpTT04uc3RyaW5naWZ5KGNsaWVudENvbnRleHQpKTtcbiAgICAvLyBBbGxvdyB1c2VyIHRvIHBlcmZvcm0gdGhlIGV2ZW50XG4gICAgY29udGV4dC5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7Y29udGV4dC5jYXNlSWR9L3RyaWdnZXIvJHtjb250ZXh0LmV2ZW50SWR9YF0sXG4gICAgICB7IHJlbGF0aXZlVG86IGNvbnRleHQucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgZW50cnlBY3Rpb25Gb3JTdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlcihzdGF0ZTogU3RhdGUsIGNvbnRleHQ6IEV2ZW50U3RhcnRTdGF0ZU1hY2hpbmVDb250ZXh0KTogdm9pZCB7XG4gICAgLy8gVHJpZ2dlciBmaW5hbCBzdGF0ZSB0byBjb21wbGV0ZSBwcm9jZXNzaW5nIG9mIHN0YXRlIG1hY2hpbmVcbiAgICBzdGF0ZS50cmlnZ2VyKEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwpO1xuICAgIC8vIE5hdmlnYXRlIHRvIG11bHRpcGxlIHRhc2tzIGV4aXN0IGVycm9yIHBhZ2VcbiAgICBjb250ZXh0LnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjb250ZXh0LmNhc2VJZH0vbXVsdGlwbGUtdGFza3MtZXhpc3RgXSwgeyByZWxhdGl2ZVRvOiBjb250ZXh0LnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIGZpbmFsQWN0aW9uKHN0YXRlOiBTdGF0ZSk6IHZvaWQge1xuICAgIC8vIEZpbmFsIGFjdGlvbnMgY2FuIGJlIHBlcmZvcm1lZCBoZXJlLCB0aGUgc3RhdGUgbWFjaGluZSBmaW5pc2hlZCBydW5uaW5nXG4gICAgLy8gY29uc29sZS5sb2coJ0ZJTkFMJywgc3RhdGUpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9uc0ZvclN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzKCk6IHZvaWQge1xuICAgIC8vIE5vIHRhc2tzXG4gICAgdGhpcy5zdGF0ZUNoZWNrRm9yTWF0Y2hpbmdUYXNrcy5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5OT19UQVNLLFxuICAgICAgdGhpcy5zdGF0ZU5vVGFza1xuICAgICk7XG4gICAgLy8gT25lIHRhc2tcbiAgICB0aGlzLnN0YXRlQ2hlY2tGb3JNYXRjaGluZ1Rhc2tzLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk9ORV9PUl9NT1JFX1RBU0tTLFxuICAgICAgdGhpcy5zdGF0ZU9uZU9yTW9yZVRhc2tzXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9uc0ZvclN0YXRlTm9UYXNrKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVOb1Rhc2suYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwsXG4gICAgICB0aGlzLnN0YXRlRmluYWxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFkZFRyYW5zaXRpb25zRm9yU3RhdGVPbmVPck1vcmVUYXNrcygpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlT25lT3JNb3JlVGFza3MuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuVEFTS19BU1NJR05FRF9UT19VU0VSLFxuICAgICAgdGhpcy5zdGF0ZVRhc2tBc3NpZ25lZFRvVXNlclxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZVRhc2tVbmFzc2lnbmVkKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVUYXNrVW5hc3NpZ25lZC5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5GSU5BTCxcbiAgICAgIHRoaXMuc3RhdGVGaW5hbFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZVRhc2tBc3NpZ25lZFRvVXNlcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLk9ORV9UQVNLX0FTU0lHTkVEX1RPX1VTRVIsXG4gICAgICB0aGlzLnN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlVGFza0Fzc2lnbmVkVG9Vc2VyLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLlRBU0tfVU5BU1NJR05FRCxcbiAgICAgIHRoaXMuc3RhdGVUYXNrVW5hc3NpZ25lZFxuICAgICk7XG4gICAgdGhpcy5zdGF0ZVRhc2tBc3NpZ25lZFRvVXNlci5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5NVUxUSVBMRV9UQVNLU19BU1NJR05FRF9UT19VU0VSLFxuICAgICAgdGhpcy5zdGF0ZU11bHRpcGxlVGFza3NBc3NpZ25lZFRvVXNlclxuICAgICk7XG4gICAgdGhpcy5zdGF0ZVRhc2tBc3NpZ25lZFRvVXNlci5hZGRUcmFuc2l0aW9uKFxuICAgICAgRXZlbnRTdGFydFN0YXRlcy5GSU5BTCxcbiAgICAgIHRoaXMuc3RhdGVGaW5hbFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYWRkVHJhbnNpdGlvbnNGb3JTdGF0ZU9uZVRhc2tBc3NpZ25lZFRvVXNlcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlT25lVGFza0Fzc2lnbmVkVG9Vc2VyLmFkZFRyYW5zaXRpb24oXG4gICAgICBFdmVudFN0YXJ0U3RhdGVzLkZJTkFMLFxuICAgICAgdGhpcy5zdGF0ZUZpbmFsXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUcmFuc2l0aW9uc0ZvclN0YXRlTXVsdGlwbGVUYXNrc0Fzc2lnbmVkVG9Vc2VyKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVNdWx0aXBsZVRhc2tzQXNzaWduZWRUb1VzZXIuYWRkVHJhbnNpdGlvbihcbiAgICAgIEV2ZW50U3RhcnRTdGF0ZXMuRklOQUwsXG4gICAgICB0aGlzLnN0YXRlRmluYWxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -100,7 +100,7 @@ function WriteAddressFieldComponent_div_1_div_5_Template(rf, ctx) { if (rf & 1)
100
100
  function WriteAddressFieldComponent_div_1_a_6_Template(rf, ctx) { if (rf & 1) {
101
101
  const _r5 = i0.ɵɵgetCurrentView();
102
102
  i0.ɵɵelementStart(0, "a", 19);
103
- i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_1_a_6_Template_a_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); ctx_r1.blankAddress(); return i0.ɵɵresetView($event.preventDefault()); });
103
+ i0.ɵɵlistener("click", function WriteAddressFieldComponent_div_1_a_6_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.blankAddress()); });
104
104
  i0.ɵɵtext(1);
105
105
  i0.ɵɵpipe(2, "rpxTranslate");
106
106
  i0.ɵɵelementEnd();
@@ -259,7 +259,7 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
259
259
  let _t;
260
260
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.writeComplexFieldComponent = _t.first);
261
261
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.focusElementDirectives = _t);
262
- } }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 9, consts: [["writeComplexFieldComponent", ""], [1, "form-group", 3, "id"], [4, "ngIf"], [3, "hidden", "caseField", "renderLabel", "parent", "formGroup", "ignoreMandatory", "idPrefix"], [1, "heading-h2"], ["class", "form-group bottom-30 postcodeLookup", 3, "id", "ngClass", 4, "ngIf"], ["class", "form-group", "id", "selectAddress", 3, "ngClass", 4, "ngIf"], ["class", "manual-link bottom-30", "href", "#", 3, "click", 4, "ngIf"], [1, "form-group", "bottom-30", "postcodeLookup", 3, "id", "ngClass"], [3, "for"], [1, "form-label"], ["class", "error-message", 4, "ngIf"], ["type", "text", "name", "postcode", 1, "form-control", "postcodeinput", "inline-block", 3, "ngClass", "id", "formControl"], ["type", "button", 1, "button", "button-30", 3, "click"], [1, "error-message"], ["id", "selectAddress", 1, "form-group", 3, "ngClass"], ["name", "address", "focusElement", "", 1, "form-control", "ccd-dropdown", "addressList", 3, "change", "id", "formControl"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "#", 1, "manual-link", "bottom-30", 3, "click"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
262
+ } }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 9, consts: [["writeComplexFieldComponent", ""], [1, "form-group", 3, "id"], [4, "ngIf"], [3, "hidden", "caseField", "renderLabel", "parent", "formGroup", "ignoreMandatory", "idPrefix"], [1, "heading-h2"], ["class", "form-group bottom-30 postcodeLookup", 3, "id", "ngClass", 4, "ngIf"], ["class", "form-group", "id", "selectAddress", 3, "ngClass", 4, "ngIf"], ["class", "manual-link bottom-30", "href", "javascript:void(0)", 3, "click", 4, "ngIf"], [1, "form-group", "bottom-30", "postcodeLookup", 3, "id", "ngClass"], [3, "for"], [1, "form-label"], ["class", "error-message", 4, "ngIf"], ["type", "text", "name", "postcode", 1, "form-control", "postcodeinput", "inline-block", 3, "ngClass", "id", "formControl"], ["type", "button", 1, "button", "button-30", 3, "click"], [1, "error-message"], ["id", "selectAddress", 1, "form-group", 3, "ngClass"], ["name", "address", "focusElement", "", 1, "form-control", "ccd-dropdown", "addressList", 3, "change", "id", "formControl"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "javascript:void(0)", 1, "manual-link", "bottom-30", 3, "click"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
263
263
  i0.ɵɵelementStart(0, "div", 1);
264
264
  i0.ɵɵtemplate(1, WriteAddressFieldComponent_div_1_Template, 7, 6, "div", 2);
265
265
  i0.ɵɵelement(2, "ccd-write-complex-type-field", 3, 0);
@@ -274,7 +274,7 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
274
274
  }
275
275
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteAddressFieldComponent, [{
276
276
  type: Component,
277
- args: [{ selector: 'ccd-write-address-field', template: "<div class=\"form-group\" [id]=\"id()\">\n <div *ngIf=\"!isComplexWithHiddenFields()\">\n <h2 class=\"heading-h2\">{{caseField | ccdFieldLabel}}</h2>\n\n <div class=\"form-group bottom-30 postcodeLookup\" [id]=\"createElementId('postcodeLookup')\" [ngClass]=\"{'form-group-error': missingPostcode}\" *ngIf=\"!isExpanded\">\n <label [for]=\"createElementId('postcodeInput')\">\n <span class=\"form-label\">{{'Enter a UK postcode' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"missingPostcode\">{{errorMessage | rpxTranslate}}</span>\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\"\n [id]=\"createElementId('postcodeInput')\" name=\"postcode\" class=\"form-control postcodeinput inline-block\" [formControl]=\"postcode\">\n <button type=\"button\" class=\"button button-30\" (click)=\"findAddress()\">{{'Find address' | rpxTranslate}}</button>\n </div>\n\n <div class=\"form-group\" *ngIf=\"addressOptions\" id=\"selectAddress\" [ngClass]=\"{'form-group-error': noAddressSelected}\">\n <label [for]=\"createElementId('addressList')\">\n <span class=\"form-label\">{{'Select an address' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"noAddressSelected\">{{errorMessage | rpxTranslate}}</span>\n <select class=\"form-control ccd-dropdown addressList\" [id]=\"createElementId('addressList')\" name=\"address\" [formControl]=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description | rpxTranslate}}\n </option>\n </select>\n </div>\n\n <a class=\"manual-link bottom-30\" *ngIf=\"!shouldShowDetailFields()\" (click)=\"blankAddress(); $event.preventDefault()\" href=\"#\">\n {{\"I can't enter a UK postcode\" | rpxTranslate}}\n </a>\n </div>\n\n <ccd-write-complex-type-field\n [hidden]=\"!shouldShowDetailFields()\"\n [caseField]=\"caseField\"\n [renderLabel]=\"false\"\n [parent]=\"parent\"\n [formGroup]=\"formGroup\"\n [ignoreMandatory]=\"true\"\n [idPrefix]=\"buildIdPrefix('detail')\"\n #writeComplexFieldComponent>\n </ccd-write-complex-type-field>\n</div>\n", styles: [".manual-link{cursor:pointer;display:block;text-decoration:underline}\n"] }]
277
+ args: [{ selector: 'ccd-write-address-field', template: "<div class=\"form-group\" [id]=\"id()\">\n <div *ngIf=\"!isComplexWithHiddenFields()\">\n <h2 class=\"heading-h2\">{{caseField | ccdFieldLabel}}</h2>\n\n <div class=\"form-group bottom-30 postcodeLookup\" [id]=\"createElementId('postcodeLookup')\" [ngClass]=\"{'form-group-error': missingPostcode}\" *ngIf=\"!isExpanded\">\n <label [for]=\"createElementId('postcodeInput')\">\n <span class=\"form-label\">{{'Enter a UK postcode' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"missingPostcode\">{{errorMessage | rpxTranslate}}</span>\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\"\n [id]=\"createElementId('postcodeInput')\" name=\"postcode\" class=\"form-control postcodeinput inline-block\" [formControl]=\"postcode\">\n <button type=\"button\" class=\"button button-30\" (click)=\"findAddress()\">{{'Find address' | rpxTranslate}}</button>\n </div>\n\n <div class=\"form-group\" *ngIf=\"addressOptions\" id=\"selectAddress\" [ngClass]=\"{'form-group-error': noAddressSelected}\">\n <label [for]=\"createElementId('addressList')\">\n <span class=\"form-label\">{{'Select an address' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"noAddressSelected\">{{errorMessage | rpxTranslate}}</span>\n <select class=\"form-control ccd-dropdown addressList\" [id]=\"createElementId('addressList')\" name=\"address\" [formControl]=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description | rpxTranslate}}\n </option>\n </select>\n </div>\n\n <a class=\"manual-link bottom-30\" *ngIf=\"!shouldShowDetailFields()\" (click)=\"blankAddress()\" href=\"javascript:void(0)\">\n {{\"I can't enter a UK postcode\" | rpxTranslate}}\n </a>\n </div>\n\n <ccd-write-complex-type-field\n [hidden]=\"!shouldShowDetailFields()\"\n [caseField]=\"caseField\"\n [renderLabel]=\"false\"\n [parent]=\"parent\"\n [formGroup]=\"formGroup\"\n [ignoreMandatory]=\"true\"\n [idPrefix]=\"buildIdPrefix('detail')\"\n #writeComplexFieldComponent>\n </ccd-write-complex-type-field>\n</div>\n", styles: [".manual-link{cursor:pointer;display:block;text-decoration:underline}\n"] }]
278
278
  }], () => [{ type: i1.AddressesService }, { type: i2.IsCompoundPipe }], { writeComplexFieldComponent: [{
279
279
  type: ViewChild,
280
280
  args: ['writeComplexFieldComponent', { static: false }]
@@ -283,4 +283,4 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
283
283
  args: [FocusElementDirective]
284
284
  }] }); })();
285
285
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteAddressFieldComponent, { className: "WriteAddressFieldComponent", filePath: "lib/shared/components/palette/address/write-address-field.component.ts", lineNumber: 17 }); })();
286
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtYWRkcmVzcy1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9hZGRyZXNzL3dyaXRlLWFkZHJlc3MtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvYWRkcmVzcy93cml0ZS1hZGRyZXNzLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztJQ0RqRCxnQ0FBb0Q7SUFBQSxZQUErQjs7SUFBQSxpQkFBTzs7O0lBQXRDLGNB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QztJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxLQUFjO1FBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDdkYsQ0FBQztvSEF4SlUsMEJBQTBCOzZEQUExQiwwQkFBMEI7OzJCQUl2QixxQkFBcUI7Ozs7OztZQ3BCckMsOEJBQW9DO1lBQ2xDLDJFQUEwQztZQThCMUMscURBUytCO1lBQ2pDLGlCQUFNOztZQXpDa0IsNkJBQVc7WUFDM0IsY0FBa0M7WUFBbEMsdURBQWtDO1lBK0J0QyxjQUFvQztZQU1wQyxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxzREFBb0MsNEJBQ2Isc0JBQ0Ysc0JBQ0osNEJBQ00seUJBQ0MseUNBQ1k7OztpRkR0QjNCLDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLHlCQUF5Qjs4RUFNNUIsMEJBQTBCO2tCQURoQyxTQUFTO21CQUFDLDRCQUE0QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUluRCxzQkFBc0I7a0JBRDVCLFlBQVk7bUJBQUMscUJBQXFCOztrRkFKeEIsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkNoYW5nZXMsIE9uSW5pdCwgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFkZHJlc3NWYWxpZGF0aW9uQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9ucy9hZGRyZXNzLXZhbGlkYXRpb24tY29uc3RhbnRzJztcbmltcG9ydCB7IEZvY3VzRWxlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvZm9jdXMtZWxlbWVudCc7XG5pbXBvcnQgeyBBZGRyZXNzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vYWRkcmVzc2VzL2FkZHJlc3MubW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FkZHJlc3Nlcy9hZGRyZXNzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXcml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBsZXgvd3JpdGUtY29tcGxleC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSXNDb21wb3VuZFBpcGUgfSBmcm9tICcuLi91dGlscy9pcy1jb21wb3VuZC5waXBlJztcbmltcG9ydCB7IEFkZHJlc3NPcHRpb24gfSBmcm9tICcuL2FkZHJlc3Mtb3B0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWFkZHJlc3MtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJ3dyaXRlLWFkZHJlc3MtZmllbGQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd3cml0ZS1hZGRyZXNzLWZpZWxkLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBXcml0ZUFkZHJlc3NGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnd3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHdyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50OiBXcml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkcmVuKEZvY3VzRWxlbWVudERpcmVjdGl2ZSlcbiAgcHVibGljIGZvY3VzRWxlbWVudERpcmVjdGl2ZXM6IFF1ZXJ5TGlzdDxGb2N1c0VsZW1lbnREaXJlY3RpdmU+O1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVRVUlSRURfRVJST1JfTUVTU0FHRSA9ICdFbnRlciBhIFBvc3Rjb2RlJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTlZBTElEX0VSUk9SX01FU1NBR0UgPSAnRW50ZXIgYSB2YWxpZCBQb3N0Y29kZSc7XG5cbiAgcHVibGljIGFkZHJlc3Nlc1NlcnZpY2U6IEFkZHJlc3Nlc1NlcnZpY2U7XG5cbiAgcHVibGljIGFkZHJlc3NGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgcHVibGljIHBvc3Rjb2RlOiBGb3JtQ29udHJvbDtcbiAgcHVibGljIGFkZHJlc3NMaXN0OiBGb3JtQ29udHJvbDtcblxuICBwdWJsaWMgYWRkcmVzc09wdGlvbnM6IEFkZHJlc3NPcHRpb25bXTtcblxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBXcml0ZUFkZHJlc3NGaWVsZENvbXBvbmVudC5SRVFVSVJFRF9FUlJPUl9NRVNTQUdFO1xuXG4gIHB1YmxpYyBtaXNzaW5nUG9zdGNvZGUgPSBmYWxzZTtcbiAgcHVibGljIG5vQWRkcmVzc1NlbGVjdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoYWRkcmVzc2VzU2VydmljZTogQWRkcmVzc2VzU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBpc0NvbXBvdW5kUGlwZTogSXNDb21wb3VuZFBpcGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkcmVzc2VzU2VydmljZSA9IGFkZHJlc3Nlc1NlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQ29tcGxleFdpdGhIaWRkZW5GaWVsZHMoKSkge1xuICAgICAgdGhpcy5wb3N0Y29kZSA9IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRoaXMuYWRkcmVzc0Zvcm1Hcm91cC5hZGRDb250cm9sKCdwb3N0Y29kZScsIHRoaXMucG9zdGNvZGUpO1xuICAgICAgdGhpcy5hZGRyZXNzTGlzdCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gICAgICB0aGlzLmFkZHJlc3NGb3JtR3JvdXAuYWRkQ29udHJvbCgnYWRkcmVzcycsIHRoaXMuYWRkcmVzc0xpc3QpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkcmVzc2VzU2VydmljZS5nZXRNYW5kYXRvcnlFcnJvcigpLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMudXBkYXRlRXJyb3JzT25Db250aW51ZSh2YWx1ZSk7XG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQWRkcmVzcygpIHtcbiAgICB0aGlzLm5vQWRkcmVzc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLnBvc3Rjb2RlLnZhbHVlKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IFdyaXRlQWRkcmVzc0ZpZWxkQ29tcG9uZW50LlJFUVVJUkVEX0VSUk9SX01FU1NBR0U7XG4gICAgICB0aGlzLm1pc3NpbmdQb3N0Y29kZSA9IHRydWU7XG4gICAgfSBlbHNlIGlmICghdGhpcy5wb3N0Y29kZS52YWx1ZS50cmltKCkubWF0Y2goQWRkcmVzc1ZhbGlkYXRpb25Db25zdGFudHMuUkVHRVhfUE9TVENPREUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IFdyaXRlQWRkcmVzc0ZpZWxkQ29tcG9uZW50LklOVkFMSURfRVJST1JfTUVTU0FHRTtcbiAgICAgIHRoaXMubWlzc2luZ1Bvc3Rjb2RlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5taXNzaW5nUG9zdGNvZGUgPSBmYWxzZTtcbiAgICAgIGNvbnN0IHBvc3Rjb2RlID0gdGhpcy5wb3N0Y29kZS52YWx1ZTtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMuYWRkcmVzc09wdGlvbnMgPSBbXTtcbiAgICAgIHRoaXMuYWRkcmVzc2VzU2VydmljZS5nZXRBZGRyZXNzZXNGb3JQb3N0Y29kZShwb3N0Y29kZS5yZXBsYWNlKCcgJywgJycpLnRvVXBwZXJDYXNlKCkpLnN1YnNjcmliZShcbiAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICByZXN1bHQuZm9yRWFjaChcbiAgICAgICAgICAgIGFkZHJlc3MgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmFkZHJlc3NPcHRpb25zLnB1c2gobmV3IEFkZHJlc3NPcHRpb24oYWRkcmVzcywgbnVsbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5hZGRyZXNzT3B0aW9ucy51bnNoaWZ0KFxuICAgICAgICAgICAgbmV3IEFkZHJlc3NPcHRpb24odW5kZWZpbmVkLCB0aGlzLmRlZmF1bHRMYWJlbCh0aGlzLmFkZHJlc3NPcHRpb25zLmxlbmd0aCkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coYEFuIGVycm9yIG9jY3VycmVkIHJldHJpZXZpbmcgYWRkcmVzc2VzIGZvciBwb3N0Y29kZSAke3Bvc3Rjb2RlfS4gJHtlcnJvcn1gKTtcbiAgICAgICAgICB0aGlzLmFkZHJlc3NPcHRpb25zLnVuc2hpZnQoXG4gICAgICAgICAgICBuZXcgQWRkcmVzc09wdGlvbih1bmRlZmluZWQsIHRoaXMuZGVmYXVsdExhYmVsKHRoaXMuYWRkcmVzc09wdGlvbnMubGVuZ3RoKSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIHRoaXMuYWRkcmVzc0xpc3Quc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgIHRoaXMucmVmb2N1c0VsZW1lbnQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmb2N1c0VsZW1lbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9jdXNFbGVtZW50RGlyZWN0aXZlcyAmJiB0aGlzLmZvY3VzRWxlbWVudERpcmVjdGl2ZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mb2N1c0VsZW1lbnREaXJlY3RpdmVzLmZpcnN0LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJsYW5rQWRkcmVzcygpIHtcbiAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZSA9IG5ldyBBZGRyZXNzTW9kZWwoKTtcbiAgICB0aGlzLnNldEZvcm1WYWx1ZSgpO1xuICAgIHRoaXMubWlzc2luZ1Bvc3Rjb2RlID0gZmFsc2U7XG4gICAgdGhpcy5ub0FkZHJlc3NTZWxlY3RlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGlzQ29tcGxleFdpdGhIaWRkZW5GaWVsZHMoKSB7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmlzQ29tcGxleCgpICYmIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHNcbiAgICAgICYmIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMuc29tZShjZiA9PiBjZi5oaWRkZW4gPT09IHRydWUpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpIHtcbiAgICBpZiAodGhpcy5pc0NvbXBsZXhXaXRoSGlkZGVuRmllbGRzKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLndyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50IHx8ICF0aGlzLndyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50LmNvbXBsZXhHcm91cCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBhZGRyZXNzID0gdGhpcy53cml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudC5jb21wbGV4R3JvdXAudmFsdWU7XG4gICAgbGV0IGhhc0FkZHJlc3MgPSBmYWxzZTtcbiAgICBpZiAoYWRkcmVzcykge1xuICAgICAgT2JqZWN0LmtleXMoYWRkcmVzcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGlmIChhZGRyZXNzW2tleV0gIT09IG51bGwpIHtcbiAgICAgICAgICBoYXNBZGRyZXNzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBoYXNBZGRyZXNzO1xuICB9XG5cbiAgcHVibGljIGFkZHJlc3NTZWxlY3RlZCgpIHtcbiAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZSA9IHRoaXMuYWRkcmVzc0xpc3QudmFsdWU7XG4gICAgdGhpcy5zZXRGb3JtVmFsdWUoKTtcbiAgICB0aGlzLm5vQWRkcmVzc1NlbGVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgIGNvbnN0IGNoYW5nZSA9IGNoYW5nZXNbJ2Nhc2VGaWVsZCddO1xuICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkSWRQcmVmaXgoZWxlbWVudElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmlkUHJlZml4fV8ke2VsZW1lbnRJZH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWZhdWx0TGFiZWwobnVtYmVyT2ZBZGRyZXNzZXMpIHtcbiAgICByZXR1cm4gbnVtYmVyT2ZBZGRyZXNzZXMgPT09IDAgPyAnTm8gYWRkcmVzcyBmb3VuZCdcbiAgICAgIDogYCR7bnVtYmVyT2ZBZGRyZXNzZXN9JHtudW1iZXJPZkFkZHJlc3NlcyA9PT0gMSA/ICcgYWRkcmVzcyAnIDogJyBhZGRyZXNzZXMgJ31mb3VuZGA7XG4gIH1cblxuICBwcml2YXRlIHNldEZvcm1WYWx1ZSgpIHtcbiAgICBpZiAodGhpcy53cml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudC5jb21wbGV4R3JvdXApIHtcbiAgICAgIHRoaXMud3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQuY29tcGxleEdyb3VwLnNldFZhbHVlKFxuICAgICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVycm9yc09uQ29udGludWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm1pc3NpbmdQb3N0Y29kZSA9IHZhbHVlICYmICF0aGlzLnNob3VsZFNob3dEZXRhaWxGaWVsZHMoKSAmJiAhdGhpcy5hZGRyZXNzT3B0aW9ucztcbiAgICB0aGlzLm5vQWRkcmVzc1NlbGVjdGVkID0gdmFsdWUgJiYgIXRoaXMuc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpICYmICEhdGhpcy5hZGRyZXNzT3B0aW9ucztcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMubm9BZGRyZXNzU2VsZWN0ZWQgPyAnU2VsZWN0IGFuIGFkZHJlc3MnIDogdGhpcy5lcnJvck1lc3NhZ2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2lkXT1cImlkKClcIj5cbiAgPGRpdiAqbmdJZj1cIiFpc0NvbXBsZXhXaXRoSGlkZGVuRmllbGRzKClcIj5cbiAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyXCI+e3tjYXNlRmllbGQgfCBjY2RGaWVsZExhYmVsfX08L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgYm90dG9tLTMwIHBvc3Rjb2RlTG9va3VwXCIgW2lkXT1cImNyZWF0ZUVsZW1lbnRJZCgncG9zdGNvZGVMb29rdXAnKVwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IG1pc3NpbmdQb3N0Y29kZX1cIiAqbmdJZj1cIiFpc0V4cGFuZGVkXCI+XG4gICAgICA8bGFiZWwgW2Zvcl09XCJjcmVhdGVFbGVtZW50SWQoJ3Bvc3Rjb2RlSW5wdXQnKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydFbnRlciBhIFVLIHBvc3Rjb2RlJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwibWlzc2luZ1Bvc3Rjb2RlXCI+e3tlcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogbWlzc2luZ1Bvc3Rjb2RlfVwiXG4gICAgICBbaWRdPVwiY3JlYXRlRWxlbWVudElkKCdwb3N0Y29kZUlucHV0JylcIiBuYW1lPVwicG9zdGNvZGVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBwb3N0Y29kZWlucHV0IGlubGluZS1ibG9ja1wiIFtmb3JtQ29udHJvbF09XCJwb3N0Y29kZVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLTMwXCIgKGNsaWNrKT1cImZpbmRBZGRyZXNzKClcIj57eydGaW5kIGFkZHJlc3MnIHwgcnB4VHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nSWY9XCJhZGRyZXNzT3B0aW9uc1wiIGlkPVwic2VsZWN0QWRkcmVzc1wiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IG5vQWRkcmVzc1NlbGVjdGVkfVwiPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiY3JlYXRlRWxlbWVudElkKCdhZGRyZXNzTGlzdCcpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J1NlbGVjdCBhbiBhZGRyZXNzJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwibm9BZGRyZXNzU2VsZWN0ZWRcIj57e2Vycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBjY2QtZHJvcGRvd24gYWRkcmVzc0xpc3RcIiBbaWRdPVwiY3JlYXRlRWxlbWVudElkKCdhZGRyZXNzTGlzdCcpXCIgbmFtZT1cImFkZHJlc3NcIiBbZm9ybUNvbnRyb2xdPVwiYWRkcmVzc0xpc3RcIiAoY2hhbmdlKT1cImFkZHJlc3NTZWxlY3RlZCgpXCIgZm9jdXNFbGVtZW50PlxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBhZGRyZXNzT3B0aW9uIG9mIGFkZHJlc3NPcHRpb25zXCIgW25nVmFsdWVdPVwiYWRkcmVzc09wdGlvbi52YWx1ZVwiPlxuICAgICAgICAgIHt7YWRkcmVzc09wdGlvbi5kZXNjcmlwdGlvbiB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8YSBjbGFzcz1cIm1hbnVhbC1saW5rIGJvdHRvbS0zMFwiICpuZ0lmPVwiIXNob3VsZFNob3dEZXRhaWxGaWVsZHMoKVwiIChjbGljayk9XCJibGFua0FkZHJlc3MoKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBocmVmPVwiI1wiPlxuICAgICAge3tcIkkgY2FuJ3QgZW50ZXIgYSBVSyBwb3N0Y29kZVwiIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L2E+XG4gIDwvZGl2PlxuXG4gIDxjY2Qtd3JpdGUtY29tcGxleC10eXBlLWZpZWxkXG4gICAgW2hpZGRlbl09XCIhc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpXCJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW3JlbmRlckxhYmVsXT1cImZhbHNlXCJcbiAgICBbcGFyZW50XT1cInBhcmVudFwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgIFtpZ25vcmVNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgW2lkUHJlZml4XT1cImJ1aWxkSWRQcmVmaXgoJ2RldGFpbCcpXCJcbiAgICAjd3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQ+XG4gIDwvY2NkLXdyaXRlLWNvbXBsZXgtdHlwZS1maWVsZD5cbjwvZGl2PlxuIl19
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtYWRkcmVzcy1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9hZGRyZXNzL3dyaXRlLWFkZHJlc3MtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvYWRkcmVzcy93cml0ZS1hZGRyZXNzLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztJQ0RqRCxnQ0FBb0Q7SUFBQSxZQUErQjs7SUFBQSxpQkFBTzs7O0lBQXRDLGNB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QUVPLHNCQUFzQixDQUFDLEtBQWM7UUFDM0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDdkYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN2RixDQUFDO29IQXhKVSwwQkFBMEI7NkRBQTFCLDBCQUEwQjs7MkJBSXZCLHFCQUFxQjs7Ozs7O1lDcEJyQyw4QkFBb0M7WUFDbEMsMkVBQTBDO1lBOEIxQyxxREFTK0I7WUFDakMsaUJBQU07O1lBekNrQiw2QkFBVztZQUMzQixjQUFrQztZQUFsQyx1REFBa0M7WUErQnRDLGNBQW9DO1lBTXBDLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLHNEQUFvQyw0QkFDYixzQkFDRixzQkFDSiw0QkFDTSx5QkFDQyx5Q0FDWTs7O2lGRHRCM0IsMEJBQTBCO2NBTHRDLFNBQVM7MkJBQ0UseUJBQXlCOzhFQU01QiwwQkFBMEI7a0JBRGhDLFNBQVM7bUJBQUMsNEJBQTRCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBSW5ELHNCQUFzQjtrQkFENUIsWUFBWTttQkFBQyxxQkFBcUI7O2tGQUp4QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uQ2hhbmdlcywgT25Jbml0LCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWRkcmVzc1ZhbGlkYXRpb25Db25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2FkZHJlc3MtdmFsaWRhdGlvbi1jb25zdGFudHMnO1xuaW1wb3J0IHsgRm9jdXNFbGVtZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9mb2N1cy1lbGVtZW50JztcbmltcG9ydCB7IEFkZHJlc3NNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9hZGRyZXNzZXMvYWRkcmVzcy5tb2RlbCc7XG5pbXBvcnQgeyBBZGRyZXNzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWRkcmVzc2VzL2FkZHJlc3Nlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFdyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcGxleC93cml0ZS1jb21wbGV4LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJc0NvbXBvdW5kUGlwZSB9IGZyb20gJy4uL3V0aWxzL2lzLWNvbXBvdW5kLnBpcGUnO1xuaW1wb3J0IHsgQWRkcmVzc09wdGlvbiB9IGZyb20gJy4vYWRkcmVzcy1vcHRpb24ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtd3JpdGUtYWRkcmVzcy1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnd3JpdGUtYWRkcmVzcy1maWVsZC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3dyaXRlLWFkZHJlc3MtZmllbGQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlQWRkcmVzc0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCd3cml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgd3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQ6IFdyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGRyZW4oRm9jdXNFbGVtZW50RGlyZWN0aXZlKVxuICBwdWJsaWMgZm9jdXNFbGVtZW50RGlyZWN0aXZlczogUXVlcnlMaXN0PEZvY3VzRWxlbWVudERpcmVjdGl2ZT47XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRVFVSVJFRF9FUlJPUl9NRVNTQUdFID0gJ0VudGVyIGEgUG9zdGNvZGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElOVkFMSURfRVJST1JfTUVTU0FHRSA9ICdFbnRlciBhIHZhbGlkIFBvc3Rjb2RlJztcblxuICBwdWJsaWMgYWRkcmVzc2VzU2VydmljZTogQWRkcmVzc2VzU2VydmljZTtcblxuICBwdWJsaWMgYWRkcmVzc0Zvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBwdWJsaWMgcG9zdGNvZGU6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgYWRkcmVzc0xpc3Q6IEZvcm1Db250cm9sO1xuXG4gIHB1YmxpYyBhZGRyZXNzT3B0aW9uczogQWRkcmVzc09wdGlvbltdO1xuXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZyA9IFdyaXRlQWRkcmVzc0ZpZWxkQ29tcG9uZW50LlJFUVVJUkVEX0VSUk9SX01FU1NBR0U7XG5cbiAgcHVibGljIG1pc3NpbmdQb3N0Y29kZSA9IGZhbHNlO1xuICBwdWJsaWMgbm9BZGRyZXNzU2VsZWN0ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihhZGRyZXNzZXNTZXJ2aWNlOiBBZGRyZXNzZXNTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGlzQ29tcG91bmRQaXBlOiBJc0NvbXBvdW5kUGlwZSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRyZXNzZXNTZXJ2aWNlID0gYWRkcmVzc2VzU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNDb21wbGV4V2l0aEhpZGRlbkZpZWxkcygpKSB7XG4gICAgICB0aGlzLnBvc3Rjb2RlID0gbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgdGhpcy5hZGRyZXNzRm9ybUdyb3VwLmFkZENvbnRyb2woJ3Bvc3Rjb2RlJywgdGhpcy5wb3N0Y29kZSk7XG4gICAgICB0aGlzLmFkZHJlc3NMaXN0ID0gbmV3IEZvcm1Db250cm9sKCcnKTtcbiAgICAgIHRoaXMuYWRkcmVzc0Zvcm1Hcm91cC5hZGRDb250cm9sKCdhZGRyZXNzJywgdGhpcy5hZGRyZXNzTGlzdCk7XG4gICAgfVxuXG4gICAgdGhpcy5hZGRyZXNzZXNTZXJ2aWNlLmdldE1hbmRhdG9yeUVycm9yKCkuc3Vic2NyaWJlKCh2YWx1ZTogYm9vbGVhbikgPT4ge1xuICAgICAgdGhpcy51cGRhdGVFcnJvcnNPbkNvbnRpbnVlKHZhbHVlKTtcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGZpbmRBZGRyZXNzKCkge1xuICAgIHRoaXMubm9BZGRyZXNzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICBpZiAoIXRoaXMucG9zdGNvZGUudmFsdWUpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gV3JpdGVBZGRyZXNzRmllbGRDb21wb25lbnQuUkVRVUlSRURfRVJST1JfTUVTU0FHRTtcbiAgICAgIHRoaXMubWlzc2luZ1Bvc3Rjb2RlID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnBvc3Rjb2RlLnZhbHVlLnRyaW0oKS5tYXRjaChBZGRyZXNzVmFsaWRhdGlvbkNvbnN0YW50cy5SRUdFWF9QT1NUQ09ERSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gV3JpdGVBZGRyZXNzRmllbGRDb21wb25lbnQuSU5WQUxJRF9FUlJPUl9NRVNTQUdFO1xuICAgICAgdGhpcy5taXNzaW5nUG9zdGNvZGUgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1pc3NpbmdQb3N0Y29kZSA9IGZhbHNlO1xuICAgICAgY29uc3QgcG9zdGNvZGUgPSB0aGlzLnBvc3Rjb2RlLnZhbHVlO1xuICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5hZGRyZXNzT3B0aW9ucyA9IFtdO1xuICAgICAgdGhpcy5hZGRyZXNzZXNTZXJ2aWNlLmdldEFkZHJlc3Nlc0ZvclBvc3Rjb2RlKHBvc3Rjb2RlLnJlcGxhY2UoJyAnLCAnJykudG9VcHBlckNhc2UoKSkuc3Vic2NyaWJlKFxuICAgICAgICByZXN1bHQgPT4ge1xuICAgICAgICAgIHJlc3VsdC5mb3JFYWNoKFxuICAgICAgICAgICAgYWRkcmVzcyA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkcmVzc09wdGlvbnMucHVzaChuZXcgQWRkcmVzc09wdGlvbihhZGRyZXNzLCBudWxsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmFkZHJlc3NPcHRpb25zLnVuc2hpZnQoXG4gICAgICAgICAgICBuZXcgQWRkcmVzc09wdGlvbih1bmRlZmluZWQsIHRoaXMuZGVmYXVsdExhYmVsKHRoaXMuYWRkcmVzc09wdGlvbnMubGVuZ3RoKSlcbiAgICAgICAgICApO1xuICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgQW4gZXJyb3Igb2NjdXJyZWQgcmV0cmlldmluZyBhZGRyZXNzZXMgZm9yIHBvc3Rjb2RlICR7cG9zdGNvZGV9LiAke2Vycm9yfWApO1xuICAgICAgICAgIHRoaXMuYWRkcmVzc09wdGlvbnMudW5zaGlmdChcbiAgICAgICAgICAgIG5ldyBBZGRyZXNzT3B0aW9uKHVuZGVmaW5lZCwgdGhpcy5kZWZhdWx0TGFiZWwodGhpcy5hZGRyZXNzT3B0aW9ucy5sZW5ndGgpKVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRyZXNzTGlzdC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5yZWZvY3VzRWxlbWVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZvY3VzRWxlbWVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb2N1c0VsZW1lbnREaXJlY3RpdmVzICYmIHRoaXMuZm9jdXNFbGVtZW50RGlyZWN0aXZlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZvY3VzRWxlbWVudERpcmVjdGl2ZXMuZmlyc3QuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYmxhbmtBZGRyZXNzKCkge1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gbmV3IEFkZHJlc3NNb2RlbCgpO1xuICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCk7XG4gICAgdGhpcy5taXNzaW5nUG9zdGNvZGUgPSBmYWxzZTtcbiAgICB0aGlzLm5vQWRkcmVzc1NlbGVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaXNDb21wbGV4V2l0aEhpZGRlbkZpZWxkcygpIHtcbiAgICBpZiAodGhpcy5jYXNlRmllbGQuaXNDb21wbGV4KCkgJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkc1xuICAgICAgJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5zb21lKGNmID0+IGNmLmhpZGRlbiA9PT0gdHJ1ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG91bGRTaG93RGV0YWlsRmllbGRzKCkge1xuICAgIGlmICh0aGlzLmlzQ29tcGxleFdpdGhIaWRkZW5GaWVsZHMoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMud3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQgfHwgIXRoaXMud3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQuY29tcGxleEdyb3VwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGFkZHJlc3MgPSB0aGlzLndyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50LmNvbXBsZXhHcm91cC52YWx1ZTtcbiAgICBsZXQgaGFzQWRkcmVzcyA9IGZhbHNlO1xuICAgIGlmIChhZGRyZXNzKSB7XG4gICAgICBPYmplY3Qua2V5cyhhZGRyZXNzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKGFkZHJlc3Nba2V5XSAhPT0gbnVsbCkge1xuICAgICAgICAgIGhhc0FkZHJlc3MgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0FkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgYWRkcmVzc1NlbGVjdGVkKCkge1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gdGhpcy5hZGRyZXNzTGlzdC52YWx1ZTtcbiAgICB0aGlzLnNldEZvcm1WYWx1ZSgpO1xuICAgIHRoaXMubm9BZGRyZXNzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgY29uc3QgY2hhbmdlID0gY2hhbmdlc1snY2FzZUZpZWxkJ107XG4gICAgaWYgKGNoYW5nZSkge1xuICAgICAgdGhpcy5zZXRGb3JtVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJZFByZWZpeChlbGVtZW50SWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaWRQcmVmaXh9XyR7ZWxlbWVudElkfWA7XG4gIH1cblxuICBwcml2YXRlIGRlZmF1bHRMYWJlbChudW1iZXJPZkFkZHJlc3Nlcykge1xuICAgIHJldHVybiBudW1iZXJPZkFkZHJlc3NlcyA9PT0gMCA/ICdObyBhZGRyZXNzIGZvdW5kJ1xuICAgICAgOiBgJHtudW1iZXJPZkFkZHJlc3Nlc30ke251bWJlck9mQWRkcmVzc2VzID09PSAxID8gJyBhZGRyZXNzICcgOiAnIGFkZHJlc3NlcyAnfWZvdW5kYDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Rm9ybVZhbHVlKCkge1xuICAgIGlmICh0aGlzLndyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50LmNvbXBsZXhHcm91cCkge1xuICAgICAgdGhpcy53cml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudC5jb21wbGV4R3JvdXAuc2V0VmFsdWUoXG4gICAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRXJyb3JzT25Db250aW51ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMubWlzc2luZ1Bvc3Rjb2RlID0gdmFsdWUgJiYgIXRoaXMuc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpICYmICF0aGlzLmFkZHJlc3NPcHRpb25zO1xuICAgIHRoaXMubm9BZGRyZXNzU2VsZWN0ZWQgPSB2YWx1ZSAmJiAhdGhpcy5zaG91bGRTaG93RGV0YWlsRmllbGRzKCkgJiYgISF0aGlzLmFkZHJlc3NPcHRpb25zO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5ub0FkZHJlc3NTZWxlY3RlZCA/ICdTZWxlY3QgYW4gYWRkcmVzcycgOiB0aGlzLmVycm9yTWVzc2FnZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaWRdPVwiaWQoKVwiPlxuICA8ZGl2ICpuZ0lmPVwiIWlzQ29tcGxleFdpdGhIaWRkZW5GaWVsZHMoKVwiPlxuICAgIDxoMiBjbGFzcz1cImhlYWRpbmctaDJcIj57e2Nhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWx9fTwvaDI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBib3R0b20tMzAgcG9zdGNvZGVMb29rdXBcIiBbaWRdPVwiY3JlYXRlRWxlbWVudElkKCdwb3N0Y29kZUxvb2t1cCcpXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogbWlzc2luZ1Bvc3Rjb2RlfVwiICpuZ0lmPVwiIWlzRXhwYW5kZWRcIj5cbiAgICAgIDxsYWJlbCBbZm9yXT1cImNyZWF0ZUVsZW1lbnRJZCgncG9zdGNvZGVJbnB1dCcpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0VudGVyIGEgVUsgcG9zdGNvZGUnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJtaXNzaW5nUG9zdGNvZGVcIj57e2Vycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBtaXNzaW5nUG9zdGNvZGV9XCJcbiAgICAgIFtpZF09XCJjcmVhdGVFbGVtZW50SWQoJ3Bvc3Rjb2RlSW5wdXQnKVwiIG5hbWU9XCJwb3N0Y29kZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHBvc3Rjb2RlaW5wdXQgaW5saW5lLWJsb2NrXCIgW2Zvcm1Db250cm9sXT1cInBvc3Rjb2RlXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tMzBcIiAoY2xpY2spPVwiZmluZEFkZHJlc3MoKVwiPnt7J0ZpbmQgYWRkcmVzcycgfCBycHhUcmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiAqbmdJZj1cImFkZHJlc3NPcHRpb25zXCIgaWQ9XCJzZWxlY3RBZGRyZXNzXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogbm9BZGRyZXNzU2VsZWN0ZWR9XCI+XG4gICAgICA8bGFiZWwgW2Zvcl09XCJjcmVhdGVFbGVtZW50SWQoJ2FkZHJlc3NMaXN0JylcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3snU2VsZWN0IGFuIGFkZHJlc3MnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJub0FkZHJlc3NTZWxlY3RlZFwiPnt7ZXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1jb250cm9sIGNjZC1kcm9wZG93biBhZGRyZXNzTGlzdFwiIFtpZF09XCJjcmVhdGVFbGVtZW50SWQoJ2FkZHJlc3NMaXN0JylcIiBuYW1lPVwiYWRkcmVzc1wiIFtmb3JtQ29udHJvbF09XCJhZGRyZXNzTGlzdFwiIChjaGFuZ2UpPVwiYWRkcmVzc1NlbGVjdGVkKClcIiBmb2N1c0VsZW1lbnQ+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGFkZHJlc3NPcHRpb24gb2YgYWRkcmVzc09wdGlvbnNcIiBbbmdWYWx1ZV09XCJhZGRyZXNzT3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAge3thZGRyZXNzT3B0aW9uLmRlc2NyaXB0aW9uIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cblxuICAgIDxhIGNsYXNzPVwibWFudWFsLWxpbmsgYm90dG9tLTMwXCIgKm5nSWY9XCIhc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpXCIgKGNsaWNrKT1cImJsYW5rQWRkcmVzcygpXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiPlxuICAgICAge3tcIkkgY2FuJ3QgZW50ZXIgYSBVSyBwb3N0Y29kZVwiIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L2E+XG4gIDwvZGl2PlxuXG4gIDxjY2Qtd3JpdGUtY29tcGxleC10eXBlLWZpZWxkXG4gICAgW2hpZGRlbl09XCIhc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpXCJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW3JlbmRlckxhYmVsXT1cImZhbHNlXCJcbiAgICBbcGFyZW50XT1cInBhcmVudFwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgIFtpZ25vcmVNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgW2lkUHJlZml4XT1cImJ1aWxkSWRQcmVmaXgoJ2RldGFpbCcpXCJcbiAgICAjd3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQ+XG4gIDwvY2NkLXdyaXRlLWNvbXBsZXgtdHlwZS1maWVsZD5cbjwvZGl2PlxuIl19