@piserve-tech/form-submission 1.3.21 → 1.3.23

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 (79) hide show
  1. package/README.md +24 -24
  2. package/esm2022/element-type/element-type.module.mjs +1 -1
  3. package/esm2022/element-type/form-elements/form-elements.component.mjs +3 -3
  4. package/esm2022/environment/environment.mjs +1 -1
  5. package/esm2022/form-fields/check-box-fields/check-box-fields.component.mjs +10 -4
  6. package/esm2022/form-fields/date-time-fields/date-time-fields.component.mjs +3 -3
  7. package/esm2022/form-fields/drop-down-fields/drop-down-fields.component.mjs +24 -6
  8. package/esm2022/form-fields/file-picker-fields/file-picker-fields.component.mjs +3 -3
  9. package/esm2022/form-fields/form-fields.module.mjs +1 -1
  10. package/esm2022/form-fields/location-fields/location-fields.component.mjs +3 -3
  11. package/esm2022/form-fields/mail-fields/mail-fields.component.mjs +3 -3
  12. package/esm2022/form-fields/mobile-fields/mobile-fields.component.mjs +3 -3
  13. package/esm2022/form-fields/number-fields/number-fields.component.mjs +3 -3
  14. package/esm2022/form-fields/password-fields/password-fields.component.mjs +3 -3
  15. package/esm2022/form-fields/radio-button-fields/radio-button-fields.component.mjs +10 -4
  16. package/esm2022/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.mjs +3 -3
  17. package/esm2022/form-fields/section-fields/section-fields.component.mjs +3 -3
  18. package/esm2022/form-fields/selection-matrix-fields/selection-matrix-fields.component.mjs +3 -3
  19. package/esm2022/form-fields/signature-fields/signature-fields.component.mjs +3 -3
  20. package/esm2022/form-fields/slider-fields/slider-fields.component.mjs +3 -3
  21. package/esm2022/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.mjs +3 -3
  22. package/esm2022/form-fields/text-area-fields/text-area-fields.component.mjs +3 -3
  23. package/esm2022/form-fields/text-fields/text-fields.component.mjs +3 -3
  24. package/esm2022/form-fields/toggle-switch-fields/toggle-switch-fields.component.mjs +3 -3
  25. package/esm2022/form-fields/url-fields/url-fields.component.mjs +3 -3
  26. package/esm2022/form-submission/form-submission.module.mjs +1 -1
  27. package/esm2022/form-submission/header/header.component.mjs +3 -3
  28. package/esm2022/form-submission/navigation-tabs/navigation-tabs.component.mjs +3 -3
  29. package/esm2022/form-submission/next-prev-navigation/next-prev-navigation.component.mjs +3 -3
  30. package/esm2022/form-submission/submission-container/submission-container.component.mjs +3 -3
  31. package/esm2022/form-submission/submit-form/submit-form.component.mjs +3 -3
  32. package/esm2022/lib/form-submission.component.mjs +3 -3
  33. package/esm2022/lib/form-submission.module.mjs +1 -1
  34. package/esm2022/lib/form-submission.service.mjs +1 -1
  35. package/esm2022/logic/first-child/first-child.component.mjs +3 -3
  36. package/esm2022/logic/forth-child/forth-child.component.mjs +3 -3
  37. package/esm2022/logic/logic.module.mjs +1 -1
  38. package/esm2022/logic/second-child/second-child.component.mjs +3 -3
  39. package/esm2022/logic/third-child/third-child.component.mjs +3 -3
  40. package/esm2022/models/answer.model.mjs +1 -1
  41. package/esm2022/models/appearance.model.mjs +1 -1
  42. package/esm2022/models/attachment.model.mjs +1 -1
  43. package/esm2022/models/elementOptionAPI.model.mjs +1 -1
  44. package/esm2022/models/elementOptionAPIData.model.mjs +1 -1
  45. package/esm2022/models/elementOptionDB.model.mjs +1 -1
  46. package/esm2022/models/elementOptionDBCriteria.model.mjs +1 -1
  47. package/esm2022/models/enum/condition.enum.mjs +1 -1
  48. package/esm2022/models/enum/elementType .enum.mjs +1 -1
  49. package/esm2022/models/enum/entityType.enum.mjs +1 -1
  50. package/esm2022/models/formConfiguration.model.mjs +1 -1
  51. package/esm2022/models/formElement.model.mjs +1 -1
  52. package/esm2022/models/formElementType.model.mjs +1 -1
  53. package/esm2022/models/grid.model.mjs +1 -1
  54. package/esm2022/models/logic.model.mjs +1 -1
  55. package/esm2022/models/option.model.mjs +1 -1
  56. package/esm2022/models/page.model.mjs +1 -1
  57. package/esm2022/models/publicForm.model.mjs +1 -1
  58. package/esm2022/models/question.model.mjs +1 -1
  59. package/esm2022/models/questionAnswer.model.mjs +1 -1
  60. package/esm2022/models/row.model.mjs +1 -1
  61. package/esm2022/models/section.model.mjs +1 -1
  62. package/esm2022/models/subForm.model.mjs +1 -1
  63. package/esm2022/models/submission.model.mjs +1 -1
  64. package/esm2022/models/terms&condition.model.mjs +1 -1
  65. package/esm2022/models/validation.model.mjs +1 -1
  66. package/esm2022/public-api.mjs +1 -1
  67. package/esm2022/question/question/question.component.mjs +3 -3
  68. package/esm2022/question/question.module.mjs +1 -1
  69. package/esm2022/services/countryService.mjs +1 -1
  70. package/esm2022/services/data.service.mjs +1 -1
  71. package/esm2022/services/form.service.mjs +1 -1
  72. package/esm2022/services/mapper.service.mjs +1 -1
  73. package/esm2022/sub-form/multiple-subform/multiple-subform.component.mjs +3 -3
  74. package/esm2022/sub-form/sub-form/sub-form.component.mjs +3 -3
  75. package/esm2022/sub-form/sub-form.module.mjs +1 -1
  76. package/esm2022/sub-form/submission-modal/submission-modal.component.mjs +3 -3
  77. package/fesm2022/piserve-tech-form-submission.mjs +105 -75
  78. package/fesm2022/piserve-tech-form-submission.mjs.map +1 -1
  79. package/package.json +1 -1
@@ -240,11 +240,11 @@ export class MultipleSubformComponent {
240
240
  this.updateSubFormWithSubmissions();
241
241
  }
