@ieeesa-npm/presentation 0.30.7 → 0.31.1

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 (91) hide show
  1. package/esm2022/lib/assets/constants.json +2 -1
  2. package/esm2022/lib/components/accordion/accordion.component.mjs +2 -2
  3. package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +1 -1
  4. package/esm2022/lib/components/card/card.component.mjs +3 -3
  5. package/esm2022/lib/components/checkbox/checkbox.component.mjs +1 -1
  6. package/esm2022/lib/components/chips/chips.component.mjs +2 -2
  7. package/esm2022/lib/components/data-table/data-table.component.mjs +4 -3
  8. package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +2 -2
  9. package/esm2022/lib/components/export-format-popover/export-format-popover.component.mjs +206 -0
  10. package/esm2022/lib/components/export-success-dialog/export-success-dialog.component.mjs +39 -0
  11. package/esm2022/lib/components/file-download/file-download.component.mjs +21 -12
  12. package/esm2022/lib/components/file-upload/file-upload.component.mjs +2 -2
  13. package/esm2022/lib/components/filter/filter.component.mjs +2 -2
  14. package/esm2022/lib/components/form-support-text/form-support-text.component.mjs +3 -2
  15. package/esm2022/lib/components/header/header.component.mjs +15 -10
  16. package/esm2022/lib/components/icon-button/icon-button.component.mjs +1 -1
  17. package/esm2022/lib/components/list/list.component.mjs +3 -2
  18. package/esm2022/lib/components/menu/menu.component.mjs +1 -1
  19. package/esm2022/lib/components/modal/modal.component.mjs +8 -6
  20. package/esm2022/lib/components/modal-confirmation/modal-confirmation.component.mjs +2 -2
  21. package/esm2022/lib/components/modal-info/modal-info.component.mjs +41 -0
  22. package/esm2022/lib/components/multi-select-autocomplete/multi-select-autocomplete.component.mjs +1 -1
  23. package/esm2022/lib/components/notification/notification.component.mjs +3 -2
  24. package/esm2022/lib/components/policy-confirmation-dialog/policy-confirmation-dialog.component.mjs +58 -0
  25. package/esm2022/lib/components/select/select.component.mjs +1 -1
  26. package/esm2022/lib/components/tabs/tabs.component.mjs +1 -1
  27. package/esm2022/lib/components/tile/tile.component.mjs +2 -2
  28. package/esm2022/lib/directives/dynamic-form-field/dynamic-form-field.directive.mjs +1 -1
  29. package/esm2022/lib/directives/set-background/set-background.directive.mjs +4 -3
  30. package/esm2022/lib/models/card-button.model.mjs +1 -1
  31. package/esm2022/lib/models/export-format-popover.model.mjs +10 -0
  32. package/esm2022/lib/models/export-success-dialog.model.mjs +2 -0
  33. package/esm2022/lib/models/field-config.model.mjs +1 -1
  34. package/esm2022/lib/models/filters-options.model.mjs +1 -1
  35. package/esm2022/lib/models/list-item.model.mjs +1 -1
  36. package/esm2022/lib/models/policy-confirmation-dialog.model.mjs +2 -0
  37. package/esm2022/lib/pipes/safe.pipe.mjs +44 -0
  38. package/esm2022/lib/services/break-point-observer.service.mjs +36 -0
  39. package/esm2022/lib/services/file-upload.service.mjs +2 -2
  40. package/esm2022/public-api.mjs +12 -6
  41. package/fesm2022/ieeesa-npm-presentation.mjs +489 -79
  42. package/fesm2022/ieeesa-npm-presentation.mjs.map +1 -1
  43. package/lib/components/accordion/accordion.component.d.ts +1 -1
  44. package/lib/components/autocomplete/autocomplete.component.d.ts +1 -1
  45. package/lib/components/card/card.component.d.ts +2 -2
  46. package/lib/components/checkbox/checkbox.component.d.ts +1 -2
  47. package/lib/components/chips/chips.component.d.ts +4 -9
  48. package/lib/components/data-table/data-table.component.d.ts +2 -3
  49. package/lib/components/dynamic-form/dynamic-form.component.d.ts +1 -3
  50. package/lib/components/export-format-popover/export-format-popover.component.d.ts +91 -0
  51. package/lib/components/export-success-dialog/export-success-dialog.component.d.ts +24 -0
  52. package/lib/components/file-download/file-download.component.d.ts +5 -4
  53. package/lib/components/file-upload/file-upload.component.d.ts +11 -12
  54. package/lib/components/filter/filter.component.d.ts +2 -4
  55. package/lib/components/header/header.component.d.ts +6 -6
  56. package/lib/components/icon-button/icon-button.component.d.ts +1 -1
  57. package/lib/components/list/list.component.d.ts +1 -1
  58. package/lib/components/menu/menu.component.d.ts +1 -1
  59. package/lib/components/modal/modal.component.d.ts +1 -1
  60. package/lib/components/modal-confirmation/modal-confirmation.component.d.ts +1 -2
  61. package/lib/components/modal-info/modal-info.component.d.ts +23 -0
  62. package/lib/components/multi-select-autocomplete/multi-select-autocomplete.component.d.ts +1 -1
  63. package/lib/components/policy-confirmation-dialog/policy-confirmation-dialog.component.d.ts +36 -0
  64. package/lib/components/select/select.component.d.ts +1 -1
  65. package/lib/components/tabs/tabs.component.d.ts +1 -2
  66. package/lib/components/tile/tile.component.d.ts +1 -1
  67. package/lib/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +2 -2
  68. package/lib/directives/set-background/set-background.directive.d.ts +1 -1
  69. package/lib/models/card-button.model.d.ts +1 -1
  70. package/lib/models/export-format-popover.model.d.ts +15 -0
  71. package/lib/models/export-success-dialog.model.d.ts +8 -0
  72. package/lib/models/field-config.model.d.ts +1 -3
  73. package/lib/models/filters-options.model.d.ts +1 -1
  74. package/lib/models/list-item.model.d.ts +1 -1
  75. package/lib/models/policy-confirmation-dialog.model.d.ts +9 -0
  76. package/lib/pipes/safe.pipe.d.ts +16 -0
  77. package/lib/services/break-point-observer.service.d.ts +21 -0
  78. package/lib/services/file-upload.service.d.ts +1 -0
  79. package/package.json +1 -1
  80. package/public-api.d.ts +10 -5
  81. package/src/lib/assets/constants.json +2 -1
  82. package/esm2022/lib/models/align-type.model.mjs +0 -11
  83. package/esm2022/lib/models/checkbox-option.model.mjs +0 -2
  84. package/esm2022/lib/models/confirmation-modal-data.model.mjs +0 -2
  85. package/esm2022/lib/models/icon-button.model.mjs +0 -2
  86. package/esm2022/lib/models/select-option.model.mjs +0 -2
  87. package/lib/models/align-type.model.d.ts +0 -8
  88. package/lib/models/checkbox-option.model.d.ts +0 -8
  89. package/lib/models/confirmation-modal-data.model.d.ts +0 -11
  90. package/lib/models/icon-button.model.d.ts +0 -8
  91. package/lib/models/select-option.model.d.ts +0 -5
@@ -0,0 +1,39 @@
1
+ import { Component, Inject, ViewEncapsulation } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MAT_DIALOG_DATA, MatDialogModule, } from '@angular/material/dialog';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/material/dialog";
6
+ /**
7
+ * ExportSuccessDialogComponent displays a centered success message after
8
+ * a file export completes. Shows the filename in bold and a single "Close" button.
9
+ *
10
+ * Opens via `MatDialog.open(ExportSuccessDialogComponent, { data: ExportSuccessDialogData })`.
11
+ *
12
+ * @export
13
+ * @class ExportSuccessDialogComponent
14
+ */
15
+ export class ExportSuccessDialogComponent {
16
+ constructor(data,
17
+ // eslint-disable-next-line no-unused-vars
18
+ dialogRef) {
19
+ this.data = data;
20
+ this.dialogRef = dialogRef;
21
+ }
22
+ /**
23
+ * Handles the Close button click — closes the dialog.
24
+ * @memberof ExportSuccessDialogComponent
25
+ */
26
+ onClose() {
27
+ this.dialogRef.close();
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExportSuccessDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ExportSuccessDialogComponent, isStandalone: true, selector: "ieeesa-export-success-dialog", ngImport: i0, template: "<div class=\"ieeesa-export-success-dialog\">\r\n <div class=\"ieeesa-export-success-dialog__content\">\r\n <span class=\"ieeesa-export-success-dialog__message\">{{ data.message }}</span>\r\n <span class=\"ieeesa-export-success-dialog__filename\">{{ data.filename }}</span>\r\n </div>\r\n <div class=\"ieeesa-export-success-dialog__actions\">\r\n <button\r\n class=\"ieeesa-export-success-dialog__btn-close\"\r\n [attr.aria-label]=\"data.closeLabel\"\r\n (click)=\"onClose()\"\r\n >\r\n {{ data.closeLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-export-success-dialog{display:flex;width:467px;height:210px;flex-direction:column;align-items:flex-end;padding:34.55px;box-sizing:border-box}.ieeesa-export-success-dialog__content{display:flex;flex-direction:column;align-items:center;align-self:stretch;text-align:center;flex:1}.ieeesa-export-success-dialog__message{font-family:Calibri,sans-serif;font-size:20.154px;font-style:normal;font-weight:400;line-height:25.912px;color:#2c2c2c}.ieeesa-export-success-dialog__filename{font-family:Calibri,sans-serif;font-size:20.154px;font-style:normal;font-weight:700;line-height:25.912px;color:#2c2c2c}.ieeesa-export-success-dialog__actions{display:flex;justify-content:center;align-items:center;align-self:stretch}.ieeesa-export-success-dialog__btn-close{display:flex;width:115.165px;height:54.703px;flex-direction:column;justify-content:center;align-items:center;gap:11.516px;border-radius:4.319px;border:2px solid #00629b;background:#fff;font-family:Calibri,sans-serif;font-size:23.033px;font-style:normal;font-weight:700;line-height:28.791px;color:#00629b;text-align:center;cursor:pointer}.ieeesa-export-success-dialog__btn-close:hover{background:#f0f7fc}.ieeesa-export-success-dialog-panel .mat-mdc-dialog-container .mdc-dialog__surface{border-radius:5.758px!important;box-shadow:0 2.879px 5.758px #00000040!important}.ieeesa-export-success-dialog-panel .mat-mdc-dialog-container .mdc-dialog__content{padding:0!important;max-height:unset!important;overflow:visible!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDialogModule }], encapsulation: i0.ViewEncapsulation.None }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ExportSuccessDialogComponent, decorators: [{
33
+ type: Component,
34
+ args: [{ selector: 'ieeesa-export-success-dialog', standalone: true, imports: [CommonModule, MatDialogModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-export-success-dialog\">\r\n <div class=\"ieeesa-export-success-dialog__content\">\r\n <span class=\"ieeesa-export-success-dialog__message\">{{ data.message }}</span>\r\n <span class=\"ieeesa-export-success-dialog__filename\">{{ data.filename }}</span>\r\n </div>\r\n <div class=\"ieeesa-export-success-dialog__actions\">\r\n <button\r\n class=\"ieeesa-export-success-dialog__btn-close\"\r\n [attr.aria-label]=\"data.closeLabel\"\r\n (click)=\"onClose()\"\r\n >\r\n {{ data.closeLabel }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-export-success-dialog{display:flex;width:467px;height:210px;flex-direction:column;align-items:flex-end;padding:34.55px;box-sizing:border-box}.ieeesa-export-success-dialog__content{display:flex;flex-direction:column;align-items:center;align-self:stretch;text-align:center;flex:1}.ieeesa-export-success-dialog__message{font-family:Calibri,sans-serif;font-size:20.154px;font-style:normal;font-weight:400;line-height:25.912px;color:#2c2c2c}.ieeesa-export-success-dialog__filename{font-family:Calibri,sans-serif;font-size:20.154px;font-style:normal;font-weight:700;line-height:25.912px;color:#2c2c2c}.ieeesa-export-success-dialog__actions{display:flex;justify-content:center;align-items:center;align-self:stretch}.ieeesa-export-success-dialog__btn-close{display:flex;width:115.165px;height:54.703px;flex-direction:column;justify-content:center;align-items:center;gap:11.516px;border-radius:4.319px;border:2px solid #00629b;background:#fff;font-family:Calibri,sans-serif;font-size:23.033px;font-style:normal;font-weight:700;line-height:28.791px;color:#00629b;text-align:center;cursor:pointer}.ieeesa-export-success-dialog__btn-close:hover{background:#f0f7fc}.ieeesa-export-success-dialog-panel .mat-mdc-dialog-container .mdc-dialog__surface{border-radius:5.758px!important;box-shadow:0 2.879px 5.758px #00000040!important}.ieeesa-export-success-dialog-panel .mat-mdc-dialog-container .mdc-dialog__content{padding:0!important;max-height:unset!important;overflow:visible!important}\n"] }]
35
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
36
+ type: Inject,
37
+ args: [MAT_DIALOG_DATA]
38
+ }] }, { type: i1.MatDialogRef }]; } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXN1Y2Nlc3MtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXNlbnRhdGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0LXN1Y2Nlc3MtZGlhbG9nL2V4cG9ydC1zdWNjZXNzLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydC1zdWNjZXNzLWRpYWxvZy9leHBvcnQtc3VjY2Vzcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxlQUFlLEVBRWYsZUFBZSxHQUNoQixNQUFNLDBCQUEwQixDQUFDOzs7QUFHbEM7Ozs7Ozs7O0dBUUc7QUFTSCxNQUFNLE9BQU8sNEJBQTRCO0lBQ3ZDLFlBR1MsSUFBNkI7SUFDcEMsMENBQTBDO0lBQ2xDLFNBQXFEO1FBRnRELFNBQUksR0FBSixJQUFJLENBQXlCO1FBRTVCLGNBQVMsR0FBVCxTQUFTLENBQTRDO0lBQzVELENBQUM7SUFFSjs7O09BR0c7SUFDSCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOytHQWZVLDRCQUE0QixrQkFFN0IsZUFBZTttR0FGZCw0QkFBNEIsd0ZDMUJ6Qywya0JBZUEsdXZVRE1ZLFlBQVksOEJBQUUsZUFBZTs7NEZBSzVCLDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDRSw4QkFBOEIsY0FDNUIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxpQkFHekIsaUJBQWlCLENBQUMsSUFBSTs7MEJBSWxDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIE1BVF9ESUFMT0dfREFUQSxcclxuICBNYXREaWFsb2dSZWYsXHJcbiAgTWF0RGlhbG9nTW9kdWxlLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEV4cG9ydFN1Y2Nlc3NEaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2V4cG9ydC1zdWNjZXNzLWRpYWxvZy5tb2RlbCc7XHJcblxyXG4vKipcclxuICogRXhwb3J0U3VjY2Vzc0RpYWxvZ0NvbXBvbmVudCBkaXNwbGF5cyBhIGNlbnRlcmVkIHN1Y2Nlc3MgbWVzc2FnZSBhZnRlclxyXG4gKiBhIGZpbGUgZXhwb3J0IGNvbXBsZXRlcy4gU2hvd3MgdGhlIGZpbGVuYW1lIGluIGJvbGQgYW5kIGEgc2luZ2xlIFwiQ2xvc2VcIiBidXR0b24uXHJcbiAqXHJcbiAqIE9wZW5zIHZpYSBgTWF0RGlhbG9nLm9wZW4oRXhwb3J0U3VjY2Vzc0RpYWxvZ0NvbXBvbmVudCwgeyBkYXRhOiBFeHBvcnRTdWNjZXNzRGlhbG9nRGF0YSB9KWAuXHJcbiAqXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEV4cG9ydFN1Y2Nlc3NEaWFsb2dDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWV4cG9ydC1zdWNjZXNzLWRpYWxvZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9leHBvcnQtc3VjY2Vzcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2V4cG9ydC1zdWNjZXNzLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHBvcnRTdWNjZXNzRGlhbG9nQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgZGF0YTogRXhwb3J0U3VjY2Vzc0RpYWxvZ0RhdGEsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RXhwb3J0U3VjY2Vzc0RpYWxvZ0NvbXBvbmVudD5cclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlIENsb3NlIGJ1dHRvbiBjbGljayDigJQgY2xvc2VzIHRoZSBkaWFsb2cuXHJcbiAgICogQG1lbWJlcm9mIEV4cG9ydFN1Y2Nlc3NEaWFsb2dDb21wb25lbnRcclxuICAgKi9cclxuICBvbkNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1leHBvcnQtc3VjY2Vzcy1kaWFsb2dcIj5cclxuICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWV4cG9ydC1zdWNjZXNzLWRpYWxvZ19fY29udGVudFwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtZXhwb3J0LXN1Y2Nlc3MtZGlhbG9nX19tZXNzYWdlXCI+e3sgZGF0YS5tZXNzYWdlIH19PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtZXhwb3J0LXN1Y2Nlc3MtZGlhbG9nX19maWxlbmFtZVwiPnt7IGRhdGEuZmlsZW5hbWUgfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImllZWVzYS1leHBvcnQtc3VjY2Vzcy1kaWFsb2dfX2FjdGlvbnNcIj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJpZWVlc2EtZXhwb3J0LXN1Y2Nlc3MtZGlhbG9nX19idG4tY2xvc2VcIlxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImRhdGEuY2xvc2VMYWJlbFwiXHJcbiAgICAgIChjbGljayk9XCJvbkNsb3NlKClcIlxyXG4gICAgPlxyXG4gICAgICB7eyBkYXRhLmNsb3NlTGFiZWwgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -6,11 +6,11 @@ import * as constants from '../../assets/constants.json';
6
6
  import { IconButtonComponent } from '../icon-button/icon-button.component';
7
7
  import { Subject, takeUntil } from 'rxjs';
8
8
  import { saveAs } from 'file-saver';
