@symphony-talent/component-library 4.202.0 → 4.204.0

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 (45) hide show
  1. package/esm2020/lib/atoms/icon/icon.enum.mjs +2 -1
  2. package/esm2020/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +25 -4
  3. package/esm2020/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.mjs +8 -4
  4. package/esm2020/lib/design-guide/icon-explorer/icon-explorer.helper.mjs +7 -1
  5. package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +9 -3
  6. package/esm2020/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.mjs +1 -1
  7. package/esm2020/lib/organisms/merge-contacts-modal/merge-contacts-modal.component.mjs +41 -3
  8. package/esm2020/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.mjs +1 -1
  9. package/esm2020/projects/component-library/lib/atoms/icon/icon.enum.mjs +2 -1
  10. package/esm2020/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.mjs +25 -4
  11. package/esm2020/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.mjs +8 -4
  12. package/esm2020/projects/component-library/lib/design-guide/icon-explorer/icon-explorer.helper.mjs +7 -1
  13. package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.mjs +9 -3
  14. package/esm2020/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.mjs +1 -1
  15. package/esm2020/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.component.mjs +41 -3
  16. package/esm2020/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.mjs +1 -1
  17. package/fesm2015/symphony-talent-component-library-projects-component-library.mjs +83 -10
  18. package/fesm2015/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
  19. package/fesm2015/symphony-talent-component-library.mjs +83 -10
  20. package/fesm2015/symphony-talent-component-library.mjs.map +1 -1
  21. package/fesm2020/symphony-talent-component-library-projects-component-library.mjs +85 -10
  22. package/fesm2020/symphony-talent-component-library-projects-component-library.mjs.map +1 -1
  23. package/fesm2020/symphony-talent-component-library.mjs +85 -10
  24. package/fesm2020/symphony-talent-component-library.mjs.map +1 -1
  25. package/lib/atoms/icon/icon.enum.d.ts +2 -1
  26. package/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.d.ts +8 -1
  27. package/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.d.ts +2 -1
  28. package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.d.ts +3 -1
  29. package/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.d.ts +1 -0
  30. package/lib/organisms/merge-contacts-modal/merge-contacts-modal.component.d.ts +9 -2
  31. package/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.d.ts +6 -0
  32. package/package.json +1 -1
  33. package/projects/component-library/global-assets/iconography/library-fonts/library-icons.eot +0 -0
  34. package/projects/component-library/global-assets/iconography/library-fonts/library-icons.svg +1 -0
  35. package/projects/component-library/global-assets/iconography/library-fonts/library-icons.ttf +0 -0
  36. package/projects/component-library/global-assets/iconography/library-fonts/library-icons.woff +0 -0
  37. package/projects/component-library/global-assets/iconography/library-icons.css +8 -5
  38. package/projects/component-library/global-assets/iconography/{sfx icons-v10.json → sfx icons-v11.json } +24 -9
  39. package/projects/component-library/lib/atoms/icon/icon.enum.d.ts +2 -1
  40. package/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.component.d.ts +8 -1
  41. package/projects/component-library/lib/atoms/input-textarea-with-send/input-textarea-with-send.module.d.ts +2 -1
  42. package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.component.d.ts +3 -1
  43. package/projects/component-library/lib/organisms/ai-search-assistant-drawer/ai-search-assistant-drawer.model.d.ts +1 -0
  44. package/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.component.d.ts +9 -2
  45. package/projects/component-library/lib/organisms/merge-contacts-modal/merge-contacts-modal.model.d.ts +6 -0
