@fundamental-ngx/platform 0.48.0-rc.20 → 0.48.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/button/button.component.d.ts +4 -1
  2. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +2 -2
  3. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +2 -2
  4. package/esm2022/approval-flow/approval-flow.component.mjs +2 -2
  5. package/esm2022/button/button.component.mjs +8 -3
  6. package/esm2022/feed-input/feed-input.component.mjs +2 -2
  7. package/esm2022/form/combobox/combobox/combobox.component.mjs +2 -2
  8. package/esm2022/form/form-generator/controls/dynamic-form-generator-object-status/dynamic-form-generator-object-status.component.mjs +2 -2
  9. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +2 -2
  10. package/esm2022/form/multi-input/multi-input.component.mjs +2 -2
  11. package/esm2022/form/select/commons/base-select.mjs +7 -2
  12. package/esm2022/form/select/select/select.component.mjs +3 -3
  13. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +3 -3
  14. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +3 -3
  15. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +2 -2
  16. package/esm2022/menu-button/menu-button.component.mjs +8 -3
  17. package/esm2022/message-popover/components/message-view/message-view.component.mjs +2 -2
  18. package/esm2022/message-popover/message-popover.component.mjs +2 -2
  19. package/esm2022/object-marker/object-marker.component.mjs +8 -3
  20. package/esm2022/object-status/object-status.component.mjs +8 -3
  21. package/esm2022/search-field/search-field.component.mjs +2 -2
  22. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +2 -2
  23. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +2 -2
  24. package/esm2022/split-menu-button/split-menu-button.component.mjs +8 -3
  25. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +2 -2
  26. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +1 -1
  27. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +2 -2
  28. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +2 -2
  29. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +2 -2
  30. package/esm2022/table/components/table-row/table-row.component.mjs +6 -4
  31. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +2 -2
  32. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +2 -2
  33. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +2 -2
  34. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +2 -2
  35. package/esm2022/variant-management/variant-management.component.mjs +2 -2
  36. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +2 -2
  37. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +2 -2
  38. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +3 -3
  39. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  40. package/fesm2022/fundamental-ngx-platform-button.mjs +7 -2
  41. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  42. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +1 -1
  43. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  44. package/fesm2022/fundamental-ngx-platform-form.mjs +12 -8
  45. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  46. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +4 -4
  47. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  48. package/fesm2022/fundamental-ngx-platform-list.mjs +1 -1
  49. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  50. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +7 -2
  51. package/fesm2022/fundamental-ngx-platform-menu-button.mjs.map +1 -1
  52. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +2 -2
  53. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  54. package/fesm2022/fundamental-ngx-platform-object-marker.mjs +7 -2
  55. package/fesm2022/fundamental-ngx-platform-object-marker.mjs.map +1 -1
  56. package/fesm2022/fundamental-ngx-platform-object-status.mjs +7 -2
  57. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  58. package/fesm2022/fundamental-ngx-platform-search-field.mjs +1 -1
  59. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  60. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +2 -2
  61. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  62. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +7 -2
  63. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  64. package/fesm2022/fundamental-ngx-platform-table.mjs +10 -9
  65. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  66. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +2 -2
  67. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  68. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +2 -2
  69. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  70. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +2 -2
  71. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  72. package/form/select/commons/base-select.d.ts +4 -1
  73. package/fundamental-ngx-platform-v0.48.0-rc.21.tgz +0 -0
  74. package/menu-button/menu-button.component.d.ts +5 -2
  75. package/object-marker/object-marker.component.d.ts +4 -1
  76. package/object-status/object-status.component.d.ts +4 -1
  77. package/package.json +4 -4
  78. package/split-menu-button/split-menu-button.component.d.ts +5 -2
  79. package/fundamental-ngx-platform-v0.48.0-rc.20.tgz +0 -0
@@ -474,7 +474,7 @@ export class SearchFieldComponent extends BaseComponent {
474
474
  provide: FD_SHELLBAR_SEARCH_COMPONENT,
475
475
  useExisting: SearchFieldComponent
476
476
  }