9
- import { AlignType } from '../../models/align-type.model';
9
+ import { AlertType, AlignType } from '@ieeesa-npm/models';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "../../services/form-utility.service";
12
- import * as i2 from "@ieeesa-npm/shared";
13
- import * as i3 from "../../services/file-upload.service";
12
+ import * as i2 from "../../services/file-upload.service";
13
+ import * as i3 from "@ieeesa-npm/utility";
14
14
  import * as i4 from "@angular/common";
15
15
  import * as i5 from "@angular/material/list";
16
16
  export class FileDownloadComponent {
@@ -18,13 +18,12 @@ export class FileDownloadComponent {
18
18
  // eslint-disable-next-line no-unused-vars
19
19
  formUtilityService,
20
20
  // eslint-disable-next-line no-unused-vars
21
- sharedService,
21
+ fileUploadService,
22
22
  // eslint-disable-next-line no-unused-vars
23
- fileUploadService // eslint-disable-next-line no-empty-function
24
- ) {
23
+ alertService) {
25
24
  this.formUtilityService = formUtilityService;
26
- this.sharedService = sharedService;
27
25
  this.fileUploadService = fileUploadService;
26
+ this.alertService = alertService;
28
27
  this.constants = constants;
29
28
  this.destroy$ = new Subject();
30
29
  this.alignType = AlignType;
@@ -78,7 +77,12 @@ export class FileDownloadComponent {
78
77
  this.downloadFileFromS3(this.preSignedUrl);
79
78
  },
80
79
  error: (error) => {
81
- this.sharedService.handleErrors(error, this.constants?.fileDownload?.message.errors);
80
+ this.alertService?.showMessage({
81
+ status: 'custom',
82
+ message: error?.message || this.constants?.fileDownload?.message?.errors?.['ER1002'],
83
+ alertType: AlertType.ERROR,
84
+ isCloseNeeded: true,
85
+ });
82
86
  },
83
87
  });
84
88
  }
@@ -113,7 +117,12 @@ export class FileDownloadComponent {
113
117
  },
114
118
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
115
119
  error: (error) => {
116
- this.sharedService.handleErrors(error, this.constants?.fileDownload?.message.errors);
120
+ this.alertService?.showMessage({
121
+ status: 'custom',
122
+ message: error?.message || this.constants?.fileDownload?.message?.errors?.['ER1002'],
123
+ alertType: AlertType.ERROR,
124
+ isCloseNeeded: true,
125
+ });
117
126
  },
118
127
  });
119
128
  }
@@ -143,13 +152,13 @@ export class FileDownloadComponent {
143
152
  downloadFileFromS3(fileDownloadPresignedUrl) {
144
153
  saveAs(fileDownloadPresignedUrl);
145
154
  }
146
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDownloadComponent, deps: [{ token: i1.FormUtilityService }, { token: i2.SharedService }, { token: i3.FileUploadService }], target: i0.ɵɵFactoryTarget.Component }); }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDownloadComponent, deps: [{ token: i1.FormUtilityService }, { token: i2.FileUploadService }, { token: i3.AlertsService }], target: i0.ɵɵFactoryTarget.Component }); }
147
156
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FileDownloadComponent, isStandalone: true, selector: "ieeesa-file-download", inputs: { downloadFiles: "downloadFiles", fileDownloadAndDeleteConfig: "fileDownloadAndDeleteConfig", isPublicAPI: "isPublicAPI", domainUrl: "domainUrl", apiBaseUrl: "apiBaseUrl" }, outputs: { downloadSelectedFile: "downloadSelectedFile", deleteSelectedFile: "deleteSelectedFile" }, ngImport: i0, template: "<div class=\"ieeesa-file-download\">\r\n <mat-list\r\n [ngClass]=\"\r\n fileDownloadAndDeleteConfig?.alignType === alignType.VERTICAL\r\n ? ''\r\n : 'ieeesa-file-download__align-horizontal'\r\n \"\r\n >\r\n <ng-container\r\n *ngFor=\"let item of downloadFiles; let index = index; trackBy: trackByFn\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"\r\n fileDownloadAndDeleteConfig?.alignType === alignType.VERTICAL\r\n ? ''\r\n : 'ieeesa-list-file-by-horizontal'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n type=\"button\"\r\n [disabled]=\"!fileDownloadAndDeleteConfig?.isDownloadNeeded\"\r\n (click)=\"onDownloadFile(item)\"\r\n class=\"ieeesa-btn-label-lg-bold-16 ieeesa-file-download__file-download-button\"\r\n >\r\n {{ item.fileName }}\r\n </button>\r\n <ieeesa-icon-button\r\n *ngIf=\"fileDownloadAndDeleteConfig?.isDeleteNeeded\"\r\n class=\"ieeesa-file-download--file-delete-button\"\r\n [iconButton]=\"fileDeleteBtn\"\r\n [isLabelNeeded]=\"false\"\r\n (iconButtonClick)=\"onDeleteFile(item, index)\"\r\n >\r\n </ieeesa-icon-button>\r\n </mat-list-item>\r\n </ng-container>\r\n </mat-list>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-file-download__align-horizontal{display:flex!important;flex-flow:row wrap}.ieeesa-file-download .mdc-list-item{padding:0;margin-left:0!important}.ieeesa-file-download .mat-mdc-list-base .mat-mdc-list-item.ieeesa-list-file-by-horizontal{display:initial;width:auto;height:auto;padding:0 .75em .5em 0!important}.ieeesa-file-download__file-download-button{padding:0!important;white-space:normal;border:none;background:none;min-width:auto!important;text-decoration:underline;font-size:.875rem!important}.ieeesa-file-download--file-delete-button .ieeesa-icon-button__1{padding:0!important;margin-left:.25em}.ieeesa-file-download--file-delete-button .ieeesa-icon-button__svg{height:1.5em;width:1.5em;margin-top:.25em}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: IconButtonComponent, selector: "ieeesa-icon-button", inputs: ["iconButton", "isLabelNeeded"], outputs: ["iconButtonClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
148
157
  }