@@ -17,6 +17,7 @@ export class MergeContactsModalComponent {
17
17
  constructor() {
18
18
  this.isLoading = false;
19
19
  this.hasError = false;
20
+ this.stepCopy = {};
20
21
  this.next = new EventEmitter();
21
22
  this.cancel = new EventEmitter();
22
23
  this.notDuplicate = new EventEmitter();
@@ -91,18 +92,53 @@ export class MergeContactsModalComponent {
91
92
  const [baseUrl] = url.split('#');
92
93
  return `${baseUrl}#/candidateprofileview?id=${id}`;
93
94
  }
95
+ getStepTitle(step) {
96
+ return this.getStepCopy(step)?.title;
97
+ }
98
+ getStepDescription(step) {
99
+ return this.getStepCopy(step)?.description;
100
+ }
101
+ getStepCopy(step) {
102
+ if (this.confirmSuggestion && step === 1) {
103
+ return this.getConfirmSuggestionCopy();
104
+ }
105
+ return this.getConfiguredStepCopy(step);
106
+ }
107
+ getConfirmSuggestionCopy() {
108
+ const confirmCopy = {
109
+ ...(this.model?.confirmStepCopy ?? {}),
110
+ ...(this.confirmStepCopy ?? {}),
111
+ };
112
+ if (confirmCopy.title || confirmCopy.description) {
113
+ return confirmCopy;
114
+ }
115
+ return this.getConfiguredStepCopy(1);
116
+ }
117
+ getConfiguredStepCopy(step) {
118
+ const modelCopy = this.model?.stepCopy?.[step];
119
+ const inputCopy = this.stepCopy?.[step];
120
+ if (modelCopy || inputCopy) {
121
+ return {
122
+ ...modelCopy,
123
+ ...inputCopy,
124
+ };
125
+ }
126
+ return undefined;
127
+ }
94
128
  }
95
129
  MergeContactsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: MergeContactsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
96
- MergeContactsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: MergeContactsModalComponent, selector: "symphony-merge-contacts-modal", inputs: { model: "model", isLoading: "isLoading", hasError: "hasError", selected: "selected", confirmSuggestion: "confirmSuggestion", showSuccessToast: "showSuccessToast", showFailureToast: "showFailureToast", currentStep: "currentStep" }, outputs: { next: "next", cancel: "cancel", notDuplicate: "notDuplicate", selectionChange: "selectionChange", hideSuccessToast: "hideSuccessToast", hideFailureToast: "hideFailureToast", requestConfirmSuggestion: "requestConfirmSuggestion", requestCancelConfirmSuggestion: "requestCancelConfirmSuggestion" }, ngImport: i0, template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <symphony-h4 *ngIf=\"currentStep === 1\" text=\"Manage Duplicates\"></symphony-h4>\n <symphony-h4 *ngIf=\"currentStep === 2\" text=\"Merge Contacts\"></symphony-h4>\n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\">\n <symphony-paragraph\n *ngIf=\"currentStep === 1\"\n text=\"The contacts below are potential duplicates. Please compare their data and select the one you would like to merge.\"\n ></symphony-paragraph>\n <symphony-paragraph\n *ngIf=\"currentStep === 2\"\n text=\"Using the fields below, choose a Primary Contact, and then select the data you would like to merge and keep in that Primary Contact Record. Merging contacts is irreversible.\"\n ></symphony-paragraph> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\">\n <ng-container *ngIf=\"currentStep === 1\">\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"Something has went wrong. Try again later or contact support\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion.value }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 [text]=\"'Potential Duplicates (' + (model?.suggestions?.length || 0) + ')'\"></symphony-h5>\n <div class=\"scrollable-container card-wrapper\">\n <div\n *ngFor=\"let suggestion of model.suggestions; let i = index\"\n class=\"suggestion-card\"\n [ngClass]=\"{ selected: selected === suggestion }\"\n (click)=\"onSelect(suggestion)\"\n >\n <div class=\"card-header\">\n <symphony-input-radio\n [radioID]=\"suggestion.id\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio> \n <div class=\"card-title sfx-font-bold\">\n {{ suggestion.name }} [{{ suggestion.id }}]\n </div>\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <symphony-grid-cell-clicked-open-new-tab\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper\n class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\"\n (clicked)=\"onNotDuplicate(suggestion)\"\n >\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"suggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ suggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of suggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"suggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ suggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"suggestion.statuses?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of suggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <symphony-h5 text=\"Are you sure you want to remove this contact as a potential duplicate? \"></symphony-h5>\n <div class=\"sfx-mt-20 radio-action\">\n <symphony-icon class=\"pending-icon\" [icon]=\"'si-pending-incomplete'\"></symphony-icon>\n <symphony-paragraph class=\"sfx-font-italic\" text=\"Doing so is irreversible and this contact will never be shown as a potential duplicate of this contact again.\"></symphony-paragraph>\n </div>\n <div class=\"row sfx-mt-30\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Duplicate\"></symphony-h5>\n <div class=\"card-wrapper sfx-mt-20\">\n <div class=\"suggestion-card confirm-card\">\n <div class=\"card-header\">\n <div class=\"card-title sfx-font-bold\">\n {{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"confirmSuggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ confirmSuggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of confirmSuggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"confirmSuggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ confirmSuggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"confirmSuggestion.statuses?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of confirmSuggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Cancel\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </div>\n </ng-container>\n <ng-content *ngIf=\"currentStep === 2\"></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:20px 10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px;margin-top:20px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}.suggestion-card{border:1px solid #e4e7ef;border-radius:10px;padding:20px;background:#ffffff}.suggestion-card .card-header{display:flex;align-items:flex-start}.suggestion-card .card-title{flex:1;word-break:break-word}.suggestion-card .card-actions{margin-left:auto;display:flex;gap:10px}.suggestion-card .card-body{margin-top:15px;display:flex;flex-direction:column;gap:8px}.suggestion-card .info-row{display:flex;align-items:baseline;gap:8px;word-break:break-word}.suggestion-card .match-criteria{margin-top:10px}.suggestion-card .match-label{font-size:12px;font-weight:500;margin-bottom:8px}.suggestion-card .criteria-list{display:flex;flex-wrap:wrap;gap:8px}\n"], components: [{ type: i1.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.ToasterAlertComponent, selector: "symphony-toaster-alert", inputs: ["alertModel", "showAlert"], outputs: ["hideAlert", "refreshClicked"] }, { type: i5.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }, { type: i6.H5Component, selector: "symphony-h5", inputs: ["text", "isSecondary"] }, { type: i7.InputRadioComponent, selector: "symphony-input-radio", inputs: ["isActive", "name", "label", "isRequired", "radioID"], outputs: ["clicked"] }, { type: i8.GridCellClickedOpenNewTabComponent, selector: "symphony-grid-cell-clicked-open-new-tab", inputs: ["newTabUrl"] }, { type: i9.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i10.StatusPillComponent, selector: "symphony-status-pill", inputs: ["statusPillModel"] }, { type: i11.ButtonV2Component, selector: "symphony-button-v2" }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
130
+ MergeContactsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: MergeContactsModalComponent, selector: "symphony-merge-contacts-modal", inputs: { model: "model", isLoading: "isLoading", hasError: "hasError", stepCopy: "stepCopy", confirmStepCopy: "confirmStepCopy", selected: "selected", confirmSuggestion: "confirmSuggestion", showSuccessToast: "showSuccessToast", showFailureToast: "showFailureToast", currentStep: "currentStep" }, outputs: { next: "next", cancel: "cancel", notDuplicate: "notDuplicate", selectionChange: "selectionChange", hideSuccessToast: "hideSuccessToast", hideFailureToast: "hideFailureToast", requestConfirmSuggestion: "requestConfirmSuggestion", requestCancelConfirmSuggestion: "requestCancelConfirmSuggestion" }, ngImport: i0, template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <ng-container *ngIf=\"getStepTitle(currentStep) as stepTitle\">\n <symphony-h4 [text]=\"stepTitle\"></symphony-h4>\n </ng-container> \n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div\n class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\"\n *ngIf=\"getStepDescription(currentStep)\"\n >\n <ng-container *ngIf=\"getStepDescription(currentStep) as stepDescription\">\n <symphony-paragraph [text]=\"stepDescription\"></symphony-paragraph>\n </ng-container> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\" *ngIf=\"currentStep === 1\">\n <ng-container>\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"We couldn't retrieve the candidate data. The information cannot be displayed at this time, please try again.\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion.value }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 [text]=\"'Potential Duplicates (' + (model?.suggestions?.length || 0) + ')'\"></symphony-h5>\n <div class=\"scrollable-container card-wrapper\">\n <div\n *ngFor=\"let suggestion of model.suggestions; let i = index\"\n class=\"suggestion-card\"\n [ngClass]=\"{ selected: selected === suggestion }\"\n (click)=\"onSelect(suggestion)\"\n >\n <div class=\"card-header\">\n <symphony-input-radio\n [radioID]=\"suggestion.id\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio> \n <div class=\"card-title sfx-font-bold\">\n {{ suggestion.name }} [{{ suggestion.id }}]\n </div>\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <symphony-grid-cell-clicked-open-new-tab\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper\n class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\"\n (clicked)=\"onNotDuplicate(suggestion)\"\n >\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"suggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ suggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of suggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"suggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ suggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"suggestion.statuses?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of suggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Duplicate\"></symphony-h5>\n <div class=\"card-wrapper sfx-mt-20\">\n <div class=\"suggestion-card confirm-card\">\n <div class=\"card-header\">\n <div class=\"card-title sfx-font-bold\">\n {{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"confirmSuggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ confirmSuggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of confirmSuggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"confirmSuggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ confirmSuggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"confirmSuggestion.statuses?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of confirmSuggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </section>\n <section *ngIf=\"currentStep === 2\" class=\"modal-body merge-contacts-body\">\n <ng-content></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <ng-container *ngIf=\"!confirmSuggestion; else confirmActions\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </ng-container>\n <ng-template #confirmActions>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Back\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </ng-template>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:20px 10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}.suggestion-card{border:1px solid #e4e7ef;border-radius:10px;padding:20px;background:#ffffff}.suggestion-card .card-header{display:flex;align-items:flex-start}.suggestion-card .card-title{flex:1;word-break:break-word}.suggestion-card .card-actions{margin-left:auto;display:flex;gap:10px}.suggestion-card .card-body{margin-top:15px;display:flex;flex-direction:column;gap:8px}.suggestion-card .info-row{display:flex;align-items:baseline;gap:8px;word-break:break-word}.suggestion-card .match-criteria{margin-top:10px}.suggestion-card .match-label{font-size:12px;font-weight:500;margin-bottom:8px}.suggestion-card .criteria-list{display:flex;flex-wrap:wrap;gap:8px}.sfx-modal.modal-container .modal-body.merge-contacts-body{padding:0}\n"], components: [{ type: i1.H4Component, selector: "symphony-h4", inputs: ["text", "isSecondary"] }, { type: i2.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }, { type: i3.ParagraphComponent, selector: "symphony-paragraph", inputs: ["text", "isSecondary", "isFontBold"] }, { type: i4.ToasterAlertComponent, selector: "symphony-toaster-alert", inputs: ["alertModel", "showAlert"], outputs: ["hideAlert", "refreshClicked"] }, { type: i5.SfxLoaderComponent, selector: "symphony-sfx-loader", inputs: ["leftStyle", "message", "hasCustomMessage"] }, { type: i6.H5Component, selector: "symphony-h5", inputs: ["text", "isSecondary"] }, { type: i7.InputRadioComponent, selector: "symphony-input-radio", inputs: ["isActive", "name", "label", "isRequired", "radioID"], outputs: ["clicked"] }, { type: i8.GridCellClickedOpenNewTabComponent, selector: "symphony-grid-cell-clicked-open-new-tab", inputs: ["newTabUrl"] }, { type: i9.IconWrapperComponent, selector: "symphony-icon-wrapper", inputs: ["backgroundColor", "isInverse", "hasHoverWithoutBorder", "isDisabled"], outputs: ["clicked"] }, { type: i10.StatusPillComponent, selector: "symphony-status-pill", inputs: ["statusPillModel"] }, { type: i11.ButtonV2Component, selector: "symphony-button-v2" }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
97
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: MergeContactsModalComponent, decorators: [{
98
132
  type: Component,
99
- args: [{ selector: 'symphony-merge-contacts-modal', template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <symphony-h4 *ngIf=\"currentStep === 1\" text=\"Manage Duplicates\"></symphony-h4>\n <symphony-h4 *ngIf=\"currentStep === 2\" text=\"Merge Contacts\"></symphony-h4>\n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\">\n <symphony-paragraph\n *ngIf=\"currentStep === 1\"\n text=\"The contacts below are potential duplicates. Please compare their data and select the one you would like to merge.\"\n ></symphony-paragraph>\n <symphony-paragraph\n *ngIf=\"currentStep === 2\"\n text=\"Using the fields below, choose a Primary Contact, and then select the data you would like to merge and keep in that Primary Contact Record. Merging contacts is irreversible.\"\n ></symphony-paragraph> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\">\n <ng-container *ngIf=\"currentStep === 1\">\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"Something has went wrong. Try again later or contact support\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion.value }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 [text]=\"'Potential Duplicates (' + (model?.suggestions?.length || 0) + ')'\"></symphony-h5>\n <div class=\"scrollable-container card-wrapper\">\n <div\n *ngFor=\"let suggestion of model.suggestions; let i = index\"\n class=\"suggestion-card\"\n [ngClass]=\"{ selected: selected === suggestion }\"\n (click)=\"onSelect(suggestion)\"\n >\n <div class=\"card-header\">\n <symphony-input-radio\n [radioID]=\"suggestion.id\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio> \n <div class=\"card-title sfx-font-bold\">\n {{ suggestion.name }} [{{ suggestion.id }}]\n </div>\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <symphony-grid-cell-clicked-open-new-tab\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper\n class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\"\n (clicked)=\"onNotDuplicate(suggestion)\"\n >\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"suggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ suggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of suggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"suggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ suggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"suggestion.statuses?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of suggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <symphony-h5 text=\"Are you sure you want to remove this contact as a potential duplicate? \"></symphony-h5>\n <div class=\"sfx-mt-20 radio-action\">\n <symphony-icon class=\"pending-icon\" [icon]=\"'si-pending-incomplete'\"></symphony-icon>\n <symphony-paragraph class=\"sfx-font-italic\" text=\"Doing so is irreversible and this contact will never be shown as a potential duplicate of this contact again.\"></symphony-paragraph>\n </div>\n <div class=\"row sfx-mt-30\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Duplicate\"></symphony-h5>\n <div class=\"card-wrapper sfx-mt-20\">\n <div class=\"suggestion-card confirm-card\">\n <div class=\"card-header\">\n <div class=\"card-title sfx-font-bold\">\n {{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"confirmSuggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ confirmSuggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of confirmSuggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"confirmSuggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ confirmSuggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"confirmSuggestion.statuses?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of confirmSuggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Cancel\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </div>\n </ng-container>\n <ng-content *ngIf=\"currentStep === 2\"></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:20px 10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px;margin-top:20px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}.suggestion-card{border:1px solid #e4e7ef;border-radius:10px;padding:20px;background:#ffffff}.suggestion-card .card-header{display:flex;align-items:flex-start}.suggestion-card .card-title{flex:1;word-break:break-word}.suggestion-card .card-actions{margin-left:auto;display:flex;gap:10px}.suggestion-card .card-body{margin-top:15px;display:flex;flex-direction:column;gap:8px}.suggestion-card .info-row{display:flex;align-items:baseline;gap:8px;word-break:break-word}.suggestion-card .match-criteria{margin-top:10px}.suggestion-card .match-label{font-size:12px;font-weight:500;margin-bottom:8px}.suggestion-card .criteria-list{display:flex;flex-wrap:wrap;gap:8px}\n"] }]
133
+ args: [{ selector: 'symphony-merge-contacts-modal', template: "<div class=\"sfx sfx-modal modal-container\" *ngIf=\"model\">\n <section class=\"modal-header sfx-p-30 sfx-pt-40\">\n <div class=\"modal-title\">\n <div class=\"row\">\n <div class=\"col-xs-8 col-sm-8 col-md-8 col-lg-8\">\n <ng-container *ngIf=\"getStepTitle(currentStep) as stepTitle\">\n <symphony-h4 [text]=\"stepTitle\"></symphony-h4>\n </ng-container> \n </div>\n <div class=\"col-xs-4 col-sm-4 col-md-4 col-lg-4\">\n <symphony-icon\n class=\"pull-right\"\n [icon]=\"'si-close-modal'\"\n (clicked)=\"onCancel()\"\n ></symphony-icon>\n </div>\n <div\n class=\"col-xs-12 col-sm-12 col-md-12 col-lg-12 sfx-mt-15\"\n *ngIf=\"getStepDescription(currentStep)\"\n >\n <ng-container *ngIf=\"getStepDescription(currentStep) as stepDescription\">\n <symphony-paragraph [text]=\"stepDescription\"></symphony-paragraph>\n </ng-container> \n </div>\n </div>\n </div>\n </section>\n <section class=\"modal-body sfx-p-30\" *ngIf=\"currentStep === 1\">\n <ng-container>\n <div class=\"toaster-alert-container-global\">\n <symphony-toaster-alert\n *ngIf=\"showSuccessToast\"\n [alertModel]=\"successToast\"\n (hideAlert)=\"onHideSuccessToast()\"\n ></symphony-toaster-alert>\n <symphony-toaster-alert\n *ngIf=\"showFailureToast\"\n [alertModel]=\"failureToast\"\n (hideAlert)=\"onHideFailureToast()\"\n ></symphony-toaster-alert>\n </div>\n <div *ngIf=\"isLoading\" class=\"sfx-mt-30 sfx-mb-30\">\n <symphony-sfx-loader></symphony-sfx-loader>\n </div>\n <div *ngIf=\"hasError\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"We couldn't retrieve the candidate data. The information cannot be displayed at this time, please try again.\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && (!model?.suggestions || model.suggestions.length === 0)\" class=\"sfx-mt-30\">\n <symphony-paragraph text=\"No more duplicates exist for this selected contact. Please try again later\"></symphony-paragraph>\n </div>\n <div *ngIf=\"!isLoading && !hasError && !confirmSuggestion && model?.suggestions?.length\" class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion.value }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 [text]=\"'Potential Duplicates (' + (model?.suggestions?.length || 0) + ')'\"></symphony-h5>\n <div class=\"scrollable-container card-wrapper\">\n <div\n *ngFor=\"let suggestion of model.suggestions; let i = index\"\n class=\"suggestion-card\"\n [ngClass]=\"{ selected: selected === suggestion }\"\n (click)=\"onSelect(suggestion)\"\n >\n <div class=\"card-header\">\n <symphony-input-radio\n [radioID]=\"suggestion.id\"\n [name]=\"'merge-suggestions'\"\n [isActive]=\"selected === suggestion\"\n (clicked)=\"onSelect(suggestion)\"\n ></symphony-input-radio> \n <div class=\"card-title sfx-font-bold\">\n {{ suggestion.name }} [{{ suggestion.id }}]\n </div>\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <symphony-grid-cell-clicked-open-new-tab\n [newTabUrl]=\"getContactUrl(suggestion.id)\"\n ></symphony-grid-cell-clicked-open-new-tab>\n <symphony-icon-wrapper\n class=\"not-duplicate-icon-global\"\n title=\"Mark not duplicate\"\n (clicked)=\"onNotDuplicate(suggestion)\"\n >\n <symphony-icon [icon]=\"'si-exclude'\"></symphony-icon>\n </symphony-icon-wrapper>\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"suggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ suggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of suggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"suggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ suggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"suggestion.statuses?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of suggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isLoading && !hasError && confirmSuggestion\">\n <div class=\"row\">\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Contact\"></symphony-h5>\n <p class=\"sfx-mt-20 sfx-font-bold\">{{ model.selectedContact.name }} [{{ model.selectedContact.id }}]</p>\n <p>{{ model.selectedContact.email }}</p>\n <p *ngFor=\"let criterion of model.selectedContact.criteria\">{{ criterion }}</p>\n </div>\n <div class=\"col-xs-12 col-sm-6 col-md-6 col-lg-6\">\n <symphony-h5 text=\"Selected Duplicate\"></symphony-h5>\n <div class=\"card-wrapper sfx-mt-20\">\n <div class=\"suggestion-card confirm-card\">\n <div class=\"card-header\">\n <div class=\"card-title sfx-font-bold\">\n {{ confirmSuggestion.name }} [{{ confirmSuggestion.id }}]\n </div>\n </div>\n <div class=\"card-body\">\n <div class=\"info-row\" *ngIf=\"confirmSuggestion.email\">\n <symphony-icon [icon]=\"'si-email-send'\"></symphony-icon>\n <span>{{ confirmSuggestion.email }}</span>\n </div>\n <div class=\"info-row\" *ngFor=\"let criterion of confirmSuggestion.criteria\">\n <symphony-icon\n *ngIf=\"criterion.iconClass\"\n [icon]=\"criterion.iconClass\"\n ></symphony-icon>\n <span>{{ criterion.value }}</span>\n </div>\n <div class=\"info-row\" *ngIf=\"confirmSuggestion.atsId\">\n <span class=\"sfx-txt-gray sfx-font-bold sfx-font12\">ATS ID:</span>\n <span>{{ confirmSuggestion.atsId }}</span>\n </div>\n </div>\n <div class=\"match-criteria\" *ngIf=\"confirmSuggestion.statuses?.length\">\n <div class=\"match-label sfx-txt-gray\">Contacts share the same:</div>\n <div class=\"criteria-list\">\n <symphony-status-pill\n *ngFor=\"let status of confirmSuggestion.statuses\"\n [statusPillModel]=\"{ statusClass: 'statusGrey', value: status }\"\n ></symphony-status-pill>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n </section>\n <section *ngIf=\"currentStep === 2\" class=\"modal-body merge-contacts-body\">\n <ng-content></ng-content>\n </section>\n <section *ngIf=\"currentStep === 1\" class=\"modal-footer\">\n <ng-container *ngIf=\"!confirmSuggestion; else confirmActions\">\n <symphony-button-v2 text=\"Close\" [isSecondary]=\"true\" (clicked)=\"onCancel()\"></symphony-button-v2>\n <symphony-button-v2 text=\"Next\" [disabled]=\"!selected || !!confirmSuggestion\" (clicked)=\"onNext()\"></symphony-button-v2>\n </ng-container>\n <ng-template #confirmActions>\n <div class=\"confirm-actions\">\n <symphony-button-v2\n text=\"Back\"\n [isSecondary]=\"true\"\n (clicked)=\"cancelNotDuplicate()\"\n ></symphony-button-v2>\n <symphony-button-v2\n text=\"Confirm\"\n (clicked)=\"confirmOnNotDuplicate()\"\n ></symphony-button-v2>\n </div>\n </ng-template>\n </section>\n</div>\n", styles: [".scrollable-container{max-height:500px;display:flex;flex-direction:column;overflow-y:auto;padding:20px 10px;gap:10px}.radio-item{display:flex;align-items:flex-start;gap:5px}.radio-label{display:flex;align-items:center;gap:1px}.radio-details{padding-left:24px}.radio-action{margin-left:auto;display:flex}.icon-upwards{margin-top:-1px!important;margin-bottom:auto}.modal-footer{display:flex;gap:10px;width:100%;justify-content:flex-end}.confirm-actions{display:flex;gap:10px}.suggestion-confirm{margin-top:38px}.pending-icon{margin-right:8px}.suggestion-card{border:1px solid #e4e7ef;border-radius:10px;padding:20px;background:#ffffff}.suggestion-card .card-header{display:flex;align-items:flex-start}.suggestion-card .card-title{flex:1;word-break:break-word}.suggestion-card .card-actions{margin-left:auto;display:flex;gap:10px}.suggestion-card .card-body{margin-top:15px;display:flex;flex-direction:column;gap:8px}.suggestion-card .info-row{display:flex;align-items:baseline;gap:8px;word-break:break-word}.suggestion-card .match-criteria{margin-top:10px}.suggestion-card .match-label{font-size:12px;font-weight:500;margin-bottom:8px}.suggestion-card .criteria-list{display:flex;flex-wrap:wrap;gap:8px}.sfx-modal.modal-container .modal-body.merge-contacts-body{padding:0}\n"] }]
100
134
  }], ctorParameters: function () { return []; }, propDecorators: { model: [{
101
135
  type: Input
102
136
  }], isLoading: [{
103
137
  type: Input
104
138
  }], hasError: [{
105
139
  type: Input
140
+ }], stepCopy: [{
141
+ type: Input
106
142
  }], next: [{
107
143
  type: Output
108
144
  }], cancel: [{
@@ -117,6 +153,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
117
153
  type: Output
118
154
  }], requestConfirmSuggestion: [{
119
155
  type: Output
156
+ }], confirmStepCopy: [{
157
+ type: Input
120
158
  }], requestCancelConfirmSuggestion: [{
121
159
  type: Output
122
160
  }], selected: [{
@@ -130,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
130
168
  }], currentStep: [{
131
169
  type: Input
132
170
  }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDakIsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPdkQsTUFBTSxPQUFPLDJCQUEyQjtJQXVCdEM7UUFyQlMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUNsRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUdyQyxDQUFDO1FBQ0ssb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUM3RCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFDdEUsbUNBQThCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUMzRCxhQUFRLEdBQWtDLElBQUks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QUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVU7UUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDakMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsT0FBTyxHQUFHLE9BQU8sNkJBQTZCLEVBQUUsRUFBRSxDQUFDO0lBQ3JELENBQUM7O3dIQWpHVSwyQkFBMkI7NEdBQTNCLDJCQUEyQix3bUJDYnhDLDIvU0FnTUE7MkZEbkxhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwrQkFBK0I7MEVBS2hDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUlHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csOEJBQThCO3NCQUF2QyxNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbCwgTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB9IGZyb20gJy4vbWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwnO1xuaW1wb3J0IHtcbiAgQWxlcnREdXJhdGlvbixcbiAgVG9hc3RlckFsZXJ0TW9kZWwsXG4gIFRvYXN0ZXJBbGVydFR5cGUsXG59IGZyb20gJy4uLy4uL2F0b21zL3RvYXN0ZXItYWxlcnQvdG9hc3Rlci1hbGVydC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LW1lcmdlLWNvbnRhY3RzLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lcmdlLWNvbnRhY3RzLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNZXJnZUNvbnRhY3RzTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSBtb2RlbDogTWVyZ2VDb250YWN0c01vZGFsTW9kZWw7XG4gIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBoYXNFcnJvciA9IGZhbHNlO1xuICBAT3V0cHV0KCkgbmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG5vdER1cGxpY2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIHNlbGVjdGVkOiBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbFsnc2VsZWN0ZWRDb250YWN0J107XG4gICAgc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbjtcbiAgfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGhpZGVTdWNjZXNzVG9hc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBoaWRlRmFpbHVyZVRvYXN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxNZXJnZUNvbnRhY3RTdWdnZXN0aW9uPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENhbmNlbENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBzZWxlY3RlZDogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBjb25maXJtU3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzaG93U3VjY2Vzc1RvYXN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dGYWlsdXJlVG9hc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgY3VycmVudFN0ZXA6IG51bWJlciA9IDE7XG4gIHN1Y2Nlc3NUb2FzdDogVG9hc3RlckFsZXJ0TW9kZWw7XG4gIGZhaWx1cmVUb2FzdDogVG9hc3RlckFsZXJ0TW9kZWw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0ID0gbmV3IFRvYXN0ZXJBbGVydE1vZGVsKCk7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LnR5cGUgPSBUb2FzdGVyQWxlcnRUeXBlLlN1Y2Nlc3M7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0Lm1lc3NhZ2UgPSBcIkNvbnRhY3QgcmVtb3ZlZCBmcm9tIGR1cGxpY2F0ZXMgc3VjY2Vzc2Z1bGx5XCI7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LmR1cmF0aW9uID0gQWxlcnREdXJhdGlvbi5GaXZlU2Vjb25kcztcbiAgdGhpcy5zdWNjZXNzVG9hc3Quc2hvd0Nsb3NlSWNvbiA9IHRydWU7XG5cbiAgdGhpcy5mYWlsdXJlVG9hc3QgPSBuZXcgVG9hc3RlckFsZXJ0TW9kZWwoKTtcbiAgdGhpcy5mYWlsdXJlVG9hc3QudHlwZSA9IFRvYXN0ZXJBbGVydFR5cGUuRXJyb3I7XG4gIHRoaXMuZmFpbHVyZVRvYXN0Lm1lc3NhZ2UgPSBcIkZhaWxlZCB0byByZW1vdmUgY29udGFjdCBmcm9tIGR1cGxpY2F0ZXNcIjtcbiAgdGhpcy5mYWlsdXJlVG9hc3QuZHVyYXRpb24gPSBBbGVydER1cmF0aW9uLkZpdmVTZWNvbmRzO1xuICB0aGlzLmZhaWx1cmVUb2FzdC5zaG93Q2xvc2VJY29uID0gdHJ1ZTtcbiAgfVxuXG4gIG9uTmV4dCgpIHtcbiAgICB0aGlzLm5leHQuZW1pdCh0aGlzLnNlbGVjdGVkKTtcbiAgfVxuXG4gIG9uQ2FuY2VsKCkge1xuICAgIHRoaXMuY2FuY2VsLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2VsZWN0KHN1Z2dlc3Rpb246IE1lcmdlQ29udGFjdFN1Z2dlc3Rpb24pIHtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHN1Z2dlc3Rpb24pO1xuICB9XG5cbiAgb25Ob3REdXBsaWNhdGUoc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbikge1xuICAgIHRoaXMucmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uLmVtaXQoc3VnZ2VzdGlvbik7XG4gIH1cblxuICBjYW5jZWxOb3REdXBsaWNhdGUoKSB7XG4gICAgdGhpcy5yZXF1ZXN0Q2FuY2VsQ29uZmlybVN1Z2dlc3Rpb24uZW1pdCgpO1xuICB9XG5cbiAgY29uZmlybU9uTm90RHVwbGljYXRlKCkge1xuICAgIGlmICh0aGlzLmNvbmZpcm1TdWdnZXN0aW9uKSB7XG4gICAgICB0aGlzLm5vdER1cGxpY2F0ZS5lbWl0KHtcbiAgICAgICAgc2VsZWN0ZWQ6IHRoaXMubW9kZWwuc2VsZWN0ZWRDb250YWN0LFxuICAgICAgICBzdWdnZXN0aW9uOiB0aGlzLmNvbmZpcm1TdWdnZXN0aW9uLFxuICAgICAgfSk7XG4gICAgIH1cbiAgfVxuXG4gIGhhbmRsZU5vdER1cGxpY2F0ZVN1Y2Nlc3MoKSB7XG4gICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuY29uZmlybVN1Z2dlc3Rpb247XG4gICAgaWYgKHJlbW92ZWQpIHtcbiAgICAgIHRoaXMubW9kZWwuc3VnZ2VzdGlvbnMgPSB0aGlzLm1vZGVsLnN1Z2dlc3Rpb25zLmZpbHRlcihcbiAgICAgICAgKHMpID0+IHMgIT09IHJlbW92ZWRcbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZCA9PT0gcmVtb3ZlZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHRoaXMuY29uZmlybVN1Z2dlc3Rpb24gPSBudWxsO1xuICAgICAgdGhpcy5zaG93U3VjY2Vzc1RvYXN0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlTm90RHVwbGljYXRlRXJyb3IoKSB7XG4gICAgdGhpcy5zaG93RmFpbHVyZVRvYXN0ID0gdHJ1ZTtcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgb25IaWRlU3VjY2Vzc1RvYXN0KCkge1xuICAgIHRoaXMuaGlkZVN1Y2Nlc3NUb2FzdC5lbWl0KCk7XG4gIH1cbiAgb25IaWRlRmFpbHVyZVRvYXN0KCkge1xuICAgIHRoaXMuaGlkZUZhaWx1cmVUb2FzdC5lbWl0KCk7XG4gIH1cblxuICBnZXRDb250YWN0VXJsKGlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmO1xuICAgIGNvbnN0IFtiYXNlVXJsXSA9IHVybC5zcGxpdCgnIycpO1xuICAgIHJldHVybiBgJHtiYXNlVXJsfSMvY2FuZGlkYXRlcHJvZmlsZXZpZXc/aWQ9JHtpZH1gO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2Z4IHNmeC1tb2RhbCBtb2RhbC1jb250YWluZXJcIiAqbmdJZj1cIm1vZGVsXCI+XG4gIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtaGVhZGVyIHNmeC1wLTMwIHNmeC1wdC00MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTggY29sLXNtLTggY29sLW1kLTggY29sLWxnLThcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaDQgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiIHRleHQ9XCJNYW5hZ2UgRHVwbGljYXRlc1wiPjwvc3ltcGhvbnktaDQ+XG4gICAgICAgICAgPHN5bXBob255LWg0ICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDJcIiB0ZXh0PVwiTWVyZ2UgQ29udGFjdHNcIj48L3N5bXBob255LWg0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy00IGNvbC1zbS00IGNvbC1tZC00IGNvbC1sZy00XCI+XG4gICAgICAgICAgPHN5bXBob255LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwicHVsbC1yaWdodFwiXG4gICAgICAgICAgICBbaWNvbl09XCInc2ktY2xvc2UtbW9kYWwnXCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgID48L3N5bXBob255LWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS0xMiBjb2wtbWQtMTIgY29sLWxnLTEyIHNmeC1tdC0xNVwiPlxuICAgICAgICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGhcbiAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiXG4gICAgICAgICAgICAgIHRleHQ9XCJUaGUgY29udGFjdHMgYmVsb3cgYXJlIHBvdGVudGlhbCBkdXBsaWNhdGVzLiBQbGVhc2UgY29tcGFyZSB0aGVpciBkYXRhIGFuZCBzZWxlY3QgdGhlIG9uZSB5b3Ugd291bGQgbGlrZSB0byBtZXJnZS5cIlxuICAgICAgICAgICAgPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgICAgICAgICAgPHN5bXBob255LXBhcmFncmFwaFxuICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRTdGVwID09PSAyXCJcbiAgICAgICAgICAgICAgdGV4dD1cIlVzaW5nIHRoZSBmaWVsZHMgYmVsb3csIGNob29zZSBhIFByaW1hcnkgQ29udGFjdCwgYW5kIHRoZW4gc2VsZWN0IHRoZSBkYXRhIHlvdSB3b3VsZCBsaWtlIHRvIG1lcmdlIGFuZCBrZWVwIGluIHRoYXQgUHJpbWFyeSBDb250YWN0IFJlY29yZC4gTWVyZ2luZyBjb250YWN0cyBpcyBpcnJldmVyc2libGUuXCJcbiAgICAgICAgICAgID48L3N5bXBob255LXBhcmFncmFwaD4gICAgICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uIGNsYXNzPVwibW9kYWwtYm9keSBzZngtcC0zMFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0b2FzdGVyLWFsZXJ0LWNvbnRhaW5lci1nbG9iYWxcIj5cbiAgICAgICAgPHN5bXBob255LXRvYXN0ZXItYWxlcnRcbiAgICAgICAgICAqbmdJZj1cInNob3dTdWNjZXNzVG9hc3RcIlxuICAgICAgICAgIFthbGVydE1vZGVsXT1cInN1Y2Nlc3NUb2FzdFwiXG4gICAgICAgICAgKGhpZGVBbGVydCk9XCJvbkhpZGVTdWNjZXNzVG9hc3QoKVwiXG4gICAgICAgID48L3N5bXBob255LXRvYXN0ZXItYWxlcnQ+XG4gICAgICA8c3ltcGhvbnktdG9hc3Rlci1hbGVydFxuICAgICAgICAqbmdJZj1cInNob3dGYWlsdXJlVG9hc3RcIlxuICAgICAgICBbYWxlcnRNb2RlbF09XCJmYWlsdXJlVG9hc3RcIlxuICAgICAgICAoaGlkZUFsZXJ0KT1cIm9uSGlkZUZhaWx1cmVUb2FzdCgpXCJcbiAgICAgID48L3N5bXBob255LXRvYXN0ZXItYWxlcnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwic2Z4LW10LTMwIHNmeC1tYi0zMFwiPlxuICAgICAgPHN5bXBob255LXNmeC1sb2FkZXI+PC9zeW1waG9ueS1zZngtbG9hZGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJoYXNFcnJvclwiIGNsYXNzPVwic2Z4LW10LTMwXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIHRleHQ9XCJTb21ldGhpbmcgaGFzIHdlbnQgd3JvbmcuIFRyeSBhZ2FpbiBsYXRlciBvciBjb250YWN0IHN1cHBvcnRcIj48L3N5bXBob255LXBhcmFncmFwaD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhaGFzRXJyb3IgJiYgKCFtb2RlbD8uc3VnZ2VzdGlvbnMgfHwgbW9kZWwuc3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwKVwiIGNsYXNzPVwic2Z4LW10LTMwXCI+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIHRleHQ9XCJObyBtb3JlIGR1cGxpY2F0ZXMgZXhpc3QgZm9yIHRoaXMgc2VsZWN0ZWQgY29udGFjdC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlclwiPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvciAmJiAhY29uZmlybVN1Z2dlc3Rpb24gJiYgbW9kZWw/LnN1Z2dlc3Rpb25zPy5sZW5ndGhcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICA8c3ltcGhvbnktaDUgdGV4dD1cIlNlbGVjdGVkIENvbnRhY3RcIj48L3N5bXBob255LWg1PlxuICAgICAgICA8cCBjbGFzcz1cInNmeC1tdC0yMCBzZngtZm9udC1ib2xkXCI+e3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0Lm5hbWUgfX0gIFt7eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuaWQgfX1dPC9wPlxuICAgICAgICA8cD57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuZW1haWwgfX08L3A+XG4gICAgICAgIDxwICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2YgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmNyaXRlcmlhXCI+e3sgY3JpdGVyaW9uLnZhbHVlIH19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy02XCI+XG4gICAgICAgPHN5bXBob255LWg1IFt0ZXh0XT1cIidQb3RlbnRpYWwgRHVwbGljYXRlcyAoJyArIChtb2RlbD8uc3VnZ2VzdGlvbnM/Lmxlbmd0aCB8fCAwKSArICcpJ1wiPjwvc3ltcGhvbnktaDU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxhYmxlLWNvbnRhaW5lciBjYXJkLXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiBtb2RlbC5zdWdnZXN0aW9uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb24tY2FyZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZCA9PT0gc3VnZ2VzdGlvbiB9XCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChzdWdnZXN0aW9uKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxzeW1waG9ueS1pbnB1dC1yYWRpb1xuICAgICAgICAgICAgICAgIFtyYWRpb0lEXT1cInN1Z2dlc3Rpb24uaWRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIidtZXJnZS1zdWdnZXN0aW9ucydcIlxuICAgICAgICAgICAgICAgIFtpc0FjdGl2ZV09XCJzZWxlY3RlZCA9PT0gc3VnZ2VzdGlvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25TZWxlY3Qoc3VnZ2VzdGlvbilcIlxuICAgICAgICAgICAgICA+PC9zeW1waG9ueS1pbnB1dC1yYWRpbz4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBzZngtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAge3sgc3VnZ2VzdGlvbi5uYW1lIH19IFt7eyBzdWdnZXN0aW9uLmlkIH19XVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYWN0aW9uc1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiXG4gICAgICAgICAgICAgICAgICBbbmV3VGFiVXJsXT1cImdldENvbnRhY3RVcmwoc3VnZ2VzdGlvbi5pZClcIlxuICAgICAgICAgICAgICAgID48L3N5bXBob255LWdyaWQtY2VsbC1jbGlja2VkLW9wZW4tbmV3LXRhYj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbi13cmFwcGVyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdC1kdXBsaWNhdGUtaWNvbi1nbG9iYWxcIlxuICAgICAgICAgICAgICAgICAgdGl0bGU9XCJNYXJrIG5vdCBkdXBsaWNhdGVcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25Ob3REdXBsaWNhdGUoc3VnZ2VzdGlvbilcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uIFtpY29uXT1cIidzaS1leGNsdWRlJ1wiPjwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgICAgICAgICA8L3N5bXBob255LWljb24td3JhcHBlcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCIgKm5nSWY9XCJzdWdnZXN0aW9uLmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwiJ3NpLWVtYWlsLXNlbmQnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHN1Z2dlc3Rpb24uZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiAqbmdGb3I9XCJsZXQgY3JpdGVyaW9uIG9mIHN1Z2dlc3Rpb24uY3JpdGVyaWFcIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvblxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjcml0ZXJpb24uaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cImNyaXRlcmlvbi5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgID48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgY3JpdGVyaW9uLnZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCIgKm5nSWY9XCJzdWdnZXN0aW9uLmF0c0lkXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZngtdHh0LWdyYXkgc2Z4LWZvbnQtYm9sZCBzZngtZm9udDEyXCI+QVRTIElEOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBzdWdnZXN0aW9uLmF0c0lkIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdGNoLWNyaXRlcmlhXCIgKm5nSWY9XCJzdWdnZXN0aW9uLnN0YXR1c2VzPy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdGNoLWxhYmVsIHNmeC10eHQtZ3JheVwiPkNvbnRhY3RzIHNoYXJlIHRoZSBzYW1lOjwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtbGlzdFwiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1zdGF0dXMtcGlsbFxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0YXR1cyBvZiBzdWdnZXN0aW9uLnN0YXR1c2VzXCJcbiAgICAgICAgICAgICAgICAgIFtzdGF0dXNQaWxsTW9kZWxdPVwieyBzdGF0dXNDbGFzczogJ3N0YXR1c0dyZXknLCB2YWx1ZTogc3RhdHVzIH1cIlxuICAgICAgICAgICAgICAgID48L3N5bXBob255LXN0YXR1cy1waWxsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvciAmJiBjb25maXJtU3VnZ2VzdGlvblwiPlxuICAgICAgPHN5bXBob255LWg1IHRleHQ9XCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlIHRoaXMgY29udGFjdCBhcyBhIHBvdGVudGlhbCBkdXBsaWNhdGU/IFwiPjwvc3ltcGhvbnktaDU+XG4gICAgICA8ZGl2IGNsYXNzPVwic2Z4LW10LTIwIHJhZGlvLWFjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uIGNsYXNzPVwicGVuZGluZy1pY29uXCIgW2ljb25dPVwiJ3NpLXBlbmRpbmctaW5jb21wbGV0ZSdcIj48L3N5bXBob255LWljb24+XG4gICAgICA8c3ltcGhvbnktcGFyYWdyYXBoIGNsYXNzPVwic2Z4LWZvbnQtaXRhbGljXCIgdGV4dD1cIkRvaW5nIHNvIGlzIGlycmV2ZXJzaWJsZSBhbmQgdGhpcyBjb250YWN0IHdpbGwgbmV2ZXIgYmUgc2hvd24gYXMgYSBwb3RlbnRpYWwgZHVwbGljYXRlIG9mIHRoaXMgY29udGFjdCBhZ2Fpbi5cIj48L3N5bXBob255LXBhcmFncmFwaD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBzZngtbXQtMzBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiU2VsZWN0ZWQgQ29udGFjdFwiPjwvc3ltcGhvbnktaDU+XG4gICAgICAgICAgPHAgY2xhc3M9XCJzZngtbXQtMjAgc2Z4LWZvbnQtYm9sZFwiPnt7IG1vZGVsLnNlbGVjdGVkQ29udGFjdC5uYW1lIH19ICBbe3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmlkIH19XTwvcD5cbiAgICAgICAgICA8cD57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QuZW1haWwgfX08L3A+XG4gICAgICAgICAgPHAgKm5nRm9yPVwibGV0IGNyaXRlcmlvbiBvZiBtb2RlbC5zZWxlY3RlZENvbnRhY3QuY3JpdGVyaWFcIj57eyBjcml0ZXJpb24gfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy02XCI+XG4gICAgICAgICAgPHN5bXBob255LWg1IHRleHQ9XCJTZWxlY3RlZCBEdXBsaWNhdGVcIj48L3N5bXBob255LWg1PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXdyYXBwZXIgc2Z4LW10LTIwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VnZ2VzdGlvbi1jYXJkIGNvbmZpcm0tY2FyZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBzZngtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICAgICAgICB7eyBjb25maXJtU3VnZ2VzdGlvbi5uYW1lIH19IFt7eyBjb25maXJtU3VnZ2VzdGlvbi5pZCB9fV1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiAqbmdJZj1cImNvbmZpcm1TdWdnZXN0aW9uLmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktZW1haWwtc2VuZCdcIj48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb25maXJtU3VnZ2VzdGlvbi5lbWFpbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiAqbmdGb3I9XCJsZXQgY3JpdGVyaW9uIG9mIGNvbmZpcm1TdWdnZXN0aW9uLmNyaXRlcmlhXCI+XG4gICAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNyaXRlcmlvbi5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJjcml0ZXJpb24uaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgID48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjcml0ZXJpb24udmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCIgKm5nSWY9XCJjb25maXJtU3VnZ2VzdGlvbi5hdHNJZFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZngtdHh0LWdyYXkgc2Z4LWZvbnQtYm9sZCBzZngtZm9udDEyXCI+QVRTIElEOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGNvbmZpcm1TdWdnZXN0aW9uLmF0c0lkIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdGNoLWNyaXRlcmlhXCIgKm5nSWY9XCJjb25maXJtU3VnZ2VzdGlvbi5zdGF0dXNlcz8ubGVuZ3RoXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hdGNoLWxhYmVsIHNmeC10eHQtZ3JheVwiPkNvbnRhY3RzIHNoYXJlIHRoZSBzYW1lOjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcml0ZXJpYS1saXN0XCI+XG4gICAgICAgICAgICAgICAgICA8c3ltcGhvbnktc3RhdHVzLXBpbGxcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0YXR1cyBvZiBjb25maXJtU3VnZ2VzdGlvbi5zdGF0dXNlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtzdGF0dXNQaWxsTW9kZWxdPVwieyBzdGF0dXNDbGFzczogJ3N0YXR1c0dyZXknLCB2YWx1ZTogc3RhdHVzIH1cIlxuICAgICAgICAgICAgICAgICAgPjwvc3ltcGhvbnktc3RhdHVzLXBpbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybS1hY3Rpb25zXCI+XG4gICAgICAgIDxzeW1waG9ueS1idXR0b24tdjJcbiAgICAgICAgICB0ZXh0PVwiQ2FuY2VsXCJcbiAgICAgICAgICBbaXNTZWNvbmRhcnldPVwidHJ1ZVwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiY2FuY2VsTm90RHVwbGljYXRlKClcIlxuICAgICAgICA+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgICAgIDxzeW1waG9ueS1idXR0b24tdjJcbiAgICAgICAgICB0ZXh0PVwiQ29uZmlybVwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiY29uZmlybU9uTm90RHVwbGljYXRlKClcIlxuICAgICAgICA+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCAqbmdJZj1cImN1cnJlbnRTdGVwID09PSAyXCI+PC9uZy1jb250ZW50PlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDFcIiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgIDxzeW1waG9ueS1idXR0b24tdjIgdGV4dD1cIkNsb3NlXCIgW2lzU2Vjb25kYXJ5XT1cInRydWVcIiAoY2xpY2tlZCk9XCJvbkNhbmNlbCgpXCI+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgPHN5bXBob255LWJ1dHRvbi12MiB0ZXh0PVwiTmV4dFwiIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWQgfHwgISFjb25maXJtU3VnZ2VzdGlvblwiIChjbGlja2VkKT1cIm9uTmV4dCgpXCI+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gIDwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9vcmdhbmlzbXMvbWVyZ2UtY29udGFjdHMtbW9kYWwvbWVyZ2UtY29udGFjdHMtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGlCQUFpQixFQUNqQixnQkFBZ0IsR0FDakIsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPdkQsTUFBTSxPQUFPLDJCQUEyQjtJQXlCdEM7UUF2QlMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBbUQsRUFBRSxDQUFDO1FBQzdELFNBQUksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUNsRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUdyQyxDQUFDO1FBQ0ssb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUM3RCxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFFdEUsbUNBQThCLEdBQUcsSUFBSSxZQUFZLEVBQVEs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TyxxQkFBcUIsQ0FDM0IsSUFBWTtRQUVaLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhDLElBQUksU0FBUyxJQUFJLFNBQVMsRUFBRTtZQUMxQixPQUFPO2dCQUNMLEdBQUcsU0FBUztnQkFDWixHQUFHLFNBQVM7YUFDYixDQUFDO1NBQ0g7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzt3SEFoSlUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsa3FCQ2J4QyxpL1JBZ01BOzJGRG5MYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsK0JBQStCOzBFQUtoQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUlHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0UsZUFBZTtzQkFBdkIsS0FBSztnQkFDSSw4QkFBOEI7c0JBQXZDLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lcmdlQ29udGFjdHNNb2RhbE1vZGVsLCBNZXJnZUNvbnRhY3RzU3RlcENvcHksIE1lcmdlQ29udGFjdFN1Z2dlc3Rpb24gfSBmcm9tICcuL21lcmdlLWNvbnRhY3RzLW1vZGFsLm1vZGVsJztcbmltcG9ydCB7XG4gIEFsZXJ0RHVyYXRpb24sXG4gIFRvYXN0ZXJBbGVydE1vZGVsLFxuICBUb2FzdGVyQWxlcnRUeXBlLFxufSBmcm9tICcuLi8uLi9hdG9tcy90b2FzdGVyLWFsZXJ0L3RvYXN0ZXItYWxlcnQubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1tZXJnZS1jb250YWN0cy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXJnZS1jb250YWN0cy1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lcmdlLWNvbnRhY3RzLW1vZGFsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTWVyZ2VDb250YWN0c01vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbW9kZWw6IE1lcmdlQ29udGFjdHNNb2RhbE1vZGVsO1xuICBASW5wdXQoKSBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgaGFzRXJyb3IgPSBmYWxzZTtcbiAgQElucHV0KCkgc3RlcENvcHk6IFBhcnRpYWw8UmVjb3JkPG51bWJlciwgTWVyZ2VDb250YWN0c1N0ZXBDb3B5Pj4gPSB7fTsgIFxuICBAT3V0cHV0KCkgbmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIG5vdER1cGxpY2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIHNlbGVjdGVkOiBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbFsnc2VsZWN0ZWRDb250YWN0J107XG4gICAgc3VnZ2VzdGlvbjogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbjtcbiAgfT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8TWVyZ2VDb250YWN0U3VnZ2VzdGlvbj4oKTtcbiAgQE91dHB1dCgpIGhpZGVTdWNjZXNzVG9hc3QgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBoaWRlRmFpbHVyZVRvYXN0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVxdWVzdENvbmZpcm1TdWdnZXN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxNZXJnZUNvbnRhY3RTdWdnZXN0aW9uPigpO1xuICBASW5wdXQoKSBjb25maXJtU3RlcENvcHk/OiBNZXJnZUNvbnRhY3RzU3RlcENvcHk7ICBcbiAgQE91dHB1dCgpIHJlcXVlc3RDYW5jZWxDb25maXJtU3VnZ2VzdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQElucHV0KCkgc2VsZWN0ZWQ6IE1lcmdlQ29udGFjdFN1Z2dlc3Rpb24gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgY29uZmlybVN1Z2dlc3Rpb246IE1lcmdlQ29udGFjdFN1Z2dlc3Rpb24gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgc2hvd1N1Y2Nlc3NUb2FzdCA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93RmFpbHVyZVRvYXN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGN1cnJlbnRTdGVwOiBudW1iZXIgPSAxO1xuICBzdWNjZXNzVG9hc3Q6IFRvYXN0ZXJBbGVydE1vZGVsO1xuICBmYWlsdXJlVG9hc3Q6IFRvYXN0ZXJBbGVydE1vZGVsO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB0aGlzLnN1Y2Nlc3NUb2FzdCA9IG5ldyBUb2FzdGVyQWxlcnRNb2RlbCgpO1xuICB0aGlzLnN1Y2Nlc3NUb2FzdC50eXBlID0gVG9hc3RlckFsZXJ0VHlwZS5TdWNjZXNzO1xuICB0aGlzLnN1Y2Nlc3NUb2FzdC5tZXNzYWdlID0gXCJDb250YWN0IHJlbW92ZWQgZnJvbSBkdXBsaWNhdGVzIHN1Y2Nlc3NmdWxseVwiO1xuICB0aGlzLnN1Y2Nlc3NUb2FzdC5kdXJhdGlvbiA9IEFsZXJ0RHVyYXRpb24uRml2ZVNlY29uZHM7XG4gIHRoaXMuc3VjY2Vzc1RvYXN0LnNob3dDbG9zZUljb24gPSB0cnVlO1xuXG4gIHRoaXMuZmFpbHVyZVRvYXN0ID0gbmV3IFRvYXN0ZXJBbGVydE1vZGVsKCk7XG4gIHRoaXMuZmFpbHVyZVRvYXN0LnR5cGUgPSBUb2FzdGVyQWxlcnRUeXBlLkVycm9yO1xuICB0aGlzLmZhaWx1cmVUb2FzdC5tZXNzYWdlID0gXCJGYWlsZWQgdG8gcmVtb3ZlIGNvbnRhY3QgZnJvbSBkdXBsaWNhdGVzXCI7XG4gIHRoaXMuZmFpbHVyZVRvYXN0LmR1cmF0aW9uID0gQWxlcnREdXJhdGlvbi5GaXZlU2Vjb25kcztcbiAgdGhpcy5mYWlsdXJlVG9hc3Quc2hvd0Nsb3NlSWNvbiA9IHRydWU7XG4gIH1cblxuICBvbk5leHQoKSB7XG4gICAgdGhpcy5uZXh0LmVtaXQodGhpcy5zZWxlY3RlZCk7XG4gIH1cblxuICBvbkNhbmNlbCgpIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBvblNlbGVjdChzdWdnZXN0aW9uOiBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uKSB7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChzdWdnZXN0aW9uKTtcbiAgfVxuXG4gIG9uTm90RHVwbGljYXRlKHN1Z2dlc3Rpb246IE1lcmdlQ29udGFjdFN1Z2dlc3Rpb24pIHtcbiAgICB0aGlzLnJlcXVlc3RDb25maXJtU3VnZ2VzdGlvbi5lbWl0KHN1Z2dlc3Rpb24pO1xuICB9XG5cbiAgY2FuY2VsTm90RHVwbGljYXRlKCkge1xuICAgIHRoaXMucmVxdWVzdENhbmNlbENvbmZpcm1TdWdnZXN0aW9uLmVtaXQoKTtcbiAgfVxuXG4gIGNvbmZpcm1Pbk5vdER1cGxpY2F0ZSgpIHtcbiAgICBpZiAodGhpcy5jb25maXJtU3VnZ2VzdGlvbikge1xuICAgICAgdGhpcy5ub3REdXBsaWNhdGUuZW1pdCh7XG4gICAgICAgIHNlbGVjdGVkOiB0aGlzLm1vZGVsLnNlbGVjdGVkQ29udGFjdCxcbiAgICAgICAgc3VnZ2VzdGlvbjogdGhpcy5jb25maXJtU3VnZ2VzdGlvbixcbiAgICAgIH0pO1xuICAgICB9XG4gIH1cblxuICBoYW5kbGVOb3REdXBsaWNhdGVTdWNjZXNzKCkge1xuICAgIGNvbnN0IHJlbW92ZWQgPSB0aGlzLmNvbmZpcm1TdWdnZXN0aW9uO1xuICAgIGlmIChyZW1vdmVkKSB7XG4gICAgICB0aGlzLm1vZGVsLnN1Z2dlc3Rpb25zID0gdGhpcy5tb2RlbC5zdWdnZXN0aW9ucy5maWx0ZXIoXG4gICAgICAgIChzKSA9PiBzICE9PSByZW1vdmVkXG4gICAgICApO1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQgPT09IHJlbW92ZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbmZpcm1TdWdnZXN0aW9uID0gbnVsbDtcbiAgICAgIHRoaXMuc2hvd1N1Y2Nlc3NUb2FzdCA9IHRydWU7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU5vdER1cGxpY2F0ZUVycm9yKCkge1xuICAgIHRoaXMuc2hvd0ZhaWx1cmVUb2FzdCA9IHRydWU7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIG9uSGlkZVN1Y2Nlc3NUb2FzdCgpIHtcbiAgICB0aGlzLmhpZGVTdWNjZXNzVG9hc3QuZW1pdCgpO1xuICB9XG4gIG9uSGlkZUZhaWx1cmVUb2FzdCgpIHtcbiAgICB0aGlzLmhpZGVGYWlsdXJlVG9hc3QuZW1pdCgpO1xuICB9XG5cbiAgZ2V0Q29udGFjdFVybChpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICBjb25zdCBbYmFzZVVybF0gPSB1cmwuc3BsaXQoJyMnKTtcbiAgICByZXR1cm4gYCR7YmFzZVVybH0jL2NhbmRpZGF0ZXByb2ZpbGV2aWV3P2lkPSR7aWR9YDtcbiAgfVxuXG4gIGdldFN0ZXBUaXRsZShzdGVwOiBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdldFN0ZXBDb3B5KHN0ZXApPy50aXRsZTtcbiAgfVxuXG4gIGdldFN0ZXBEZXNjcmlwdGlvbihzdGVwOiBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdldFN0ZXBDb3B5KHN0ZXApPy5kZXNjcmlwdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RlcENvcHkoc3RlcDogbnVtYmVyKTogTWVyZ2VDb250YWN0c1N0ZXBDb3B5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5jb25maXJtU3VnZ2VzdGlvbiAmJiBzdGVwID09PSAxKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRDb25maXJtU3VnZ2VzdGlvbkNvcHkoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXRDb25maWd1cmVkU3RlcENvcHkoc3RlcCk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbmZpcm1TdWdnZXN0aW9uQ29weSgpOiBNZXJnZUNvbnRhY3RzU3RlcENvcHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGNvbmZpcm1Db3B5OiBNZXJnZUNvbnRhY3RzU3RlcENvcHkgPSB7XG4gICAgICAuLi4odGhpcy5tb2RlbD8uY29uZmlybVN0ZXBDb3B5ID8/IHt9KSxcbiAgICAgIC4uLih0aGlzLmNvbmZpcm1TdGVwQ29weSA/PyB7fSksXG4gICAgfTtcblxuICAgIGlmIChjb25maXJtQ29weS50aXRsZSB8fCBjb25maXJtQ29weS5kZXNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIGNvbmZpcm1Db3B5O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldENvbmZpZ3VyZWRTdGVwQ29weSgxKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29uZmlndXJlZFN0ZXBDb3B5KFxuICAgIHN0ZXA6IG51bWJlclxuICApOiBNZXJnZUNvbnRhY3RzU3RlcENvcHkgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1vZGVsQ29weSA9IHRoaXMubW9kZWw/LnN0ZXBDb3B5Py5bc3RlcF07XG4gICAgY29uc3QgaW5wdXRDb3B5ID0gdGhpcy5zdGVwQ29weT8uW3N0ZXBdO1xuXG4gICAgaWYgKG1vZGVsQ29weSB8fCBpbnB1dENvcHkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm1vZGVsQ29weSxcbiAgICAgICAgLi4uaW5wdXRDb3B5LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIFxufVxuIiwiPGRpdiBjbGFzcz1cInNmeCBzZngtbW9kYWwgbW9kYWwtY29udGFpbmVyXCIgKm5nSWY9XCJtb2RlbFwiPlxuICA8c2VjdGlvbiBjbGFzcz1cIm1vZGFsLWhlYWRlciBzZngtcC0zMCBzZngtcHQtNDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibW9kYWwtdGl0bGVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy04IGNvbC1zbS04IGNvbC1tZC04IGNvbC1sZy04XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldFN0ZXBUaXRsZShjdXJyZW50U3RlcCkgYXMgc3RlcFRpdGxlXCI+XG4gICAgICAgICAgICA8c3ltcGhvbnktaDQgW3RleHRdPVwic3RlcFRpdGxlXCI+PC9zeW1waG9ueS1oND5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTQgY29sLXNtLTQgY29sLW1kLTQgY29sLWxnLTRcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJwdWxsLXJpZ2h0XCJcbiAgICAgICAgICAgIFtpY29uXT1cIidzaS1jbG9zZS1tb2RhbCdcIlxuICAgICAgICAgICAgKGNsaWNrZWQpPVwib25DYW5jZWwoKVwiXG4gICAgICAgICAgPjwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tMTIgY29sLW1kLTEyIGNvbC1sZy0xMiBzZngtbXQtMTVcIlxuICAgICAgICAgICpuZ0lmPVwiZ2V0U3RlcERlc2NyaXB0aW9uKGN1cnJlbnRTdGVwKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ2V0U3RlcERlc2NyaXB0aW9uKGN1cnJlbnRTdGVwKSBhcyBzdGVwRGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGggW3RleHRdPVwic3RlcERlc2NyaXB0aW9uXCI+PC9zeW1waG9ueS1wYXJhZ3JhcGg+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+ICAgICAgICAgICAgXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvc2VjdGlvbj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJtb2RhbC1ib2R5IHNmeC1wLTMwXCIgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gMVwiPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cInRvYXN0ZXItYWxlcnQtY29udGFpbmVyLWdsb2JhbFwiPlxuICAgICAgICA8c3ltcGhvbnktdG9hc3Rlci1hbGVydFxuICAgICAgICAgICpuZ0lmPVwic2hvd1N1Y2Nlc3NUb2FzdFwiXG4gICAgICAgICAgW2FsZXJ0TW9kZWxdPVwic3VjY2Vzc1RvYXN0XCJcbiAgICAgICAgICAoaGlkZUFsZXJ0KT1cIm9uSGlkZVN1Y2Nlc3NUb2FzdCgpXCJcbiAgICAgICAgPjwvc3ltcGhvbnktdG9hc3Rlci1hbGVydD5cbiAgICAgIDxzeW1waG9ueS10b2FzdGVyLWFsZXJ0XG4gICAgICAgICpuZ0lmPVwic2hvd0ZhaWx1cmVUb2FzdFwiXG4gICAgICAgIFthbGVydE1vZGVsXT1cImZhaWx1cmVUb2FzdFwiXG4gICAgICAgIChoaWRlQWxlcnQpPVwib25IaWRlRmFpbHVyZVRvYXN0KClcIlxuICAgICAgPjwvc3ltcGhvbnktdG9hc3Rlci1hbGVydD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNMb2FkaW5nXCIgY2xhc3M9XCJzZngtbXQtMzAgc2Z4LW1iLTMwXCI+XG4gICAgICA8c3ltcGhvbnktc2Z4LWxvYWRlcj48L3N5bXBob255LXNmeC1sb2FkZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImhhc0Vycm9yXCIgY2xhc3M9XCJzZngtbXQtMzBcIj5cbiAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGggdGV4dD1cIldlIGNvdWxkbid0IHJldHJpZXZlIHRoZSBjYW5kaWRhdGUgZGF0YS4gVGhlIGluZm9ybWF0aW9uIGNhbm5vdCBiZSBkaXNwbGF5ZWQgYXQgdGhpcyB0aW1lLCBwbGVhc2UgdHJ5IGFnYWluLlwiPjwvc3ltcGhvbnktcGFyYWdyYXBoPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaXNMb2FkaW5nICYmICFoYXNFcnJvciAmJiAoIW1vZGVsPy5zdWdnZXN0aW9ucyB8fCBtb2RlbC5zdWdnZXN0aW9ucy5sZW5ndGggPT09IDApXCIgY2xhc3M9XCJzZngtbXQtMzBcIj5cbiAgICAgIDxzeW1waG9ueS1wYXJhZ3JhcGggdGV4dD1cIk5vIG1vcmUgZHVwbGljYXRlcyBleGlzdCBmb3IgdGhpcyBzZWxlY3RlZCBjb250YWN0LiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyXCI+PC9zeW1waG9ueS1wYXJhZ3JhcGg+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIWhhc0Vycm9yICYmICFjb25maXJtU3VnZ2VzdGlvbiAmJiBtb2RlbD8uc3VnZ2VzdGlvbnM/Lmxlbmd0aFwiIGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLXhzLTEyIGNvbC1zbS02IGNvbC1tZC02IGNvbC1sZy02XCI+XG4gICAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiU2VsZWN0ZWQgQ29udGFjdFwiPjwvc3ltcGhvbnktaDU+XG4gICAgICAgIDxwIGNsYXNzPVwic2Z4LW10LTIwIHNmeC1mb250LWJvbGRcIj57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QubmFtZSB9fSAgW3t7IG1vZGVsLnNlbGVjdGVkQ29udGFjdC5pZCB9fV08L3A+XG4gICAgICAgIDxwPnt7IG1vZGVsLnNlbGVjdGVkQ29udGFjdC5lbWFpbCB9fTwvcD5cbiAgICAgICAgPHAgKm5nRm9yPVwibGV0IGNyaXRlcmlvbiBvZiBtb2RlbC5zZWxlY3RlZENvbnRhY3QuY3JpdGVyaWFcIj57eyBjcml0ZXJpb24udmFsdWUgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTYgY29sLW1kLTYgY29sLWxnLTZcIj5cbiAgICAgICA8c3ltcGhvbnktaDUgW3RleHRdPVwiJ1BvdGVudGlhbCBEdXBsaWNhdGVzICgnICsgKG1vZGVsPy5zdWdnZXN0aW9ucz8ubGVuZ3RoIHx8IDApICsgJyknXCI+PC9zeW1waG9ueS1oNT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNjcm9sbGFibGUtY29udGFpbmVyIGNhcmQtd3JhcHBlclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdWdnZXN0aW9uIG9mIG1vZGVsLnN1Z2dlc3Rpb25zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgIGNsYXNzPVwic3VnZ2VzdGlvbi1jYXJkXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IHNlbGVjdGVkID09PSBzdWdnZXN0aW9uIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0KHN1Z2dlc3Rpb24pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHN5bXBob255LWlucHV0LXJhZGlvXG4gICAgICAgICAgICAgICAgW3JhZGlvSURdPVwic3VnZ2VzdGlvbi5pZFwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwiJ21lcmdlLXN1Z2dlc3Rpb25zJ1wiXG4gICAgICAgICAgICAgICAgW2lzQWN0aXZlXT1cInNlbGVjdGVkID09PSBzdWdnZXN0aW9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJvblNlbGVjdChzdWdnZXN0aW9uKVwiXG4gICAgICAgICAgICAgID48L3N5bXBob255LWlucHV0LXJhZGlvPiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIHNmeC1mb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICB7eyBzdWdnZXN0aW9uLm5hbWUgfX0gW3t7IHN1Z2dlc3Rpb24uaWQgfX1dXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hY3Rpb25zXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1ncmlkLWNlbGwtY2xpY2tlZC1vcGVuLW5ldy10YWJcbiAgICAgICAgICAgICAgICAgIFtuZXdUYWJVcmxdPVwiZ2V0Q29udGFjdFVybChzdWdnZXN0aW9uLmlkKVwiXG4gICAgICAgICAgICAgICAgPjwvc3ltcGhvbnktZ3JpZC1jZWxsLWNsaWNrZWQtb3Blbi1uZXctdGFiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uLXdyYXBwZXJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibm90LWR1cGxpY2F0ZS1pY29uLWdsb2JhbFwiXG4gICAgICAgICAgICAgICAgICB0aXRsZT1cIk1hcmsgbm90IGR1cGxpY2F0ZVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJvbk5vdER1cGxpY2F0ZShzdWdnZXN0aW9uKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwiJ3NpLWV4Y2x1ZGUnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgICAgIDwvc3ltcGhvbnktaWNvbi13cmFwcGVyPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiAqbmdJZj1cInN1Z2dlc3Rpb24uZW1haWxcIj5cbiAgICAgICAgICAgICAgICA8c3ltcGhvbnktaWNvbiBbaWNvbl09XCInc2ktZW1haWwtc2VuZCdcIj48L3N5bXBob255LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgc3VnZ2VzdGlvbi5lbWFpbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXJvd1wiICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2Ygc3VnZ2VzdGlvbi5jcml0ZXJpYVwiPlxuICAgICAgICAgICAgICAgIDxzeW1waG9ueS1pY29uXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNyaXRlcmlvbi5pY29uQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgW2ljb25dPVwiY3JpdGVyaW9uLmljb25DbGFzc1wiXG4gICAgICAgICAgICAgICAgPjwvc3ltcGhvbnktaWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBjcml0ZXJpb24udmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiAqbmdJZj1cInN1Z2dlc3Rpb24uYXRzSWRcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNmeC10eHQtZ3JheSBzZngtZm9udC1ib2xkIHNmeC1mb250MTJcIj5BVFMgSUQ6PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHN1Z2dlc3Rpb24uYXRzSWQgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0Y2gtY3JpdGVyaWFcIiAqbmdJZj1cInN1Z2dlc3Rpb24uc3RhdHVzZXM/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWF0Y2gtbGFiZWwgc2Z4LXR4dC1ncmF5XCI+Q29udGFjdHMgc2hhcmUgdGhlIHNhbWU6PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcml0ZXJpYS1saXN0XCI+XG4gICAgICAgICAgICAgICAgPHN5bXBob255LXN0YXR1cy1waWxsXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RhdHVzIG9mIHN1Z2dlc3Rpb24uc3RhdHVzZXNcIlxuICAgICAgICAgICAgICAgICAgW3N0YXR1c1BpbGxNb2RlbF09XCJ7IHN0YXR1c0NsYXNzOiAnc3RhdHVzR3JleScsIHZhbHVlOiBzdGF0dXMgfVwiXG4gICAgICAgICAgICAgICAgPjwvc3ltcGhvbnktc3RhdHVzLXBpbGw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIWhhc0Vycm9yICYmIGNvbmZpcm1TdWdnZXN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wteHMtMTIgY29sLXNtLTYgY29sLW1kLTYgY29sLWxnLTZcIj5cbiAgICAgICAgICA8c3ltcGhvbnktaDUgdGV4dD1cIlNlbGVjdGVkIENvbnRhY3RcIj48L3N5bXBob255LWg1PlxuICAgICAgICAgIDxwIGNsYXNzPVwic2Z4LW10LTIwIHNmeC1mb250LWJvbGRcIj57eyBtb2RlbC5zZWxlY3RlZENvbnRhY3QubmFtZSB9fSAgW3t7IG1vZGVsLnNlbGVjdGVkQ29udGFjdC5pZCB9fV08L3A+XG4gICAgICAgICAgPHA+e3sgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmVtYWlsIH19PC9wPlxuICAgICAgICAgIDxwICpuZ0Zvcj1cImxldCBjcml0ZXJpb24gb2YgbW9kZWwuc2VsZWN0ZWRDb250YWN0LmNyaXRlcmlhXCI+e3sgY3JpdGVyaW9uIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC14cy0xMiBjb2wtc20tNiBjb2wtbWQtNiBjb2wtbGctNlwiPlxuICAgICAgICAgIDxzeW1waG9ueS1oNSB0ZXh0PVwiU2VsZWN0ZWQgRHVwbGljYXRlXCI+PC9zeW1waG9ueS1oNT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC13cmFwcGVyIHNmeC1tdC0yMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Z2dlc3Rpb24tY2FyZCBjb25maXJtLWNhcmRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgc2Z4LWZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgICAgICAge3sgY29uZmlybVN1Z2dlc3Rpb24ubmFtZSB9fSBbe3sgY29uZmlybVN1Z2dlc3Rpb24uaWQgfX1dXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCIgKm5nSWY9XCJjb25maXJtU3VnZ2VzdGlvbi5lbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwiJ3NpLWVtYWlsLXNlbmQnXCI+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY29uZmlybVN1Z2dlc3Rpb24uZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCIgKm5nRm9yPVwibGV0IGNyaXRlcmlvbiBvZiBjb25maXJtU3VnZ2VzdGlvbi5jcml0ZXJpYVwiPlxuICAgICAgICAgICAgICAgICAgPHN5bXBob255LWljb25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjcml0ZXJpb24uaWNvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiY3JpdGVyaW9uLmljb25DbGFzc1wiXG4gICAgICAgICAgICAgICAgICA+PC9zeW1waG9ueS1pY29uPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgY3JpdGVyaW9uLnZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXJvd1wiICpuZ0lmPVwiY29uZmlybVN1Z2dlc3Rpb24uYXRzSWRcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2Z4LXR4dC1ncmF5IHNmeC1mb250LWJvbGQgc2Z4LWZvbnQxMlwiPkFUUyBJRDo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBjb25maXJtU3VnZ2VzdGlvbi5hdHNJZCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXRjaC1jcml0ZXJpYVwiICpuZ0lmPVwiY29uZmlybVN1Z2dlc3Rpb24uc3RhdHVzZXM/Lmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXRjaC1sYWJlbCBzZngtdHh0LWdyYXlcIj5Db250YWN0cyBzaGFyZSB0aGUgc2FtZTo8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3JpdGVyaWEtbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgPHN5bXBob255LXN0YXR1cy1waWxsXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBzdGF0dXMgb2YgY29uZmlybVN1Z2dlc3Rpb24uc3RhdHVzZXNcIlxuICAgICAgICAgICAgICAgICAgICBbc3RhdHVzUGlsbE1vZGVsXT1cInsgc3RhdHVzQ2xhc3M6ICdzdGF0dXNHcmV5JywgdmFsdWU6IHN0YXR1cyB9XCJcbiAgICAgICAgICAgICAgICAgID48L3N5bXBob255LXN0YXR1cy1waWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L3NlY3Rpb24+XG4gIDxzZWN0aW9uICpuZ0lmPVwiY3VycmVudFN0ZXAgPT09IDJcIiBjbGFzcz1cIm1vZGFsLWJvZHkgbWVyZ2UtY29udGFjdHMtYm9keVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9zZWN0aW9uPlxuICA8c2VjdGlvbiAqbmdJZj1cImN1cnJlbnRTdGVwID09PSAxXCIgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbmZpcm1TdWdnZXN0aW9uOyBlbHNlIGNvbmZpcm1BY3Rpb25zXCI+XG4gICAgICA8c3ltcGhvbnktYnV0dG9uLXYyIHRleHQ9XCJDbG9zZVwiIFtpc1NlY29uZGFyeV09XCJ0cnVlXCIgKGNsaWNrZWQpPVwib25DYW5jZWwoKVwiPjwvc3ltcGhvbnktYnV0dG9uLXYyPlxuICAgICAgPHN5bXBob255LWJ1dHRvbi12MiB0ZXh0PVwiTmV4dFwiIFtkaXNhYmxlZF09XCIhc2VsZWN0ZWQgfHwgISFjb25maXJtU3VnZ2VzdGlvblwiIChjbGlja2VkKT1cIm9uTmV4dCgpXCI+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNjb25maXJtQWN0aW9ucz5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb25maXJtLWFjdGlvbnNcIj5cbiAgICAgICAgPHN5bXBob255LWJ1dHRvbi12MlxuICAgICAgICAgIHRleHQ9XCJCYWNrXCJcbiAgICAgICAgICBbaXNTZWNvbmRhcnldPVwidHJ1ZVwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiY2FuY2VsTm90RHVwbGljYXRlKClcIlxuICAgICAgICA+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgICAgIDxzeW1waG9ueS1idXR0b24tdjJcbiAgICAgICAgICB0ZXh0PVwiQ29uZmlybVwiXG4gICAgICAgICAgKGNsaWNrZWQpPVwiY29uZmlybU9uTm90RHVwbGljYXRlKClcIlxuICAgICAgICA+PC9zeW1waG9ueS1idXR0b24tdjI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3NlY3Rpb24+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL29yZ2FuaXNtcy9tZXJnZS1jb250YWN0cy1tb2RhbC9tZXJnZS1jb250YWN0cy1tb2RhbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RDcml0ZXJpb24ge1xuICAvKipcbiAgICogRGlzcGxheSB2YWx1ZSBmb3IgdGhlIGNyaXRlcmlvbiAoZS5nLiBwaG9uZSBudW1iZXIgb3IgemlwIGNvZGUpLlxuICAgKi9cbiAgdmFsdWU6IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGljb24gY2xhc3MgcmVwcmVzZW50aW5nIHRoZSBjcml0ZXJpb24gdHlwZS5cbiAgICovXG4gIGljb25DbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3REZXRhaWwge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGF0c0lkPzogc3RyaW5nO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBjcml0ZXJpYSB0byBkaXNwbGF5IGZvciB0aGUgY29udGFjdC5cbiAgICovXG4gIGNyaXRlcmlhOiBNZXJnZUNvbnRhY3RDcml0ZXJpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uIGV4dGVuZHMgTWVyZ2VDb250YWN0RGV0YWlsIHtcbiAgc3RhdHVzZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdlQ29udGFjdHNNb2RhbE1vZGVsIHtcbiAgc2VsZWN0ZWRDb250YWN0OiBNZXJnZUNvbnRhY3REZXRhaWw7XG4gIHN1Z2dlc3Rpb25zOiBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uW107XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtY29udGFjdHMtbW9kYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL29yZ2FuaXNtcy9tZXJnZS1jb250YWN0cy1tb2RhbC9tZXJnZS1jb250YWN0cy1tb2RhbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RDcml0ZXJpb24ge1xuICAvKipcbiAgICogRGlzcGxheSB2YWx1ZSBmb3IgdGhlIGNyaXRlcmlvbiAoZS5nLiBwaG9uZSBudW1iZXIgb3IgemlwIGNvZGUpLlxuICAgKi9cbiAgdmFsdWU6IHN0cmluZztcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGljb24gY2xhc3MgcmVwcmVzZW50aW5nIHRoZSBjcml0ZXJpb24gdHlwZS5cbiAgICovXG4gIGljb25DbGFzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3REZXRhaWwge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGF0c0lkPzogc3RyaW5nO1xuICAvKipcbiAgICogQWRkaXRpb25hbCBjcml0ZXJpYSB0byBkaXNwbGF5IGZvciB0aGUgY29udGFjdC5cbiAgICovXG4gIGNyaXRlcmlhOiBNZXJnZUNvbnRhY3RDcml0ZXJpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RTdWdnZXN0aW9uIGV4dGVuZHMgTWVyZ2VDb250YWN0RGV0YWlsIHtcbiAgc3RhdHVzZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdlQ29udGFjdHNTdGVwQ29weSB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXJnZUNvbnRhY3RzTW9kYWxNb2RlbCB7XG4gIHNlbGVjdGVkQ29udGFjdDogTWVyZ2VDb250YWN0RGV0YWlsO1xuICBzdWdnZXN0aW9uczogTWVyZ2VDb250YWN0U3VnZ2VzdGlvbltdO1xuICBzdGVwQ29weT86IFBhcnRpYWw8UmVjb3JkPG51bWJlciwgTWVyZ2VDb250YWN0c1N0ZXBDb3B5Pj47XG4gIGNvbmZpcm1TdGVwQ29weT86IE1lcmdlQ29udGFjdHNTdGVwQ29weTsgIFxufVxuIl19
@@ -100,5 +100,6 @@ export var Icons;
100
100
  Icons["REPORTS"] = "si-reports";
101
101
  Icons["SFXINSIGHTS"] = "si-sfx-insights-b";
102
102
  Icons["SPARKLES"] = "si-ai-withoutBorder";
103
+ Icons["STARTOVER"] = "si-start-over";
103
104
  })(Icons || (Icons = {}));
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pY29uL2ljb24uZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxLQXFHWDtBQXJHRCxXQUFZLEtBQUs7SUFDZixpREFBd0MsQ0FBQTtJQUN4Qyw2QkFBb0IsQ0FBQTtJQUNwQixpQ0FBd0IsQ0FBQTtJQUN4Qix1QkFBYyxDQUFBO0lBQ2QsbUNBQTBCLENBQUE7SUFDMUIsaURBQXdDLENBQUE7SUFDeEMsb0NBQTJCLENBQUE7SUFDM0IsNkNBQW9DLENBQUE7SUFDcEMsb0NBQTJCLENBQUE7SUFDM0IsaURBQXdDLENBQUE7SUFDeEMsK0JBQXNCLENBQUE7SUFDdEIsK0JBQXNCLENBQUE7SUFDdEIseUNBQWdDLENBQUE7SUFDaEMsc0NBQTZCLENBQUE7SUFDN0IsaUNBQXdCLENBQUE7SUFDeEIsK0JBQXNCLENBQUE7SUFDdEIsNkJBQW9CLENBQUE7SUFDcEIsaUNBQXdCLENBQUE7SUFDeEIsaUNBQXdCLENBQUE7SUFDeEIsbUNBQXlCLENBQUE7SUFDekIseUJBQWdCLENBQUE7SUFDaEIsb0NBQTJCLENBQUE7SUFDM0Isb0NBQTJCLENBQUE7SUFDM0Isb0NBQTJCLENBQUE7SUFDM0IsaURBQXdDLENBQUE7SUFDeEMsK0JBQXNCLENBQUE7SUFDdEIsNkJBQW9CLENBQUE7SUFDcEIsaUNBQXdCLENBQUE7SUFDeEIsNENBQW1DLENBQUE7SUFDbkMsc0NBQTZCLENBQUE7SUFDN0Isd0NBQStCLENBQUE7SUFDL0IsOENBQXFDLENBQUE7SUFDckMsMkJBQWtCLENBQUE7SUFDbEIseUJBQWdCLENBQUE7SUFDaEIseUJBQWdCLENBQUE7SUFDaEIsbUNBQTBCLENBQUE7SUFDMUIsK0JBQXNCLENBQUE7SUFDdEIseUJBQWdCLENBQUE7SUFDaEIsbUNBQTBCLENBQUE7SUFDMUIseUJBQWdCLENBQUE7SUFDaEIseUJBQWdCLENBQUE7SUFDaEIsaUNBQXdCLENBQUE7SUFDeEIsZ0NBQXVCLENBQUE7SUFDdkIsNENBQW1DLENBQUE7SUFDbkMsc0NBQTZCLENBQUE7SUFDN0IsNENBQW1DLENBQUE7SUFDbkMsd0NBQStCLENBQUE7SUFDL0Isd0NBQStCLENBQUE7SUFDL0IsNENBQW1DLENBQUE7SUFDbkMsc0NBQTZCLENBQUE7SUFDN0Isd0NBQStCLENBQUE7SUFDL0Isa0NBQXlCLENBQUE7SUFDekIsc0NBQTZCLENBQUE7SUFDN0IsNENBQW1DLENBQUE7SUFDbkMsMkJBQWtCLENBQUE7SUFDbEIsd0NBQStCLENBQUE7SUFDL0IseUJBQWdCLENBQUE7SUFDaEIsbUNBQTBCLENBQUE7SUFDMUIseUNBQWdDLENBQUE7SUFDaEMsZ0RBQXVDLENBQUE7SUFDdkMsa0RBQXlDLENBQUE7SUFDekMsaUNBQXdCLENBQUE7SUFDeEIsb0RBQTJDLENBQUE7SUFDM0Msd0NBQStCLENBQUE7SUFDL0IsK0JBQXNCLENBQUE7SUFDdEIsK0JBQXNCLENBQUE7SUFDdEIsaUNBQXdCLENBQUE7SUFDeEIsK0JBQXNCLENBQUE7SUFDdEIsNkJBQW9CLENBQUE7SUFDcEIsOENBQXFDLENBQUE7SUFDckMsNkJBQW9CLENBQUE7SUFDcEIsNkJBQW9CLENBQUE7SUFDcEIseUJBQWdCLENBQUE7SUFDaEIsOENBQXFDLENBQUE7SUFDckMsd0NBQStCLENBQUE7SUFDL0Isb0NBQTJCLENBQUE7SUFDM0IsMkNBQWtDLENBQUE7SUFDbEMsdUJBQWMsQ0FBQTtJQUNkLGtDQUF5QixDQUFBO0lBQ3pCLDZCQUFvQixDQUFBO0lBQ3BCLDBDQUFpQyxDQUFBO0lBQ2pDLHVCQUFjLENBQUE7SUFDZCw0Q0FBbUMsQ0FBQTtJQUNuQyxrQ0FBeUIsQ0FBQTtJQUN6Qix5QkFBZ0IsQ0FBQTtJQUNoQixtQ0FBMEIsQ0FBQTtJQUMxQixpQ0FBd0IsQ0FBQTtJQUN4Qiw2QkFBb0IsQ0FBQTtJQUNwQiwwQ0FBaUMsQ0FBQTtJQUNqQyx5QkFBZ0IsQ0FBQTtJQUNoQixpQ0FBd0IsQ0FBQTtJQUN4Qiw4QkFBcUIsQ0FBQTtJQUNyQiwyQ0FBaUMsQ0FBQTtJQUNqQyw0Q0FBbUMsQ0FBQTtJQUNuQyx5Q0FBZ0MsQ0FBQTtJQUNoQyxtQ0FBMEIsQ0FBQTtJQUMxQiwrQkFBc0IsQ0FBQTtJQUN0QiwrQkFBc0IsQ0FBQTtJQUN0QiwwQ0FBZ0MsQ0FBQTtJQUNoQyx5Q0FBZ0MsQ0FBQTtBQUNsQyxDQUFDLEVBckdXLEtBQUssS0FBTCxLQUFLLFFBcUdoQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEljb25zIHtcbiAgQVNTSUdOVE9BQ1RJT05TID0gJ3NpLWFzc2lnbi10by1hY3Rpb25zJyxcbiAgQUNDRVNTID0gJ3NpLWFjY2VzcycsXG4gIEFDVElWSVRZID0gJ3NpLWFjdGl2aXR5JyxcbiAgQUREID0gJ3NpLWFkZCcsXG4gIEFEVkVSVElTRSA9ICdzaS1hZHZlcnRpc2UnLFxuICBBUlJPV0hJREVSRVZFQUwgPSAnc2ktYXJyb3ctaGlkZS1yZXZlYWwnLFxuICBBUlJPV05FWFQgPSAnc2ktYXJyb3ctbmV4dCcsXG4gIEFSUk9XTkVYVEJPTEQgPSAnc2ktYXJyb3ctYm9sZC1uZXh0JyxcbiAgQVJST1dQUkVWID0gJ3NpLWFycm93LXByZXYnLFxuICBBUlJPV1BSRVZCT0xEID0gJ3NpLWFycm93LWJvbGQtcHJldmlvdXMnLFxuICBDSEFUQk9UID0gJ3NpLWNoYXRib3QnLFxuICBDT0RFVEFHID0gJ3NpLWNvZGV0YWcnLFxuICBDT05GSVJNQVRJT04gPSAnc2ktY29uZmlybWF0aW9uJyxcbiAgQ0xPU0VNT0RBTCA9ICdzaS1jbG9zZS1tb2RhbCcsXG4gIENPTExBUFNFID0gJ3NpLWNvbGxhcHNlJyxcbiAgREFZTU9ERSA9ICdzaS1kYXltb2RlJyxcbiAgREVMRVRFID0gJ3NpLWRlbGV0ZScsXG4gIERPQ1VNRU5UID0gJ3NpLWRvY3VtZW50JyxcbiAgRE9XTkxPQUQgPSAnc2ktZG93bmxvYWQnLFxuICBFQ09OT01JQ1MgPSdzaS1lY29ub21pY3MnLFxuICBFRElUID0gJ3NpLWVkaXQnLFxuICBFTUFJTERSSVAgPSAnc2ktZW1haWwtZHJpcCcsXG4gIEVNQUlMT1BFTiA9ICdzaS1lbWFpbC1vcGVuJyxcbiAgRU1BSUxTRU5EID0gJ3NpLWVtYWlsLXNlbmQnLFxuICBFTUFJTFNNU0RFRkFVTFQgPSAnc2ktZW1haWwtc21zLWRlZmF1bHQnLFxuICBFWENMVURFID0gJ3NpLWV4Y2x1ZGUnLFxuICBFWFBBTkQgPSAnc2ktZXhwYW5kJyxcbiAgRkFWT1JJVEUgPSAnc2ktZmF2b3JpdGUnLFxuICBGRUVEQkFDS01BWUJFID0gJ3NpLWZlZWRiYWNrLW1heWJlJyxcbiAgRkVFREJBQ0tOTyA9ICdzaS1mZWVkYmFjay1ubycsXG4gIEZFRURCQUNLWUVTID0gJ3NpLWZlZWRiYWNrLXllcycsXG4gIEZPTERFUk1VTFRJUExFID0gJ3NpLWZvbGRlci1tdWx0aXBsZScsXG4gIEZJRUxEID0gJ3NpLWZpZWxkJyxcbiAgRkxPVyA9ICdzaS1mbG93JyxcbiAgRk9STSA9ICdzaS1mb3JtJyxcbiAgSElFUkFSQ0hZID0gJ3NpLWhpZXJhcmNoeScsXG4gIElOQ0xVREUgPSAnc2ktaW5jbHVkZScsXG4gIElORk8gPSAnc2ktaW5mbycsXG4gIElOVEVSVklFVyA9ICdzaS1pbnRlcnZpZXcnLFxuICBMSU5LID0gJ3NpLWxpbmsnLFxuICBMSVNUID0gJ3NpLWxpc3QnLFxuICBMT0NBVElPTiA9ICdzaS1sb2NhdGlvbicsXG4gIE1FTlVBTEwgPSAnc2ktbWVudS1hbGwnLFxuICBNRU5VQU5BTFlUSUNTID0gJ3NpLW1lbnUtYW5hbHl0aWNzJyxcbiAgTUVOVUFTU0VUUyA9ICdzaS1tZW51LWFzc2V0cycsXG4gIE1FTlVDQU1QQUlHTlMgPSAnc2ktbWVudS1jYW1wYWlnbnMnLFxuICBNRU5VQ09OVEFDVCA9ICdzaS1tZW51LWNvbnRhY3QnLFxuICBNRU5VQ09OVEVOVCA9ICdzaS1tZW51LWNvbnRlbnQnLFxuICBNRU5VREFTSEJPQVJEID0gJ3NpLW1lbnUtZGFzaGJvYXJkJyxcbiAgTUVOVUVWRU5UUyA9ICdzaS1tZW51LWV2ZW50cycsXG4gIE1FTlVGT0xERVJTID0gJ3NpLW1lbnUtZm9sZGVycycsXG4gIE1FTlVKT0JTID0gJ3NpLW1lbnUtam9icycsXG4gIE1FTlVSRVRVUk4gPSAnc2ktbWVudS1yZXR1cm4nLFxuICBNRU5VV09SS0ZMT1dTID0gJ3NpLW1lbnUtd29ya2Zsb3dzJyxcbiAgTUVSR0UgPSAnc2ktbWVyZ2UnLFxuICBNT1JFT1BUSU9OUyA9ICdzaS1tb3JlLW9wdGlvbnMnLFxuICBNT1ZFID0gJ3NpLW1vdmUnLFxuICBOSUdIVE1PREUgPSAnc2ktbmlnaHRtb2RlJyxcbiAgTk9USUZJQ0FUSU9OID0gJ3NpLW5vdGlmaWNhdGlvbicsXG4gIE9SR0FOSVpFQ09MVU1OUyA9ICdzaS1vcmdhbml6ZS1jb2x1bW5zJyxcbiAgT1JHQU5JWkVDT05UQUNUUyA9ICdzaS1vcmdhbml6ZS1jb250YWN0cycsXG4gIFBBU1NXT1JEID0gJ3NpLXBhc3N3b3JkJyxcbiAgUEVORElOR0lOQ09NUExFVEUgPSAnc2ktcGVuZGluZy1pbmNvbXBsZXRlJyxcbiAgUEhPTkVOVU1CRVIgPSAnc2ktcGhvbmUtbnVtYmVyJyxcbiAgUFJFVklFVyA9ICdzaS1wcmV2aWV3JyxcbiAgUFJPTU9URSA9ICdzaS1wcm9tb3RlJyxcbiAgUkVGRVJSQUwgPSAnc2ktcmVmZXJyYWwnLFxuICBSRUZSRVNIID0gJ3NpLXJlZnJlc2gnLFxuICBSRU1PVkUgPSAnc2ktcmVtb3ZlJyxcbiAgUkVTVUxUU0ZJTFRFUlMgPSAnc2ktcmVzdWx0cy1maWx0ZXJzJyxcbiAgUkVWSUVXID0gJ3NpLXJldmlldycsXG4gIFNBTEFSWSA9ICdzaS1zYWxhcnknLFxuICBTQVZFID0gJ3NpLXNhdmUnLFxuICBTRUFSQ0hBRFZBTkNFRCA9ICdzaS1zZWFyY2gtYWR2YW5jZWQnLFxuICBTRUFSQ0hDTEVBUiA9ICdzaS1zZWFyY2gtY2xlYXInLFxuICBTRUFSQ0hORVcgPSAnc2ktc2VhcmNoLW5ldycsXG4gIFNFVFRJTkdTTUFSVCA9ICdzaS1zZXR0aW5ncy1zbWFydCcsXG4gIFNNUyA9ICdzaS1zbXMnLFxuICBTT1JUTUlOSSA9ICdzaS1zb3J0LW1pbmknLFxuICBTVEFUVVMgPSAnc2ktc3RhdHVzJyxcbiAgU1lTVEVNQUNUSU9OID0gJ3NpLXN5c3RlbS1hY3Rpb24nLFxuICBUQUcgPSAnc2ktdGFnJyxcbiAgVEFTS0NPTVBMRVRFRCA9ICdzaS10YXNrLWNvbXBsZXRlZCcsXG4gIFRBU0tPUEVOID0gJ3NpLXRhc2stb3BlbicsXG4gIFRFQU0gPSAnc2ktdGVhbScsXG4gIFRJTUVGUkFNRSA9ICdzaS10aW1lZnJhbWUnLFxuICBUSU1FTElORSA9ICdzaS10aW1lbGluZScsXG4gIFVQTE9BRCA9ICdzaS11cGxvYWQnLFxuICBVU0VSTVVMVElQTEUgPSAnc2ktdXNlci1tdWx0aXBsZScsXG4gIFVTRVIgPSAnc2ktdXNlcicsXG4gIFdPUktGTE9XID0gJ3NpLXdvcmtmbG93JyxcbiAgUVJDT0RFID0gJ3NpLXFyLWNvZGUnLFxuICBBTkFMWVRJQ1NCRVRBPSAnc2ktYW5hbHl0aWNzLW5ldycsXG4gIEJFVEFBTkFMWVRJQ1MgPSAnc2ktYmV0YS1hbmFseXRpY3MnLFxuICBBRERUT0ZPTERFUiA9ICdzaS1hZGQtdG8tZm9sZGVyJyxcbiAgQUREVE9KT0IgPSAnc2ktYWRkLXRvLWpvYicsXG4gIExJQ0VOU0UgPSAnc2ktbGljZW5zZScsXG4gIFJFUE9SVFMgPSAnc2ktcmVwb3J0cycsXG4gIFNGWElOU0lHSFRTPSAnc2ktc2Z4LWluc2lnaHRzLWInLFxuICBTUEFSS0xFUyA9ICdzaS1haS13aXRob3V0Qm9yZGVyJyxcbn1cbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50LWxpYnJhcnkvc3JjL2xpYi9hdG9tcy9pY29uL2ljb24uZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxLQXNHWDtBQXRHRCxXQUFZLEtBQUs7SUFDZixpREFBd0MsQ0FBQTtJQUN4Qyw2QkFBb0IsQ0FBQTtJQUNwQixpQ0FBd0IsQ0FBQTtJQUN4Qix1QkFBYyxDQUFBO0lBQ2QsbUNBQTBCLENBQUE7SUFDMUIsaURBQXdDLENBQUE7SUFDeEMsb0NBQTJCLENBQUE7SUFDM0IsNkNBQW9DLENBQUE7SUFDcEMsb0NBQTJCLENBQUE7SUFDM0IsaURBQXdDLENBQUE7SUFDeEMsK0JBQXNCLENBQUE7SUFDdEIsK0JBQXNCLENBQUE7SUFDdEIseUNBQWdDLENBQUE7SUFDaEMsc0NBQTZCLENBQUE7SUFDN0IsaUNBQXdCLENBQUE7SUFDeEIsK0JBQXNCLENBQUE7SUFDdEIsNkJBQW9CLENBQUE7SUFDcEIsaUNBQXdCLENBQUE7SUFDeEIsaUNBQXdCLENBQUE7SUFDeEIsbUNBQXlCLENBQUE7SUFDekIseUJBQWdCLENBQUE7SUFDaEIsb0NBQTJCLENBQUE7SUFDM0Isb0NBQTJCLENBQUE7SUFDM0Isb0NBQTJCLENBQUE7SUFDM0IsaURBQXdDLENBQUE7SUFDeEMsK0JBQXNCLENBQUE7SUFDdEIsNkJBQW9CLENBQUE7SUFDcEIsaUNBQXdCLENBQUE7SUFDeEIsNENBQW1DLENBQUE7SUFDbkMsc0NBQTZCLENBQUE7SUFDN0Isd0NBQStCLENBQUE7SUFDL0IsOENBQXFDLENBQUE7SUFDckMsMkJBQWtCLENBQUE7SUFDbEIseUJBQWdCLENBQUE7SUFDaEIseUJBQWdCLENBQUE7SUFDaEIsbUNBQTBCLENBQUE7SUFDMUIsK0JBQXNCLENBQUE7SUFDdEIseUJBQWdCLENBQUE7SUFDaEIsbUNBQTBCLENBQUE7SUFDMUIseUJBQWdCLENBQUE7SUFDaEIseUJBQWdCLENBQUE7SUFDaEIsaUNBQXdCLENBQUE7SUFDeEIsZ0NBQXVCLENBQUE7SUFDdkIsNENBQW1DLENBQUE7SUFDbkMsc0NBQTZCLENBQUE7SUFDN0IsNENBQW1DLENBQUE7SUFDbkMsd0NBQStCLENBQUE7SUFDL0Isd0NBQStCLENBQUE7SUFDL0IsNENBQW1DLENBQUE7SUFDbkMsc0NBQTZCLENBQUE7SUFDN0Isd0NBQStCLENBQUE7SUFDL0Isa0NBQXlCLENBQUE7SUFDekIsc0NBQTZCLENBQUE7SUFDN0IsNENBQW1DLENBQUE7SUFDbkMsMkJBQWtCLENBQUE7SUFDbEIsd0NBQStCLENBQUE7SUFDL0IseUJBQWdCLENBQUE7SUFDaEIsbUNBQTBCLENBQUE7SUFDMUIseUNBQWdDLENBQUE7SUFDaEMsZ0RBQXVDLENBQUE7SUFDdkMsa0RBQXlDLENBQUE7SUFDekMsaUNBQXdCLENBQUE7SUFDeEIsb0RBQTJDLENBQUE7SUFDM0Msd0NBQStCLENBQUE7SUFDL0IsK0JBQXNCLENBQUE7SUFDdEIsK0JBQXNCLENBQUE7SUFDdEIsaUNBQXdCLENBQUE7SUFDeEIsK0JBQXNCLENBQUE7SUFDdEIsNkJBQW9CLENBQUE7SUFDcEIsOENBQXFDLENBQUE7SUFDckMsNkJBQW9CLENBQUE7SUFDcEIsNkJBQW9CLENBQUE7SUFDcEIseUJBQWdCLENBQUE7SUFDaEIsOENBQXFDLENBQUE7SUFDckMsd0NBQStCLENBQUE7SUFDL0Isb0NBQTJCLENBQUE7SUFDM0IsMkNBQWtDLENBQUE7SUFDbEMsdUJBQWMsQ0FBQTtJQUNkLGtDQUF5QixDQUFBO0lBQ3pCLDZCQUFvQixDQUFBO0lBQ3BCLDBDQUFpQyxDQUFBO0lBQ2pDLHVCQUFjLENBQUE7SUFDZCw0Q0FBbUMsQ0FBQTtJQUNuQyxrQ0FBeUIsQ0FBQTtJQUN6Qix5QkFBZ0IsQ0FBQTtJQUNoQixtQ0FBMEIsQ0FBQTtJQUMxQixpQ0FBd0IsQ0FBQTtJQUN4Qiw2QkFBb0IsQ0FBQTtJQUNwQiwwQ0FBaUMsQ0FBQTtJQUNqQyx5QkFBZ0IsQ0FBQTtJQUNoQixpQ0FBd0IsQ0FBQTtJQUN4Qiw4QkFBcUIsQ0FBQTtJQUNyQiwyQ0FBaUMsQ0FBQTtJQUNqQyw0Q0FBbUMsQ0FBQTtJQUNuQyx5Q0FBZ0MsQ0FBQTtJQUNoQyxtQ0FBMEIsQ0FBQTtJQUMxQiwrQkFBc0IsQ0FBQTtJQUN0QiwrQkFBc0IsQ0FBQTtJQUN0QiwwQ0FBZ0MsQ0FBQTtJQUNoQyx5Q0FBZ0MsQ0FBQTtJQUNoQyxvQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBdEdXLEtBQUssS0FBTCxLQUFLLFFBc0doQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEljb25zIHtcbiAgQVNTSUdOVE9BQ1RJT05TID0gJ3NpLWFzc2lnbi10by1hY3Rpb25zJyxcbiAgQUNDRVNTID0gJ3NpLWFjY2VzcycsXG4gIEFDVElWSVRZID0gJ3NpLWFjdGl2aXR5JyxcbiAgQUREID0gJ3NpLWFkZCcsXG4gIEFEVkVSVElTRSA9ICdzaS1hZHZlcnRpc2UnLFxuICBBUlJPV0hJREVSRVZFQUwgPSAnc2ktYXJyb3ctaGlkZS1yZXZlYWwnLFxuICBBUlJPV05FWFQgPSAnc2ktYXJyb3ctbmV4dCcsXG4gIEFSUk9XTkVYVEJPTEQgPSAnc2ktYXJyb3ctYm9sZC1uZXh0JyxcbiAgQVJST1dQUkVWID0gJ3NpLWFycm93LXByZXYnLFxuICBBUlJPV1BSRVZCT0xEID0gJ3NpLWFycm93LWJvbGQtcHJldmlvdXMnLFxuICBDSEFUQk9UID0gJ3NpLWNoYXRib3QnLFxuICBDT0RFVEFHID0gJ3NpLWNvZGV0YWcnLFxuICBDT05GSVJNQVRJT04gPSAnc2ktY29uZmlybWF0aW9uJyxcbiAgQ0xPU0VNT0RBTCA9ICdzaS1jbG9zZS1tb2RhbCcsXG4gIENPTExBUFNFID0gJ3NpLWNvbGxhcHNlJyxcbiAgREFZTU9ERSA9ICdzaS1kYXltb2RlJyxcbiAgREVMRVRFID0gJ3NpLWRlbGV0ZScsXG4gIERPQ1VNRU5UID0gJ3NpLWRvY3VtZW50JyxcbiAgRE9XTkxPQUQgPSAnc2ktZG93bmxvYWQnLFxuICBFQ09OT01JQ1MgPSdzaS1lY29ub21pY3MnLFxuICBFRElUID0gJ3NpLWVkaXQnLFxuICBFTUFJTERSSVAgPSAnc2ktZW1haWwtZHJpcCcsXG4gIEVNQUlMT1BFTiA9ICdzaS1lbWFpbC1vcGVuJyxcbiAgRU1BSUxTRU5EID0gJ3NpLWVtYWlsLXNlbmQnLFxuICBFTUFJTFNNU0RFRkFVTFQgPSAnc2ktZW1haWwtc21zLWRlZmF1bHQnLFxuICBFWENMVURFID0gJ3NpLWV4Y2x1ZGUnLFxuICBFWFBBTkQgPSAnc2ktZXhwYW5kJyxcbiAgRkFWT1JJVEUgPSAnc2ktZmF2b3JpdGUnLFxuICBGRUVEQkFDS01BWUJFID0gJ3NpLWZlZWRiYWNrLW1heWJlJyxcbiAgRkVFREJBQ0tOTyA9ICdzaS1mZWVkYmFjay1ubycsXG4gIEZFRURCQUNLWUVTID0gJ3NpLWZlZWRiYWNrLXllcycsXG4gIEZPTERFUk1VTFRJUExFID0gJ3NpLWZvbGRlci1tdWx0aXBsZScsXG4gIEZJRUxEID0gJ3NpLWZpZWxkJyxcbiAgRkxPVyA9ICdzaS1mbG93JyxcbiAgRk9STSA9ICdzaS1mb3JtJyxcbiAgSElFUkFSQ0hZID0gJ3NpLWhpZXJhcmNoeScsXG4gIElOQ0xVREUgPSAnc2ktaW5jbHVkZScsXG4gIElORk8gPSAnc2ktaW5mbycsXG4gIElOVEVSVklFVyA9ICdzaS1pbnRlcnZpZXcnLFxuICBMSU5LID0gJ3NpLWxpbmsnLFxuICBMSVNUID0gJ3NpLWxpc3QnLFxuICBMT0NBVElPTiA9ICdzaS1sb2NhdGlvbicsXG4gIE1FTlVBTEwgPSAnc2ktbWVudS1hbGwnLFxuICBNRU5VQU5BTFlUSUNTID0gJ3NpLW1lbnUtYW5hbHl0aWNzJyxcbiAgTUVOVUFTU0VUUyA9ICdzaS1tZW51LWFzc2V0cycsXG4gIE1FTlVDQU1QQUlHTlMgPSAnc2ktbWVudS1jYW1wYWlnbnMnLFxuICBNRU5VQ09OVEFDVCA9ICdzaS1tZW51LWNvbnRhY3QnLFxuICBNRU5VQ09OVEVOVCA9ICdzaS1tZW51LWNvbnRlbnQnLFxuICBNRU5VREFTSEJPQVJEID0gJ3NpLW1lbnUtZGFzaGJvYXJkJyxcbiAgTUVOVUVWRU5UUyA9ICdzaS1tZW51LWV2ZW50cycsXG4gIE1FTlVGT0xERVJTID0gJ3NpLW1lbnUtZm9sZGVycycsXG4gIE1FTlVKT0JTID0gJ3NpLW1lbnUtam9icycsXG4gIE1FTlVSRVRVUk4gPSAnc2ktbWVudS1yZXR1cm4nLFxuICBNRU5VV09SS0ZMT1dTID0gJ3NpLW1lbnUtd29ya2Zsb3dzJyxcbiAgTUVSR0UgPSAnc2ktbWVyZ2UnLFxuICBNT1JFT1BUSU9OUyA9ICdzaS1tb3JlLW9wdGlvbnMnLFxuICBNT1ZFID0gJ3NpLW1vdmUnLFxuICBOSUdIVE1PREUgPSAnc2ktbmlnaHRtb2RlJyxcbiAgTk9USUZJQ0FUSU9OID0gJ3NpLW5vdGlmaWNhdGlvbicsXG4gIE9SR0FOSVpFQ09MVU1OUyA9ICdzaS1vcmdhbml6ZS1jb2x1bW5zJyxcbiAgT1JHQU5JWkVDT05UQUNUUyA9ICdzaS1vcmdhbml6ZS1jb250YWN0cycsXG4gIFBBU1NXT1JEID0gJ3NpLXBhc3N3b3JkJyxcbiAgUEVORElOR0lOQ09NUExFVEUgPSAnc2ktcGVuZGluZy1pbmNvbXBsZXRlJyxcbiAgUEhPTkVOVU1CRVIgPSAnc2ktcGhvbmUtbnVtYmVyJyxcbiAgUFJFVklFVyA9ICdzaS1wcmV2aWV3JyxcbiAgUFJPTU9URSA9ICdzaS1wcm9tb3RlJyxcbiAgUkVGRVJSQUwgPSAnc2ktcmVmZXJyYWwnLFxuICBSRUZSRVNIID0gJ3NpLXJlZnJlc2gnLFxuICBSRU1PVkUgPSAnc2ktcmVtb3ZlJyxcbiAgUkVTVUxUU0ZJTFRFUlMgPSAnc2ktcmVzdWx0cy1maWx0ZXJzJyxcbiAgUkVWSUVXID0gJ3NpLXJldmlldycsXG4gIFNBTEFSWSA9ICdzaS1zYWxhcnknLFxuICBTQVZFID0gJ3NpLXNhdmUnLFxuICBTRUFSQ0hBRFZBTkNFRCA9ICdzaS1zZWFyY2gtYWR2YW5jZWQnLFxuICBTRUFSQ0hDTEVBUiA9ICdzaS1zZWFyY2gtY2xlYXInLFxuICBTRUFSQ0hORVcgPSAnc2ktc2VhcmNoLW5ldycsXG4gIFNFVFRJTkdTTUFSVCA9ICdzaS1zZXR0aW5ncy1zbWFydCcsXG4gIFNNUyA9ICdzaS1zbXMnLFxuICBTT1JUTUlOSSA9ICdzaS1zb3J0LW1pbmknLFxuICBTVEFUVVMgPSAnc2ktc3RhdHVzJyxcbiAgU1lTVEVNQUNUSU9OID0gJ3NpLXN5c3RlbS1hY3Rpb24nLFxuICBUQUcgPSAnc2ktdGFnJyxcbiAgVEFTS0NPTVBMRVRFRCA9ICdzaS10YXNrLWNvbXBsZXRlZCcsXG4gIFRBU0tPUEVOID0gJ3NpLXRhc2stb3BlbicsXG4gIFRFQU0gPSAnc2ktdGVhbScsXG4gIFRJTUVGUkFNRSA9ICdzaS10aW1lZnJhbWUnLFxuICBUSU1FTElORSA9ICdzaS10aW1lbGluZScsXG4gIFVQTE9BRCA9ICdzaS11cGxvYWQnLFxuICBVU0VSTVVMVElQTEUgPSAnc2ktdXNlci1tdWx0aXBsZScsXG4gIFVTRVIgPSAnc2ktdXNlcicsXG4gIFdPUktGTE9XID0gJ3NpLXdvcmtmbG93JyxcbiAgUVJDT0RFID0gJ3NpLXFyLWNvZGUnLFxuICBBTkFMWVRJQ1NCRVRBPSAnc2ktYW5hbHl0aWNzLW5ldycsXG4gIEJFVEFBTkFMWVRJQ1MgPSAnc2ktYmV0YS1hbmFseXRpY3MnLFxuICBBRERUT0ZPTERFUiA9ICdzaS1hZGQtdG8tZm9sZGVyJyxcbiAgQUREVE9KT0IgPSAnc2ktYWRkLXRvLWpvYicsXG4gIExJQ0VOU0UgPSAnc2ktbGljZW5zZScsXG4gIFJFUE9SVFMgPSAnc2ktcmVwb3J0cycsXG4gIFNGWElOU0lHSFRTPSAnc2ktc2Z4LWluc2lnaHRzLWInLFxuICBTUEFSS0xFUyA9ICdzaS1haS13aXRob3V0Qm9yZGVyJyxcbiAgU1RBUlRPVkVSID0gJ3NpLXN0YXJ0LW92ZXInLFxufVxuIl19
@@ -14,9 +14,13 @@ export class InputTextareaWithSendComponent {
14
14
  this.sendButtonIcon = 'si-arrow-next';
15
15
  this.sendButtonAriaLabel = 'Send message';
16
16
  this.autoResize = true;
17
+ this.startOverDisabled = false;
18
+ this.startOverButtonIcon = 'si-start-over';
19
+ this.startOverButtonTitle = 'Start Over';
17
20
  this.sendClicked = new EventEmitter();
18
21
  this.enterPressed = new EventEmitter();
19
22
  this.valueChanged = new EventEmitter();
23
+ this.startOverClicked = new EventEmitter();
20
24
  this.value = '';
21
25
  this.currentRows = 1;
22
26
  this.characterCount = 0;
@@ -119,15 +123,20 @@ export class InputTextareaWithSendComponent {
119
123
  }, 0);
120
124
  }