242
242
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultipleSubformComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
243
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultipleSubformComponent, selector: "lib-multiple-subform", inputs: { subForm: "subForm", acceptedLanguage: "acceptedLanguage" }, outputs: { subFormChange: "subFormChange" }, ngImport: i0, template: "<div class=\"example-container \" tabindex=\"0\">\n <div class=\"table-container\">\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\n\n <div>\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0009 19.0787H9.1582V16.2361C9.1582 15.9447 9.2739 15.6653 9.47999 15.4593L16.2224 8.71686C16.4284 8.5105 16.708 8.39453 16.9995 8.39453C17.2911 8.39453 17.5707 8.5105 17.7767 8.71686L19.5201 10.4603C19.7264 10.6663 19.8424 10.9458 19.8424 11.2374C19.8424 11.529 19.7264 11.8086 19.5201 12.0145L12.7777 18.757C12.5715 18.9628 12.2922 19.0785 12.0009 19.0787Z\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M19.2189 9.20703V17.7863C19.2189 18.6482 18.4881 19.3462 17.5859 19.3462H11.0539C10.1517 19.3462 9.4209 18.6482 9.4209 17.7863V9.20703\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </mat-menu>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n <div class=\"footer\">\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5556 13.2778H2.44444C1.64639 13.2778 1 12.6673 1 11.9136V2.3642C1 1.61048 1.64639 1 2.44444 1H12.5556C13.3536 1 14 1.61048 14 2.3642V11.9136C14 12.6673 13.3536 13.2778 12.5556 13.2778Z\" stroke=\"#D8D8D8\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n <a class=\"ms-2 text-decoration-none\">Add New</a>\n </div>\n </div>\n</div>\n", styles: [".table-container{overflow-x:auto;width:100%}.table-container .mat-table-sticky{background:#fff;z-index:1}.footer{display:flex;justify-content:flex-end;align-items:center;cursor:pointer;margin-top:15px}.hidden{display:none}.dropdown-menu{position:relative;z-index:999}::-webkit-scrollbar{width:2px;height:8px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#dbd9d9;border-radius:6px}::ng-deep .mat-mdc-menu-panel{min-width:65px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
243
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultipleSubformComponent, selector: "lib-multiple-subform", inputs: { subForm: "subForm", acceptedLanguage: "acceptedLanguage" }, outputs: { subFormChange: "subFormChange" }, ngImport: i0, template: "<div class=\"example-container \" tabindex=\"0\">\r\n <div class=\"table-container\">\r\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\r\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\r\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\r\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\" stickyEnd>\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\r\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\r\n\r\n <div>\r\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0009 19.0787H9.1582V16.2361C9.1582 15.9447 9.2739 15.6653 9.47999 15.4593L16.2224 8.71686C16.4284 8.5105 16.708 8.39453 16.9995 8.39453C17.2911 8.39453 17.5707 8.5105 17.7767 8.71686L19.5201 10.4603C19.7264 10.6663 19.8424 10.9458 19.8424 11.2374C19.8424 11.529 19.7264 11.8086 19.5201 12.0145L12.7777 18.757C12.5715 18.9628 12.2922 19.0785 12.0009 19.0787Z\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M19.2189 9.20703V17.7863C19.2189 18.6482 18.4881 19.3462 17.5859 19.3462H11.0539C10.1517 19.3462 9.4209 18.6482 9.4209 17.7863V9.20703\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\r\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5556 13.2778H2.44444C1.64639 13.2778 1 12.6673 1 11.9136V2.3642C1 1.61048 1.64639 1 2.44444 1H12.5556C13.3536 1 14 1.61048 14 2.3642V11.9136C14 12.6673 13.3536 13.2778 12.5556 13.2778Z\" stroke=\"#D8D8D8\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <a class=\"ms-2 text-decoration-none\">Add New</a>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".table-container{overflow-x:auto;width:100%}.table-container .mat-table-sticky{background:#fff;z-index:1}.footer{display:flex;justify-content:flex-end;align-items:center;cursor:pointer;margin-top:15px}.hidden{display:none}.dropdown-menu{position:relative;z-index:999}::-webkit-scrollbar{width:2px;height:8px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#dbd9d9;border-radius:6px}::ng-deep .mat-mdc-menu-panel{min-width:65px!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
244
244
  }
245
245
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultipleSubformComponent, decorators: [{
246
246
  type: Component,
247
- args: [{ selector: 'lib-multiple-subform', template: "<div class=\"example-container \" tabindex=\"0\">\n <div class=\"table-container\">\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\n\n <div>\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0009 19.0787H9.1582V16.2361C9.1582 15.9447 9.2739 15.6653 9.47999 15.4593L16.2224 8.71686C16.4284 8.5105 16.708 8.39453 16.9995 8.39453C17.2911 8.39453 17.5707 8.5105 17.7767 8.71686L19.5201 10.4603C19.7264 10.6663 19.8424 10.9458 19.8424 11.2374C19.8424 11.529 19.7264 11.8086 19.5201 12.0145L12.7777 18.757C12.5715 18.9628 12.2922 19.0785 12.0009 19.0787Z\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M19.2189 9.20703V17.7863C19.2189 18.6482 18.4881 19.3462 17.5859 19.3462H11.0539C10.1517 19.3462 9.4209 18.6482 9.4209 17.7863V9.20703\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </button>\n </mat-menu>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n </div>\n <div class=\"footer\">\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5556 13.2778H2.44444C1.64639 13.2778 1 12.6673 1 11.9136V2.3642C1 1.61048 1.64639 1 2.44444 1H12.5556C13.3536 1 14 1.61048 14 2.3642V11.9136C14 12.6673 13.3536 13.2778 12.5556 13.2778Z\" stroke=\"#D8D8D8\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n <a class=\"ms-2 text-decoration-none\">Add New</a>\n </div>\n </div>\n</div>\n", styles: [".table-container{overflow-x:auto;width:100%}.table-container .mat-table-sticky{background:#fff;z-index:1}.footer{display:flex;justify-content:flex-end;align-items:center;cursor:pointer;margin-top:15px}.hidden{display:none}.dropdown-menu{position:relative;z-index:999}::-webkit-scrollbar{width:2px;height:8px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#dbd9d9;border-radius:6px}::ng-deep .mat-mdc-menu-panel{min-width:65px!important}\n"] }]
247
+ args: [{ selector: 'lib-multiple-subform', template: "<div class=\"example-container \" tabindex=\"0\">\r\n <div class=\"table-container\">\r\n <table mat-table [dataSource]=\"submissions\" class=\"mat-elevation-z8\">\r\n <ng-container *ngFor=\"let formElement of subForm.formElements\" [matColumnDef]=\"formElement.element.question\">\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\">{{ formElement.element.question }}</th>\r\n <td mat-cell *matCellDef=\"let submission\" class=\"border border-1\" [ngClass]=\"{'hidden': getAnswerByQuestionId(submission, formElement.element.id)?.isChild}\">\r\n {{ getAnswerByQuestionId(submission, formElement.element.id)?.answer }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\" stickyEnd>\r\n <th mat-header-cell *matHeaderCellDef class=\"border border-1\"> Actions </th>\r\n <td mat-cell *matCellDef=\"let submission; let i = index\" class=\"text-center border border-1\">\r\n\r\n <div>\r\n <button class=\"btn\" mat-icon-button [matMenuTriggerFor]=\"menu\" aria-label=\"Example icon-button with a menu\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item (click)=\"editSubFormSubmission(i, submission)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"28\" height=\"26.4737\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.0009 19.0787H9.1582V16.2361C9.1582 15.9447 9.2739 15.6653 9.47999 15.4593L16.2224 8.71686C16.4284 8.5105 16.708 8.39453 16.9995 8.39453C17.2911 8.39453 17.5707 8.5105 17.7767 8.71686L19.5201 10.4603C19.7264 10.6663 19.8424 10.9458 19.8424 11.2374C19.8424 11.529 19.7264 11.8086 19.5201 12.0145L12.7777 18.757C12.5715 18.9628 12.2922 19.0785 12.0009 19.0787Z\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.1704 10.3984L17.8415 13.0695\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n <button mat-menu-item (click)=\"deleteSubForm(i)\">\r\n <svg width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.5\" y=\"0.5\" width=\"27.6402\" height=\"26.1328\" rx=\"5.5\" fill=\"white\" stroke=\"#D8D8D8\"/>\r\n <path d=\"M8.60449 9.20637H20.0354\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M19.2189 9.20703V17.7863C19.2189 18.6482 18.4881 19.3462 17.5859 19.3462H11.0539C10.1517 19.3462 9.4209 18.6482 9.4209 17.7863V9.20703\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M16.7696 6.67122H11.8706\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M12.6871 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M15.9532 12.3242V16.2239\" stroke=\"#084FFF\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"addNewBtn\" (click)=\"addNewSubmission()\">\r\n <svg width=\"15\" height=\"14\" viewBox=\"0 0 15 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.5556 13.2778H2.44444C1.64639 13.2778 1 12.6673 1 11.9136V2.3642C1 1.61048 1.64639 1 2.44444 1H12.5556C13.3536 1 14 1.61048 14 2.3642V11.9136C14 12.6673 13.3536 13.2778 12.5556 13.2778Z\" stroke=\"#D8D8D8\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M5.3335 7.50347H9.66683\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M7.50005 5.33594V9.66927\" stroke=\"#084FFF\" stroke-width=\"0.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <a class=\"ms-2 text-decoration-none\">Add New</a>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".table-container{overflow-x:auto;width:100%}.table-container .mat-table-sticky{background:#fff;z-index:1}.footer{display:flex;justify-content:flex-end;align-items:center;cursor:pointer;margin-top:15px}.hidden{display:none}.dropdown-menu{position:relative;z-index:999}::-webkit-scrollbar{width:2px;height:8px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#dbd9d9;border-radius:6px}::ng-deep .mat-mdc-menu-panel{min-width:65px!important}\n"] }]
248
248
  }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { subForm: [{
249
249
  type: Input
250
250
  }], subFormChange: [{
@@ -252,4 +252,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
252
252
  }], acceptedLanguage: [{
253
253
  type: Input
254
254
  }] } });
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL211bHRpcGxlLXN1YmZvcm0vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL211bHRpcGxlLXN1YmZvcm0vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQXVCMUYsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQyxZQUFtQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBUjNCLFlBQU8sR0FBUSxFQUFFLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pDLHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUV0QyxnQkFBVyxHQUFpQixFQUFFLENBQUM7UUFDL0IsdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1FBQ2xDLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUVPLENBQUM7SUFFeEMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztTQUN0QztRQUNELElBQUksQ0FB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QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFN1Ym1pc3Npb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL3N1Ym1pc3Npb24tbW9kYWwvc3VibWlzc2lvbi1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXR0YWNobWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRhY2htZW50Lm1vZGVsJztcblxuaW50ZXJmYWNlIEFuc3dlciB7XG4gIHF1ZXN0aW9uSWQ6IHN0cmluZztcbiAgYW5zd2VyPzogYW55O1xuICBhbnN3ZXJJZD86IHN0cmluZztcbiAgZGVsZXRlRmlsZXM/OiBzdHJpbmdbXTtcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50W107XG4gIGZpbGVzPzogYW55O1xuICBpc0NoaWxkPzogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFN1Ym1pc3Npb24ge1xuICBzdWJtaXNzaW9uSWQ6IHN0cmluZztcbiAgYW5zd2VyczogQW5zd2VyW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1tdWx0aXBsZS1zdWJmb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpcGxlLXN1YmZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tdWx0aXBsZS1zdWJmb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpcGxlU3ViZm9ybUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHN1YkZvcm06IGFueSA9IHt9O1xuICBAT3V0cHV0KCkgc3ViRm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBhY2NlcHRlZExhbmd1YWdlOiBzdHJpbmcgPScnO1xuXG4gIHN1Ym1pc3Npb25zOiBTdWJtaXNzaW9uW10gPSBbXTtcbiAgZGVsZXRlZFN1Ym1pc3Npb25zOiBzdHJpbmdbXSA9IFtdO1xuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZykge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5zdWJGb3JtPy5zdWJtaXNzaW9ucykge1xuICAgICAgdGhpcy5zdWJtaXNzaW9ucyA9IHRoaXMuc3ViRm9ybS5zdWJtaXNzaW9ucztcbiAgICAgIHRoaXMuc3ViRm9ybS5kZWxldGVkU3VibWlzc2lvbnMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5pbml0aWFsaXplRGlzcGxheWVkQ29sdW1ucygpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZURpc3BsYXllZENvbHVtbnMoKSB7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5zdWJGb3JtLmZvcm1FbGVtZW50cy5tYXAoKGZlOiBhbnkpID0+IGZlLmVsZW1lbnQucXVlc3Rpb24pO1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdhY3Rpb25zJyk7XG4gIH1cblxuICBnZXRBbnN3ZXJCeVF1ZXN0aW9uSWQoc3VibWlzc2lvbjogU3VibWlzc2lvbiwgcXVlc3Rpb25JZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN1Ym1pc3Npb24uYW5zd2Vycy5maW5kKGFuc3dlciA9PiBhbnN3ZXIucXVlc3Rpb25JZCA9PT0gcXVlc3Rpb25JZCk7XG4gIH1cblxuICBzdWJGb3JtU3VibWlzc2lvbihzdWJGb3JtOiBhbnkpIHtcbiAgICBjb25zdCBwcm9jZXNzRm9ybUVsZW1lbnRzID0gKGZvcm1FbGVtZW50czogYW55W10sIGlzQ2hpbGQ6IGJvb2xlYW4gPSBmYWxzZSk6IEFuc3dlcltdID0+IHtcbiAgICAgIGNvbnN0IGFuc3dlcnM6IEFuc3dlcltdID0gW107XG4gIFxuICAgICAgZm9ybUVsZW1lbnRzLmZvckVhY2goKGZvcm1FbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgYW5zd2VyOiBBbnN3ZXIgPSB7XG4gICAgICAgICAgcXVlc3Rpb25JZDogZm9ybUVsZW1lbnQuZWxlbWVudC5pZCxcbiAgICAgICAgICBhbnN3ZXI6IGZvcm1FbGVtZW50LmVsZW1lbnQ/LmFuc3dlciB8fCAnJyxcbiAgICAgICAgICBmaWxlczogZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PSAnRklMRV9QSUNLRVInICYmIGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyXG4gICAgICAgICAgICA/IGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBpc0NoaWxkOiBpc0NoaWxkXG4gICAgICAgIH07XG4gIFxuICAgICAgICBpZiAoXG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PSAnRklMRV9QSUNLRVInICYmXG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgZmlsZU5hbWVzID0gZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIubWFwKFxuICAgICAgICAgICAgKGZpbGU6IGFueSkgPT4gZmlsZT8uX2ZpbGUubmFtZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYW5zd2VyLmFuc3dlciA9IGZpbGVOYW1lcztcbiAgICAgICAgfVxuICAgICAgICBhbnN3ZXJzLnB1c2goYW5zd2VyKTtcbiAgXG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcy5mb3JFYWNoKChsb2dpYzogYW55KSA9PiB7XG4gICAgICAgICAgICBpZihsb2dpYy5zaG93TG9naWMpe1xuICAgICAgICAgICAgICBhbnN3ZXJzLnB1c2goLi4ucHJvY2Vzc0Zvcm1FbGVtZW50cyhsb2dpYy5mb3JtRWxlbWVudHMsIHRydWUpKTtcbiAgICAgICAgICAgICAgbG9naWMuc2hvd0xvZ2ljPWZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgPSAnJztcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGFuc3dlcnM7XG4gICAgfTtcbiAgXG4gICAgY29uc3QgYW5zd2VycyA9IHByb2Nlc3NGb3JtRWxlbWVudHMoc3ViRm9ybS5mb3JtRWxlbWVudHMpO1xuICBcbiAgICBpZiAoYW5zd2Vycy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzdWJtaXNzaW9uOiBTdWJtaXNzaW9uID0ge1xuICAgICAgICBzdWJtaXNzaW9uSWQ6ICcnLFxuICAgICAgICBhbnN3ZXJzOiBhbnN3ZXJzLFxuICAgICAgfTtcbiAgICAgIHRoaXMuc3VibWlzc2lvbnMucHVzaChzdWJtaXNzaW9uKTtcbiAgICAgIHRoaXMuc3VibWlzc2lvbnMgPSBbLi4udGhpcy5zdWJtaXNzaW9uc107XG4gICAgICB0aGlzLnVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoKTtcbiAgICB9XG4gIH1cbiAgXG5cbiAgZWRpdFN1YkZvcm1TdWJtaXNzaW9uKGluZGV4OiBudW1iZXIsIHN1Ym1pc3Npb246IFN1Ym1pc3Npb24pIHtcbiAgICBjb25zdCBzdWJGb3JtID0gdGhpcy5iaW5kQW5zd2Vycyh0aGlzLnN1YkZvcm0sIHN1Ym1pc3Npb24pO1xuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcbiAgICBkaWFsb2dDb25maWcucG9zaXRpb24gPSB7IHRvcDogJzUlJyB9O1xuICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICcxMDAlJztcbiAgICBkaWFsb2dDb25maWcuZGF0YSA9IHtcbiAgICAgIHN1YkZvcm06IHN1YkZvcm0sXG4gICAgICBhY2NlcHRlZExhbmd1YWdlOiB0aGlzLmFjY2VwdGVkTGFuZ3VhZ2VcbiAgICB9O1xuICAgIGRpYWxvZ0NvbmZpZy5oYXNCYWNrZHJvcCA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLm1heEhlaWdodCA9ICc4MHZoJztcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFN1Ym1pc3Npb25Nb2RhbENvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVN1Ym1pc3Npb24ocmVzdWx0LCBpbmRleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGJpbmRBbnN3ZXJzKHN1YkZvcm06IGFueSwgc3VibWlzc2lvbjogU3VibWlzc2lvbik6IGFueSB7XG4gICAgY29uc3QgYmluZEVsZW1lbnRBbnN3ZXJzID0gKGZvcm1FbGVtZW50czogYW55W10sIGFuc3dlcnM6IEFuc3dlcltdKSA9PiB7XG4gICAgICBmb3JtRWxlbWVudHMuZm9yRWFjaCgoZm9ybUVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBhbnN3ZXIgPSBhbnN3ZXJzLmZpbmQoXG4gICAgICAgICAgKGEpID0+IGEucXVlc3Rpb25JZCA9PT0gZm9ybUVsZW1lbnQuZWxlbWVudC5pZFxuICAgICAgICApO1xuICAgICAgICBpZiAoYW5zd2VyKSB7XG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgPVxuICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PSAnRklMRV9QSUNLRVInXG4gICAgICAgICAgICAgID8gYW5zd2VyPy5maWxlc1xuICAgICAgICAgICAgICA6IGFuc3dlci5hbnN3ZXI7XG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJJZCA9IGFuc3dlci5hbnN3ZXJJZDtcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmF0dGFjaG1lbnRzID0gYW5zd2VyLmF0dGFjaG1lbnRzO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcy5mb3JFYWNoKChsb2dpYzogYW55KSA9PiB7XG4gICAgICAgICAgICBiaW5kRWxlbWVudEFuc3dlcnMobG9naWMuZm9ybUVsZW1lbnRzLCBhbnN3ZXJzKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwZGF0ZWRTdWJGb3JtID0geyAuLi5zdWJGb3JtIH07XG4gICAgYmluZEVsZW1lbnRBbnN3ZXJzKHVwZGF0ZWRTdWJGb3JtLmZvcm1FbGVtZW50cywgc3VibWlzc2lvbi5hbnN3ZXJzKTtcbiAgICByZXR1cm4gdXBkYXRlZFN1YkZvcm07XG4gIH1cblxuICBkZWxldGVTdWJGb3JtKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBzdWJtaXNzaW9uID0gdGhpcy5zdWJtaXNzaW9uc1tpbmRleF07XG4gICAgaWYgKHN1Ym1pc3Npb24uc3VibWlzc2lvbklkKSB7XG4gICAgICB0aGlzLmRlbGV0ZWRTdWJtaXNzaW9ucy5wdXNoKHN1Ym1pc3Npb24uc3VibWlzc2lvbklkKTtcbiAgICB9XG4gICAgdGhpcy5zdWJtaXNzaW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuc3VibWlzc2lvbnMgPSBbLi4udGhpcy5zdWJtaXNzaW9uc107XG4gICAgdGhpcy51cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCk7XG4gIH1cblxuICBhZGROZXdTdWJtaXNzaW9uKCkge1xuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcbiAgICBkaWFsb2dDb25maWcucG9zaXRpb24gPSB7IHRvcDogJzUlJyB9O1xuICAgIGRpYWxvZ0NvbmZpZy53aWR0aCA9ICcxMDAlJztcbiAgICBkaWFsb2dDb25maWcuZGF0YSA9IHtcbiAgICAgIHN1YkZvcm06IHRoaXMuc3ViRm9ybSxcbiAgICAgIGFjY2VwdGVkTGFuZ3VhZ2U6IHRoaXMuYWNjZXB0ZWRMYW5ndWFnZVxuICAgIH07XG4gICAgZGlhbG9nQ29uZmlnLmhhc0JhY2tkcm9wID0gdHJ1ZTtcbiAgICBkaWFsb2dDb25maWcuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcbiAgICBkaWFsb2dDb25maWcubWF4SGVpZ2h0ID0gJzgwdmgnO1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU3VibWlzc2lvbk1vZGFsQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuICBcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IGhhc0RhdGEgPSByZXN1bHQuZm9ybUVsZW1lbnRzLnNvbWUoKGZvcm1FbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4gZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgJiYgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIubGVuZ3RoID4gMDtcbiAgICAgICAgfSk7XG4gIFxuICAgICAgICBpZiAoaGFzRGF0YSkge1xuICAgICAgICAgIHRoaXMuc3ViRm9ybSA9IHJlc3VsdDtcbiAgICAgICAgICB0aGlzLnN1YkZvcm1TdWJtaXNzaW9uKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBcblxuICB1cGRhdGVTdWJtaXNzaW9uKHJlc3VsdDogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgcHJvY2Vzc0Zvcm1FbGVtZW50cyA9IChmb3JtRWxlbWVudHM6IGFueVtdLCBhbnN3ZXJzOiBBbnN3ZXJbXSkgPT4ge1xuICAgICAgZm9ybUVsZW1lbnRzLmZvckVhY2goKGZvcm1FbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgbGV0IGFuc3dlcjogQW5zd2VyID0ge1xuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGZvcm1FbGVtZW50LmVsZW1lbnQuaWQsXG4gICAgICAgICAgYW5zd2VySWQ6IGZvcm1FbGVtZW50LmVsZW1lbnQ/LmFuc3dlcklkIHx8ICcnLFxuICAgICAgICAgIGF0dGFjaG1lbnRzOiBmb3JtRWxlbWVudC5lbGVtZW50LmF0dGFjaG1lbnRzIHx8IFtdLFxuICAgICAgICAgIGFuc3dlcjogW10sXG4gICAgICAgICAgZmlsZXM6IFtdLFxuICAgICAgICAgIGRlbGV0ZUZpbGVzOiBbXSxcbiAgICAgICAgfTtcbiAgXG4gICAgICAgIGlmIChhbnN3ZXIuYXR0YWNobWVudHMpIHtcbiAgICAgICAgICBhbnN3ZXIuYW5zd2VyID0gYW5zd2VyLmF0dGFjaG1lbnRzLm1hcChcbiAgICAgICAgICAgIChhdHRhY2htZW50OiBBdHRhY2htZW50KSA9PiBhdHRhY2htZW50LmZpbGVOYW1lXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICBcbiAgICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUicpIHtcbiAgICAgICAgICBpZiAoZm9ybUVsZW1lbnQuZWxlbWVudD8uZGVsZXRlRmlsZXMpIHtcbiAgICAgICAgICAgIGFuc3dlci5hbnN3ZXIgPSBbXTtcbiAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZGVsZXRlRmlsZXMuZm9yRWFjaCgoZGVsZXRlZElkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgYW5zd2VyLmRlbGV0ZUZpbGVzPy5wdXNoKGRlbGV0ZWRJZCk7XG4gICAgICAgICAgICAgIGlmIChhbnN3ZXIuYXR0YWNobWVudHMpIHtcbiAgICAgICAgICAgICAgICBhbnN3ZXIuYXR0YWNobWVudHMgPSBhbnN3ZXIuYXR0YWNobWVudHMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgKGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBhdHRhY2htZW50LmZpbGVOYW1lO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0YWNobWVudC5maWxlSWQgIT09IGRlbGV0ZWRJZCkge1xuICAgICAgICAgICAgICAgICAgICAgIGlmICghYW5zd2VyLmFuc3dlci5pbmNsdWRlcyhmaWxlTmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFuc3dlci5hbnN3ZXIucHVzaChmaWxlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIpIHtcbiAgICAgICAgICAgIGFuc3dlci5maWxlcyA9IGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyO1xuICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIuZm9yRWFjaCgoZmlsZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gZmlsZS5fZmlsZT8ubmFtZTtcbiAgICAgICAgICAgICAgbGV0IGZpbGVOYW1lc0FycmF5ID0gQXJyYXkuaXNBcnJheShhbnN3ZXIuYW5zd2VyKVxuICAgICAgICAgICAgICAgID8gYW5zd2VyLmFuc3dlclxuICAgICAgICAgICAgICAgIDogW107XG4gICAgICAgICAgICAgIGlmICghZmlsZU5hbWVzQXJyYXkuaW5jbHVkZXMoZmlsZU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgZmlsZU5hbWVzQXJyYXkucHVzaChmaWxlTmFtZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYW5zd2VyLmFuc3dlciA9IGZpbGVOYW1lc0FycmF5O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFuc3dlciA9IHtcbiAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IGZvcm1FbGVtZW50LmVsZW1lbnQuaWQsXG4gICAgICAgICAgICBhbnN3ZXJJZDogZm9ybUVsZW1lbnQuZWxlbWVudD8uYW5zd2VySWQgfHwgJycsXG4gICAgICAgICAgICBhdHRhY2htZW50czogZm9ybUVsZW1lbnQuZWxlbWVudC5hdHRhY2htZW50cyxcbiAgICAgICAgICAgIGFuc3dlcjogZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlciA9ICcnO1xuICAgICAgICBhbnN3ZXJzLnB1c2goYW5zd2VyKTtcbiAgXG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcy5mb3JFYWNoKChsb2dpYzogYW55KSA9PiB7XG4gICAgICAgICAgICBpZihsb2dpYy5zaG93TG9naWMpe1xuICAgICAgICAgICAgICBwcm9jZXNzRm9ybUVsZW1lbnRzKGxvZ2ljLmZvcm1FbGVtZW50cywgYW5zd2Vycyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gIFxuICAgIHRoaXMuc3VibWlzc2lvbnNbaW5kZXhdLmFuc3dlcnMgPSBbXTtcbiAgICBwcm9jZXNzRm9ybUVsZW1lbnRzKHJlc3VsdC5mb3JtRWxlbWVudHMsIHRoaXMuc3VibWlzc2lvbnNbaW5kZXhdLmFuc3dlcnMpO1xuICAgIHRoaXMuc3VibWlzc2lvbnMgPSBbLi4udGhpcy5zdWJtaXNzaW9uc107XG4gICAgdGhpcy51cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCk7XG4gICAgdGhpcy5jbGVhckVtcHR5Um93cygpO1xuICB9ICBcblxuICB1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCkge1xuICAgIHRoaXMuc3ViRm9ybS5zdWJtaXNzaW9ucyA9IHRoaXMuc3VibWlzc2lvbnM7XG4gICAgdGhpcy5zdWJGb3JtLmRlbGV0ZWRTdWJtaXNzaW9ucyA9IHRoaXMuZGVsZXRlZFN1Ym1pc3Npb25zO1xuICAgIHRoaXMuc3ViRm9ybUNoYW5nZS5lbWl0KHRoaXMuc3ViRm9ybSk7XG4gIH1cblxuICBjbGVhckVtcHR5Um93cygpIHtcbiAgICBjb25zdCBub25FbXB0eVN1Ym1pc3Npb25zOlN1Ym1pc3Npb25bXSA9IFtdO1xuICAgIGNvbnN0IGVtcHR5U3VibWlzc2lvbklkczpzdHJpbmdbXSA9IFtdO1xuICBcbiAgICB0aGlzLnN1Ym1pc3Npb25zLmZvckVhY2goc3VibWlzc2lvbiA9PiB7XG4gICAgICBpZiAoc3VibWlzc2lvbi5hbnN3ZXJzLnNvbWUoYW5zd2VyID0+IGFuc3dlci5hbnN3ZXIgIT09ICcnKSkge1xuICAgICAgICBub25FbXB0eVN1Ym1pc3Npb25zLnB1c2goc3VibWlzc2lvbik7XG4gICAgICB9IGVsc2UgaWYgKHN1Ym1pc3Npb24uc3VibWlzc2lvbklkKSB7XG4gICAgICAgIGVtcHR5U3VibWlzc2lvbklkcy5wdXNoKHN1Ym1pc3Npb24uc3VibWlzc2lvbklkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgXG4gICAgdGhpcy5zdWJtaXNzaW9ucyA9IG5vbkVtcHR5U3VibWlzc2lvbnM7XG4gICAgdGhpcy5kZWxldGVkU3VibWlzc2lvbnMucHVzaCguLi5lbXB0eVN1Ym1pc3Npb25JZHMpO1xuICAgIHRoaXMudXBkYXRlU3ViRm9ybVdpdGhTdWJtaXNzaW9ucygpO1xuICB9XG4gIFxufVxuIiwiPGRpdiBjbGFzcz1cImV4YW1wbGUtY29udGFpbmVyIFwiIHRhYmluZGV4PVwiMFwiPlxuICA8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyXCI+XG4gICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJzdWJtaXNzaW9uc1wiIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZm9ybUVsZW1lbnQgb2Ygc3ViRm9ybS5mb3JtRWxlbWVudHNcIiBbbWF0Q29sdW1uRGVmXT1cImZvcm1FbGVtZW50LmVsZW1lbnQucXVlc3Rpb25cIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImJvcmRlciBib3JkZXItMVwiPnt7IGZvcm1FbGVtZW50LmVsZW1lbnQucXVlc3Rpb24gfX08L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgc3VibWlzc2lvblwiIGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xXCIgW25nQ2xhc3NdPVwieydoaWRkZW4nOiBnZXRBbnN3ZXJCeVF1ZXN0aW9uSWQoc3VibWlzc2lvbiwgZm9ybUVsZW1lbnQuZWxlbWVudC5pZCk/LmlzQ2hpbGR9XCI+XG4gICAgICAgICAge3sgZ2V0QW5zd2VyQnlRdWVzdGlvbklkKHN1Ym1pc3Npb24sIGZvcm1FbGVtZW50LmVsZW1lbnQuaWQpPy5hbnN3ZXIgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIiBzdGlja3lFbmQ+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgIGNsYXNzPVwiYm9yZGVyIGJvcmRlci0xXCI+IEFjdGlvbnMgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHN1Ym1pc3Npb247IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInRleHQtY2VudGVyIGJvcmRlciBib3JkZXItMVwiPlxuXG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG5cIiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBhcmlhLWxhYmVsPVwiRXhhbXBsZSBpY29uLWJ1dHRvbiB3aXRoIGEgbWVudVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gIChjbGljayk9XCJlZGl0U3ViRm9ybVN1Ym1pc3Npb24oaSwgc3VibWlzc2lvbilcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjlcIiBoZWlnaHQ9XCIyOFwiIHZpZXdCb3g9XCIwIDAgMjkgMjhcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIyOFwiIGhlaWdodD1cIjI2LjQ3MzdcIiByeD1cIjUuNVwiIGZpbGw9XCJ3aGl0ZVwiIHN0cm9rZT1cIiNEOEQ4RDhcIi8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIuMDAwOSAxOS4wNzg3SDkuMTU4MlYxNi4yMzYxQzkuMTU4MiAxNS45NDQ3IDkuMjczOSAxNS42NjUzIDkuNDc5OTkgMTUuNDU5M0wxNi4yMjI0IDguNzE2ODZDMTYuNDI4NCA4LjUxMDUgMTYuNzA4IDguMzk0NTMgMTYuOTk5NSA4LjM5NDUzQzE3LjI5MTEgOC4zOTQ1MyAxNy41NzA3IDguNTEwNSAxNy43NzY3IDguNzE2ODZMMTkuNTIwMSAxMC40NjAzQzE5LjcyNjQgMTAuNjY2MyAxOS44NDI0IDEwLjk0NTggMTkuODQyNCAxMS4yMzc0QzE5Ljg0MjQgMTEuNTI5IDE5LjcyNjQgMTEuODA4NiAxOS41MjAxIDEyLjAxNDVMMTIuNzc3NyAxOC43NTdDMTIuNTcxNSAxOC45NjI4IDEyLjI5MjIgMTkuMDc4NSAxMi4wMDA5IDE5LjA3ODdaXCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuMTcwNCAxMC4zOTg0TDE3Ljg0MTUgMTMuMDY5NVwiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRlbGV0ZVN1YkZvcm0oaSlcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjlcIiBoZWlnaHQ9XCIyOFwiIHZpZXdCb3g9XCIwIDAgMjkgMjhcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIyNy42NDAyXCIgaGVpZ2h0PVwiMjYuMTMyOFwiIHJ4PVwiNS41XCIgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiI0Q4RDhEOFwiLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC42MDQ0OSA5LjIwNjM3SDIwLjAzNTRcIiBzdHJva2U9XCIjMDg0RkZGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xOS4yMTg5IDkuMjA3MDNWMTcuNzg2M0MxOS4yMTg5IDE4LjY0ODIgMTguNDg4MSAxOS4zNDYyIDE3LjU4NTkgMTkuMzQ2MkgxMS4wNTM5QzEwLjE1MTcgMTkuMzQ2MiA5LjQyMDkgMTguNjQ4MiA5LjQyMDkgMTcuNzg2M1Y5LjIwNzAzXCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTYuNzY5NiA2LjY3MTIySDExLjg3MDZcIiBzdHJva2U9XCIjMDg0RkZGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMi42ODcxIDEyLjMyNDJWMTYuMjIzOVwiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1Ljk1MzIgMTIuMzI0MlYxNi4yMjM5XCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiPjwvdHI+XG4gICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkZE5ld0J0blwiIChjbGljayk9XCJhZGROZXdTdWJtaXNzaW9uKClcIj5cbiAgICAgIDxzdmcgd2lkdGg9XCIxNVwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNSAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIuNTU1NiAxMy4yNzc4SDIuNDQ0NDRDMS42NDYzOSAxMy4yNzc4IDEgMTIuNjY3MyAxIDExLjkxMzZWMi4zNjQyQzEgMS42MTA0OCAxLjY0NjM5IDEgMi40NDQ0NCAxSDEyLjU1NTZDMTMuMzUzNiAxIDE0IDEuNjEwNDggMTQgMi4zNjQyVjExLjkxMzZDMTQgMTIuNjY3MyAxMy4zNTM2IDEzLjI3NzggMTIuNTU1NiAxMy4yNzc4WlwiIHN0cm9rZT1cIiNEOEQ4RDhcIiBzdHJva2Utd2lkdGg9XCIwLjhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDxwYXRoIGQ9XCJNNS4zMzM1IDcuNTAzNDdIOS42NjY4M1wiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2Utd2lkdGg9XCIwLjhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgIDxwYXRoIGQ9XCJNNy41MDAwNSA1LjMzNTk0VjkuNjY5MjdcIiBzdHJva2U9XCIjMDg0RkZGXCIgc3Ryb2tlLXdpZHRoPVwiMC44XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgPC9zdmc+XG4gICAgICA8YSBjbGFzcz1cIm1zLTIgdGV4dC1kZWNvcmF0aW9uLW5vbmVcIj5BZGQgTmV3PC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL211bHRpcGxlLXN1YmZvcm0vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL211bHRpcGxlLXN1YmZvcm0vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7OztBQXVCMUYsTUFBTSxPQUFPLHdCQUF3QjtJQVNuQyxZQUFtQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBUjNCLFlBQU8sR0FBUSxFQUFFLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3pDLHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUV0QyxnQkFBVyxHQUFpQixFQUFFLENBQUM7UUFDL0IsdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1FBQ2xDLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztJQUVPLENBQUM7SUFFeEMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztTQUN0QztRQUNELElBQUksQ0FB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QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJtaXNzaW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9zdWJtaXNzaW9uLW1vZGFsL3N1Ym1pc3Npb24tbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXR0YWNobWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRhY2htZW50Lm1vZGVsJztcclxuXHJcbmludGVyZmFjZSBBbnN3ZXIge1xyXG4gIHF1ZXN0aW9uSWQ6IHN0cmluZztcclxuICBhbnN3ZXI/OiBhbnk7XHJcbiAgYW5zd2VySWQ/OiBzdHJpbmc7XHJcbiAgZGVsZXRlRmlsZXM/OiBzdHJpbmdbXTtcclxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRbXTtcclxuICBmaWxlcz86IGFueTtcclxuICBpc0NoaWxkPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFN1Ym1pc3Npb24ge1xyXG4gIHN1Ym1pc3Npb25JZDogc3RyaW5nO1xyXG4gIGFuc3dlcnM6IEFuc3dlcltdO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tdWx0aXBsZS1zdWJmb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTXVsdGlwbGVTdWJmb3JtQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBzdWJGb3JtOiBhbnkgPSB7fTtcclxuICBAT3V0cHV0KCkgc3ViRm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIGFjY2VwdGVkTGFuZ3VhZ2U6IHN0cmluZyA9Jyc7XHJcblxyXG4gIHN1Ym1pc3Npb25zOiBTdWJtaXNzaW9uW10gPSBbXTtcclxuICBkZWxldGVkU3VibWlzc2lvbnM6IHN0cmluZ1tdID0gW107XHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnN1YkZvcm0/LnN1Ym1pc3Npb25zKSB7XHJcbiAgICAgIHRoaXMuc3VibWlzc2lvbnMgPSB0aGlzLnN1YkZvcm0uc3VibWlzc2lvbnM7XHJcbiAgICAgIHRoaXMuc3ViRm9ybS5kZWxldGVkU3VibWlzc2lvbnMgPSBbXTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5pdGlhbGl6ZURpc3BsYXllZENvbHVtbnMoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVEaXNwbGF5ZWRDb2x1bW5zKCkge1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5zdWJGb3JtLmZvcm1FbGVtZW50cy5tYXAoKGZlOiBhbnkpID0+IGZlLmVsZW1lbnQucXVlc3Rpb24pO1xyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goJ2FjdGlvbnMnKTtcclxuICB9XHJcblxyXG4gIGdldEFuc3dlckJ5UXVlc3Rpb25JZChzdWJtaXNzaW9uOiBTdWJtaXNzaW9uLCBxdWVzdGlvbklkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBzdWJtaXNzaW9uLmFuc3dlcnMuZmluZChhbnN3ZXIgPT4gYW5zd2VyLnF1ZXN0aW9uSWQgPT09IHF1ZXN0aW9uSWQpO1xyXG4gIH1cclxuXHJcbiAgc3ViRm9ybVN1Ym1pc3Npb24oc3ViRm9ybTogYW55KSB7XHJcbiAgICBjb25zdCBwcm9jZXNzRm9ybUVsZW1lbnRzID0gKGZvcm1FbGVtZW50czogYW55W10sIGlzQ2hpbGQ6IGJvb2xlYW4gPSBmYWxzZSk6IEFuc3dlcltdID0+IHtcclxuICAgICAgY29uc3QgYW5zd2VyczogQW5zd2VyW10gPSBbXTtcclxuICBcclxuICAgICAgZm9ybUVsZW1lbnRzLmZvckVhY2goKGZvcm1FbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBhbnN3ZXI6IEFuc3dlciA9IHtcclxuICAgICAgICAgIHF1ZXN0aW9uSWQ6IGZvcm1FbGVtZW50LmVsZW1lbnQuaWQsXHJcbiAgICAgICAgICBhbnN3ZXI6IGZvcm1FbGVtZW50LmVsZW1lbnQ/LmFuc3dlciB8fCAnJyxcclxuICAgICAgICAgIGZpbGVzOiBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09ICdGSUxFX1BJQ0tFUicgJiYgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJcclxuICAgICAgICAgICAgPyBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlclxyXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGlzQ2hpbGQ6IGlzQ2hpbGRcclxuICAgICAgICB9O1xyXG4gIFxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT0gJ0ZJTEVfUElDS0VSJyAmJlxyXG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGNvbnN0IGZpbGVOYW1lcyA9IGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyLm1hcChcclxuICAgICAgICAgICAgKGZpbGU6IGFueSkgPT4gZmlsZT8uX2ZpbGUubmFtZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGFuc3dlci5hbnN3ZXIgPSBmaWxlTmFtZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFuc3dlcnMucHVzaChhbnN3ZXIpO1xyXG4gIFxyXG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XHJcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzLmZvckVhY2goKGxvZ2ljOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYobG9naWMuc2hvd0xvZ2ljKXtcclxuICAgICAgICAgICAgICBhbnN3ZXJzLnB1c2goLi4ucHJvY2Vzc0Zvcm1FbGVtZW50cyhsb2dpYy5mb3JtRWxlbWVudHMsIHRydWUpKTtcclxuICAgICAgICAgICAgICBsb2dpYy5zaG93TG9naWM9ZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgPSAnJztcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBhbnN3ZXJzO1xyXG4gICAgfTtcclxuICBcclxuICAgIGNvbnN0IGFuc3dlcnMgPSBwcm9jZXNzRm9ybUVsZW1lbnRzKHN1YkZvcm0uZm9ybUVsZW1lbnRzKTtcclxuICBcclxuICAgIGlmIChhbnN3ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3Qgc3VibWlzc2lvbjogU3VibWlzc2lvbiA9IHtcclxuICAgICAgICBzdWJtaXNzaW9uSWQ6ICcnLFxyXG4gICAgICAgIGFuc3dlcnM6IGFuc3dlcnMsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc3VibWlzc2lvbnMucHVzaChzdWJtaXNzaW9uKTtcclxuICAgICAgdGhpcy5zdWJtaXNzaW9ucyA9IFsuLi50aGlzLnN1Ym1pc3Npb25zXTtcclxuICAgICAgdGhpcy51cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG5cclxuICBlZGl0U3ViRm9ybVN1Ym1pc3Npb24oaW5kZXg6IG51bWJlciwgc3VibWlzc2lvbjogU3VibWlzc2lvbikge1xyXG4gICAgY29uc3Qgc3ViRm9ybSA9IHRoaXMuYmluZEFuc3dlcnModGhpcy5zdWJGb3JtLCBzdWJtaXNzaW9uKTtcclxuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcclxuICAgIGRpYWxvZ0NvbmZpZy5wb3NpdGlvbiA9IHsgdG9wOiAnNSUnIH07XHJcbiAgICBkaWFsb2dDb25maWcud2lkdGggPSAnMTAwJSc7XHJcbiAgICBkaWFsb2dDb25maWcuZGF0YSA9IHtcclxuICAgICAgc3ViRm9ybTogc3ViRm9ybSxcclxuICAgICAgYWNjZXB0ZWRMYW5ndWFnZTogdGhpcy5hY2NlcHRlZExhbmd1YWdlXHJcbiAgICB9O1xyXG4gICAgZGlhbG9nQ29uZmlnLmhhc0JhY2tkcm9wID0gdHJ1ZTtcclxuICAgIGRpYWxvZ0NvbmZpZy5kaXNhYmxlQ2xvc2UgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLm1heEhlaWdodCA9ICc4MHZoJztcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU3VibWlzc2lvbk1vZGFsQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVTdWJtaXNzaW9uKHJlc3VsdCwgaW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYmluZEFuc3dlcnMoc3ViRm9ybTogYW55LCBzdWJtaXNzaW9uOiBTdWJtaXNzaW9uKTogYW55IHtcclxuICAgIGNvbnN0IGJpbmRFbGVtZW50QW5zd2VycyA9IChmb3JtRWxlbWVudHM6IGFueVtdLCBhbnN3ZXJzOiBBbnN3ZXJbXSkgPT4ge1xyXG4gICAgICBmb3JtRWxlbWVudHMuZm9yRWFjaCgoZm9ybUVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFuc3dlciA9IGFuc3dlcnMuZmluZChcclxuICAgICAgICAgIChhKSA9PiBhLnF1ZXN0aW9uSWQgPT09IGZvcm1FbGVtZW50LmVsZW1lbnQuaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChhbnN3ZXIpIHtcclxuICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyID1cclxuICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PSAnRklMRV9QSUNLRVInXHJcbiAgICAgICAgICAgICAgPyBhbnN3ZXI/LmZpbGVzXHJcbiAgICAgICAgICAgICAgOiBhbnN3ZXIuYW5zd2VyO1xyXG4gICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJJZCA9IGFuc3dlci5hbnN3ZXJJZDtcclxuICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYXR0YWNobWVudHMgPSBhbnN3ZXIuYXR0YWNobWVudHM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XHJcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzLmZvckVhY2goKGxvZ2ljOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgYmluZEVsZW1lbnRBbnN3ZXJzKGxvZ2ljLmZvcm1FbGVtZW50cywgYW5zd2Vycyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVkU3ViRm9ybSA9IHsgLi4uc3ViRm9ybSB9O1xyXG4gICAgYmluZEVsZW1lbnRBbnN3ZXJzKHVwZGF0ZWRTdWJGb3JtLmZvcm1FbGVtZW50cywgc3VibWlzc2lvbi5hbnN3ZXJzKTtcclxuICAgIHJldHVybiB1cGRhdGVkU3ViRm9ybTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVN1YkZvcm0oaW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3Qgc3VibWlzc2lvbiA9IHRoaXMuc3VibWlzc2lvbnNbaW5kZXhdO1xyXG4gICAgaWYgKHN1Ym1pc3Npb24uc3VibWlzc2lvbklkKSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlZFN1Ym1pc3Npb25zLnB1c2goc3VibWlzc2lvbi5zdWJtaXNzaW9uSWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdWJtaXNzaW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5zdWJtaXNzaW9ucyA9IFsuLi50aGlzLnN1Ym1pc3Npb25zXTtcclxuICAgIHRoaXMudXBkYXRlU3ViRm9ybVdpdGhTdWJtaXNzaW9ucygpO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3U3VibWlzc2lvbigpIHtcclxuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcclxuICAgIGRpYWxvZ0NvbmZpZy5wb3NpdGlvbiA9IHsgdG9wOiAnNSUnIH07XHJcbiAgICBkaWFsb2dDb25maWcud2lkdGggPSAnMTAwJSc7XHJcbiAgICBkaWFsb2dDb25maWcuZGF0YSA9IHtcclxuICAgICAgc3ViRm9ybTogdGhpcy5zdWJGb3JtLFxyXG4gICAgICBhY2NlcHRlZExhbmd1YWdlOiB0aGlzLmFjY2VwdGVkTGFuZ3VhZ2VcclxuICAgIH07XHJcbiAgICBkaWFsb2dDb25maWcuaGFzQmFja2Ryb3AgPSB0cnVlO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XHJcbiAgICBkaWFsb2dDb25maWcubWF4SGVpZ2h0ID0gJzgwdmgnO1xyXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihTdWJtaXNzaW9uTW9kYWxDb21wb25lbnQsIGRpYWxvZ0NvbmZpZyk7XHJcbiAgXHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICBjb25zdCBoYXNEYXRhID0gcmVzdWx0LmZvcm1FbGVtZW50cy5zb21lKChmb3JtRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgJiYgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIubGVuZ3RoID4gMDtcclxuICAgICAgICB9KTtcclxuICBcclxuICAgICAgICBpZiAoaGFzRGF0YSkge1xyXG4gICAgICAgICAgdGhpcy5zdWJGb3JtID0gcmVzdWx0O1xyXG4gICAgICAgICAgdGhpcy5zdWJGb3JtU3VibWlzc2lvbihyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG5cclxuICB1cGRhdGVTdWJtaXNzaW9uKHJlc3VsdDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBwcm9jZXNzRm9ybUVsZW1lbnRzID0gKGZvcm1FbGVtZW50czogYW55W10sIGFuc3dlcnM6IEFuc3dlcltdKSA9PiB7XHJcbiAgICAgIGZvcm1FbGVtZW50cy5mb3JFYWNoKChmb3JtRWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGFuc3dlcjogQW5zd2VyID0ge1xyXG4gICAgICAgICAgcXVlc3Rpb25JZDogZm9ybUVsZW1lbnQuZWxlbWVudC5pZCxcclxuICAgICAgICAgIGFuc3dlcklkOiBmb3JtRWxlbWVudC5lbGVtZW50Py5hbnN3ZXJJZCB8fCAnJyxcclxuICAgICAgICAgIGF0dGFjaG1lbnRzOiBmb3JtRWxlbWVudC5lbGVtZW50LmF0dGFjaG1lbnRzIHx8IFtdLFxyXG4gICAgICAgICAgYW5zd2VyOiBbXSxcclxuICAgICAgICAgIGZpbGVzOiBbXSxcclxuICAgICAgICAgIGRlbGV0ZUZpbGVzOiBbXSxcclxuICAgICAgICB9O1xyXG4gIFxyXG4gICAgICAgIGlmIChhbnN3ZXIuYXR0YWNobWVudHMpIHtcclxuICAgICAgICAgIGFuc3dlci5hbnN3ZXIgPSBhbnN3ZXIuYXR0YWNobWVudHMubWFwKFxyXG4gICAgICAgICAgICAoYXR0YWNobWVudDogQXR0YWNobWVudCkgPT4gYXR0YWNobWVudC5maWxlTmFtZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUicpIHtcclxuICAgICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50Py5kZWxldGVGaWxlcykge1xyXG4gICAgICAgICAgICBhbnN3ZXIuYW5zd2VyID0gW107XHJcbiAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZGVsZXRlRmlsZXMuZm9yRWFjaCgoZGVsZXRlZElkOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICBhbnN3ZXIuZGVsZXRlRmlsZXM/LnB1c2goZGVsZXRlZElkKTtcclxuICAgICAgICAgICAgICBpZiAoYW5zd2VyLmF0dGFjaG1lbnRzKSB7XHJcbiAgICAgICAgICAgICAgICBhbnN3ZXIuYXR0YWNobWVudHMgPSBhbnN3ZXIuYXR0YWNobWVudHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAoYXR0YWNobWVudDogQXR0YWNobWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYXR0YWNobWVudC5maWxlTmFtZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYXR0YWNobWVudC5maWxlSWQgIT09IGRlbGV0ZWRJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKCFhbnN3ZXIuYW5zd2VyLmluY2x1ZGVzKGZpbGVOYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbnN3ZXIuYW5zd2VyLnB1c2goZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIpIHtcclxuICAgICAgICAgICAgYW5zd2VyLmZpbGVzID0gZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXI7XHJcbiAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYW5zd2VyLmZvckVhY2goKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gZmlsZS5fZmlsZT8ubmFtZTtcclxuICAgICAgICAgICAgICBsZXQgZmlsZU5hbWVzQXJyYXkgPSBBcnJheS5pc0FycmF5KGFuc3dlci5hbnN3ZXIpXHJcbiAgICAgICAgICAgICAgICA/IGFuc3dlci5hbnN3ZXJcclxuICAgICAgICAgICAgICAgIDogW107XHJcbiAgICAgICAgICAgICAgaWYgKCFmaWxlTmFtZXNBcnJheS5pbmNsdWRlcyhmaWxlTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIGZpbGVOYW1lc0FycmF5LnB1c2goZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBhbnN3ZXIuYW5zd2VyID0gZmlsZU5hbWVzQXJyYXk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhbnN3ZXIgPSB7XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uSWQ6IGZvcm1FbGVtZW50LmVsZW1lbnQuaWQsXHJcbiAgICAgICAgICAgIGFuc3dlcklkOiBmb3JtRWxlbWVudC5lbGVtZW50Py5hbnN3ZXJJZCB8fCAnJyxcclxuICAgICAgICAgICAgYXR0YWNobWVudHM6IGZvcm1FbGVtZW50LmVsZW1lbnQuYXR0YWNobWVudHMsXHJcbiAgICAgICAgICAgIGFuc3dlcjogZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlciA9ICcnO1xyXG4gICAgICAgIGFuc3dlcnMucHVzaChhbnN3ZXIpO1xyXG4gIFxyXG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzKSB7XHJcbiAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzLmZvckVhY2goKGxvZ2ljOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYobG9naWMuc2hvd0xvZ2ljKXtcclxuICAgICAgICAgICAgICBwcm9jZXNzRm9ybUVsZW1lbnRzKGxvZ2ljLmZvcm1FbGVtZW50cywgYW5zd2Vycyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gIFxyXG4gICAgdGhpcy5zdWJtaXNzaW9uc1tpbmRleF0uYW5zd2VycyA9IFtdO1xyXG4gICAgcHJvY2Vzc0Zvcm1FbGVtZW50cyhyZXN1bHQuZm9ybUVsZW1lbnRzLCB0aGlzLnN1Ym1pc3Npb25zW2luZGV4XS5hbnN3ZXJzKTtcclxuICAgIHRoaXMuc3VibWlzc2lvbnMgPSBbLi4udGhpcy5zdWJtaXNzaW9uc107XHJcbiAgICB0aGlzLnVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoKTtcclxuICAgIHRoaXMuY2xlYXJFbXB0eVJvd3MoKTtcclxuICB9ICBcclxuXHJcbiAgdXBkYXRlU3ViRm9ybVdpdGhTdWJtaXNzaW9ucygpIHtcclxuICAgIHRoaXMuc3ViRm9ybS5zdWJtaXNzaW9ucyA9IHRoaXMuc3VibWlzc2lvbnM7XHJcbiAgICB0aGlzLnN1YkZvcm0uZGVsZXRlZFN1Ym1pc3Npb25zID0gdGhpcy5kZWxldGVkU3VibWlzc2lvbnM7XHJcbiAgICB0aGlzLnN1YkZvcm1DaGFuZ2UuZW1pdCh0aGlzLnN1YkZvcm0pO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJFbXB0eVJvd3MoKSB7XHJcbiAgICBjb25zdCBub25FbXB0eVN1Ym1pc3Npb25zOlN1Ym1pc3Npb25bXSA9IFtdO1xyXG4gICAgY29uc3QgZW1wdHlTdWJtaXNzaW9uSWRzOnN0cmluZ1tdID0gW107XHJcbiAgXHJcbiAgICB0aGlzLnN1Ym1pc3Npb25zLmZvckVhY2goc3VibWlzc2lvbiA9PiB7XHJcbiAgICAgIGlmIChzdWJtaXNzaW9uLmFuc3dlcnMuc29tZShhbnN3ZXIgPT4gYW5zd2VyLmFuc3dlciAhPT0gJycpKSB7XHJcbiAgICAgICAgbm9uRW1wdHlTdWJtaXNzaW9ucy5wdXNoKHN1Ym1pc3Npb24pO1xyXG4gICAgICB9IGVsc2UgaWYgKHN1Ym1pc3Npb24uc3VibWlzc2lvbklkKSB7XHJcbiAgICAgICAgZW1wdHlTdWJtaXNzaW9uSWRzLnB1c2goc3VibWlzc2lvbi5zdWJtaXNzaW9uSWQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICBcclxuICAgIHRoaXMuc3VibWlzc2lvbnMgPSBub25FbXB0eVN1Ym1pc3Npb25zO1xyXG4gICAgdGhpcy5kZWxldGVkU3VibWlzc2lvbnMucHVzaCguLi5lbXB0eVN1Ym1pc3Npb25JZHMpO1xyXG4gICAgdGhpcy51cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCk7XHJcbiAgfVxyXG4gIFxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJleGFtcGxlLWNvbnRhaW5lciBcIiB0YWJpbmRleD1cIjBcIj5cclxuICA8ZGl2IGNsYXNzPVwidGFibGUtY29udGFpbmVyXCI+XHJcbiAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInN1Ym1pc3Npb25zXCIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvcm1FbGVtZW50IG9mIHN1YkZvcm0uZm9ybUVsZW1lbnRzXCIgW21hdENvbHVtbkRlZl09XCJmb3JtRWxlbWVudC5lbGVtZW50LnF1ZXN0aW9uXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImJvcmRlciBib3JkZXItMVwiPnt7IGZvcm1FbGVtZW50LmVsZW1lbnQucXVlc3Rpb24gfX08L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJtaXNzaW9uXCIgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTFcIiBbbmdDbGFzc109XCJ7J2hpZGRlbic6IGdldEFuc3dlckJ5UXVlc3Rpb25JZChzdWJtaXNzaW9uLCBmb3JtRWxlbWVudC5lbGVtZW50LmlkKT8uaXNDaGlsZH1cIj5cclxuICAgICAgICAgIHt7IGdldEFuc3dlckJ5UXVlc3Rpb25JZChzdWJtaXNzaW9uLCBmb3JtRWxlbWVudC5lbGVtZW50LmlkKT8uYW5zd2VyIH19XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIiBzdGlja3lFbmQ+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiAgY2xhc3M9XCJib3JkZXIgYm9yZGVyLTFcIj4gQWN0aW9ucyA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBzdWJtaXNzaW9uOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJ0ZXh0LWNlbnRlciBib3JkZXIgYm9yZGVyLTFcIj5cclxuXHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuXCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgYXJpYS1sYWJlbD1cIkV4YW1wbGUgaWNvbi1idXR0b24gd2l0aCBhIG1lbnVcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gIChjbGljayk9XCJlZGl0U3ViRm9ybVN1Ym1pc3Npb24oaSwgc3VibWlzc2lvbilcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyOVwiIGhlaWdodD1cIjI4XCIgdmlld0JveD1cIjAgMCAyOSAyOFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC41XCIgeT1cIjAuNVwiIHdpZHRoPVwiMjhcIiBoZWlnaHQ9XCIyNi40NzM3XCIgcng9XCI1LjVcIiBmaWxsPVwid2hpdGVcIiBzdHJva2U9XCIjRDhEOEQ4XCIvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTIuMDAwOSAxOS4wNzg3SDkuMTU4MlYxNi4yMzYxQzkuMTU4MiAxNS45NDQ3IDkuMjczOSAxNS42NjUzIDkuNDc5OTkgMTUuNDU5M0wxNi4yMjI0IDguNzE2ODZDMTYuNDI4NCA4LjUxMDUgMTYuNzA4IDguMzk0NTMgMTYuOTk5NSA4LjM5NDUzQzE3LjI5MTEgOC4zOTQ1MyAxNy41NzA3IDguNTEwNSAxNy43NzY3IDguNzE2ODZMMTkuNTIwMSAxMC40NjAzQzE5LjcyNjQgMTAuNjY2MyAxOS44NDI0IDEwLjk0NTggMTkuODQyNCAxMS4yMzc0QzE5Ljg0MjQgMTEuNTI5IDE5LjcyNjQgMTEuODA4NiAxOS41MjAxIDEyLjAxNDVMMTIuNzc3NyAxOC43NTdDMTIuNTcxNSAxOC45NjI4IDEyLjI5MjIgMTkuMDc4NSAxMi4wMDA5IDE5LjA3ODdaXCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS4xNzA0IDEwLjM5ODRMMTcuODQxNSAxMy4wNjk1XCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZGVsZXRlU3ViRm9ybShpKVwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI5XCIgaGVpZ2h0PVwiMjhcIiB2aWV3Qm94PVwiMCAwIDI5IDI4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjVcIiB5PVwiMC41XCIgd2lkdGg9XCIyNy42NDAyXCIgaGVpZ2h0PVwiMjYuMTMyOFwiIHJ4PVwiNS41XCIgZmlsbD1cIndoaXRlXCIgc3Ryb2tlPVwiI0Q4RDhEOFwiLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjYwNDQ5IDkuMjA2MzdIMjAuMDM1NFwiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTkuMjE4OSA5LjIwNzAzVjE3Ljc4NjNDMTkuMjE4OSAxOC42NDgyIDE4LjQ4ODEgMTkuMzQ2MiAxNy41ODU5IDE5LjM0NjJIMTEuMDUzOUMxMC4xNTE3IDE5LjM0NjIgOS40MjA5IDE4LjY0ODIgOS40MjA5IDE3Ljc4NjNWOS4yMDcwM1wiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTYuNzY5NiA2LjY3MTIySDExLjg3MDZcIiBzdHJva2U9XCIjMDg0RkZGXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEyLjY4NzEgMTIuMzI0MlYxNi4yMjM5XCIgc3Ryb2tlPVwiIzA4NEZGRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNS45NTMyIDEyLjMyNDJWMTYuMjIzOVwiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZE5ld0J0blwiIChjbGljayk9XCJhZGROZXdTdWJtaXNzaW9uKClcIj5cclxuICAgICAgPHN2ZyB3aWR0aD1cIjE1XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE1IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyLjU1NTYgMTMuMjc3OEgyLjQ0NDQ0QzEuNjQ2MzkgMTMuMjc3OCAxIDEyLjY2NzMgMSAxMS45MTM2VjIuMzY0MkMxIDEuNjEwNDggMS42NDYzOSAxIDIuNDQ0NDQgMUgxMi41NTU2QzEzLjM1MzYgMSAxNCAxLjYxMDQ4IDE0IDIuMzY0MlYxMS45MTM2QzE0IDEyLjY2NzMgMTMuMzUzNiAxMy4yNzc4IDEyLjU1NTYgMTMuMjc3OFpcIiBzdHJva2U9XCIjRDhEOEQ4XCIgc3Ryb2tlLXdpZHRoPVwiMC44XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgIDxwYXRoIGQ9XCJNNS4zMzM1IDcuNTAzNDdIOS42NjY4M1wiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2Utd2lkdGg9XCIwLjhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgPHBhdGggZD1cIk03LjUwMDA1IDUuMzM1OTRWOS42NjkyN1wiIHN0cm9rZT1cIiMwODRGRkZcIiBzdHJva2Utd2lkdGg9XCIwLjhcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgICA8YSBjbGFzcz1cIm1zLTIgdGV4dC1kZWNvcmF0aW9uLW5vbmVcIj5BZGQgTmV3PC9hPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -67,11 +67,11 @@ export class SubFormComponent {
67
67
  this.subFormChange.emit(this.subForm);
68
68
  }
69
69
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SubFormComponent, selector: "lib-sub-form", inputs: { subForm: "subForm", edit: "edit", acceptedLanguage: "acceptedLanguage" }, outputs: { subFormChange: "subFormChange" }, ngImport: i0, template: "<div class=\"outer-container mb-4 px-3\">\n <div class=\"body container pt-3 pb-3 px-3\">\n <div class=\"tab-content pt-4 pb-3 px-3\">\n <p class=\"sectionTitle\">{{ subForm.title }}</p>\n <p [innerHTML]=\"subForm.description\" class=\"description mb-5\"></p>\n\n <div *ngIf=\"subForm.subFormStructure == 'multiple'\">\n <lib-multiple-subform\n [subForm]=\"subForm\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n [acceptedLanguage]=\"acceptedLanguage\"\n ></lib-multiple-subform>\n </div>\n <div *ngIf=\"subForm.subFormStructure == 'single'\">\n <div *ngFor=\"let formElement of subForm.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'CHECK_BOX'\n \"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'DATE_TIME'\n \"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'DROP_DOWN'\n \"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'FILE_PICKER'\n \"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n\n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\n \"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'RICH_TEXT_EDITOR'\n \"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'SELECTION_MATRIX'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'SIGNATURE'\n \"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'TERMS_AND_CONDITION'\n \"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TEXT_AREA'\n \"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage]=\"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-first-child\n *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n ></lib-first-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields\n [section]=\"formElement.element\"\n ></lib-section-fields>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".outer-container{background-color:#fff;padding:20px;position:relative;margin-top:25px}@media (max-width: 576px){.outer-container{padding:8px}}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}.tab-content{background-color:#fff}.sectionTitle{font-size:15px;font-weight:500}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: ["question"] }, { kind: "component", type: i3.DateTimeFieldsComponent, selector: "lib-date-time-fields", inputs: ["question"] }, { kind: "component", type: i4.DropDownFieldsComponent, selector: "lib-drop-down-fields", inputs: ["question"] }, { kind: "component", type: i5.FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: ["question"] }, { kind: "component", type: i6.LocationFieldsComponent, selector: "lib-location-fields", inputs: ["question"] }, { kind: "component", type: i7.MailFieldsComponent, selector: "lib-mail-fields", inputs: ["question"] }, { kind: "component", type: i8.MobileFieldsComponent, selector: "lib-mobile-fields", inputs: ["question"] }, { kind: "component", type: i9.NumberFieldsComponent, selector: "lib-number-fields", inputs: ["question"] }, { kind: "component", type: i10.PasswordFieldsComponent, selector: "lib-password-fields", inputs: ["question"] }, { kind: "component", type: i11.RadioButtonFieldsComponent, selector: "lib-radio-button-fields", inputs: ["question"] }, { kind: "component", type: i12.RichTextEditorFieldsComponent, selector: "lib-rich-text-editor-fields", inputs: ["question"] }, { kind: "component", type: i13.SelectionMatrixFieldsComponent, selector: "lib-selection-matrix-fields", inputs: ["question", "acceptedLanguage"] }, { kind: "component", type: i14.SignatureFieldsComponent, selector: "lib-signature-fields", inputs: ["question"] }, { kind: "component", type: i15.SliderFieldsComponent, selector: "lib-slider-fields", inputs: ["question"] }, { kind: "component", type: i16.TermsAndConditionFieldsComponent, selector: "lib-terms-and-condition-fields", inputs: ["question"] }, { kind: "component", type: i17.TextAreaFieldsComponent, selector: "lib-text-area-fields", inputs: ["question"] }, { kind: "component", type: i18.TextFieldsComponent, selector: "lib-text-fields", inputs: ["question"] }, { kind: "component", type: i19.ToggleSwitchFieldsComponent, selector: "lib-toggle-switch-fields", inputs: ["question", "acceptedLanguage"] }, { kind: "component", type: i20.UrlFieldsComponent, selector: "lib-url-fields", inputs: ["question"] }, { kind: "component", type: i21.SectionFieldsComponent, selector: "lib-section-fields", inputs: ["section"] }, { kind: "component", type: i22.FirstChildComponent, selector: "lib-first-child", inputs: ["childLogics", "acceptedLanguage"] }, { kind: "component", type: i23.MultipleSubformComponent, selector: "lib-multiple-subform", inputs: ["subForm", "acceptedLanguage"], outputs: ["subFormChange"] }] }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SubFormComponent, selector: "lib-sub-form", inputs: { subForm: "subForm", edit: "edit", acceptedLanguage: "acceptedLanguage" }, outputs: { subFormChange: "subFormChange" }, ngImport: i0, template: "<div class=\"outer-container mb-4 px-3\">\r\n <div class=\"body container pt-3 pb-3 px-3\">\r\n <div class=\"tab-content pt-4 pb-3 px-3\">\r\n <p class=\"sectionTitle\">{{ subForm.title }}</p>\r\n <p [innerHTML]=\"subForm.description\" class=\"description mb-5\"></p>\r\n\r\n <div *ngIf=\"subForm.subFormStructure == 'multiple'\">\r\n <lib-multiple-subform\r\n [subForm]=\"subForm\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n [acceptedLanguage]=\"acceptedLanguage\"\r\n ></lib-multiple-subform>\r\n </div>\r\n <div *ngIf=\"subForm.subFormStructure == 'single'\">\r\n <div *ngFor=\"let formElement of subForm.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'CHECK_BOX'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'DATE_TIME'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'DROP_DOWN'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'FILE_PICKER'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'RICH_TEXT_EDITOR'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'SELECTION_MATRIX'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'SIGNATURE'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'TERMS_AND_CONDITION'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TEXT_AREA'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage]=\"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-first-child\r\n *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n ></lib-first-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields\r\n [section]=\"formElement.element\"\r\n ></lib-section-fields>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".outer-container{background-color:#fff;padding:20px;position:relative;margin-top:25px}@media (max-width: 576px){.outer-container{padding:8px}}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}.tab-content{background-color:#fff}.sectionTitle{font-size:15px;font-weight:500}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CheckBoxFieldsComponent, selector: "lib-check-box-fields", inputs: ["question"] }, { kind: "component", type: i3.DateTimeFieldsComponent, selector: "lib-date-time-fields", inputs: ["question"] }, { kind: "component", type: i4.DropDownFieldsComponent, selector: "lib-drop-down-fields", inputs: ["question"] }, { kind: "component", type: i5.FilePickerFieldsComponent, selector: "lib-file-picker-fields", inputs: ["question"] }, { kind: "component", type: i6.LocationFieldsComponent, selector: "lib-location-fields", inputs: ["question"] }, { kind: "component", type: i7.MailFieldsComponent, selector: "lib-mail-fields", inputs: ["question"] }, { kind: "component", type: i8.MobileFieldsComponent, selector: "lib-mobile-fields", inputs: ["question"] }, { kind: "component", type: i9.NumberFieldsComponent, selector: "lib-number-fields", inputs: ["question"] }, { kind: "component", type: i10.PasswordFieldsComponent, selector: "lib-password-fields", inputs: ["question"] }, { kind: "component", type: i11.RadioButtonFieldsComponent, selector: "lib-radio-button-fields", inputs: ["question"] }, { kind: "component", type: i12.RichTextEditorFieldsComponent, selector: "lib-rich-text-editor-fields", inputs: ["question"] }, { kind: "component", type: i13.SelectionMatrixFieldsComponent, selector: "lib-selection-matrix-fields", inputs: ["question", "acceptedLanguage"] }, { kind: "component", type: i14.SignatureFieldsComponent, selector: "lib-signature-fields", inputs: ["question"] }, { kind: "component", type: i15.SliderFieldsComponent, selector: "lib-slider-fields", inputs: ["question"] }, { kind: "component", type: i16.TermsAndConditionFieldsComponent, selector: "lib-terms-and-condition-fields", inputs: ["question"] }, { kind: "component", type: i17.TextAreaFieldsComponent, selector: "lib-text-area-fields", inputs: ["question"] }, { kind: "component", type: i18.TextFieldsComponent, selector: "lib-text-fields", inputs: ["question"] }, { kind: "component", type: i19.ToggleSwitchFieldsComponent, selector: "lib-toggle-switch-fields", inputs: ["question", "acceptedLanguage"] }, { kind: "component", type: i20.UrlFieldsComponent, selector: "lib-url-fields", inputs: ["question"] }, { kind: "component", type: i21.SectionFieldsComponent, selector: "lib-section-fields", inputs: ["section"] }, { kind: "component", type: i22.FirstChildComponent, selector: "lib-first-child", inputs: ["childLogics", "acceptedLanguage"] }, { kind: "component", type: i23.MultipleSubformComponent, selector: "lib-multiple-subform", inputs: ["subForm", "acceptedLanguage"], outputs: ["subFormChange"] }] }); }
71
71
  }
72
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubFormComponent, decorators: [{
73
73
  type: Component,
74
- args: [{ selector: 'lib-sub-form', template: "<div class=\"outer-container mb-4 px-3\">\n <div class=\"body container pt-3 pb-3 px-3\">\n <div class=\"tab-content pt-4 pb-3 px-3\">\n <p class=\"sectionTitle\">{{ subForm.title }}</p>\n <p [innerHTML]=\"subForm.description\" class=\"description mb-5\"></p>\n\n <div *ngIf=\"subForm.subFormStructure == 'multiple'\">\n <lib-multiple-subform\n [subForm]=\"subForm\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n [acceptedLanguage]=\"acceptedLanguage\"\n ></lib-multiple-subform>\n </div>\n <div *ngIf=\"subForm.subFormStructure == 'single'\">\n <div *ngFor=\"let formElement of subForm.formElements\">\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\n <lib-check-box-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'CHECK_BOX'\n \"\n [question]=\"formElement.element\"\n ></lib-check-box-fields>\n <lib-date-time-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'DATE_TIME'\n \"\n [question]=\"formElement.element\"\n ></lib-date-time-fields>\n <lib-drop-down-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'DROP_DOWN'\n \"\n [question]=\"formElement.element\"\n ></lib-drop-down-fields>\n <lib-file-picker-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'FILE_PICKER'\n \"\n [question]=\"formElement.element\"\n ></lib-file-picker-fields>\n <lib-location-fields\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\n [question]=\"formElement.element\"\n ></lib-location-fields>\n\n <lib-mail-fields\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\n [question]=\"formElement.element\"\n >\n </lib-mail-fields>\n <lib-mobile-fields\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\n [question]=\"formElement.element\"\n >\n </lib-mobile-fields>\n <lib-number-fields\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\n [question]=\"formElement.element\"\n >\n </lib-number-fields>\n <lib-password-fields\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\n [question]=\"formElement.element\"\n >\n </lib-password-fields>\n <lib-radio-button-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\n \"\n [question]=\"formElement.element\"\n ></lib-radio-button-fields>\n <lib-rich-text-editor-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'RICH_TEXT_EDITOR'\n \"\n [question]=\"formElement.element\"\n ></lib-rich-text-editor-fields>\n <lib-selection-matrix-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'SELECTION_MATRIX'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage] = \"acceptedLanguage\"\n ></lib-selection-matrix-fields>\n <lib-signature-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'SIGNATURE'\n \"\n [question]=\"formElement.element\"\n ></lib-signature-fields>\n <lib-slider-fields\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\n [question]=\"formElement.element\"\n ></lib-slider-fields>\n <lib-terms-and-condition-fields\n *ngIf=\"\n formElement.element.formElement.elementType ===\n 'TERMS_AND_CONDITION'\n \"\n [question]=\"formElement.element\"\n ></lib-terms-and-condition-fields>\n <lib-text-area-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TEXT_AREA'\n \"\n [question]=\"formElement.element\"\n ></lib-text-area-fields>\n <lib-text-fields\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\n [question]=\"formElement.element\"\n ></lib-text-fields>\n <lib-toggle-switch-fields\n *ngIf=\"\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\n \"\n [question]=\"formElement.element\"\n [acceptedLanguage]=\"acceptedLanguage\"\n ></lib-toggle-switch-fields>\n <lib-url-fields\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\n [question]=\"formElement.element\"\n ></lib-url-fields>\n <lib-first-child\n *ngIf=\"formElement.element.childLogics\"\n [childLogics]=\"formElement.element.childLogics\"\n ></lib-first-child>\n </div>\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\n <lib-section-fields\n [section]=\"formElement.element\"\n ></lib-section-fields>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".outer-container{background-color:#fff;padding:20px;position:relative;margin-top:25px}@media (max-width: 576px){.outer-container{padding:8px}}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}.tab-content{background-color:#fff}.sectionTitle{font-size:15px;font-weight:500}\n"] }]
74
+ args: [{ selector: 'lib-sub-form', template: "<div class=\"outer-container mb-4 px-3\">\r\n <div class=\"body container pt-3 pb-3 px-3\">\r\n <div class=\"tab-content pt-4 pb-3 px-3\">\r\n <p class=\"sectionTitle\">{{ subForm.title }}</p>\r\n <p [innerHTML]=\"subForm.description\" class=\"description mb-5\"></p>\r\n\r\n <div *ngIf=\"subForm.subFormStructure == 'multiple'\">\r\n <lib-multiple-subform\r\n [subForm]=\"subForm\"\r\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\r\n [acceptedLanguage]=\"acceptedLanguage\"\r\n ></lib-multiple-subform>\r\n </div>\r\n <div *ngIf=\"subForm.subFormStructure == 'single'\">\r\n <div *ngFor=\"let formElement of subForm.formElements\">\r\n <div *ngIf=\"formElement.entityType === 'QUESTION'\">\r\n <lib-check-box-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'CHECK_BOX'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-check-box-fields>\r\n <lib-date-time-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'DATE_TIME'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-date-time-fields>\r\n <lib-drop-down-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'DROP_DOWN'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-drop-down-fields>\r\n <lib-file-picker-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'FILE_PICKER'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-file-picker-fields>\r\n <lib-location-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'LOCATION'\"\r\n [question]=\"formElement.element\"\r\n ></lib-location-fields>\r\n\r\n <lib-mail-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'EMAIL'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mail-fields>\r\n <lib-mobile-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'MOBILE'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-mobile-fields>\r\n <lib-number-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'NUMBER'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-number-fields>\r\n <lib-password-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'PASSWORD'\"\r\n [question]=\"formElement.element\"\r\n >\r\n </lib-password-fields>\r\n <lib-radio-button-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'RADIO_BUTTON'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-radio-button-fields>\r\n <lib-rich-text-editor-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'RICH_TEXT_EDITOR'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-rich-text-editor-fields>\r\n <lib-selection-matrix-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'SELECTION_MATRIX'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage] = \"acceptedLanguage\"\r\n ></lib-selection-matrix-fields>\r\n <lib-signature-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'SIGNATURE'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-signature-fields>\r\n <lib-slider-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'SLIDER'\"\r\n [question]=\"formElement.element\"\r\n ></lib-slider-fields>\r\n <lib-terms-and-condition-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType ===\r\n 'TERMS_AND_CONDITION'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-terms-and-condition-fields>\r\n <lib-text-area-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TEXT_AREA'\r\n \"\r\n [question]=\"formElement.element\"\r\n ></lib-text-area-fields>\r\n <lib-text-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'TEXT_BOX'\"\r\n [question]=\"formElement.element\"\r\n ></lib-text-fields>\r\n <lib-toggle-switch-fields\r\n *ngIf=\"\r\n formElement.element.formElement.elementType === 'TOGGLE_SWITCH'\r\n \"\r\n [question]=\"formElement.element\"\r\n [acceptedLanguage]=\"acceptedLanguage\"\r\n ></lib-toggle-switch-fields>\r\n <lib-url-fields\r\n *ngIf=\"formElement.element.formElement.elementType === 'URL'\"\r\n [question]=\"formElement.element\"\r\n ></lib-url-fields>\r\n <lib-first-child\r\n *ngIf=\"formElement.element.childLogics\"\r\n [childLogics]=\"formElement.element.childLogics\"\r\n ></lib-first-child>\r\n </div>\r\n <div *ngIf=\"formElement.entityType === 'SECTION'\">\r\n <lib-section-fields\r\n [section]=\"formElement.element\"\r\n ></lib-section-fields>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".outer-container{background-color:#fff;padding:20px;position:relative;margin-top:25px}@media (max-width: 576px){.outer-container{padding:8px}}.body{position:relative;z-index:1;background:#efefef;border-radius:6px}.tab-content{background-color:#fff}.sectionTitle{font-size:15px;font-weight:500}\n"] }]
75
75
  }], propDecorators: { subForm: [{
76
76
  type: Input
77
77
  }], edit: [{
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
81
81
  }], acceptedLanguage: [{
82
82
  type: Input
83
83
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9zdWItZm9ybS9zdWItZm9ybS9zdWItZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL3N1Yi1mb3JtL3N1Yi1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPL0UsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1XLFlBQU8sR0FBUSxFQUFFLENBQUM7UUFDbEIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUNyQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDekMscUJBQWdCLEdBQVUsRUFBRSxDQUFDO0tBK0N2QztJQTVDQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLFFBQVEsRUFBRTtZQUM3QyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFtQixFQUFFLFdBQWtCLEVBQUUsRUFBRTtZQUM5RCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBaUQsRUFBRSxFQUFFO2dCQUN6RSxJQUFJLFdBQVcsQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO29CQUN6QyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBdUIsRUFBRSxFQUFFLENBQzlELEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBd0IsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUMxRixDQUFDO29CQUVGLElBQUksVUFBVSxFQUFFO3dCQUNkLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBd0IsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNoSCxJQUFJLE1BQU0sRUFBRTs0QkFDVixXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDOzRCQUMzQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDOzRCQUMvQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7NEJBQ3RDLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7NEJBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7eUJBQ3JEO3FCQUNGO29CQUVELElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7d0JBQ25DLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQW1DLEVBQUUsRUFBRTs0QkFDOUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7d0JBQ3BELENBQUMsQ0FBQyxDQUFDO3FCQUNKO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDekUsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDO0lBR0QsNEJBQTRCLENBQUMsS0FBVTtRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0FsRFUsZ0JBQWdCO21HQUFoQixnQkFBZ0IscUxDUDdCLG9xTEEySUE7OzRGRHBJYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsY0FBYzs4QkFLZixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc3ViLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc3ViLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdWItZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTdWJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc3ViRm9ybTogYW55ID0ge307XG4gIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHN1YkZvcm1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgYWNjZXB0ZWRMYW5ndWFnZTogc3RyaW5nID0nJztcblxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnN1YkZvcm0uc3ViRm9ybVN0cnVjdHVyZSA9PSAnc2luZ2xlJykge1xuICAgICAgdGhpcy5iaW5kQW5zd2Vyc1RvRm9ybUVsZW1lbnRzKCk7XG4gICAgfVxuICB9XG5cbiAgYmluZEFuc3dlcnNUb0Zvcm1FbGVtZW50cygpIHtcbiAgICBjb25zdCBiaW5kQW5zd2VycyA9IChmb3JtRWxlbWVudHM6IGFueVtdLCBzdWJtaXNzaW9uczogYW55W10pID0+IHtcbiAgICAgIGZvcm1FbGVtZW50cy5mb3JFYWNoKChmb3JtRWxlbWVudDogeyBlbnRpdHlUeXBlOiBzdHJpbmc7IGVsZW1lbnQ6IGFueSB9KSA9PiB7XG4gICAgICAgIGlmIChmb3JtRWxlbWVudC5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nKSB7XG4gICAgICAgICAgY29uc3Qgc3VibWlzc2lvbiA9IHN1Ym1pc3Npb25zLmZpbmQoKHN1YjogeyBhbnN3ZXJzOiBhbnlbXSB9KSA9PlxuICAgICAgICAgICAgc3ViLmFuc3dlcnMuc29tZSgoYW5zOiB7IHF1ZXN0aW9uSWQ6IGFueSB9KSA9PiBhbnMucXVlc3Rpb25JZCA9PT0gZm9ybUVsZW1lbnQuZWxlbWVudC5pZClcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKHN1Ym1pc3Npb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGFuc3dlciA9IHN1Ym1pc3Npb24uYW5zd2Vycy5maW5kKChhbnM6IHsgcXVlc3Rpb25JZDogYW55IH0pID0+IGFucy5xdWVzdGlvbklkID09PSBmb3JtRWxlbWVudC5lbGVtZW50LmlkKTtcbiAgICAgICAgICAgIGlmIChhbnN3ZXIpIHtcbiAgICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXIgPSBhbnN3ZXIuYW5zd2VyO1xuICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlcklkID0gYW5zd2VyLmFuc3dlcklkO1xuICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LnZhbGlkYXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmF0dGFjaG1lbnRzID0gYW5zd2VyLmF0dGFjaG1lbnRzO1xuICAgICAgICAgICAgICB0aGlzLnN1YkZvcm0uc3VibWlzc2lvbklkID0gc3VibWlzc2lvbi5zdWJtaXNzaW9uSWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcbiAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MuZm9yRWFjaCgoY2hpbGRMb2dpYzogeyBmb3JtRWxlbWVudHM6IGFueVtdIH0pID0+IHtcbiAgICAgICAgICAgICAgYmluZEFuc3dlcnMoY2hpbGRMb2dpYy5mb3JtRWxlbWVudHMsIHN1Ym1pc3Npb25zKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIGlmICh0aGlzLnN1YkZvcm0gJiYgdGhpcy5zdWJGb3JtLmZvcm1FbGVtZW50cyAmJiB0aGlzLnN1YkZvcm0uc3VibWlzc2lvbnMpIHtcbiAgICAgIGJpbmRBbnN3ZXJzKHRoaXMuc3ViRm9ybS5mb3JtRWxlbWVudHMsIHRoaXMuc3ViRm9ybS5zdWJtaXNzaW9ucyk7XG4gICAgfVxuICB9XG5cblxuICB1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnN1YkZvcm0gPSBldmVudDtcbiAgICB0aGlzLnN1YkZvcm1DaGFuZ2UuZW1pdCh0aGlzLnN1YkZvcm0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib3V0ZXItY29udGFpbmVyIG1iLTQgcHgtM1wiPlxuICA8ZGl2IGNsYXNzPVwiYm9keSBjb250YWluZXIgcHQtMyBwYi0zIHB4LTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgcHQtNCBwYi0zIHB4LTNcIj5cbiAgICAgIDxwIGNsYXNzPVwic2VjdGlvblRpdGxlXCI+e3sgc3ViRm9ybS50aXRsZSB9fTwvcD5cbiAgICAgIDxwIFtpbm5lckhUTUxdPVwic3ViRm9ybS5kZXNjcmlwdGlvblwiIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItNVwiPjwvcD5cblxuICAgICAgPGRpdiAqbmdJZj1cInN1YkZvcm0uc3ViRm9ybVN0cnVjdHVyZSA9PSAnbXVsdGlwbGUnXCI+XG4gICAgICAgIDxsaWItbXVsdGlwbGUtc3ViZm9ybVxuICAgICAgICAgIFtzdWJGb3JtXT1cInN1YkZvcm1cIlxuICAgICAgICAgIChzdWJGb3JtQ2hhbmdlKT1cInVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoJGV2ZW50KVwiXG4gICAgICAgICAgW2FjY2VwdGVkTGFuZ3VhZ2VdPVwiYWNjZXB0ZWRMYW5ndWFnZVwiXG4gICAgICAgID48L2xpYi1tdWx0aXBsZS1zdWJmb3JtPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwic3ViRm9ybS5zdWJGb3JtU3RydWN0dXJlID09ICdzaW5nbGUnXCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZvcm1FbGVtZW50IG9mIHN1YkZvcm0uZm9ybUVsZW1lbnRzXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50LmVudGl0eVR5cGUgPT09ICdRVUVTVElPTidcIj5cbiAgICAgICAgICAgIDxsaWItY2hlY2stYm94LWZpZWxkc1xuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdDSEVDS19CT1gnXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICAgID48L2xpYi1jaGVjay1ib3gtZmllbGRzPlxuICAgICAgICAgICAgPGxpYi1kYXRlLXRpbWUtZmllbGRzXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0RBVEVfVElNRSdcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPjwvbGliLWRhdGUtdGltZS1maWVsZHM+XG4gICAgICAgICAgICA8bGliLWRyb3AtZG93bi1maWVsZHNcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnRFJPUF9ET1dOJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXG4gICAgICAgICAgICA+PC9saWItZHJvcC1kb3duLWZpZWxkcz5cbiAgICAgICAgICAgIDxsaWItZmlsZS1waWNrZXItZmllbGRzXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0ZJTEVfUElDS0VSJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXG4gICAgICAgICAgICA+PC9saWItZmlsZS1waWNrZXItZmllbGRzPlxuICAgICAgICAgICAgPGxpYi1sb2NhdGlvbi1maWVsZHNcbiAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnTE9DQVRJT04nXCJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPjwvbGliLWxvY2F0aW9uLWZpZWxkcz5cblxuICAgICAgICAgICAgPGxpYi1tYWlsLWZpZWxkc1xuICAgICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdFTUFJTCdcIlxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2xpYi1tYWlsLWZpZWxkcz5cbiAgICAgICAgICAgIDxsaWItbW9iaWxlLWZpZWxkc1xuICAgICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdNT0JJTEUnXCJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saWItbW9iaWxlLWZpZWxkcz5cbiAgICAgICAgICAgIDxsaWItbnVtYmVyLWZpZWxkc1xuICAgICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdOVU1CRVInXCJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9saWItbnVtYmVyLWZpZWxkcz5cbiAgICAgICAgICAgIDxsaWItcGFzc3dvcmQtZmllbGRzXG4gICAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1BBU1NXT1JEJ1wiXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbGliLXBhc3N3b3JkLWZpZWxkcz5cbiAgICAgICAgICAgIDxsaWItcmFkaW8tYnV0dG9uLWZpZWxkc1xuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdSQURJT19CVVRUT04nXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICAgID48L2xpYi1yYWRpby1idXR0b24tZmllbGRzPlxuICAgICAgICAgICAgPGxpYi1yaWNoLXRleHQtZWRpdG9yLWZpZWxkc1xuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09XG4gICAgICAgICAgICAgICAgJ1JJQ0hfVEVYVF9FRElUT1InXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICAgID48L2xpYi1yaWNoLXRleHQtZWRpdG9yLWZpZWxkcz5cbiAgICAgICAgICAgIDxsaWItc2VsZWN0aW9uLW1hdHJpeC1maWVsZHNcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PVxuICAgICAgICAgICAgICAgICdTRUxFQ1RJT05fTUFUUklYJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXG4gICAgICAgICAgICAgIFthY2NlcHRlZExhbmd1YWdlXSA9IFwiYWNjZXB0ZWRMYW5ndWFnZVwiXG4gICAgICAgICAgICA+PC9saWItc2VsZWN0aW9uLW1hdHJpeC1maWVsZHM+XG4gICAgICAgICAgICA8bGliLXNpZ25hdHVyZS1maWVsZHNcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnU0lHTkFUVVJFJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXG4gICAgICAgICAgICA+PC9saWItc2lnbmF0dXJlLWZpZWxkcz5cbiAgICAgICAgICAgIDxsaWItc2xpZGVyLWZpZWxkc1xuICAgICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdTTElERVInXCJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPjwvbGliLXNsaWRlci1maWVsZHM+XG4gICAgICAgICAgICA8bGliLXRlcm1zLWFuZC1jb25kaXRpb24tZmllbGRzXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT1cbiAgICAgICAgICAgICAgICAnVEVSTVNfQU5EX0NPTkRJVElPTidcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPjwvbGliLXRlcm1zLWFuZC1jb25kaXRpb24tZmllbGRzPlxuICAgICAgICAgICAgPGxpYi10ZXh0LWFyZWEtZmllbGRzXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1RFWFRfQVJFQSdcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPjwvbGliLXRleHQtYXJlYS1maWVsZHM+XG4gICAgICAgICAgICA8bGliLXRleHQtZmllbGRzXG4gICAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1RFWFRfQk9YJ1wiXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcbiAgICAgICAgICAgID48L2xpYi10ZXh0LWZpZWxkcz5cbiAgICAgICAgICAgIDxsaWItdG9nZ2xlLXN3aXRjaC1maWVsZHNcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnVE9HR0xFX1NXSVRDSCdcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgICBbYWNjZXB0ZWRMYW5ndWFnZV09XCJhY2NlcHRlZExhbmd1YWdlXCJcbiAgICAgICAgICAgID48L2xpYi10b2dnbGUtc3dpdGNoLWZpZWxkcz5cbiAgICAgICAgICAgIDxsaWItdXJsLWZpZWxkc1xuICAgICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdVUkwnXCJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPjwvbGliLXVybC1maWVsZHM+XG4gICAgICAgICAgICA8bGliLWZpcnN0LWNoaWxkXG4gICAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljc1wiXG4gICAgICAgICAgICAgIFtjaGlsZExvZ2ljc109XCJmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzXCJcbiAgICAgICAgICAgID48L2xpYi1maXJzdC1jaGlsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1NFQ1RJT04nXCI+XG4gICAgICAgICAgICA8bGliLXNlY3Rpb24tZmllbGRzXG4gICAgICAgICAgICAgIFtzZWN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxuICAgICAgICAgICAgPjwvbGliLXNlY3Rpb24tZmllbGRzPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9zdWItZm9ybS9zdWItZm9ybS9zdWItZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL3N1Yi1mb3JtL3N1Yi1mb3JtL3N1Yi1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPL0UsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQU1XLFlBQU8sR0FBUSxFQUFFLENBQUM7UUFDbEIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUNyQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDekMscUJBQWdCLEdBQVUsRUFBRSxDQUFDO0tBK0N2QztJQTVDQyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixJQUFJLFFBQVEsRUFBRTtZQUM3QyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFtQixFQUFFLFdBQWtCLEVBQUUsRUFBRTtZQUM5RCxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBaUQsRUFBRSxFQUFFO2dCQUN6RSxJQUFJLFdBQVcsQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO29CQUN6QyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBdUIsRUFBRSxFQUFFLENBQzlELEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBd0IsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUMxRixDQUFDO29CQUVGLElBQUksVUFBVSxFQUFFO3dCQUNkLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBd0IsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNoSCxJQUFJLE1BQU0sRUFBRTs0QkFDVixXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDOzRCQUMzQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDOzRCQUMvQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7NEJBQ3RDLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7NEJBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7eUJBQ3JEO3FCQUNGO29CQUVELElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7d0JBQ25DLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQW1DLEVBQUUsRUFBRTs0QkFDOUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7d0JBQ3BELENBQUMsQ0FBQyxDQUFDO3FCQUNKO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDekUsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDO0lBR0QsNEJBQTRCLENBQUMsS0FBVTtRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0FsRFUsZ0JBQWdCO21HQUFoQixnQkFBZ0IscUxDUDdCLDA3TEEySUE7OzRGRHBJYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsY0FBYzs4QkFLZixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsZ0JBQWdCO3NCQUF4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc3ViLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWItZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3ViLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN1YkZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHN1YkZvcm06IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgc3ViRm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIGFjY2VwdGVkTGFuZ3VhZ2U6IHN0cmluZyA9Jyc7XHJcblxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnN1YkZvcm0uc3ViRm9ybVN0cnVjdHVyZSA9PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLmJpbmRBbnN3ZXJzVG9Gb3JtRWxlbWVudHMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJpbmRBbnN3ZXJzVG9Gb3JtRWxlbWVudHMoKSB7XHJcbiAgICBjb25zdCBiaW5kQW5zd2VycyA9IChmb3JtRWxlbWVudHM6IGFueVtdLCBzdWJtaXNzaW9uczogYW55W10pID0+IHtcclxuICAgICAgZm9ybUVsZW1lbnRzLmZvckVhY2goKGZvcm1FbGVtZW50OiB7IGVudGl0eVR5cGU6IHN0cmluZzsgZWxlbWVudDogYW55IH0pID0+IHtcclxuICAgICAgICBpZiAoZm9ybUVsZW1lbnQuZW50aXR5VHlwZSA9PT0gJ1FVRVNUSU9OJykge1xyXG4gICAgICAgICAgY29uc3Qgc3VibWlzc2lvbiA9IHN1Ym1pc3Npb25zLmZpbmQoKHN1YjogeyBhbnN3ZXJzOiBhbnlbXSB9KSA9PlxyXG4gICAgICAgICAgICBzdWIuYW5zd2Vycy5zb21lKChhbnM6IHsgcXVlc3Rpb25JZDogYW55IH0pID0+IGFucy5xdWVzdGlvbklkID09PSBmb3JtRWxlbWVudC5lbGVtZW50LmlkKVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICBpZiAoc3VibWlzc2lvbikge1xyXG4gICAgICAgICAgICBjb25zdCBhbnN3ZXIgPSBzdWJtaXNzaW9uLmFuc3dlcnMuZmluZCgoYW5zOiB7IHF1ZXN0aW9uSWQ6IGFueSB9KSA9PiBhbnMucXVlc3Rpb25JZCA9PT0gZm9ybUVsZW1lbnQuZWxlbWVudC5pZCk7XHJcbiAgICAgICAgICAgIGlmIChhbnN3ZXIpIHtcclxuICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmFuc3dlciA9IGFuc3dlci5hbnN3ZXI7XHJcbiAgICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5hbnN3ZXJJZCA9IGFuc3dlci5hbnN3ZXJJZDtcclxuICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LnZhbGlkYXRpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuYXR0YWNobWVudHMgPSBhbnN3ZXIuYXR0YWNobWVudHM7XHJcbiAgICAgICAgICAgICAgdGhpcy5zdWJGb3JtLnN1Ym1pc3Npb25JZCA9IHN1Ym1pc3Npb24uc3VibWlzc2lvbklkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKGZvcm1FbGVtZW50LmVsZW1lbnQuY2hpbGRMb2dpY3MpIHtcclxuICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljcy5mb3JFYWNoKChjaGlsZExvZ2ljOiB7IGZvcm1FbGVtZW50czogYW55W10gfSkgPT4ge1xyXG4gICAgICAgICAgICAgIGJpbmRBbnN3ZXJzKGNoaWxkTG9naWMuZm9ybUVsZW1lbnRzLCBzdWJtaXNzaW9ucyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLnN1YkZvcm0gJiYgdGhpcy5zdWJGb3JtLmZvcm1FbGVtZW50cyAmJiB0aGlzLnN1YkZvcm0uc3VibWlzc2lvbnMpIHtcclxuICAgICAgYmluZEFuc3dlcnModGhpcy5zdWJGb3JtLmZvcm1FbGVtZW50cywgdGhpcy5zdWJGb3JtLnN1Ym1pc3Npb25zKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICB1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc3ViRm9ybSA9IGV2ZW50O1xyXG4gICAgdGhpcy5zdWJGb3JtQ2hhbmdlLmVtaXQodGhpcy5zdWJGb3JtKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm91dGVyLWNvbnRhaW5lciBtYi00IHB4LTNcIj5cclxuICA8ZGl2IGNsYXNzPVwiYm9keSBjb250YWluZXIgcHQtMyBwYi0zIHB4LTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudCBwdC00IHBiLTMgcHgtM1wiPlxyXG4gICAgICA8cCBjbGFzcz1cInNlY3Rpb25UaXRsZVwiPnt7IHN1YkZvcm0udGl0bGUgfX08L3A+XHJcbiAgICAgIDxwIFtpbm5lckhUTUxdPVwic3ViRm9ybS5kZXNjcmlwdGlvblwiIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItNVwiPjwvcD5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzdWJGb3JtLnN1YkZvcm1TdHJ1Y3R1cmUgPT0gJ211bHRpcGxlJ1wiPlxyXG4gICAgICAgIDxsaWItbXVsdGlwbGUtc3ViZm9ybVxyXG4gICAgICAgICAgW3N1YkZvcm1dPVwic3ViRm9ybVwiXHJcbiAgICAgICAgICAoc3ViRm9ybUNoYW5nZSk9XCJ1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKCRldmVudClcIlxyXG4gICAgICAgICAgW2FjY2VwdGVkTGFuZ3VhZ2VdPVwiYWNjZXB0ZWRMYW5ndWFnZVwiXHJcbiAgICAgICAgPjwvbGliLW11bHRpcGxlLXN1YmZvcm0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic3ViRm9ybS5zdWJGb3JtU3RydWN0dXJlID09ICdzaW5nbGUnXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZm9ybUVsZW1lbnQgb2Ygc3ViRm9ybS5mb3JtRWxlbWVudHNcIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudC5lbnRpdHlUeXBlID09PSAnUVVFU1RJT04nXCI+XHJcbiAgICAgICAgICAgIDxsaWItY2hlY2stYm94LWZpZWxkc1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnQ0hFQ0tfQk9YJ1xyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgICA+PC9saWItY2hlY2stYm94LWZpZWxkcz5cclxuICAgICAgICAgICAgPGxpYi1kYXRlLXRpbWUtZmllbGRzXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdEQVRFX1RJTUUnXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICAgID48L2xpYi1kYXRlLXRpbWUtZmllbGRzPlxyXG4gICAgICAgICAgICA8bGliLWRyb3AtZG93bi1maWVsZHNcclxuICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0RST1BfRE9XTidcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgICAgPjwvbGliLWRyb3AtZG93bi1maWVsZHM+XHJcbiAgICAgICAgICAgIDxsaWItZmlsZS1waWNrZXItZmllbGRzXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUidcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgICAgPjwvbGliLWZpbGUtcGlja2VyLWZpZWxkcz5cclxuICAgICAgICAgICAgPGxpYi1sb2NhdGlvbi1maWVsZHNcclxuICAgICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdMT0NBVElPTidcIlxyXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgICAgPjwvbGliLWxvY2F0aW9uLWZpZWxkcz5cclxuXHJcbiAgICAgICAgICAgIDxsaWItbWFpbC1maWVsZHNcclxuICAgICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdFTUFJTCdcIlxyXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2xpYi1tYWlsLWZpZWxkcz5cclxuICAgICAgICAgICAgPGxpYi1tb2JpbGUtZmllbGRzXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnTU9CSUxFJ1wiXHJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvbGliLW1vYmlsZS1maWVsZHM+XHJcbiAgICAgICAgICAgIDxsaWItbnVtYmVyLWZpZWxkc1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ05VTUJFUidcIlxyXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2xpYi1udW1iZXItZmllbGRzPlxyXG4gICAgICAgICAgICA8bGliLXBhc3N3b3JkLWZpZWxkc1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5mb3JtRWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ1BBU1NXT1JEJ1wiXHJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvbGliLXBhc3N3b3JkLWZpZWxkcz5cclxuICAgICAgICAgICAgPGxpYi1yYWRpby1idXR0b24tZmllbGRzXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdSQURJT19CVVRUT04nXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICAgID48L2xpYi1yYWRpby1idXR0b24tZmllbGRzPlxyXG4gICAgICAgICAgICA8bGliLXJpY2gtdGV4dC1lZGl0b3ItZmllbGRzXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09XHJcbiAgICAgICAgICAgICAgICAnUklDSF9URVhUX0VESVRPUidcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgICAgPjwvbGliLXJpY2gtdGV4dC1lZGl0b3ItZmllbGRzPlxyXG4gICAgICAgICAgICA8bGliLXNlbGVjdGlvbi1tYXRyaXgtZmllbGRzXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09XHJcbiAgICAgICAgICAgICAgICAnU0VMRUNUSU9OX01BVFJJWCdcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgICAgICBbYWNjZXB0ZWRMYW5ndWFnZV0gPSBcImFjY2VwdGVkTGFuZ3VhZ2VcIlxyXG4gICAgICAgICAgICA+PC9saWItc2VsZWN0aW9uLW1hdHJpeC1maWVsZHM+XHJcbiAgICAgICAgICAgIDxsaWItc2lnbmF0dXJlLWZpZWxkc1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnU0lHTkFUVVJFJ1xyXG4gICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgICA+PC9saWItc2lnbmF0dXJlLWZpZWxkcz5cclxuICAgICAgICAgICAgPGxpYi1zbGlkZXItZmllbGRzXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnU0xJREVSJ1wiXHJcbiAgICAgICAgICAgICAgW3F1ZXN0aW9uXT1cImZvcm1FbGVtZW50LmVsZW1lbnRcIlxyXG4gICAgICAgICAgICA+PC9saWItc2xpZGVyLWZpZWxkcz5cclxuICAgICAgICAgICAgPGxpYi10ZXJtcy1hbmQtY29uZGl0aW9uLWZpZWxkc1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PVxyXG4gICAgICAgICAgICAgICAgJ1RFUk1TX0FORF9DT05ESVRJT04nXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICAgID48L2xpYi10ZXJtcy1hbmQtY29uZGl0aW9uLWZpZWxkcz5cclxuICAgICAgICAgICAgPGxpYi10ZXh0LWFyZWEtZmllbGRzXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgIGZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdURVhUX0FSRUEnXHJcbiAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICAgID48L2xpYi10ZXh0LWFyZWEtZmllbGRzPlxyXG4gICAgICAgICAgICA8bGliLXRleHQtZmllbGRzXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnVEVYVF9CT1gnXCJcclxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICAgID48L2xpYi10ZXh0LWZpZWxkcz5cclxuICAgICAgICAgICAgPGxpYi10b2dnbGUtc3dpdGNoLWZpZWxkc1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICBmb3JtRWxlbWVudC5lbGVtZW50LmZvcm1FbGVtZW50LmVsZW1lbnRUeXBlID09PSAnVE9HR0xFX1NXSVRDSCdcclxuICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgIFtxdWVzdGlvbl09XCJmb3JtRWxlbWVudC5lbGVtZW50XCJcclxuICAgICAgICAgICAgICBbYWNjZXB0ZWRMYW5ndWFnZV09XCJhY2NlcHRlZExhbmd1YWdlXCJcclxuICAgICAgICAgICAgPjwvbGliLXRvZ2dsZS1zd2l0Y2gtZmllbGRzPlxyXG4gICAgICAgICAgICA8bGliLXVybC1maWVsZHNcclxuICAgICAgICAgICAgICAqbmdJZj1cImZvcm1FbGVtZW50LmVsZW1lbnQuZm9ybUVsZW1lbnQuZWxlbWVudFR5cGUgPT09ICdVUkwnXCJcclxuICAgICAgICAgICAgICBbcXVlc3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICAgID48L2xpYi11cmwtZmllbGRzPlxyXG4gICAgICAgICAgICA8bGliLWZpcnN0LWNoaWxkXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmb3JtRWxlbWVudC5lbGVtZW50LmNoaWxkTG9naWNzXCJcclxuICAgICAgICAgICAgICBbY2hpbGRMb2dpY3NdPVwiZm9ybUVsZW1lbnQuZWxlbWVudC5jaGlsZExvZ2ljc1wiXHJcbiAgICAgICAgICAgID48L2xpYi1maXJzdC1jaGlsZD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50LmVudGl0eVR5cGUgPT09ICdTRUNUSU9OJ1wiPlxyXG4gICAgICAgICAgICA8bGliLXNlY3Rpb24tZmllbGRzXHJcbiAgICAgICAgICAgICAgW3NlY3Rpb25dPVwiZm9ybUVsZW1lbnQuZWxlbWVudFwiXHJcbiAgICAgICAgICAgID48L2xpYi1zZWN0aW9uLWZpZWxkcz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
43
43
  exports: [SubFormComponent]
44
44
  }]
45
45
  }] });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9zdWItZm9ybS9zdWItZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFlckQsTUFBTSxPQUFPLGFBQWE7K0dBQWIsYUFBYTtnSEFBYixhQUFhLGlCQVpULGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixhQUVqRixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7WUFDYixhQUFhLGFBRU4sZ0JBQWdCO2dIQUVkLGFBQWEsWUFWdEIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTs7NEZBSUosYUFBYTtrQkFiekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQztvQkFDcEYsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFDLENBQUMsZ0JBQWdCLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9zdWItZm9ybS9zdWItZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUZpZWxkc01vZHVsZSB9IGZyb20gJy4uL2Zvcm0tZmllbGRzL2Zvcm0tZmllbGRzLm1vZHVsZSc7XG5pbXBvcnQgeyBMb2dpY01vZHVsZSB9IGZyb20gJy4uL2xvZ2ljL2xvZ2ljLm1vZHVsZSc7XG5pbXBvcnQgeyBNdWx0aXBsZVN1YmZvcm1Db21wb25lbnQgfSBmcm9tICcuL211bHRpcGxlLXN1YmZvcm0vbXVsdGlwbGUtc3ViZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3VibWlzc2lvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zdWJtaXNzaW9uLW1vZGFsL3N1Ym1pc3Npb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTdWJGb3JtQ29tcG9uZW50LCBNdWx0aXBsZVN1YmZvcm1Db21wb25lbnQsIFN1Ym1pc3Npb25Nb2RhbENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybUZpZWxkc01vZHVsZSxcbiAgICBMb2dpY01vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWF0VGFibGVNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6W1N1YkZvcm1Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFN1YkZvcm1Nb2R1bGUgeyB9XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9zdWItZm9ybS9zdWItZm9ybS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFlckQsTUFBTSxPQUFPLGFBQWE7K0dBQWIsYUFBYTtnSEFBYixhQUFhLGlCQVpULGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLHdCQUF3QixhQUVqRixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7WUFDYixhQUFhLGFBRU4sZ0JBQWdCO2dIQUVkLGFBQWEsWUFWdEIsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTs7NEZBSUosYUFBYTtrQkFiekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQztvQkFDcEYsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFDLENBQUMsZ0JBQWdCLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgU3ViRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vc3ViLWZvcm0vc3ViLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUZpZWxkc01vZHVsZSB9IGZyb20gJy4uL2Zvcm0tZmllbGRzL2Zvcm0tZmllbGRzLm1vZHVsZSc7XHJcbmltcG9ydCB7IExvZ2ljTW9kdWxlIH0gZnJvbSAnLi4vbG9naWMvbG9naWMubW9kdWxlJztcclxuaW1wb3J0IHsgTXVsdGlwbGVTdWJmb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aXBsZS1zdWJmb3JtL211bHRpcGxlLXN1YmZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VibWlzc2lvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9zdWJtaXNzaW9uLW1vZGFsL3N1Ym1pc3Npb24tbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1N1YkZvcm1Db21wb25lbnQsIE11bHRpcGxlU3ViZm9ybUNvbXBvbmVudCwgU3VibWlzc2lvbk1vZGFsQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3JtRmllbGRzTW9kdWxlLFxyXG4gICAgTG9naWNNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOltTdWJGb3JtQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3ViRm9ybU1vZHVsZSB7IH1cclxuIl19