149
158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FileDownloadComponent, decorators: [{
150
159
  type: Component,
151
160
  args: [{ selector: 'ieeesa-file-download', standalone: true, imports: [CommonModule, MatListModule, MatIconModule, IconButtonComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-file-download\">\r\n <mat-list\r\n [ngClass]=\"\r\n fileDownloadAndDeleteConfig?.alignType === alignType.VERTICAL\r\n ? ''\r\n : 'ieeesa-file-download__align-horizontal'\r\n \"\r\n >\r\n <ng-container\r\n *ngFor=\"let item of downloadFiles; let index = index; trackBy: trackByFn\"\r\n >\r\n <mat-list-item\r\n [ngClass]=\"\r\n fileDownloadAndDeleteConfig?.alignType === alignType.VERTICAL\r\n ? ''\r\n : 'ieeesa-list-file-by-horizontal'\r\n \"\r\n >\r\n <button\r\n mat-button\r\n type=\"button\"\r\n [disabled]=\"!fileDownloadAndDeleteConfig?.isDownloadNeeded\"\r\n (click)=\"onDownloadFile(item)\"\r\n class=\"ieeesa-btn-label-lg-bold-16 ieeesa-file-download__file-download-button\"\r\n >\r\n {{ item.fileName }}\r\n </button>\r\n <ieeesa-icon-button\r\n *ngIf=\"fileDownloadAndDeleteConfig?.isDeleteNeeded\"\r\n class=\"ieeesa-file-download--file-delete-button\"\r\n [iconButton]=\"fileDeleteBtn\"\r\n [isLabelNeeded]=\"false\"\r\n (iconButtonClick)=\"onDeleteFile(item, index)\"\r\n >\r\n </ieeesa-icon-button>\r\n </mat-list-item>\r\n </ng-container>\r\n </mat-list>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-file-download__align-horizontal{display:flex!important;flex-flow:row wrap}.ieeesa-file-download .mdc-list-item{padding:0;margin-left:0!important}.ieeesa-file-download .mat-mdc-list-base .mat-mdc-list-item.ieeesa-list-file-by-horizontal{display:initial;width:auto;height:auto;padding:0 .75em .5em 0!important}.ieeesa-file-download__file-download-button{padding:0!important;white-space:normal;border:none;background:none;min-width:auto!important;text-decoration:underline;font-size:.875rem!important}.ieeesa-file-download--file-delete-button .ieeesa-icon-button__1{padding:0!important;margin-left:.25em}.ieeesa-file-download--file-delete-button .ieeesa-icon-button__svg{height:1.5em;width:1.5em;margin-top:.25em}\n"] }]
152
- }], ctorParameters: function () { return [{ type: i1.FormUtilityService }, { type: i2.SharedService }, { type: i3.FileUploadService }]; }, propDecorators: { downloadFiles: [{
161
+ }], ctorParameters: function () { return [{ type: i1.FormUtilityService }, { type: i2.FileUploadService }, { type: i3.AlertsService }]; }, propDecorators: { downloadFiles: [{
153
162
  type: Input
154
163
  }], fileDownloadAndDeleteConfig: [{
155
164
  type: Input
@@ -164,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
164
173
  }], apiBaseUrl: [{
165
174
  type: Input
166
175
  }] } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtZG93bmxvYWQvZmlsZS1kb3dubG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtZG93bmxvYWQvZmlsZS1kb3dubG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBVTFELE1BQU0sT0FBTyxxQkFBcUI7SUFpQmhDO0lBQ0UsMENBQTBDO0lBQ25DLGtCQUFzQztJQUM3QywwQ0FBMEM7SUFDbkMsYUFBNEI7SUFDbkMsMENBQTBDO0lBQ2xDLGlCQUFvQyxDQUFDLDZDQUE2Qzs7UUFKbkYsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUV0Qyxr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SUFBSTtxS0FTNUIsYUFBYTtzQkFBckIsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFHRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBRUUsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybVV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZm9ybS11dGlsaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbGUtdXBsb2FkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IEljb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlRG93bmxvYWRBbmREZWxldGVDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZS1kb3dubG9hZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBEb3dubG9hZEF0dGFjaG1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG93bmxvYWQtZmlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTaGFyZWRTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vc2hhcmVkJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IEFsaWduVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9hbGlnbi10eXBlLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLWZpbGUtZG93bmxvYWQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0TGlzdE1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgSWNvbkJ1dHRvbkNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZURvd25sb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNvbnN0YW50cyA9IGNvbnN0YW50cztcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgcHJlU2lnbmVkVXJsITogc3RyaW5nO1xyXG4gIGZpbGVOYW1lITogc3RyaW5nO1xyXG4gIGFsaWduVHlwZSA9IEFsaWduVHlwZTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIEBJbnB1dCgpIGRvd25sb2FkRmlsZXM6IEZpbGUgfCBGaWxlTGlzdCB8IGFueSB8IERvd25sb2FkQXR0YWNobWVudFtdID0gW107XHJcbiAgQElucHV0KCkgZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnITogRmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnO1xyXG4gIEBJbnB1dCgpIGlzUHVibGljQVBJPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkb21haW5Vcmw/OiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGRvd25sb2FkU2VsZWN0ZWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIEZpbGUgfCBEb3dubG9hZEF0dGFjaG1lbnRcclxuICA+KCk7XHJcbiAgQE91dHB1dCgpIGRlbGV0ZVNlbGVjdGVkRmlsZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZSB8IERvd25sb2FkQXR0YWNobWVudD4oKTtcclxuICBmaWxlRGVsZXRlQnRuID0gdGhpcy5jb25zdGFudHM/LmZpbGVEb3dubG9hZD8uYnV0dG9uc1swXTtcclxuICBASW5wdXQoKSBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgZm9ybVV0aWxpdHlTZXJ2aWNlOiBGb3JtVXRpbGl0eVNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHktZnVuY3Rpb25cclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgQVBJIGJhc2UgVVJMIHRvIGZpbGUgdXBsb2FkIHNlcnZpY2VcclxuICAgKiBAbWVtYmVyb2YgRmlsZURvd25sb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hcGlCYXNlVXJsKSB7XHJcbiAgICAgIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2Uuc2V0QXBpQmFzZVVybCh0aGlzLmFwaUJhc2VVcmwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgZG93bmxvYWQgQVdTIHByZS1zaWduZWQgVVJMIGZyb20gQVBJIG9uIGJ1dHRvbiBjbGljayBvciBlbWl0IHRoZSBkb3dubG9hZFNlbGVjdGVkRmlsZSBpZiBjYW5Eb3dubG9hZEZpbGVJbnRlcm5hbGx5IGZsZyBpcyB0cnVlLlxyXG4gICAqIEBwYXJhbSB7RmlsZSB9IGZpbGVcclxuICAgKiBAbWVtYmVyb2YgRmlsZURvd25sb2FkZWRDb21wb25lbnRcclxuICAgKi9cclxuICBvbkRvd25sb2FkRmlsZShmaWxlOiBGaWxlIHwgRG93bmxvYWRBdHRhY2htZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maWxlRG93bmxvYWRBbmREZWxldGVDb25maWc/LmNhbkRvd25sb2FkRmlsZUludGVybmFsbHkpIHtcclxuICAgICAgdGhpcy5nZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxzKGZpbGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kb3dubG9hZFNlbGVjdGVkRmlsZS5lbWl0KGZpbGUpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgcHJlLXNpZ25lZCBVUkwgZm9yIGRvd25sb2FkaW5nIHRoZSBzZWxlY3RlZCBmaWxlIGZyb20gQW1hem9uIFMzIGJ1Y2tldC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZURvd25sb2FkZWRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxzKGZpbGU6IEZpbGUgfCBEb3dubG9hZEF0dGFjaG1lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2VcclxuICAgICAgLmdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybHMoXHJcbiAgICAgICAgZmlsZSxcclxuICAgICAgICB0aGlzLmlzUHVibGljQVBJLFxyXG4gICAgICAgIHRoaXMuZG9tYWluVXJsLFxyXG4gICAgICAgIHRoaXMuZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnPy5kb3dubG9hZEZpbGVBUElVcmxcclxuICAgICAgKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5ib2R5ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICB0aGlzLnByZVNpZ25lZFVybCA9IHJlc3BvbnNlLmJvZHk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZU5hbWUgPSAoZmlsZSBhcyBGaWxlKS5uYW1lO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wcmVTaWduZWRVcmwgPSByZXNwb25zZS5ib2R5LnByZVNpZ25lZFVybDtcclxuICAgICAgICAgICAgdGhpcy5maWxlTmFtZSA9IHJlc3BvbnNlLmJvZHkuZmlsZU5hbWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmRvd25sb2FkRmlsZUZyb21TMyh0aGlzLnByZVNpZ25lZFVybCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmhhbmRsZUVycm9ycyhcclxuICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICAgIHRoaXMuY29uc3RhbnRzPy5maWxlRG93bmxvYWQ/Lm1lc3NhZ2UuZXJyb3JzXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZGVsZXRlU2VsZWN0ZWRGaWxlIGV2ZW50IG9yIGRlbGV0ZXMgdGhlIHNlbGVjdGVkIGZpbGUgYnkgY2FsbGluZyBkZWxldGVGaWxlKCkgaWYgdGhlIGZpbGUgY2FuIGJlIGRlbGV0ZWQgaW50ZXJuYWxseS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge0ZpbGUgfSBmaWxlXHJcbiAgICogQG1lbWJlcm9mIEZpbGVEb3dubG9hZGVkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25EZWxldGVGaWxlKGZpbGU6IEZpbGUgfCBEb3dubG9hZEF0dGFjaG1lbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZz8uY2FuRGVsZXRlRmlsZUludGVybmFsbHkpIHtcclxuICAgICAgdGhpcy5kZWxldGVGaWxlKHRoaXMuZG93bmxvYWRGaWxlc1tpbmRleF0/LmF0dGFjaG1lbnRJZCwgaW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kZWxldGVTZWxlY3RlZEZpbGUuZW1pdChmaWxlKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyB0aGUgZmlsZSBieSBnaXZlbiBhdHRhY2htZW50SWQsIGluZGV4LlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhdHRhY2htZW50SWRcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAbWVtYmVyb2YgVXBsb2FkQXR0YWNobWVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBkZWxldGVGaWxlKGF0dGFjaG1lbnRJZDogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICAgIC5kZWxldGVGaWxlKFxyXG4gICAgICAgIGAke3RoaXMuZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnLmRlbGV0ZUZpbGVBUElVcmx9JHthdHRhY2htZW50SWR9YFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRvd25sb2FkRmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaGFuZGxlRXJyb3JzKFxyXG4gICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgICAgdGhpcy5jb25zdGFudHM/LmZpbGVEb3dubG9hZD8ubWVzc2FnZS5lcnJvcnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBmaWxlIGxpc3QuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHJldHVybiB7KG51bWJlciB8IHN0cmluZyl9XHJcbiAgICogQG1lbWJlcm9mIEZpbGVEb3dubG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogbnVtYmVyIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2xlYW5zIHVwIHJlc291cmNlcyB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlRG93bmxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERvd25sb2FkIHRoZSBmaWxlIHVzaW5nIGdlbmVyYXRlZCBwcmVzaWduZWQgVXJsLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlRG93bmxvYWRQcmVzaWduZWRVcmxcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZU5hbWVcclxuICAgKiBAbWVtYmVyb2YgRmlsZURvd25sb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZG93bmxvYWRGaWxlRnJvbVMzKGZpbGVEb3dubG9hZFByZXNpZ25lZFVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBzYXZlQXMoZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS1maWxlLWRvd25sb2FkXCI+XHJcbiAgPG1hdC1saXN0XHJcbiAgICBbbmdDbGFzc109XCJcclxuICAgICAgZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnPy5hbGlnblR5cGUgPT09IGFsaWduVHlwZS5WRVJUSUNBTFxyXG4gICAgICAgID8gJydcclxuICAgICAgICA6ICdpZWVlc2EtZmlsZS1kb3dubG9hZF9fYWxpZ24taG9yaXpvbnRhbCdcclxuICAgIFwiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkb3dubG9hZEZpbGVzOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgID5cclxuICAgICAgPG1hdC1saXN0LWl0ZW1cclxuICAgICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAgIGZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZz8uYWxpZ25UeXBlID09PSBhbGlnblR5cGUuVkVSVElDQUxcclxuICAgICAgICAgICAgPyAnJ1xyXG4gICAgICAgICAgICA6ICdpZWVlc2EtbGlzdC1maWxlLWJ5LWhvcml6b250YWwnXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1idXR0b25cclxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFmaWxlRG93bmxvYWRBbmREZWxldGVDb25maWc/LmlzRG93bmxvYWROZWVkZWRcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uRG93bmxvYWRGaWxlKGl0ZW0pXCJcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWJ0bi1sYWJlbC1sZy1ib2xkLTE2IGllZWVzYS1maWxlLWRvd25sb2FkX19maWxlLWRvd25sb2FkLWJ1dHRvblwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgaXRlbS5maWxlTmFtZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxpZWVlc2EtaWNvbi1idXR0b25cclxuICAgICAgICAgICpuZ0lmPVwiZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnPy5pc0RlbGV0ZU5lZWRlZFwiXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1maWxlLWRvd25sb2FkLS1maWxlLWRlbGV0ZS1idXR0b25cIlxyXG4gICAgICAgICAgW2ljb25CdXR0b25dPVwiZmlsZURlbGV0ZUJ0blwiXHJcbiAgICAgICAgICBbaXNMYWJlbE5lZWRlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAoaWNvbkJ1dHRvbkNsaWNrKT1cIm9uRGVsZXRlRmlsZShpdGVtLCBpbmRleClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2llZWVzYS1pY29uLWJ1dHRvbj5cclxuICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9tYXQtbGlzdD5cclxuPC9kaXY+XHJcbiJdfQ==
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtZG93bmxvYWQvZmlsZS1kb3dubG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtZG93bmxvYWQvZmlsZS1kb3dubG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7OztBQVUxRCxNQUFNLE9BQU8scUJBQXFCO0lBaUJoQztJQUNFLDBDQUEwQztJQUNuQyxrQkFBc0M7SUFDN0MsMENBQTBDO0lBQ2xDLGlCQUFvQztJQUM1QywwQ0FBMEM7SUFDbEMsWUFBMkI7UUFKNUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUVyQyxzQkFB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RCxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXZKVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwyV0MvQmxDLHMwQ0F1Q0EsNC9TRGJZLFlBQVksNlZBQUUsYUFBYSx1UkFBRSxhQUFhLCtCQUFFLG1CQUFtQjs7NEZBSzlELHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxzQkFBc0IsY0FDcEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLENBQUMsaUJBRzNELGlCQUFpQixDQUFDLElBQUk7cUtBUzVCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBR0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVFLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1VdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tdXRpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCAqIGFzIGNvbnN0YW50cyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGUtZG93bmxvYWQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRG93bmxvYWRBdHRhY2htZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Rvd25sb2FkLWZpbGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IEFsZXJ0c1NlcnZpY2UgfSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgQWxlcnRUeXBlLCBBbGlnblR5cGUgfSBmcm9tICdAaWVlZXNhLW5wbS9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtZmlsZS1kb3dubG9hZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRMaXN0TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBJY29uQnV0dG9uQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1kb3dubG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS1kb3dubG9hZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlRG93bmxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RhbnRzID0gY29uc3RhbnRzO1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwcmVTaWduZWRVcmwhOiBzdHJpbmc7XHJcbiAgZmlsZU5hbWUhOiBzdHJpbmc7XHJcbiAgYWxpZ25UeXBlID0gQWxpZ25UeXBlO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQElucHV0KCkgZG93bmxvYWRGaWxlczogRmlsZSB8IEZpbGVMaXN0IHwgYW55IHwgRG93bmxvYWRBdHRhY2htZW50W10gPSBbXTtcclxuICBASW5wdXQoKSBmaWxlRG93bmxvYWRBbmREZWxldGVDb25maWchOiBGaWxlRG93bmxvYWRBbmREZWxldGVDb25maWc7XHJcbiAgQElucHV0KCkgaXNQdWJsaWNBUEk/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRvbWFpblVybD86IHN0cmluZztcclxuICBAT3V0cHV0KCkgZG93bmxvYWRTZWxlY3RlZEZpbGUgPSBuZXcgRXZlbnRFbWl0dGVyPFxyXG4gICAgRmlsZSB8IERvd25sb2FkQXR0YWNobWVudFxyXG4gID4oKTtcclxuICBAT3V0cHV0KCkgZGVsZXRlU2VsZWN0ZWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgRG93bmxvYWRBdHRhY2htZW50PigpO1xyXG4gIGZpbGVEZWxldGVCdG4gPSB0aGlzLmNvbnN0YW50cz8uZmlsZURvd25sb2FkPy5idXR0b25zWzBdO1xyXG4gIEBJbnB1dCgpIGFwaUJhc2VVcmwhOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBmb3JtVXRpbGl0eVNlcnZpY2U6IEZvcm1VdGlsaXR5U2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBmaWxlVXBsb2FkU2VydmljZTogRmlsZVVwbG9hZFNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIEFQSSBiYXNlIFVSTCB0byBmaWxlIHVwbG9hZCBzZXJ2aWNlXHJcbiAgICogQG1lbWJlcm9mIEZpbGVEb3dubG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXBpQmFzZVVybCkge1xyXG4gICAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLnNldEFwaUJhc2VVcmwodGhpcy5hcGlCYXNlVXJsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIGRvd25sb2FkIEFXUyBwcmUtc2lnbmVkIFVSTCBmcm9tIEFQSSBvbiBidXR0b24gY2xpY2sgb3IgZW1pdCB0aGUgZG93bmxvYWRTZWxlY3RlZEZpbGUgaWYgY2FuRG93bmxvYWRGaWxlSW50ZXJuYWxseSBmbGcgaXMgdHJ1ZS5cclxuICAgKiBAcGFyYW0ge0ZpbGUgfSBmaWxlXHJcbiAgICogQG1lbWJlcm9mIEZpbGVEb3dubG9hZGVkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25Eb3dubG9hZEZpbGUoZmlsZTogRmlsZSB8IERvd25sb2FkQXR0YWNobWVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnPy5jYW5Eb3dubG9hZEZpbGVJbnRlcm5hbGx5KSB7XHJcbiAgICAgIHRoaXMuZ2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJscyhmaWxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZG93bmxvYWRTZWxlY3RlZEZpbGUuZW1pdChmaWxlKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHByZS1zaWduZWQgVVJMIGZvciBkb3dubG9hZGluZyB0aGUgc2VsZWN0ZWQgZmlsZSBmcm9tIEFtYXpvbiBTMyBidWNrZXQuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVEb3dubG9hZGVkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJscyhmaWxlOiBGaWxlIHwgRG93bmxvYWRBdHRhY2htZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICAgIC5nZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxzKFxyXG4gICAgICAgIGZpbGUsXHJcbiAgICAgICAgdGhpcy5pc1B1YmxpY0FQSSxcclxuICAgICAgICB0aGlzLmRvbWFpblVybCxcclxuICAgICAgICB0aGlzLmZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZz8uZG93bmxvYWRGaWxlQVBJVXJsXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuYm9keSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgdGhpcy5wcmVTaWduZWRVcmwgPSByZXNwb25zZS5ib2R5O1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVOYW1lID0gKGZpbGUgYXMgRmlsZSkubmFtZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJlU2lnbmVkVXJsID0gcmVzcG9uc2UuYm9keS5wcmVTaWduZWRVcmw7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZU5hbWUgPSByZXNwb25zZS5ib2R5LmZpbGVOYW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5kb3dubG9hZEZpbGVGcm9tUzModGhpcy5wcmVTaWduZWRVcmwpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogRXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlPy5zaG93TWVzc2FnZSh7XHJcbiAgICAgICAgICAgIHN0YXR1czogJ2N1c3RvbScsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yPy5tZXNzYWdlIHx8IHRoaXMuY29uc3RhbnRzPy5maWxlRG93bmxvYWQ/Lm1lc3NhZ2U/LmVycm9ycz8uWydFUjEwMDInXSxcclxuICAgICAgICAgICAgYWxlcnRUeXBlOiBBbGVydFR5cGUuRVJST1IsXHJcbiAgICAgICAgICAgIGlzQ2xvc2VOZWVkZWQ6IHRydWUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGRlbGV0ZVNlbGVjdGVkRmlsZSBldmVudCBvciBkZWxldGVzIHRoZSBzZWxlY3RlZCBmaWxlIGJ5IGNhbGxpbmcgZGVsZXRlRmlsZSgpIGlmIHRoZSBmaWxlIGNhbiBiZSBkZWxldGVkIGludGVybmFsbHkuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHBhcmFtIHtGaWxlIH0gZmlsZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlRG93bmxvYWRlZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uRGVsZXRlRmlsZShmaWxlOiBGaWxlIHwgRG93bmxvYWRBdHRhY2htZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5maWxlRG93bmxvYWRBbmREZWxldGVDb25maWc/LmNhbkRlbGV0ZUZpbGVJbnRlcm5hbGx5KSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlRmlsZSh0aGlzLmRvd25sb2FkRmlsZXNbaW5kZXhdPy5hdHRhY2htZW50SWQsIGluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlU2VsZWN0ZWRGaWxlLmVtaXQoZmlsZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgdGhlIGZpbGUgYnkgZ2l2ZW4gYXR0YWNobWVudElkLCBpbmRleC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXR0YWNobWVudElkXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQG1lbWJlcm9mIFVwbG9hZEF0dGFjaG1lbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZGVsZXRlRmlsZShhdHRhY2htZW50SWQ6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlVXBsb2FkU2VydmljZVxyXG4gICAgICAuZGVsZXRlRmlsZShcclxuICAgICAgICBgJHt0aGlzLmZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZy5kZWxldGVGaWxlQVBJVXJsfSR7YXR0YWNobWVudElkfWBcclxuICAgICAgKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvbiwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kb3dubG9hZEZpbGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2U/LnNob3dNZXNzYWdlKHtcclxuICAgICAgICAgICAgc3RhdHVzOiAnY3VzdG9tJyxcclxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3I/Lm1lc3NhZ2UgfHwgdGhpcy5jb25zdGFudHM/LmZpbGVEb3dubG9hZD8ubWVzc2FnZT8uZXJyb3JzPy5bJ0VSMTAwMiddLFxyXG4gICAgICAgICAgICBhbGVydFR5cGU6IEFsZXJ0VHlwZS5FUlJPUixcclxuICAgICAgICAgICAgaXNDbG9zZU5lZWRlZDogdHJ1ZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZmlsZSBsaXN0LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEByZXR1cm4geyhudW1iZXIgfCBzdHJpbmcpfVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlRG93bmxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IG51bWJlciB8IHN0cmluZyB7XHJcbiAgICByZXR1cm4gaW5kZXg7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENsZWFucyB1cCByZXNvdXJjZXMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZURvd25sb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEb3dubG9hZCB0aGUgZmlsZSB1c2luZyBnZW5lcmF0ZWQgcHJlc2lnbmVkIFVybC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZURvd25sb2FkUHJlc2lnbmVkVXJsXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVOYW1lXHJcbiAgICogQG1lbWJlcm9mIEZpbGVEb3dubG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGRvd25sb2FkRmlsZUZyb21TMyhmaWxlRG93bmxvYWRQcmVzaWduZWRVcmw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgc2F2ZUFzKGZpbGVEb3dubG9hZFByZXNpZ25lZFVybCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZWVlc2EtZmlsZS1kb3dubG9hZFwiPlxyXG4gIDxtYXQtbGlzdFxyXG4gICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgIGZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZz8uYWxpZ25UeXBlID09PSBhbGlnblR5cGUuVkVSVElDQUxcclxuICAgICAgICA/ICcnXHJcbiAgICAgICAgOiAnaWVlZXNhLWZpbGUtZG93bmxvYWRfX2FsaWduLWhvcml6b250YWwnXHJcbiAgICBcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZG93bmxvYWRGaWxlczsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtbGlzdC1pdGVtXHJcbiAgICAgICAgW25nQ2xhc3NdPVwiXHJcbiAgICAgICAgICBmaWxlRG93bmxvYWRBbmREZWxldGVDb25maWc/LmFsaWduVHlwZSA9PT0gYWxpZ25UeXBlLlZFUlRJQ0FMXHJcbiAgICAgICAgICAgID8gJydcclxuICAgICAgICAgICAgOiAnaWVlZXNhLWxpc3QtZmlsZS1ieS1ob3Jpem9udGFsJ1xyXG4gICAgICAgIFwiXHJcbiAgICAgID5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnPy5pc0Rvd25sb2FkTmVlZGVkXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkRvd25sb2FkRmlsZShpdGVtKVwiXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1idG4tbGFiZWwtbGctYm9sZC0xNiBpZWVlc2EtZmlsZS1kb3dubG9hZF9fZmlsZS1kb3dubG9hZC1idXR0b25cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGl0ZW0uZmlsZU5hbWUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8aWVlZXNhLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAqbmdJZj1cImZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZz8uaXNEZWxldGVOZWVkZWRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJpZWVlc2EtZmlsZS1kb3dubG9hZC0tZmlsZS1kZWxldGUtYnV0dG9uXCJcclxuICAgICAgICAgIFtpY29uQnV0dG9uXT1cImZpbGVEZWxldGVCdG5cIlxyXG4gICAgICAgICAgW2lzTGFiZWxOZWVkZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJvbkRlbGV0ZUZpbGUoaXRlbSwgaW5kZXgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbWF0LWxpc3Q+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -12,7 +12,7 @@ import { FileUploadDirective } from '../../directives/file-upload/file-upload.di
12
12
  import { FormControlType } from '../../models/form-control-types.model';
13
13
  import { IconButtonComponent } from '../icon-button/icon-button.component';
14
14
  import { AlignBrowsedFiles } from '../../models/align-browsed-files.model';
15
- import { AlignType } from '../../models/align-type.model';
15
+ import { AlignType } from '@ieeesa-npm/models';
16
16
  import { FileDownloadComponent } from '../file-download/file-download.component';
17
17
  import * as i0 from "@angular/core";
18
18
  import * as i1 from "../../services/form-utility.service";
@@ -471,4 +471,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
471
471
  }], downloadSelectedFile: [{
472
472
  type: Output
473
473
  }] } });