121
125
  }
126
+ onStartOverClick() {
127
+ if (this.showStartOverButton && !this.startOverDisabled) {
128
+ this.startOverClicked.emit();
129
+ }
130
+ }
122
131
  }
123
132
  InputTextareaWithSendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
124
- InputTextareaWithSendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: { placeholder: "placeholder", isDisabled: "isDisabled", maxCharacterLimit: "maxCharacterLimit", showCharacterCount: "showCharacterCount", minRows: "minRows", maxRows: "maxRows", sendButtonIcon: "sendButtonIcon", sendButtonAriaLabel: "sendButtonAriaLabel", autoResize: "autoResize" }, outputs: { sendClicked: "sendClicked", enterPressed: "enterPressed", valueChanged: "valueChanged" }, providers: [
133
+ InputTextareaWithSendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.2", type: InputTextareaWithSendComponent, selector: "symphony-input-textarea-with-send", inputs: { placeholder: "placeholder", isDisabled: "isDisabled", maxCharacterLimit: "maxCharacterLimit", showCharacterCount: "showCharacterCount", minRows: "minRows", maxRows: "maxRows", sendButtonIcon: "sendButtonIcon", sendButtonAriaLabel: "sendButtonAriaLabel", autoResize: "autoResize", showStartOverButton: "showStartOverButton", startOverButtonId: "startOverButtonId", startOverDisabled: "startOverDisabled", startOverButtonIcon: "startOverButtonIcon", startOverButtonTitle: "startOverButtonTitle" }, outputs: { sendClicked: "sendClicked", enterPressed: "enterPressed", valueChanged: "valueChanged", startOverClicked: "startOverClicked" }, providers: [
125
134
  {
126
135
  provide: NG_VALUE_ACCESSOR,
127
136
  useExisting: forwardRef(() => InputTextareaWithSendComponent),
128
137
  multi: true
129
138
  }
130
- ], viewQueries: [{ propertyName: "textareaElement", first: true, predicate: ["textareaElement"], descendants: true }], ngImport: i0, template: "<div class=\"input-textarea-with-send-container\">\n <!-- Character Counter -->\n <div \n class=\"character-counter sfx-mb-10\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span \n class=\"counter-text\"\n [class.counter-exceeded]=\"characterLimitExceeded\">\n {{ characterCount }} / {{ maxCharacterLimit }}\n </span>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSendMessage\"\n [class.disabled]=\"!canSendMessage\"\n [disabled]=\"!canSendMessage\"\n (click)=\"onSendClick()\"\n id=\"button-textarea-send\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.character-counter{text-align:right}.character-counter .counter-text{font-size:.75rem;color:#5b6d80}.character-counter .counter-text.counter-exceeded{color:#ac4463;font-weight:500}.input-wrapper{position:relative;display:flex;align-items:flex-end}.input-wrapper .textarea-input{flex:1;width:100%;min-height:52px;max-height:200px;padding:.9375rem 56px .9375rem .9375rem;font-size:.875rem;line-height:1.5rem;font-family:runda,sans-serif;background:#ffffff;border:1px solid #334860;border-radius:4px;resize:none;overflow-y:auto;transition:border-color .2s ease}.input-wrapper .textarea-input::-moz-placeholder{color:#5b6d80}.input-wrapper .textarea-input:-ms-input-placeholder{color:#5b6d80}.input-wrapper .textarea-input::placeholder{color:#5b6d80}.input-wrapper .textarea-input:focus{border-color:#2b8ff3;outline:none}.input-wrapper .textarea-input:disabled{background-color:#f1f2f5;border-color:#c3cbdc;color:#5b6d80;cursor:not-allowed}.input-wrapper .textarea-input::-webkit-scrollbar{width:4px}.input-wrapper .textarea-input::-webkit-scrollbar-track{background:transparent}.input-wrapper .textarea-input::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:2px}.input-wrapper .textarea-input::-webkit-scrollbar-thumb:hover{background:#5B6D80}.input-wrapper .send-button{position:absolute;right:.625rem;bottom:.625rem;width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;flex-shrink:0}.input-wrapper .send-button.enabled{background-color:#2b8ff3}.input-wrapper .send-button.enabled:hover{background-color:#0d76de;transform:scale(1.05)}.input-wrapper .send-button.enabled:active{transform:scale(.95)}.input-wrapper .send-button.enabled symphony-icon{color:#fff;font-size:16px}.input-wrapper .send-button.disabled{background-color:#d2d8e5;cursor:not-allowed}.input-wrapper .send-button.disabled symphony-icon{color:#5b6d80;font-size:16px}.input-wrapper .send-button symphony-icon{transition:color .2s ease}.input-wrapper .send-button:focus{outline:2px solid #2B8FF3;outline-offset:2px}@media (max-width: 768px){.input-wrapper .textarea-input{min-height:48px;padding:.625rem 50px .625rem .9375rem;font-size:.875rem;line-height:22px}.input-wrapper .send-button{width:32px;height:32px;right:.625rem;bottom:.625rem}.input-wrapper .send-button symphony-icon{font-size:.875rem}}@media (prefers-contrast: high){.textarea-input{border:2px solid #08203E}.textarea-input:focus{border-color:#2b8ff3}.send-button.enabled{border:2px solid #0a5cae}}@media (prefers-reduced-motion: reduce){.textarea-input,.send-button{transition:none}.send-button:hover,.send-button:active{transform:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
139
+ ], viewQueries: [{ propertyName: "textareaElement", first: true, predicate: ["textareaElement"], descendants: true }], ngImport: i0, template: "<div class=\"input-textarea-with-send-container\">\n <div\n class=\"composer-meta sfx-mb-10\">\n <button class=\"ai-start-over\"\n *ngIf=\"showStartOverButton\"\n type=\"button\"\n (click)=\"onStartOverClick()\"\n [disabled]=\"startOverDisabled\"\n [id]=\"startOverButtonId\">\n <symphony-icon\n [icon]=\"startOverButtonIcon\"\n [title]=\"startOverButtonTitle\"\n [size]=\"'20px'\">\n </symphony-icon>\n </button>\n\n <div\n class=\"character-counter\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span\n class=\"counter-text\"\n [class.counter-exceeded]=\"characterLimitExceeded\">\n {{ characterCount }} / {{ maxCharacterLimit }}\n </span>\n </div>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSendMessage\"\n [class.disabled]=\"!canSendMessage\"\n [disabled]=\"!canSendMessage\"\n (click)=\"onSendClick()\"\n id=\"button-textarea-send\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.composer-meta{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.composer-meta .ai-start-over{display:flex;justify-content:flex-start;cursor:pointer;align-items:center;margin-left:0;margin-right:auto;text-align:left;background:transparent;border:none;outline:none}.composer-meta .ai-start-over:disabled{cursor:not-allowed;background:transparent!important}.composer-meta .ai-start-over:disabled i{color:#c3cbdc}.composer-meta .ai-start-over symphony-icon{color:#5b6d80;transition:color .2s ease;font-weight:700}.composer-meta .ai-start-over symphony-icon:hover{color:#2b8ff3}.composer-meta .character-counter{text-align:right;margin-left:auto}.composer-meta .character-counter .counter-text{font-size:.75rem;color:#5b6d80}.composer-meta .character-counter .counter-text.counter-exceeded{color:#ac4463;font-weight:500}.input-wrapper{position:relative;display:flex;align-items:flex-end}.input-wrapper .textarea-input{flex:1;width:100%;min-height:52px;max-height:200px;padding:.9375rem 56px .9375rem .9375rem;font-size:.875rem;line-height:1.5rem;font-family:runda,sans-serif;background:#ffffff;border:1px solid #334860;border-radius:4px;resize:none;overflow-y:auto;transition:border-color .2s ease}.input-wrapper .textarea-input::-moz-placeholder{color:#5b6d80}.input-wrapper .textarea-input:-ms-input-placeholder{color:#5b6d80}.input-wrapper .textarea-input::placeholder{color:#5b6d80}.input-wrapper .textarea-input:focus{border-color:#2b8ff3;outline:none}.input-wrapper .textarea-input:disabled{background-color:#f1f2f5;border-color:#c3cbdc;color:#5b6d80;cursor:not-allowed}.input-wrapper .textarea-input::-webkit-scrollbar{width:4px}.input-wrapper .textarea-input::-webkit-scrollbar-track{background:transparent}.input-wrapper .textarea-input::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:2px}.input-wrapper .textarea-input::-webkit-scrollbar-thumb:hover{background:#5B6D80}.input-wrapper .send-button{position:absolute;right:.625rem;bottom:.625rem;width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;flex-shrink:0}.input-wrapper .send-button.enabled{background-color:#2b8ff3}.input-wrapper .send-button.enabled:hover{background-color:#0d76de;transform:scale(1.05)}.input-wrapper .send-button.enabled:active{transform:scale(.95)}.input-wrapper .send-button.enabled symphony-icon{color:#fff;font-size:16px}.input-wrapper .send-button.disabled{background-color:#d2d8e5;cursor:not-allowed}.input-wrapper .send-button.disabled symphony-icon{color:#5b6d80;font-size:16px}.input-wrapper .send-button symphony-icon{transition:color .2s ease}.input-wrapper .send-button:focus{outline:2px solid #2B8FF3;outline-offset:2px}@media (max-width: 768px){.input-wrapper .textarea-input{min-height:48px;padding:.625rem 50px .625rem .9375rem;font-size:.875rem;line-height:22px}.input-wrapper .send-button{width:32px;height:32px;right:.625rem;bottom:.625rem}.input-wrapper .send-button symphony-icon{font-size:.875rem}}@media (prefers-contrast: high){.textarea-input{border:2px solid #08203E}.textarea-input:focus{border-color:#2b8ff3}.send-button.enabled{border:2px solid #0a5cae}}@media (prefers-reduced-motion: reduce){.textarea-input,.send-button{transition:none}.send-button:hover,.send-button:active{transform:none}}\n"], components: [{ type: i1.IconComponent, selector: "symphony-icon", inputs: ["icon", "isSecondary", "size", "iconColor"], outputs: ["clicked"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
131
140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: InputTextareaWithSendComponent, decorators: [{
132
141
  type: Component,
133
142
  args: [{ selector: 'symphony-input-textarea-with-send', providers: [
@@ -136,7 +145,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
136
145
  useExisting: forwardRef(() => InputTextareaWithSendComponent),
137
146
  multi: true
138
147
  }
139
- ], template: "<div class=\"input-textarea-with-send-container\">\n <!-- Character Counter -->\n <div \n class=\"character-counter sfx-mb-10\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span \n class=\"counter-text\"\n [class.counter-exceeded]=\"characterLimitExceeded\">\n {{ characterCount }} / {{ maxCharacterLimit }}\n </span>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSendMessage\"\n [class.disabled]=\"!canSendMessage\"\n [disabled]=\"!canSendMessage\"\n (click)=\"onSendClick()\"\n id=\"button-textarea-send\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.character-counter{text-align:right}.character-counter .counter-text{font-size:.75rem;color:#5b6d80}.character-counter .counter-text.counter-exceeded{color:#ac4463;font-weight:500}.input-wrapper{position:relative;display:flex;align-items:flex-end}.input-wrapper .textarea-input{flex:1;width:100%;min-height:52px;max-height:200px;padding:.9375rem 56px .9375rem .9375rem;font-size:.875rem;line-height:1.5rem;font-family:runda,sans-serif;background:#ffffff;border:1px solid #334860;border-radius:4px;resize:none;overflow-y:auto;transition:border-color .2s ease}.input-wrapper .textarea-input::-moz-placeholder{color:#5b6d80}.input-wrapper .textarea-input:-ms-input-placeholder{color:#5b6d80}.input-wrapper .textarea-input::placeholder{color:#5b6d80}.input-wrapper .textarea-input:focus{border-color:#2b8ff3;outline:none}.input-wrapper .textarea-input:disabled{background-color:#f1f2f5;border-color:#c3cbdc;color:#5b6d80;cursor:not-allowed}.input-wrapper .textarea-input::-webkit-scrollbar{width:4px}.input-wrapper .textarea-input::-webkit-scrollbar-track{background:transparent}.input-wrapper .textarea-input::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:2px}.input-wrapper .textarea-input::-webkit-scrollbar-thumb:hover{background:#5B6D80}.input-wrapper .send-button{position:absolute;right:.625rem;bottom:.625rem;width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;flex-shrink:0}.input-wrapper .send-button.enabled{background-color:#2b8ff3}.input-wrapper .send-button.enabled:hover{background-color:#0d76de;transform:scale(1.05)}.input-wrapper .send-button.enabled:active{transform:scale(.95)}.input-wrapper .send-button.enabled symphony-icon{color:#fff;font-size:16px}.input-wrapper .send-button.disabled{background-color:#d2d8e5;cursor:not-allowed}.input-wrapper .send-button.disabled symphony-icon{color:#5b6d80;font-size:16px}.input-wrapper .send-button symphony-icon{transition:color .2s ease}.input-wrapper .send-button:focus{outline:2px solid #2B8FF3;outline-offset:2px}@media (max-width: 768px){.input-wrapper .textarea-input{min-height:48px;padding:.625rem 50px .625rem .9375rem;font-size:.875rem;line-height:22px}.input-wrapper .send-button{width:32px;height:32px;right:.625rem;bottom:.625rem}.input-wrapper .send-button symphony-icon{font-size:.875rem}}@media (prefers-contrast: high){.textarea-input{border:2px solid #08203E}.textarea-input:focus{border-color:#2b8ff3}.send-button.enabled{border:2px solid #0a5cae}}@media (prefers-reduced-motion: reduce){.textarea-input,.send-button{transition:none}.send-button:hover,.send-button:active{transform:none}}\n"] }]
148
+ ], template: "<div class=\"input-textarea-with-send-container\">\n <div\n class=\"composer-meta sfx-mb-10\">\n <button class=\"ai-start-over\"\n *ngIf=\"showStartOverButton\"\n type=\"button\"\n (click)=\"onStartOverClick()\"\n [disabled]=\"startOverDisabled\"\n [id]=\"startOverButtonId\">\n <symphony-icon\n [icon]=\"startOverButtonIcon\"\n [title]=\"startOverButtonTitle\"\n [size]=\"'20px'\">\n </symphony-icon>\n </button>\n\n <div\n class=\"character-counter\"\n *ngIf=\"showCharacterCount && maxCharacterLimit\">\n <span\n class=\"counter-text\"\n [class.counter-exceeded]=\"characterLimitExceeded\">\n {{ characterCount }} / {{ maxCharacterLimit }}\n </span>\n </div>\n </div>\n\n <!-- Input with Send Button -->\n <div class=\"input-wrapper\">\n <textarea\n #textareaElement\n class=\"textarea-input\"\n [value]=\"value\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [maxLength]=\"maxCharacterLimit\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onInputKeyPress($event)\"\n (blur)=\"onTouched()\"\n rows=\"1\">\n </textarea>\n \n <!-- Send Button -->\n <button\n type=\"button\"\n class=\"send-button\"\n [class.enabled]=\"canSendMessage\"\n [class.disabled]=\"!canSendMessage\"\n [disabled]=\"!canSendMessage\"\n (click)=\"onSendClick()\"\n id=\"button-textarea-send\"\n [attr.aria-label]=\"sendButtonAriaLabel\">\n <symphony-icon [icon]=\"sendButtonIcon\" [size]=\"'10px'\"></symphony-icon>\n </button>\n </div>\n</div> ", styles: [".sfx-p-0{padding:0}.sfx-p-5{padding:.3rem}.sfx-p-10{padding:.625rem}.sfx-p-15{padding:.9375rem}.sfx-p-20{padding:1.25rem}.sfx-p-30{padding:1.875rem}.sfx-pt-0{padding-top:0}.sfx-pt-5{padding-top:.3rem}.sfx-pt-10{padding-top:.625rem}.sfx-pt-15{padding-top:.9375rem}.sfx-pt-20{padding-top:1.25rem}.sfx-pt-25{padding-top:1.5625rem}.sfx-pt-30{padding-top:1.875rem}.sfx-pt-35{padding-top:2.1875rem}.sfx-pt-40{padding-top:2.5rem}.sfx-pt-50{padding-top:3.125rem}.sfx-pb-0{padding-bottom:0}.sfx-pb-5{padding-bottom:.3rem}.sfx-pb-10{padding-bottom:.625rem}.sfx-pb-15{padding-bottom:.9375rem}.sfx-pb-20{padding-bottom:1.25rem}.sfx-pb-25{padding-bottom:1.5625rem}.sfx-pb-30{padding-bottom:1.875rem}.sfx-pb-35{padding-bottom:2.1875rem}.sfx-pb-40{padding-bottom:2.5rem}.sfx-pb-50{padding-bottom:3.125rem}.sfx-pl-0{padding-left:0}.sfx-pl-5{padding-left:.3rem}.sfx-pl-10{padding-left:.625rem}.sfx-pl-15{padding-left:.9375rem}.sfx-pl-20{padding-left:1.25rem}.sfx-pl-25{padding-left:1.5625rem}.sfx-pl-30{padding-left:1.875rem}.sfx-pr-0{padding-right:0}.sfx-pr-5{padding-right:.3rem}.sfx-pr-10{padding-right:.625rem}.sfx-pr-15{padding-right:.9375rem}.sfx-pr-20{padding-right:1.25rem}.sfx-pr-25{padding-right:1.5625rem}.sfx-pr-30{padding-right:1.875rem}.sfx-py-15{padding-left:.9375rem;padding-right:.9375rem}.sfx-py-30{padding-left:1.875rem;padding-right:1.875rem}.sfx-px-0{padding-top:0;padding-bottom:0}.sfx-px-15{padding-top:.9375rem;padding-bottom:.9375rem}.sfx-px-20{padding-top:1.25rem;padding-bottom:1.25rem}.sfx-px-30{padding-top:1.875rem;padding-bottom:1.875rem}.sfx-m-0{margin:0}.sfx-m-5{margin:.3rem}.sfx-m-10{margin:.625rem}.sfx-m-15{margin:.9375rem}.sfx-m-20{margin:1.25rem}.sfx-m-auto{margin:0 auto}.sfx-mt-0{margin-top:0}.sfx-mt-5{margin-top:.3rem}.sfx-mt-10{margin-top:.625rem}.sfx-mt-15{margin-top:.9375rem}.sfx-mt-20{margin-top:1.25rem}.sfx-mt-25{margin-top:1.5625rem}.sfx-mt-30{margin-top:1.875rem}.sfx-mt-40{margin-top:2.5rem}.sfx-mt-80{margin-top:5rem}.sfx-mb-0{margin-bottom:0}.sfx-mb-5{margin-bottom:.3rem}.sfx-mb-10{margin-bottom:.625rem}.sfx-mb-15{margin-bottom:.9375rem}.sfx-mb-20{margin-bottom:1.25rem}.sfx-mb-25{margin-bottom:1.5625rem}.sfx-mb-30{margin-bottom:1.875rem}.sfx-mb-40{margin-bottom:2.5rem}.sfx-mb-50{margin-bottom:3.125rem}.sfx-ml-0{margin-left:0}.sfx-ml-5{margin-left:.3rem}.sfx-ml-10{margin-left:.625rem}.sfx-ml-15{margin-left:.9375rem}.sfx-ml-20{margin-left:1.25rem}.sfx-ml-auto{margin-left:auto}.sfx-mr-0{margin-right:0}.sfx-mr-5{margin-right:.3rem}.sfx-mr-10{margin-right:.625rem}.sfx-mr-15{margin-right:.9375rem}.sfx-mr-20{margin-right:1.25rem}.sfx-mr-25{margin-right:1.5625rem}.sfx-mr-30{margin-right:1.875rem}.sfx-mr-40{margin-right:2.5rem}.input-textarea-with-send-container{width:100%}.composer-meta{display:flex;align-items:center;justify-content:space-between;gap:.625rem}.composer-meta .ai-start-over{display:flex;justify-content:flex-start;cursor:pointer;align-items:center;margin-left:0;margin-right:auto;text-align:left;background:transparent;border:none;outline:none}.composer-meta .ai-start-over:disabled{cursor:not-allowed;background:transparent!important}.composer-meta .ai-start-over:disabled i{color:#c3cbdc}.composer-meta .ai-start-over symphony-icon{color:#5b6d80;transition:color .2s ease;font-weight:700}.composer-meta .ai-start-over symphony-icon:hover{color:#2b8ff3}.composer-meta .character-counter{text-align:right;margin-left:auto}.composer-meta .character-counter .counter-text{font-size:.75rem;color:#5b6d80}.composer-meta .character-counter .counter-text.counter-exceeded{color:#ac4463;font-weight:500}.input-wrapper{position:relative;display:flex;align-items:flex-end}.input-wrapper .textarea-input{flex:1;width:100%;min-height:52px;max-height:200px;padding:.9375rem 56px .9375rem .9375rem;font-size:.875rem;line-height:1.5rem;font-family:runda,sans-serif;background:#ffffff;border:1px solid #334860;border-radius:4px;resize:none;overflow-y:auto;transition:border-color .2s ease}.input-wrapper .textarea-input::-moz-placeholder{color:#5b6d80}.input-wrapper .textarea-input:-ms-input-placeholder{color:#5b6d80}.input-wrapper .textarea-input::placeholder{color:#5b6d80}.input-wrapper .textarea-input:focus{border-color:#2b8ff3;outline:none}.input-wrapper .textarea-input:disabled{background-color:#f1f2f5;border-color:#c3cbdc;color:#5b6d80;cursor:not-allowed}.input-wrapper .textarea-input::-webkit-scrollbar{width:4px}.input-wrapper .textarea-input::-webkit-scrollbar-track{background:transparent}.input-wrapper .textarea-input::-webkit-scrollbar-thumb{background:#C3CBDC;border-radius:2px}.input-wrapper .textarea-input::-webkit-scrollbar-thumb:hover{background:#5B6D80}.input-wrapper .send-button{position:absolute;right:.625rem;bottom:.625rem;width:36px;height:36px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;z-index:10;flex-shrink:0}.input-wrapper .send-button.enabled{background-color:#2b8ff3}.input-wrapper .send-button.enabled:hover{background-color:#0d76de;transform:scale(1.05)}.input-wrapper .send-button.enabled:active{transform:scale(.95)}.input-wrapper .send-button.enabled symphony-icon{color:#fff;font-size:16px}.input-wrapper .send-button.disabled{background-color:#d2d8e5;cursor:not-allowed}.input-wrapper .send-button.disabled symphony-icon{color:#5b6d80;font-size:16px}.input-wrapper .send-button symphony-icon{transition:color .2s ease}.input-wrapper .send-button:focus{outline:2px solid #2B8FF3;outline-offset:2px}@media (max-width: 768px){.input-wrapper .textarea-input{min-height:48px;padding:.625rem 50px .625rem .9375rem;font-size:.875rem;line-height:22px}.input-wrapper .send-button{width:32px;height:32px;right:.625rem;bottom:.625rem}.input-wrapper .send-button symphony-icon{font-size:.875rem}}@media (prefers-contrast: high){.textarea-input{border:2px solid #08203E}.textarea-input:focus{border-color:#2b8ff3}.send-button.enabled{border:2px solid #0a5cae}}@media (prefers-reduced-motion: reduce){.textarea-input,.send-button{transition:none}.send-button:hover,.send-button:active{transform:none}}\n"] }]
140
149
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { placeholder: [{
141
150
  type: Input
142
151
  }], isDisabled: [{
@@ -155,14 +164,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
155
164
  type: Input
156
165
  }], autoResize: [{
157
166
  type: Input
167
+ }], showStartOverButton: [{
168
+ type: Input
169
+ }], startOverButtonId: [{
170
+ type: Input
171
+ }], startOverDisabled: [{
172
+ type: Input
173
+ }], startOverButtonIcon: [{
174
+ type: Input
175
+ }], startOverButtonTitle: [{
176
+ type: Input
158
177
  }], sendClicked: [{
159
178
  type: Output
160
179
  }], enterPressed: [{
161
180
  type: Output
162
181
  }], valueChanged: [{
163
182
  type: Output
183
+ }], startOverClicked: [{
184
+ type: Output
164
185
  }], textareaElement: [{
165
186
  type: ViewChild,
166
187
  args: ['textareaElement']
167
188
  }] } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFnRCxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFjekUsTUFBTSxPQUFPLDhCQUE4QjtJQTBCekMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF6QmpDLGdCQUFXLEdBQVcsc0JBQXNCLENBQUM7UUFDN0MsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLG1CQUFjLEdBQVcsZUFBZSxDQUFDO1FBQ3pDLHdCQUFtQixHQUFXLGNBQWMsQ0FBQztRQUM3QyxlQUFVLEdBQVksSUFBSSxDQUFDO1FBRTFCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDMUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxD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T0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUV1QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N5bXBob255LWlucHV0LXRleHRhcmVhLXdpdGgtc2VuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dFRleHRhcmVhV2l0aFNlbmRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1R5cGUgeW91ciBtZXNzYWdlLi4uJztcbiAgQElucHV0KCkgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXhDaGFyYWN0ZXJMaW1pdD86IG51bWJlcjtcbiAgQElucHV0KCkgc2hvd0NoYXJhY3RlckNvdW50OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1pblJvd3M6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIG1heFJvd3M6IG51bWJlciA9IDY7XG4gIEBJbnB1dCgpIHNlbmRCdXR0b25JY29uOiBzdHJpbmcgPSAnc2ktYXJyb3ctbmV4dCc7XG4gIEBJbnB1dCgpIHNlbmRCdXR0b25BcmlhTGFiZWw6IHN0cmluZyA9ICdTZW5kIG1lc3NhZ2UnO1xuICBASW5wdXQoKSBhdXRvUmVzaXplOiBib29sZWFuID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgc2VuZENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIGVudGVyUHJlc3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGV4dGFyZWFFbGVtZW50JykgdGV4dGFyZWFFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PjtcblxuICB2YWx1ZTogc3RyaW5nID0gJyc7XG4gIGN1cnJlbnRSb3dzOiBudW1iZXIgPSAxO1xuICBjaGFyYWN0ZXJDb3VudDogbnVtYmVyID0gMDtcbiAgY2hhcmFjdGVyTGltaXRFeGNlZWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBjYW5TZW5kTWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xuICBcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7fTtcbiAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgdGhpcy5hZGp1c3RUZXh0YXJlYUhlaWdodCgpO1xuICAgIH1cbiAgICAvLyBJbml0aWFsaXplIGNvbXB1dGVkIHByb3BlcnRpZXNcbiAgICB0aGlzLnJlZnJlc2hJbnB1dFN0YXRlKCk7XG4gIH1cblxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgJyc7XG4gICAgdGhpcy5yZWZyZXNoSW5wdXRTdGF0ZSgpO1xuICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hZGp1c3RUZXh0YXJlYUhlaWdodCgpLCAwKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cblxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MVGV4dEFyZWFFbGVtZW50O1xuICAgIHRoaXMudmFsdWUgPSB0YXJnZXQudmFsdWU7XG4gICAgLy8gVXBkYXRlIGNvbXB1dGVkIHByb3BlcnRpZXMgZm9yIGNoYXJhY3RlciBjb3VudCBhbmQgc2VuZCBidXR0b25cbiAgICB0aGlzLnJlZnJlc2hJbnB1dFN0YXRlKCk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICBcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEtleVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyAmJiAhZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAodGhpcy5jYW5TZW5kTWVzc2FnZSkge1xuICAgICAgICB0aGlzLm9uU2VuZENsaWNrKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TZW5kQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuU2VuZE1lc3NhZ2UpIHtcbiAgICAgIHRoaXMuc2VuZENsaWNrZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuZW50ZXJQcmVzc2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3RUZXh0YXJlYUhlaWdodCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudGV4dGFyZWFFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCB0ZXh0YXJlYSA9IHRoaXMudGV4dGFyZWFFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgXG4gICAgLy8gUmVzZXQgaGVpZ2h0IHRvIGF1dG8gdG8gZ2V0IHRoZSBzY3JvbGwgaGVpZ2h0XG4gICAgdGV4dGFyZWEuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nO1xuICAgIFxuICAgIC8vIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIGxpbmVzXG4gICAgY29uc3QgbGluZUhlaWdodCA9IDI0OyAvLyBCYXNlIGxpbmUgaGVpZ2h0IGluIHBpeGVsc1xuICAgIGNvbnN0IHBhZGRpbmcgPSAxNjsgLy8gVG9wICsgYm90dG9tIHBhZGRpbmdcbiAgICBjb25zdCBtaW5IZWlnaHQgPSB0aGlzLm1pblJvd3MgKiBsaW5lSGVpZ2h0ICsgcGFkZGluZztcbiAgICBjb25zdCBtYXhIZWlnaHQgPSB0aGlzLm1heFJvd3MgKiBsaW5lSGVpZ2h0ICsgcGFkZGluZztcbiAgICBcbiAgICBsZXQgbmV3SGVpZ2h0ID0gTWF0aC5tYXgodGV4dGFyZWEuc2Nyb2xsSGVpZ2h0LCBtaW5IZWlnaHQpO1xuICAgIG5ld0hlaWdodCA9IE1hdGgubWluKG5ld0hlaWdodCwgbWF4SGVpZ2h0KTtcbiAgICBcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSBuZXdIZWlnaHQgKyAncHgnO1xuICAgIFxuICAgIC8vIFVwZGF0ZSBjdXJyZW50IHJvd3MgZm9yIHN0eWxpbmcgcHVycG9zZXNcbiAgICB0aGlzLmN1cnJlbnRSb3dzID0gTWF0aC5jZWlsKChuZXdIZWlnaHQgLSBwYWRkaW5nKSAvIGxpbmVIZWlnaHQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoSW5wdXRTdGF0ZSgpOiB2b2lkIHtcbiAgICAvLyBVcGRhdGUgY2hhcmFjdGVyIGNvdW50XG4gICAgdGhpcy5jaGFyYWN0ZXJDb3VudCA9IHRoaXMudmFsdWU/Lmxlbmd0aCB8fCAwO1xuICAgIFxuICAgIC8vIFVwZGF0ZSBjaGFyYWN0ZXIgbGltaXQgZXhjZWVkZWQgc3RhdHVzXG4gICAgdGhpcy5jaGFyYWN0ZXJMaW1pdEV4Y2VlZGVkID0gISF0aGlzLm1heENoYXJhY3RlckxpbWl0ICYmIHRoaXMuY2hhcmFjdGVyQ291bnQgPiB0aGlzLm1heENoYXJhY3RlckxpbWl0O1xuICAgIFxuICAgIC8vIFVwZGF0ZSBjYW4gc2VuZCBzdGF0dXNcbiAgICBjb25zdCB0cmltbWVkVmFsdWUgPSB0aGlzLnZhbHVlPy50cmltKCk7XG4gICAgY29uc3QgaGFzVmFsdWUgPSAhIXRyaW1tZWRWYWx1ZTtcbiAgICBjb25zdCB3aXRoaW5MaW1pdCA9ICF0aGlzLm1heENoYXJhY3RlckxpbWl0IHx8IHRoaXMuY2hhcmFjdGVyQ291bnQgPD0gdGhpcy5tYXhDaGFyYWN0ZXJMaW1pdDtcbiAgICBcbiAgICB0aGlzLmNhblNlbmRNZXNzYWdlID0gIXRoaXMuaXNEaXNhYmxlZCAmJiBoYXNWYWx1ZSAmJiB3aXRoaW5MaW1pdDtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRleHRhcmVhRWxlbWVudCkge1xuICAgICAgdGhpcy50ZXh0YXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KCcnKTtcbiAgICBcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5hZGp1c3RUZXh0YXJlYUhlaWdodCgpO1xuICAgICAgICB0aGlzLnJlZnJlc2hJbnB1dFN0YXRlKCk7XG4gICAgICB9LCAwKTtcbiAgICB9XG4gIH1cbn0gIiwiPGRpdiBjbGFzcz1cImlucHV0LXRleHRhcmVhLXdpdGgtc2VuZC1jb250YWluZXJcIj5cbiAgPCEtLSBDaGFyYWN0ZXIgQ291bnRlciAtLT5cbiAgPGRpdiBcbiAgICBjbGFzcz1cImNoYXJhY3Rlci1jb3VudGVyIHNmeC1tYi0xMFwiXG4gICAgKm5nSWY9XCJzaG93Q2hhcmFjdGVyQ291bnQgJiYgbWF4Q2hhcmFjdGVyTGltaXRcIj5cbiAgICA8c3BhbiBcbiAgICAgIGNsYXNzPVwiY291bnRlci10ZXh0XCJcbiAgICAgIFtjbGFzcy5jb3VudGVyLWV4Y2VlZGVkXT1cImNoYXJhY3RlckxpbWl0RXhjZWVkZWRcIj5cbiAgICAgIHt7IGNoYXJhY3RlckNvdW50IH19IC8ge3sgbWF4Q2hhcmFjdGVyTGltaXQgfX1cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDwhLS0gSW5wdXQgd2l0aCBTZW5kIEJ1dHRvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXJcIj5cbiAgICA8dGV4dGFyZWFcbiAgICAgICN0ZXh0YXJlYUVsZW1lbnRcbiAgICAgIGNsYXNzPVwidGV4dGFyZWEtaW5wdXRcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICBbbWF4TGVuZ3RoXT1cIm1heENoYXJhY3RlckxpbWl0XCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgKGtleWRvd24pPVwib25JbnB1dEtleVByZXNzKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgICAgcm93cz1cIjFcIj5cbiAgICA8L3RleHRhcmVhPlxuICAgIFxuICAgIDwhLS0gU2VuZCBCdXR0b24gLS0+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNlbmQtYnV0dG9uXCJcbiAgICAgIFtjbGFzcy5lbmFibGVkXT1cImNhblNlbmRNZXNzYWdlXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhY2FuU2VuZE1lc3NhZ2VcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5TZW5kTWVzc2FnZVwiXG4gICAgICAoY2xpY2spPVwib25TZW5kQ2xpY2soKVwiXG4gICAgICBpZD1cImJ1dHRvbi10ZXh0YXJlYS1zZW5kXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VuZEJ1dHRvbkFyaWFMYWJlbFwiPlxuICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwic2VuZEJ1dHRvbkljb25cIiBbc2l6ZV09XCInMTBweCdcIj48L3N5bXBob255LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+ICJdfQ==
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvYXRvbXMvaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2F0b21zL2lucHV0LXRleHRhcmVhLXdpdGgtc2VuZC9pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFnRCxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFjekUsTUFBTSxPQUFPLDhCQUE4QjtJQWdDekMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEvQmpDLGdCQUFXLEdBQVcsc0JBQXNCLENBQUM7UUFDN0MsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1Qix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsWUFBTyxHQUFXLENBQUMsQ0FBQztRQUNwQixZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBQ3BCLG1CQUFjLEdBQVcsZUFBZSxDQUFDO1FBQ3pDLHdCQUFtQixHQUFXLGNBQWMsQ0FBQztRQUM3QyxlQUFVLEdBQVksSUFBSSxDQUFDO1FBRzNCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyx3QkFBbUIsR0FBVyxlQUFlLENBQUM7UUFDOUMseUJBQW9CLEdBQVcsWUFBWSxDQUFDO1FBRTNDLGdCQUFXLEdBQUcsSUFBSSxZ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LDhCQUE4QjtrQkFaMUMsU0FBUzsrQkFDRSxtQ0FBbUMsYUFHbEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsK0JBQStCLENBQUM7NEJBQzdELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3dHQUdRLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFdUIsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzeW1waG9ueS1pbnB1dC10ZXh0YXJlYS13aXRoLXNlbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtdGV4dGFyZWEtd2l0aC1zZW5kLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXRUZXh0YXJlYVdpdGhTZW5kQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElucHV0VGV4dGFyZWFXaXRoU2VuZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdUeXBlIHlvdXIgbWVzc2FnZS4uLic7XG4gIEBJbnB1dCgpIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4Q2hhcmFjdGVyTGltaXQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHNob3dDaGFyYWN0ZXJDb3VudDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtaW5Sb3dzOiBudW1iZXIgPSAxO1xuICBASW5wdXQoKSBtYXhSb3dzOiBudW1iZXIgPSA2O1xuICBASW5wdXQoKSBzZW5kQnV0dG9uSWNvbjogc3RyaW5nID0gJ3NpLWFycm93LW5leHQnO1xuICBASW5wdXQoKSBzZW5kQnV0dG9uQXJpYUxhYmVsOiBzdHJpbmcgPSAnU2VuZCBtZXNzYWdlJztcbiAgQElucHV0KCkgYXV0b1Jlc2l6ZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dTdGFydE92ZXJCdXR0b246IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN0YXJ0T3ZlckJ1dHRvbklkPzogc3RyaW5nO1xuICBASW5wdXQoKSBzdGFydE92ZXJEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdGFydE92ZXJCdXR0b25JY29uOiBzdHJpbmcgPSAnc2ktc3RhcnQtb3Zlcic7XG4gIEBJbnB1dCgpIHN0YXJ0T3ZlckJ1dHRvblRpdGxlOiBzdHJpbmcgPSAnU3RhcnQgT3Zlcic7XG5cbiAgQE91dHB1dCgpIHNlbmRDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBlbnRlclByZXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgc3RhcnRPdmVyQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKCd0ZXh0YXJlYUVsZW1lbnQnKSB0ZXh0YXJlYUVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuXG4gIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgY3VycmVudFJvd3M6IG51bWJlciA9IDE7XG4gIGNoYXJhY3RlckNvdW50OiBudW1iZXIgPSAwO1xuICBjaGFyYWN0ZXJMaW1pdEV4Y2VlZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGNhblNlbmRNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gIFxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBzdHJpbmcpID0+IHt9O1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvUmVzaXplKSB7XG4gICAgICB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCk7XG4gICAgfVxuICAgIC8vIEluaXRpYWxpemUgY29tcHV0ZWQgcHJvcGVydGllc1xuICAgIHRoaXMucmVmcmVzaElucHV0U3RhdGUoKTtcbiAgfVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCAnJztcbiAgICB0aGlzLnJlZnJlc2hJbnB1dFN0YXRlKCk7XG4gICAgaWYgKHRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCksIDApO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQ7XG4gICAgdGhpcy52YWx1ZSA9IHRhcmdldC52YWx1ZTtcbiAgICAvLyBVcGRhdGUgY29tcHV0ZWQgcHJvcGVydGllcyBmb3IgY2hhcmFjdGVyIGNvdW50IGFuZCBzZW5kIGJ1dHRvblxuICAgIHRoaXMucmVmcmVzaElucHV0U3RhdGUoKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIFxuICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgIHRoaXMuYWRqdXN0VGV4dGFyZWFIZWlnaHQoKTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0S2V5UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmICFldmVudC5zaGlmdEtleSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGlmICh0aGlzLmNhblNlbmRNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMub25TZW5kQ2xpY2soKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblNlbmRDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYW5TZW5kTWVzc2FnZSkge1xuICAgICAgdGhpcy5zZW5kQ2xpY2tlZC5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5lbnRlclByZXNzZWQuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkanVzdFRleHRhcmVhSGVpZ2h0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50ZXh0YXJlYUVsZW1lbnQpIHJldHVybjtcblxuICAgIGNvbnN0IHRleHRhcmVhID0gdGhpcy50ZXh0YXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICBcbiAgICAvLyBSZXNldCBoZWlnaHQgdG8gYXV0byB0byBnZXQgdGhlIHNjcm9sbCBoZWlnaHRcbiAgICB0ZXh0YXJlYS5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgXG4gICAgLy8gQ2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgbGluZXNcbiAgICBjb25zdCBsaW5lSGVpZ2h0ID0gMjQ7IC8vIEJhc2UgbGluZSBoZWlnaHQgaW4gcGl4ZWxzXG4gICAgY29uc3QgcGFkZGluZyA9IDE2OyAvLyBUb3AgKyBib3R0b20gcGFkZGluZ1xuICAgIGNvbnN0IG1pbkhlaWdodCA9IHRoaXMubWluUm93cyAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nO1xuICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMubWF4Um93cyAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nO1xuICAgIFxuICAgIGxldCBuZXdIZWlnaHQgPSBNYXRoLm1heCh0ZXh0YXJlYS5zY3JvbGxIZWlnaHQsIG1pbkhlaWdodCk7XG4gICAgbmV3SGVpZ2h0ID0gTWF0aC5taW4obmV3SGVpZ2h0LCBtYXhIZWlnaHQpO1xuICAgIFxuICAgIHRleHRhcmVhLnN0eWxlLmhlaWdodCA9IG5ld0hlaWdodCArICdweCc7XG4gICAgXG4gICAgLy8gVXBkYXRlIGN1cnJlbnQgcm93cyBmb3Igc3R5bGluZyBwdXJwb3Nlc1xuICAgIHRoaXMuY3VycmVudFJvd3MgPSBNYXRoLmNlaWwoKG5ld0hlaWdodCAtIHBhZGRpbmcpIC8gbGluZUhlaWdodCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hJbnB1dFN0YXRlKCk6IHZvaWQge1xuICAgIC8vIFVwZGF0ZSBjaGFyYWN0ZXIgY291bnRcbiAgICB0aGlzLmNoYXJhY3RlckNvdW50ID0gdGhpcy52YWx1ZT8ubGVuZ3RoIHx8IDA7XG4gICAgXG4gICAgLy8gVXBkYXRlIGNoYXJhY3RlciBsaW1pdCBleGNlZWRlZCBzdGF0dXNcbiAgICB0aGlzLmNoYXJhY3RlckxpbWl0RXhjZWVkZWQgPSAhIXRoaXMubWF4Q2hhcmFjdGVyTGltaXQgJiYgdGhpcy5jaGFyYWN0ZXJDb3VudCA+IHRoaXMubWF4Q2hhcmFjdGVyTGltaXQ7XG4gICAgXG4gICAgLy8gVXBkYXRlIGNhbiBzZW5kIHN0YXR1c1xuICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHRoaXMudmFsdWU/LnRyaW0oKTtcbiAgICBjb25zdCBoYXNWYWx1ZSA9ICEhdHJpbW1lZFZhbHVlO1xuICAgIGNvbnN0IHdpdGhpbkxpbWl0ID0gIXRoaXMubWF4Q2hhcmFjdGVyTGltaXQgfHwgdGhpcy5jaGFyYWN0ZXJDb3VudCA8PSB0aGlzLm1heENoYXJhY3RlckxpbWl0O1xuICAgIFxuICAgIHRoaXMuY2FuU2VuZE1lc3NhZ2UgPSAhdGhpcy5pc0Rpc2FibGVkICYmIGhhc1ZhbHVlICYmIHdpdGhpbkxpbWl0O1xuICB9XG5cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGV4dGFyZWFFbGVtZW50KSB7XG4gICAgICB0aGlzLnRleHRhcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMub25DaGFuZ2UoJycpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQoJycpO1xuICAgIFxuICAgIGlmICh0aGlzLmF1dG9SZXNpemUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmFkanVzdFRleHRhcmVhSGVpZ2h0KCk7XG4gICAgICAgIHRoaXMucmVmcmVzaElucHV0U3RhdGUoKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIG9uU3RhcnRPdmVyQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd1N0YXJ0T3ZlckJ1dHRvbiAmJiAhdGhpcy5zdGFydE92ZXJEaXNhYmxlZCkge1xuICAgICAgdGhpcy5zdGFydE92ZXJDbGlja2VkLmVtaXQoKTtcbiAgICB9XG4gIH1cbn0gIiwiPGRpdiBjbGFzcz1cImlucHV0LXRleHRhcmVhLXdpdGgtc2VuZC1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY29tcG9zZXItbWV0YSBzZngtbWItMTBcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYWktc3RhcnQtb3ZlclwiXG4gICAgICAqbmdJZj1cInNob3dTdGFydE92ZXJCdXR0b25cIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAoY2xpY2spPVwib25TdGFydE92ZXJDbGljaygpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJzdGFydE92ZXJEaXNhYmxlZFwiXG4gICAgICBbaWRdPVwic3RhcnRPdmVyQnV0dG9uSWRcIj5cbiAgICAgIDxzeW1waG9ueS1pY29uXG4gICAgICAgIFtpY29uXT1cInN0YXJ0T3ZlckJ1dHRvbkljb25cIlxuICAgICAgICBbdGl0bGVdPVwic3RhcnRPdmVyQnV0dG9uVGl0bGVcIlxuICAgICAgICBbc2l6ZV09XCInMjBweCdcIj5cbiAgICAgIDwvc3ltcGhvbnktaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2hhcmFjdGVyLWNvdW50ZXJcIlxuICAgICAgKm5nSWY9XCJzaG93Q2hhcmFjdGVyQ291bnQgJiYgbWF4Q2hhcmFjdGVyTGltaXRcIj5cbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiY291bnRlci10ZXh0XCJcbiAgICAgICAgW2NsYXNzLmNvdW50ZXItZXhjZWVkZWRdPVwiY2hhcmFjdGVyTGltaXRFeGNlZWRlZFwiPlxuICAgICAgICB7eyBjaGFyYWN0ZXJDb3VudCB9fSAvIHt7IG1heENoYXJhY3RlckxpbWl0IH19XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gSW5wdXQgd2l0aCBTZW5kIEJ1dHRvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXJcIj5cbiAgICA8dGV4dGFyZWFcbiAgICAgICN0ZXh0YXJlYUVsZW1lbnRcbiAgICAgIGNsYXNzPVwidGV4dGFyZWEtaW5wdXRcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICBbbWF4TGVuZ3RoXT1cIm1heENoYXJhY3RlckxpbWl0XCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgKGtleWRvd24pPVwib25JbnB1dEtleVByZXNzKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgICAgcm93cz1cIjFcIj5cbiAgICA8L3RleHRhcmVhPlxuICAgIFxuICAgIDwhLS0gU2VuZCBCdXR0b24gLS0+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cInNlbmQtYnV0dG9uXCJcbiAgICAgIFtjbGFzcy5lbmFibGVkXT1cImNhblNlbmRNZXNzYWdlXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhY2FuU2VuZE1lc3NhZ2VcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFjYW5TZW5kTWVzc2FnZVwiXG4gICAgICAoY2xpY2spPVwib25TZW5kQ2xpY2soKVwiXG4gICAgICBpZD1cImJ1dHRvbi10ZXh0YXJlYS1zZW5kXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VuZEJ1dHRvbkFyaWFMYWJlbFwiPlxuICAgICAgPHN5bXBob255LWljb24gW2ljb25dPVwic2VuZEJ1dHRvbkljb25cIiBbc2l6ZV09XCInMTBweCdcIj48L3N5bXBob255LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+ICJdfQ==