477
- ], viewQueries: [{ propertyName: "categoryDropdown", first: true, predicate: ["categoryDropdown"], descendants: true }, { propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true }, { propertyName: "inputField", first: true, predicate: ["inputField"], descendants: true }, { propertyName: "inputFieldTemplate", first: true, predicate: ["inputFieldTemplate"], descendants: true }, { propertyName: "suggestionMenuTemplate", first: true, predicate: ["suggestionMenuTemplate"], descendants: true }, { propertyName: "suggestionItems", predicate: SearchFieldSuggestionDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : inputFieldTemplate\"></ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"inputFieldTemplate\"></ng-template>\n</ng-template>\n<ng-template #searchCategoryMenu>\n <button\n class=\"fdp-search-field__category-button fd-input-group__button fd-button fd-button--menu {{\n appearance?.categoryButtonClass\n }}\"\n [fdpMenuTriggerFor]=\"categoryMenu\"\n >\n @if (!hideCategoryLabel) {\n <span class=\"fdp-search-field__category-label\">\n {{ _currentCategory?.label || categoryLabel }}\n </span>\n }\n </button>\n <fdp-menu #categoryMenu>\n @for (category of categories; track category) {\n <fdp-menu-item (itemSelect)=\"setCurrentCategory(category)\">{{ category.label }} </fdp-menu-item>\n }\n </fdp-menu>\n</ng-template>\n<ng-template #searchCategorySelect>\n <fd-select\n [placeholder]=\"categoryLabel\"\n [selectControlClass]=\"appearance?.categoryButtonClass\"\n [selectDropdownButtonClass]=\"appearance?.categoryDropdownButtonClass\"\n (valueChange)=\"setCurrentCategory($event)\"\n >\n @for (category of categories; track category) {\n <li fd-option [value]=\"category\">{{ category.label }}</li>\n }\n </fd-select>\n</ng-template>\n<ng-template #inputFieldTemplate>\n <div\n class=\"fdp-search-field\"\n [class.with-categories]=\"_showCategoryDropdown\"\n [class.is-loading]=\"isLoading\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n [class.hide-category-label]=\"hideCategoryLabel\"\n >\n <div\n #inputGroup\n class=\"fdp-search-field__input-group fd-input-group {{ appearance?.searchClass }}\"\n [class.is-focus]=\"isFocused\"\n >\n @if (_showCategoryDropdown) {\n <span class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.searchCategoryClass }}\">\n <ng-template\n [ngTemplateOutlet]=\"categoryMode === 'select' ? searchCategorySelect : searchCategoryMenu\"\n ></ng-template>\n </span>\n }\n <input\n #inputField\n type=\"search\"\n [attr.placeholder]=\"placeholder\"\n class=\"fdp-search-field__input fd-input fd-input-group__input {{ appearance?.searchFieldClass }}\"\n [attr.id]=\"_inputId\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.aria-label]=\"ariaLabel || ('platformSearchField.searchInputLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-controls]=\"_menuId\"\n [attr.aria-expanded]=\"\n (_dropdownValues$ | async)?.length !== 0 ? (_showDropdown ? 'true' : 'false') : null\n \"\n [attr.aria-haspopup]=\"(_dropdownValues$ | async)?.length !== 0\"\n autocomplete=\"off\"\n (keydown)=\"onKeydown($event)\"\n (keydown.enter)=\"onSearchSubmit($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onValueChange($event)\"\n (click)=\"mobile && openMobileMode()\"\n />\n @if (inputText && inputText.length > 0) {\n <span class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }}\">\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.clearButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__clear fd-button fd-button--transparent {{ appearance?.buttonClass }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_clearId\"\n (click)=\"clearTextInput()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n @if (forceSearchButton || isLoading || (!isLoading && !_isSearchDone)) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n >\n @if (!disableSearch) {\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.submitButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__submit fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.id]=\"_submitId\"\n [attr.disabled]=\"disabled ? '' : null\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"search\"></fd-icon>\n </button>\n }\n </span>\n }\n @if (!disableRefresh && !isLoading && (_isRefresh || _isSearchDone)) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n >\n <button\n [attr.aria-label]=\"'platformSearchField.synchronizeButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__loading fd-input-group__button fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_refreshId\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"synchronize\"></fd-icon>\n </button>\n </span>\n }\n @if (appearance?.helperClass) {\n <div [ngClass]=\"appearance?.helperClass\"></div>\n }\n </div>\n </div>\n</ng-template>\n<ng-template #suggestionMenuTemplate>\n @if (_dropdownValues$ | async | suggestionMatches: inputText : mobile; as suggestions) {\n @if (suggestions?.length) {\n <div class=\"fdp-search-field__suggestion-dropdown\" [attr.dir]=\"_dir\">\n <nav\n class=\"fd-menu\"\n tabindex=\"-1\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n [class.fd-menu--mobile]=\"mobile\"\n [class.fd-menu--overflow]=\"!mobile\"\n [attr.id]=\"_menuId\"\n #menu\n (keydown)=\"onKeydown($event)\"\n >\n <ul class=\"fd-menu__list\" role=\"menu\">\n @for (value of suggestions; track value) {\n <li\n fdpSearchFieldSuggestion\n class=\"fdp-search-field__suggestion-item fd-menu__item fd-menu__link\"\n (keydown.enter)=\"onItemClick(value); $event.preventDefault()\"\n (keydown.tab)=\"onItemClick(value)\"\n (keyup.space)=\"onItemClick(value); $event.stopPropagation()\"\n (click)=\"onItemClick(value)\"\n [innerHTML]=\"value | highlight: inputText : true : true\"\n role=\"menuitem\"\n ></li>\n }\n </ul>\n </nav>\n </div>\n }\n }\n</ng-template>\n", styles: [".fd-button{--fdButton_Clickable_Height:2.75rem;--fdButton_Padding_X:.625rem;--fdButton_Min_Width:2.25rem;-webkit-box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Background));align-items:center;appearance:none;background-color:transparent;background-color:var(--fdButtonBackgroundColor);background-image:none;border:0;border-color:var(--fdButtonBorderColor);border-radius:var(--sapButton_BorderCornerRadius);border-style:solid;border-width:var(--sapButton_BorderWidth);box-sizing:border-box;color:var(--sapTextColor);color:var(--fdButtonColor);cursor:pointer;display:inline-block;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdButton_Height);justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:var(--fdButton_Height);min-width:var(--fdButton_Min_Width);outline:0;padding:0;padding-left:calc(var(--fdButton_Padding_X) - var(--sapButton_BorderWidth));padding-right:calc(var(--fdButton_Padding_X) - var(--sapButton_BorderWidth));position:relative;text-align:center;text-decoration:none;text-shadow:var(--fdButton_Text_Shadow);user-select:none;vertical-align:middle;white-space:nowrap}.fd-button:after,.fd-button:before{box-sizing:inherit;font-size:inherit}.fd-button::-moz-focus-inner{border:0}.fd-button:before{bottom:calc((var(--fdButton_Clickable_Height) - var(--fdButton_Height)) * -.5);content:\"\";display:block;height:auto;left:0;position:absolute;right:0;top:calc((var(--fdButton_Clickable_Height) - var(--fdButton_Height)) * -.5);width:100%}.fd-button__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:inherit;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:inherit;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-button__text:after,.fd-button__text:before{box-sizing:inherit;font-size:inherit}.fd-button,.fd-button__text{font-family:var(--fdButton_Font_Family)}.fd-button :not(:first-child):not(.fd-button__badge){margin-left:.375rem}.fd-button :not(:first-child):not(.fd-button__badge)[dir=rtl],[dir=rtl] .fd-button :not(:first-child):not(.fd-button__badge){margin-left:0;margin-right:.375rem}.fd-button>[class*=sap-icon]{color:inherit;font-size:1rem;font-style:normal;height:1rem;line-height:1rem;min-width:1rem;vertical-align:text-bottom;width:1rem}.fd-button>[class*=sap-icon]:after,.fd-button>[class*=sap-icon]:before{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.fd-button__badge{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:var(--sapContent_BadgeBackground);border:0;border:.0625rem solid var(--fdButton_Badge_Border_Color);border-radius:.5rem;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_BadgeTextColor);display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontSmallSize);font-weight:400;forced-color-adjust:none;height:1rem;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;margin-left:var(--fdButton_Badge_Margin_Left, 0);padding:0 .3125rem;position:var(--fdButton_Badge_Position, absolute);right:-.25rem;top:-.25rem;z-index:1}.fd-button__badge:after,.fd-button__badge:before{box-sizing:inherit;font-size:inherit}.fd-button__badge[dir=rtl],[dir=rtl] .fd-button__badge{left:-.25rem;margin-left:0;margin-right:var(--fdButton_Badge_Margin_Left, 0);right:auto}.fd-button[class*=-compact],.fd-button[class*=-condensed],[class*=-compact] .fd-button:not([class*=-cozy]),[class*=-condensed] .fd-button:not([class*=-cozy]){--fdButton_Height:var(--fdButton_Compact_Height);--fdButton_Clickable_Height:2rem;--fdButton_Padding_X:.5rem;--fdButton_Min_Width:2rem;--fdButton_Badge_Position:static;--fdButton_Badge_Margin_Left:.25rem}.fd-button--menu{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-button--menu-fixed-width{justify-content:space-between}.fd-button--menu .fd-button__text{line-height:1rem}.fd-button--full-width{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:flex;justify-content:center;min-width:100%;width:100%}.fd-button--text-alignment-left{justify-content:flex-start;text-align:left}.fd-button--text-alignment-right{justify-content:flex-end;text-align:right}.fd-button--decisive{min-width:4rem}.fd-button__instructions{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fd-button.is-focus,.fd-button:focus{box-shadow:none;outline:none;z-index:5}.fd-button.is-focus:after,.fd-button:focus:after{border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--fdButton_Focus_Border_Radius);bottom:var(--fdButton_Outline_Offset);content:\"\";display:block;left:var(--fdButton_Outline_Offset);position:absolute;right:var(--fdButton_Outline_Offset);top:var(--fdButton_Outline_Offset)}.fd-button.is-focus.fd-button--toggled:after,.fd-button.is-focus.is-selected:after,.fd-button:focus.fd-button--toggled:after,.fd-button:focus.is-selected:after{border-color:var(--fdButton_Outline_Contrast)}.fd-button.is-active,.fd-button.is-selected,.fd-button:active,.fd-button[aria-selected=true]{box-shadow:none;outline:none}.fd-button.is-disabled,.fd-button:disabled,.fd-button[aria-disabled=true]{box-shadow:none;cursor:not-allowed;opacity:var(--sapContent_DisabledOpacity)}.fd-button.is-selected,.fd-button[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button.is-hover,.fd-button:hover{--fdButtonColor:var(--sapButton_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Hover_Background))}.fd-button.is-active,.fd-button:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button.is-active .fd-button__icon,.fd-button:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button.is-disabled,.fd-button:disabled,.fd-button[aria-disabled=true]{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Background))}.fd-button.is-disabled.is-selected,.fd-button.is-disabled[aria-selected=true],.fd-button:disabled.is-selected,.fd-button:disabled[aria-selected=true],.fd-button[aria-disabled=true].is-selected,.fd-button[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button.fd-button--toggled.is-hover,.fd-button.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button.fd-button--toggled.is-active,.fd-button.fd-button--toggled.is-selected,.fd-button.fd-button--toggled:active,.fd-button.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button.fd-button--toggled.is-active .fd-button__icon,.fd-button.fd-button--toggled.is-selected .fd-button__icon,.fd-button.fd-button--toggled:active .fd-button__icon,.fd-button.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button.fd-button--toggled.is-disabled,.fd-button.fd-button--toggled:disabled,.fd-button.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--emphasized{--fdButtonColor:var(--sapButton_Emphasized_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Emphasized_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Emphasized_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);border-width:var(--fdButton_Emphasized_Border_Width);color:var(--fdButtonColor);font-weight:var(--sapButton_Emphasized_FontWeight)}.fd-button--emphasized.is-selected,.fd-button--emphasized[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--emphasized.is-hover,.fd-button--emphasized:hover{--fdButtonColor:var(--sapButton_Emphasized_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Emphasized_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Emphasized_Hover_Background))}.fd-button--emphasized.is-active,.fd-button--emphasized:active{--fdButtonColor:var(--sapButton_Emphasized_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Emphasized_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Emphasized_Active_Background));--fdElementTextColor:var(--sapButton_Emphasized_Active_TextColor);--fdElementIconColor:var(--sapButton_Emphasized_Active_TextColor)}.fd-button--emphasized.is-active .fd-button__icon,.fd-button--emphasized:active .fd-button__icon{color:var(--sapButton_Emphasized_Active_TextColor);text-shadow:none}.fd-button--emphasized.is-disabled,.fd-button--emphasized:disabled,.fd-button--emphasized[aria-disabled=true]{--fdButtonColor:var(--sapButton_Emphasized_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Emphasized_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Emphasized_Background))}.fd-button--emphasized.is-disabled.is-selected,.fd-button--emphasized.is-disabled[aria-selected=true],.fd-button--emphasized:disabled.is-selected,.fd-button--emphasized:disabled[aria-selected=true],.fd-button--emphasized[aria-disabled=true].is-selected,.fd-button--emphasized[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--emphasized.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--emphasized.fd-button--toggled.is-hover,.fd-button--emphasized.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--emphasized.fd-button--toggled.is-active,.fd-button--emphasized.fd-button--toggled.is-selected,.fd-button--emphasized.fd-button--toggled:active,.fd-button--emphasized.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--emphasized.fd-button--toggled.is-active .fd-button__icon,.fd-button--emphasized.fd-button--toggled.is-selected .fd-button__icon,.fd-button--emphasized.fd-button--toggled:active .fd-button__icon,.fd-button--emphasized.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Emphasized_Active_TextColor);text-shadow:none}.fd-button--emphasized.fd-button--toggled.is-disabled,.fd-button--emphasized.fd-button--toggled:disabled,.fd-button--emphasized.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--emphasized.is-focus,.fd-button--emphasized:focus{z-index:5}.fd-button--emphasized.is-focus:after,.fd-button--emphasized:focus:after{border-color:var(--sapContent_ContrastFocusColor)}.fd-button--emphasized.is-focus.is-active:after,.fd-button--emphasized.is-focus:active:after,.fd-button--emphasized:focus.is-active:after,.fd-button--emphasized:focus:active:after{border-color:var(--sapContent_FocusColor)}.fd-button--emphasized[class*=-compact].is-focus,.fd-button--emphasized[class*=-compact]:focus,.fd-button--emphasized[class*=-condensed].is-focus,.fd-button--emphasized[class*=-condensed]:focus,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus{z-index:5}.fd-button--emphasized[class*=-compact].is-focus.is-active:after,.fd-button--emphasized[class*=-compact].is-focus:active:after,.fd-button--emphasized[class*=-compact]:focus.is-active:after,.fd-button--emphasized[class*=-compact]:focus:active:after,.fd-button--emphasized[class*=-condensed].is-focus.is-active:after,.fd-button--emphasized[class*=-condensed].is-focus:active:after,.fd-button--emphasized[class*=-condensed]:focus.is-active:after,.fd-button--emphasized[class*=-condensed]:focus:active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus.is-active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus:active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus.is-active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus:active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus.is-active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus:active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus.is-active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus:active:after{border-color:transparent}.fd-button--emphasized.is-active,.fd-button--emphasized.is-selected,.fd-button--emphasized:active,.fd-button--emphasized[aria-selected=true]{outline:none}.fd-button--emphasized.fd-button--toggled.is-focus,.fd-button--emphasized.fd-button--toggled:focus{outline-color:var(--fdButton_Emphasized_Active_Outline);z-index:5}.fd-button--emphasized.fd-button--toggled.is-active,.fd-button--emphasized.fd-button--toggled.is-selected,.fd-button--emphasized.fd-button--toggled:active,.fd-button--emphasized.fd-button--toggled[aria-selected=true]{outline:none}.fd-button--attention{--fdButtonColor:var(--sapButton_Attention_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--attention.is-selected,.fd-button--attention[aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background))}.fd-button--attention.is-hover,.fd-button--attention:hover{--fdButtonColor:var(--sapButton_Attention_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Attention_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Attention_Hover_Background))}.fd-button--attention.is-active,.fd-button--attention:active{--fdButtonColor:var(--sapButton_Attention_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Attention_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Attention_Active_Background));--fdElementTextColor:var(--sapButton_Attention_Active_TextColor);--fdElementIconColor:var(--sapButton_Attention_Active_TextColor)}.fd-button--attention.is-active .fd-button__icon,.fd-button--attention:active .fd-button__icon{color:var(--sapButton_Attention_Active_TextColor);text-shadow:none}.fd-button--attention.is-disabled,.fd-button--attention:disabled,.fd-button--attention[aria-disabled=true]{--fdButtonColor:var(--sapButton_Attention_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Background))}.fd-button--attention.is-disabled.is-selected,.fd-button--attention.is-disabled[aria-selected=true],.fd-button--attention:disabled.is-selected,.fd-button--attention:disabled[aria-selected=true],.fd-button--attention[aria-disabled=true].is-selected,.fd-button--attention[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background))}.fd-button--attention.fd-button--toggled{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background))}.fd-button--attention.fd-button--toggled.is-hover,.fd-button--attention.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Attention_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Hover_Background))}.fd-button--attention.fd-button--toggled.is-active,.fd-button--attention.fd-button--toggled.is-selected,.fd-button--attention.fd-button--toggled:active,.fd-button--attention.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Attention_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Hover_Background))}.fd-button--attention.fd-button--toggled.is-active .fd-button__icon,.fd-button--attention.fd-button--toggled.is-selected .fd-button__icon,.fd-button--attention.fd-button--toggled:active .fd-button__icon,.fd-button--attention.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Attention_Active_TextColor);text-shadow:none}.fd-button--attention.fd-button--toggled.is-disabled,.fd-button--attention.fd-button--toggled:disabled,.fd-button--attention.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--negative{--fdButtonColor:var(--sapButton_Reject_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--negative.is-selected,.fd-button--negative[aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background))}.fd-button--negative.is-hover,.fd-button--negative:hover{--fdButtonColor:var(--sapButton_Reject_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Reject_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Reject_Hover_Background))}.fd-button--negative.is-active,.fd-button--negative:active{--fdButtonColor:var(--sapButton_Reject_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Reject_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Reject_Active_Background));--fdElementTextColor:var(--sapButton_Reject_Active_TextColor);--fdElementIconColor:var(--sapButton_Reject_Active_TextColor)}.fd-button--negative.is-active .fd-button__icon,.fd-button--negative:active .fd-button__icon{color:var(--sapButton_Reject_Active_TextColor);text-shadow:none}.fd-button--negative.is-disabled,.fd-button--negative:disabled,.fd-button--negative[aria-disabled=true]{--fdButtonColor:var(--sapButton_Reject_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Background))}.fd-button--negative.is-disabled.is-selected,.fd-button--negative.is-disabled[aria-selected=true],.fd-button--negative:disabled.is-selected,.fd-button--negative:disabled[aria-selected=true],.fd-button--negative[aria-disabled=true].is-selected,.fd-button--negative[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background))}.fd-button--negative.fd-button--toggled{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background))}.fd-button--negative.fd-button--toggled.is-hover,.fd-button--negative.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Reject_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Hover_Background))}.fd-button--negative.fd-button--toggled.is-active,.fd-button--negative.fd-button--toggled.is-selected,.fd-button--negative.fd-button--toggled:active,.fd-button--negative.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Reject_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Hover_Background))}.fd-button--negative.fd-button--toggled.is-active .fd-button__icon,.fd-button--negative.fd-button--toggled.is-selected .fd-button__icon,.fd-button--negative.fd-button--toggled:active .fd-button__icon,.fd-button--negative.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Reject_Active_TextColor);text-shadow:none}.fd-button--negative.fd-button--toggled.is-disabled,.fd-button--negative.fd-button--toggled:disabled,.fd-button--negative.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--positive{--fdButtonColor:var(--sapButton_Accept_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--positive.is-selected,.fd-button--positive[aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background))}.fd-button--positive.is-hover,.fd-button--positive:hover{--fdButtonColor:var(--sapButton_Accept_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Accept_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Accept_Hover_Background))}.fd-button--positive.is-active,.fd-button--positive:active{--fdButtonColor:var(--sapButton_Accept_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Accept_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Accept_Active_Background));--fdElementTextColor:var(--sapButton_Accept_Active_TextColor);--fdElementIconColor:var(--sapButton_Accept_Active_TextColor)}.fd-button--positive.is-active .fd-button__icon,.fd-button--positive:active .fd-button__icon{color:var(--sapButton_Accept_Active_TextColor);text-shadow:none}.fd-button--positive.is-disabled,.fd-button--positive:disabled,.fd-button--positive[aria-disabled=true]{--fdButtonColor:var(--sapButton_Accept_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Background))}.fd-button--positive.is-disabled.is-selected,.fd-button--positive.is-disabled[aria-selected=true],.fd-button--positive:disabled.is-selected,.fd-button--positive:disabled[aria-selected=true],.fd-button--positive[aria-disabled=true].is-selected,.fd-button--positive[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background))}.fd-button--positive.fd-button--toggled{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background))}.fd-button--positive.fd-button--toggled.is-hover,.fd-button--positive.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Accept_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Hover_Background))}.fd-button--positive.fd-button--toggled.is-active,.fd-button--positive.fd-button--toggled.is-selected,.fd-button--positive.fd-button--toggled:active,.fd-button--positive.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Accept_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Hover_Background))}.fd-button--positive.fd-button--toggled.is-active .fd-button__icon,.fd-button--positive.fd-button--toggled.is-selected .fd-button__icon,.fd-button--positive.fd-button--toggled:active .fd-button__icon,.fd-button--positive.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Accept_Active_TextColor);text-shadow:none}.fd-button--positive.fd-button--toggled.is-disabled,.fd-button--positive.fd-button--toggled:disabled,.fd-button--positive.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--transparent{--fdButtonColor:var(--sapButton_Lite_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Lite_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Lite_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--transparent.is-selected,.fd-button--transparent[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--transparent.is-hover,.fd-button--transparent:hover{--fdButtonColor:var(--sapButton_Lite_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Lite_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Lite_Hover_Background))}.fd-button--transparent.is-active,.fd-button--transparent:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Lite_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Lite_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button--transparent.is-active .fd-button__icon,.fd-button--transparent:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--transparent.is-disabled,.fd-button--transparent:disabled,.fd-button--transparent[aria-disabled=true]{--fdButtonColor:var(--sapButton_Lite_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Lite_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Lite_Background))}.fd-button--transparent.is-disabled.is-selected,.fd-button--transparent.is-disabled[aria-selected=true],.fd-button--transparent:disabled.is-selected,.fd-button--transparent:disabled[aria-selected=true],.fd-button--transparent[aria-disabled=true].is-selected,.fd-button--transparent[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--transparent.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--transparent.fd-button--toggled.is-hover,.fd-button--transparent.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--transparent.fd-button--toggled.is-active,.fd-button--transparent.fd-button--toggled.is-selected,.fd-button--transparent.fd-button--toggled:active,.fd-button--transparent.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--transparent.fd-button--toggled.is-active .fd-button__icon,.fd-button--transparent.fd-button--toggled.is-selected .fd-button__icon,.fd-button--transparent.fd-button--toggled:active .fd-button__icon,.fd-button--transparent.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--transparent.fd-button--toggled.is-disabled,.fd-button--transparent.fd-button--toggled:disabled,.fd-button--transparent.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--ghost{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--fdButton_Ghost_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--ghost.is-selected,.fd-button--ghost[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--ghost.is-hover,.fd-button--ghost:hover{--fdButtonColor:var(--sapButton_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Hover_Background))}.fd-button--ghost.is-active,.fd-button--ghost:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button--ghost.is-active .fd-button__icon,.fd-button--ghost:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--ghost.is-disabled,.fd-button--ghost:disabled,.fd-button--ghost[aria-disabled=true]{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--fdButton_Ghost_Background))}.fd-button--ghost.is-disabled.is-selected,.fd-button--ghost.is-disabled[aria-selected=true],.fd-button--ghost:disabled.is-selected,.fd-button--ghost:disabled[aria-selected=true],.fd-button--ghost[aria-disabled=true].is-selected,.fd-button--ghost[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--ghost.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--ghost.fd-button--toggled.is-hover,.fd-button--ghost.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--ghost.fd-button--toggled.is-active,.fd-button--ghost.fd-button--toggled.is-selected,.fd-button--ghost.fd-button--toggled:active,.fd-button--ghost.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--ghost.fd-button--toggled.is-active .fd-button__icon,.fd-button--ghost.fd-button--toggled.is-selected .fd-button__icon,.fd-button--ghost.fd-button--toggled:active .fd-button__icon,.fd-button--ghost.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--ghost.fd-button--toggled.is-disabled,.fd-button--ghost.fd-button--toggled:disabled,.fd-button--ghost.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--tool-header{--fdButton_ToolHeader_Icon_Size:1rem;--fdButton_ToolHeader_Padding:.75rem;--fdButton_ToolHeader_Size:var(--fdButton_ToolHeader_Button_Size);--fdButton_ToolHeader_Background:var(--sapButton_Lite_Background);--fdButton_ToolHeader_Color:var(--fdButton_ToolHeader_Color_Normal);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Normal);--fdButton_ToolHeader_Border_Radius:var(--fdButton_ToolHeader_Button_Border_Radius);background:var(--fdButton_ToolHeader_Background);border:var(--sapButton_BorderWidth) solid var(--fdButton_ToolHeader_Border_Color);border-radius:var(--fdButton_ToolHeader_Border_Radius);color:var(--fdButton_ToolHeader_Color);height:var(--fdButton_ToolHeader_Size);max-height:var(--fdButton_ToolHeader_Size);max-width:var(--fdButton_ToolHeader_Size);min-height:var(--fdButton_ToolHeader_Size);min-width:var(--fdButton_ToolHeader_Size);padding:var(--fdButton_ToolHeader_Padding);width:var(--fdButton_ToolHeader_Size)}.fd-button--tool-header [class*=sap-icon],.fd-button--tool-header[class*=sap-icon]{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;color:inherit;display:flex;font-size:var(--fdButton_ToolHeader_Icon_Size);height:var(--fdButton_ToolHeader_Icon_Size);justify-content:center;width:var(--fdButton_ToolHeader_Icon_Size)}.fd-button--tool-header.is-hover,.fd-button--tool-header:hover{--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Hover);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Hover);--fdButton_Hover_Shadow:none}.fd-button--tool-header.is-active,.fd-button--tool-header:active{--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Active);--fdButton_ToolHeader_Color:var(--fdButton_ToolHeader_Color_Active);outline:none}.fd-button--tool-header.is-active.is-focus,.fd-button--tool-header.is-active:focus,.fd-button--tool-header:active.is-focus,.fd-button--tool-header:active:focus{--fdButton_ToolHeader_Border_Radius:.375rem;--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Active);outline:none;z-index:5}.fd-button--tool-header.is-active.is-focus:after,.fd-button--tool-header.is-active:focus:after,.fd-button--tool-header:active.is-focus:after,.fd-button--tool-header:active:focus:after{border:none}.fd-button--tool-header.is-focus,.fd-button--tool-header:focus{--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Focus);--fdButton_ToolHeader_Border_Radius:var(--fdButton_ToolHeader_Border_Radius_Focus);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--fdButton_ToolHeader_Outline_Color);z-index:5}.fd-button--tool-header.is-focus:after,.fd-button--tool-header:focus:after{border:none}.fd-button--tool-header.is-disabled,.fd-button--tool-header:disabled,.fd-button--tool-header[aria-disabled=true]{--fdButton_ToolHeader_Background:var(--sapButton_Lite_Background);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Disabled);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-button--tool-header[class*=-compact],[class*=-compact] .fd-button--tool-header:not([class*=-cozy]){--fdButton_ToolHeader_Padding:.5rem;--fdButton_ToolHeader_Size:var(--fdButton_ToolHeader_Button_Size_Compact)}.fd-button--tool-header .fd-button__badge{-webkit-box-sizing:border-box;background:var(--sapContent_BadgeBackground);border:0;border:.0625rem solid var(--fdButton_ToolHeader_Badge_Border_Color);border-radius:100%;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_BadgeBackground);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.625rem;line-height:var(--sapContent_LineHeight);margin:0;max-height:.625rem;max-width:.625rem;min-height:.625rem;min-width:.625rem;overflow:hidden;padding:0;position:absolute;right:-.125rem;top:-.125rem;width:.625rem}.fd-button--tool-header .fd-button__badge:after,.fd-button--tool-header .fd-button__badge:before{box-sizing:inherit;font-size:inherit}.fd-button--tool-header .fd-button__badge[dir=rtl],[dir=rtl] .fd-button--tool-header .fd-button__badge{left:-.125rem;right:auto}.fd-button--nested,.fd-button--nested-square{--fdButton_Nested_Size:1.5rem;--fdButton_Nested_Icon_Size:.75rem;--fdButton_Nested_Click_Area:2rem;--fdButton_Nested_Color:var(--sapContent_IconColor);--fdButton_Nested_Background:var(--sapButton_Lite_Background);--fdButton_Nested_Border_Color:var(--fdButton_ToolHeader_Border_Color_Normal);--fdButton_Nested_Border_Radius:1rem;background:var(--fdButton_Nested_Background);border:var(--sapButton_BorderWidth) solid var(--fdButton_Nested_Border_Color);border-radius:var(--fdButton_Nested_Border_Radius);color:var(--fdButton_Nested_Color);height:var(--fdButton_Nested_Size);max-height:var(--fdButton_Nested_Size);max-width:var(--fdButton_Nested_Size);min-height:var(--fdButton_Nested_Size);min-width:var(--fdButton_Nested_Size);padding:0;width:var(--fdButton_Nested_Size)}.fd-button--nested [class*=sap-icon],.fd-button--nested-square [class*=sap-icon],.fd-button--nested-square[class*=sap-icon],.fd-button--nested[class*=sap-icon]{color:inherit;font-size:var(--fdButton_Nested_Icon_Size)}.fd-button--nested-square:before,.fd-button--nested:before{height:var(--fdButton_Nested_Click_Area);inset:auto;max-height:var(--fdButton_Nested_Click_Area);max-width:var(--fdButton_Nested_Click_Area);min-height:var(--fdButton_Nested_Click_Area);min-width:var(--fdButton_Nested_Click_Area);width:var(--fdButton_Nested_Click_Area)}.fd-button--nested-square.is-hover,.fd-button--nested-square:hover,.fd-button--nested.is-hover,.fd-button--nested:hover{--fdButton_Nested_Background:var(--sapButton_Lite_Hover_Background);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Hover);--fdButton_Hover_Shadow:none}.fd-button--nested-square.is-active,.fd-button--nested-square:active,.fd-button--nested.is-active,.fd-button--nested:active{--fdButton_Nested_Background:var(--fdButton_Nested_Background_Active);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Active);--fdButton_Nested_Color:var(--fdButton_Nested_Color_Active);outline:none}.fd-button--nested-square.is-active.is-focus,.fd-button--nested-square.is-active:focus,.fd-button--nested-square:active.is-focus,.fd-button--nested-square:active:focus,.fd-button--nested.is-active.is-focus,.fd-button--nested.is-active:focus,.fd-button--nested:active.is-focus,.fd-button--nested:active:focus{--fdButton_Nested_Border_Radius:.75rem;--fdButton_Nested_Background:var(--fdButton_Nested_Background_Active);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Active);outline:none;z-index:5}.fd-button--nested-square.is-active.is-focus:after,.fd-button--nested-square.is-active:focus:after,.fd-button--nested-square:active.is-focus:after,.fd-button--nested-square:active:focus:after,.fd-button--nested.is-active.is-focus:after,.fd-button--nested.is-active:focus:after,.fd-button--nested:active.is-focus:after,.fd-button--nested:active:focus:after{border:none}.fd-button--nested-square.is-focus,.fd-button--nested-square:focus,.fd-button--nested.is-focus,.fd-button--nested:focus{--fdButton_Nested_Background:var(--fdButton_Nested_Background_Focus);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Focus);--fdButton_Nested_Border_Radius:var(--fdButton_Nested_Border_Radius_Focus);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);z-index:5}.fd-button--nested-square.is-focus:after,.fd-button--nested-square:focus:after,.fd-button--nested.is-focus:after,.fd-button--nested:focus:after{border:none}.fd-button--nested-square.is-disabled,.fd-button--nested-square:disabled,.fd-button--nested-square[aria-disabled=true],.fd-button--nested.is-disabled,.fd-button--nested:disabled,.fd-button--nested[aria-disabled=true]{--fdButton_Nested_Background:var(--sapButton_Lite_Background);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Disabled);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-button--nested-square[class*=-compact],.fd-button--nested[class*=-compact],[class*=-compact] .fd-button--nested-square:not([class*=-cozy]),[class*=-compact] .fd-button--nested:not([class*=-cozy]){--fdButton_Nested_Size:1.375rem;--fdButton_Nested_Click_Area:1.625rem}.fd-button--nested-square,.fd-button--nested-square.is-active,.fd-button--nested-square:active{--fdButton_Nested_Border_Radius:.1875rem}.fd-button--nested-square.is-active.is-focus,.fd-button--nested-square.is-active:focus,.fd-button--nested-square.is-focus,.fd-button--nested-square:active.is-focus,.fd-button--nested-square:active:focus,.fd-button--nested-square:focus{--fdButton_Nested_Border_Radius:.1875rem;z-index:5}.fd-input{-webkit-box-sizing:border-box;-webkit-box-shadow:var(--sapField_Shadow);-webkit-appearance:none;appearance:none;background:var(--sapField_BackgroundStyle, var(--sapField_BackgroundStyle));background-color:var(--sapField_Background, var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);box-shadow:var(--sapField_Shadow);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--sapElement_Height);line-height:var(--sapContent_LineHeight);margin:0;margin:var(--fdInput_Field_Margin, .25rem 0);min-height:var(--sapElement_Height);min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;padding:var(--fdInput_Field_Padding, 0 .625rem);text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-input:after,.fd-input:before{box-sizing:inherit;font-size:inherit}.fd-input::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input[dir=rtl]::placeholder,[dir=rtl] .fd-input::placeholder{text-indent:.125rem}.fd-input::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::-ms-clear{display:none}.fd-input.is-hover,.fd-input:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--sapField_Hover_BackgroundStyle, var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input.is-focus,.fd-input:focus{-webkit-box-shadow:none;background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));box-shadow:none;outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:5}.fd-input[type=search]::-webkit-search-cancel-button,.fd-input[type=search]::-webkit-search-decoration,.fd-input[type=search]::-webkit-search-results-button,.fd-input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}.fd-input[aria-expanded=false]{z-index:0}.fd-input.is-expanded,.fd-input[aria-expanded=true]{z-index:4}.fd-input[class*=-compact],.fd-input[class*=-condensed],[class*=-compact] .fd-input:not([class*=-cozy]),[class*=-condensed] .fd-input:not([class*=-cozy]){box-sizing:border-box;height:var(--sapElement_Compact_Height);margin:var(--fdInput_Field_Compact_Margin, .1875rem 0);min-height:var(--sapElement_Compact_Height);min-width:var(--fdInput_Field_Compact_Min_Width, 2rem);padding:var(--fdInput_Field_Compact_Padding, 0 .5rem)}.fd-input--no-number-spinner{-moz-appearance:textfield}.fd-input--no-number-spinner::-webkit-inner-spin-button,.fd-input--no-number-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fd-input.right-align{text-align:right}.fd-input.is-success{-webkit-box-shadow:var(--sapField_SuccessShadow);background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle);box-shadow:var(--sapField_SuccessShadow)}.fd-input.is-success.is-hover,.fd-input.is-success:hover{-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-input.is-success.is-focus,.fd-input.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-input.is-success.is-focus.is-hover,.fd-input.is-success.is-focus:hover,.fd-input.is-success:focus.is-hover,.fd-input.is-success:focus:hover{box-shadow:none}.fd-input.is-success.is-expanded,.fd-input.is-success[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Success_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-error{-webkit-box-shadow:var(--sapField_InvalidShadow);background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle);box-shadow:var(--sapField_InvalidShadow)}.fd-input.is-error.is-hover,.fd-input.is-error:hover{-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-input.is-error.is-focus,.fd-input.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-input.is-error.is-focus.is-hover,.fd-input.is-error.is-focus:hover,.fd-input.is-error:focus.is-hover,.fd-input.is-error:focus:hover{box-shadow:none}.fd-input.is-error.is-expanded,.fd-input.is-error[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Error_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-warning{-webkit-box-shadow:var(--sapField_WarningShadow);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle);box-shadow:var(--sapField_WarningShadow)}.fd-input.is-warning.is-hover,.fd-input.is-warning:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-warning.is-focus.is-hover,.fd-input.is-warning.is-focus:hover,.fd-input.is-warning:focus.is-hover,.fd-input.is-warning:focus:hover{box-shadow:none}.fd-input.is-warning.is-expanded,.fd-input.is-warning[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-alert.is-hover,.fd-input.is-alert:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-alert.is-focus.is-hover,.fd-input.is-alert.is-focus:hover,.fd-input.is-alert:focus.is-hover,.fd-input.is-alert:focus:hover{box-shadow:none}.fd-input.is-alert.is-expanded,.fd-input.is-alert[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-information{-webkit-box-shadow:var(--sapField_InformationShadow);background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle);box-shadow:var(--sapField_InformationShadow)}.fd-input.is-information.is-hover,.fd-input.is-information:hover{-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-input.is-information.is-focus,.fd-input.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-input.is-information.is-focus.is-hover,.fd-input.is-information.is-focus:hover,.fd-input.is-information:focus.is-hover,.fd-input.is-information:focus:hover{box-shadow:none}.fd-input.is-information.is-expanded,.fd-input.is-information[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Information_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-alert,.fd-input.is-error,.fd-input.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::placeholder,.fd-input.is-error::placeholder,.fd-input.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus,.fd-input.is-error.is-focus,.fd-input.is-error:focus,.fd-input.is-information.is-focus,.fd-input.is-information:focus,.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input.is-disabled,.fd-input:disabled,.fd-input[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input.is-disabled::placeholder,.fd-input:disabled::placeholder,.fd-input[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly,.fd-input[aria-readonly=true],.fd-input[readonly]{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);box-shadow:none}.fd-input.is-readonly::placeholder,.fd-input[aria-readonly=true]::placeholder,.fd-input[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly.is-focus,.fd-input.is-readonly.is-hover,.fd-input.is-readonly:focus,.fd-input.is-readonly:hover,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true].is-hover,.fd-input[aria-readonly=true]:focus,.fd-input[aria-readonly=true]:hover,.fd-input[readonly].is-focus,.fd-input[readonly].is-hover,.fd-input[readonly]:focus,.fd-input[readonly]:hover{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);box-shadow:none}.fd-input.is-readonly.is-focus,.fd-input.is-readonly:focus,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true]:focus,.fd-input[readonly].is-focus,.fd-input[readonly]:focus{z-index:5}/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-input-group{-webkit-box-sizing:border-box;-webkit-box-shadow:var(--sapField_Shadow);-webkit-appearance:none;appearance:none;background:var(--fdInputGroup_Background, var(--sapField_BackgroundStyle));background-color:var(--fdInputGroup_Background_Color, var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);box-shadow:var(--sapField_Shadow);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:auto;line-height:var(--sapContent_LineHeight);margin:0;margin:var(--fdInput_Field_Margin, .25rem 0);min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-input-group:after,.fd-input-group:before{box-sizing:inherit;font-size:inherit}.fd-input-group::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input-group[dir=rtl]::placeholder,[dir=rtl] .fd-input-group::placeholder{text-indent:.125rem}.fd-input-group::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input-group::-ms-clear{display:none}.fd-input-group.is-hover,.fd-input-group:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--fdInputGroup_Hover_Background, var(--sapField_Hover_BackgroundStyle));background-color:var(--fdInputGroup_Hover_Background_Color, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input-group.is-focus,.fd-input-group:focus{-webkit-box-shadow:none;background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));box-shadow:none;outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:5}.fd-input-group.is-success{-webkit-box-shadow:var(--sapField_SuccessShadow);background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle);box-shadow:var(--sapField_SuccessShadow)}.fd-input-group.is-success.is-hover,.fd-input-group.is-success:hover{-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-input-group.is-success.is-focus,.fd-input-group.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color)}.fd-input-group.is-success.is-focus.is-hover,.fd-input-group.is-success.is-focus:hover,.fd-input-group.is-success:focus.is-hover,.fd-input-group.is-success:focus:hover{box-shadow:none}.fd-input-group.is-success.is-expanded,.fd-input-group.is-success[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Success_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input-group.is-error{-webkit-box-shadow:var(--sapField_InvalidShadow);background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle);box-shadow:var(--sapField_InvalidShadow)}.fd-input-group.is-error.is-hover,.fd-input-group.is-error:hover{-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-input-group.is-error.is-focus,.fd-input-group.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color)}.fd-input-group.is-error.is-focus.is-hover,.fd-input-group.is-error.is-focus:hover,.fd-input-group.is-error:focus.is-hover,.fd-input-group.is-error:focus:hover{box-shadow:none}.fd-input-group.is-error.is-expanded,.fd-input-group.is-error[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Error_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input-group.is-warning{-webkit-box-shadow:var(--sapField_WarningShadow);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle);box-shadow:var(--sapField_WarningShadow)}.fd-input-group.is-warning.is-hover,.fd-input-group.is-warning:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input-group.is-warning.is-focus,.fd-input-group.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-input-group.is-warning.is-focus.is-hover,.fd-input-group.is-warning.is-focus:hover,.fd-input-group.is-warning:focus.is-hover,.fd-input-group.is-warning:focus:hover{box-shadow:none}.fd-input-group.is-warning.is-expanded,.fd-input-group.is-warning[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input-group.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input-group.is-alert.is-hover,.fd-input-group.is-alert:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input-group.is-alert.is-focus,.fd-input-group.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-input-group.is-alert.is-focus.is-hover,.fd-input-group.is-alert.is-focus:hover,.fd-input-group.is-alert:focus.is-hover,.fd-input-group.is-alert:focus:hover{box-shadow:none}.fd-input-group.is-alert.is-expanded,.fd-input-group.is-alert[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input-group.is-information{-webkit-box-shadow:var(--sapField_InformationShadow);background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle);box-shadow:var(--sapField_InformationShadow)}.fd-input-group.is-information.is-hover,.fd-input-group.is-information:hover{-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-input-group.is-information.is-focus,.fd-input-group.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color)}.fd-input-group.is-information.is-focus.is-hover,.fd-input-group.is-information.is-focus:hover,.fd-input-group.is-information:focus.is-hover,.fd-input-group.is-information:focus:hover{box-shadow:none}.fd-input-group.is-information.is-expanded,.fd-input-group.is-information[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Information_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input-group.is-alert,.fd-input-group.is-error,.fd-input-group.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input-group.is-alert::placeholder,.fd-input-group.is-error::placeholder,.fd-input-group.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input-group.is-alert.is-focus,.fd-input-group.is-alert:focus,.fd-input-group.is-error.is-focus,.fd-input-group.is-error:focus,.fd-input-group.is-information.is-focus,.fd-input-group.is-information:focus,.fd-input-group.is-warning.is-focus,.fd-input-group.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input-group.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input-group.is-disabled,.fd-input-group:disabled,.fd-input-group[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input-group.is-disabled::placeholder,.fd-input-group:disabled::placeholder,.fd-input-group[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input-group.is-readonly,.fd-input-group[aria-readonly=true],.fd-input-group[readonly]{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);box-shadow:none}.fd-input-group.is-readonly::placeholder,.fd-input-group[aria-readonly=true]::placeholder,.fd-input-group[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input-group.is-readonly.is-hover,.fd-input-group.is-readonly:hover,.fd-input-group[aria-readonly=true].is-hover,.fd-input-group[aria-readonly=true]:hover,.fd-input-group[readonly].is-hover,.fd-input-group[readonly]:hover{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);box-shadow:none}.fd-input-group.is-readonly.is-focus,.fd-input-group.is-readonly:focus,.fd-input-group[aria-readonly=true].is-focus,.fd-input-group[aria-readonly=true]:focus,.fd-input-group[readonly].is-focus,.fd-input-group[readonly]:focus{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);box-shadow:none;z-index:5}.fd-input-group .fd-input-group__button:first-child{border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__button:first-child[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:first-child{border-left:var(--fdInputGroup_ControlButton_SideBorder);border-right-style:none}.fd-input-group .fd-input-group__button:first-child.is-hover,.fd-input-group .fd-input-group__button:first-child:hover{border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button:first-child.is-hover[dir=rtl],.fd-input-group .fd-input-group__button:first-child:hover[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:first-child.is-hover,[dir=rtl] .fd-input-group .fd-input-group__button:first-child:hover{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active);border-right-style:none}.fd-input-group .fd-input-group__button:first-child.is-active,.fd-input-group .fd-input-group__button:first-child:active{border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button:first-child.is-active[dir=rtl],.fd-input-group .fd-input-group__button:first-child:active[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:first-child.is-active,[dir=rtl] .fd-input-group .fd-input-group__button:first-child:active{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active);border-right-style:none}.fd-input-group .fd-input-group__button:not(:first-child){border-left:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__button:not(:first-child)[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:not(:first-child){border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__button:not(:first-child).is-hover,.fd-input-group .fd-input-group__button:not(:first-child):hover{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button:not(:first-child).is-hover[dir=rtl],.fd-input-group .fd-input-group__button:not(:first-child):hover[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:not(:first-child).is-hover,[dir=rtl] .fd-input-group .fd-input-group__button:not(:first-child):hover{border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button:not(:first-child).is-active,.fd-input-group .fd-input-group__button:not(:first-child):active{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button:not(:first-child).is-active[dir=rtl],.fd-input-group .fd-input-group__button:not(:first-child):active[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:not(:first-child).is-active,[dir=rtl] .fd-input-group .fd-input-group__button:not(:first-child):active{border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button{border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button{border-left:var(--fdInputGroup_ControlButton_SideBorder);border-right-style:none}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-hover,.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:hover{border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-hover[dir=rtl],.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:hover[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-hover,[dir=rtl] .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:hover{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active);border-right-style:none}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-active,.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:active{border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-active[dir=rtl],.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:active[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-active,[dir=rtl] .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:active{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active);border-right-style:none}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button{border-left:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button{border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-hover,.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:hover{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-hover[dir=rtl],.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:hover[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-hover,[dir=rtl] .fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:hover{border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-active,.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:active{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-active[dir=rtl],.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:active[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-active,[dir=rtl] .fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:active{border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button{background:var(--fdInput_Group_Button_Background);background-color:var(--fdButtonBackgroundColor);border:none;border-radius:var(--fdInput_Group_Button_Border_Raduis);color:var(--fdInput_Group_Button_Text_Color);overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;z-index:auto!important}.fd-input-group .fd-input-group__button:before{display:none!important}.fd-input-group .fd-input-group__button:after{border-radius:var(--fdInput_Outline_Border_Radius)}.fd-input-group .fd-input-group__button.is-hover,.fd-input-group .fd-input-group__button:hover{--fdInput_Group_Button_Text_Color:var(--fdInput_Group_Button_Hover_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Hover_Background);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-input-group .fd-input-group__button.is-active,.fd-input-group .fd-input-group__button:active{-webkit-box-shadow:var(--fdInput_Group_Button_Box_Shadow);background:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Box_Shadow);color:var(--fdInput_Group_Button_Active_Text_Color)}.fd-input-group.is-success.is-focus,.fd-input-group.is-success:focus{z-index:5}.fd-input-group.is-success.is-focus .fd-input-group__button,.fd-input-group.is-success:focus .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);color:var(--fdInput_Group_Button_Success_Active_Text_Color)}.fd-input-group.is-success.is-focus .fd-input-group__button.is-hover,.fd-input-group.is-success.is-focus .fd-input-group__button:hover,.fd-input-group.is-success:focus .fd-input-group__button.is-hover,.fd-input-group.is-success:focus .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-success.is-expanded .fd-input-group__button,.fd-input-group.is-success[aria-expanded=true] .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);color:var(--fdInput_Group_Button_Success_Active_Text_Color)}.fd-input-group.is-success.is-expanded .fd-input-group__button.is-hover,.fd-input-group.is-success.is-expanded .fd-input-group__button:hover,.fd-input-group.is-success[aria-expanded=true] .fd-input-group__button.is-hover,.fd-input-group.is-success[aria-expanded=true] .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-success .fd-input-group__button.is-active,.fd-input-group.is-success .fd-input-group__button.is-hover,.fd-input-group.is-success .fd-input-group__button:active,.fd-input-group.is-success .fd-input-group__button:hover{box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-input-group.is-success .fd-input-group__button.is-active,.fd-input-group.is-success .fd-input-group__button:active{color:var(--fdInput_Group_Button_Success_Active_Text_Color)}.fd-input-group.is-error.is-focus,.fd-input-group.is-error:focus{z-index:5}.fd-input-group.is-error.is-focus .fd-input-group__button,.fd-input-group.is-error:focus .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);color:var(--fdInput_Group_Button_Error_Active_Text_Color)}.fd-input-group.is-error.is-focus .fd-input-group__button.is-hover,.fd-input-group.is-error.is-focus .fd-input-group__button:hover,.fd-input-group.is-error:focus .fd-input-group__button.is-hover,.fd-input-group.is-error:focus .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-error.is-expanded .fd-input-group__button,.fd-input-group.is-error[aria-expanded=true] .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);color:var(--fdInput_Group_Button_Error_Active_Text_Color)}.fd-input-group.is-error.is-expanded .fd-input-group__button.is-hover,.fd-input-group.is-error.is-expanded .fd-input-group__button:hover,.fd-input-group.is-error[aria-expanded=true] .fd-input-group__button.is-hover,.fd-input-group.is-error[aria-expanded=true] .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-error .fd-input-group__button.is-active,.fd-input-group.is-error .fd-input-group__button.is-hover,.fd-input-group.is-error .fd-input-group__button:active,.fd-input-group.is-error .fd-input-group__button:hover{box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-input-group.is-error .fd-input-group__button.is-active,.fd-input-group.is-error .fd-input-group__button:active{color:var(--fdInput_Group_Button_Error_Active_Text_Color)}.fd-input-group.is-warning.is-focus,.fd-input-group.is-warning:focus{z-index:5}.fd-input-group.is-warning.is-focus .fd-input-group__button,.fd-input-group.is-warning:focus .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-warning.is-focus .fd-input-group__button.is-hover,.fd-input-group.is-warning.is-focus .fd-input-group__button:hover,.fd-input-group.is-warning:focus .fd-input-group__button.is-hover,.fd-input-group.is-warning:focus .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-warning.is-expanded .fd-input-group__button,.fd-input-group.is-warning[aria-expanded=true] .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-warning.is-expanded .fd-input-group__button.is-hover,.fd-input-group.is-warning.is-expanded .fd-input-group__button:hover,.fd-input-group.is-warning[aria-expanded=true] .fd-input-group__button.is-hover,.fd-input-group.is-warning[aria-expanded=true] .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-warning .fd-input-group__button.is-active,.fd-input-group.is-warning .fd-input-group__button.is-hover,.fd-input-group.is-warning .fd-input-group__button:active,.fd-input-group.is-warning .fd-input-group__button:hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-input-group.is-warning .fd-input-group__button.is-active,.fd-input-group.is-warning .fd-input-group__button:active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-alert.is-focus,.fd-input-group.is-alert:focus{z-index:5}.fd-input-group.is-alert.is-focus .fd-input-group__button,.fd-input-group.is-alert:focus .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-alert.is-focus .fd-input-group__button.is-hover,.fd-input-group.is-alert.is-focus .fd-input-group__button:hover,.fd-input-group.is-alert:focus .fd-input-group__button.is-hover,.fd-input-group.is-alert:focus .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-alert.is-expanded .fd-input-group__button,.fd-input-group.is-alert[aria-expanded=true] .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-alert.is-expanded .fd-input-group__button.is-hover,.fd-input-group.is-alert.is-expanded .fd-input-group__button:hover,.fd-input-group.is-alert[aria-expanded=true] .fd-input-group__button.is-hover,.fd-input-group.is-alert[aria-expanded=true] .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-alert .fd-input-group__button.is-active,.fd-input-group.is-alert .fd-input-group__button.is-hover,.fd-input-group.is-alert .fd-input-group__button:active,.fd-input-group.is-alert .fd-input-group__button:hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-input-group.is-alert .fd-input-group__button.is-active,.fd-input-group.is-alert .fd-input-group__button:active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-information.is-focus,.fd-input-group.is-information:focus{z-index:5}.fd-input-group.is-information.is-focus .fd-input-group__button,.fd-input-group.is-information:focus .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);color:var(--fdInput_Group_Button_Information_Active_Text_Color)}.fd-input-group.is-information.is-focus .fd-input-group__button.is-hover,.fd-input-group.is-information.is-focus .fd-input-group__button:hover,.fd-input-group.is-information:focus .fd-input-group__button.is-hover,.fd-input-group.is-information:focus .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-information.is-expanded .fd-input-group__button,.fd-input-group.is-information[aria-expanded=true] .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);color:var(--fdInput_Group_Button_Information_Active_Text_Color)}.fd-input-group.is-information.is-expanded .fd-input-group__button.is-hover,.fd-input-group.is-information.is-expanded .fd-input-group__button:hover,.fd-input-group.is-information[aria-expanded=true] .fd-input-group__button.is-hover,.fd-input-group.is-information[aria-expanded=true] .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-information .fd-input-group__button.is-active,.fd-input-group.is-information .fd-input-group__button.is-hover,.fd-input-group.is-information .fd-input-group__button:active,.fd-input-group.is-information .fd-input-group__button:hover{box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-input-group.is-information .fd-input-group__button.is-active,.fd-input-group.is-information .fd-input-group__button:active{color:var(--fdInput_Group_Button_Information_Active_Text_Color)}.fd-input-group .fd-input-group__input{-webkit-box-flex:1;-ms-flex:1 1 10rem;-webkit-box-shadow:none;background:none;background-color:var(--fdInputGroup_Input_Background, transparent);border:var(--fdInputGroup_Input_Border, none);box-shadow:none;color:var(--fdInputGroup_Input_Color, inherit);flex:1 1 10rem;padding-left:.25rem;padding-right:.25rem;text-shadow:var(--fdInputGroup_Text_Shadow)}.fd-input-group .fd-input-group__input:nth-child(n+1){margin:0}.fd-input-group .fd-input-group__input::placeholder{color:var(--fdInputGroup_Input_Placeholder_Color, var(--sapField_PlaceholderTextColor));font-style:var(--fdInputGroup_Input_Placeholder_Style, italic)}.fd-input-group .fd-input-group__input.is-hover,.fd-input-group .fd-input-group__input:hover{-webkit-box-shadow:none;background:none;background-color:var(--fdInputGroup_Hover_Input_Background, transparent);box-shadow:none}.fd-input-group .fd-input-group__input.is-focus,.fd-input-group .fd-input-group__input:focus{-webkit-box-shadow:none;background:var(--fdInputGroup_Input_Background, none);border-radius:0;box-shadow:none;outline:none;z-index:5}.fd-input-group .fd-input-group__input:first-child{padding-left:.625rem}.fd-input-group .fd-input-group__input:first-child[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__input:first-child{padding-left:0;padding-right:.625rem}.fd-input-group .fd-input-group__input:last-child{padding-right:.625rem}.fd-input-group .fd-input-group__input:last-child[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__input:last-child{padding-left:.625rem;padding-right:.25rem}.fd-input-group--inline{display:inline-flex;vertical-align:bottom;width:auto}.fd-input-group__addon{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:var(--fdInputGroup_Addon_Background, none);border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_NonInteractiveIconColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontLargeSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-height:var(--fdInput_Group_Addon_Height, 2.25rem);min-width:var(--fdInput_Group_Addon_Width, 2.25rem);overflow:hidden;padding:0 .625rem;text-overflow:ellipsis;white-space:nowrap}.fd-input-group__addon:after,.fd-input-group__addon:before{box-sizing:inherit;font-size:inherit}.fd-input-group__addon span[class*=sap-icon--]:before{font-size:var(--sapFontLargeSize)}.fd-input-group__addon--readonly{opacity:.4}.fd-input-group__addon--button{overflow:visible;padding:0}.fd-input-group--control[aria-expanded=true]{margin-bottom:0}.fd-input-group[class*=-compact],.fd-input-group[class*=-condensed],[class*=-compact] .fd-input-group:not([class*=-cozy]),[class*=-condensed] .fd-input-group:not([class*=-cozy]){--fdInput_Field_Margin:.1875rem 0;--fdInput_Field_Compact_Margin:0;--fdInput_Group_Addon_Width:2rem;--fdInput_Group_Addon_Height:1.625rem}.fd-input-group .fd-textarea{resize:vertical}.fd-input-group .is-disabled,.fd-input-group :disabled,.fd-input-group [aria-disabled=true]{opacity:1}.fd-input-group.is-readonly,.fd-input-group[readonly]{overflow:visible}.fd-input-group .fd-tokenizer,.fd-input-group .fd-tokenizer.is-focus,.fd-input-group .fd-tokenizer.is-hover,.fd-input-group .fd-tokenizer:focus,.fd-input-group .fd-tokenizer:hover{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none}.fd-input-group .fd-tokenizer.is-focus,.fd-input-group .fd-tokenizer:focus{outline:none;z-index:5}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.fdp-search-field input[type=text]::-ms-clear{display:none;width:0;height:0}.fdp-search-field input[type=text]::-ms-reveal{display:none;width:0;height:0}.fdp-search-field input[type=search]::-webkit-search-decoration,.fdp-search-field input[type=search]::-webkit-search-cancel-button,.fdp-search-field input[type=search]::-webkit-search-results-button,.fdp-search-field input[type=search]::-webkit-search-results-decoration{display:none}.fdp-search-field .fdp-search-field__input:hover{background:transparent}.fdp-search-field__suggestion-dropdown .fd-menu--overflow{top:0;max-width:none;min-height:10rem;max-height:100%;position:absolute;background-color:var(--sapList_Background)}.fdp-search-field__suggestion-dropdown .fd-menu__list,.fdp-search-field__suggestion-dropdown .fd-menu__item{max-width:none}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => MenuTriggerDirective), selector: "[fdpMenuTriggerFor]", inputs: ["fdpMenuTriggerFor"] }, { kind: "component", type: i0.forwardRef(() => MenuComponent), selector: "fdp-menu", inputs: ["id", "openByArrowKeys", "xPosition"], outputs: ["close"] }, { kind: "component", type: i0.forwardRef(() => MenuItemComponent), selector: "fdp-menu-item", inputs: ["disabled", "cascadeDirection"], outputs: ["itemSelect"] }, { kind: "component", type: i0.forwardRef(() => SelectComponent), selector: "fd-select", inputs: ["extendedBodyTemplate", "scrollStrategy", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "tabOutStrategy", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i0.forwardRef(() => OptionComponent), selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: i0.forwardRef(() => FormsModule) }, { kind: "directive", type: i0.forwardRef(() => i5.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i5.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i5.NgModel), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i0.forwardRef(() => IconComponent), selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => SearchFieldSuggestionDirective), selector: "[fdpSearchFieldSuggestion]" }, { kind: "pipe", type: i0.forwardRef(() => AsyncPipe), name: "async" }, { kind: "pipe", type: i0.forwardRef(() => SearchHighlightPipe), name: "highlight" }, { kind: "pipe", type: i0.forwardRef(() => FdTranslatePipe), name: "fdTranslate" }, { kind: "pipe", type: i0.forwardRef(() => SuggestionMatchesPipe), name: "suggestionMatches" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
477
+ ], viewQueries: [{ propertyName: "categoryDropdown", first: true, predicate: ["categoryDropdown"], descendants: true }, { propertyName: "inputGroup", first: true, predicate: ["inputGroup"], descendants: true }, { propertyName: "inputField", first: true, predicate: ["inputField"], descendants: true }, { propertyName: "inputFieldTemplate", first: true, predicate: ["inputFieldTemplate"], descendants: true }, { propertyName: "suggestionMenuTemplate", first: true, predicate: ["suggestionMenuTemplate"], descendants: true }, { propertyName: "suggestionItems", predicate: SearchFieldSuggestionDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : inputFieldTemplate\"></ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"inputFieldTemplate\"></ng-template>\n</ng-template>\n<ng-template #searchCategoryMenu>\n <button\n class=\"fdp-search-field__category-button fd-input-group__button fd-button fd-button--menu {{\n appearance?.categoryButtonClass\n }}\"\n [fdpMenuTriggerFor]=\"categoryMenu\"\n >\n @if (!hideCategoryLabel) {\n <span class=\"fdp-search-field__category-label\">\n {{ _currentCategory?.label || categoryLabel }}\n </span>\n }\n </button>\n <fdp-menu #categoryMenu>\n @for (category of categories; track category) {\n <fdp-menu-item (itemSelect)=\"setCurrentCategory(category)\">{{ category.label }} </fdp-menu-item>\n }\n </fdp-menu>\n</ng-template>\n<ng-template #searchCategorySelect>\n <fd-select\n [placeholder]=\"categoryLabel\"\n [selectControlClass]=\"appearance?.categoryButtonClass\"\n [selectDropdownButtonClass]=\"appearance?.categoryDropdownButtonClass\"\n (valueChange)=\"setCurrentCategory($event)\"\n >\n @for (category of categories; track category) {\n <li fd-option [value]=\"category\">{{ category.label }}</li>\n }\n </fd-select>\n</ng-template>\n<ng-template #inputFieldTemplate>\n <div\n class=\"fdp-search-field\"\n [class.with-categories]=\"_showCategoryDropdown\"\n [class.is-loading]=\"isLoading\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n [class.hide-category-label]=\"hideCategoryLabel\"\n >\n <div\n #inputGroup\n class=\"fdp-search-field__input-group fd-input-group {{ appearance?.searchClass }}\"\n [class.is-focus]=\"isFocused\"\n >\n @if (_showCategoryDropdown) {\n <span class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.searchCategoryClass }}\">\n <ng-template\n [ngTemplateOutlet]=\"categoryMode === 'select' ? searchCategorySelect : searchCategoryMenu\"\n ></ng-template>\n </span>\n }\n <input\n #inputField\n type=\"search\"\n [attr.placeholder]=\"placeholder\"\n class=\"fdp-search-field__input fd-input fd-input-group__input {{ appearance?.searchFieldClass }}\"\n [attr.id]=\"_inputId\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.aria-label]=\"ariaLabel || ('platformSearchField.searchInputLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-controls]=\"_menuId\"\n [attr.aria-expanded]=\"\n (_dropdownValues$ | async)?.length !== 0 ? (_showDropdown ? 'true' : 'false') : null\n \"\n [attr.aria-haspopup]=\"(_dropdownValues$ | async)?.length !== 0\"\n autocomplete=\"off\"\n (keydown)=\"onKeydown($event)\"\n (keydown.enter)=\"onSearchSubmit($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onValueChange($event)\"\n (click)=\"mobile && openMobileMode()\"\n />\n @if (inputText && inputText.length > 0) {\n <span class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }}\">\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.clearButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__clear fd-button fd-button--transparent {{ appearance?.buttonClass }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_clearId\"\n (click)=\"clearTextInput()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n @if (forceSearchButton || isLoading || (!isLoading && !_isSearchDone)) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n >\n @if (!disableSearch) {\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.submitButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__submit fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.id]=\"_submitId\"\n [attr.disabled]=\"disabled ? '' : null\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"search\"></fd-icon>\n </button>\n }\n </span>\n }\n @if (!disableRefresh && !isLoading && (_isRefresh || _isSearchDone)) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n >\n <button\n [attr.aria-label]=\"'platformSearchField.synchronizeButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__loading fd-input-group__button fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_refreshId\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"synchronize\"></fd-icon>\n </button>\n </span>\n }\n @if (appearance?.helperClass) {\n <div [ngClass]=\"appearance?.helperClass\"></div>\n }\n </div>\n </div>\n</ng-template>\n<ng-template #suggestionMenuTemplate>\n @if (_dropdownValues$ | async | suggestionMatches: inputText : mobile; as suggestions) {\n @if (suggestions?.length) {\n <div class=\"fdp-search-field__suggestion-dropdown\" [attr.dir]=\"_dir\">\n <nav\n class=\"fd-menu\"\n tabindex=\"-1\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\n [class.fd-menu--mobile]=\"mobile\"\n [class.fd-menu--overflow]=\"!mobile\"\n [attr.id]=\"_menuId\"\n #menu\n (keydown)=\"onKeydown($event)\"\n >\n <ul class=\"fd-menu__list\" role=\"menu\">\n @for (value of suggestions; track value) {\n <li\n fdpSearchFieldSuggestion\n class=\"fdp-search-field__suggestion-item fd-menu__item fd-menu__link\"\n (keydown.enter)=\"onItemClick(value); $event.preventDefault()\"\n (keydown.tab)=\"onItemClick(value)\"\n (keyup.space)=\"onItemClick(value); $event.stopPropagation()\"\n (click)=\"onItemClick(value)\"\n [innerHTML]=\"value | highlight: inputText : true : true\"\n role=\"menuitem\"\n ></li>\n }\n </ul>\n </nav>\n </div>\n }\n }\n</ng-template>\n", styles: [".fd-button{--fdButton_Clickable_Height:2.75rem;--fdButton_Padding_X:.625rem;--fdButton_Min_Width:2.25rem;-webkit-box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-box-align:center;-ms-flex-align:center;--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Background));align-items:center;appearance:none;background-color:transparent;background-color:var(--fdButtonBackgroundColor);background-image:none;border:0;border-color:var(--fdButtonBorderColor);border-radius:var(--sapButton_BorderCornerRadius);border-style:solid;border-width:var(--sapButton_BorderWidth);box-sizing:border-box;color:var(--sapTextColor);color:var(--fdButtonColor);cursor:pointer;display:inline-block;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdButton_Height);justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;max-height:var(--fdButton_Height);min-width:var(--fdButton_Min_Width);outline:0;padding:0;padding-left:calc(var(--fdButton_Padding_X) - var(--sapButton_BorderWidth));padding-right:calc(var(--fdButton_Padding_X) - var(--sapButton_BorderWidth));position:relative;text-align:center;text-decoration:none;text-shadow:var(--fdButton_Text_Shadow);user-select:none;vertical-align:middle;white-space:nowrap}.fd-button:after,.fd-button:before{box-sizing:inherit;font-size:inherit}.fd-button::-moz-focus-inner{border:0}.fd-button:before{bottom:calc((var(--fdButton_Clickable_Height) - var(--fdButton_Height)) * -.5);content:\"\";display:block;height:auto;left:0;position:absolute;right:0;top:calc((var(--fdButton_Clickable_Height) - var(--fdButton_Height)) * -.5);width:100%}.fd-button__text{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:inherit;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:inherit;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.fd-button__text:after,.fd-button__text:before{box-sizing:inherit;font-size:inherit}.fd-button,.fd-button__text{font-family:var(--fdButton_Font_Family)}.fd-button :not(:first-child):not(.fd-button__badge){margin-left:.375rem}.fd-button :not(:first-child):not(.fd-button__badge)[dir=rtl],[dir=rtl] .fd-button :not(:first-child):not(.fd-button__badge){margin-left:0;margin-right:.375rem}.fd-button>[class*=sap-icon]{color:inherit;font-size:1rem;font-style:normal;height:1rem;line-height:1rem;min-width:1rem;vertical-align:text-bottom;width:1rem}.fd-button>[class*=sap-icon]:after,.fd-button>[class*=sap-icon]:before{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.fd-button__badge{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background-color:var(--sapContent_BadgeBackground);border:0;border:.0625rem solid var(--fdButton_Badge_Border_Color);border-radius:.5rem;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_BadgeTextColor);display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontSmallSize);font-weight:400;forced-color-adjust:none;height:1rem;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;margin-left:var(--fdButton_Badge_Margin_Left, 0);padding:0 .3125rem;position:var(--fdButton_Badge_Position, absolute);right:-.25rem;top:-.25rem;z-index:1}.fd-button__badge:after,.fd-button__badge:before{box-sizing:inherit;font-size:inherit}.fd-button__badge[dir=rtl],[dir=rtl] .fd-button__badge{left:-.25rem;margin-left:0;margin-right:var(--fdButton_Badge_Margin_Left, 0);right:auto}.fd-button[class*=-compact],.fd-button[class*=-condensed],[class*=-compact] .fd-button:not([class*=-cozy]),[class*=-condensed] .fd-button:not([class*=-cozy]){--fdButton_Height:var(--fdButton_Compact_Height);--fdButton_Clickable_Height:2rem;--fdButton_Padding_X:.5rem;--fdButton_Min_Width:2rem;--fdButton_Badge_Position:static;--fdButton_Badge_Margin_Left:.25rem}.fd-button--menu{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-button--menu-fixed-width{justify-content:space-between}.fd-button--menu .fd-button__text{line-height:1rem}.fd-button--full-width{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;display:flex;justify-content:center;min-width:100%;width:100%}.fd-button--text-alignment-left{justify-content:flex-start;text-align:left}.fd-button--text-alignment-right{justify-content:flex-end;text-align:right}.fd-button--decisive{min-width:4rem}.fd-button__instructions{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fd-button.is-focus,.fd-button:focus{box-shadow:none;outline:none;z-index:5}.fd-button.is-focus:after,.fd-button:focus:after{border:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--sapContent_FocusColor);border-radius:var(--fdButton_Focus_Border_Radius);bottom:var(--fdButton_Outline_Offset);content:\"\";display:block;left:var(--fdButton_Outline_Offset);position:absolute;right:var(--fdButton_Outline_Offset);top:var(--fdButton_Outline_Offset)}.fd-button.is-focus.fd-button--toggled:after,.fd-button.is-focus.is-selected:after,.fd-button:focus.fd-button--toggled:after,.fd-button:focus.is-selected:after{border-color:var(--fdButton_Outline_Contrast)}.fd-button.is-active,.fd-button.is-selected,.fd-button:active,.fd-button[aria-selected=true]{box-shadow:none;outline:none}.fd-button.is-disabled,.fd-button:disabled,.fd-button[aria-disabled=true]{box-shadow:none;cursor:not-allowed;opacity:var(--sapContent_DisabledOpacity)}.fd-button.is-selected,.fd-button[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button.is-hover,.fd-button:hover{--fdButtonColor:var(--sapButton_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Hover_Background))}.fd-button.is-active,.fd-button:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button.is-active .fd-button__icon,.fd-button:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button.is-disabled,.fd-button:disabled,.fd-button[aria-disabled=true]{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Background))}.fd-button.is-disabled.is-selected,.fd-button.is-disabled[aria-selected=true],.fd-button:disabled.is-selected,.fd-button:disabled[aria-selected=true],.fd-button[aria-disabled=true].is-selected,.fd-button[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button.fd-button--toggled.is-hover,.fd-button.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button.fd-button--toggled.is-active,.fd-button.fd-button--toggled.is-selected,.fd-button.fd-button--toggled:active,.fd-button.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button.fd-button--toggled.is-active .fd-button__icon,.fd-button.fd-button--toggled.is-selected .fd-button__icon,.fd-button.fd-button--toggled:active .fd-button__icon,.fd-button.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button.fd-button--toggled.is-disabled,.fd-button.fd-button--toggled:disabled,.fd-button.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--emphasized{--fdButtonColor:var(--sapButton_Emphasized_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Emphasized_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Emphasized_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);border-width:var(--fdButton_Emphasized_Border_Width);color:var(--fdButtonColor);font-weight:var(--sapButton_Emphasized_FontWeight)}.fd-button--emphasized.is-selected,.fd-button--emphasized[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--emphasized.is-hover,.fd-button--emphasized:hover{--fdButtonColor:var(--sapButton_Emphasized_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Emphasized_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Emphasized_Hover_Background))}.fd-button--emphasized.is-active,.fd-button--emphasized:active{--fdButtonColor:var(--sapButton_Emphasized_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Emphasized_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Emphasized_Active_Background));--fdElementTextColor:var(--sapButton_Emphasized_Active_TextColor);--fdElementIconColor:var(--sapButton_Emphasized_Active_TextColor)}.fd-button--emphasized.is-active .fd-button__icon,.fd-button--emphasized:active .fd-button__icon{color:var(--sapButton_Emphasized_Active_TextColor);text-shadow:none}.fd-button--emphasized.is-disabled,.fd-button--emphasized:disabled,.fd-button--emphasized[aria-disabled=true]{--fdButtonColor:var(--sapButton_Emphasized_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Emphasized_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Emphasized_Background))}.fd-button--emphasized.is-disabled.is-selected,.fd-button--emphasized.is-disabled[aria-selected=true],.fd-button--emphasized:disabled.is-selected,.fd-button--emphasized:disabled[aria-selected=true],.fd-button--emphasized[aria-disabled=true].is-selected,.fd-button--emphasized[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--emphasized.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--emphasized.fd-button--toggled.is-hover,.fd-button--emphasized.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--emphasized.fd-button--toggled.is-active,.fd-button--emphasized.fd-button--toggled.is-selected,.fd-button--emphasized.fd-button--toggled:active,.fd-button--emphasized.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--emphasized.fd-button--toggled.is-active .fd-button__icon,.fd-button--emphasized.fd-button--toggled.is-selected .fd-button__icon,.fd-button--emphasized.fd-button--toggled:active .fd-button__icon,.fd-button--emphasized.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Emphasized_Active_TextColor);text-shadow:none}.fd-button--emphasized.fd-button--toggled.is-disabled,.fd-button--emphasized.fd-button--toggled:disabled,.fd-button--emphasized.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--emphasized.is-focus,.fd-button--emphasized:focus{z-index:5}.fd-button--emphasized.is-focus:after,.fd-button--emphasized:focus:after{border-color:var(--sapContent_ContrastFocusColor)}.fd-button--emphasized.is-focus.is-active:after,.fd-button--emphasized.is-focus:active:after,.fd-button--emphasized:focus.is-active:after,.fd-button--emphasized:focus:active:after{border-color:var(--sapContent_FocusColor)}.fd-button--emphasized[class*=-compact].is-focus,.fd-button--emphasized[class*=-compact]:focus,.fd-button--emphasized[class*=-condensed].is-focus,.fd-button--emphasized[class*=-condensed]:focus,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus{z-index:5}.fd-button--emphasized[class*=-compact].is-focus.is-active:after,.fd-button--emphasized[class*=-compact].is-focus:active:after,.fd-button--emphasized[class*=-compact]:focus.is-active:after,.fd-button--emphasized[class*=-compact]:focus:active:after,.fd-button--emphasized[class*=-condensed].is-focus.is-active:after,.fd-button--emphasized[class*=-condensed].is-focus:active:after,.fd-button--emphasized[class*=-condensed]:focus.is-active:after,.fd-button--emphasized[class*=-condensed]:focus:active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus.is-active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]).is-focus:active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus.is-active:after,[class*=-compact] .fd-button--emphasized:not([class*=-cozy]):focus:active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus.is-active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]).is-focus:active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus.is-active:after,[class*=-condensed] .fd-button--emphasized:not([class*=-cozy]):focus:active:after{border-color:transparent}.fd-button--emphasized.is-active,.fd-button--emphasized.is-selected,.fd-button--emphasized:active,.fd-button--emphasized[aria-selected=true]{outline:none}.fd-button--emphasized.fd-button--toggled.is-focus,.fd-button--emphasized.fd-button--toggled:focus{outline-color:var(--fdButton_Emphasized_Active_Outline);z-index:5}.fd-button--emphasized.fd-button--toggled.is-active,.fd-button--emphasized.fd-button--toggled.is-selected,.fd-button--emphasized.fd-button--toggled:active,.fd-button--emphasized.fd-button--toggled[aria-selected=true]{outline:none}.fd-button--attention{--fdButtonColor:var(--sapButton_Attention_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--attention.is-selected,.fd-button--attention[aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background))}.fd-button--attention.is-hover,.fd-button--attention:hover{--fdButtonColor:var(--sapButton_Attention_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Attention_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Attention_Hover_Background))}.fd-button--attention.is-active,.fd-button--attention:active{--fdButtonColor:var(--sapButton_Attention_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Attention_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Attention_Active_Background));--fdElementTextColor:var(--sapButton_Attention_Active_TextColor);--fdElementIconColor:var(--sapButton_Attention_Active_TextColor)}.fd-button--attention.is-active .fd-button__icon,.fd-button--attention:active .fd-button__icon{color:var(--sapButton_Attention_Active_TextColor);text-shadow:none}.fd-button--attention.is-disabled,.fd-button--attention:disabled,.fd-button--attention[aria-disabled=true]{--fdButtonColor:var(--sapButton_Attention_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Background))}.fd-button--attention.is-disabled.is-selected,.fd-button--attention.is-disabled[aria-selected=true],.fd-button--attention:disabled.is-selected,.fd-button--attention:disabled[aria-selected=true],.fd-button--attention[aria-disabled=true].is-selected,.fd-button--attention[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background))}.fd-button--attention.fd-button--toggled{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Attention_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Background))}.fd-button--attention.fd-button--toggled.is-hover,.fd-button--attention.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Attention_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Hover_Background))}.fd-button--attention.fd-button--toggled.is-active,.fd-button--attention.fd-button--toggled.is-selected,.fd-button--attention.fd-button--toggled:active,.fd-button--attention.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Attention_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Attention_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Attention_Selected_Hover_Background))}.fd-button--attention.fd-button--toggled.is-active .fd-button__icon,.fd-button--attention.fd-button--toggled.is-selected .fd-button__icon,.fd-button--attention.fd-button--toggled:active .fd-button__icon,.fd-button--attention.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Attention_Active_TextColor);text-shadow:none}.fd-button--attention.fd-button--toggled.is-disabled,.fd-button--attention.fd-button--toggled:disabled,.fd-button--attention.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--negative{--fdButtonColor:var(--sapButton_Reject_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--negative.is-selected,.fd-button--negative[aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background))}.fd-button--negative.is-hover,.fd-button--negative:hover{--fdButtonColor:var(--sapButton_Reject_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Reject_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Reject_Hover_Background))}.fd-button--negative.is-active,.fd-button--negative:active{--fdButtonColor:var(--sapButton_Reject_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Reject_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Reject_Active_Background));--fdElementTextColor:var(--sapButton_Reject_Active_TextColor);--fdElementIconColor:var(--sapButton_Reject_Active_TextColor)}.fd-button--negative.is-active .fd-button__icon,.fd-button--negative:active .fd-button__icon{color:var(--sapButton_Reject_Active_TextColor);text-shadow:none}.fd-button--negative.is-disabled,.fd-button--negative:disabled,.fd-button--negative[aria-disabled=true]{--fdButtonColor:var(--sapButton_Reject_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Background))}.fd-button--negative.is-disabled.is-selected,.fd-button--negative.is-disabled[aria-selected=true],.fd-button--negative:disabled.is-selected,.fd-button--negative:disabled[aria-selected=true],.fd-button--negative[aria-disabled=true].is-selected,.fd-button--negative[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background))}.fd-button--negative.fd-button--toggled{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Reject_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Background))}.fd-button--negative.fd-button--toggled.is-hover,.fd-button--negative.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Reject_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Hover_Background))}.fd-button--negative.fd-button--toggled.is-active,.fd-button--negative.fd-button--toggled.is-selected,.fd-button--negative.fd-button--toggled:active,.fd-button--negative.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Reject_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Reject_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Reject_Selected_Hover_Background))}.fd-button--negative.fd-button--toggled.is-active .fd-button__icon,.fd-button--negative.fd-button--toggled.is-selected .fd-button__icon,.fd-button--negative.fd-button--toggled:active .fd-button__icon,.fd-button--negative.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Reject_Active_TextColor);text-shadow:none}.fd-button--negative.fd-button--toggled.is-disabled,.fd-button--negative.fd-button--toggled:disabled,.fd-button--negative.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--positive{--fdButtonColor:var(--sapButton_Accept_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--positive.is-selected,.fd-button--positive[aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background))}.fd-button--positive.is-hover,.fd-button--positive:hover{--fdButtonColor:var(--sapButton_Accept_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Accept_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Accept_Hover_Background))}.fd-button--positive.is-active,.fd-button--positive:active{--fdButtonColor:var(--sapButton_Accept_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Accept_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Accept_Active_Background));--fdElementTextColor:var(--sapButton_Accept_Active_TextColor);--fdElementIconColor:var(--sapButton_Accept_Active_TextColor)}.fd-button--positive.is-active .fd-button__icon,.fd-button--positive:active .fd-button__icon{color:var(--sapButton_Accept_Active_TextColor);text-shadow:none}.fd-button--positive.is-disabled,.fd-button--positive:disabled,.fd-button--positive[aria-disabled=true]{--fdButtonColor:var(--sapButton_Accept_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Background))}.fd-button--positive.is-disabled.is-selected,.fd-button--positive.is-disabled[aria-selected=true],.fd-button--positive:disabled.is-selected,.fd-button--positive:disabled[aria-selected=true],.fd-button--positive[aria-disabled=true].is-selected,.fd-button--positive[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background))}.fd-button--positive.fd-button--toggled{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Accept_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Background))}.fd-button--positive.fd-button--toggled.is-hover,.fd-button--positive.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Accept_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Hover_Background))}.fd-button--positive.fd-button--toggled.is-active,.fd-button--positive.fd-button--toggled.is-selected,.fd-button--positive.fd-button--toggled:active,.fd-button--positive.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Accept_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Accept_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Accept_Selected_Hover_Background))}.fd-button--positive.fd-button--toggled.is-active .fd-button__icon,.fd-button--positive.fd-button--toggled.is-selected .fd-button__icon,.fd-button--positive.fd-button--toggled:active .fd-button__icon,.fd-button--positive.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Accept_Active_TextColor);text-shadow:none}.fd-button--positive.fd-button--toggled.is-disabled,.fd-button--positive.fd-button--toggled:disabled,.fd-button--positive.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--transparent{--fdButtonColor:var(--sapButton_Lite_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Lite_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Lite_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--transparent.is-selected,.fd-button--transparent[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--transparent.is-hover,.fd-button--transparent:hover{--fdButtonColor:var(--sapButton_Lite_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Lite_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Lite_Hover_Background))}.fd-button--transparent.is-active,.fd-button--transparent:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Lite_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Lite_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button--transparent.is-active .fd-button__icon,.fd-button--transparent:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--transparent.is-disabled,.fd-button--transparent:disabled,.fd-button--transparent[aria-disabled=true]{--fdButtonColor:var(--sapButton_Lite_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Lite_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Lite_Background))}.fd-button--transparent.is-disabled.is-selected,.fd-button--transparent.is-disabled[aria-selected=true],.fd-button--transparent:disabled.is-selected,.fd-button--transparent:disabled[aria-selected=true],.fd-button--transparent[aria-disabled=true].is-selected,.fd-button--transparent[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--transparent.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--transparent.fd-button--toggled.is-hover,.fd-button--transparent.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--transparent.fd-button--toggled.is-active,.fd-button--transparent.fd-button--toggled.is-selected,.fd-button--transparent.fd-button--toggled:active,.fd-button--transparent.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--transparent.fd-button--toggled.is-active .fd-button__icon,.fd-button--transparent.fd-button--toggled.is-selected .fd-button__icon,.fd-button--transparent.fd-button--toggled:active .fd-button__icon,.fd-button--transparent.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--transparent.fd-button--toggled.is-disabled,.fd-button--transparent.fd-button--toggled:disabled,.fd-button--transparent.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--ghost{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--fdButton_Ghost_Background));background-color:var(--fdButtonBackgroundColor);border-color:var(--fdButtonBorderColor);color:var(--fdButtonColor)}.fd-button--ghost.is-selected,.fd-button--ghost[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonSelectedPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonSelectedPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--ghost.is-hover,.fd-button--ghost:hover{--fdButtonColor:var(--sapButton_Hover_TextColor);--fdButtonBorderColor:var(--fdButtonHoverPrioritizedBorderColor,var(--sapButton_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonHoverPrioritizedBackgroundColor,var(--sapButton_Hover_Background))}.fd-button--ghost.is-active,.fd-button--ghost:active{--fdButtonColor:var(--sapButton_Active_TextColor);--fdButtonBorderColor:var(--fdButtonActivePrioritizedBorderColor,var(--sapButton_Active_BorderColor));--fdButtonBackgroundColor:var(--fdButtonActivePrioritizedBackgroundColor,var(--sapButton_Active_Background));--fdElementTextColor:var(--sapButton_Active_TextColor);--fdElementIconColor:var(--sapButton_Active_TextColor)}.fd-button--ghost.is-active .fd-button__icon,.fd-button--ghost:active .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--ghost.is-disabled,.fd-button--ghost:disabled,.fd-button--ghost[aria-disabled=true]{--fdButtonColor:var(--sapButton_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--fdButton_Ghost_Background))}.fd-button--ghost.is-disabled.is-selected,.fd-button--ghost.is-disabled[aria-selected=true],.fd-button--ghost:disabled.is-selected,.fd-button--ghost:disabled[aria-selected=true],.fd-button--ghost[aria-disabled=true].is-selected,.fd-button--ghost[aria-disabled=true][aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--ghost.fd-button--toggled{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledPrioritizedBorderColor,var(--sapButton_Selected_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledPrioritizedBackgroundColor,var(--sapButton_Selected_Background))}.fd-button--ghost.fd-button--toggled.is-hover,.fd-button--ghost.fd-button--toggled:hover{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(--fdButtonToggledActivePrioritizedBorderColor,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonToggledActivePrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--ghost.fd-button--toggled.is-active,.fd-button--ghost.fd-button--toggled.is-selected,.fd-button--ghost.fd-button--toggled:active,.fd-button--ghost.fd-button--toggled[aria-selected=true]{--fdButtonColor:var(--sapButton_Selected_TextColor);--fdButtonBorderColor:var(true,var(--sapButton_Selected_Hover_BorderColor));--fdButtonBackgroundColor:var(--fdButtonPrioritizedBackgroundColor,var(--sapButton_Selected_Hover_Background))}.fd-button--ghost.fd-button--toggled.is-active .fd-button__icon,.fd-button--ghost.fd-button--toggled.is-selected .fd-button__icon,.fd-button--ghost.fd-button--toggled:active .fd-button__icon,.fd-button--ghost.fd-button--toggled[aria-selected=true] .fd-button__icon{color:var(--sapButton_Active_TextColor);text-shadow:none}.fd-button--ghost.fd-button--toggled.is-disabled,.fd-button--ghost.fd-button--toggled:disabled,.fd-button--ghost.fd-button--toggled[aria-disabled=true]{box-shadow:none}.fd-button--tool-header{--fdButton_ToolHeader_Icon_Size:1rem;--fdButton_ToolHeader_Padding:.75rem;--fdButton_ToolHeader_Size:var(--fdButton_ToolHeader_Button_Size);--fdButton_ToolHeader_Background:var(--sapButton_Lite_Background);--fdButton_ToolHeader_Color:var(--fdButton_ToolHeader_Color_Normal);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Normal);--fdButton_ToolHeader_Border_Radius:var(--fdButton_ToolHeader_Button_Border_Radius);background:var(--fdButton_ToolHeader_Background);border:var(--sapButton_BorderWidth) solid var(--fdButton_ToolHeader_Border_Color);border-radius:var(--fdButton_ToolHeader_Border_Radius);color:var(--fdButton_ToolHeader_Color);height:var(--fdButton_ToolHeader_Size);max-height:var(--fdButton_ToolHeader_Size);max-width:var(--fdButton_ToolHeader_Size);min-height:var(--fdButton_ToolHeader_Size);min-width:var(--fdButton_ToolHeader_Size);padding:var(--fdButton_ToolHeader_Padding);width:var(--fdButton_ToolHeader_Size)}.fd-button--tool-header [class*=sap-icon],.fd-button--tool-header[class*=sap-icon]{-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;color:inherit;display:flex;font-size:var(--fdButton_ToolHeader_Icon_Size);height:var(--fdButton_ToolHeader_Icon_Size);justify-content:center;width:var(--fdButton_ToolHeader_Icon_Size)}.fd-button--tool-header.is-hover,.fd-button--tool-header:hover{--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Hover);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Hover);--fdButton_Hover_Shadow:none}.fd-button--tool-header.is-active,.fd-button--tool-header:active{--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Active);--fdButton_ToolHeader_Color:var(--fdButton_ToolHeader_Color_Active);outline:none}.fd-button--tool-header.is-active.is-focus,.fd-button--tool-header.is-active:focus,.fd-button--tool-header:active.is-focus,.fd-button--tool-header:active:focus{--fdButton_ToolHeader_Border_Radius:.375rem;--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Active);outline:none;z-index:5}.fd-button--tool-header.is-active.is-focus:after,.fd-button--tool-header.is-active:focus:after,.fd-button--tool-header:active.is-focus:after,.fd-button--tool-header:active:focus:after{border:none}.fd-button--tool-header.is-focus,.fd-button--tool-header:focus{--fdButton_ToolHeader_Background:var(--fdButton_ToolHeader_Background_Active);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Focus);--fdButton_ToolHeader_Border_Radius:var(--fdButton_ToolHeader_Border_Radius_Focus);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--fdButton_ToolHeader_Outline_Color);z-index:5}.fd-button--tool-header.is-focus:after,.fd-button--tool-header:focus:after{border:none}.fd-button--tool-header.is-disabled,.fd-button--tool-header:disabled,.fd-button--tool-header[aria-disabled=true]{--fdButton_ToolHeader_Background:var(--sapButton_Lite_Background);--fdButton_ToolHeader_Border_Color:var(--fdButton_ToolHeader_Border_Color_Disabled);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-button--tool-header[class*=-compact],[class*=-compact] .fd-button--tool-header:not([class*=-cozy]){--fdButton_ToolHeader_Padding:.5rem;--fdButton_ToolHeader_Size:var(--fdButton_ToolHeader_Button_Size_Compact)}.fd-button--tool-header .fd-button__badge{-webkit-box-sizing:border-box;background:var(--sapContent_BadgeBackground);border:0;border:.0625rem solid var(--fdButton_ToolHeader_Badge_Border_Color);border-radius:100%;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_BadgeBackground);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:.625rem;line-height:var(--sapContent_LineHeight);margin:0;max-height:.625rem;max-width:.625rem;min-height:.625rem;min-width:.625rem;overflow:hidden;padding:0;position:absolute;right:-.125rem;top:-.125rem;width:.625rem}.fd-button--tool-header .fd-button__badge:after,.fd-button--tool-header .fd-button__badge:before{box-sizing:inherit;font-size:inherit}.fd-button--tool-header .fd-button__badge[dir=rtl],[dir=rtl] .fd-button--tool-header .fd-button__badge{left:-.125rem;right:auto}.fd-button--nested,.fd-button--nested-square{--fdButton_Nested_Size:1.5rem;--fdButton_Nested_Icon_Size:.75rem;--fdButton_Nested_Click_Area:2rem;--fdButton_Nested_Color:var(--sapContent_IconColor);--fdButton_Nested_Background:var(--sapButton_Lite_Background);--fdButton_Nested_Border_Color:var(--fdButton_ToolHeader_Border_Color_Normal);--fdButton_Nested_Border_Radius:1rem;background:var(--fdButton_Nested_Background);border:var(--sapButton_BorderWidth) solid var(--fdButton_Nested_Border_Color);border-radius:var(--fdButton_Nested_Border_Radius);color:var(--fdButton_Nested_Color);height:var(--fdButton_Nested_Size);max-height:var(--fdButton_Nested_Size);max-width:var(--fdButton_Nested_Size);min-height:var(--fdButton_Nested_Size);min-width:var(--fdButton_Nested_Size);padding:0;width:var(--fdButton_Nested_Size)}.fd-button--nested [class*=sap-icon],.fd-button--nested-square [class*=sap-icon],.fd-button--nested-square[class*=sap-icon],.fd-button--nested[class*=sap-icon]{color:inherit;font-size:var(--fdButton_Nested_Icon_Size)}.fd-button--nested-square:before,.fd-button--nested:before{height:var(--fdButton_Nested_Click_Area);inset:auto;max-height:var(--fdButton_Nested_Click_Area);max-width:var(--fdButton_Nested_Click_Area);min-height:var(--fdButton_Nested_Click_Area);min-width:var(--fdButton_Nested_Click_Area);width:var(--fdButton_Nested_Click_Area)}.fd-button--nested-square.is-hover,.fd-button--nested-square:hover,.fd-button--nested.is-hover,.fd-button--nested:hover{--fdButton_Nested_Background:var(--sapButton_Lite_Hover_Background);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Hover);--fdButton_Hover_Shadow:none}.fd-button--nested-square.is-active,.fd-button--nested-square:active,.fd-button--nested.is-active,.fd-button--nested:active{--fdButton_Nested_Background:var(--fdButton_Nested_Background_Active);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Active);--fdButton_Nested_Color:var(--fdButton_Nested_Color_Active);outline:none}.fd-button--nested-square.is-active.is-focus,.fd-button--nested-square.is-active:focus,.fd-button--nested-square:active.is-focus,.fd-button--nested-square:active:focus,.fd-button--nested.is-active.is-focus,.fd-button--nested.is-active:focus,.fd-button--nested:active.is-focus,.fd-button--nested:active:focus{--fdButton_Nested_Border_Radius:.75rem;--fdButton_Nested_Background:var(--fdButton_Nested_Background_Active);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Active);outline:none;z-index:5}.fd-button--nested-square.is-active.is-focus:after,.fd-button--nested-square.is-active:focus:after,.fd-button--nested-square:active.is-focus:after,.fd-button--nested-square:active:focus:after,.fd-button--nested.is-active.is-focus:after,.fd-button--nested.is-active:focus:after,.fd-button--nested:active.is-focus:after,.fd-button--nested:active:focus:after{border:none}.fd-button--nested-square.is-focus,.fd-button--nested-square:focus,.fd-button--nested.is-focus,.fd-button--nested:focus{--fdButton_Nested_Background:var(--fdButton_Nested_Background_Focus);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Focus);--fdButton_Nested_Border_Radius:var(--fdButton_Nested_Border_Radius_Focus);outline:var(--sapContent_FocusStyle) var(--sapContent_FocusWidth) var(--sapContent_FocusColor);z-index:5}.fd-button--nested-square.is-focus:after,.fd-button--nested-square:focus:after,.fd-button--nested.is-focus:after,.fd-button--nested:focus:after{border:none}.fd-button--nested-square.is-disabled,.fd-button--nested-square:disabled,.fd-button--nested-square[aria-disabled=true],.fd-button--nested.is-disabled,.fd-button--nested:disabled,.fd-button--nested[aria-disabled=true]{--fdButton_Nested_Background:var(--sapButton_Lite_Background);--fdButton_Nested_Border_Color:var(--fdButton_Nested_Border_Color_Disabled);opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-button--nested-square[class*=-compact],.fd-button--nested[class*=-compact],[class*=-compact] .fd-button--nested-square:not([class*=-cozy]),[class*=-compact] .fd-button--nested:not([class*=-cozy]){--fdButton_Nested_Size:1.375rem;--fdButton_Nested_Click_Area:1.625rem}.fd-button--nested-square,.fd-button--nested-square.is-active,.fd-button--nested-square:active{--fdButton_Nested_Border_Radius:.1875rem}.fd-button--nested-square.is-active.is-focus,.fd-button--nested-square.is-active:focus,.fd-button--nested-square.is-focus,.fd-button--nested-square:active.is-focus,.fd-button--nested-square:active:focus,.fd-button--nested-square:focus{--fdButton_Nested_Border_Radius:.1875rem;z-index:5}.fd-input{-webkit-box-sizing:border-box;-webkit-box-shadow:var(--sapField_Shadow);-webkit-appearance:none;appearance:none;background:var(--sapField_BackgroundStyle, var(--sapField_BackgroundStyle));background-color:var(--sapField_Background, var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);box-shadow:var(--sapField_Shadow);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--sapElement_Height);line-height:var(--sapContent_LineHeight);margin:0;margin:var(--fdInput_Field_Margin, .25rem 0);min-height:var(--sapElement_Height);min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;padding:var(--fdInput_Field_Padding, 0 .625rem);text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-input:after,.fd-input:before{box-sizing:inherit;font-size:inherit}.fd-input::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input[dir=rtl]::placeholder,[dir=rtl] .fd-input::placeholder{text-indent:.125rem}.fd-input::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input::-ms-clear{display:none}.fd-input.is-hover,.fd-input:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--sapField_Hover_BackgroundStyle, var(--sapField_Hover_BackgroundStyle));background-color:var(--sapField_Hover_Background, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input.is-focus,.fd-input:focus{-webkit-box-shadow:none;background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));box-shadow:none;outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:5}.fd-input[type=search]::-webkit-search-cancel-button,.fd-input[type=search]::-webkit-search-decoration,.fd-input[type=search]::-webkit-search-results-button,.fd-input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none}.fd-input[aria-expanded=false]{z-index:0}.fd-input.is-expanded,.fd-input[aria-expanded=true]{z-index:4}.fd-input[class*=-compact],.fd-input[class*=-condensed],[class*=-compact] .fd-input:not([class*=-cozy]),[class*=-condensed] .fd-input:not([class*=-cozy]){box-sizing:border-box;height:var(--sapElement_Compact_Height);margin:var(--fdInput_Field_Compact_Margin, .1875rem 0);min-height:var(--sapElement_Compact_Height);min-width:var(--fdInput_Field_Compact_Min_Width, 2rem);padding:var(--fdInput_Field_Compact_Padding, 0 .5rem)}.fd-input--no-number-spinner{-moz-appearance:textfield}.fd-input--no-number-spinner::-webkit-inner-spin-button,.fd-input--no-number-spinner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fd-input.right-align{text-align:right}.fd-input.is-success{-webkit-box-shadow:var(--sapField_SuccessShadow);background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle);box-shadow:var(--sapField_SuccessShadow)}.fd-input.is-success.is-hover,.fd-input.is-success:hover{-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-input.is-success.is-focus,.fd-input.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color);z-index:5}.fd-input.is-success.is-focus.is-hover,.fd-input.is-success.is-focus:hover,.fd-input.is-success:focus.is-hover,.fd-input.is-success:focus:hover{box-shadow:none}.fd-input.is-success.is-expanded,.fd-input.is-success[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Success_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-error{-webkit-box-shadow:var(--sapField_InvalidShadow);background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle);box-shadow:var(--sapField_InvalidShadow)}.fd-input.is-error.is-hover,.fd-input.is-error:hover{-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-input.is-error.is-focus,.fd-input.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color);z-index:5}.fd-input.is-error.is-focus.is-hover,.fd-input.is-error.is-focus:hover,.fd-input.is-error:focus.is-hover,.fd-input.is-error:focus:hover{box-shadow:none}.fd-input.is-error.is-expanded,.fd-input.is-error[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Error_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-warning{-webkit-box-shadow:var(--sapField_WarningShadow);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle);box-shadow:var(--sapField_WarningShadow)}.fd-input.is-warning.is-hover,.fd-input.is-warning:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-warning.is-focus.is-hover,.fd-input.is-warning.is-focus:hover,.fd-input.is-warning:focus.is-hover,.fd-input.is-warning:focus:hover{box-shadow:none}.fd-input.is-warning.is-expanded,.fd-input.is-warning[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input.is-alert.is-hover,.fd-input.is-alert:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color);z-index:5}.fd-input.is-alert.is-focus.is-hover,.fd-input.is-alert.is-focus:hover,.fd-input.is-alert:focus.is-hover,.fd-input.is-alert:focus:hover{box-shadow:none}.fd-input.is-alert.is-expanded,.fd-input.is-alert[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-information{-webkit-box-shadow:var(--sapField_InformationShadow);background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle);box-shadow:var(--sapField_InformationShadow)}.fd-input.is-information.is-hover,.fd-input.is-information:hover{-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-input.is-information.is-focus,.fd-input.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color);z-index:5}.fd-input.is-information.is-focus.is-hover,.fd-input.is-information.is-focus:hover,.fd-input.is-information:focus.is-hover,.fd-input.is-information:focus:hover{box-shadow:none}.fd-input.is-information.is-expanded,.fd-input.is-information[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Information_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input.is-alert,.fd-input.is-error,.fd-input.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert::placeholder,.fd-input.is-error::placeholder,.fd-input.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input.is-alert.is-focus,.fd-input.is-alert:focus,.fd-input.is-error.is-focus,.fd-input.is-error:focus,.fd-input.is-information.is-focus,.fd-input.is-information:focus,.fd-input.is-warning.is-focus,.fd-input.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input.is-disabled,.fd-input:disabled,.fd-input[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input.is-disabled::placeholder,.fd-input:disabled::placeholder,.fd-input[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly,.fd-input[aria-readonly=true],.fd-input[readonly]{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);box-shadow:none}.fd-input.is-readonly::placeholder,.fd-input[aria-readonly=true]::placeholder,.fd-input[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input.is-readonly.is-focus,.fd-input.is-readonly.is-hover,.fd-input.is-readonly:focus,.fd-input.is-readonly:hover,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true].is-hover,.fd-input[aria-readonly=true]:focus,.fd-input[aria-readonly=true]:hover,.fd-input[readonly].is-focus,.fd-input[readonly].is-hover,.fd-input[readonly]:focus,.fd-input[readonly]:hover{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);box-shadow:none}.fd-input.is-readonly.is-focus,.fd-input.is-readonly:focus,.fd-input[aria-readonly=true].is-focus,.fd-input[aria-readonly=true]:focus,.fd-input[readonly].is-focus,.fd-input[readonly]:focus{z-index:5}/*!\n * Fundamental Library Styles v0.32.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-input-group{-webkit-box-sizing:border-box;-webkit-box-shadow:var(--sapField_Shadow);-webkit-appearance:none;appearance:none;background:var(--fdInputGroup_Background, var(--sapField_BackgroundStyle));background-color:var(--fdInputGroup_Background_Color, var(--sapField_Background));border:0;border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);border-radius:var(--sapField_BorderCornerRadius);box-shadow:var(--sapField_Shadow);box-sizing:border-box;color:var(--sapTextColor);color:var(--sapField_TextColor);cursor:text;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:auto;line-height:var(--sapContent_LineHeight);margin:0;margin:var(--fdInput_Field_Margin, .25rem 0);min-width:var(2.75rem, 2.75rem);outline:none;overflow:hidden;padding:0;text-overflow:ellipsis;text-shadow:var(--fdInput_Text_Shadow);white-space:nowrap;width:100%;z-index:1}.fd-input-group:after,.fd-input-group:before{box-sizing:inherit;font-size:inherit}.fd-input-group::placeholder{color:var(--sapField_PlaceholderTextColor);font-style:var(--fdPlaceholder_Font_Style)}.fd-input-group[dir=rtl]::placeholder,[dir=rtl] .fd-input-group::placeholder{text-indent:.125rem}.fd-input-group::selection{background-color:var(--sapSelectedColor);color:var(--sapContent_ContrastTextColor)}.fd-input-group::-ms-clear{display:none}.fd-input-group.is-hover,.fd-input-group:hover{-webkit-box-shadow:var(--fdInput_Box_Shadow_Hover);background:var(--fdInputGroup_Hover_Background, var(--sapField_Hover_BackgroundStyle));background-color:var(--fdInputGroup_Hover_Background_Color, var(--sapField_Hover_Background));border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-input-group.is-focus,.fd-input-group:focus{-webkit-box-shadow:none;background:var(--sapField_Focus_Background, var(--sapField_Focus_Background));box-shadow:none;outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);outline-style:var(--sapContent_FocusStyle);outline-width:var(--sapContent_FocusWidth);z-index:5}.fd-input-group.is-success{-webkit-box-shadow:var(--sapField_SuccessShadow);background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle);box-shadow:var(--sapField_SuccessShadow)}.fd-input-group.is-success.is-hover,.fd-input-group.is-success:hover{-webkit-box-shadow:var(--fdInput_Success_Box_Shadow_Hover);background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-input-group.is-success.is-focus,.fd-input-group.is-success:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color)}.fd-input-group.is-success.is-focus.is-hover,.fd-input-group.is-success.is-focus:hover,.fd-input-group.is-success:focus.is-hover,.fd-input-group.is-success:focus:hover{box-shadow:none}.fd-input-group.is-success.is-expanded,.fd-input-group.is-success[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Success_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input-group.is-error{-webkit-box-shadow:var(--sapField_InvalidShadow);background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle);box-shadow:var(--sapField_InvalidShadow)}.fd-input-group.is-error.is-hover,.fd-input-group.is-error:hover{-webkit-box-shadow:var(--fdInput_Error_Box_Shadow_Hover);background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-input-group.is-error.is-focus,.fd-input-group.is-error:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color)}.fd-input-group.is-error.is-focus.is-hover,.fd-input-group.is-error.is-focus:hover,.fd-input-group.is-error:focus.is-hover,.fd-input-group.is-error:focus:hover{box-shadow:none}.fd-input-group.is-error.is-expanded,.fd-input-group.is-error[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Error_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input-group.is-warning{-webkit-box-shadow:var(--sapField_WarningShadow);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle);box-shadow:var(--sapField_WarningShadow)}.fd-input-group.is-warning.is-hover,.fd-input-group.is-warning:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input-group.is-warning.is-focus,.fd-input-group.is-warning:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-input-group.is-warning.is-focus.is-hover,.fd-input-group.is-warning.is-focus:hover,.fd-input-group.is-warning:focus.is-hover,.fd-input-group.is-warning:focus:hover{box-shadow:none}.fd-input-group.is-warning.is-expanded,.fd-input-group.is-warning[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input-group.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-input-group.is-alert.is-hover,.fd-input-group.is-alert:hover{-webkit-box-shadow:var(--fdInput_Warning_Box_Shadow_Hover);background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-input-group.is-alert.is-focus,.fd-input-group.is-alert:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-input-group.is-alert.is-focus.is-hover,.fd-input-group.is-alert.is-focus:hover,.fd-input-group.is-alert:focus.is-hover,.fd-input-group.is-alert:focus:hover{box-shadow:none}.fd-input-group.is-alert.is-expanded,.fd-input-group.is-alert[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Warning_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input-group.is-information{-webkit-box-shadow:var(--sapField_InformationShadow);background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle);box-shadow:var(--sapField_InformationShadow)}.fd-input-group.is-information.is-hover,.fd-input-group.is-information:hover{-webkit-box-shadow:var(--fdInput_Information_Box_Shadow_Hover);background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-input-group.is-information.is-focus,.fd-input-group.is-information:focus{background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color)}.fd-input-group.is-information.is-focus.is-hover,.fd-input-group.is-information.is-focus:hover,.fd-input-group.is-information:focus.is-hover,.fd-input-group.is-information:focus:hover{box-shadow:none}.fd-input-group.is-information.is-expanded,.fd-input-group.is-information[aria-expanded=true]{-webkit-box-shadow:none;background:var(--sapField_Focus_Background);box-shadow:none;outline:var(--sapContent_FocusWidth) var(--sapContent_FocusStyle) var(--fdInput_Information_Outline_Color);outline-offset:var(--fdInput_Outline_Offset)}.fd-input-group.is-alert,.fd-input-group.is-error,.fd-input-group.is-warning{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-input-group.is-alert::placeholder,.fd-input-group.is-error::placeholder,.fd-input-group.is-warning::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-input-group.is-alert.is-focus,.fd-input-group.is-alert:focus,.fd-input-group.is-error.is-focus,.fd-input-group.is-error:focus,.fd-input-group.is-information.is-focus,.fd-input-group.is-information:focus,.fd-input-group.is-warning.is-focus,.fd-input-group.is-warning:focus{outline-offset:var(--fdInput_Outline_Offset_States);z-index:5}.fd-input-group.is-error::placeholder{color:var(--sapField_TextColor)}.fd-input-group.is-disabled,.fd-input-group:disabled,.fd-input-group[aria-disabled=true]{opacity:var(--sapContent_DisabledOpacity);pointer-events:none}.fd-input-group.is-disabled::placeholder,.fd-input-group:disabled::placeholder,.fd-input-group[aria-disabled=true]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input-group.is-readonly,.fd-input-group[aria-readonly=true],.fd-input-group[readonly]{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);box-shadow:none}.fd-input-group.is-readonly::placeholder,.fd-input-group[aria-readonly=true]::placeholder,.fd-input-group[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color);opacity:0}.fd-input-group.is-readonly.is-hover,.fd-input-group.is-readonly:hover,.fd-input-group[aria-readonly=true].is-hover,.fd-input-group[aria-readonly=true]:hover,.fd-input-group[readonly].is-hover,.fd-input-group[readonly]:hover{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);box-shadow:none}.fd-input-group.is-readonly.is-focus,.fd-input-group.is-readonly:focus,.fd-input-group[aria-readonly=true].is-focus,.fd-input-group[aria-readonly=true]:focus,.fd-input-group[readonly].is-focus,.fd-input-group[readonly]:focus{-webkit-box-shadow:none;background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);box-shadow:none;z-index:5}.fd-input-group .fd-input-group__button:first-child{border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__button:first-child[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:first-child{border-left:var(--fdInputGroup_ControlButton_SideBorder);border-right-style:none}.fd-input-group .fd-input-group__button:first-child.is-hover,.fd-input-group .fd-input-group__button:first-child:hover{border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button:first-child.is-hover[dir=rtl],.fd-input-group .fd-input-group__button:first-child:hover[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:first-child.is-hover,[dir=rtl] .fd-input-group .fd-input-group__button:first-child:hover{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active);border-right-style:none}.fd-input-group .fd-input-group__button:first-child.is-active,.fd-input-group .fd-input-group__button:first-child:active{border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button:first-child.is-active[dir=rtl],.fd-input-group .fd-input-group__button:first-child:active[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:first-child.is-active,[dir=rtl] .fd-input-group .fd-input-group__button:first-child:active{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active);border-right-style:none}.fd-input-group .fd-input-group__button:not(:first-child){border-left:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__button:not(:first-child)[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:not(:first-child){border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__button:not(:first-child).is-hover,.fd-input-group .fd-input-group__button:not(:first-child):hover{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button:not(:first-child).is-hover[dir=rtl],.fd-input-group .fd-input-group__button:not(:first-child):hover[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:not(:first-child).is-hover,[dir=rtl] .fd-input-group .fd-input-group__button:not(:first-child):hover{border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button:not(:first-child).is-active,.fd-input-group .fd-input-group__button:not(:first-child):active{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button:not(:first-child).is-active[dir=rtl],.fd-input-group .fd-input-group__button:not(:first-child):active[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__button:not(:first-child).is-active,[dir=rtl] .fd-input-group .fd-input-group__button:not(:first-child):active{border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button{border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button{border-left:var(--fdInputGroup_ControlButton_SideBorder);border-right-style:none}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-hover,.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:hover{border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-hover[dir=rtl],.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:hover[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-hover,[dir=rtl] .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:hover{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active);border-right-style:none}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-active,.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:active{border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-active[dir=rtl],.fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:active[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button.is-active,[dir=rtl] .fd-input-group .fd-input-group__addon:first-child .fd-input-group__button:active{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active);border-right-style:none}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button{border-left:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button{border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-hover,.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:hover{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-hover[dir=rtl],.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:hover[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-hover,[dir=rtl] .fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:hover{border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-active,.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:active{border-left:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-active[dir=rtl],.fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:active[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button.is-active,[dir=rtl] .fd-input-group .fd-input-group__addon:not(:first-child) .fd-input-group__button:active{border-left-style:none;border-right:var(--fdInputGroup_ControlButton_SideBorder_Active)}.fd-input-group .fd-input-group__button{background:var(--fdInput_Group_Button_Background);background-color:var(--fdButtonBackgroundColor);border:none;border-radius:var(--fdInput_Group_Button_Border_Raduis);color:var(--fdInput_Group_Button_Text_Color);overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;z-index:auto!important}.fd-input-group .fd-input-group__button:before{display:none!important}.fd-input-group .fd-input-group__button:after{border-radius:var(--fdInput_Outline_Border_Radius)}.fd-input-group .fd-input-group__button.is-hover,.fd-input-group .fd-input-group__button:hover{--fdInput_Group_Button_Text_Color:var(--fdInput_Group_Button_Hover_Text_Color);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Hover_Background);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-input-group .fd-input-group__button.is-active,.fd-input-group .fd-input-group__button:active{-webkit-box-shadow:var(--fdInput_Group_Button_Box_Shadow);background:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Box_Shadow);color:var(--fdInput_Group_Button_Active_Text_Color)}.fd-input-group.is-success.is-focus,.fd-input-group.is-success:focus{z-index:5}.fd-input-group.is-success.is-focus .fd-input-group__button,.fd-input-group.is-success:focus .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);color:var(--fdInput_Group_Button_Success_Active_Text_Color)}.fd-input-group.is-success.is-focus .fd-input-group__button.is-hover,.fd-input-group.is-success.is-focus .fd-input-group__button:hover,.fd-input-group.is-success:focus .fd-input-group__button.is-hover,.fd-input-group.is-success:focus .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-success.is-expanded .fd-input-group__button,.fd-input-group.is-success[aria-expanded=true] .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow);color:var(--fdInput_Group_Button_Success_Active_Text_Color)}.fd-input-group.is-success.is-expanded .fd-input-group__button.is-hover,.fd-input-group.is-success.is-expanded .fd-input-group__button:hover,.fd-input-group.is-success[aria-expanded=true] .fd-input-group__button.is-hover,.fd-input-group.is-success[aria-expanded=true] .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-success .fd-input-group__button.is-active,.fd-input-group.is-success .fd-input-group__button.is-hover,.fd-input-group.is-success .fd-input-group__button:active,.fd-input-group.is-success .fd-input-group__button:hover{box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-input-group.is-success .fd-input-group__button.is-active,.fd-input-group.is-success .fd-input-group__button:active{color:var(--fdInput_Group_Button_Success_Active_Text_Color)}.fd-input-group.is-error.is-focus,.fd-input-group.is-error:focus{z-index:5}.fd-input-group.is-error.is-focus .fd-input-group__button,.fd-input-group.is-error:focus .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);color:var(--fdInput_Group_Button_Error_Active_Text_Color)}.fd-input-group.is-error.is-focus .fd-input-group__button.is-hover,.fd-input-group.is-error.is-focus .fd-input-group__button:hover,.fd-input-group.is-error:focus .fd-input-group__button.is-hover,.fd-input-group.is-error:focus .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-error.is-expanded .fd-input-group__button,.fd-input-group.is-error[aria-expanded=true] .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow);color:var(--fdInput_Group_Button_Error_Active_Text_Color)}.fd-input-group.is-error.is-expanded .fd-input-group__button.is-hover,.fd-input-group.is-error.is-expanded .fd-input-group__button:hover,.fd-input-group.is-error[aria-expanded=true] .fd-input-group__button.is-hover,.fd-input-group.is-error[aria-expanded=true] .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-error .fd-input-group__button.is-active,.fd-input-group.is-error .fd-input-group__button.is-hover,.fd-input-group.is-error .fd-input-group__button:active,.fd-input-group.is-error .fd-input-group__button:hover{box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-input-group.is-error .fd-input-group__button.is-active,.fd-input-group.is-error .fd-input-group__button:active{color:var(--fdInput_Group_Button_Error_Active_Text_Color)}.fd-input-group.is-warning.is-focus,.fd-input-group.is-warning:focus{z-index:5}.fd-input-group.is-warning.is-focus .fd-input-group__button,.fd-input-group.is-warning:focus .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-warning.is-focus .fd-input-group__button.is-hover,.fd-input-group.is-warning.is-focus .fd-input-group__button:hover,.fd-input-group.is-warning:focus .fd-input-group__button.is-hover,.fd-input-group.is-warning:focus .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-warning.is-expanded .fd-input-group__button,.fd-input-group.is-warning[aria-expanded=true] .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-warning.is-expanded .fd-input-group__button.is-hover,.fd-input-group.is-warning.is-expanded .fd-input-group__button:hover,.fd-input-group.is-warning[aria-expanded=true] .fd-input-group__button.is-hover,.fd-input-group.is-warning[aria-expanded=true] .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-warning .fd-input-group__button.is-active,.fd-input-group.is-warning .fd-input-group__button.is-hover,.fd-input-group.is-warning .fd-input-group__button:active,.fd-input-group.is-warning .fd-input-group__button:hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-input-group.is-warning .fd-input-group__button.is-active,.fd-input-group.is-warning .fd-input-group__button:active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-alert.is-focus,.fd-input-group.is-alert:focus{z-index:5}.fd-input-group.is-alert.is-focus .fd-input-group__button,.fd-input-group.is-alert:focus .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-alert.is-focus .fd-input-group__button.is-hover,.fd-input-group.is-alert.is-focus .fd-input-group__button:hover,.fd-input-group.is-alert:focus .fd-input-group__button.is-hover,.fd-input-group.is-alert:focus .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-alert.is-expanded .fd-input-group__button,.fd-input-group.is-alert[aria-expanded=true] .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow);color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-alert.is-expanded .fd-input-group__button.is-hover,.fd-input-group.is-alert.is-expanded .fd-input-group__button:hover,.fd-input-group.is-alert[aria-expanded=true] .fd-input-group__button.is-hover,.fd-input-group.is-alert[aria-expanded=true] .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-alert .fd-input-group__button.is-active,.fd-input-group.is-alert .fd-input-group__button.is-hover,.fd-input-group.is-alert .fd-input-group__button:active,.fd-input-group.is-alert .fd-input-group__button:hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-input-group.is-alert .fd-input-group__button.is-active,.fd-input-group.is-alert .fd-input-group__button:active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color)}.fd-input-group.is-information.is-focus,.fd-input-group.is-information:focus{z-index:5}.fd-input-group.is-information.is-focus .fd-input-group__button,.fd-input-group.is-information:focus .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);color:var(--fdInput_Group_Button_Information_Active_Text_Color)}.fd-input-group.is-information.is-focus .fd-input-group__button.is-hover,.fd-input-group.is-information.is-focus .fd-input-group__button:hover,.fd-input-group.is-information:focus .fd-input-group__button.is-hover,.fd-input-group.is-information:focus .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-information.is-expanded .fd-input-group__button,.fd-input-group.is-information[aria-expanded=true] .fd-input-group__button{-webkit-box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow);color:var(--fdInput_Group_Button_Information_Active_Text_Color)}.fd-input-group.is-information.is-expanded .fd-input-group__button.is-hover,.fd-input-group.is-information.is-expanded .fd-input-group__button:hover,.fd-input-group.is-information[aria-expanded=true] .fd-input-group__button.is-hover,.fd-input-group.is-information[aria-expanded=true] .fd-input-group__button:hover{--fdButtonBackgroundColor:var(--fdInput_Group_Button_Active_Background)}.fd-input-group.is-information .fd-input-group__button.is-active,.fd-input-group.is-information .fd-input-group__button.is-hover,.fd-input-group.is-information .fd-input-group__button:active,.fd-input-group.is-information .fd-input-group__button:hover{box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-input-group.is-information .fd-input-group__button.is-active,.fd-input-group.is-information .fd-input-group__button:active{color:var(--fdInput_Group_Button_Information_Active_Text_Color)}.fd-input-group .fd-input-group__input{-webkit-box-flex:1;-ms-flex:1 1 10rem;-webkit-box-shadow:none;background:none;background-color:var(--fdInputGroup_Input_Background, transparent);border:var(--fdInputGroup_Input_Border, none);box-shadow:none;color:var(--fdInputGroup_Input_Color, inherit);flex:1 1 10rem;padding-left:.25rem;padding-right:.25rem;text-shadow:var(--fdInputGroup_Text_Shadow)}.fd-input-group .fd-input-group__input:nth-child(n+1){margin:0}.fd-input-group .fd-input-group__input::placeholder{color:var(--fdInputGroup_Input_Placeholder_Color, var(--sapField_PlaceholderTextColor));font-style:var(--fdInputGroup_Input_Placeholder_Style, italic)}.fd-input-group .fd-input-group__input.is-hover,.fd-input-group .fd-input-group__input:hover{-webkit-box-shadow:none;background:none;background-color:var(--fdInputGroup_Hover_Input_Background, transparent);box-shadow:none}.fd-input-group .fd-input-group__input.is-focus,.fd-input-group .fd-input-group__input:focus{-webkit-box-shadow:none;background:var(--fdInputGroup_Input_Background, none);border-radius:0;box-shadow:none;outline:none;z-index:5}.fd-input-group .fd-input-group__input:first-child{padding-left:.625rem}.fd-input-group .fd-input-group__input:first-child[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__input:first-child{padding-left:0;padding-right:.625rem}.fd-input-group .fd-input-group__input:last-child{padding-right:.625rem}.fd-input-group .fd-input-group__input:last-child[dir=rtl],[dir=rtl] .fd-input-group .fd-input-group__input:last-child{padding-left:.625rem;padding-right:.25rem}.fd-input-group--inline{display:inline-flex;vertical-align:bottom;width:auto}.fd-input-group__addon{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;background:var(--fdInputGroup_Addon_Background, none);border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapContent_NonInteractiveIconColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-size:var(--sapFontLargeSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;min-height:var(--fdInput_Group_Addon_Height, 2.25rem);min-width:var(--fdInput_Group_Addon_Width, 2.25rem);overflow:hidden;padding:0 .625rem;text-overflow:ellipsis;white-space:nowrap}.fd-input-group__addon:after,.fd-input-group__addon:before{box-sizing:inherit;font-size:inherit}.fd-input-group__addon span[class*=sap-icon--]:before{font-size:var(--sapFontLargeSize)}.fd-input-group__addon--readonly{opacity:.4}.fd-input-group__addon--button{overflow:visible;padding:0}.fd-input-group--control[aria-expanded=true]{margin-bottom:0}.fd-input-group[class*=-compact],.fd-input-group[class*=-condensed],[class*=-compact] .fd-input-group:not([class*=-cozy]),[class*=-condensed] .fd-input-group:not([class*=-cozy]){--fdInput_Field_Margin:.1875rem 0;--fdInput_Field_Compact_Margin:0;--fdInput_Group_Addon_Width:2rem;--fdInput_Group_Addon_Height:1.625rem}.fd-input-group .fd-textarea{resize:vertical}.fd-input-group .is-disabled,.fd-input-group :disabled,.fd-input-group [aria-disabled=true]{opacity:1}.fd-input-group.is-readonly,.fd-input-group[readonly]{overflow:visible}.fd-input-group .fd-tokenizer,.fd-input-group .fd-tokenizer.is-focus,.fd-input-group .fd-tokenizer.is-hover,.fd-input-group .fd-tokenizer:focus,.fd-input-group .fd-tokenizer:hover{-webkit-box-shadow:none;background:none;background-color:var(transparent, transparent);box-shadow:none}.fd-input-group .fd-tokenizer.is-focus,.fd-input-group .fd-tokenizer:focus{outline:none;z-index:5}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.fdp-search-field input[type=text]::-ms-clear{display:none;width:0;height:0}.fdp-search-field input[type=text]::-ms-reveal{display:none;width:0;height:0}.fdp-search-field input[type=search]::-webkit-search-decoration,.fdp-search-field input[type=search]::-webkit-search-cancel-button,.fdp-search-field input[type=search]::-webkit-search-results-button,.fdp-search-field input[type=search]::-webkit-search-results-decoration{display:none}.fdp-search-field .fdp-search-field__input:hover{background:transparent}.fdp-search-field__suggestion-dropdown .fd-menu--overflow{top:0;max-width:none;min-height:10rem;max-height:100%;position:absolute;background-color:var(--sapList_Background)}.fdp-search-field__suggestion-dropdown .fd-menu__list,.fdp-search-field__suggestion-dropdown .fd-menu__item{max-width:none}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(() => MenuTriggerDirective), selector: "[fdpMenuTriggerFor]", inputs: ["fdpMenuTriggerFor"] }, { kind: "component", type: i0.forwardRef(() => MenuComponent), selector: "fdp-menu", inputs: ["id", "openByArrowKeys", "xPosition"], outputs: ["close"] }, { kind: "component", type: i0.forwardRef(() => MenuItemComponent), selector: "fdp-menu-item", inputs: ["disabled", "cascadeDirection"], outputs: ["itemSelect"] }, { kind: "component", type: i0.forwardRef(() => SelectComponent), selector: "fd-select", inputs: ["extendedBodyTemplate", "scrollStrategy", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "glyphFont", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "tabOutStrategy", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i0.forwardRef(() => OptionComponent), selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: i0.forwardRef(() => FormsModule) }, { kind: "directive", type: i0.forwardRef(() => i5.DefaultValueAccessor), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(() => i5.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i5.NgModel), selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i0.forwardRef(() => IconComponent), selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: i0.forwardRef(() => NgClass), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(() => SearchFieldSuggestionDirective), selector: "[fdpSearchFieldSuggestion]" }, { kind: "pipe", type: i0.forwardRef(() => AsyncPipe), name: "async" }, { kind: "pipe", type: i0.forwardRef(() => SearchHighlightPipe), name: "highlight" }, { kind: "pipe", type: i0.forwardRef(() => FdTranslatePipe), name: "fdTranslate" }, { kind: "pipe", type: i0.forwardRef(() => SuggestionMatchesPipe), name: "suggestionMatches" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
478
478
  }
479
479
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: SearchFieldComponent, decorators: [{
480
480
  type: Component,
@@ -595,4 +595,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
595
595
  standalone: true
596
596
  }]
597
597
  }] });