474
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc2VudGF0aW9uL3NyYy9saWIvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUd4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFB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S0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFRywrQkFBK0I7c0JBQXZDLEtBQUs7Z0JBR08sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQVFGLFlBQVk7c0JBRGYsS0FBSztnQkFVRiwyQkFBMkI7c0JBRDlCLEtBQUs7Z0JBT0ksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGb3JtRXJyb3JDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXN1cHBvcnQtdGV4dC9mb3JtLXN1cHBvcnQtdGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmllbGQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tY29udHJvbC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IEFsbG93ZWRGaWxlVHlwZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWxsb3dlZC1maWxlLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFsaWduQnJvd3NlZEZpbGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FsaWduLWJyb3dzZWQtZmlsZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWxpZ24tdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZS11cGxvYWQtc3RhdHVzLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsZURvd25sb2FkQ29tcG9uZW50IH0gZnJvbSAnLi4vZmlsZS1kb3dubG9hZC9maWxlLWRvd25sb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9maWxlLWRvd25sb2FkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IERvd25sb2FkQXR0YWNobWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9kb3dubG9hZC1maWxlLm1vZGVsJztcclxuLyoqXHJcbiAqIFByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgZm9yIHVwbG9hZGluZyBmaWxlcyB0byBhd3MgczMgYnVja2V0LlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAqIEBpbXBsZW1lbnRzIHtPbkluaXR9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1maWxlLXVwbG9hZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybUVycm9yQ29tcG9uZW50LFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQsXHJcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcclxuICAgIEZpbGVVcGxvYWREaXJlY3RpdmUsXHJcbiAgICBJY29uQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRmlsZURvd25sb2FkQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmaWxlRmllbGQnKSBmaWxlRmllbGQhOiBFbGVtZW50UmVmO1xyXG4gIGNvbnN0YW50cyA9IGNvbnN0YW50cztcclxuICBmaWxlVXBsb2FkTGFiZWwgPSB0aGlzLmNvbnN0YW50cz8uZmlsZVVwbG9hZD8ubGFiZWw7XHJcbiAgZmlsZVVwbG9hZEFyaWFMYWJlbCA9IHRoaXMuY29uc3RhbnRzPy5maWxlVXBsb2FkPy5hcmlhTGFiZWw7XHJcbiAgZmlsZVVwbG9hZEljb25VcmwgPSB0aGlzLmNvbnN0YW50cz8uZmlsZVVwbG9hZD8uaWNvblVybDtcclxuICBmaWxlVXBsb2FkQnRuID0gdGhpcy5jb25zdGFudHM/LmZpbGVVcGxvYWQ/LmJ1dHRvbnNbMF07XHJcbiAgYWxsb3dlZEZpbGVUeXBlRXJyb3JNZXNzYWdlID1cclxuICAgIHRoaXMuY29uc3RhbnRzPy5maWxlVXBsb2FkPy5tZXNzYWdlPy5lcnJvcj8uaW52YWxpZEZpbGVGb3JtYXQ7XHJcbiAgQElucHV0KCkgbWF4RmlsZVNpemVFcnJvck1lc3NhZ2UgPVxyXG4gICAgdGhpcy5jb25zdGFudHM/LmZpbGVVcGxvYWQ/Lm1lc3NhZ2U/LmVycm9yPy5pbnZhbGlkRmlsZVNpemU7XHJcbiAgYWxsb3dlZEZpbGVUeXBlc0FuZFNpemVUZXh0ID0gJyc7XHJcbiAgY29uZmlnITogRmllbGRDb25maWc7XHJcbiAgZ3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgaXNWYWxpZEZpbGVUeXBlID0gZmFsc2U7XHJcbiAgaXNWYWxpZEZpbGVTaXplID0gZmFsc2U7XHJcbiAgaXNWYWxpZE1heEZpbGVVcGxvYWRMaW1pdCA9IGZhbHNlO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgc2VsZWN0ZWRGaWxlczogRmlsZUxpc3QgfCBGaWxlIHwgYW55ID0gW107XHJcbiAgc2VsZWN0ZWRGaWxlTmFtZXMgPSAnJztcclxuICBpc0Zvcm1GaWVsZCA9IGZhbHNlO1xyXG4gIHRvdGFsU2l6ZSA9IDA7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICB1cGxvYWRlZEZpbGVzOiBGaWxlTGlzdCB8IEZpbGUgfCBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBhY3Rpb25CdXR0b25BbGlnbiE6IEFsaWduVHlwZTtcclxuICBhbGlnbm1lbnRUeXBlID0gQWxpZ25UeXBlO1xyXG4gIGlzVXBsb2FkQnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBmb3JtQ29udHJvbE5hbWUgPSAnZmlsZVVwbG9hZCc7XHJcbiAgQElucHV0KCkgaXNGaWxlU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdXBwb3J0TWVzc2FnZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBhbGxvd2VkRmlsZVR5cGVzOiBBbGxvd2VkRmlsZVR5cGVzW10gPSBbXTtcclxuICBASW5wdXQoKSBpc011bHRpRmlsZVVwbG9hZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzVXBsb2FkSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZpbGVVcGxvYWRIZWFkaW5nITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlzQWxsb3dBbnlGaWxlVHlwZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFsaWduQnJvd3NlZEZpbGVzID0gQWxpZ25Ccm93c2VkRmlsZXMuREVGQVVMVDtcclxuICBASW5wdXQoKSBpc1VwbG9hZEJ1dHRvbk5lZWRlZCA9IGZhbHNlO1xyXG4gIC8vIERlZmF1bHQgbWF4aW11bSBhbGxvd2VkIHVwbG9hZCBmaWxlIHNpemUgaXMgMm1iLlxyXG4gIEBJbnB1dCgpIG1heFVwbG9hZEZpbGVTaXplID0gMjtcclxuICBwcml2YXRlIHVwbG9hZGVkU2l6ZVZhbHVlID0gMDtcclxuICBASW5wdXQoKSBhbGlnbkZpbGVVcGxvYWRFcnJvck1lc3NhZ2VUbyA9IEFsaWduVHlwZS5CT1RUT007XHJcbiAgQElucHV0KCkgbWF4RmlsZXNVcGxvYWRlZE9uY2U6IG51bWJlciA9XHJcbiAgICB0aGlzLmNvbnN0YW50cz8uZmlsZVVwbG9hZD8ubGltaXQ/Lm1heEZpbGVzVXBsb2FkZWRPbmNlO1xyXG4gIEBJbnB1dCgpIG1heEZpbGVzVXBsb2FkTGltaXRFcnJvck1lc3NhZ2UgPSAnJztcclxuICBwcml2YXRlIF9maWxlVXBsb2FkU3RhdHVzITogRmlsZVVwbG9hZFN0YXR1cztcclxuXHJcbiAgQElucHV0KCkgZ2V0IGZpbGVVcGxvYWRTdGF0dXMoKTogRmlsZVVwbG9hZFN0YXR1cyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsZVVwbG9hZFN0YXR1cztcclxuICB9XHJcbiAgc2V0IGZpbGVVcGxvYWRTdGF0dXModmFsdWU6IEZpbGVVcGxvYWRTdGF0dXMpIHtcclxuICAgIHRoaXMuX2ZpbGVVcGxvYWRTdGF0dXMgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHVwbG9hZGVkU2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkZWRTaXplVmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXQgdXBsb2FkZWRTaXplKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMudXBsb2FkZWRTaXplVmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnITogRmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZyh2YWx1ZTogRmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnKSB7XHJcbiAgICB0aGlzLl9maWxlRG93bmxvYWRBbmREZWxldGVDb25maWcgPSB2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZygpOiBGaWxlRG93bmxvYWRBbmREZWxldGVDb25maWcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZztcclxuICB9XHJcbiAgQE91dHB1dCgpIHVwbG9hZFNlbGVjdGVkRmlsZXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGUgfCBGaWxlTGlzdD4oKTtcclxuICBAT3V0cHV0KCkgZG93bmxvYWRTZWxlY3RlZEZpbGUgPSBuZXcgRXZlbnRFbWl0dGVyPFxyXG4gICAgRmlsZSB8IERvd25sb2FkQXR0YWNobWVudFxyXG4gID4oKTtcclxuICBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG4gIHNlbGVjdGVkRmlsZU5hbWVzQ291bnQgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGZvcm1VdGlsaXR5U2VydmljZTogRm9ybVV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwdWJsaWMgZmlsZVVwbG9hZFNlcnZpY2U6IEZpbGVVcGxvYWRTZXJ2aWNlIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxyXG4gICkge31cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyBjb21wb25lbnQgcHJvcGVydGllcyBhbmQgcmV0cmlldmVzIGNvbmZpZ3VyYXRpb24uXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGb3JtRmllbGQgPSAhIXRoaXMuY29uZmlnO1xyXG4gICAgdGhpcy5hcGlCYXNlVXJsID0gdGhpcy5maWxlVXBsb2FkU2VydmljZS5nZXRBcGlCYXNlVXJsKCk7XHJcbiAgICB0aGlzLmNvbmZpZyA9XHJcbiAgICAgIHRoaXMuY29uZmlnID8/XHJcbiAgICAgIHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1GaWVsZENvbmZpZyhcclxuICAgICAgICAnZmlsZVVwbG9hZCcsXHJcbiAgICAgICAgRm9ybUNvbnRyb2xUeXBlLkZJTEVfVVBMT0FEXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmdyb3VwID1cclxuICAgICAgdGhpcy5ncm91cCA/PyB0aGlzLmZvcm1VdGlsaXR5U2VydmljZS5nZXRGb3JtR3JvdXAoJ2ZpbGVVcGxvYWQnKTtcclxuICAgIHRoaXMuY29uZmlnLnN1cHBvcnRNZXNzYWdlID1cclxuICAgICAgdGhpcy5jb25maWc/LnN1cHBvcnRNZXNzYWdlID8/IHRoaXMuc3VwcG9ydE1lc3NhZ2U7XHJcbiAgICB0aGlzLmlzTXVsdGlGaWxlVXBsb2FkID1cclxuICAgICAgdGhpcy5jb25maWc/LmlzTXVsdGlGaWxlVXBsb2FkID8/IHRoaXMuaXNNdWx0aUZpbGVVcGxvYWQ7XHJcbiAgICB0aGlzLm1heFVwbG9hZEZpbGVTaXplID1cclxuICAgICAgdGhpcy5jb25maWc/Lm1heFVwbG9hZEZpbGVTaXplID8/IHRoaXMubWF4VXBsb2FkRmlsZVNpemU7XHJcbiAgICB0aGlzLmFsbG93ZWRGaWxlVHlwZXMgPVxyXG4gICAgICB0aGlzLmNvbmZpZz8uYWxsb3dlZEZpbGVUeXBlcyA/PyB0aGlzLmFsbG93ZWRGaWxlVHlwZXM7XHJcbiAgICB0aGlzLmlzQWxsb3dBbnlGaWxlVHlwZSA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5pc0FsbG93QW55RmlsZVR5cGUgPz8gdGhpcy5pc0FsbG93QW55RmlsZVR5cGU7XHJcbiAgICB0aGlzLmFsaWduQnJvd3NlZEZpbGVzID1cclxuICAgICAgdGhpcy5jb25maWc/LmFsaWduQnJvd3NlZEZpbGVzID8/IHRoaXMuYWxpZ25Ccm93c2VkRmlsZXM7XHJcbiAgICB0aGlzLmlzVXBsb2FkQnV0dG9uTmVlZGVkID1cclxuICAgICAgdGhpcy5jb25maWc/LmlzVXBsb2FkQnV0dG9uTmVlZGVkID8/IHRoaXMuaXNVcGxvYWRCdXR0b25OZWVkZWQ7XHJcbiAgICB0aGlzLmFjdGlvbkJ1dHRvbkFsaWduID1cclxuICAgICAgdGhpcy5jb25maWc/LmFjdGlvbkJ1dHRvbkFsaWduID8/IHRoaXMuYWN0aW9uQnV0dG9uQWxpZ247XHJcbiAgICB0aGlzLmFsaWduRmlsZVVwbG9hZEVycm9yTWVzc2FnZVRvID1cclxuICAgICAgdGhpcy5jb25maWc/LmFsaWduRmlsZVVwbG9hZEVycm9yTWVzc2FnZVRvID8/XHJcbiAgICAgIHRoaXMuYWxpZ25GaWxlVXBsb2FkRXJyb3JNZXNzYWdlVG87XHJcbiAgICB0aGlzLmdldEFsbG93ZWRGaWxlRm9ybWF0U2l6ZU1lc3NhZ2UoKTtcclxuICAgIHRoaXMuZmlsZVVwbG9hZEhlYWRpbmcgPVxyXG4gICAgICB0aGlzLmNvbmZpZz8uZmlsZVVwbG9hZEhlYWRpbmcgPz9cclxuICAgICAgdGhpcy5maWxlVXBsb2FkSGVhZGluZyA/P1xyXG4gICAgICB0aGlzLmZpbGVVcGxvYWRMYWJlbC5maWxlVXBsb2FkO1xyXG4gICAgdGhpcy5jb25maWcuYWxsb3dlZEZpbGVUeXBlRXJyb3JNZXNzYWdlID1cclxuICAgICAgdGhpcy5jb25maWc/LmFsbG93ZWRGaWxlVHlwZUVycm9yTWVzc2FnZSA/P1xyXG4gICAgICB0aGlzLmFsbG93ZWRGaWxlVHlwZUVycm9yTWVzc2FnZTtcclxuICAgIHRoaXMuY29uZmlnLm1heEZpbGVTaXplRXJyb3JNZXNzYWdlID1cclxuICAgICAgdGhpcy5jb25maWc/Lm1heEZpbGVTaXplRXJyb3JNZXNzYWdlID8/IHRoaXMubWF4RmlsZVNpemVFcnJvck1lc3NhZ2U7XHJcbiAgICB0aGlzLmlzRmlsZVNlbGVjdGVkID0gdGhpcy5jb25maWc/LmlzRmlsZVNlbGVjdGVkID8/IHRoaXMuaXNGaWxlU2VsZWN0ZWQ7XHJcbiAgICB0aGlzLm1heEZpbGVzVXBsb2FkZWRPbmNlID1cclxuICAgICAgdGhpcy5jb25maWc/Lm1heEZpbGVzVXBsb2FkZWRPbmNlID8/IHRoaXMubWF4RmlsZXNVcGxvYWRlZE9uY2U7XHJcbiAgICB0aGlzLm1heEZpbGVzVXBsb2FkTGltaXRFcnJvck1lc3NhZ2UgPVxyXG4gICAgICB0aGlzLmNvbmZpZz8ubWF4RmlsZXNVcGxvYWRMaW1pdEVycm9yTWVzc2FnZSA/P1xyXG4gICAgICB0aGlzLm1heEZpbGVzVXBsb2FkTGltaXRFcnJvck1lc3NhZ2U7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdHMgYWxsb3dlZCBmaWxlIGZvcm1hdCBhbmQgc2l6ZSBtZXNzYWdlIGluIHJlcXVpcmVkIGZvcm1hdC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEFsbG93ZWRGaWxlRm9ybWF0U2l6ZU1lc3NhZ2UoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdXBwb3J0ZWRGaWxlRm9ybWF0VGV4dCA9IHRoaXMuYWxsb3dlZEZpbGVUeXBlcy5qb2luKCcsICcpO1xyXG4gICAgdGhpcy5hbGxvd2VkRmlsZVR5cGVzQW5kU2l6ZVRleHQgPSBgJHt0aGlzLmZpbGVVcGxvYWRMYWJlbD8uYWxsb3dlZEZpbGVTaXplMX1cclxuICAgICR7dGhpcy5tYXhVcGxvYWRGaWxlU2l6ZX1gO1xyXG4gICAgaWYgKHRoaXMuaXNNdWx0aUZpbGVVcGxvYWQpIHtcclxuICAgICAgdGhpcy5hbGxvd2VkRmlsZVR5cGVzQW5kU2l6ZVRleHQgKz0gYCAke3RoaXMuY29uc3RhbnRzPy5maWxlVXBsb2FkPy5sYWJlbD8ubWJ9YDtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5pc0FsbG93QW55RmlsZVR5cGUpIHtcclxuICAgICAgdGhpcy5hbGxvd2VkRmlsZVR5cGVzQW5kU2l6ZVRleHQgKz0gYCR7dGhpcy5maWxlVXBsb2FkTGFiZWw/LmFsbG93ZWRGaWxlU2l6ZTJ9ICR7dGhpcy5maWxlVXBsb2FkTGFiZWw/LmFsbG93ZWRGaWxlRm9ybWF0fSAke3N1cHBvcnRlZEZpbGVGb3JtYXRUZXh0fS5gO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBzZWxlY3RlZCBmaWxlKHMpIGFuZCBlbWl0cyBGaWxlVXBsb2FkIGV2ZW50IGVtaXR0ZXIgZm9yIHVwbG9hZGluZyB0aGUgZmlsZShzKS5cclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRGaWxlKGZpbGU6IEZpbGUgfCBGaWxlTGlzdCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVzID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsZU5hbWVzID0gJyc7XHJcbiAgICB0aGlzLmZpbGVVcGxvYWRTdGF0dXMgPSB7XHJcbiAgICAgIGFscmVhZHlFeGlzdHNGaWxlczogW10sXHJcbiAgICAgIGZpbGVzTmFtZU9mVXBsb2FkRmFpbGVkOiBbXSxcclxuICAgICAgbm9PZkZpbGVzVXBsb2FkZWRTdWNjZXNzZnVsbHk6IDAsXHJcbiAgICAgIGlzVXBsb2FkaW5nU3RhcnQ6IGZhbHNlLFxyXG4gICAgICB1cGxvYWRlZEZpbGVzOiB0aGlzLmZpbGVVcGxvYWRTdGF0dXM/LnVwbG9hZGVkRmlsZXMgPz8gW10sXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVOYW1lc0NvdW50ID0gMDtcclxuICAgIGNvbnN0IGZpbGVVcGxvYWRGb3JtQ29udHJvbCA9IHRoaXMuZ3JvdXA/LmdldChcclxuICAgICAgdGhpcy5jb25maWc/LmNvbnRyb2xOYW1lID8/ICdmaWxlVXBsb2FkJ1xyXG4gICAgKTtcclxuICAgIGlmIChmaWxlVXBsb2FkRm9ybUNvbnRyb2wpIHtcclxuICAgICAgZmlsZVVwbG9hZEZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc011bHRpRmlsZVVwbG9hZCkge1xyXG4gICAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy52YWxpZGF0ZUZpbGUoZmlsZSk7XHJcbiAgICAgIHRoaXMuaXNGaWxlU2VsZWN0ZWQgPSBpc1ZhbGlkO1xyXG4gICAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgICBPYmplY3QudmFsdWVzKGZpbGUpLmZvckVhY2goKGZpbGVJdGVtOiBGaWxlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlcz8ucHVzaChmaWxlSXRlbSk7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWxTaXplICs9IGZpbGVJdGVtLnNpemU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkRmlsZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlTmFtZXNDb3VudCA9IHRoaXMuc2VsZWN0ZWRGaWxlcy5sZW5ndGg7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWxlc05hbWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGVzPy5mb3JFYWNoKChmaWxlOiBGaWxlLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBzZWxlY3RlZEZpbGVzTmFtZXMucHVzaChmaWxlLm5hbWUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlTmFtZXMgPSBzZWxlY3RlZEZpbGVzTmFtZXM/LmpvaW4oJywgJykudG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLmdyb3VwXHJcbiAgICAgICAgICAuZ2V0KHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSlcclxuICAgICAgICAgID8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZEZpbGVOYW1lcyk7XHJcbiAgICAgICAgdGhpcy5maWxlVXBsb2FkQnRuLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNGb3JtRmllbGQpXHJcbiAgICAgICAgICB0aGlzLnVwbG9hZFNlbGVjdGVkRmlsZXM/LmVtaXQodGhpcy5zZWxlY3RlZEZpbGVzKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZmlsZUl0ZW0gPSBPYmplY3QudmFsdWVzKGZpbGUpWzBdO1xyXG4gICAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy52YWxpZGF0ZUZpbGUoZmlsZUl0ZW0pO1xyXG4gICAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICAgIHRoaXMuaXNGaWxlU2VsZWN0ZWQgPSBpc1ZhbGlkO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlTmFtZXMgPSBmaWxlSXRlbS5uYW1lO1xyXG4gICAgICAgIHRoaXMudG90YWxTaXplID0gZmlsZUl0ZW0uc2l6ZTtcclxuICAgICAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlPy5jb252ZXJ0RmlsZVRvQnl0ZUFycmF5KGZpbGVJdGVtKTtcclxuICAgICAgICB0aGlzLmdyb3VwXHJcbiAgICAgICAgICAuZ2V0KHRoaXMuY29uZmlnLmNvbnRyb2xOYW1lKVxyXG4gICAgICAgICAgPy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkRmlsZU5hbWVzKTtcclxuICAgICAgICBpZiAodGhpcy5pc0Zvcm1GaWVsZCkgdGhpcy51cGxvYWRTZWxlY3RlZEZpbGVzLmVtaXQoZmlsZUl0ZW0pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlcyA9IGZpbGU7XHJcbiAgICAgICAgdGhpcy5maWxlVXBsb2FkQnRuLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIHRoZSBzZWxlY3RlZCBmaWxlKHMpIGZvcm1hdCBhbmQgc2l6ZS5cclxuICAgKiBAcGFyYW0geyhGaWxlIHwgRmlsZUxpc3QpfSBmaWxlXHJcbiAgICogQHJldHVybiB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlRmlsZShmaWxlOiBGaWxlIHwgRmlsZUxpc3QpOiBib29sZWFuIHtcclxuICAgIHRoaXMuaXNWYWxpZEZpbGVUeXBlID0gIXRoaXMuaXNBbGxvd0FueUZpbGVUeXBlXHJcbiAgICAgID8gdGhpcy5maWxlVXBsb2FkU2VydmljZS52YWxpZGF0ZUZpbGVUeXBlcyhcclxuICAgICAgICAgIGZpbGUsXHJcbiAgICAgICAgICB0aGlzLmFsbG93ZWRGaWxlVHlwZXMsXHJcbiAgICAgICAgICB0aGlzLmlzTXVsdGlGaWxlVXBsb2FkXHJcbiAgICAgICAgKVxyXG4gICAgICA6IHRydWU7XHJcbiAgICBpZiAodGhpcy5pc011bHRpRmlsZVVwbG9hZCkge1xyXG4gICAgICB0aGlzLmlzVmFsaWRNYXhGaWxlVXBsb2FkTGltaXQgPVxyXG4gICAgICAgIE9iamVjdC52YWx1ZXMoZmlsZSkubGVuZ3RoIDw9XHJcbiAgICAgICAgdGhpcy5jb25zdGFudHM/LmZpbGVVcGxvYWQ/LmxpbWl0Py5tYXhGaWxlc1VwbG9hZGVkT25jZTtcclxuICAgICAgaWYgKCF0aGlzLmlzVmFsaWRNYXhGaWxlVXBsb2FkTGltaXQpIHtcclxuICAgICAgICB0aGlzLmdyb3VwPy5nZXQodGhpcy5jb25maWc/LmNvbnRyb2xOYW1lKT8uc2V0RXJyb3JzKHtcclxuICAgICAgICAgIG1heEZpbGVzVXBsb2FkTGltaXRSZWFjaGVkOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmlzVmFsaWRGaWxlVHlwZSkge1xyXG4gICAgICB0aGlzLmdyb3VwPy5nZXQodGhpcy5jb25maWc/LmNvbnRyb2xOYW1lKT8uc2V0RXJyb3JzKHtcclxuICAgICAgICBpbnZhbGlkRmlsZVR5cGU6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzVmFsaWRGaWxlU2l6ZSA9IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UudmFsaWRhdGVGaWxlU2l6ZShcclxuICAgICAgZmlsZSxcclxuICAgICAgdGhpcy5tYXhVcGxvYWRGaWxlU2l6ZSxcclxuICAgICAgdGhpcy5pc011bHRpRmlsZVVwbG9hZFxyXG4gICAgKTtcclxuICAgIGlmICghdGhpcy5pc1ZhbGlkRmlsZVNpemUpIHtcclxuICAgICAgdGhpcy5ncm91cD8uZ2V0KHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSk/LnNldEVycm9ycyh7XHJcbiAgICAgICAgbWF4RmlsZVNpemU6IHRydWUsXHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogSW5pdGlhdGVzIHRoZSBmaWxlIHVwbG9hZCBwcm9jZXNzIGZvciBpbmRlcGVuZGVudCBmaWxlIHVwbG9hZCBjb21wb25lbnQuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBvblVwbG9hZCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXBsb2FkU2VsZWN0ZWRGaWxlcy5lbWl0KHRoaXMuc2VsZWN0ZWRGaWxlcyk7XHJcbiAgICBpZiAodGhpcy5maWxlVXBsb2FkU2VydmljZT8uZ2V0RmlsZVVwbG9hZFN0YXR1cygpKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IHRoaXMuc2VsZWN0ZWRGaWxlcztcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ2xlYXJzIHRoZSBmb3JtIGdyb3VwIGNvbnRyb2wgdmFsdWUgb2YgdHlwZSBpbnB1dCBhbmQgcmVzZXRzIG90aGVyIGZpbGUgdXBsb2FkIHByb3BlcnRpZXMuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICByZXNldFVwbG9hZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UuY2xlYXJGaWxlQnl0ZUFycmF5KCk7XHJcbiAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbXTtcclxuICAgIHRoaXMuaXNVcGxvYWRJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsZU5hbWVzID0gJyc7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsZXMgPSBbXTtcclxuICAgIHRoaXMuaXNGaWxlU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZ3JvdXAuZ2V0KHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSk/LnNldFZhbHVlKCcnKTtcclxuICAgIHRoaXMuZmlsZVVwbG9hZEJ0bi5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsZU5hbWVzQ291bnQgPSAwO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZW1vdmVzIHRoZSBzZWxlY3RlZCBmaWxlIGZyb20gdGhlIHVwbG9hZGVkIGZpbGVzIGxpc3QuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBvbkRlbGV0ZUZpbGUoZmlsZTogRmlsZSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy50b3RhbFNpemUgPSAwO1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZvciB0YWIga2V5IGtleWRvd24gZXZlbnQgaXQgcGFzc2VzIGV2ZW50IGFuZCByZXN0cmljdHMgb3RoZXIga2V5cyBmcm9tIGtleWJvYXJkLlxyXG4gICAqIEBwYXJhbSB7S2V5Ym9hcmRFdmVudH0gZXZlbnQgLUtleWRvd24gZXZlbnQgb2JqZWN0LlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQua2V5ICE9PSAnVGFiJykgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogRW1pdHMgZG93bmxvYWRTZWxlY3RlZEZpbGUgZXZlbnQuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBkb3dubG9hZEZpbGUoZmlsZTogRmlsZSB8IERvd25sb2FkQXR0YWNobWVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5kb3dubG9hZFNlbGVjdGVkRmlsZS5lbWl0KGZpbGUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZmlsZSBsaXN0LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEByZXR1cm4geyhudW1iZXIgfCBzdHJpbmcpfVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIpOiBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGluZGV4O1xyXG4gIH1cclxuICAvKipcclxuICAgKiBUcmlnZ2VycyBhbmQgb3BlbnMgdGhlIGZpbGUgYnJvd3NlIHdpbmRvdyB3aGVuIHRoZSBCcm93c2UgYnV0dG9uIGlzIGNsaWNrZWQuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBmaWxlQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVGaWVsZC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGZhaWxlZCBmaWxlIG5hbWVzIHdpdGggY29tbWEgc2VwYXJhdGlvbi5cclxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBmaWxlTmFtZXNcclxuICAgKiBAcmV0dXJuIHsqfSAge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGRpc3BsYXlGaWxlTmFtZXMoZmlsZU5hbWVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZmlsZU5hbWVzLmxlbmd0aCA/IGZpbGVOYW1lcy5qb2luKCcsJykgOiAnJztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyB0aGUgdW5zZWxlY3RlZCBmaWxlIGZyb20gdGhlIGJyb3dzZWQgb3Igc2VsZWN0ZWQgZmlsZXMgYW5kIGVtaXRzIHVwbG9hZFNlbGVjdGVkRmlsZXMgZXZlbnQgd2l0aCB0aGUgc2VsZWN0ZWQgZmlsZXMuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICByZW1vdmVGaWxlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgY29uc3QgZmlsZU5hbWVzOiBzdHJpbmdbXSA9IHRoaXMuc2VsZWN0ZWRGaWxlTmFtZXMuc3BsaXQoJywnKTtcclxuICAgIGZpbGVOYW1lcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVOYW1lcyA9IGZpbGVOYW1lcy5qb2luKCcsJyk7XHJcbiAgICB0aGlzLnVwbG9hZFNlbGVjdGVkRmlsZXMuZW1pdCh0aGlzLnNlbGVjdGVkRmlsZXMpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVOYW1lc0NvdW50LS07XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEZpbGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLnJlc2V0VXBsb2FkKCk7XHJcbiAgICAgIHRoaXMuZmlsZVVwbG9hZFN0YXR1cy5ub09mRmlsZXNVcGxvYWRlZFN1Y2Nlc3NmdWxseSA9IDA7XHJcbiAgICAgIHRoaXMuZmlsZVVwbG9hZFN0YXR1cy5maWxlc05hbWVPZlVwbG9hZEZhaWxlZCA9IFtdO1xyXG4gICAgICB0aGlzLmZpbGVVcGxvYWRTdGF0dXMuYWxyZWFkeUV4aXN0c0ZpbGVzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIGZpbGUgdXBsb2FkIGJ1dHRvbi5cclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGVuYWJsZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgY2FuRW5hYmxlVXBsb2FkQnV0dG9uKGVuYWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc1VwbG9hZEJ1dHRvbkRpc2FibGVkID0gZW5hYmxlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBCYXNlZCBvbiBpc011bHRpRmlsZVVwbG9hZCBmbGFnIHJldHVybiBmaWxlcyB0byBkb3dubG9hZC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEZpbGVzVG9Eb3dubG9hZCgpOiBEb3dubG9hZEF0dGFjaG1lbnRbXSB7XHJcbiAgICBpZiAodGhpcy5pc011bHRpRmlsZVVwbG9hZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5maWxlVXBsb2FkU3RhdHVzLnVwbG9hZGVkRmlsZXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBUcmFja0J5RnVuY3Rpb24gaXMgY2FsbGVkIGZvciBlYWNoIGZpbGUgaW4gdGhlIGNvbGxlY3Rpb24gYW5kIHJldHVybiBhIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGF0IGZpbGUuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4XHJcbiAgICogQHBhcmFtIHtGaWxlfSBmaWxlXHJcbiAgICogQHJldHVybiB7RmlsZX1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGdW5jKGluZGV4OiBudW1iZXIsIGZpbGU6IEZpbGUpOiBGaWxlIHtcclxuICAgIHJldHVybiBmaWxlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIGVtcHR5IHZhbHVlIHRvIGZpbGUgZm9ybSBjb250cm9sIG9uY2UgaXQgaXMgY2xpY2tlZC5cclxuICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudFxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgc2V0RW1wdHlWYWx1ZShldmVudDogRXZlbnQpIHtcclxuICAgIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUgPSAnJztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyB0aGUgZmlsZSBmcm9tIHNlbGVjdGVkRmlsZXMgb25jZSB0aGUgZmlsZSB1cGxvYWRlZCBzdWNjZXNzZnVsbHkgdG8gQVdTIFMzLlxyXG4gICAqIEBwYXJhbSB7RmlsZX0gZmlsZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcmVtb3ZlU2VsZWN0ZWRGaWxlSW5VcGxvYWRlZEZpbGVzKGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZEZpbGVzLmZpbmRJbmRleChcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgKHNlbGVjdGVkRmlsZTogYW55KSA9PiBzZWxlY3RlZEZpbGUubmFtZSA9PT0gZmlsZU5hbWVcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgY291bnQgb2YgZmlsZXMgc2VsZWN0ZWQgZm9yIHRoZSB1cGxvYWQuXHJcbiAgICogQHJldHVybiB7bnVtYmVyfVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0U2VsZWN0ZWRGaWxlQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRmlsZU5hbWVzQ291bnQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZFwiXHJcbiAgW25nQ2xhc3NdPVwiXHJcbiAgICBjb25maWcuaXNMYWJlbEFsaWduZWRMZWZ0XHJcbiAgICAgID8gJ2llZWVzYS1maWxlLXVwbG9hZF9fbGFiZWwtbGVmdCdcclxuICAgICAgOiAnaWVlZXNhLWZpbGUtdXBsb2FkX19sYWJlbC10b3AnXHJcbiAgXCJcclxuPlxyXG4gIDxtYXQtbGFiZWwgY2xhc3M9XCJpZWVlc2EtYm9keS1zbS0xNCBpZWVlc2EtZmlsZS11cGxvYWRfX2xhYmVsXCI+e3tcclxuICAgIGNvbmZpZy5sYWJlbFxyXG4gIH19PC9tYXQtbGFiZWw+XHJcbiAgPGllZWVzYS1maWxlLWRvd25sb2FkXHJcbiAgICBbZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnXT1cImZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZ1wiXHJcbiAgICBbYXBpQmFzZVVybF09XCJhcGlCYXNlVXJsXCJcclxuICAgIFtkb3dubG9hZEZpbGVzXT1cImdldEZpbGVzVG9Eb3dubG9hZCgpXCJcclxuICAgIChkb3dubG9hZFNlbGVjdGVkRmlsZSk9XCJkb3dubG9hZEZpbGUoJGV2ZW50KVwiXHJcbiAgPjwvaWVlZXNhLWZpbGUtZG93bmxvYWQ+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX3VwbG9hZCBwLTRcIlxyXG4gICAgaWVlZXNhRmlsZVVwbG9hZFxyXG4gICAgKGZpbGVEcm9wcGVkKT1cImdldEZpbGUoJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPHAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX3VwbG9hZF9faGVhZGluZyBtLTAgaWVlZXNhLWxhYmVsLWxnLWJvbGQtMTZcIj5cclxuICAgICAge3sgZmlsZVVwbG9hZEhlYWRpbmcgfX1cclxuICAgIDwvcD5cclxuICAgIDxkaXYgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX3VwbG9hZF9fYnJvd3NlLWZpbGVzXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgKGNsaWNrKT1cImZpbGVDbGljaygpXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZF9fYnJvd3NlLWJ0biBtYXQtdGVydGlhcnktYnV0dG9uXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpbGVVcGxvYWRBcmlhTGFiZWwuYnJvd3NlRmlsZXNcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWxlVXBsb2FkU3RhdHVzPy5pc1VwbG9hZGluZ1N0YXJ0XCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGZpbGVVcGxvYWRMYWJlbC5icm93c2VGaWxlcyB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTXVsdGlGaWxlVXBsb2FkXCI+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAjZmlsZUZpZWxkXHJcbiAgICAgICAgICAoY2hhbmdlKT1cImdldEZpbGUoJGFueSgkZXZlbnQpLnRhcmdldC5maWxlcylcIlxyXG4gICAgICAgICAgaGlkZGVuXHJcbiAgICAgICAgICBbYWNjZXB0XT1cImFsbG93ZWRGaWxlVHlwZXNcIlxyXG4gICAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImZpbGVVcGxvYWRTdGF0dXM/LmlzVXBsb2FkaW5nU3RhcnRcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNldEVtcHR5VmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCInaWVlZXNhLWZpbGUtaW5wdXQnXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc011bHRpRmlsZVVwbG9hZFwiPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgI2ZpbGVGaWVsZFxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJnZXRGaWxlKCRhbnkoJGV2ZW50KS50YXJnZXQuZmlsZXMpXCJcclxuICAgICAgICAgIGhpZGRlblxyXG4gICAgICAgICAgW2FjY2VwdF09XCJhbGxvd2VkRmlsZVR5cGVzXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWxlVXBsb2FkU3RhdHVzPy5pc1VwbG9hZGluZ1N0YXJ0XCJcclxuICAgICAgICAgIChjbGljayk9XCJzZXRFbXB0eVZhbHVlKCRldmVudClcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiJ2llZWVzYS1maWxlLWlucHV0J1wiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8cFxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLWZpbGUtdXBsb2FkX19hbGxvd2VkLWZpbGUtdGV4dCBtLTAgaWVlZXNhLWxhYmVsLW1kLTE0XCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFsbG93ZWRGaWxlVHlwZXNBbmRTaXplVGV4dFwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBhbGxvd2VkRmlsZVR5cGVzQW5kU2l6ZVRleHQgfX1cclxuICAgICAgPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLWZpbGUtdXBsb2FkX191cGxvYWQtd3JhcHBlciBkLWZsZXhcIlxyXG4gICAgICAqbmdJZj1cImlzRmlsZVNlbGVjdGVkXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWxpZ25Ccm93c2VkRmlsZXNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGVmYXVsdCdcIj5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX3VwbG9hZC13cmFwcGVyX19pbnB1dC1maWVsZCBpZWVlc2EtYm9keS1sZy0xNlwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIHZhbHVlPVwic2VsZWN0ZWRGaWxlTmFtZXNcIlxyXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWcucGxhY2Vob2xkZXIgPz8gJydcIlxyXG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcclxuICAgICAgICAgICAgICBbbmFtZV09XCJjb25maWcuY29udHJvbE5hbWVcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXHJcbiAgICAgICAgICAgICAgICBjb25maWcuYXJpYUxhYmVsID8/IGZpbGVVcGxvYWRBcmlhTGFiZWwuZmlsZVVwbG9hZElucHV0XHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBbYXJpYS1kZXNjcmliZWRieV09XCJjb25maWcuYXJpYURlc2NyaWJlZEJ5SWQgPz8gJydcIlxyXG4gICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZF9fdXBsb2FkLXdyYXBwZXItLWNsZWFyLWljb24tYnRuXCJcclxuICAgICAgICAgICAgICBtYXRTdWZmaXhcclxuICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpbGVVcGxvYWRBcmlhTGFiZWwucmVtb3ZlRmlsZUljb25cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZXNldFVwbG9hZCgpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZhLXJlZ3VsYXIgZmEtY2lyY2xlLXhtYXJrIGllZWVzYS1pbnB1dC1maWVsZC11cGxvYWRfX2ljb24tLWNsZWFyXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8aWVlZXNhLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWZpbGUtdXBsb2FkX191cGxvYWQtd3JhcHBlci0tdXBsb2FkLWJ0biBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgW2ljb25CdXR0b25dPVwiZmlsZVVwbG9hZEJ0blwiXHJcbiAgICAgICAgICAgIFtpc0xhYmVsTmVlZGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgKGljb25CdXR0b25DbGljayk9XCJvblVwbG9hZCgpXCJcclxuICAgICAgICAgICAgKm5nSWY9XCIhaXNGb3JtRmllbGRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9pZWVlc2EtaWNvbi1idXR0b24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2JvdHRvbSdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpZWVlc2EtZGlzcGxheS1icm93c2VkLWZpbGVzLWJvdHRvbVwiPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZF9fcHJvZ3Jlc3NfX3RleHRcIj5cclxuICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgZmlsZVVwbG9hZFN0YXR1cy5ub09mRmlsZXNVcGxvYWRlZFN1Y2Nlc3NmdWxseSArXHJcbiAgICAgICAgICAgICAgICAgIFwiIFwiICtcclxuICAgICAgICAgICAgICAgICAgZmlsZVVwbG9hZExhYmVsPy5vZiArXHJcbiAgICAgICAgICAgICAgICAgIFwiIFwiICtcclxuICAgICAgICAgICAgICAgICAgZ2V0U2VsZWN0ZWRGaWxlQ291bnQoKSArXHJcbiAgICAgICAgICAgICAgICAgIFwiIFwiICtcclxuICAgICAgICAgICAgICAgICAgZmlsZVVwbG9hZExhYmVsPy5maWxlc1VwbG9hZGVkXHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxwXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBwdC0xIG0tMCBpZWVlc2EtbGFiZWwtbWQtMTQgYWxpZ24taXRlbXMtY2VudGVyIGllZWVzYS1kaXNwbGF5LXNlbGVjdGVkLWZpbGVzXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICBsZXQgZmlsZSBvZiBzZWxlY3RlZEZpbGVzO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgaSA9IGluZGV4O1xyXG4gICAgICAgICAgICAgICAgICB0cmFja0J5OiB0cmFja0J5RnVuY1xyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBmaWxlPy5uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZF9fdXBsb2FkLXdyYXBwZXItLWNsZWFyLWljb24tYnRuXCJcclxuICAgICAgICAgICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImZpbGVVcGxvYWRBcmlhTGFiZWwucmVtb3ZlRmlsZUljb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRmlsZShpKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYS1yZWd1bGFyIGZhLWNpcmNsZS14bWFyayBpZWVlc2EtaW5wdXQtZmllbGQtdXBsb2FkX19pY29uLS1jbGVhclwiXHJcbiAgICAgICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZmlsZVVwbG9hZFN0YXR1cz8uZmlsZXNOYW1lT2ZVcGxvYWRGYWlsZWQ/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX2Vycm9yX190ZXh0XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICBmaWxlVXBsb2FkTGFiZWw/LnVwbG9hZEZvciArXHJcbiAgICAgICAgICAgICAgICAgIFwiIFwiICtcclxuICAgICAgICAgICAgICAgICAgZGlzcGxheUZpbGVOYW1lcyhmaWxlVXBsb2FkU3RhdHVzLmZpbGVzTmFtZU9mVXBsb2FkRmFpbGVkKSArXHJcbiAgICAgICAgICAgICAgICAgIFwiIFwiICtcclxuICAgICAgICAgICAgICAgICAgZmlsZVVwbG9hZExhYmVsPy51cGxvYWRFcnJvck1zZ1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAqbmdJZj1cImZpbGVVcGxvYWRTdGF0dXM/LmFscmVhZHlFeGlzdHNGaWxlcz8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZF9fZXJyb3JfX3RleHRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgIGRpc3BsYXlGaWxlTmFtZXMoZmlsZVVwbG9hZFN0YXR1cy5hbHJlYWR5RXhpc3RzRmlsZXMpICtcclxuICAgICAgICAgICAgICAgICAgXCIgXCIgK1xyXG4gICAgICAgICAgICAgICAgICBmaWxlVXBsb2FkTGFiZWw/LmZpbGVBbHJlYWR5RXhpc3RzXHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRm9ybUZpZWxkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX3Byb2dyZXNzXCIgKm5nSWY9XCJpc1VwbG9hZEluUHJvZ3Jlc3NcIj5cclxuICAgICAgICA8cCBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZF9fcHJvZ3Jlc3NfX3RleHRcIj5cclxuICAgICAgICAgIHt7IGZpbGVVcGxvYWRMYWJlbD8udXBsb2FkUHJvZ3Jlc3MgfX1cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXJcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWZpbGUtdXBsb2FkX19wcm9ncmVzcy0tYmFyXCJcclxuICAgICAgICAgIG1vZGU9XCJkZXRlcm1pbmF0ZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwidXBsb2FkZWRTaXplXCJcclxuICAgICAgICA+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPGllZWVzYS1mb3JtLWVycm9yXHJcbiAgICAgICpuZ0lmPVwiYWxpZ25GaWxlVXBsb2FkRXJyb3JNZXNzYWdlVG8gPT09IGFsaWdubWVudFR5cGUuTUlERExFXCJcclxuICAgICAgW2Zvcm1Hcm91cF09XCJncm91cFwiXHJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICAgID48L2llZWVzYS1mb3JtLWVycm9yPlxyXG4gICAgPGRpdlxyXG4gICAgICAqbmdJZj1cImlzVXBsb2FkQnV0dG9uTmVlZGVkICYmIGlzRmlsZVNlbGVjdGVkXCJcclxuICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgJ2p1c3RpZnktY29udGVudC1lbmQnOiBhY3Rpb25CdXR0b25BbGlnbiA9PT0gYWxpZ25tZW50VHlwZS5MRUZULFxyXG4gICAgICAgICAgJ2p1c3RpZnktY29udGVudC1jZW50ZXInOiBhY3Rpb25CdXR0b25BbGlnbiA9PT0gYWxpZ25tZW50VHlwZS5NSURETEUsXHJcbiAgICAgICAgICAnanVzdGlmeS1jb250ZW50LXN0YXJ0JzogYWN0aW9uQnV0dG9uQWxpZ24gPT09IGFsaWdubWVudFR5cGUuUklHSFQsXHJcbiAgICAgICAgfVwiXHJcbiAgICA+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICBtYXQtYnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJtYXQtcHJpbWFyeS1idXR0b24gaWVlZXNhLWR5bmFtaWMtZm9ybV9fYWN0aW9ucy0tcmlnaHQtYnRuXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAhaXNGaWxlU2VsZWN0ZWQgfHxcclxuICAgICAgICAgIGZpbGVVcGxvYWRTdGF0dXMuaXNVcGxvYWRpbmdTdGFydCB8fFxyXG4gICAgICAgICAgZmlsZVVwbG9hZFN0YXR1cy5ub09mRmlsZXNVcGxvYWRlZFN1Y2Nlc3NmdWxseSA+IDBcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgZmlsZVVwbG9hZExhYmVsPy51cGxvYWQgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxpZWVlc2EtZm9ybS1lcnJvclxyXG4gICpuZ0lmPVwiYWxpZ25GaWxlVXBsb2FkRXJyb3JNZXNzYWdlVG8gPT09IGFsaWdubWVudFR5cGUuQk9UVE9NXCJcclxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbj48L2llZWVzYS1mb3JtLWVycm9yPlxyXG48aWVlZXNhLWZvcm0tc3VwcG9ydC10ZXh0XHJcbiAgW2Zvcm1Hcm91cF09XCJncm91cFwiXHJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4+PC9pZWVlc2EtZm9ybS1zdXBwb3J0LXRleHQ+XHJcbiJdfQ==
474
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc2VudGF0aW9uL3NyYy9saWIvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFNBQVMsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRXpGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUd4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFB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S0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsNkJBQTZCO3NCQUFyQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFFRywrQkFBK0I7c0JBQXZDLEtBQUs7Z0JBR08sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQVFGLFlBQVk7c0JBRGYsS0FBSztnQkFVRiwyQkFBMkI7c0JBRDlCLEtBQUs7Z0JBT0ksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgKiBhcyBjb25zdGFudHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGb3JtRXJyb3JDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXN1cHBvcnQtdGV4dC9mb3JtLXN1cHBvcnQtdGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmllbGQtY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tY29udHJvbC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IEFsbG93ZWRGaWxlVHlwZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWxsb3dlZC1maWxlLXR5cGVzLm1vZGVsJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlLXVwbG9hZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSWNvbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFsaWduQnJvd3NlZEZpbGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FsaWduLWJyb3dzZWQtZmlsZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBBbGlnblR5cGUgfSBmcm9tICdAaWVlZXNhLW5wbS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGUtdXBsb2FkLXN0YXR1cy5tb2RlbCc7XHJcbmltcG9ydCB7IEZpbGVEb3dubG9hZENvbXBvbmVudCB9IGZyb20gJy4uL2ZpbGUtZG93bmxvYWQvZmlsZS1kb3dubG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlRG93bmxvYWRBbmREZWxldGVDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZS1kb3dubG9hZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBEb3dubG9hZEF0dGFjaG1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZG93bmxvYWQtZmlsZS5tb2RlbCc7XHJcbi8qKlxyXG4gKiBQcm92aWRlcyBmdW5jdGlvbmFsaXR5IGZvciB1cGxvYWRpbmcgZmlsZXMgdG8gYXdzIHMzIGJ1Y2tldC5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtZmlsZS11cGxvYWQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1FcnJvckNvbXBvbmVudCxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgRm9ybVN1cHBvcnRUZXh0Q29tcG9uZW50LFxyXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXHJcbiAgICBGaWxlVXBsb2FkRGlyZWN0aXZlLFxyXG4gICAgSWNvbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIEZpbGVEb3dubG9hZENvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZUZpZWxkJykgZmlsZUZpZWxkITogRWxlbWVudFJlZjtcclxuICBjb25zdGFudHMgPSBjb25zdGFudHM7XHJcbiAgZmlsZVVwbG9hZExhYmVsID0gdGhpcy5jb25zdGFudHM/LmZpbGVVcGxvYWQ/LmxhYmVsO1xyXG4gIGZpbGVVcGxvYWRBcmlhTGFiZWwgPSB0aGlzLmNvbnN0YW50cz8uZmlsZVVwbG9hZD8uYXJpYUxhYmVsO1xyXG4gIGZpbGVVcGxvYWRJY29uVXJsID0gdGhpcy5jb25zdGFudHM/LmZpbGVVcGxvYWQ/Lmljb25Vcmw7XHJcbiAgZmlsZVVwbG9hZEJ0biA9IHRoaXMuY29uc3RhbnRzPy5maWxlVXBsb2FkPy5idXR0b25zWzBdO1xyXG4gIGFsbG93ZWRGaWxlVHlwZUVycm9yTWVzc2FnZSA9XHJcbiAgICB0aGlzLmNvbnN0YW50cz8uZmlsZVVwbG9hZD8ubWVzc2FnZT8uZXJyb3I/LmludmFsaWRGaWxlRm9ybWF0O1xyXG4gIEBJbnB1dCgpIG1heEZpbGVTaXplRXJyb3JNZXNzYWdlID1cclxuICAgIHRoaXMuY29uc3RhbnRzPy5maWxlVXBsb2FkPy5tZXNzYWdlPy5lcnJvcj8uaW52YWxpZEZpbGVTaXplO1xyXG4gIGFsbG93ZWRGaWxlVHlwZXNBbmRTaXplVGV4dCA9ICcnO1xyXG4gIGNvbmZpZyE6IEZpZWxkQ29uZmlnO1xyXG4gIGdyb3VwITogRm9ybUdyb3VwO1xyXG4gIGlzVmFsaWRGaWxlVHlwZSA9IGZhbHNlO1xyXG4gIGlzVmFsaWRGaWxlU2l6ZSA9IGZhbHNlO1xyXG4gIGlzVmFsaWRNYXhGaWxlVXBsb2FkTGltaXQgPSBmYWxzZTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHNlbGVjdGVkRmlsZXM6IEZpbGVMaXN0IHwgRmlsZSB8IGFueSA9IFtdO1xyXG4gIHNlbGVjdGVkRmlsZU5hbWVzID0gJyc7XHJcbiAgaXNGb3JtRmllbGQgPSBmYWxzZTtcclxuICB0b3RhbFNpemUgPSAwO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgdXBsb2FkZWRGaWxlczogRmlsZUxpc3QgfCBGaWxlIHwgYW55ID0gW107XHJcbiAgQElucHV0KCkgYWN0aW9uQnV0dG9uQWxpZ24hOiBBbGlnblR5cGU7XHJcbiAgYWxpZ25tZW50VHlwZSA9IEFsaWduVHlwZTtcclxuICBpc1VwbG9hZEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lID0gJ2ZpbGVVcGxvYWQnO1xyXG4gIEBJbnB1dCgpIGlzRmlsZVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3VwcG9ydE1lc3NhZ2UhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYWxsb3dlZEZpbGVUeXBlczogQWxsb3dlZEZpbGVUeXBlc1tdID0gW107XHJcbiAgQElucHV0KCkgaXNNdWx0aUZpbGVVcGxvYWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1VwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICBASW5wdXQoKSBmaWxlVXBsb2FkSGVhZGluZyE6IHN0cmluZztcclxuICBASW5wdXQoKSBpc0FsbG93QW55RmlsZVR5cGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhbGlnbkJyb3dzZWRGaWxlcyA9IEFsaWduQnJvd3NlZEZpbGVzLkRFRkFVTFQ7XHJcbiAgQElucHV0KCkgaXNVcGxvYWRCdXR0b25OZWVkZWQgPSBmYWxzZTtcclxuICAvLyBEZWZhdWx0IG1heGltdW0gYWxsb3dlZCB1cGxvYWQgZmlsZSBzaXplIGlzIDJtYi5cclxuICBASW5wdXQoKSBtYXhVcGxvYWRGaWxlU2l6ZSA9IDI7XHJcbiAgcHJpdmF0ZSB1cGxvYWRlZFNpemVWYWx1ZSA9IDA7XHJcbiAgQElucHV0KCkgYWxpZ25GaWxlVXBsb2FkRXJyb3JNZXNzYWdlVG8gPSBBbGlnblR5cGUuQk9UVE9NO1xyXG4gIEBJbnB1dCgpIG1heEZpbGVzVXBsb2FkZWRPbmNlOiBudW1iZXIgPVxyXG4gICAgdGhpcy5jb25zdGFudHM/LmZpbGVVcGxvYWQ/LmxpbWl0Py5tYXhGaWxlc1VwbG9hZGVkT25jZTtcclxuICBASW5wdXQoKSBtYXhGaWxlc1VwbG9hZExpbWl0RXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgcHJpdmF0ZSBfZmlsZVVwbG9hZFN0YXR1cyE6IEZpbGVVcGxvYWRTdGF0dXM7XHJcblxyXG4gIEBJbnB1dCgpIGdldCBmaWxlVXBsb2FkU3RhdHVzKCk6IEZpbGVVcGxvYWRTdGF0dXMge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpbGVVcGxvYWRTdGF0dXM7XHJcbiAgfVxyXG4gIHNldCBmaWxlVXBsb2FkU3RhdHVzKHZhbHVlOiBGaWxlVXBsb2FkU3RhdHVzKSB7XHJcbiAgICB0aGlzLl9maWxlVXBsb2FkU3RhdHVzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCB1cGxvYWRlZFNpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnVwbG9hZGVkU2l6ZVZhbHVlO1xyXG4gIH1cclxuXHJcbiAgc2V0IHVwbG9hZGVkU2l6ZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnVwbG9hZGVkU2l6ZVZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2ZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZyE6IEZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZztcclxuICBASW5wdXQoKVxyXG4gIHNldCBmaWxlRG93bmxvYWRBbmREZWxldGVDb25maWcodmFsdWU6IEZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZykge1xyXG4gICAgdGhpcy5fZmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBmaWxlRG93bmxvYWRBbmREZWxldGVDb25maWcoKTogRmlsZURvd25sb2FkQW5kRGVsZXRlQ29uZmlnIHtcclxuICAgIHJldHVybiB0aGlzLl9maWxlRG93bmxvYWRBbmREZWxldGVDb25maWc7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSB1cGxvYWRTZWxlY3RlZEZpbGVzID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlIHwgRmlsZUxpc3Q+KCk7XHJcbiAgQE91dHB1dCgpIGRvd25sb2FkU2VsZWN0ZWRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIEZpbGUgfCBEb3dubG9hZEF0dGFjaG1lbnRcclxuICA+KCk7XHJcbiAgYXBpQmFzZVVybCE6IHN0cmluZztcclxuICBzZWxlY3RlZEZpbGVOYW1lc0NvdW50ID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHB1YmxpYyBmb3JtVXRpbGl0eVNlcnZpY2U6IEZvcm1VdGlsaXR5U2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIGZpbGVVcGxvYWRTZXJ2aWNlOiBGaWxlVXBsb2FkU2VydmljZSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHktZnVuY3Rpb25cclxuICApIHt9XHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgY29tcG9uZW50IHByb3BlcnRpZXMgYW5kIHJldHJpZXZlcyBjb25maWd1cmF0aW9uLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRm9ybUZpZWxkID0gISF0aGlzLmNvbmZpZztcclxuICAgIHRoaXMuYXBpQmFzZVVybCA9IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UuZ2V0QXBpQmFzZVVybCgpO1xyXG4gICAgdGhpcy5jb25maWcgPVxyXG4gICAgICB0aGlzLmNvbmZpZyA/P1xyXG4gICAgICB0aGlzLmZvcm1VdGlsaXR5U2VydmljZS5nZXRGb3JtRmllbGRDb25maWcoXHJcbiAgICAgICAgJ2ZpbGVVcGxvYWQnLFxyXG4gICAgICAgIEZvcm1Db250cm9sVHlwZS5GSUxFX1VQTE9BRFxyXG4gICAgICApO1xyXG4gICAgdGhpcy5ncm91cCA9XHJcbiAgICAgIHRoaXMuZ3JvdXAgPz8gdGhpcy5mb3JtVXRpbGl0eVNlcnZpY2UuZ2V0Rm9ybUdyb3VwKCdmaWxlVXBsb2FkJyk7XHJcbiAgICB0aGlzLmNvbmZpZy5zdXBwb3J0TWVzc2FnZSA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5zdXBwb3J0TWVzc2FnZSA/PyB0aGlzLnN1cHBvcnRNZXNzYWdlO1xyXG4gICAgdGhpcy5pc011bHRpRmlsZVVwbG9hZCA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5pc011bHRpRmlsZVVwbG9hZCA/PyB0aGlzLmlzTXVsdGlGaWxlVXBsb2FkO1xyXG4gICAgdGhpcy5tYXhVcGxvYWRGaWxlU2l6ZSA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5tYXhVcGxvYWRGaWxlU2l6ZSA/PyB0aGlzLm1heFVwbG9hZEZpbGVTaXplO1xyXG4gICAgdGhpcy5hbGxvd2VkRmlsZVR5cGVzID1cclxuICAgICAgdGhpcy5jb25maWc/LmFsbG93ZWRGaWxlVHlwZXMgPz8gdGhpcy5hbGxvd2VkRmlsZVR5cGVzO1xyXG4gICAgdGhpcy5pc0FsbG93QW55RmlsZVR5cGUgPVxyXG4gICAgICB0aGlzLmNvbmZpZz8uaXNBbGxvd0FueUZpbGVUeXBlID8/IHRoaXMuaXNBbGxvd0FueUZpbGVUeXBlO1xyXG4gICAgdGhpcy5hbGlnbkJyb3dzZWRGaWxlcyA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5hbGlnbkJyb3dzZWRGaWxlcyA/PyB0aGlzLmFsaWduQnJvd3NlZEZpbGVzO1xyXG4gICAgdGhpcy5pc1VwbG9hZEJ1dHRvbk5lZWRlZCA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5pc1VwbG9hZEJ1dHRvbk5lZWRlZCA/PyB0aGlzLmlzVXBsb2FkQnV0dG9uTmVlZGVkO1xyXG4gICAgdGhpcy5hY3Rpb25CdXR0b25BbGlnbiA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5hY3Rpb25CdXR0b25BbGlnbiA/PyB0aGlzLmFjdGlvbkJ1dHRvbkFsaWduO1xyXG4gICAgdGhpcy5hbGlnbkZpbGVVcGxvYWRFcnJvck1lc3NhZ2VUbyA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5hbGlnbkZpbGVVcGxvYWRFcnJvck1lc3NhZ2VUbyA/P1xyXG4gICAgICB0aGlzLmFsaWduRmlsZVVwbG9hZEVycm9yTWVzc2FnZVRvO1xyXG4gICAgdGhpcy5nZXRBbGxvd2VkRmlsZUZvcm1hdFNpemVNZXNzYWdlKCk7XHJcbiAgICB0aGlzLmZpbGVVcGxvYWRIZWFkaW5nID1cclxuICAgICAgdGhpcy5jb25maWc/LmZpbGVVcGxvYWRIZWFkaW5nID8/XHJcbiAgICAgIHRoaXMuZmlsZVVwbG9hZEhlYWRpbmcgPz9cclxuICAgICAgdGhpcy5maWxlVXBsb2FkTGFiZWwuZmlsZVVwbG9hZDtcclxuICAgIHRoaXMuY29uZmlnLmFsbG93ZWRGaWxlVHlwZUVycm9yTWVzc2FnZSA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5hbGxvd2VkRmlsZVR5cGVFcnJvck1lc3NhZ2UgPz9cclxuICAgICAgdGhpcy5hbGxvd2VkRmlsZVR5cGVFcnJvck1lc3NhZ2U7XHJcbiAgICB0aGlzLmNvbmZpZy5tYXhGaWxlU2l6ZUVycm9yTWVzc2FnZSA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5tYXhGaWxlU2l6ZUVycm9yTWVzc2FnZSA/PyB0aGlzLm1heEZpbGVTaXplRXJyb3JNZXNzYWdlO1xyXG4gICAgdGhpcy5pc0ZpbGVTZWxlY3RlZCA9IHRoaXMuY29uZmlnPy5pc0ZpbGVTZWxlY3RlZCA/PyB0aGlzLmlzRmlsZVNlbGVjdGVkO1xyXG4gICAgdGhpcy5tYXhGaWxlc1VwbG9hZGVkT25jZSA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5tYXhGaWxlc1VwbG9hZGVkT25jZSA/PyB0aGlzLm1heEZpbGVzVXBsb2FkZWRPbmNlO1xyXG4gICAgdGhpcy5tYXhGaWxlc1VwbG9hZExpbWl0RXJyb3JNZXNzYWdlID1cclxuICAgICAgdGhpcy5jb25maWc/Lm1heEZpbGVzVXBsb2FkTGltaXRFcnJvck1lc3NhZ2UgPz9cclxuICAgICAgdGhpcy5tYXhGaWxlc1VwbG9hZExpbWl0RXJyb3JNZXNzYWdlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGb3JtYXRzIGFsbG93ZWQgZmlsZSBmb3JtYXQgYW5kIHNpemUgbWVzc2FnZSBpbiByZXF1aXJlZCBmb3JtYXQuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRBbGxvd2VkRmlsZUZvcm1hdFNpemVNZXNzYWdlKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3VwcG9ydGVkRmlsZUZvcm1hdFRleHQgPSB0aGlzLmFsbG93ZWRGaWxlVHlwZXMuam9pbignLCAnKTtcclxuICAgIHRoaXMuYWxsb3dlZEZpbGVUeXBlc0FuZFNpemVUZXh0ID0gYCR7dGhpcy5maWxlVXBsb2FkTGFiZWw/LmFsbG93ZWRGaWxlU2l6ZTF9XHJcbiAgICAke3RoaXMubWF4VXBsb2FkRmlsZVNpemV9YDtcclxuICAgIGlmICh0aGlzLmlzTXVsdGlGaWxlVXBsb2FkKSB7XHJcbiAgICAgIHRoaXMuYWxsb3dlZEZpbGVUeXBlc0FuZFNpemVUZXh0ICs9IGAgJHt0aGlzLmNvbnN0YW50cz8uZmlsZVVwbG9hZD8ubGFiZWw/Lm1ifWA7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuaXNBbGxvd0FueUZpbGVUeXBlKSB7XHJcbiAgICAgIHRoaXMuYWxsb3dlZEZpbGVUeXBlc0FuZFNpemVUZXh0ICs9IGAke3RoaXMuZmlsZVVwbG9hZExhYmVsPy5hbGxvd2VkRmlsZVNpemUyfSAke3RoaXMuZmlsZVVwbG9hZExhYmVsPy5hbGxvd2VkRmlsZUZvcm1hdH0gJHtzdXBwb3J0ZWRGaWxlRm9ybWF0VGV4dH0uYDtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgc2VsZWN0ZWQgZmlsZShzKSBhbmQgZW1pdHMgRmlsZVVwbG9hZCBldmVudCBlbWl0dGVyIGZvciB1cGxvYWRpbmcgdGhlIGZpbGUocykuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZVxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0RmlsZShmaWxlOiBGaWxlIHwgRmlsZUxpc3QpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlcyA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVOYW1lcyA9ICcnO1xyXG4gICAgdGhpcy5maWxlVXBsb2FkU3RhdHVzID0ge1xyXG4gICAgICBhbHJlYWR5RXhpc3RzRmlsZXM6IFtdLFxyXG4gICAgICBmaWxlc05hbWVPZlVwbG9hZEZhaWxlZDogW10sXHJcbiAgICAgIG5vT2ZGaWxlc1VwbG9hZGVkU3VjY2Vzc2Z1bGx5OiAwLFxyXG4gICAgICBpc1VwbG9hZGluZ1N0YXJ0OiBmYWxzZSxcclxuICAgICAgdXBsb2FkZWRGaWxlczogdGhpcy5maWxlVXBsb2FkU3RhdHVzPy51cGxvYWRlZEZpbGVzID8/IFtdLFxyXG4gICAgfTtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlTmFtZXNDb3VudCA9IDA7XHJcbiAgICBjb25zdCBmaWxlVXBsb2FkRm9ybUNvbnRyb2wgPSB0aGlzLmdyb3VwPy5nZXQoXHJcbiAgICAgIHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSA/PyAnZmlsZVVwbG9hZCdcclxuICAgICk7XHJcbiAgICBpZiAoZmlsZVVwbG9hZEZvcm1Db250cm9sKSB7XHJcbiAgICAgIGZpbGVVcGxvYWRGb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNNdWx0aUZpbGVVcGxvYWQpIHtcclxuICAgICAgY29uc3QgaXNWYWxpZCA9IHRoaXMudmFsaWRhdGVGaWxlKGZpbGUpO1xyXG4gICAgICB0aGlzLmlzRmlsZVNlbGVjdGVkID0gaXNWYWxpZDtcclxuICAgICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgICBpZiAoZmlsZSkge1xyXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyhmaWxlKS5mb3JFYWNoKChmaWxlSXRlbTogRmlsZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZXM/LnB1c2goZmlsZUl0ZW0pO1xyXG4gICAgICAgICAgICB0aGlzLnRvdGFsU2l6ZSArPSBmaWxlSXRlbS5zaXplO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEZpbGVzPy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZU5hbWVzQ291bnQgPSB0aGlzLnNlbGVjdGVkRmlsZXMubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRmlsZXNOYW1lczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMsIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlcz8uZm9yRWFjaCgoZmlsZTogRmlsZSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgc2VsZWN0ZWRGaWxlc05hbWVzLnB1c2goZmlsZS5uYW1lKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZU5hbWVzID0gc2VsZWN0ZWRGaWxlc05hbWVzPy5qb2luKCcsICcpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgdGhpcy5ncm91cFxyXG4gICAgICAgICAgLmdldCh0aGlzLmNvbmZpZz8uY29udHJvbE5hbWUpXHJcbiAgICAgICAgICA/LnNldFZhbHVlKHRoaXMuc2VsZWN0ZWRGaWxlTmFtZXMpO1xyXG4gICAgICAgIHRoaXMuZmlsZVVwbG9hZEJ0bi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLmlzRm9ybUZpZWxkKVxyXG4gICAgICAgICAgdGhpcy51cGxvYWRTZWxlY3RlZEZpbGVzPy5lbWl0KHRoaXMuc2VsZWN0ZWRGaWxlcyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGZpbGVJdGVtID0gT2JqZWN0LnZhbHVlcyhmaWxlKVswXTtcclxuICAgICAgY29uc3QgaXNWYWxpZCA9IHRoaXMudmFsaWRhdGVGaWxlKGZpbGVJdGVtKTtcclxuICAgICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgICB0aGlzLmlzRmlsZVNlbGVjdGVkID0gaXNWYWxpZDtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZU5hbWVzID0gZmlsZUl0ZW0ubmFtZTtcclxuICAgICAgICB0aGlzLnRvdGFsU2l6ZSA9IGZpbGVJdGVtLnNpemU7XHJcbiAgICAgICAgdGhpcy5maWxlVXBsb2FkU2VydmljZT8uY29udmVydEZpbGVUb0J5dGVBcnJheShmaWxlSXRlbSk7XHJcbiAgICAgICAgdGhpcy5ncm91cFxyXG4gICAgICAgICAgLmdldCh0aGlzLmNvbmZpZy5jb250cm9sTmFtZSlcclxuICAgICAgICAgID8uc2V0VmFsdWUodGhpcy5zZWxlY3RlZEZpbGVOYW1lcyk7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNGb3JtRmllbGQpIHRoaXMudXBsb2FkU2VsZWN0ZWRGaWxlcy5lbWl0KGZpbGVJdGVtKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsZXMgPSBmaWxlO1xyXG4gICAgICAgIHRoaXMuZmlsZVVwbG9hZEJ0bi5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyB0aGUgc2VsZWN0ZWQgZmlsZShzKSBmb3JtYXQgYW5kIHNpemUuXHJcbiAgICogQHBhcmFtIHsoRmlsZSB8IEZpbGVMaXN0KX0gZmlsZVxyXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICB2YWxpZGF0ZUZpbGUoZmlsZTogRmlsZSB8IEZpbGVMaXN0KTogYm9vbGVhbiB7XHJcbiAgICB0aGlzLmlzVmFsaWRGaWxlVHlwZSA9ICF0aGlzLmlzQWxsb3dBbnlGaWxlVHlwZVxyXG4gICAgICA/IHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UudmFsaWRhdGVGaWxlVHlwZXMoXHJcbiAgICAgICAgICBmaWxlLFxyXG4gICAgICAgICAgdGhpcy5hbGxvd2VkRmlsZVR5cGVzLFxyXG4gICAgICAgICAgdGhpcy5pc011bHRpRmlsZVVwbG9hZFxyXG4gICAgICAgIClcclxuICAgICAgOiB0cnVlO1xyXG4gICAgaWYgKHRoaXMuaXNNdWx0aUZpbGVVcGxvYWQpIHtcclxuICAgICAgdGhpcy5pc1ZhbGlkTWF4RmlsZVVwbG9hZExpbWl0ID1cclxuICAgICAgICBPYmplY3QudmFsdWVzKGZpbGUpLmxlbmd0aCA8PVxyXG4gICAgICAgIHRoaXMuY29uc3RhbnRzPy5maWxlVXBsb2FkPy5saW1pdD8ubWF4RmlsZXNVcGxvYWRlZE9uY2U7XHJcbiAgICAgIGlmICghdGhpcy5pc1ZhbGlkTWF4RmlsZVVwbG9hZExpbWl0KSB7XHJcbiAgICAgICAgdGhpcy5ncm91cD8uZ2V0KHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSk/LnNldEVycm9ycyh7XHJcbiAgICAgICAgICBtYXhGaWxlc1VwbG9hZExpbWl0UmVhY2hlZDogdHJ1ZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdGhpcy5pc1ZhbGlkRmlsZVR5cGUpIHtcclxuICAgICAgdGhpcy5ncm91cD8uZ2V0KHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSk/LnNldEVycm9ycyh7XHJcbiAgICAgICAgaW52YWxpZEZpbGVUeXBlOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pc1ZhbGlkRmlsZVNpemUgPSB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLnZhbGlkYXRlRmlsZVNpemUoXHJcbiAgICAgIGZpbGUsXHJcbiAgICAgIHRoaXMubWF4VXBsb2FkRmlsZVNpemUsXHJcbiAgICAgIHRoaXMuaXNNdWx0aUZpbGVVcGxvYWRcclxuICAgICk7XHJcbiAgICBpZiAoIXRoaXMuaXNWYWxpZEZpbGVTaXplKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXA/LmdldCh0aGlzLmNvbmZpZz8uY29udHJvbE5hbWUpPy5zZXRFcnJvcnMoe1xyXG4gICAgICAgIG1heEZpbGVTaXplOiB0cnVlLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEluaXRpYXRlcyB0aGUgZmlsZSB1cGxvYWQgcHJvY2VzcyBmb3IgaW5kZXBlbmRlbnQgZmlsZSB1cGxvYWQgY29tcG9uZW50LlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25VcGxvYWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwbG9hZFNlbGVjdGVkRmlsZXMuZW1pdCh0aGlzLnNlbGVjdGVkRmlsZXMpO1xyXG4gICAgaWYgKHRoaXMuZmlsZVVwbG9hZFNlcnZpY2U/LmdldEZpbGVVcGxvYWRTdGF0dXMoKSkge1xyXG4gICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnNlbGVjdGVkRmlsZXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIENsZWFycyB0aGUgZm9ybSBncm91cCBjb250cm9sIHZhbHVlIG9mIHR5cGUgaW5wdXQgYW5kIHJlc2V0cyBvdGhlciBmaWxlIHVwbG9hZCBwcm9wZXJ0aWVzLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcmVzZXRVcGxvYWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLmNsZWFyRmlsZUJ5dGVBcnJheSgpO1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW107XHJcbiAgICB0aGlzLmlzVXBsb2FkSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVOYW1lcyA9ICcnO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVzID0gW107XHJcbiAgICB0aGlzLmlzRmlsZVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmdyb3VwLmdldCh0aGlzLmNvbmZpZz8uY29udHJvbE5hbWUpPy5zZXRWYWx1ZSgnJyk7XHJcbiAgICB0aGlzLmZpbGVVcGxvYWRCdG4uZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVOYW1lc0NvdW50ID0gMDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyB0aGUgc2VsZWN0ZWQgZmlsZSBmcm9tIHRoZSB1cGxvYWRlZCBmaWxlcyBsaXN0LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25EZWxldGVGaWxlKGZpbGU6IEZpbGUsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMudG90YWxTaXplID0gMDtcclxuICAgIHRoaXMudXBsb2FkZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBGb3IgdGFiIGtleSBrZXlkb3duIGV2ZW50IGl0IHBhc3NlcyBldmVudCBhbmQgcmVzdHJpY3RzIG90aGVyIGtleXMgZnJvbSBrZXlib2FyZC5cclxuICAgKiBAcGFyYW0ge0tleWJvYXJkRXZlbnR9IGV2ZW50IC1LZXlkb3duIGV2ZW50IG9iamVjdC5cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSAhPT0gJ1RhYicpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGRvd25sb2FkU2VsZWN0ZWRGaWxlIGV2ZW50LlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZG93bmxvYWRGaWxlKGZpbGU6IEZpbGUgfCBEb3dubG9hZEF0dGFjaG1lbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuZG93bmxvYWRTZWxlY3RlZEZpbGUuZW1pdChmaWxlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGZpbGUgbGlzdC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcmV0dXJuIHsobnVtYmVyIHwgc3RyaW5nKX1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyKTogbnVtYmVyIHwgc3RyaW5nIHtcclxuICAgIHJldHVybiBpbmRleDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlcnMgYW5kIG9wZW5zIHRoZSBmaWxlIGJyb3dzZSB3aW5kb3cgd2hlbiB0aGUgQnJvd3NlIGJ1dHRvbiBpcyBjbGlja2VkLlxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZmlsZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlRmllbGQubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBmYWlsZWQgZmlsZSBuYW1lcyB3aXRoIGNvbW1hIHNlcGFyYXRpb24uXHJcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gZmlsZU5hbWVzXHJcbiAgICogQHJldHVybiB7Kn0gIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBkaXNwbGF5RmlsZU5hbWVzKGZpbGVOYW1lczogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGZpbGVOYW1lcy5sZW5ndGggPyBmaWxlTmFtZXMuam9pbignLCcpIDogJyc7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgdGhlIHVuc2VsZWN0ZWQgZmlsZSBmcm9tIHRoZSBicm93c2VkIG9yIHNlbGVjdGVkIGZpbGVzIGFuZCBlbWl0cyB1cGxvYWRTZWxlY3RlZEZpbGVzIGV2ZW50IHdpdGggdGhlIHNlbGVjdGVkIGZpbGVzLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBtZW1iZXJvZiBGaWxlVXBsb2FkQ29tcG9uZW50XHJcbiAgICovXHJcbiAgcmVtb3ZlRmlsZShpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGNvbnN0IGZpbGVOYW1lczogc3RyaW5nW10gPSB0aGlzLnNlbGVjdGVkRmlsZU5hbWVzLnNwbGl0KCcsJyk7XHJcbiAgICBmaWxlTmFtZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlTmFtZXMgPSBmaWxlTmFtZXMuam9pbignLCcpO1xyXG4gICAgdGhpcy51cGxvYWRTZWxlY3RlZEZpbGVzLmVtaXQodGhpcy5zZWxlY3RlZEZpbGVzKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWxlTmFtZXNDb3VudC0tO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRGaWxlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5yZXNldFVwbG9hZCgpO1xyXG4gICAgICB0aGlzLmZpbGVVcGxvYWRTdGF0dXMubm9PZkZpbGVzVXBsb2FkZWRTdWNjZXNzZnVsbHkgPSAwO1xyXG4gICAgICB0aGlzLmZpbGVVcGxvYWRTdGF0dXMuZmlsZXNOYW1lT2ZVcGxvYWRGYWlsZWQgPSBbXTtcclxuICAgICAgdGhpcy5maWxlVXBsb2FkU3RhdHVzLmFscmVhZHlFeGlzdHNGaWxlcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSBmaWxlIHVwbG9hZCBidXR0b24uXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBlbmFibGVcclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGNhbkVuYWJsZVVwbG9hZEJ1dHRvbihlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNVcGxvYWRCdXR0b25EaXNhYmxlZCA9IGVuYWJsZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQmFzZWQgb24gaXNNdWx0aUZpbGVVcGxvYWQgZmxhZyByZXR1cm4gZmlsZXMgdG8gZG93bmxvYWQuXHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICBnZXRGaWxlc1RvRG93bmxvYWQoKTogRG93bmxvYWRBdHRhY2htZW50W10ge1xyXG4gICAgaWYgKHRoaXMuaXNNdWx0aUZpbGVVcGxvYWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZFN0YXR1cy51cGxvYWRlZEZpbGVzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkZWRGaWxlcztcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVHJhY2tCeUZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgZWFjaCBmaWxlIGluIHRoZSBjb2xsZWN0aW9uIGFuZCByZXR1cm4gYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhhdCBmaWxlLlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleFxyXG4gICAqIEBwYXJhbSB7RmlsZX0gZmlsZVxyXG4gICAqIEByZXR1cm4ge0ZpbGV9XHJcbiAgICogQG1lbWJlcm9mIEZpbGVVcGxvYWRDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5RnVuYyhpbmRleDogbnVtYmVyLCBmaWxlOiBGaWxlKTogRmlsZSB7XHJcbiAgICByZXR1cm4gZmlsZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyBlbXB0eSB2YWx1ZSB0byBmaWxlIGZvcm0gY29udHJvbCBvbmNlIGl0IGlzIGNsaWNrZWQuXHJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnRcclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHNldEVtcHR5VmFsdWUoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gJyc7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgdGhlIGZpbGUgZnJvbSBzZWxlY3RlZEZpbGVzIG9uY2UgdGhlIGZpbGUgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5IHRvIEFXUyBTMy5cclxuICAgKiBAcGFyYW0ge0ZpbGV9IGZpbGVcclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIHJlbW92ZVNlbGVjdGVkRmlsZUluVXBsb2FkZWRGaWxlcyhmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRGaWxlcy5maW5kSW5kZXgoXHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgIChzZWxlY3RlZEZpbGU6IGFueSkgPT4gc2VsZWN0ZWRGaWxlLm5hbWUgPT09IGZpbGVOYW1lXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGNvdW50IG9mIGZpbGVzIHNlbGVjdGVkIGZvciB0aGUgdXBsb2FkLlxyXG4gICAqIEByZXR1cm4ge251bWJlcn1cclxuICAgKiBAbWVtYmVyb2YgRmlsZVVwbG9hZENvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldFNlbGVjdGVkRmlsZUNvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEZpbGVOYW1lc0NvdW50O1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgW2Zvcm1Hcm91cF09XCJncm91cFwiXHJcbiAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRcIlxyXG4gIFtuZ0NsYXNzXT1cIlxyXG4gICAgY29uZmlnLmlzTGFiZWxBbGlnbmVkTGVmdFxyXG4gICAgICA/ICdpZWVlc2EtZmlsZS11cGxvYWRfX2xhYmVsLWxlZnQnXHJcbiAgICAgIDogJ2llZWVzYS1maWxlLXVwbG9hZF9fbGFiZWwtdG9wJ1xyXG4gIFwiXHJcbj5cclxuICA8bWF0LWxhYmVsIGNsYXNzPVwiaWVlZXNhLWJvZHktc20tMTQgaWVlZXNhLWZpbGUtdXBsb2FkX19sYWJlbFwiPnt7XHJcbiAgICBjb25maWcubGFiZWxcclxuICB9fTwvbWF0LWxhYmVsPlxyXG4gIDxpZWVlc2EtZmlsZS1kb3dubG9hZFxyXG4gICAgW2ZpbGVEb3dubG9hZEFuZERlbGV0ZUNvbmZpZ109XCJmaWxlRG93bmxvYWRBbmREZWxldGVDb25maWdcIlxyXG4gICAgW2FwaUJhc2VVcmxdPVwiYXBpQmFzZVVybFwiXHJcbiAgICBbZG93bmxvYWRGaWxlc109XCJnZXRGaWxlc1RvRG93bmxvYWQoKVwiXHJcbiAgICAoZG93bmxvYWRTZWxlY3RlZEZpbGUpPVwiZG93bmxvYWRGaWxlKCRldmVudClcIlxyXG4gID48L2llZWVzYS1maWxlLWRvd25sb2FkPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWVlZXNhLWZpbGUtdXBsb2FkX191cGxvYWQgcC00XCJcclxuICAgIGllZWVzYUZpbGVVcGxvYWRcclxuICAgIChmaWxlRHJvcHBlZCk9XCJnZXRGaWxlKCRldmVudClcIlxyXG4gID5cclxuICAgIDxwIGNsYXNzPVwiaWVlZXNhLWZpbGUtdXBsb2FkX191cGxvYWRfX2hlYWRpbmcgbS0wIGllZWVzYS1sYWJlbC1sZy1ib2xkLTE2XCI+XHJcbiAgICAgIHt7IGZpbGVVcGxvYWRIZWFkaW5nIH19XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWZpbGUtdXBsb2FkX191cGxvYWRfX2Jyb3dzZS1maWxlc1wiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIChjbGljayk9XCJmaWxlQ2xpY2soKVwiXHJcbiAgICAgICAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX2Jyb3dzZS1idG4gbWF0LXRlcnRpYXJ5LWJ1dHRvblwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJmaWxlVXBsb2FkQXJpYUxhYmVsLmJyb3dzZUZpbGVzXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZmlsZVVwbG9hZFN0YXR1cz8uaXNVcGxvYWRpbmdTdGFydFwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBmaWxlVXBsb2FkTGFiZWwuYnJvd3NlRmlsZXMgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc011bHRpRmlsZVVwbG9hZFwiPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxyXG4gICAgICAgICAgI2ZpbGVGaWVsZFxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJnZXRGaWxlKCRhbnkoJGV2ZW50KS50YXJnZXQuZmlsZXMpXCJcclxuICAgICAgICAgIGhpZGRlblxyXG4gICAgICAgICAgW2FjY2VwdF09XCJhbGxvd2VkRmlsZVR5cGVzXCJcclxuICAgICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWxlVXBsb2FkU3RhdHVzPy5pc1VwbG9hZGluZ1N0YXJ0XCJcclxuICAgICAgICAgIChjbGljayk9XCJzZXRFbXB0eVZhbHVlKCRldmVudClcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwiJ2llZWVzYS1maWxlLWlucHV0J1wiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNNdWx0aUZpbGVVcGxvYWRcIj5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICNmaWxlRmllbGRcclxuICAgICAgICAgIChjaGFuZ2UpPVwiZ2V0RmlsZSgkYW55KCRldmVudCkudGFyZ2V0LmZpbGVzKVwiXHJcbiAgICAgICAgICBoaWRkZW5cclxuICAgICAgICAgIFthY2NlcHRdPVwiYWxsb3dlZEZpbGVUeXBlc1wiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZmlsZVVwbG9hZFN0YXR1cz8uaXNVcGxvYWRpbmdTdGFydFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic2V0RW1wdHlWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cIidpZWVlc2EtZmlsZS1pbnB1dCdcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPHBcclxuICAgICAgICBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZF9fYWxsb3dlZC1maWxlLXRleHQgbS0wIGllZWVzYS1sYWJlbC1tZC0xNFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhbGxvd2VkRmlsZVR5cGVzQW5kU2l6ZVRleHRcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgYWxsb3dlZEZpbGVUeXBlc0FuZFNpemVUZXh0IH19XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZF9fdXBsb2FkLXdyYXBwZXIgZC1mbGV4XCJcclxuICAgICAgKm5nSWY9XCJpc0ZpbGVTZWxlY3RlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFsaWduQnJvd3NlZEZpbGVzXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RlZmF1bHQnXCI+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWZpbGUtdXBsb2FkX191cGxvYWQtd3JhcHBlcl9faW5wdXQtZmllbGQgaWVlZXNhLWJvZHktbGctMTZcIlxyXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICB2YWx1ZT1cInNlbGVjdGVkRmlsZU5hbWVzXCJcclxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnLnBsYWNlaG9sZGVyID8/ICcnXCJcclxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbmZpZy5jb250cm9sTmFtZVwiXHJcbiAgICAgICAgICAgICAgW25hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcclxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxyXG4gICAgICAgICAgICAgICAgY29uZmlnLmFyaWFMYWJlbCA/PyBmaWxlVXBsb2FkQXJpYUxhYmVsLmZpbGVVcGxvYWRJbnB1dFxyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiY29uZmlnLmFyaWFEZXNjcmliZWRCeUlkID8/ICcnXCJcclxuICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX3VwbG9hZC13cmFwcGVyLS1jbGVhci1pY29uLWJ0blwiXHJcbiAgICAgICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJmaWxlVXBsb2FkQXJpYUxhYmVsLnJlbW92ZUZpbGVJY29uXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVzZXRVcGxvYWQoKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmYS1yZWd1bGFyIGZhLWNpcmNsZS14bWFyayBpZWVlc2EtaW5wdXQtZmllbGQtdXBsb2FkX19pY29uLS1jbGVhclwiXHJcbiAgICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPGllZWVzYS1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZF9fdXBsb2FkLXdyYXBwZXItLXVwbG9hZC1idG4gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICAgIFtpY29uQnV0dG9uXT1cImZpbGVVcGxvYWRCdG5cIlxyXG4gICAgICAgICAgICBbaXNMYWJlbE5lZWRlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIChpY29uQnV0dG9uQ2xpY2spPVwib25VcGxvYWQoKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzRm9ybUZpZWxkXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvaWVlZXNhLWljb24tYnV0dG9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidib3R0b20nXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWRpc3BsYXktYnJvd3NlZC1maWxlcy1ib3R0b21cIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX3Byb2dyZXNzX190ZXh0XCI+XHJcbiAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgIGZpbGVVcGxvYWRTdGF0dXMubm9PZkZpbGVzVXBsb2FkZWRTdWNjZXNzZnVsbHkgK1xyXG4gICAgICAgICAgICAgICAgICBcIiBcIiArXHJcbiAgICAgICAgICAgICAgICAgIGZpbGVVcGxvYWRMYWJlbD8ub2YgK1xyXG4gICAgICAgICAgICAgICAgICBcIiBcIiArXHJcbiAgICAgICAgICAgICAgICAgIGdldFNlbGVjdGVkRmlsZUNvdW50KCkgK1xyXG4gICAgICAgICAgICAgICAgICBcIiBcIiArXHJcbiAgICAgICAgICAgICAgICAgIGZpbGVVcGxvYWRMYWJlbD8uZmlsZXNVcGxvYWRlZFxyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8cFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggcHQtMSBtLTAgaWVlZXNhLWxhYmVsLW1kLTE0IGFsaWduLWl0ZW1zLWNlbnRlciBpZWVlc2EtZGlzcGxheS1zZWxlY3RlZC1maWxlc1wiXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgbGV0IGZpbGUgb2Ygc2VsZWN0ZWRGaWxlcztcclxuICAgICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleDtcclxuICAgICAgICAgICAgICAgICAgdHJhY2tCeTogdHJhY2tCeUZ1bmNcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgZmlsZT8ubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX3VwbG9hZC13cmFwcGVyLS1jbGVhci1pY29uLWJ0blwiXHJcbiAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJmaWxlVXBsb2FkQXJpYUxhYmVsLnJlbW92ZUZpbGVJY29uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUoaSlcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmEtcmVndWxhciBmYS1jaXJjbGUteG1hcmsgaWVlZXNhLWlucHV0LWZpZWxkLXVwbG9hZF9faWNvbi0tY2xlYXJcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPHBcclxuICAgICAgICAgICAgICAqbmdJZj1cImZpbGVVcGxvYWRTdGF0dXM/LmZpbGVzTmFtZU9mVXBsb2FkRmFpbGVkPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLWZpbGUtdXBsb2FkX19lcnJvcl9fdGV4dFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgZmlsZVVwbG9hZExhYmVsPy51cGxvYWRGb3IgK1xyXG4gICAgICAgICAgICAgICAgICBcIiBcIiArXHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlGaWxlTmFtZXMoZmlsZVVwbG9hZFN0YXR1cy5maWxlc05hbWVPZlVwbG9hZEZhaWxlZCkgK1xyXG4gICAgICAgICAgICAgICAgICBcIiBcIiArXHJcbiAgICAgICAgICAgICAgICAgIGZpbGVVcGxvYWRMYWJlbD8udXBsb2FkRXJyb3JNc2dcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxwXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmaWxlVXBsb2FkU3RhdHVzPy5hbHJlYWR5RXhpc3RzRmlsZXM/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX2Vycm9yX190ZXh0XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5RmlsZU5hbWVzKGZpbGVVcGxvYWRTdGF0dXMuYWxyZWFkeUV4aXN0c0ZpbGVzKSArXHJcbiAgICAgICAgICAgICAgICAgIFwiIFwiICtcclxuICAgICAgICAgICAgICAgICAgZmlsZVVwbG9hZExhYmVsPy5maWxlQWxyZWFkeUV4aXN0c1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0Zvcm1GaWVsZFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaWVlZXNhLWZpbGUtdXBsb2FkX19wcm9ncmVzc1wiICpuZ0lmPVwiaXNVcGxvYWRJblByb2dyZXNzXCI+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJpZWVlc2EtZmlsZS11cGxvYWRfX3Byb2dyZXNzX190ZXh0XCI+XHJcbiAgICAgICAgICB7eyBmaWxlVXBsb2FkTGFiZWw/LnVwbG9hZFByb2dyZXNzIH19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1maWxlLXVwbG9hZF9fcHJvZ3Jlc3MtLWJhclwiXHJcbiAgICAgICAgICBtb2RlPVwiZGV0ZXJtaW5hdGVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cInVwbG9hZGVkU2l6ZVwiXHJcbiAgICAgICAgPjwvbWF0LXByb2dyZXNzLWJhcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxpZWVlc2EtZm9ybS1lcnJvclxyXG4gICAgICAqbmdJZj1cImFsaWduRmlsZVVwbG9hZEVycm9yTWVzc2FnZVRvID09PSBhbGlnbm1lbnRUeXBlLk1JRERMRVwiXHJcbiAgICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIlxyXG4gICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXHJcbiAgICA+PC9pZWVlc2EtZm9ybS1lcnJvcj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJpc1VwbG9hZEJ1dHRvbk5lZWRlZCAmJiBpc0ZpbGVTZWxlY3RlZFwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtZW5kJzogYWN0aW9uQnV0dG9uQWxpZ24gPT09IGFsaWdubWVudFR5cGUuTEVGVCxcclxuICAgICAgICAgICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJzogYWN0aW9uQnV0dG9uQWxpZ24gPT09IGFsaWdubWVudFR5cGUuTUlERExFLFxyXG4gICAgICAgICAgJ2p1c3RpZnktY29udGVudC1zdGFydCc6IGFjdGlvbkJ1dHRvbkFsaWduID09PSBhbGlnbm1lbnRUeXBlLlJJR0hULFxyXG4gICAgICAgIH1cIlxyXG4gICAgPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwibWF0LXByaW1hcnktYnV0dG9uIGllZWVzYS1keW5hbWljLWZvcm1fX2FjdGlvbnMtLXJpZ2h0LWJ0blwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIlxyXG4gICAgICAgICAgIWlzRmlsZVNlbGVjdGVkIHx8XHJcbiAgICAgICAgICBmaWxlVXBsb2FkU3RhdHVzLmlzVXBsb2FkaW5nU3RhcnQgfHxcclxuICAgICAgICAgIGZpbGVVcGxvYWRTdGF0dXMubm9PZkZpbGVzVXBsb2FkZWRTdWNjZXNzZnVsbHkgPiAwXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGZpbGVVcGxvYWRMYWJlbD8udXBsb2FkIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48aWVlZXNhLWZvcm0tZXJyb3JcclxuICAqbmdJZj1cImFsaWduRmlsZVVwbG9hZEVycm9yTWVzc2FnZVRvID09PSBhbGlnbm1lbnRUeXBlLkJPVFRPTVwiXHJcbiAgW2Zvcm1Hcm91cF09XCJncm91cFwiXHJcbiAgW2NvbmZpZ109XCJjb25maWdcIlxyXG4+PC9pZWVlc2EtZm9ybS1lcnJvcj5cclxuPGllZWVzYS1mb3JtLXN1cHBvcnQtdGV4dFxyXG4gIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIlxyXG4gIFtjb25maWddPVwiY29uZmlnXCJcclxuPjwvaWVlZXNhLWZvcm0tc3VwcG9ydC10ZXh0PlxyXG4iXX0=