598
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2VhcmNoLWZpZWxkL3NlYXJjaC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NlYXJjaC1maWVsZC9zZWFyY2gtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFxQixPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUVKLFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxT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LEVBQUUsQ0FBQztRQUNsRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDOzhHQVhRLHFCQUFxQjs0R0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiwgRm9jdXNLZXlNYW5hZ2VyLCBMaXZlQW5ub3VuY2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRVNDQVBFLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIERPQ1VNRU5ULCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgaXNPYnNlcnZhYmxlLCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgICBLZXlVdGlsLFxuICAgIE51bGxhYmxlLFxuICAgIFJ0bFNlcnZpY2UsXG4gICAgU2VhcmNoSGlnaGxpZ2h0UGlwZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgTW9iaWxlTW9kZUNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50LCBTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2VsZWN0JztcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgRkRfU0hFTExCQVJfU0VBUkNIX0NPTVBPTkVOVCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGVsbGJhcic7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUsIHJlc29sdmVUcmFuc2xhdGlvblN5bmNGbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50LCBNZW51SXRlbUNvbXBvbmVudCwgTWVudVRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL21lbnUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgU2VhcmNoRmllbGREYXRhU291cmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQge1xuICAgIFNFQVJDSF9GSUVMRF9DT01QT05FTlQsXG4gICAgU2VhcmNoRmllbGRNb2JpbGVJbnRlcmZhY2Vcbn0gZnJvbSAnLi9zZWFyY2gtZmllbGQtbW9iaWxlL3NlYXJjaC1maWVsZC1tb2JpbGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBsYXRmb3JtU2VhcmNoRmllbGRNb2JpbGVNb2R1bGUgfSBmcm9tICcuL3NlYXJjaC1maWVsZC1tb2JpbGUvc2VhcmNoLWZpZWxkLW1vYmlsZS5tb2R1bGUnO1xuaW1wb3J0IHsgU2VhcmNoRmllbGRNb2JpbGVDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1maWVsZC1tb2JpbGUvc2VhcmNoLWZpZWxkL3NlYXJjaC1maWVsZC1tb2JpbGUuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hJbnB1dCB7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGNhdGVnb3J5OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3Rpb25JdGVtIHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGlzSGlzdG9yaWNhbD86IHN0cmluZztcbiAgICBkYXRhPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZhbHVlTGFiZWxJdGVtIHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFNlYXJjaEZpZWxkU3VnZ2VzdGlvbl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdGFiaW5kZXg6ICctMSdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoRmllbGRTdWdnZXN0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgRm9jdXNhYmxlT3B0aW9uIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxufVxuXG5sZXQgc2VhcmNoRmllbGRJZENvdW50ID0gMDtcblxudHlwZSBBcHBlYXJhbmNlID0gU2VhcmNoQ29tcG9uZW50WydhcHBlYXJhbmNlJ10gfCB1bmRlZmluZWQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXNlYXJjaC1maWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NlYXJjaC1maWVsZC5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9TSEVMTEJBUl9TRUFSQ0hfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNlYXJjaEZpZWxkQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBNZW51VHJpZ2dlckRpcmVjdGl2ZSxcbiAgICAgICAgTWVudUNvbXBvbmVudCxcbiAgICAgICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgT3B0aW9uQ29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgSWNvbkNvbXBvbmVudCxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgU2VhcmNoRmllbGRTdWdnZXN0aW9uRGlyZWN0aXZlLFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIFNlYXJjaEhpZ2hsaWdodFBpcGUsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgZm9yd2FyZFJlZigoKSA9PiBTdWdnZXN0aW9uTWF0Y2hlc1BpcGUpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWVsZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2VhcmNoRmllbGRNb2JpbGVJbnRlcmZhY2UsIFNlYXJjaENvbXBvbmVudFxue1xuICAgIC8qKiBUeXBlIG9mIGNvbXBvbmVudCB1c2VkIHRvIHJlbmRlciB0aGUgY2F0ZWdvcmllcyBkcm9wZG93bi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNhdGVnb3J5TW9kZTogJ21lbnUnIHwgJ3NlbGVjdCcgPSAnbWVudSc7XG5cbiAgICAvKiogQWRkaXRpb25hbCBhcHBlYXJhbmNlIGNvbmZpZ3VyYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYXBwZWFyYW5jZSh2YWx1ZTogQXBwZWFyYW5jZSkge1xuICAgICAgICBpZiAoZXF1YWwodmFsdWUsIHRoaXMuYXBwZWFyYW5jZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FwcGVhcmFuY2UgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGdldCBhcHBlYXJhbmNlKCk6IEFwcGVhcmFuY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwZWFyYW5jZTtcbiAgICB9XG5cbiAgICAvKiogUGxhY2Vob2xkZXIgdGV4dCBmb3Igc2VhcmNoIGlucHV0IGZpZWxkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIC8qKiBTZXQgTW9iaWxlIE1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZTogYm9vbGVhbjtcblxuICAgIC8qKiBTZWFyY2ggRmllbGQgTW9iaWxlIGNvbmZpZ3VyYXRpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZUNvbmZpZzogTW9iaWxlTW9kZUNvbmZpZztcblxuICAgIC8qKiBXaGV0aGVyIGRpc3BsYXkgUmVmcmVzaCBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVSZWZyZXNoID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBkaXNwbGF5IHNlYXJjaCBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVTZWFyY2ggPSBmYWxzZTtcblxuICAgIC8qKiBMaXN0IG9mIHN0cmluZyB2YWx1ZXMgdG8gcG9wdWxhdGUgc3VnZ2VzdGlvbiBkcm9wZG93biBzZWxlY3Rpb24uICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc3VnZ2VzdGlvbnModmFsdWU6IFN1Z2dlc3Rpb25JdGVtW10gfCBPYnNlcnZhYmxlPFN1Z2dlc3Rpb25JdGVtW10+KSB7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zID0gdmFsdWU7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgLy8gY29udmVydCBzdWdnZXN0aW9ucyB0byBhbiBhcnJheSBvZiBzdHJpbmcgZm9yIFwiZHJvcGRvd24gdmFsdWVzXCJcbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duVmFsdWVzID0gdmFsdWUubWFwKChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uSXRlbSkgPT4gc3VnZ2VzdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9kcm9wZG93blZhbHVlcyQgPSBvZihkcm9wZG93blZhbHVlcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5fZHJvcGRvd25WYWx1ZXMkID0gdmFsdWUucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uSXRlbVtdKSA9PiBzdWdnZXN0aW9ucy5tYXAoKHN1Z2dlc3Rpb24pID0+IHN1Z2dlc3Rpb24udmFsdWUpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Ryb3Bkb3duVmFsdWVzJCA9IG9mKFtdKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgc3VnZ2VzdGlvbnMoKTogU3VnZ2VzdGlvbkl0ZW1bXSB8IE9ic2VydmFibGU8U3VnZ2VzdGlvbkl0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VnZ2VzdGlvbnM7XG4gICAgfVxuXG4gICAgLyoqIERhdGFzb3VyY2UgZm9yIHN1Z2dlc3Rpb24gbGlzdCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRhdGFTb3VyY2UodmFsdWU6IFNlYXJjaEZpZWxkRGF0YVNvdXJjZTxhbnk+KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZURhdGFTb3VyY2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBkYXRhU291cmNlKCk6IFNlYXJjaEZpZWxkRGF0YVNvdXJjZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gICAgfVxuXG4gICAgLyoqIEluaXRpYWwgaW5wdXQgdGV4dC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlucHV0VGV4dDogc3RyaW5nO1xuXG4gICAgLyoqIExpc3Qgb2YgY2F0ZWdvcmllcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjYXRlZ29yaWVzKHZhbHVlOiBWYWx1ZUxhYmVsSXRlbVtdKSB7XG4gICAgICAgIHRoaXMuX2NhdGVnb3JpZXMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fc2hvd0NhdGVnb3J5RHJvcGRvd24gPSBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwO1xuICAgIH1cbiAgICBnZXQgY2F0ZWdvcmllcygpOiBWYWx1ZUxhYmVsSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhdGVnb3JpZXM7XG4gICAgfVxuXG4gICAgLyoqIEN1cnJlbnQgY2F0ZWdvcnksIHZhbHVlIHNob3VsZCBiZSBwcmVzZW50IGluIGNhdGVnb3JpZXMgYXJyYXkgKi9cbiAgICBASW5wdXQoKVxuICAgIGN1cnJlbnRDYXRlZ29yeTogVmFsdWVMYWJlbEl0ZW07XG5cbiAgICAvKiogU2V0IGxhYmVsIGZvciBjYXRlZ29yeSBkcm9wZG93biBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBjYXRlZ29yeUxhYmVsID0gJ0NhdGVnb3J5JztcblxuICAgIC8qKiBIaWRlIGRpc3BsYXkgb2YgY2F0ZWdvcnkgbGFiZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVDYXRlZ29yeUxhYmVsID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlIFwibG9hZGluZ1wiIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEFSSUEgbGFiZWwgdG8gc3BlY2lmeSB3aGF0IHRoZSBzZWFyY2ggZmllbGQgaXNcbiAgICAgKiBOb3Qgc2hvd24gaW4gdGhlIFVJLCBvbmx5IHZpc2libGUgYnkgdGhlIHNjcmVlbi1yZWFkZXJzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogSWQgb2YgZWxlbWVudHMgKHNlcGFyYXRlZCBieSBzcGFjZSkgZm9yIHNldHRpbmcgYXJpYS1sYWJlbGxlZGJ5IGZvciBzZWFyY2ggaW5wdXRcbiAgICAgKiBOb3Qgc2hvd24gaW4gdGhlIFVJLCBvbmx5IHZpc2libGUgYnkgdGhlIHNjcmVlbi1yZWFkZXJzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkYnk6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHRvIGFsd2F5cyBzaG93IHNlYXJjaCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBmb3JjZVNlYXJjaEJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgXCJzdWdnZXN0aW9ucyBmb3VuZFwiIGxpdmUgYW5ub3VuY2VyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZVN1Z2dlc3Rpb25zRm91bmRBbm5vdW5jZXIgPSBmYWxzZTtcblxuICAgIC8qKiBJbnB1dCBjaGFuZ2UgZXZlbnQuICovXG4gICAgQE91dHB1dCgpXG4gICAgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTZWFyY2hJbnB1dD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogU2VhcmNoIHN1Ym1pdCBldmVudC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWFyY2hTdWJtaXQ6IEV2ZW50RW1pdHRlcjxTZWFyY2hJbnB1dD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogQ2FuY2VsIHNlYXJjaCBldmVudC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjYW5jZWxTZWFyY2g6IEV2ZW50RW1pdHRlcjxTZWFyY2hJbnB1dD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogT3BlbiBtb2JpbGUgbW9kZSBldmVudC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBpc09wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlEcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGNhdGVnb3J5RHJvcGRvd246IFBvcG92ZXJDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0R3JvdXAnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBpbnB1dEdyb3VwOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRGaWVsZCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGlucHV0RmllbGQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdpbnB1dEZpZWxkVGVtcGxhdGUnKVxuICAgIGlucHV0RmllbGRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnc3VnZ2VzdGlvbk1lbnVUZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHN1Z2dlc3Rpb25NZW51VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oU2VhcmNoRmllbGRTdWdnZXN0aW9uRGlyZWN0aXZlKVxuICAgIHN1Z2dlc3Rpb25JdGVtczogUXVlcnlMaXN0PFNlYXJjaEZpZWxkU3VnZ2VzdGlvbkRpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBzZWFyY2hGaWVsZFZhbHVlKCk6IFNlYXJjaElucHV0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuaW5wdXRUZXh0LFxuICAgICAgICAgICAgY2F0ZWdvcnk6IHRoaXMuX2N1cnJlbnRDYXRlZ29yeT8udmFsdWUgfHwgbnVsbFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBGb2N1cyBzdGF0ZSAqL1xuICAgIGdldCBpc0ZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kb2N1bWVudD8uYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5pbnB1dEZpZWxkPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ic2VydmFibGUgbGlzdCBvZiBzdHJpbmcgdmFsdWVzIHRha2VuIGZyb20gYHN1Z2dlc3Rpb25zYCB0byBwb3B1bGF0ZSBkcm9wZG93biBtZW51LlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfZHJvcGRvd25WYWx1ZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiA9IG9mKFtdKTtcblxuICAgIC8qKlxuICAgICAqIEN1cnJlbnRseSBzZXQgY2F0ZWdvcnkuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9jdXJyZW50Q2F0ZWdvcnk/OiBWYWx1ZUxhYmVsSXRlbTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdHlwZWFoZWFkIGRyb3Bkb3duLlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IGNhdGVnb3J5IGRyb3Bkb3duLiBUaGlzIGlzIGRlcGVuZGVudCBvbiBsZW5ndGggb2YgYGNhdGVnb3J5VmFsdWVzYCBwcm9wZXJ0eS5cbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3Nob3dDYXRlZ29yeURyb3Bkb3duID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pbnB1dElkID0gJyc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zdWJtaXRJZCA9ICcnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfbWVudUlkID0gJyc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9yZWZyZXNoSWQgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NsZWFySWQgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2RpcjogRGlyZWN0aW9uID0gJ2x0cic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGlzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXNSZWZyZXNoID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc1NlYXJjaERvbmUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25JdGVtW10gfCBPYnNlcnZhYmxlPFN1Z2dlc3Rpb25JdGVtW10+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kYXRhU291cmNlOiBTZWFyY2hGaWVsZERhdGFTb3VyY2U8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2F0ZWdvcmllczogVmFsdWVMYWJlbEl0ZW1bXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY3VycmVudFNlYXJjaFN1Z2dlc3Rpb25Bbm5vdW5jZW1lbnRNZXNzYWdlID0gJyc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1Z2dlc3Rpb25PdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3VnZ2VzdGlvblBvcnRhbDogVGVtcGxhdGVQb3J0YWw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1Z2dlc3Rpb25rZXlNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8U2VhcmNoRmllbGRTdWdnZXN0aW9uRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZXNvbHZlVHJhbnNsYXRpb24gPSByZXNvbHZlVHJhbnNsYXRpb25TeW5jRm4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2VDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGVhcmFuY2U6IEFwcGVhcmFuY2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bDogUnRsU2VydmljZSxcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9saXZlQW5ub3VuY2VyOiBMaXZlQW5ub3VuY2VyLFxuICAgICAgICByZWFkb25seSBfZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICByZWFkb25seSBjb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9jZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSAmJiB0aGlzLmlzT3BlbiAmJiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VTQ0FQRV0pKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dEaWFsb2coZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmFzZUlkID0gJ2ZkcC1zZWFyY2gtZmllbGQnO1xuICAgICAgICB0aGlzLl9pbnB1dElkID0gYCR7YmFzZUlkfS1pbnB1dC0ke3NlYXJjaEZpZWxkSWRDb3VudCsrfWA7XG4gICAgICAgIHRoaXMuX3N1Ym1pdElkID0gYCR7YmFzZUlkfS1zdWJtaXQtJHtzZWFyY2hGaWVsZElkQ291bnQrK31gO1xuICAgICAgICB0aGlzLl9tZW51SWQgPSBgJHtiYXNlSWR9LW1lbnUtJHtzZWFyY2hGaWVsZElkQ291bnQrK31gO1xuXG4gICAgICAgIHRoaXMuX2lzUmVmcmVzaCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX3J0bCkge1xuICAgICAgICAgICAgdGhpcy5fcnRsLnJ0bC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChpc1J0bDogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpciA9IGlzUnRsID8gJ3J0bCcgOiAnbHRyJztcbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0VXBNb2JpbGVNb2RlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCdjYXRlZ29yaWVzJyBpbiBjaGFuZ2VzIHx8ICdjdXJyZW50Q2F0ZWdvcnknIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudENhdGVnb3J5KHRoaXMuY3VycmVudENhdGVnb3J5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9zdWdnZXN0aW9uT3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbk92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbk92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jdXNlcyB0aGUgc2VhcmNoIGlucHV0IGZpZWxkLlxuICAgICAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0RmllbGQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIENhcHR1cmluZyBvbktleWRvd24gb2YgaW5wdXQgZWxlbWVudCAqL1xuICAgIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtVUF9BUlJPVywgRE9XTl9BUlJPV10pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fc3VnZ2VzdGlvbmtleU1hbmFnZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdWdnZXN0aW9ua2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRVNDQVBFXSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VTdWdnZXN0aW9uTWVudSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhcHR1cmluZyB2YWx1ZSBjaGFuZ2UgaW4gaW5wdXQgdGV4dCBmaWVsZCBvZiBjb21ib2JveC5cbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgb25WYWx1ZUNoYW5nZShldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIC8vIHdoZW4gc2VhcmNoIHJlc3VsdCBub3QgY2hhbmdlZCBidXQgaW5wdXQgdGV4dCBpcyBjaGFuZ2VkLlxuICAgICAgICAvLyBhZ2FpbiBuZWVkIHRvIGFubm91bmNlIHRoZSByZXN1bHQsIHNvIGNsZWFyIHRoaXMgbWVzc2FnZS5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiAodGhpcy5fY3VycmVudFNlYXJjaFN1Z2dlc3Rpb25Bbm5vdW5jZW1lbnRNZXNzYWdlID0gJycpKTtcbiAgICAgICAgdGhpcy5faXNTZWFyY2hEb25lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2lzUmVmcmVzaCA9IGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSAmJiAhdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3Blbk1vYmlsZU1vZGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2UuZW1pdCh0aGlzLnNlYXJjaEZpZWxkVmFsdWUpO1xuICAgICAgICBjb25zdCBpbnB1dFN0cjogc3RyaW5nID0gZXZlbnQudHJpbSgpO1xuICAgICAgICBpZiAoaW5wdXRTdHIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlU3VnZ2VzdGlvbk1lbnUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlblN1Z2dlc3Rpb25NZW51KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kYXRhU291cmNlKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIG1hdGNoLnNldCgna2V5d29yZCcsIGlucHV0U3RyKTtcbiAgICAgICAgICAgIG1hdGNoLnNldCgnY2F0ZWdvcnknLCB0aGlzLl9jdXJyZW50Q2F0ZWdvcnk/LnZhbHVlIHx8IG51bGwpO1xuXG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UubWF0Y2gobWF0Y2gpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlU2VhcmNoQW5ub3VuY2VtZW50VGV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhcHR1cmluZyBpdGVtIHNlbGVjdGlvbiBmcm9tIGRyb3Bkb3duIG1lbnUgb2YgY29tYm9ib3guXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIG9uSXRlbUNsaWNrKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dFRleHQgPSBldmVudDtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VhcmNoRmllbGRWYWx1ZSk7XG4gICAgICAgIHRoaXMuc2VhcmNoU3VibWl0LmVtaXQodGhpcy5zZWFyY2hGaWVsZFZhbHVlKTtcbiAgICAgICAgdGhpcy5jbG9zZVN1Z2dlc3Rpb25NZW51KCk7XG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5zaG93RGlhbG9nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc1NlYXJjaERvbmUgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggZ2V0cyBleGVjdXRlZCBvbiBrZXlib2FyZCBlbnRlciBvZiBpbnB1dCB0ZXh0IGZpZWxkLlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBvblNlYXJjaFN1Ym1pdChldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxTZWFyY2guZW1pdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWFyY2hTdWJtaXQuZW1pdCh0aGlzLnNlYXJjaEZpZWxkVmFsdWUpO1xuXG4gICAgICAgIHRoaXMuX2lzUmVmcmVzaCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLl9pc1NlYXJjaERvbmUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZVN1Z2dlc3Rpb25NZW51KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGN1cnJlbnQgY2F0ZWdvcnkuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHNldEN1cnJlbnRDYXRlZ29yeShjdXJyZW50Q2F0ZWdvcnk6IFZhbHVlTGFiZWxJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRDYXRlZ29yeSA9XG4gICAgICAgICAgICBjdXJyZW50Q2F0ZWdvcnkgJiZcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcz8uZmluZChcbiAgICAgICAgICAgICAgICAoY2F0ZWdvcnkpID0+IGNhdGVnb3J5LmxhYmVsID09PSBjdXJyZW50Q2F0ZWdvcnkubGFiZWwgJiYgY2F0ZWdvcnkudmFsdWUgPT09IGN1cnJlbnRDYXRlZ29yeS52YWx1ZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlLmVtaXQodGhpcy5zZWFyY2hGaWVsZFZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIHN1Z2dlc3Rpb24gbWVudVxuICAgICAqL1xuICAgIG9wZW5TdWdnZXN0aW9uTWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZVN1Z2dlc3Rpb25NZW51KCk7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25rZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLnN1Z2dlc3Rpb25JdGVtcyk7XG4gICAgICAgIGlmICh0aGlzLl9zaG93RHJvcGRvd24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBvdmVybGF5XG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLl9jcmVhdGVTdWdnZXRpb25PdmVybGF5Q29uZmlnKCk7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25PdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG5cbiAgICAgICAgLy8gZ2V0IHBvcnRhbCB0byBhdHRhY2ggdG8gb3ZlcmxheVxuICAgICAgICB0aGlzLl9zdWdnZXN0aW9uUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuc3VnZ2VzdGlvbk1lbnVUZW1wbGF0ZSwgdGhpcy5fdmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25PdmVybGF5UmVmLmF0dGFjaCh0aGlzLl9zdWdnZXN0aW9uUG9ydGFsKTtcblxuICAgICAgICAvLyBhZGQgc3Vic2NyaXB0aW9uIHRvIGNhcHR1cmUgb3V0c2lkZSBjbGlja3NcbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnY2xpY2snKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAhIXRoaXMuX3N1Z2dlc3Rpb25PdmVybGF5UmVmICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5fc3VnZ2VzdGlvbk92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvd0Ryb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvY3VzID0gISh0YXJnZXQudGFnTmFtZSA9PT0gJ0lOUFVUJyAmJiB0aGlzLl9pbnB1dElkICE9PSB0YXJnZXQuaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VTdWdnZXN0aW9uTWVudShmb2N1cyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9zaG93RHJvcGRvd24gPSB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3Blbk1vYmlsZU1vZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0RpYWxvZyh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGRpYWxvZ0FwcHJvdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25JdGVtQ2xpY2sodGhpcy5pbnB1dFRleHQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZGlhbG9nRGlzbWlzcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93RGlhbG9nKGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNob3dEaWFsb2coaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzT3BlbiAhPT0gaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGlzT3BlbjtcblxuICAgICAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdChpc09wZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjbG9zZVN1Z2dlc3Rpb25NZW51KGZvY3VzID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3N1Z2dlc3Rpb25PdmVybGF5UmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbk92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgIGlmIChmb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3Nob3dEcm9wZG93biA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xlYXJUZXh0SW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRUZXh0ID0gJyc7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VhcmNoRmllbGRWYWx1ZSk7XG4gICAgICAgIHRoaXMuY2FuY2VsU2VhcmNoLmVtaXQodGhpcy5zZWFyY2hGaWVsZFZhbHVlKTtcblxuICAgICAgICB0aGlzLl9pc1JlZnJlc2ggPSB0cnVlO1xuICAgICAgICB0aGlzLl9pc1NlYXJjaERvbmUgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmNsb3NlU3VnZ2VzdGlvbk1lbnUoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY3JlYXRlU3VnZ2V0aW9uT3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5pbnB1dEdyb3VwKVxuICAgICAgICAgICAgLndpdGhMb2NrZWRQb3NpdGlvbigpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhwb3NpdGlvbnMpO1xuICAgICAgICBjb25zdCBzY3JvbGxTdHJhdGVneSA9IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XG4gICAgICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuaW5wdXRHcm91cC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2luaXRpYWxpemVEYXRhU291cmNlKGRhdGFTb3VyY2U6IFNlYXJjaEZpZWxkRGF0YVNvdXJjZTxhbnk+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VkJC5uZXh0KCk7XG4gICAgICAgIGRhdGFTb3VyY2VcbiAgICAgICAgICAgIC5vcGVuKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbChtZXJnZSh0aGlzLl9vbkRlc3Ryb3kkLCB0aGlzLl9kYXRhU291cmNlQ2hhbmdlZCQpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kcm9wZG93blZhbHVlcyQgPSBvZihkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIHJldHVybiBjb3VudCBmb3IgbWF0Y2hpbmcgc3VnZ2VzdGlvbiB3aXRoIGlucHV0IHRleHRcbiAgICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRTdWdnZXN0aW9uc0xlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICB0aGlzLl9kcm9wZG93blZhbHVlcyQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zPy5mb3JFYWNoKChzdWdnZXN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRUZXh0ICYmIHN1Z2dlc3Rpb24/LnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLmlucHV0VGV4dD8udHJpbSgpPy50b0xvd2VyQ2FzZSgpKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjb3VudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX3VwZGF0ZVNlYXJjaEFubm91bmNlbWVudFRleHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIC8vIGNyZWF0ZSBzZWFyY2ggc3VnZ2VzdGlvbiBtZXNzYWdlIHdpdGggY291bnQuXG4gICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25Db3VudCA9IHRoaXMuX2dldFN1Z2dlc3Rpb25zTGVuZ3RoKCk7XG4gICAgICAgIGNvbnN0IHNlYXJjaFN1Z2dlc3Rpb25NZXNzYWdlID0gdGhpcy5yZXNvbHZlVHJhbnNsYXRpb24oJ3BsYXRmb3JtU2VhcmNoRmllbGQuc2VhcmNoU3VnZ2VzdGlvbk1lc3NhZ2UnLCB7XG4gICAgICAgICAgICBjb3VudDogc3VnZ2VzdGlvbkNvdW50XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZWFyY2hTdWdnZXN0aW9uTmF2aWdhdGVNZXNzYWdlID0gdGhpcy5yZXNvbHZlVHJhbnNsYXRpb24oXG4gICAgICAgICAgICAncGxhdGZvcm1TZWFyY2hGaWVsZC5zZWFyY2hTdWdnZXN0aW9uTmF2aWdhdGVNZXNzYWdlJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLl9jdXJyZW50U2VhcmNoU3VnZ2VzdGlvbkFubm91bmNlbWVudE1lc3NhZ2UgPVxuICAgICAgICAgICAgc2VhcmNoU3VnZ2VzdGlvbk1lc3NhZ2UgKyAoc3VnZ2VzdGlvbkNvdW50ID4gMCA/IHNlYXJjaFN1Z2dlc3Rpb25OYXZpZ2F0ZU1lc3NhZ2UgOiAnJyk7XG4gICAgICAgIGlmICh0aGlzLmlucHV0VGV4dD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSh0aGlzLl9jdXJyZW50U2VhcmNoU3VnZ2VzdGlvbkFubm91bmNlbWVudE1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9zZXRVcE1vYmlsZU1vZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogU0VBUkNIX0ZJRUxEX0NPTVBPTkVOVCwgdXNlVmFsdWU6IHRoaXMgfV0sXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUR5bmFtaWNNb2R1bGUoXG4gICAgICAgICAgICB7IGlucHV0RmllbGRUZW1wbGF0ZTogdGhpcy5pbnB1dEZpZWxkVGVtcGxhdGUsIHN1Z2dlc3Rpb25NZW51VGVtcGxhdGU6IHRoaXMuc3VnZ2VzdGlvbk1lbnVUZW1wbGF0ZSB9LFxuICAgICAgICAgICAgUGxhdGZvcm1TZWFyY2hGaWVsZE1vYmlsZU1vZHVsZSxcbiAgICAgICAgICAgIFNlYXJjaEZpZWxkTW9iaWxlQ29tcG9uZW50LFxuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgIGluamVjdG9yXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3N1Z2dlc3Rpb25NYXRjaGVzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFN1Z2dlc3Rpb25NYXRjaGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdHJhbnNmb3JtKHZhbHVlczogc3RyaW5nW10gfCBudWxsLCBtYXRjaDogc3RyaW5nLCBtb2JpbGUgPSBmYWxzZSk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKCF2YWx1ZXMpIHtcbiAgICAgICAgICAgIHZhbHVlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb2JpbGUgJiYgIW1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZE1hdGNoID0gbWF0Y2gudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiB2YWx1ZXMuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHByb2Nlc3NlZE1hdGNoKSA+IC0xKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibW9iaWxlID8gbW9iaWxlVGVtcGxhdGUgOiBpbnB1dEZpZWxkVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNtb2JpbGVUZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRGaWVsZFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3NlYXJjaENhdGVnb3J5TWVudT5cbiAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZmRwLXNlYXJjaC1maWVsZF9fY2F0ZWdvcnktYnV0dG9uIGZkLWlucHV0LWdyb3VwX19idXR0b24gZmQtYnV0dG9uIGZkLWJ1dHRvbi0tbWVudSB7e1xuICAgICAgICAgICAgYXBwZWFyYW5jZT8uY2F0ZWdvcnlCdXR0b25DbGFzc1xuICAgICAgICB9fVwiXG4gICAgICAgIFtmZHBNZW51VHJpZ2dlckZvcl09XCJjYXRlZ29yeU1lbnVcIlxuICAgID5cbiAgICAgICAgQGlmICghaGlkZUNhdGVnb3J5TGFiZWwpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmRwLXNlYXJjaC1maWVsZF9fY2F0ZWdvcnktbGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7eyBfY3VycmVudENhdGVnb3J5Py5sYWJlbCB8fCBjYXRlZ29yeUxhYmVsIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgICA8ZmRwLW1lbnUgI2NhdGVnb3J5TWVudT5cbiAgICAgICAgQGZvciAoY2F0ZWdvcnkgb2YgY2F0ZWdvcmllczsgdHJhY2sgY2F0ZWdvcnkpIHtcbiAgICAgICAgICAgIDxmZHAtbWVudS1pdGVtIChpdGVtU2VsZWN0KT1cInNldEN1cnJlbnRDYXRlZ29yeShjYXRlZ29yeSlcIj57eyBjYXRlZ29yeS5sYWJlbCB9fSA8L2ZkcC1tZW51LWl0ZW0+XG4gICAgICAgIH1cbiAgICA8L2ZkcC1tZW51PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc2VhcmNoQ2F0ZWdvcnlTZWxlY3Q+XG4gICAgPGZkLXNlbGVjdFxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY2F0ZWdvcnlMYWJlbFwiXG4gICAgICAgIFtzZWxlY3RDb250cm9sQ2xhc3NdPVwiYXBwZWFyYW5jZT8uY2F0ZWdvcnlCdXR0b25DbGFzc1wiXG4gICAgICAgIFtzZWxlY3REcm9wZG93bkJ1dHRvbkNsYXNzXT1cImFwcGVhcmFuY2U/LmNhdGVnb3J5RHJvcGRvd25CdXR0b25DbGFzc1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZXRDdXJyZW50Q2F0ZWdvcnkoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICBAZm9yIChjYXRlZ29yeSBvZiBjYXRlZ29yaWVzOyB0cmFjayBjYXRlZ29yeSkge1xuICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwiY2F0ZWdvcnlcIj57eyBjYXRlZ29yeS5sYWJlbCB9fTwvbGk+XG4gICAgICAgIH1cbiAgICA8L2ZkLXNlbGVjdD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2lucHV0RmllbGRUZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmRwLXNlYXJjaC1maWVsZFwiXG4gICAgICAgIFtjbGFzcy53aXRoLWNhdGVnb3JpZXNdPVwiX3Nob3dDYXRlZ29yeURyb3Bkb3duXCJcbiAgICAgICAgW2NsYXNzLmlzLWxvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgW2NsYXNzLmlzLWNvbXBhY3RdPVwiY29udGVudERlbnNpdHlPYnNlcnZlci5pc0NvbXBhY3QkIHwgYXN5bmNcIlxuICAgICAgICBbY2xhc3MuaGlkZS1jYXRlZ29yeS1sYWJlbF09XCJoaWRlQ2F0ZWdvcnlMYWJlbFwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjaW5wdXRHcm91cFxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtc2VhcmNoLWZpZWxkX19pbnB1dC1ncm91cCBmZC1pbnB1dC1ncm91cCB7eyBhcHBlYXJhbmNlPy5zZWFyY2hDbGFzcyB9fVwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtZm9jdXNdPVwiaXNGb2N1c2VkXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChfc2hvd0NhdGVnb3J5RHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbiBmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvbiB7eyBhcHBlYXJhbmNlPy5zZWFyY2hDYXRlZ29yeUNsYXNzIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2F0ZWdvcnlNb2RlID09PSAnc2VsZWN0JyA/IHNlYXJjaENhdGVnb3J5U2VsZWN0IDogc2VhcmNoQ2F0ZWdvcnlNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgI2lucHV0RmllbGRcbiAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZHAtc2VhcmNoLWZpZWxkX19pbnB1dCBmZC1pbnB1dCBmZC1pbnB1dC1ncm91cF9faW5wdXQge3sgYXBwZWFyYW5jZT8uc2VhcmNoRmllbGRDbGFzcyB9fVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiX2lucHV0SWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCB8fCAoJ3BsYXRmb3JtU2VhcmNoRmllbGQuc2VhcmNoSW5wdXRMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJfbWVudUlkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAoX2Ryb3Bkb3duVmFsdWVzJCB8IGFzeW5jKT8ubGVuZ3RoICE9PSAwID8gKF9zaG93RHJvcGRvd24gPyAndHJ1ZScgOiAnZmFsc2UnKSA6IG51bGxcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiKF9kcm9wZG93blZhbHVlcyQgfCBhc3luYyk/Lmxlbmd0aCAhPT0gMFwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25TZWFyY2hTdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vYmlsZSAmJiBvcGVuTW9iaWxlTW9kZSgpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICBAaWYgKGlucHV0VGV4dCAmJiBpbnB1dFRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaW5wdXQtZ3JvdXBfX2FkZG9uIGZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIHt7IGFwcGVhcmFuY2U/LmFkZG9uQ2xhc3MgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCIhbW9iaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtU2VhcmNoRmllbGQuY2xlYXJCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkcC1zZWFyY2gtZmllbGRfX2NsZWFyIGZkLWJ1dHRvbiBmZC1idXR0b24tLXRyYW5zcGFyZW50IHt7IGFwcGVhcmFuY2U/LmJ1dHRvbkNsYXNzIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1pbnB1dC1ncm91cF9fYnV0dG9uXT1cIiFhcHBlYXJhbmNlPy5yZW1vdmVHcm91cEJ1dHRvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIl9jbGVhcklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhclRleHRJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJkZWNsaW5lXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGZvcmNlU2VhcmNoQnV0dG9uIHx8IGlzTG9hZGluZyB8fCAoIWlzTG9hZGluZyAmJiAhX2lzU2VhcmNoRG9uZSkpIHtcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbiBmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvbiB7eyBhcHBlYXJhbmNlPy5hZGRvbkNsYXNzIH19IHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPy5zZWFyY2hTdWJtaXRDbGFzc1xuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFkaXNhYmxlU2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIW1vYmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1TZWFyY2hGaWVsZC5zdWJtaXRCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZHAtc2VhcmNoLWZpZWxkX19zdWJtaXQgZmQtYnV0dG9uIGZkLWJ1dHRvbi0tdHJhbnNwYXJlbnQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT8uYnV0dG9uQ2xhc3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLWlucHV0LWdyb3VwX19idXR0b25dPVwiIWFwcGVhcmFuY2U/LnJlbW92ZUdyb3VwQnV0dG9uQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIl9zdWJtaXRJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaFN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBnbHlwaD1cInNlYXJjaFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghZGlzYWJsZVJlZnJlc2ggJiYgIWlzTG9hZGluZyAmJiAoX2lzUmVmcmVzaCB8fCBfaXNTZWFyY2hEb25lKSkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaW5wdXQtZ3JvdXBfX2FkZG9uIGZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIHt7IGFwcGVhcmFuY2U/LmFkZG9uQ2xhc3MgfX0ge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U/LnNlYXJjaFN1Ym1pdENsYXNzXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtU2VhcmNoRmllbGQuc3luY2hyb25pemVCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkcC1zZWFyY2gtZmllbGRfX2xvYWRpbmcgZmQtaW5wdXQtZ3JvdXBfX2J1dHRvbiBmZC1idXR0b24gZmQtYnV0dG9uLS10cmFuc3BhcmVudCB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U/LmJ1dHRvbkNsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJfcmVmcmVzaElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaFN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJzeW5jaHJvbml6ZVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChhcHBlYXJhbmNlPy5oZWxwZXJDbGFzcykge1xuICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiYXBwZWFyYW5jZT8uaGVscGVyQ2xhc3NcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzdWdnZXN0aW9uTWVudVRlbXBsYXRlPlxuICAgIEBpZiAoX2Ryb3Bkb3duVmFsdWVzJCB8IGFzeW5jIHwgc3VnZ2VzdGlvbk1hdGNoZXM6IGlucHV0VGV4dCA6IG1vYmlsZTsgYXMgc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgQGlmIChzdWdnZXN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLXNlYXJjaC1maWVsZF9fc3VnZ2VzdGlvbi1kcm9wZG93blwiIFthdHRyLmRpcl09XCJfZGlyXCI+XG4gICAgICAgICAgICAgICAgPG5hdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW1lbnVcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWNvbXBhY3RdPVwiY29udGVudERlbnNpdHlPYnNlcnZlci5pc0NvbXBhY3QkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtbWVudS0tbW9iaWxlXT1cIm1vYmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1tZW51LS1vdmVyZmxvd109XCIhbW9iaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiX21lbnVJZFwiXG4gICAgICAgICAgICAgICAgICAgICNtZW51XG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImZkLW1lbnVfX2xpc3RcIiByb2xlPVwibWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAodmFsdWUgb2Ygc3VnZ2VzdGlvbnM7IHRyYWNrIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkcFNlYXJjaEZpZWxkU3VnZ2VzdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkcC1zZWFyY2gtZmllbGRfX3N1Z2dlc3Rpb24taXRlbSBmZC1tZW51X19pdGVtIGZkLW1lbnVfX2xpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkl0ZW1DbGljayh2YWx1ZSk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24udGFiKT1cIm9uSXRlbUNsaWNrKHZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJvbkl0ZW1DbGljayh2YWx1ZSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayh2YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInZhbHVlIHwgaGlnaGxpZ2h0OiBpbnB1dFRleHQgOiB0cnVlIDogdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
598
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc2VhcmNoLWZpZWxkL3NlYXJjaC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NlYXJjaC1maWVsZC9zZWFyY2gtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFxQixPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUVKLFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxT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LEVBQUUsQ0FBQztRQUNsRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDOzhHQVhRLHFCQUFxQjs0R0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUpqQyxJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiwgRm9jdXNLZXlNYW5hZ2VyLCBMaXZlQW5ub3VuY2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRVNDQVBFLCBVUF9BUlJPVyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBDb25uZWN0ZWRQb3NpdGlvbiwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIERPQ1VNRU5ULCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFBpcGUsXG4gICAgUGlwZVRyYW5zZm9ybSxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgaXNPYnNlcnZhYmxlLCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgICBLZXlVdGlsLFxuICAgIE51bGxhYmxlLFxuICAgIFJ0bFNlcnZpY2UsXG4gICAgU2VhcmNoSGlnaGxpZ2h0UGlwZVxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU9ic2VydmVyLCBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgTW9iaWxlTW9kZUNvbmZpZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tb2JpbGUtbW9kZSc7XG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3BvcG92ZXInO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50LCBTZWxlY3RDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2VsZWN0JztcbmltcG9ydCB7IFNlYXJjaENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuaW1wb3J0IHsgRkRfU0hFTExCQVJfU0VBUkNIX0NPTVBPTkVOVCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGVsbGJhcic7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUsIHJlc29sdmVUcmFuc2xhdGlvblN5bmNGbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50LCBNZW51SXRlbUNvbXBvbmVudCwgTWVudVRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL21lbnUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCwgU2VhcmNoRmllbGREYXRhU291cmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IGVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQge1xuICAgIFNFQVJDSF9GSUVMRF9DT01QT05FTlQsXG4gICAgU2VhcmNoRmllbGRNb2JpbGVJbnRlcmZhY2Vcbn0gZnJvbSAnLi9zZWFyY2gtZmllbGQtbW9iaWxlL3NlYXJjaC1maWVsZC1tb2JpbGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBsYXRmb3JtU2VhcmNoRmllbGRNb2JpbGVNb2R1bGUgfSBmcm9tICcuL3NlYXJjaC1maWVsZC1tb2JpbGUvc2VhcmNoLWZpZWxkLW1vYmlsZS5tb2R1bGUnO1xuaW1wb3J0IHsgU2VhcmNoRmllbGRNb2JpbGVDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1maWVsZC1tb2JpbGUvc2VhcmNoLWZpZWxkL3NlYXJjaC1maWVsZC1tb2JpbGUuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hJbnB1dCB7XG4gICAgdGV4dDogc3RyaW5nO1xuICAgIGNhdGVnb3J5OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1Z2dlc3Rpb25JdGVtIHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGlzSGlzdG9yaWNhbD86IHN0cmluZztcbiAgICBkYXRhPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZhbHVlTGFiZWxJdGVtIHtcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFNlYXJjaEZpZWxkU3VnZ2VzdGlvbl0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdGFiaW5kZXg6ICctMSdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoRmllbGRTdWdnZXN0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgRm9jdXNhYmxlT3B0aW9uIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxufVxuXG5sZXQgc2VhcmNoRmllbGRJZENvdW50ID0gMDtcblxudHlwZSBBcHBlYXJhbmNlID0gU2VhcmNoQ29tcG9uZW50WydhcHBlYXJhbmNlJ10gfCB1bmRlZmluZWQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXNlYXJjaC1maWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NlYXJjaC1maWVsZC5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9TSEVMTEJBUl9TRUFSQ0hfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNlYXJjaEZpZWxkQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgICAgICBNZW51VHJpZ2dlckRpcmVjdGl2ZSxcbiAgICAgICAgTWVudUNvbXBvbmVudCxcbiAgICAgICAgTWVudUl0ZW1Db21wb25lbnQsXG4gICAgICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgT3B0aW9uQ29tcG9uZW50LFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgSWNvbkNvbXBvbmVudCxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgU2VhcmNoRmllbGRTdWdnZXN0aW9uRGlyZWN0aXZlLFxuICAgICAgICBBc3luY1BpcGUsXG4gICAgICAgIFNlYXJjaEhpZ2hsaWdodFBpcGUsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgZm9yd2FyZFJlZigoKSA9PiBTdWdnZXN0aW9uTWF0Y2hlc1BpcGUpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hGaWVsZENvbXBvbmVudFxuICAgIGV4dGVuZHMgQmFzZUNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2VhcmNoRmllbGRNb2JpbGVJbnRlcmZhY2UsIFNlYXJjaENvbXBvbmVudFxue1xuICAgIC8qKiBUeXBlIG9mIGNvbXBvbmVudCB1c2VkIHRvIHJlbmRlciB0aGUgY2F0ZWdvcmllcyBkcm9wZG93bi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNhdGVnb3J5TW9kZTogJ21lbnUnIHwgJ3NlbGVjdCcgPSAnbWVudSc7XG5cbiAgICAvKiogQWRkaXRpb25hbCBhcHBlYXJhbmNlIGNvbmZpZ3VyYXRpb24uICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYXBwZWFyYW5jZSh2YWx1ZTogQXBwZWFyYW5jZSkge1xuICAgICAgICBpZiAoZXF1YWwodmFsdWUsIHRoaXMuYXBwZWFyYW5jZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2FwcGVhcmFuY2UgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGdldCBhcHBlYXJhbmNlKCk6IEFwcGVhcmFuY2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwZWFyYW5jZTtcbiAgICB9XG5cbiAgICAvKiogUGxhY2Vob2xkZXIgdGV4dCBmb3Igc2VhcmNoIGlucHV0IGZpZWxkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIC8qKiBTZXQgTW9iaWxlIE1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZTogYm9vbGVhbjtcblxuICAgIC8qKiBTZWFyY2ggRmllbGQgTW9iaWxlIGNvbmZpZ3VyYXRpb24gKi9cbiAgICBASW5wdXQoKVxuICAgIG1vYmlsZUNvbmZpZzogTW9iaWxlTW9kZUNvbmZpZztcblxuICAgIC8qKiBXaGV0aGVyIGRpc3BsYXkgUmVmcmVzaCBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVSZWZyZXNoID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciBkaXNwbGF5IHNlYXJjaCBidXR0b24gKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc2FibGVTZWFyY2ggPSBmYWxzZTtcblxuICAgIC8qKiBMaXN0IG9mIHN0cmluZyB2YWx1ZXMgdG8gcG9wdWxhdGUgc3VnZ2VzdGlvbiBkcm9wZG93biBzZWxlY3Rpb24uICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc3VnZ2VzdGlvbnModmFsdWU6IFN1Z2dlc3Rpb25JdGVtW10gfCBPYnNlcnZhYmxlPFN1Z2dlc3Rpb25JdGVtW10+KSB7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zID0gdmFsdWU7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgLy8gY29udmVydCBzdWdnZXN0aW9ucyB0byBhbiBhcnJheSBvZiBzdHJpbmcgZm9yIFwiZHJvcGRvd24gdmFsdWVzXCJcbiAgICAgICAgICAgIGNvbnN0IGRyb3Bkb3duVmFsdWVzID0gdmFsdWUubWFwKChzdWdnZXN0aW9uOiBTdWdnZXN0aW9uSXRlbSkgPT4gc3VnZ2VzdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9kcm9wZG93blZhbHVlcyQgPSBvZihkcm9wZG93blZhbHVlcyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5fZHJvcGRvd25WYWx1ZXMkID0gdmFsdWUucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uSXRlbVtdKSA9PiBzdWdnZXN0aW9ucy5tYXAoKHN1Z2dlc3Rpb24pID0+IHN1Z2dlc3Rpb24udmFsdWUpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Ryb3Bkb3duVmFsdWVzJCA9IG9mKFtdKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgc3VnZ2VzdGlvbnMoKTogU3VnZ2VzdGlvbkl0ZW1bXSB8IE9ic2VydmFibGU8U3VnZ2VzdGlvbkl0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VnZ2VzdGlvbnM7XG4gICAgfVxuXG4gICAgLyoqIERhdGFzb3VyY2UgZm9yIHN1Z2dlc3Rpb24gbGlzdCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRhdGFTb3VyY2UodmFsdWU6IFNlYXJjaEZpZWxkRGF0YVNvdXJjZTxhbnk+KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZURhdGFTb3VyY2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBkYXRhU291cmNlKCk6IFNlYXJjaEZpZWxkRGF0YVNvdXJjZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gICAgfVxuXG4gICAgLyoqIEluaXRpYWwgaW5wdXQgdGV4dC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlucHV0VGV4dDogc3RyaW5nO1xuXG4gICAgLyoqIExpc3Qgb2YgY2F0ZWdvcmllcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjYXRlZ29yaWVzKHZhbHVlOiBWYWx1ZUxhYmVsSXRlbVtdKSB7XG4gICAgICAgIHRoaXMuX2NhdGVnb3JpZXMgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fc2hvd0NhdGVnb3J5RHJvcGRvd24gPSBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwO1xuICAgIH1cbiAgICBnZXQgY2F0ZWdvcmllcygpOiBWYWx1ZUxhYmVsSXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhdGVnb3JpZXM7XG4gICAgfVxuXG4gICAgLyoqIEN1cnJlbnQgY2F0ZWdvcnksIHZhbHVlIHNob3VsZCBiZSBwcmVzZW50IGluIGNhdGVnb3JpZXMgYXJyYXkgKi9cbiAgICBASW5wdXQoKVxuICAgIGN1cnJlbnRDYXRlZ29yeTogVmFsdWVMYWJlbEl0ZW07XG5cbiAgICAvKiogU2V0IGxhYmVsIGZvciBjYXRlZ29yeSBkcm9wZG93biBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBjYXRlZ29yeUxhYmVsID0gJ0NhdGVnb3J5JztcblxuICAgIC8qKiBIaWRlIGRpc3BsYXkgb2YgY2F0ZWdvcnkgbGFiZWwgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVDYXRlZ29yeUxhYmVsID0gZmFsc2U7XG5cbiAgICAvKiogVG9nZ2xlIFwibG9hZGluZ1wiIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEFSSUEgbGFiZWwgdG8gc3BlY2lmeSB3aGF0IHRoZSBzZWFyY2ggZmllbGQgaXNcbiAgICAgKiBOb3Qgc2hvd24gaW4gdGhlIFVJLCBvbmx5IHZpc2libGUgYnkgdGhlIHNjcmVlbi1yZWFkZXJzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqXG4gICAgICogSWQgb2YgZWxlbWVudHMgKHNlcGFyYXRlZCBieSBzcGFjZSkgZm9yIHNldHRpbmcgYXJpYS1sYWJlbGxlZGJ5IGZvciBzZWFyY2ggaW5wdXRcbiAgICAgKiBOb3Qgc2hvd24gaW4gdGhlIFVJLCBvbmx5IHZpc2libGUgYnkgdGhlIHNjcmVlbi1yZWFkZXJzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsbGVkYnk6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHRvIGFsd2F5cyBzaG93IHNlYXJjaCBidXR0b24uICovXG4gICAgQElucHV0KClcbiAgICBmb3JjZVNlYXJjaEJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzYWJsZSB0aGUgXCJzdWdnZXN0aW9ucyBmb3VuZFwiIGxpdmUgYW5ub3VuY2VyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZVN1Z2dlc3Rpb25zRm91bmRBbm5vdW5jZXIgPSBmYWxzZTtcblxuICAgIC8qKiBJbnB1dCBjaGFuZ2UgZXZlbnQuICovXG4gICAgQE91dHB1dCgpXG4gICAgaW5wdXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTZWFyY2hJbnB1dD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogU2VhcmNoIHN1Ym1pdCBldmVudC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWFyY2hTdWJtaXQ6IEV2ZW50RW1pdHRlcjxTZWFyY2hJbnB1dD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogQ2FuY2VsIHNlYXJjaCBldmVudC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjYW5jZWxTZWFyY2g6IEV2ZW50RW1pdHRlcjxTZWFyY2hJbnB1dD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICAvKiogT3BlbiBtb2JpbGUgbW9kZSBldmVudC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBpc09wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnY2F0ZWdvcnlEcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGNhdGVnb3J5RHJvcGRvd246IFBvcG92ZXJDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0R3JvdXAnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgICBpbnB1dEdyb3VwOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRGaWVsZCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGlucHV0RmllbGQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdpbnB1dEZpZWxkVGVtcGxhdGUnKVxuICAgIGlucHV0RmllbGRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnc3VnZ2VzdGlvbk1lbnVUZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHN1Z2dlc3Rpb25NZW51VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oU2VhcmNoRmllbGRTdWdnZXN0aW9uRGlyZWN0aXZlKVxuICAgIHN1Z2dlc3Rpb25JdGVtczogUXVlcnlMaXN0PFNlYXJjaEZpZWxkU3VnZ2VzdGlvbkRpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBzZWFyY2hGaWVsZFZhbHVlKCk6IFNlYXJjaElucHV0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuaW5wdXRUZXh0LFxuICAgICAgICAgICAgY2F0ZWdvcnk6IHRoaXMuX2N1cnJlbnRDYXRlZ29yeT8udmFsdWUgfHwgbnVsbFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKiogQGhpZGRlbiBGb2N1cyBzdGF0ZSAqL1xuICAgIGdldCBpc0ZvY3VzZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kb2N1bWVudD8uYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5pbnB1dEZpZWxkPy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ic2VydmFibGUgbGlzdCBvZiBzdHJpbmcgdmFsdWVzIHRha2VuIGZyb20gYHN1Z2dlc3Rpb25zYCB0byBwb3B1bGF0ZSBkcm9wZG93biBtZW51LlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfZHJvcGRvd25WYWx1ZXMkOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiA9IG9mKFtdKTtcblxuICAgIC8qKlxuICAgICAqIEN1cnJlbnRseSBzZXQgY2F0ZWdvcnkuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9jdXJyZW50Q2F0ZWdvcnk/OiBWYWx1ZUxhYmVsSXRlbTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdHlwZWFoZWFkIGRyb3Bkb3duLlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfc2hvd0Ryb3Bkb3duID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IGNhdGVnb3J5IGRyb3Bkb3duLiBUaGlzIGlzIGRlcGVuZGVudCBvbiBsZW5ndGggb2YgYGNhdGVnb3J5VmFsdWVzYCBwcm9wZXJ0eS5cbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3Nob3dDYXRlZ29yeURyb3Bkb3duID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pbnB1dElkID0gJyc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zdWJtaXRJZCA9ICcnO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfbWVudUlkID0gJyc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9yZWZyZXNoSWQgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NsZWFySWQgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2RpcjogRGlyZWN0aW9uID0gJ2x0cic7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGlzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaXNSZWZyZXNoID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc1NlYXJjaERvbmUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3VnZ2VzdGlvbnM6IFN1Z2dlc3Rpb25JdGVtW10gfCBPYnNlcnZhYmxlPFN1Z2dlc3Rpb25JdGVtW10+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kYXRhU291cmNlOiBTZWFyY2hGaWVsZERhdGFTb3VyY2U8YW55PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2F0ZWdvcmllczogVmFsdWVMYWJlbEl0ZW1bXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY3VycmVudFNlYXJjaFN1Z2dlc3Rpb25Bbm5vdW5jZW1lbnRNZXNzYWdlID0gJyc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1Z2dlc3Rpb25PdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3VnZ2VzdGlvblBvcnRhbDogVGVtcGxhdGVQb3J0YWw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1Z2dlc3Rpb25rZXlNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8U2VhcmNoRmllbGRTdWdnZXN0aW9uRGlyZWN0aXZlPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZXNvbHZlVHJhbnNsYXRpb24gPSByZXNvbHZlVHJhbnNsYXRpb25TeW5jRm4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTb3VyY2VDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FwcGVhcmFuY2U6IEFwcGVhcmFuY2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX3J0bDogUnRsU2VydmljZSxcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBfZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9saXZlQW5ub3VuY2VyOiBMaXZlQW5ub3VuY2VyLFxuICAgICAgICByZWFkb25seSBfZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICByZWFkb25seSBjb250ZW50RGVuc2l0eU9ic2VydmVyOiBDb250ZW50RGVuc2l0eU9ic2VydmVyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9jZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSAmJiB0aGlzLmlzT3BlbiAmJiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VTQ0FQRV0pKSB7XG4gICAgICAgICAgICB0aGlzLnNob3dEaWFsb2coZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYmFzZUlkID0gJ2ZkcC1zZWFyY2gtZmllbGQnO1xuICAgICAgICB0aGlzLl9pbnB1dElkID0gYCR7YmFzZUlkfS1pbnB1dC0ke3NlYXJjaEZpZWxkSWRDb3VudCsrfWA7XG4gICAgICAgIHRoaXMuX3N1Ym1pdElkID0gYCR7YmFzZUlkfS1zdWJtaXQtJHtzZWFyY2hGaWVsZElkQ291bnQrK31gO1xuICAgICAgICB0aGlzLl9tZW51SWQgPSBgJHtiYXNlSWR9LW1lbnUtJHtzZWFyY2hGaWVsZElkQ291bnQrK31gO1xuXG4gICAgICAgIHRoaXMuX2lzUmVmcmVzaCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX3J0bCkge1xuICAgICAgICAgICAgdGhpcy5fcnRsLnJ0bC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChpc1J0bDogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpciA9IGlzUnRsID8gJ3J0bCcgOiAnbHRyJztcbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0VXBNb2JpbGVNb2RlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCdjYXRlZ29yaWVzJyBpbiBjaGFuZ2VzIHx8ICdjdXJyZW50Q2F0ZWdvcnknIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudENhdGVnb3J5KHRoaXMuY3VycmVudENhdGVnb3J5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9zdWdnZXN0aW9uT3ZlcmxheVJlZikge1xuICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbk92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbk92ZXJsYXlSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jdXNlcyB0aGUgc2VhcmNoIGlucHV0IGZpZWxkLlxuICAgICAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0RmllbGQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIENhcHR1cmluZyBvbktleWRvd24gb2YgaW5wdXQgZWxlbWVudCAqL1xuICAgIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIWV2ZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtVUF9BUlJPVywgRE9XTl9BUlJPV10pKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fc3VnZ2VzdGlvbmtleU1hbmFnZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zdWdnZXN0aW9ua2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRVNDQVBFXSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VTdWdnZXN0aW9uTWVudSh0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhcHR1cmluZyB2YWx1ZSBjaGFuZ2UgaW4gaW5wdXQgdGV4dCBmaWVsZCBvZiBjb21ib2JveC5cbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgb25WYWx1ZUNoYW5nZShldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIC8vIHdoZW4gc2VhcmNoIHJlc3VsdCBub3QgY2hhbmdlZCBidXQgaW5wdXQgdGV4dCBpcyBjaGFuZ2VkLlxuICAgICAgICAvLyBhZ2FpbiBuZWVkIHRvIGFubm91bmNlIHRoZSByZXN1bHQsIHNvIGNsZWFyIHRoaXMgbWVzc2FnZS5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiAodGhpcy5fY3VycmVudFNlYXJjaFN1Z2dlc3Rpb25Bbm5vdW5jZW1lbnRNZXNzYWdlID0gJycpKTtcbiAgICAgICAgdGhpcy5faXNTZWFyY2hEb25lID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2lzUmVmcmVzaCA9IGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSAmJiAhdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMub3Blbk1vYmlsZU1vZGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2UuZW1pdCh0aGlzLnNlYXJjaEZpZWxkVmFsdWUpO1xuICAgICAgICBjb25zdCBpbnB1dFN0cjogc3RyaW5nID0gZXZlbnQudHJpbSgpO1xuICAgICAgICBpZiAoaW5wdXRTdHIubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlU3VnZ2VzdGlvbk1lbnUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMub3BlblN1Z2dlc3Rpb25NZW51KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kYXRhU291cmNlKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaCA9IG5ldyBNYXAoKTtcbiAgICAgICAgICAgIG1hdGNoLnNldCgna2V5d29yZCcsIGlucHV0U3RyKTtcbiAgICAgICAgICAgIG1hdGNoLnNldCgnY2F0ZWdvcnknLCB0aGlzLl9jdXJyZW50Q2F0ZWdvcnk/LnZhbHVlIHx8IG51bGwpO1xuXG4gICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UubWF0Y2gobWF0Y2gpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlU2VhcmNoQW5ub3VuY2VtZW50VGV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhcHR1cmluZyBpdGVtIHNlbGVjdGlvbiBmcm9tIGRyb3Bkb3duIG1lbnUgb2YgY29tYm9ib3guXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIG9uSXRlbUNsaWNrKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dFRleHQgPSBldmVudDtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VhcmNoRmllbGRWYWx1ZSk7XG4gICAgICAgIHRoaXMuc2VhcmNoU3VibWl0LmVtaXQodGhpcy5zZWFyY2hGaWVsZFZhbHVlKTtcbiAgICAgICAgdGhpcy5jbG9zZVN1Z2dlc3Rpb25NZW51KCk7XG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5zaG93RGlhbG9nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pc1NlYXJjaERvbmUgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggZ2V0cyBleGVjdXRlZCBvbiBrZXlib2FyZCBlbnRlciBvZiBpbnB1dCB0ZXh0IGZpZWxkLlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBvblNlYXJjaFN1Ym1pdChldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xuICAgICAgICAgICAgdGhpcy5jYW5jZWxTZWFyY2guZW1pdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWFyY2hTdWJtaXQuZW1pdCh0aGlzLnNlYXJjaEZpZWxkVmFsdWUpO1xuXG4gICAgICAgIHRoaXMuX2lzUmVmcmVzaCA9IHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLl9pc1NlYXJjaERvbmUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZVN1Z2dlc3Rpb25NZW51KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGN1cnJlbnQgY2F0ZWdvcnkuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHNldEN1cnJlbnRDYXRlZ29yeShjdXJyZW50Q2F0ZWdvcnk6IFZhbHVlTGFiZWxJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRDYXRlZ29yeSA9XG4gICAgICAgICAgICBjdXJyZW50Q2F0ZWdvcnkgJiZcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcz8uZmluZChcbiAgICAgICAgICAgICAgICAoY2F0ZWdvcnkpID0+IGNhdGVnb3J5LmxhYmVsID09PSBjdXJyZW50Q2F0ZWdvcnkubGFiZWwgJiYgY2F0ZWdvcnkudmFsdWUgPT09IGN1cnJlbnRDYXRlZ29yeS52YWx1ZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlLmVtaXQodGhpcy5zZWFyY2hGaWVsZFZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPcGVuIHN1Z2dlc3Rpb24gbWVudVxuICAgICAqL1xuICAgIG9wZW5TdWdnZXN0aW9uTWVudSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZVN1Z2dlc3Rpb25NZW51KCk7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25rZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcih0aGlzLnN1Z2dlc3Rpb25JdGVtcyk7XG4gICAgICAgIGlmICh0aGlzLl9zaG93RHJvcGRvd24pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBvdmVybGF5XG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLl9jcmVhdGVTdWdnZXRpb25PdmVybGF5Q29uZmlnKCk7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25PdmVybGF5UmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG5cbiAgICAgICAgLy8gZ2V0IHBvcnRhbCB0byBhdHRhY2ggdG8gb3ZlcmxheVxuICAgICAgICB0aGlzLl9zdWdnZXN0aW9uUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuc3VnZ2VzdGlvbk1lbnVUZW1wbGF0ZSwgdGhpcy5fdmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25PdmVybGF5UmVmLmF0dGFjaCh0aGlzLl9zdWdnZXN0aW9uUG9ydGFsKTtcblxuICAgICAgICAvLyBhZGQgc3Vic2NyaXB0aW9uIHRvIGNhcHR1cmUgb3V0c2lkZSBjbGlja3NcbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnY2xpY2snKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAhIXRoaXMuX3N1Z2dlc3Rpb25PdmVybGF5UmVmICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhdGhpcy5fc3VnZ2VzdGlvbk92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2hvd0Ryb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvY3VzID0gISh0YXJnZXQudGFnTmFtZSA9PT0gJ0lOUFVUJyAmJiB0aGlzLl9pbnB1dElkICE9PSB0YXJnZXQuaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VTdWdnZXN0aW9uTWVudShmb2N1cyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9zaG93RHJvcGRvd24gPSB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb3Blbk1vYmlsZU1vZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0RpYWxvZyh0cnVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGRpYWxvZ0FwcHJvdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25JdGVtQ2xpY2sodGhpcy5pbnB1dFRleHQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZGlhbG9nRGlzbWlzcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93RGlhbG9nKGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNob3dEaWFsb2coaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzT3BlbiAhPT0gaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGlzT3BlbjtcblxuICAgICAgICAgICAgdGhpcy5pc09wZW5DaGFuZ2UuZW1pdChpc09wZW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjbG9zZVN1Z2dlc3Rpb25NZW51KGZvY3VzID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3N1Z2dlc3Rpb25PdmVybGF5UmVmKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbk92ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgIGlmIChmb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3Nob3dEcm9wZG93biA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xlYXJUZXh0SW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRUZXh0ID0gJyc7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHRoaXMuc2VhcmNoRmllbGRWYWx1ZSk7XG4gICAgICAgIHRoaXMuY2FuY2VsU2VhcmNoLmVtaXQodGhpcy5zZWFyY2hGaWVsZFZhbHVlKTtcblxuICAgICAgICB0aGlzLl9pc1JlZnJlc2ggPSB0cnVlO1xuICAgICAgICB0aGlzLl9pc1NlYXJjaERvbmUgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmNsb3NlU3VnZ2VzdGlvbk1lbnUoZmFsc2UpO1xuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY3JlYXRlU3VnZ2V0aW9uT3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb25zOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5pbnB1dEdyb3VwKVxuICAgICAgICAgICAgLndpdGhMb2NrZWRQb3NpdGlvbigpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhwb3NpdGlvbnMpO1xuICAgICAgICBjb25zdCBzY3JvbGxTdHJhdGVneSA9IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XG4gICAgICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3ksXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuaW5wdXRHcm91cC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2luaXRpYWxpemVEYXRhU291cmNlKGRhdGFTb3VyY2U6IFNlYXJjaEZpZWxkRGF0YVNvdXJjZTxhbnk+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2RhdGFTb3VyY2VDaGFuZ2VkJC5uZXh0KCk7XG4gICAgICAgIGRhdGFTb3VyY2VcbiAgICAgICAgICAgIC5vcGVuKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbChtZXJnZSh0aGlzLl9vbkRlc3Ryb3kkLCB0aGlzLl9kYXRhU291cmNlQ2hhbmdlZCQpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kcm9wZG93blZhbHVlcyQgPSBvZihkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIHJldHVybiBjb3VudCBmb3IgbWF0Y2hpbmcgc3VnZ2VzdGlvbiB3aXRoIGlucHV0IHRleHRcbiAgICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRTdWdnZXN0aW9uc0xlbmd0aCgpOiBudW1iZXIge1xuICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICB0aGlzLl9kcm9wZG93blZhbHVlcyQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zPy5mb3JFYWNoKChzdWdnZXN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRUZXh0ICYmIHN1Z2dlc3Rpb24/LnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLmlucHV0VGV4dD8udHJpbSgpPy50b0xvd2VyQ2FzZSgpKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjb3VudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX3VwZGF0ZVNlYXJjaEFubm91bmNlbWVudFRleHQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIC8vIGNyZWF0ZSBzZWFyY2ggc3VnZ2VzdGlvbiBtZXNzYWdlIHdpdGggY291bnQuXG4gICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25Db3VudCA9IHRoaXMuX2dldFN1Z2dlc3Rpb25zTGVuZ3RoKCk7XG4gICAgICAgIGNvbnN0IHNlYXJjaFN1Z2dlc3Rpb25NZXNzYWdlID0gdGhpcy5yZXNvbHZlVHJhbnNsYXRpb24oJ3BsYXRmb3JtU2VhcmNoRmllbGQuc2VhcmNoU3VnZ2VzdGlvbk1lc3NhZ2UnLCB7XG4gICAgICAgICAgICBjb3VudDogc3VnZ2VzdGlvbkNvdW50XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZWFyY2hTdWdnZXN0aW9uTmF2aWdhdGVNZXNzYWdlID0gdGhpcy5yZXNvbHZlVHJhbnNsYXRpb24oXG4gICAgICAgICAgICAncGxhdGZvcm1TZWFyY2hGaWVsZC5zZWFyY2hTdWdnZXN0aW9uTmF2aWdhdGVNZXNzYWdlJ1xuICAgICAgICApO1xuICAgICAgICB0aGlzLl9jdXJyZW50U2VhcmNoU3VnZ2VzdGlvbkFubm91bmNlbWVudE1lc3NhZ2UgPVxuICAgICAgICAgICAgc2VhcmNoU3VnZ2VzdGlvbk1lc3NhZ2UgKyAoc3VnZ2VzdGlvbkNvdW50ID4gMCA/IHNlYXJjaFN1Z2dlc3Rpb25OYXZpZ2F0ZU1lc3NhZ2UgOiAnJyk7XG4gICAgICAgIGlmICh0aGlzLmlucHV0VGV4dD8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSh0aGlzLl9jdXJyZW50U2VhcmNoU3VnZ2VzdGlvbkFubm91bmNlbWVudE1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGFzeW5jIF9zZXRVcE1vYmlsZU1vZGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogU0VBUkNIX0ZJRUxEX0NPTVBPTkVOVCwgdXNlVmFsdWU6IHRoaXMgfV0sXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuX2luamVjdG9yXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGF3YWl0IHRoaXMuX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUR5bmFtaWNNb2R1bGUoXG4gICAgICAgICAgICB7IGlucHV0RmllbGRUZW1wbGF0ZTogdGhpcy5pbnB1dEZpZWxkVGVtcGxhdGUsIHN1Z2dlc3Rpb25NZW51VGVtcGxhdGU6IHRoaXMuc3VnZ2VzdGlvbk1lbnVUZW1wbGF0ZSB9LFxuICAgICAgICAgICAgUGxhdGZvcm1TZWFyY2hGaWVsZE1vYmlsZU1vZHVsZSxcbiAgICAgICAgICAgIFNlYXJjaEZpZWxkTW9iaWxlQ29tcG9uZW50LFxuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgIGluamVjdG9yXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3N1Z2dlc3Rpb25NYXRjaGVzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFN1Z2dlc3Rpb25NYXRjaGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdHJhbnNmb3JtKHZhbHVlczogc3RyaW5nW10gfCBudWxsLCBtYXRjaDogc3RyaW5nLCBtb2JpbGUgPSBmYWxzZSk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKCF2YWx1ZXMpIHtcbiAgICAgICAgICAgIHZhbHVlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtb2JpbGUgJiYgIW1hdGNoKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb2Nlc3NlZE1hdGNoID0gbWF0Y2gudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiB2YWx1ZXMuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHByb2Nlc3NlZE1hdGNoKSA+IC0xKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibW9iaWxlID8gbW9iaWxlVGVtcGxhdGUgOiBpbnB1dEZpZWxkVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNtb2JpbGVUZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRGaWVsZFRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI3NlYXJjaENhdGVnb3J5TWVudT5cbiAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiZmRwLXNlYXJjaC1maWVsZF9fY2F0ZWdvcnktYnV0dG9uIGZkLWlucHV0LWdyb3VwX19idXR0b24gZmQtYnV0dG9uIGZkLWJ1dHRvbi0tbWVudSB7e1xuICAgICAgICAgICAgYXBwZWFyYW5jZT8uY2F0ZWdvcnlCdXR0b25DbGFzc1xuICAgICAgICB9fVwiXG4gICAgICAgIFtmZHBNZW51VHJpZ2dlckZvcl09XCJjYXRlZ29yeU1lbnVcIlxuICAgID5cbiAgICAgICAgQGlmICghaGlkZUNhdGVnb3J5TGFiZWwpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmRwLXNlYXJjaC1maWVsZF9fY2F0ZWdvcnktbGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7eyBfY3VycmVudENhdGVnb3J5Py5sYWJlbCB8fCBjYXRlZ29yeUxhYmVsIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgICA8ZmRwLW1lbnUgI2NhdGVnb3J5TWVudT5cbiAgICAgICAgQGZvciAoY2F0ZWdvcnkgb2YgY2F0ZWdvcmllczsgdHJhY2sgY2F0ZWdvcnkpIHtcbiAgICAgICAgICAgIDxmZHAtbWVudS1pdGVtIChpdGVtU2VsZWN0KT1cInNldEN1cnJlbnRDYXRlZ29yeShjYXRlZ29yeSlcIj57eyBjYXRlZ29yeS5sYWJlbCB9fSA8L2ZkcC1tZW51LWl0ZW0+XG4gICAgICAgIH1cbiAgICA8L2ZkcC1tZW51PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjc2VhcmNoQ2F0ZWdvcnlTZWxlY3Q+XG4gICAgPGZkLXNlbGVjdFxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY2F0ZWdvcnlMYWJlbFwiXG4gICAgICAgIFtzZWxlY3RDb250cm9sQ2xhc3NdPVwiYXBwZWFyYW5jZT8uY2F0ZWdvcnlCdXR0b25DbGFzc1wiXG4gICAgICAgIFtzZWxlY3REcm9wZG93bkJ1dHRvbkNsYXNzXT1cImFwcGVhcmFuY2U/LmNhdGVnb3J5RHJvcGRvd25CdXR0b25DbGFzc1wiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZXRDdXJyZW50Q2F0ZWdvcnkoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgICBAZm9yIChjYXRlZ29yeSBvZiBjYXRlZ29yaWVzOyB0cmFjayBjYXRlZ29yeSkge1xuICAgICAgICAgICAgPGxpIGZkLW9wdGlvbiBbdmFsdWVdPVwiY2F0ZWdvcnlcIj57eyBjYXRlZ29yeS5sYWJlbCB9fTwvbGk+XG4gICAgICAgIH1cbiAgICA8L2ZkLXNlbGVjdD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2lucHV0RmllbGRUZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmRwLXNlYXJjaC1maWVsZFwiXG4gICAgICAgIFtjbGFzcy53aXRoLWNhdGVnb3JpZXNdPVwiX3Nob3dDYXRlZ29yeURyb3Bkb3duXCJcbiAgICAgICAgW2NsYXNzLmlzLWxvYWRpbmddPVwiaXNMb2FkaW5nXCJcbiAgICAgICAgW2NsYXNzLmlzLWNvbXBhY3RdPVwiY29udGVudERlbnNpdHlPYnNlcnZlci5pc0NvbXBhY3QkIHwgYXN5bmNcIlxuICAgICAgICBbY2xhc3MuaGlkZS1jYXRlZ29yeS1sYWJlbF09XCJoaWRlQ2F0ZWdvcnlMYWJlbFwiXG4gICAgPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAjaW5wdXRHcm91cFxuICAgICAgICAgICAgY2xhc3M9XCJmZHAtc2VhcmNoLWZpZWxkX19pbnB1dC1ncm91cCBmZC1pbnB1dC1ncm91cCB7eyBhcHBlYXJhbmNlPy5zZWFyY2hDbGFzcyB9fVwiXG4gICAgICAgICAgICBbY2xhc3MuaXMtZm9jdXNdPVwiaXNGb2N1c2VkXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGlmIChfc2hvd0NhdGVnb3J5RHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbiBmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvbiB7eyBhcHBlYXJhbmNlPy5zZWFyY2hDYXRlZ29yeUNsYXNzIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2F0ZWdvcnlNb2RlID09PSAnc2VsZWN0JyA/IHNlYXJjaENhdGVnb3J5U2VsZWN0IDogc2VhcmNoQ2F0ZWdvcnlNZW51XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgI2lucHV0RmllbGRcbiAgICAgICAgICAgICAgICB0eXBlPVwic2VhcmNoXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZHAtc2VhcmNoLWZpZWxkX19pbnB1dCBmZC1pbnB1dCBmZC1pbnB1dC1ncm91cF9faW5wdXQge3sgYXBwZWFyYW5jZT8uc2VhcmNoRmllbGRDbGFzcyB9fVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiX2lucHV0SWRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCB8fCAoJ3BsYXRmb3JtU2VhcmNoRmllbGQuc2VhcmNoSW5wdXRMYWJlbCcgfCBmZFRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJfbWVudUlkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAoX2Ryb3Bkb3duVmFsdWVzJCB8IGFzeW5jKT8ubGVuZ3RoICE9PSAwID8gKF9zaG93RHJvcGRvd24gPyAndHJ1ZScgOiAnZmFsc2UnKSA6IG51bGxcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiKF9kcm9wZG93blZhbHVlcyQgfCBhc3luYyk/Lmxlbmd0aCAhPT0gMFwiXG4gICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25TZWFyY2hTdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vYmlsZSAmJiBvcGVuTW9iaWxlTW9kZSgpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICBAaWYgKGlucHV0VGV4dCAmJiBpbnB1dFRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtaW5wdXQtZ3JvdXBfX2FkZG9uIGZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIHt7IGFwcGVhcmFuY2U/LmFkZG9uQ2xhc3MgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCIhbW9iaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtU2VhcmNoRmllbGQuY2xlYXJCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkcC1zZWFyY2gtZmllbGRfX2NsZWFyIGZkLWJ1dHRvbiBmZC1idXR0b24tLXRyYW5zcGFyZW50IHt7IGFwcGVhcmFuY2U/LmJ1dHRvbkNsYXNzIH19XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1pbnB1dC1ncm91cF9fYnV0dG9uXT1cIiFhcHBlYXJhbmNlPy5yZW1vdmVHcm91cEJ1dHRvbkNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gJycgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIl9jbGVhcklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGVhclRleHRJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJkZWNsaW5lXCI+PC9mZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGZvcmNlU2VhcmNoQnV0dG9uIHx8IGlzTG9hZGluZyB8fCAoIWlzTG9hZGluZyAmJiAhX2lzU2VhcmNoRG9uZSkpIHtcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbiBmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvbiB7eyBhcHBlYXJhbmNlPy5hZGRvbkNsYXNzIH19IHt7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPy5zZWFyY2hTdWJtaXRDbGFzc1xuICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFkaXNhYmxlU2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIW1vYmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1TZWFyY2hGaWVsZC5zdWJtaXRCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZHAtc2VhcmNoLWZpZWxkX19zdWJtaXQgZmQtYnV0dG9uIGZkLWJ1dHRvbi0tdHJhbnNwYXJlbnQge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT8uYnV0dG9uQ2xhc3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZkLWlucHV0LWdyb3VwX19idXR0b25dPVwiIWFwcGVhcmFuY2U/LnJlbW92ZUdyb3VwQnV0dG9uQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIl9zdWJtaXRJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQgPyAnJyA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaFN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtaWNvbiBnbHlwaD1cInNlYXJjaFwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghZGlzYWJsZVJlZnJlc2ggJiYgIWlzTG9hZGluZyAmJiAoX2lzUmVmcmVzaCB8fCBfaXNTZWFyY2hEb25lKSkge1xuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtaW5wdXQtZ3JvdXBfX2FkZG9uIGZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uIHt7IGFwcGVhcmFuY2U/LmFkZG9uQ2xhc3MgfX0ge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U/LnNlYXJjaFN1Ym1pdENsYXNzXG4gICAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtU2VhcmNoRmllbGQuc3luY2hyb25pemVCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkcC1zZWFyY2gtZmllbGRfX2xvYWRpbmcgZmQtaW5wdXQtZ3JvdXBfX2J1dHRvbiBmZC1idXR0b24gZmQtYnV0dG9uLS10cmFuc3BhcmVudCB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U/LmJ1dHRvbkNsYXNzXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJfcmVmcmVzaElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaFN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWljb24gZ2x5cGg9XCJzeW5jaHJvbml6ZVwiPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChhcHBlYXJhbmNlPy5oZWxwZXJDbGFzcykge1xuICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiYXBwZWFyYW5jZT8uaGVscGVyQ2xhc3NcIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNzdWdnZXN0aW9uTWVudVRlbXBsYXRlPlxuICAgIEBpZiAoX2Ryb3Bkb3duVmFsdWVzJCB8IGFzeW5jIHwgc3VnZ2VzdGlvbk1hdGNoZXM6IGlucHV0VGV4dCA6IG1vYmlsZTsgYXMgc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgQGlmIChzdWdnZXN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLXNlYXJjaC1maWVsZF9fc3VnZ2VzdGlvbi1kcm9wZG93blwiIFthdHRyLmRpcl09XCJfZGlyXCI+XG4gICAgICAgICAgICAgICAgPG5hdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW1lbnVcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWNvbXBhY3RdPVwiY29udGVudERlbnNpdHlPYnNlcnZlci5pc0NvbXBhY3QkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtbWVudS0tbW9iaWxlXT1cIm1vYmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1tZW51LS1vdmVyZmxvd109XCIhbW9iaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiX21lbnVJZFwiXG4gICAgICAgICAgICAgICAgICAgICNtZW51XG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImZkLW1lbnVfX2xpc3RcIiByb2xlPVwibWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAodmFsdWUgb2Ygc3VnZ2VzdGlvbnM7IHRyYWNrIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkcFNlYXJjaEZpZWxkU3VnZ2VzdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkcC1zZWFyY2gtZmllbGRfX3N1Z2dlc3Rpb24taXRlbSBmZC1tZW51X19pdGVtIGZkLW1lbnVfX2xpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkl0ZW1DbGljayh2YWx1ZSk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24udGFiKT1cIm9uSXRlbUNsaWNrKHZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJvbkl0ZW1DbGljayh2YWx1ZSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayh2YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInZhbHVlIHwgaGlnaGxpZ2h0OiBpbnB1dFRleHQgOiB0cnVlIDogdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9uYXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=