desy-angular 14.1.0 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/fesm2022/desy-angular.mjs +1842 -1402
- package/fesm2022/desy-angular.mjs.map +1 -1
- package/index.d.ts +3 -0
- package/lib/desy-forms/components/character-count/character-count.component.d.ts +1 -8
- package/lib/desy-forms/components/checkboxes/checkboxes-parent.component.d.ts +8 -0
- package/lib/desy-forms/components/checkboxes/checkboxes.component.d.ts +26 -0
- package/lib/desy-forms/components/date-input/date-input.component.d.ts +13 -7
- package/lib/desy-forms/components/datepicker/datepicker.component.d.ts +1 -5
- package/lib/desy-forms/components/fieldset/fieldset.component.d.ts +7 -0
- package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +5 -0
- package/lib/desy-forms/components/input/input.component.d.ts +1 -4
- package/lib/desy-forms/components/input-group/input-group.component.d.ts +7 -0
- package/lib/desy-forms/components/label/label.component.d.ts +1 -2
- package/lib/desy-forms/components/radios/radios-parent.component.d.ts +8 -0
- package/lib/desy-forms/components/radios/radios.component.d.ts +26 -0
- package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +1 -2
- package/lib/desy-forms/components/select/option/option.component.d.ts +1 -2
- package/lib/desy-forms/components/textarea/textarea.component.d.ts +1 -3
- package/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.d.ts +1 -1
- package/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.d.ts +3 -3
- package/lib/desy-forms/components/tree/tree-item/tree-item.component.d.ts +11 -7
- package/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.d.ts +1 -1
- package/lib/desy-forms/components/tree/tree-sub/tree-sub.component.d.ts +2 -2
- package/lib/desy-forms/components/tree/tree.component.d.ts +67 -7
- package/lib/desy-forms/directives/condition.directive.d.ts +5 -0
- package/lib/desy-forms/interfaces/select-item-data.d.ts +1 -1
- package/lib/desy-modals/components/dialog/dialog.component.d.ts +1 -1
- package/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.d.ts +2 -2
- package/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.d.ts +7 -0
- package/lib/desy-nav/components/header/header-subnav/header-subnav.component.d.ts +1 -1
- package/lib/desy-nav/components/header-advanced/header-advanced-dropdown/header-advanced-dropdown.component.d.ts +2 -2
- package/lib/desy-nav/components/menubar/menubar.component.d.ts +7 -0
- package/lib/desy-nav/interfaces/header-dropdown-data.d.ts +1 -1
- package/lib/desy-nav/interfaces/header-mobile-text-data.d.ts +1 -1
- package/lib/desy-nav/interfaces/header-subnav-data.d.ts +1 -1
- package/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.d.ts +2 -2
- package/lib/desy-nav/interfaces/nav-item-event.data.d.ts +1 -1
- package/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.d.ts +1 -1
- package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +56 -1
- package/lib/desy-tables/directives/cell.directive.d.ts +3 -0
- package/lib/desy-tables/directives/row.directive.d.ts +7 -0
- package/lib/desy-tables/interfaces/head-cell-data.d.ts +1 -1
- package/lib/desy-views/components/alert/alert.component.d.ts +1 -1
- package/lib/shared/components/accessibility/accessibility.component.d.ts +3 -0
- package/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.d.ts +8 -0
- package/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.d.ts +6 -0
- package/lib/shared/components/content-base/content-base.component.d.ts +3 -0
- package/lib/shared/components/text-or-html-required/text-or-html-required.component.d.ts +4 -0
- package/lib/shared/decorators/desy-content-child.decorator.d.ts +11 -0
- package/lib/shared/decorators/desy-on-input-change.decorator.d.ts +4 -0
- package/lib/shared/directives/content-change.directive.d.ts +4 -0
- package/lib/shared/directives/custom-inner-content.directive.d.ts +6 -0
- package/lib/shared/pipes/external-href.pipe.d.ts +4 -0
- package/lib/shared/utils/search-utils.d.ts +10 -0
- package/lib/shared/utils/string-utils.d.ts +7 -0
- package/package.json +9 -11
- package/esm2022/desy-angular.mjs +0 -2
- package/esm2022/lib/desy-angular.module.mjs +0 -76
- package/esm2022/lib/desy-buttons/components/button/button.component.mjs +0 -118
- package/esm2022/lib/desy-buttons/components/button-loader/button-loader.component.mjs +0 -66
- package/esm2022/lib/desy-buttons/components/dropdown/dropdown.component.mjs +0 -158
- package/esm2022/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +0 -39
- package/esm2022/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.mjs +0 -14
- package/esm2022/lib/desy-buttons/components/listbox/listbox.component.mjs +0 -335
- package/esm2022/lib/desy-buttons/components/pill/pill.component.mjs +0 -83
- package/esm2022/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.mjs +0 -17
- package/esm2022/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.mjs +0 -17
- package/esm2022/lib/desy-buttons/components/toggle/toggle.component.mjs +0 -62
- package/esm2022/lib/desy-buttons/desy-buttons.module.mjs +0 -81
- package/esm2022/lib/desy-buttons/interfaces/listbox-item-data.mjs +0 -2
- package/esm2022/lib/desy-buttons/interfaces/listbox-label-data.mjs +0 -2
- package/esm2022/lib/desy-commons/components/content/content.component.mjs +0 -14
- package/esm2022/lib/desy-commons/components/description/description.component.mjs +0 -19
- package/esm2022/lib/desy-commons/components/divider/divider.component.mjs +0 -16
- package/esm2022/lib/desy-commons/components/icon/icon.component.mjs +0 -16
- package/esm2022/lib/desy-commons/components/title/title.component.mjs +0 -17
- package/esm2022/lib/desy-commons/desy-commons.module.mjs +0 -52
- package/esm2022/lib/desy-commons/interfaces/content-data.mjs +0 -2
- package/esm2022/lib/desy-commons/interfaces/description-data.mjs +0 -2
- package/esm2022/lib/desy-commons/interfaces/divider-data.mjs +0 -2
- package/esm2022/lib/desy-commons/interfaces/icon-data.mjs +0 -2
- package/esm2022/lib/desy-commons/interfaces/index.mjs +0 -6
- package/esm2022/lib/desy-commons/interfaces/title-data.mjs +0 -2
- package/esm2022/lib/desy-forms/components/character-count/character-count.component.mjs +0 -156
- package/esm2022/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +0 -189
- package/esm2022/lib/desy-forms/components/checkboxes/checkboxes-parent.component.mjs +0 -15
- package/esm2022/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +0 -269
- package/esm2022/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +0 -55
- package/esm2022/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.mjs +0 -19
- package/esm2022/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +0 -42
- package/esm2022/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.mjs +0 -55
- package/esm2022/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.mjs +0 -51
- package/esm2022/lib/desy-forms/components/date-input/date-input.component.mjs +0 -294
- package/esm2022/lib/desy-forms/components/datepicker/datepicker.component.mjs +0 -190
- package/esm2022/lib/desy-forms/components/datepicker/datepicker.pipe.mjs +0 -34
- package/esm2022/lib/desy-forms/components/error-message/error-message.component.mjs +0 -32
- package/esm2022/lib/desy-forms/components/fieldset/fieldset.component.mjs +0 -59
- package/esm2022/lib/desy-forms/components/fieldset/legend/legend.component.mjs +0 -34
- package/esm2022/lib/desy-forms/components/file-upload/file-upload.component.mjs +0 -78
- package/esm2022/lib/desy-forms/components/form-field/form-field.component.mjs +0 -120
- package/esm2022/lib/desy-forms/components/hint/hint.component.mjs +0 -30
- package/esm2022/lib/desy-forms/components/input/input.component.mjs +0 -110
- package/esm2022/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.mjs +0 -20
- package/esm2022/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.mjs +0 -59
- package/esm2022/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +0 -42
- package/esm2022/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.mjs +0 -51
- package/esm2022/lib/desy-forms/components/input-group/input-group.component.mjs +0 -229
- package/esm2022/lib/desy-forms/components/label/label.component.mjs +0 -39
- package/esm2022/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +0 -136
- package/esm2022/lib/desy-forms/components/radios/radios-parent.component.mjs +0 -15
- package/esm2022/lib/desy-forms/components/radios/radios.component.mjs +0 -282
- package/esm2022/lib/desy-forms/components/search-bar/search-bar.component.mjs +0 -65
- package/esm2022/lib/desy-forms/components/select/option/option.component.mjs +0 -22
- package/esm2022/lib/desy-forms/components/select/option-group/option-group.component.mjs +0 -18
- package/esm2022/lib/desy-forms/components/select/select-item/select-item.component.mjs +0 -14
- package/esm2022/lib/desy-forms/components/select/select.component.mjs +0 -94
- package/esm2022/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.mjs +0 -12
- package/esm2022/lib/desy-forms/components/textarea/textarea.component.mjs +0 -86
- package/esm2022/lib/desy-forms/components/tree/interfaces/itree-item.mjs +0 -3
- package/esm2022/lib/desy-forms/components/tree/interfaces/quit-tree-item-focus-options.mjs +0 -2
- package/esm2022/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +0 -174
- package/esm2022/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +0 -378
- package/esm2022/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.mjs +0 -25
- package/esm2022/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +0 -16
- package/esm2022/lib/desy-forms/components/tree/tree.component.mjs +0 -359
- package/esm2022/lib/desy-forms/desy-forms.module.mjs +0 -223
- package/esm2022/lib/desy-forms/directives/condition.directive.mjs +0 -34
- package/esm2022/lib/desy-forms/interfaces/error-message-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/fieldset-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/hint-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/index.mjs +0 -13
- package/esm2022/lib/desy-forms/interfaces/item-checkbox-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-date-input-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-divider-date-input-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-divider-input-group-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-input-group-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-radio-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/item-radio-with-template-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/label-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/legend-data.mjs +0 -2
- package/esm2022/lib/desy-forms/interfaces/select-item-data.mjs +0 -2
- package/esm2022/lib/desy-modals/components/dialog/dialog.component.mjs +0 -151
- package/esm2022/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.mjs +0 -25
- package/esm2022/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.mjs +0 -23
- package/esm2022/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.mjs +0 -23
- package/esm2022/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.mjs +0 -23
- package/esm2022/lib/desy-modals/components/modal/modal.component.mjs +0 -183
- package/esm2022/lib/desy-modals/desy-modals.module.mjs +0 -61
- package/esm2022/lib/desy-modals/interfaces/dialog-options.mjs +0 -2
- package/esm2022/lib/desy-modals/interfaces/index.mjs +0 -7
- package/esm2022/lib/desy-modals/interfaces/modal-button-data.mjs +0 -2
- package/esm2022/lib/desy-modals/interfaces/modal-data.mjs +0 -2
- package/esm2022/lib/desy-modals/interfaces/modal-icon-data.mjs +0 -2
- package/esm2022/lib/desy-modals/interfaces/modal-options.mjs +0 -2
- package/esm2022/lib/desy-modals/interfaces/open-dialog-result.mjs +0 -2
- package/esm2022/lib/desy-modals/services/dialog.service.mjs +0 -114
- package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.mjs +0 -16
- package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +0 -53
- package/esm2022/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.mjs +0 -19
- package/esm2022/lib/desy-nav/components/error-summary/error-summary.component.mjs +0 -67
- package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +0 -25
- package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta.component.mjs +0 -31
- package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +0 -25
- package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +0 -21
- package/esm2022/lib/desy-nav/components/footer/footer.component.mjs +0 -89
- package/esm2022/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.mjs +0 -15
- package/esm2022/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.mjs +0 -46
- package/esm2022/lib/desy-nav/components/header/header-mobileText/header-mobile-text.component.mjs +0 -336
- package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +0 -31
- package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +0 -36
- package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +0 -20
- package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +0 -15
- package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +0 -93
- package/esm2022/lib/desy-nav/components/header/header-subnav/header-subnav.component.mjs +0 -41
- package/esm2022/lib/desy-nav/components/header/header.component.mjs +0 -119
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-custom-navigation/header-custom-navigation.component.mjs +0 -14
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-dropdown/header-advanced-dropdown.component.mjs +0 -38
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-logo/header-advanced-logo.component.mjs +0 -37
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-sub/header-advanced-sub.component.mjs +0 -42
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-subtitle/header-advanced-subtitle.component.mjs +0 -14
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-super/header-advanced-super.component.mjs +0 -42
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-title/header-advanced-title.component.mjs +0 -19
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced-title-container/header-advanced-title-container.component.mjs +0 -38
- package/esm2022/lib/desy-nav/components/header-advanced/header-advanced.component.mjs +0 -54
- package/esm2022/lib/desy-nav/components/header-mini/header-mini.component.mjs +0 -32
- package/esm2022/lib/desy-nav/components/links-list/links-list-icon-right/links-list-icon-right.component.mjs +0 -16
- package/esm2022/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +0 -46
- package/esm2022/lib/desy-nav/components/links-list/links-list-item-sub/links-list-item-sub.component.mjs +0 -14
- package/esm2022/lib/desy-nav/components/links-list/links-list.component.mjs +0 -44
- package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +0 -42
- package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +0 -76
- package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +0 -55
- package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +0 -49
- package/esm2022/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +0 -854
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +0 -44
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.mjs +0 -18
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +0 -34
- package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +0 -102
- package/esm2022/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +0 -51
- package/esm2022/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.mjs +0 -14
- package/esm2022/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.mjs +0 -36
- package/esm2022/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.mjs +0 -27
- package/esm2022/lib/desy-nav/components/menubar/directives/menubaritem.directive.mjs +0 -45
- package/esm2022/lib/desy-nav/components/menubar/menubar.component.mjs +0 -962
- package/esm2022/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +0 -43
- package/esm2022/lib/desy-nav/components/nav/nav.component.mjs +0 -115
- package/esm2022/lib/desy-nav/components/notification/notification-item/notification-item.component.mjs +0 -25
- package/esm2022/lib/desy-nav/components/notification/notification.component.mjs +0 -135
- package/esm2022/lib/desy-nav/components/skip-link/skip-link.component.mjs +0 -62
- package/esm2022/lib/desy-nav/desy-nav.module.mjs +0 -301
- package/esm2022/lib/desy-nav/directives/dynamic-heading.directive.mjs +0 -40
- package/esm2022/lib/desy-nav/interfaces/breadcrumbs.data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/error-summary-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/footer-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/footer-logo.mjs +0 -10
- package/esm2022/lib/desy-nav/interfaces/header-advanced-logo.mjs +0 -7
- package/esm2022/lib/desy-nav/interfaces/header-dropdown-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-mobile-text-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-navigation-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-navigation-item-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-offcanvas-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-skiplink-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/header-subnav-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/index.mjs +0 -21
- package/esm2022/lib/desy-nav/interfaces/menu-horizontal-item-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-horizontal-item-event-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-navigation-item-sub-item.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-navigation.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-vertical-items-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-vertical-sub-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menu-vertical-sub-items-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menubar-item-sub-item-sub-item.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menubar-item-sub-item.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menubar-item-sub.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/menubar-item.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/nav-item-event.data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/nav-item.data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/notification-items-data.mjs +0 -2
- package/esm2022/lib/desy-nav/interfaces/notification-options.mjs +0 -2
- package/esm2022/lib/desy-pagination/components/pagination/pagination.component.mjs +0 -237
- package/esm2022/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +0 -19
- package/esm2022/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.mjs +0 -17
- package/esm2022/lib/desy-pagination/desy-pagination.module.mjs +0 -54
- package/esm2022/lib/desy-pagination/interfaces/pagination-item.data.mjs +0 -2
- package/esm2022/lib/desy-tables/components/table/components/table-caption.component.mjs +0 -17
- package/esm2022/lib/desy-tables/components/table/components/table-cell.component.mjs +0 -23
- package/esm2022/lib/desy-tables/components/table/components/table-footer.component.mjs +0 -18
- package/esm2022/lib/desy-tables/components/table/components/table-header.component.mjs +0 -18
- package/esm2022/lib/desy-tables/components/table/components/table-row.component.mjs +0 -18
- package/esm2022/lib/desy-tables/components/table/table.component.mjs +0 -120
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-footer-cell.component.mjs +0 -23
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-footer.component.mjs +0 -27
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.mjs +0 -56
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.mjs +0 -18
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.mjs +0 -23
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.mjs +0 -27
- package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.mjs +0 -28
- package/esm2022/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +0 -494
- package/esm2022/lib/desy-tables/desy-tables.module.mjs +0 -117
- package/esm2022/lib/desy-tables/directives/cell.directive.mjs +0 -25
- package/esm2022/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +0 -86
- package/esm2022/lib/desy-tables/directives/row.directive.mjs +0 -22
- package/esm2022/lib/desy-tables/interfaces/cell-data.mjs +0 -2
- package/esm2022/lib/desy-tables/interfaces/head-cell-data.mjs +0 -7
- package/esm2022/lib/desy-tables/interfaces/index.mjs +0 -5
- package/esm2022/lib/desy-tables/interfaces/recalculate-table-params.mjs +0 -2
- package/esm2022/lib/desy-tables/interfaces/row-data.mjs +0 -2
- package/esm2022/lib/desy-tables/interfaces/wrapper-data.mjs +0 -2
- package/esm2022/lib/desy-views/components/accordion/accordion-header/accordion-header.component.mjs +0 -17
- package/esm2022/lib/desy-views/components/accordion/accordion-item/accordion-item.component.mjs +0 -61
- package/esm2022/lib/desy-views/components/accordion/accordion.component.mjs +0 -447
- package/esm2022/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.mjs +0 -41
- package/esm2022/lib/desy-views/components/accordion-history/accordion-history.component.mjs +0 -20
- package/esm2022/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.mjs +0 -17
- package/esm2022/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.mjs +0 -17
- package/esm2022/lib/desy-views/components/alert/alert.component.mjs +0 -82
- package/esm2022/lib/desy-views/components/card/card-sectors/card-left.component.mjs +0 -21
- package/esm2022/lib/desy-views/components/card/card-sectors/card-right.component.mjs +0 -21
- package/esm2022/lib/desy-views/components/card/card-sectors/card-sub.component.mjs +0 -21
- package/esm2022/lib/desy-views/components/card/card-sectors/card-super.component.mjs +0 -21
- package/esm2022/lib/desy-views/components/card/card.component.mjs +0 -48
- package/esm2022/lib/desy-views/components/collapsible/collapsible.component.mjs +0 -66
- package/esm2022/lib/desy-views/components/description-list/definition/definition.component.mjs +0 -19
- package/esm2022/lib/desy-views/components/description-list/description-item/description-item.component.mjs +0 -36
- package/esm2022/lib/desy-views/components/description-list/description-list.component.mjs +0 -29
- package/esm2022/lib/desy-views/components/description-list/term/term.component.mjs +0 -19
- package/esm2022/lib/desy-views/components/details/details.component.mjs +0 -43
- package/esm2022/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.mjs +0 -17
- package/esm2022/lib/desy-views/components/item/item-content-right/item-content-right.component.mjs +0 -15
- package/esm2022/lib/desy-views/components/item/item-item/item-item.component.mjs +0 -15
- package/esm2022/lib/desy-views/components/item/item.component.mjs +0 -122
- package/esm2022/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.mjs +0 -12
- package/esm2022/lib/desy-views/components/media-object/media-object.component.mjs +0 -369
- package/esm2022/lib/desy-views/components/status/status.component.mjs +0 -366
- package/esm2022/lib/desy-views/components/status-item/status-item.component.mjs +0 -401
- package/esm2022/lib/desy-views/components/tabs/panel/panel.component.mjs +0 -19
- package/esm2022/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +0 -41
- package/esm2022/lib/desy-views/components/tabs/tabs.component.mjs +0 -445
- package/esm2022/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.mjs +0 -12
- package/esm2022/lib/desy-views/components/tooltip/tooltip.component.mjs +0 -444
- package/esm2022/lib/desy-views/desy-views.module.mjs +0 -195
- package/esm2022/lib/desy-views/interfaces/accordion-header.data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/accordion-item.data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/alert-options.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/description-item.data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/index.mjs +0 -11
- package/esm2022/lib/desy-views/interfaces/open-alert-result.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/status-data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/status-icon-data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/status-item-title-data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/tabs-items-data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/tabs-panel-data.mjs +0 -2
- package/esm2022/lib/desy-views/interfaces/term-definition.data.mjs +0 -2
- package/esm2022/lib/desy-views/services/alert.service.mjs +0 -88
- package/esm2022/lib/shared/components/accessibility/accessibility-attributes.mjs +0 -78
- package/esm2022/lib/shared/components/accessibility/accessibility.component.mjs +0 -164
- package/esm2022/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +0 -168
- package/esm2022/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +0 -165
- package/esm2022/lib/shared/components/content-base/content-base.component.mjs +0 -21
- package/esm2022/lib/shared/components/index.mjs +0 -7
- package/esm2022/lib/shared/components/spinner/spinner.component.mjs +0 -329
- package/esm2022/lib/shared/components/text-or-html-required/text-or-html-required.component.mjs +0 -18
- package/esm2022/lib/shared/decorators/desy-content-child.decorator.mjs +0 -30
- package/esm2022/lib/shared/decorators/desy-on-input-change.decorator.mjs +0 -15
- package/esm2022/lib/shared/directives/accessibility-directive.mjs +0 -52
- package/esm2022/lib/shared/directives/attribute-change.directive.mjs +0 -50
- package/esm2022/lib/shared/directives/click-outside.directive.mjs +0 -40
- package/esm2022/lib/shared/directives/content-change.directive.mjs +0 -41
- package/esm2022/lib/shared/directives/custom-inner-content.directive.mjs +0 -61
- package/esm2022/lib/shared/directives/inner-content.directive.mjs +0 -37
- package/esm2022/lib/shared/interfaces/accessibility-data.mjs +0 -2
- package/esm2022/lib/shared/pipes/external-href.pipe.mjs +0 -28
- package/esm2022/lib/shared/pipes/inner-html.pipe.mjs +0 -21
- package/esm2022/lib/shared/pipes/make-html-list.pipe.mjs +0 -20
- package/esm2022/lib/shared/shared.module.mjs +0 -88
- package/esm2022/lib/shared/sharedExternal.module.mjs +0 -24
- package/esm2022/lib/shared/utils/focus-utils.mjs +0 -51
- package/esm2022/lib/shared/utils/search-utils.mjs +0 -70
- package/esm2022/lib/shared/utils/string-utils.mjs +0 -11
- package/esm2022/public-api.mjs +0 -225
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component, ContentChildren, EventEmitter, forwardRef, HostBinding, Input, Optional, Output, QueryList, TemplateRef, ViewChild } from '@angular/core';
|
|
3
|
-
import { ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
-
import { LegendComponent } from '../fieldset/legend/legend.component';
|
|
5
|
-
import { FormFieldComponent } from '../form-field/form-field.component';
|
|
6
|
-
import { InputGroupItemComponent } from './input-group-item/input-group-item.component';
|
|
7
|
-
import { DesyOnInputChange } from '../../../shared/decorators/desy-on-input-change.decorator';
|
|
8
|
-
import { DesyContentChild } from '../../../shared/decorators/desy-content-child.decorator';
|
|
9
|
-
import { FieldsetComponent } from '../fieldset/fieldset.component';
|
|
10
|
-
import { MakeHtmlListPipe } from '../../../shared/pipes/make-html-list.pipe';
|
|
11
|
-
import { InputGroupInputComponent } from './input-group-input/input-group-input.component';
|
|
12
|
-
import { InputGroupSelectComponent } from './input-group-select/input-group-select.component';
|
|
13
|
-
import { InputGroupDividerComponent } from './input-group-divider/input-group-divider.component';
|
|
14
|
-
import { StringUtils } from '../../../shared/utils/string-utils';
|
|
15
|
-
import * as i0 from "@angular/core";
|
|
16
|
-
import * as i1 from "@angular/forms";
|
|
17
|
-
import * as i2 from "@angular/common";
|
|
18
|
-
import * as i3 from "../../../shared/directives/custom-inner-content.directive";
|
|
19
|
-
import * as i4 from "../../../shared/directives/accessibility-directive";
|
|
20
|
-
import * as i5 from "../template-driven-wrapper/template-driven-wrapper.component";
|
|
21
|
-
import * as i6 from "../hint/hint.component";
|
|
22
|
-
import * as i7 from "../error-message/error-message.component";
|
|
23
|
-
import * as i8 from "../fieldset/fieldset.component";
|
|
24
|
-
import * as i9 from "../input/input.component";
|
|
25
|
-
import * as i10 from "../select/select.component";
|
|
26
|
-
import * as i11 from "../../../shared/pipes/make-html-list.pipe";
|
|
27
|
-
export class InputGroupComponent extends FormFieldComponent {
|
|
28
|
-
constructor(controlContainer) {
|
|
29
|
-
super();
|
|
30
|
-
this.controlContainer = controlContainer;
|
|
31
|
-
this.itemsChange = new EventEmitter();
|
|
32
|
-
this.cfg = true;
|
|
33
|
-
this.contentInit = false;
|
|
34
|
-
}
|
|
35
|
-
ngOnChanges() {
|
|
36
|
-
this.cfgr = (this.hasErrorsMessage() || this.formGroupClasses === 'c-form-group--error');
|
|
37
|
-
}
|
|
38
|
-
get ogFormGroup() {
|
|
39
|
-
return this.controlContainer.control;
|
|
40
|
-
}
|
|
41
|
-
ngAfterContentInit() {
|
|
42
|
-
this.contentInit = true;
|
|
43
|
-
}
|
|
44
|
-
ngAfterViewChecked() {
|
|
45
|
-
const items = this.getItems();
|
|
46
|
-
}
|
|
47
|
-
writeValue(value) {
|
|
48
|
-
if (value) {
|
|
49
|
-
this.value = value;
|
|
50
|
-
const items = this.getItems();
|
|
51
|
-
items.forEach(item => {
|
|
52
|
-
const v = this.value[this.getItemName(item)];
|
|
53
|
-
item.value = v ? v : null;
|
|
54
|
-
});
|
|
55
|
-
if (this.items) {
|
|
56
|
-
this.itemsChange.emit(this.items);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
this.onChange(value);
|
|
60
|
-
}
|
|
61
|
-
onExternalChange() {
|
|
62
|
-
if (!this.contentInit) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (!this.value) {
|
|
66
|
-
this.value = {};
|
|
67
|
-
}
|
|
68
|
-
const items = this.getItems();
|
|
69
|
-
items.forEach(item => this.value[this.getItemName(item)] = item.value);
|
|
70
|
-
this.onChange(this.value);
|
|
71
|
-
}
|
|
72
|
-
onInternalChange(item, itemValue) {
|
|
73
|
-
const itemName = this.getItemName(item);
|
|
74
|
-
if (!this.value) {
|
|
75
|
-
this.value = {};
|
|
76
|
-
}
|
|
77
|
-
if (this.value[itemName] !== itemValue) {
|
|
78
|
-
this.value[itemName] = itemValue;
|
|
79
|
-
this.onChange(this.value);
|
|
80
|
-
if (item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent) {
|
|
81
|
-
item.valueChange.emit(itemValue);
|
|
82
|
-
}
|
|
83
|
-
if (this.items) {
|
|
84
|
-
item.value = itemValue;
|
|
85
|
-
this.itemsChange.emit(this.items);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
overrideFieldsetParams(fieldset) {
|
|
90
|
-
fieldset.caller = this.innerHtml;
|
|
91
|
-
fieldset.errorId = this.getErrorId();
|
|
92
|
-
fieldset.describedBy = new MakeHtmlListPipe().transform([this.getHintId(), this.getErrorId()], null);
|
|
93
|
-
fieldset.role = 'group';
|
|
94
|
-
fieldset.detectChanges();
|
|
95
|
-
}
|
|
96
|
-
getItems() {
|
|
97
|
-
return this.itemsComponents && this.itemsComponents.length ? this.itemsComponents.toArray() : this.items;
|
|
98
|
-
}
|
|
99
|
-
getItemLabelRef(item) {
|
|
100
|
-
return item instanceof InputGroupInputComponent || item instanceof InputGroupSelectComponent ? item.labelRef : null;
|
|
101
|
-
}
|
|
102
|
-
getItemLabelData(item) {
|
|
103
|
-
return item.labelData ? item.labelData : { text: item.labelText };
|
|
104
|
-
}
|
|
105
|
-
hasFieldset() {
|
|
106
|
-
return !!(this.hasFieldsetComponent() || this.hasLegendComponent() || this.legendRef || this.fieldsetData
|
|
107
|
-
|| (this.legendData && (this.legendData.text || this.legendData.html)) || this.legendText);
|
|
108
|
-
}
|
|
109
|
-
hasFieldsetComponent() {
|
|
110
|
-
return !!this.fieldsetComponent;
|
|
111
|
-
}
|
|
112
|
-
hasLegendComponent() {
|
|
113
|
-
return !!this.legendComponent;
|
|
114
|
-
}
|
|
115
|
-
getItemName(item) {
|
|
116
|
-
return this.namePrefix ? this.namePrefix + '-' + item.name : item.name;
|
|
117
|
-
}
|
|
118
|
-
getItemSelectOptions(item) {
|
|
119
|
-
return item instanceof InputGroupSelectComponent ?
|
|
120
|
-
item.selectItemComponentList.toArray() : item.selectItems;
|
|
121
|
-
}
|
|
122
|
-
getItemDividerTemplate(item) {
|
|
123
|
-
return item.divider instanceof InputGroupDividerComponent ? item.divider.dividerContent : null;
|
|
124
|
-
}
|
|
125
|
-
getItemDividerHtml(item) {
|
|
126
|
-
return item.divider.html ? item.divider.html : `<p>${StringUtils.escapeHtml(item.divider.text)}</p>`;
|
|
127
|
-
}
|
|
128
|
-
isSelectItem(item) {
|
|
129
|
-
let hasSelectItems;
|
|
130
|
-
if (item instanceof InputGroupSelectComponent) {
|
|
131
|
-
hasSelectItems = item.selectItemComponentList && item.selectItemComponentList.length > 0;
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
hasSelectItems = item.selectItems;
|
|
135
|
-
}
|
|
136
|
-
return item.isSelect && hasSelectItems;
|
|
137
|
-
}
|
|
138
|
-
hasItemLabel(item) {
|
|
139
|
-
return !!((item.labelData && (item.labelData.text || item.labelData.html)) || item.labelText);
|
|
140
|
-
}
|
|
141
|
-
getItemClasses(item) {
|
|
142
|
-
return new MakeHtmlListPipe().transform(['mb-0', item.classes, this.hasErrorsMessage() ? 'border-alert-base ring-2 ring-alert-base' : null], null);
|
|
143
|
-
}
|
|
144
|
-
getItemAriaDescribedBy(item) {
|
|
145
|
-
return new MakeHtmlListPipe().transform([item.ariaDescribedBy, this.getErrorId(), this.getHintId()], null);
|
|
146
|
-
}
|
|
147
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputGroupComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
148
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InputGroupComponent, selector: "desy-input-group", inputs: { ngModelGroup: "ngModelGroup", items: "items", namePrefix: "namePrefix", classes: "classes", formGroupClasses: "formGroupClasses", errorMessage: "errorMessage", id: "id", fieldsetData: "fieldsetData", legendRef: "legendRef", legendData: "legendData", legendText: "legendText" }, outputs: { itemsChange: "itemsChange" }, host: { properties: { "class.c-form-group": "this.cfg", "class.c-form-group--error": "this.cfgr", "class": "this.formGroupClasses" } }, providers: [
|
|
149
|
-
{
|
|
150
|
-
provide: NG_VALUE_ACCESSOR,
|
|
151
|
-
useExisting: forwardRef(() => InputGroupComponent),
|
|
152
|
-
multi: true
|
|
153
|
-
}
|
|
154
|
-
], queries: [{ propertyName: "itemsComponents", predicate: InputGroupItemComponent }, { propertyName: "fieldsetComponent", predicate: FieldsetComponent }, { propertyName: "legendComponent", predicate: LegendComponent }], viewQueries: [{ propertyName: "innerHtml", first: true, predicate: ["innerHtml"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Divider no forma parte del formulario, por lo que es reutilizable en cualquier caso -->\n<ng-template #itemDivider\n let-item=\"item\">\n <div role=\"separator\"\n [ngClass]=\"item.divider.classes\">\n <ng-container\n *desyCustomInnerContent=\"{ template: getItemDividerTemplate(item), html: getItemDividerHtml(item) }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #innerHtml>\n <ng-content select=\"desy-hint\"></ng-content>\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\"\n [text]=\"hintText\"\n [id]=\"getHintId()\"></desy-hint>\n\n <ng-content select=\"desy-error-message\"></ng-content>\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\"\n [id]=\"getErrorId()\"></desy-error-message>\n\n <!-- Reactive forms -->\n <div *ngIf=\"controlContainer && !ngModelGroup\"\n [formGroup]=\"ogFormGroup\"\n [ngClass]=\"classes ? classes : 'flex'\"\n [attr.id]=\"id ? id : null\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [formControlName]=\"getItemName(item)\"\n [items]=\"getItemSelectOptions(item)\"\n [disabled]=\"item.disabled\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [formControlName]=\"getItemName(item)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n [disabled]=\"item.disabled\"\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-input>\n </ng-template>\n </ng-container>\n </div>\n\n <!-- Template-driven forms -->\n <desy-template-driven-wrapper *ngIf=\"controlContainer && ngModelGroup\">\n <div [ngModelGroup]=\"ngModelGroup\"\n [ngClass]=\"classes ? classes : 'flex'\"\n [attr.id]=\"id ? id : null\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value === undefined ? null : item.value\"\n (ngModelChange)=\"onInternalChange(item, $event)\"\n [items]=\"getItemSelectOptions(item)\"\n [disabled]=\"item.disabled\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\"\n (ngModelChange)=\"onInternalChange(item, $event)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n [disabled]=\"item.disabled\"\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-input>\n </ng-template>\n </ng-container>\n </div>\n </desy-template-driven-wrapper>\n\n <!-- With ngModel-->\n <div *ngIf=\"!controlContainer\"\n [ngClass]=\"classes ? classes : 'flex'\"\n [attr.id]=\"id ? id : null\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [items]=\"getItemSelectOptions(item)\"\n [disabled]=\"item.disabled\"\n [ngModel]=\"item.value\"\n (ngModelChange)=\"onInternalChange(item, $event)\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [tabindex]=\"item.tabindex\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\"\n (ngModelChange)=\"onInternalChange(item, $event)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n [disabled]=\"item.disabled\"\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [tabindex]=\"item.tabindex\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-input>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n\n\n<ng-container *ngIf=\"hasFieldsetComponent()\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n</ng-container>\n<ng-container *ngIf=\"!hasFieldsetComponent()\">\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [headingLevel]=\"fieldsetData.headingLevel\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && hasLegendComponent()\"\n [legendRef]=\"legendTemplate\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\n <ng-template #legendTemplate>\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-template>\n </desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n</ng-container>", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "directive", type: i4.AccessibilityDirective, selector: "[desyAppAccessibility]", inputs: ["desyAppAccessibility"] }, { kind: "component", type: i5.TemplateDrivenWrapperComponent, selector: "desy-template-driven-wrapper" }, { kind: "component", type: i6.HintComponent, selector: "desy-hint", inputs: ["id", "classes", "html", "text"] }, { kind: "component", type: i7.ErrorMessageComponent, selector: "desy-error-message", inputs: ["id", "classes", "html", "text", "visuallyHiddenText"] }, { kind: "component", type: i8.FieldsetComponent, selector: "desy-fieldset", inputs: ["describedBy", "errorId", "legendRef", "legendData", "legendText", "classes", "caller", "id", "headingLevel"] }, { kind: "component", type: i9.InputComponent, selector: "desy-input", inputs: ["name", "type", "describedBy", "pattern", "inputmode", "placeholder", "formGroupClasses", "classes", "autocomplete", "maxlength", "errorId", "attributes"] }, { kind: "component", type: i10.SelectComponent, selector: "desy-select", inputs: ["name", "items", "describedBy", "formGroupClasses", "classes"] }, { kind: "pipe", type: i11.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
|
|
155
|
-
}
|
|
156
|
-
__decorate([
|
|
157
|
-
DesyOnInputChange('onExternalChange'),
|
|
158
|
-
__metadata("design:type", Array)
|
|
159
|
-
], InputGroupComponent.prototype, "items", void 0);
|
|
160
|
-
__decorate([
|
|
161
|
-
DesyOnInputChange('onExternalChange'),
|
|
162
|
-
__metadata("design:type", String)
|
|
163
|
-
], InputGroupComponent.prototype, "namePrefix", void 0);
|
|
164
|
-
__decorate([
|
|
165
|
-
DesyContentChild({ onSetCallbackName: 'overrideFieldsetParams' }),
|
|
166
|
-
__metadata("design:type", FieldsetComponent)
|
|
167
|
-
], InputGroupComponent.prototype, "fieldsetComponent", void 0);
|
|
168
|
-
__decorate([
|
|
169
|
-
DesyContentChild(),
|
|
170
|
-
__metadata("design:type", LegendComponent)
|
|
171
|
-
], InputGroupComponent.prototype, "legendComponent", void 0);
|
|
172
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputGroupComponent, decorators: [{
|
|
173
|
-
type: Component,
|
|
174
|
-
args: [{ selector: 'desy-input-group', providers: [
|
|
175
|
-
{
|
|
176
|
-
provide: NG_VALUE_ACCESSOR,
|
|
177
|
-
useExisting: forwardRef(() => InputGroupComponent),
|
|
178
|
-
multi: true
|
|
179
|
-
}
|
|
180
|
-
], template: "<!-- Divider no forma parte del formulario, por lo que es reutilizable en cualquier caso -->\n<ng-template #itemDivider\n let-item=\"item\">\n <div role=\"separator\"\n [ngClass]=\"item.divider.classes\">\n <ng-container\n *desyCustomInnerContent=\"{ template: getItemDividerTemplate(item), html: getItemDividerHtml(item) }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #innerHtml>\n <ng-content select=\"desy-hint\"></ng-content>\n <ng-container *ngTemplateOutlet=\"hintRef\"></ng-container>\n <desy-hint *ngIf=\"!hintRef && hintData\"\n [id]=\"getHintId()\"\n [text]=\"hintData.text\"\n [html]=\"hintData.html\"\n [classes]=\"hintData.classes\"\n [role]=\"hintData.role\"\n [ariaLabel]=\"hintData.ariaLabel\"\n [ariaDescribedBy]=\"hintData.ariaDescribedBy\"\n [ariaLabelledBy]=\"hintData.ariaLabelledBy\"\n [ariaHidden]=\"hintData.ariaHidden\"\n [ariaDisabled]=\"hintData.ariaDisabled\"\n [ariaControls]=\"hintData.ariaControls\"\n [ariaCurrent]=\"hintData.ariaCurrent\"\n [ariaLive]=\"hintData.ariaLive\"\n [ariaExpanded]=\"hintData.ariaExpanded\"\n [ariaErrorMessage]=\"hintData.ariaErrorMessage\"\n [ariaHasPopup]=\"hintData.ariaHasPopup\"\n [tabindex]=\"hintData.tabindex\"></desy-hint>\n <desy-hint *ngIf=\"!hintRef && !hintData && hintText\"\n [text]=\"hintText\"\n [id]=\"getHintId()\"></desy-hint>\n\n <ng-content select=\"desy-error-message\"></ng-content>\n <ng-container *ngTemplateOutlet=\"errorMessageRef\"></ng-container>\n <desy-error-message *ngIf=\"!errorMessageRef && errorMessageData\"\n [id]=\"getErrorId()\"\n [text]=\"errorMessageData.text\"\n [html]=\"errorMessageData.html\"\n [classes]=\"errorMessageData.classes\"\n [visuallyHiddenText]=\"errorMessageData.visuallyHiddenText\"\n [role]=\"errorMessageData.role\"\n [ariaLabel]=\"errorMessageData.ariaLabel\"\n [ariaDescribedBy]=\"errorMessageData.ariaDescribedBy\"\n [ariaLabelledBy]=\"errorMessageData.ariaLabelledBy\"\n [ariaHidden]=\"errorMessageData.ariaHidden\"\n [ariaDisabled]=\"errorMessageData.ariaDisabled\"\n [ariaControls]=\"errorMessageData.ariaControls\"\n [ariaCurrent]=\"errorMessageData.ariaCurrent\"\n [ariaLive]=\"errorMessageData.ariaLive\"\n [ariaExpanded]=\"errorMessageData.ariaExpanded\"\n [ariaErrorMessage]=\"errorMessageData.ariaErrorMessage\"\n [ariaHasPopup]=\"errorMessageData.ariaHasPopup\"\n [tabindex]=\"errorMessageData.tabindex\"></desy-error-message>\n <desy-error-message *ngIf=\"!errorMessageRef && !errorMessageData && errorMessageText\"\n [text]=\"errorMessageText\"\n [id]=\"getErrorId()\"></desy-error-message>\n\n <!-- Reactive forms -->\n <div *ngIf=\"controlContainer && !ngModelGroup\"\n [formGroup]=\"ogFormGroup\"\n [ngClass]=\"classes ? classes : 'flex'\"\n [attr.id]=\"id ? id : null\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [formControlName]=\"getItemName(item)\"\n [items]=\"getItemSelectOptions(item)\"\n [disabled]=\"item.disabled\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [formControlName]=\"getItemName(item)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n [disabled]=\"item.disabled\"\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-input>\n </ng-template>\n </ng-container>\n </div>\n\n <!-- Template-driven forms -->\n <desy-template-driven-wrapper *ngIf=\"controlContainer && ngModelGroup\">\n <div [ngModelGroup]=\"ngModelGroup\"\n [ngClass]=\"classes ? classes : 'flex'\"\n [attr.id]=\"id ? id : null\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value === undefined ? null : item.value\"\n (ngModelChange)=\"onInternalChange(item, $event)\"\n [items]=\"getItemSelectOptions(item)\"\n [disabled]=\"item.disabled\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\"\n (ngModelChange)=\"onInternalChange(item, $event)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n [disabled]=\"item.disabled\"\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-input>\n </ng-template>\n </ng-container>\n </div>\n </desy-template-driven-wrapper>\n\n <!-- With ngModel-->\n <div *ngIf=\"!controlContainer\"\n [ngClass]=\"classes ? classes : 'flex'\"\n [attr.id]=\"id ? id : null\"\n [desyAppAccessibility]=\"this\">\n\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <ng-container *ngTemplateOutlet=\"isSelectItem(item) ? itemSelect : (item.divider ? itemDivider : itemInput); context: {item: item}\"></ng-container>\n <ng-template #itemSelect>\n <desy-select [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [items]=\"getItemSelectOptions(item)\"\n [disabled]=\"item.disabled\"\n [ngModel]=\"item.value\"\n (ngModelChange)=\"onInternalChange(item, $event)\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [tabindex]=\"item.tabindex\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-select>\n </ng-template>\n <ng-template #itemInput>\n <desy-input [id]=\"item.id ? item.id : id + '-' + item.name\"\n [labelRef]=\"getItemLabelRef(item)\"\n [labelData]=\"getItemLabelData(item)\"\n [classes]=\"getItemClasses(item)\"\n [formGroupClasses]=\"item.formGroupClasses\"\n [name]=\"getItemName(item)\"\n [ngModel]=\"item.value\"\n (ngModelChange)=\"onInternalChange(item, $event)\"\n [type]=\"item.type ? item.type : 'text'\"\n [inputmode]=\"item.inputmode\"\n [autocomplete]=\"item.autocomplete\"\n [pattern]=\"item.pattern\"\n [placeholder]=\"item.placeholder\"\n [disabled]=\"item.disabled\"\n [maxlength]=\"item.maxlength\"\n [role]=\"item.role\"\n [ariaLabel]=\"item.ariaLabel\"\n [ariaDescribedBy]=\"getItemAriaDescribedBy(item)\"\n [ariaLabelledBy]=\"item.ariaLabelledBy\"\n [ariaHidden]=\"item.ariaHidden\"\n [ariaDisabled]=\"item.ariaDisabled\"\n [ariaControls]=\"item.ariaControls\"\n [ariaCurrent]=\"item.ariaCurrent\"\n [ariaLive]=\"item.ariaLive\"\n [ariaExpanded]=\"item.ariaExpanded\"\n [ariaErrorMessage]=\"getErrorId()\"\n [ariaHasPopup]=\"item.ariaHasPopup\"\n [tabindex]=\"item.tabindex\"\n [ariaModal]=\"item.ariaModal\"\n [ariaChecked]=\"item.ariaChecked\"\n [ariaPressed]=\"item.ariaPressed\"\n [ariaReadonly]=\"item.ariaReadonly\"\n [ariaRequired]=\"item.ariaRequired\"\n [ariaSelected]=\"item.ariaSelected\"\n [ariaValuemin]=\"item.ariaValuemin\"\n [ariaValuemax]=\"item.ariaValuemax\"\n [ariaValuenow]=\"item.ariaValuenow\"\n [ariaValuetext]=\"item.ariaValuetext\"\n [ariaOrientation]=\"item.ariaOrientation\"\n [ariaLevel]=\"item.ariaLevel\"\n [ariaMultiselectable]=\"item.ariaMultiselectable\"\n [ariaPlaceholder]=\"item.ariaPlaceholder\"\n [ariaPosinset]=\"item.ariaPosinset\"\n [ariaSetsize]=\"item.ariaSetsize\"\n [ariaSort]=\"item.ariaSort\"\n [ariaBusy]=\"item.ariaBusy\"\n [ariaDropeffect]=\"item.ariaDropeffect\"\n [ariaGrabbed]=\"item.ariaGrabbed\"\n [ariaActivedescendant]=\"item.ariaActivedescendant\"\n [ariaAtomic]=\"item.ariaAtomic\"\n [ariaAutocomplete]=\"item.ariaAutocomplete\"\n [ariaBraillelabel]=\"item.ariaBraillelabel\"\n [ariaBrailleroledescription]=\"item.ariaBrailleroledescription\"\n [ariaColcount]=\"item.ariaColcount\"\n [ariaColindex]=\"item.ariaColindex\"\n [ariaColindextext]=\"item.ariaColindextext\"\n [ariaColspan]=\"item.ariaColspan\"\n [ariaDescription]=\"item.ariaDescription\"\n [ariaDetails]=\"item.ariaDetails\"\n [ariaFlowto]=\"item.ariaFlowto\"\n [ariaInvalid]=\"item.ariaInvalid\"\n [ariaKeyshortcuts]=\"item.ariaKeyshortcuts\"\n [ariaOwns]=\"item.ariaOwns\"\n [ariaRelevant]=\"item.ariaRelevant\"\n [ariaRoledescription]=\"item.ariaRoledescription\"\n [ariaRowcount]=\"item.ariaRowcount\"\n [ariaRowindex]=\"item.ariaRowindex\"\n [ariaRowindextext]=\"item.ariaRowindextext\"\n [ariaRowspan]=\"item.ariaRowspan\"\n [tabindex]=\"item.tabindex\"\n [title]=\"item.title\"\n [alt]=\"item.alt\"\n [lang]=\"item.lang\"\n [accesskey]=\"item.accesskey\"\n [autocomplete]=\"item.autocomplete\"\n [autofocus]=\"item.autofocus\"\n [contenteditable]=\"item.contenteditable\"\n [dir]=\"item.dir\"\n [draggable]=\"item.draggable\"\n [enterkeyhint]=\"item.enterkeyhint\"\n [hidden]=\"item.hidden\"\n [inputmode]=\"item.inputmode\"\n [spellcheck]=\"item.spellcheck\"\n [translate]=\"item.translate\"\n [ariaMultiline]=\"item.ariaMultiline\"\n [for]=\"item.for\"\n [form]=\"item.form\"\n [headers]=\"item.headers\"\n [placeholder]=\"item.placeholder\"\n [readonly]=\"item.readonly\"\n [required]=\"item.required\">\n </desy-input>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n\n\n<ng-container *ngIf=\"hasFieldsetComponent()\">\n <ng-content select=\"desy-fieldset\"></ng-content>\n</ng-container>\n<ng-container *ngIf=\"!hasFieldsetComponent()\">\n <desy-fieldset *ngIf=\"fieldsetData\"\n [classes]=\"fieldsetData.classes\"\n [id]=\"fieldsetData.id\"\n [legendData]=\"fieldsetData.legend\"\n [headingLevel]=\"fieldsetData.headingLevel\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[fieldsetData.describedBy, getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"\n [ariaLabel]=\"fieldsetData.ariaLabel\"\n [ariaLabelledBy]=\"fieldsetData.ariaLabelledBy\"\n [ariaHidden]=\"fieldsetData.ariaHidden\"\n [ariaDisabled]=\"fieldsetData.ariaDisabled\"\n [ariaControls]=\"fieldsetData.ariaControls\"\n [ariaCurrent]=\"fieldsetData.ariaCurrent\"\n [ariaLive]=\"fieldsetData.ariaLive\"\n [ariaExpanded]=\"fieldsetData.ariaExpanded\"\n [ariaHasPopup]=\"fieldsetData.ariaHasPopup\"\n [tabindex]=\"fieldsetData.tabindex\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && hasLegendComponent()\"\n [legendRef]=\"legendTemplate\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\">\n <ng-template #legendTemplate>\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-template>\n </desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && legendRef\"\n [legendRef]=\"legendRef\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && legendData\"\n [legendData]=\"{text: legendData.text, html: legendData.html, classes: legendData.classes, isPageHeading: legendData.isPageHeading}\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n <desy-fieldset *ngIf=\"!fieldsetData && !hasLegendComponent() && !legendRef && !legendData && legendText\"\n [legendText]=\"legendText\"\n [caller]=\"innerHtml\"\n [errorId]=\"getErrorId()\"\n [describedBy]=\"[ getHintId(), getErrorId()] | makeHtmlList:null\"\n role=\"group\"></desy-fieldset>\n\n <ng-container *ngIf=\"!hasFieldset()\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ng-container>\n</ng-container>" }]
|
|
181
|
-
}], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
|
|
182
|
-
type: Optional
|
|
183
|
-
}] }], propDecorators: { ngModelGroup: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], items: [{
|
|
186
|
-
type: Input
|
|
187
|
-
}], itemsChange: [{
|
|
188
|
-
type: Output
|
|
189
|
-
}], namePrefix: [{
|
|
190
|
-
type: Input
|
|
191
|
-
}], classes: [{
|
|
192
|
-
type: Input
|
|
193
|
-
}], cfg: [{
|
|
194
|
-
type: HostBinding,
|
|
195
|
-
args: ['class.c-form-group']
|
|
196
|
-
}], cfgr: [{
|
|
197
|
-
type: HostBinding,
|
|
198
|
-
args: ['class.c-form-group--error']
|
|
199
|
-
}], formGroupClasses: [{
|
|
200
|
-
type: Input
|
|
201
|
-
}, {
|
|
202
|
-
type: HostBinding,
|
|
203
|
-
args: ['class']
|
|
204
|
-
}], errorMessage: [{
|
|
205
|
-
type: Input
|
|
206
|
-
}], id: [{
|
|
207
|
-
type: Input
|
|
208
|
-
}], fieldsetData: [{
|
|
209
|
-
type: Input
|
|
210
|
-
}], legendRef: [{
|
|
211
|
-
type: Input
|
|
212
|
-
}], legendData: [{
|
|
213
|
-
type: Input
|
|
214
|
-
}], legendText: [{
|
|
215
|
-
type: Input
|
|
216
|
-
}], itemsComponents: [{
|
|
217
|
-
type: ContentChildren,
|
|
218
|
-
args: [InputGroupItemComponent]
|
|
219
|
-
}], fieldsetComponent: [{
|
|
220
|
-
type: ContentChildren,
|
|
221
|
-
args: [FieldsetComponent]
|
|
222
|
-
}], legendComponent: [{
|
|
223
|
-
type: ContentChildren,
|
|
224
|
-
args: [LegendComponent]
|
|
225
|
-
}], innerHtml: [{
|
|
226
|
-
type: ViewChild,
|
|
227
|
-
args: ['innerHtml', { static: true }]
|
|
228
|
-
}] } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9jb21wb25lbnRzL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9pbnB1dC1ncm91cC9pbnB1dC1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQUUsWUFBWSxFQUM3QixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFDTCxRQUFRLEVBQUUsTUFBTSxFQUNoQixTQUFTLEVBQ1QsV0FBVyxFQUFFLFNBQVMsRUFFdkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFhLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzVGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyx5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O3lDQTNDWixZQUFZO3NCQUFwQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdFLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUc2QixHQUFHO3NCQUFyQyxXQUFXO3VCQUFDLG9CQUFvQjtnQkFDUyxJQUFJO3NCQUE3QyxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDVCxnQkFBZ0I7c0JBQTlDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsT0FBTztnQkFFcEIsWUFBWTtzQkFBcEIsS0FBSztnQkFDVyxFQUFFO3NCQUFsQixLQUFLO2dCQVNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRW9DLGVBQWU7c0JBQXhELGVBQWU7dUJBQUMsdUJBQXVCO2dCQUdKLGlCQUFpQjtzQkFBcEQsZUFBZTt1QkFBQyxpQkFBaUI7Z0JBR0EsZUFBZTtzQkFBaEQsZUFBZTt1QkFBQyxlQUFlO2dCQUVVLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLFxuICBPbkNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZpZWxkc2V0RGF0YSwgTGVnZW5kRGF0YSwgSXRlbUlucHV0R3JvdXBEYXRhLCBMYWJlbERhdGEsIFNlbGVjdEl0ZW1EYXRhfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuLi9maWVsZHNldC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7SW5wdXRHcm91cEl0ZW1Db21wb25lbnR9IGZyb20gJy4vaW5wdXQtZ3JvdXAtaXRlbS9pbnB1dC1ncm91cC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge0Rlc3lPbklucHV0Q2hhbmdlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LW9uLWlucHV0LWNoYW5nZS5kZWNvcmF0b3InO1xuaW1wb3J0IHtEZXN5Q29udGVudENoaWxkfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LWNvbnRlbnQtY2hpbGQuZGVjb3JhdG9yJztcbmltcG9ydCB7RmllbGRzZXRDb21wb25lbnR9IGZyb20gJy4uL2ZpZWxkc2V0L2ZpZWxkc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQge01ha2VIdG1sTGlzdFBpcGV9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9waXBlcy9tYWtlLWh0bWwtbGlzdC5waXBlJztcbmltcG9ydCB7SW5wdXRHcm91cElucHV0Q29tcG9uZW50fSBmcm9tICcuL2lucHV0LWdyb3VwLWlucHV0L2lucHV0LWdyb3VwLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge0lucHV0R3JvdXBTZWxlY3RDb21wb25lbnR9IGZyb20gJy4vaW5wdXQtZ3JvdXAtc2VsZWN0L2lucHV0LWdyb3VwLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtJbnB1dEdyb3VwRGl2aWRlckNvbXBvbmVudH0gZnJvbSAnLi9pbnB1dC1ncm91cC1kaXZpZGVyL2lucHV0LWdyb3VwLWRpdmlkZXIuY29tcG9uZW50JztcbmltcG9ydCB7U3RyaW5nVXRpbHN9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC91dGlscy9zdHJpbmctdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXN5LWlucHV0LWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dEdyb3VwQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIElucHV0R3JvdXBDb21wb25lbnQgZXh0ZW5kcyBGb3JtRmllbGRDb21wb25lbnQ8YW55PiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KCkgbmdNb2RlbEdyb3VwOiBzdHJpbmc7XG5cbiAgQERlc3lPbklucHV0Q2hhbmdlKCdvbkV4dGVybmFsQ2hhbmdlJylcbiAgQElucHV0KCkgaXRlbXM6IEl0ZW1JbnB1dEdyb3VwRGF0YVtdO1xuICBAT3V0cHV0KCkgaXRlbXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJdGVtSW5wdXRHcm91cERhdGFbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEl0ZW1JbnB1dEdyb3VwRGF0YVtdPigpO1xuXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnb25FeHRlcm5hbENoYW5nZScpXG4gIEBJbnB1dCgpIG5hbWVQcmVmaXg6IHN0cmluZztcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuXG4gIC8vICBmb3JtIGdyb3VwIGNsYXNzIC0gYXNpZ25hciBjbGFzZXMgYSBsYSBldGlxdWV0YSBkZXN5LWlucHV0LWdyb3VwXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYy1mb3JtLWdyb3VwJykgY2ZnID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jLWZvcm0tZ3JvdXAtLWVycm9yJykgY2ZncjogYm9vbGVhbjtcbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGZvcm1Hcm91cENsYXNzZXM6IGFueTtcblxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgQElucHV0KCkgZGVjbGFyZSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBmaWVsZHNldCwgZGlmZXJlbnRlcyBmb3JtYXMgZGUgaW1wbGVtZW50YXIsIGVudW1lcmFkYXMgcG9yIHByaW9yaWRhZFxuICAgKiAxKSBpbmNsdWlyIG9iamV0byBGaWVsZHNldERhdGEgKGludGVyZmF6IGV4cHVlc3RhKVxuICAgKiAyKSBpbmNsdWlyIHRlbXBsYXRlIGxlZ2VuZFxuICAgKiAzKSBpbmNsdWlyIGxlZ2VuZERhdGEgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1bmEgbGVnZW5kYSBjb24gbG9zIHBhcmFtZXRyb3MgcGFzYWRvcyAgKGludGVyZmF6IGV4cHVlc3RhKVxuICAgKiA0KSBpbmNsdWlyIGxlZ2VuZFRleHQgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1biB0ZXh0byBlbiBsYSBsZWdlbmRhXG4gICAqL1xuICBASW5wdXQoKSBmaWVsZHNldERhdGE6IEZpZWxkc2V0RGF0YTtcbiAgQElucHV0KCkgbGVnZW5kUmVmOiBUZW1wbGF0ZVJlZjxMZWdlbmRDb21wb25lbnQ+O1xuICBASW5wdXQoKSBsZWdlbmREYXRhOiBMZWdlbmREYXRhO1xuICBASW5wdXQoKSBsZWdlbmRUZXh0OiBzdHJpbmc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihJbnB1dEdyb3VwSXRlbUNvbXBvbmVudCkgaXRlbXNDb21wb25lbnRzOiBRdWVyeUxpc3Q8SW5wdXRHcm91cEl0ZW1Db21wb25lbnQ+O1xuXG4gIEBEZXN5Q29udGVudENoaWxkKHsgb25TZXRDYWxsYmFja05hbWU6ICdvdmVycmlkZUZpZWxkc2V0UGFyYW1zJ30pXG4gIEBDb250ZW50Q2hpbGRyZW4oRmllbGRzZXRDb21wb25lbnQpIGZpZWxkc2V0Q29tcG9uZW50OiBGaWVsZHNldENvbXBvbmVudDtcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oTGVnZW5kQ29tcG9uZW50KSBsZWdlbmRDb21wb25lbnQ6IExlZ2VuZENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCdpbm5lckh0bWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbm5lckh0bWw6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHJpdmF0ZSBjb250ZW50SW5pdCA9IGZhbHNlO1xuICAvL3B1YmxpYyBvZ0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuY2ZnciA9ICh0aGlzLmhhc0Vycm9yc01lc3NhZ2UoKSB8fCB0aGlzLmZvcm1Hcm91cENsYXNzZXMgPT09ICdjLWZvcm0tZ3JvdXAtLWVycm9yJyk7XG4gIH1cblxuICBnZXQgb2dGb3JtR3JvdXAoKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudEluaXQgPSB0cnVlO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0SXRlbXMoKTtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IHYgPSB0aGlzLnZhbHVlW3RoaXMuZ2V0SXRlbU5hbWUoaXRlbSldO1xuICAgICAgICBpdGVtLnZhbHVlID0gdiA/IHYgOiBudWxsO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICh0aGlzLml0ZW1zKSB7XG4gICAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gIH1cblxuICBvbkV4dGVybmFsQ2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250ZW50SW5pdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHt9O1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtcygpO1xuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB0aGlzLnZhbHVlW3RoaXMuZ2V0SXRlbU5hbWUoaXRlbSldID0gaXRlbS52YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIG9uSW50ZXJuYWxDaGFuZ2UoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhLCBpdGVtVmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1OYW1lID0gdGhpcy5nZXRJdGVtTmFtZShpdGVtKTtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB7fTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52YWx1ZVtpdGVtTmFtZV0gIT09IGl0ZW1WYWx1ZSkge1xuICAgICAgdGhpcy52YWx1ZVtpdGVtTmFtZV0gPSBpdGVtVmFsdWU7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuXG4gICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIElucHV0R3JvdXBJbnB1dENvbXBvbmVudCB8fCBpdGVtIGluc3RhbmNlb2YgSW5wdXRHcm91cFNlbGVjdENvbXBvbmVudCkge1xuICAgICAgICBpdGVtLnZhbHVlQ2hhbmdlLmVtaXQoaXRlbVZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXRlbXMpIHtcbiAgICAgICAgaXRlbS52YWx1ZSA9IGl0ZW1WYWx1ZTtcbiAgICAgICAgdGhpcy5pdGVtc0NoYW5nZS5lbWl0KHRoaXMuaXRlbXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlRmllbGRzZXRQYXJhbXMoZmllbGRzZXQ6IEZpZWxkc2V0Q29tcG9uZW50KTogdm9pZCB7XG4gICAgZmllbGRzZXQuY2FsbGVyID0gdGhpcy5pbm5lckh0bWw7XG4gICAgZmllbGRzZXQuZXJyb3JJZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xuICAgIGZpZWxkc2V0LmRlc2NyaWJlZEJ5ID0gbmV3IE1ha2VIdG1sTGlzdFBpcGUoKS50cmFuc2Zvcm0oW3RoaXMuZ2V0SGludElkKCksIHRoaXMuZ2V0RXJyb3JJZCgpXSwgbnVsbCk7XG4gICAgZmllbGRzZXQucm9sZSA9ICdncm91cCc7XG4gICAgZmllbGRzZXQuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLypcbiAgICogTcOpdG9kb3MgcGFyYSBwcm9wb3JjaW9uYXIgZGF0b3NcbiAgICovXG4gIGdldEl0ZW1zKCk6IEl0ZW1JbnB1dEdyb3VwRGF0YVtdIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc0NvbXBvbmVudHMgJiYgdGhpcy5pdGVtc0NvbXBvbmVudHMubGVuZ3RoID8gdGhpcy5pdGVtc0NvbXBvbmVudHMudG9BcnJheSgpIDogdGhpcy5pdGVtcztcbiAgfVxuXG4gIGdldEl0ZW1MYWJlbFJlZihpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gaXRlbSBpbnN0YW5jZW9mIElucHV0R3JvdXBJbnB1dENvbXBvbmVudCB8fCBpdGVtIGluc3RhbmNlb2YgSW5wdXRHcm91cFNlbGVjdENvbXBvbmVudCA/IGl0ZW0ubGFiZWxSZWYgOiBudWxsO1xuICB9XG5cbiAgZ2V0SXRlbUxhYmVsRGF0YShpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEpOiBMYWJlbERhdGEge1xuICAgIHJldHVybiBpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhIDogeyB0ZXh0OiBpdGVtLmxhYmVsVGV4dCB9O1xuICB9XG5cbiAgaGFzRmllbGRzZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSB8fCB0aGlzLmhhc0xlZ2VuZENvbXBvbmVudCgpIHx8IHRoaXMubGVnZW5kUmVmIHx8IHRoaXMuZmllbGRzZXREYXRhXG4gICAgICB8fCAodGhpcy5sZWdlbmREYXRhICYmICh0aGlzLmxlZ2VuZERhdGEudGV4dCB8fCB0aGlzLmxlZ2VuZERhdGEuaHRtbCkpIHx8IHRoaXMubGVnZW5kVGV4dCk7XG4gIH1cblxuICBoYXNGaWVsZHNldENvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZpZWxkc2V0Q29tcG9uZW50O1xuICB9XG5cbiAgaGFzTGVnZW5kQ29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubGVnZW5kQ29tcG9uZW50O1xuICB9XG5cbiAgZ2V0SXRlbU5hbWUoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lUHJlZml4ID8gdGhpcy5uYW1lUHJlZml4ICsgJy0nICsgaXRlbS5uYW1lIDogaXRlbS5uYW1lO1xuICB9XG5cbiAgZ2V0SXRlbVNlbGVjdE9wdGlvbnMoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogU2VsZWN0SXRlbURhdGFbXSB7XG4gICAgcmV0dXJuIGl0ZW0gaW5zdGFuY2VvZiBJbnB1dEdyb3VwU2VsZWN0Q29tcG9uZW50ID9cbiAgICAgIGl0ZW0uc2VsZWN0SXRlbUNvbXBvbmVudExpc3QudG9BcnJheSgpIDogaXRlbS5zZWxlY3RJdGVtcztcbiAgfVxuXG4gIGdldEl0ZW1EaXZpZGVyVGVtcGxhdGUoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIGl0ZW0uZGl2aWRlciBpbnN0YW5jZW9mIElucHV0R3JvdXBEaXZpZGVyQ29tcG9uZW50ID8gaXRlbS5kaXZpZGVyLmRpdmlkZXJDb250ZW50IDogbnVsbDtcbiAgfVxuXG4gIGdldEl0ZW1EaXZpZGVySHRtbChpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEpOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLmRpdmlkZXIuaHRtbCA/IGl0ZW0uZGl2aWRlci5odG1sIDogYDxwPiR7IFN0cmluZ1V0aWxzLmVzY2FwZUh0bWwoaXRlbS5kaXZpZGVyLnRleHQpIH08L3A+YDtcbiAgfVxuXG4gIGlzU2VsZWN0SXRlbShpdGVtOiBJdGVtSW5wdXRHcm91cERhdGEpOiBib29sZWFuIHtcbiAgICBsZXQgaGFzU2VsZWN0SXRlbXM7XG4gICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBJbnB1dEdyb3VwU2VsZWN0Q29tcG9uZW50KSB7XG4gICAgICBoYXNTZWxlY3RJdGVtcyA9IGl0ZW0uc2VsZWN0SXRlbUNvbXBvbmVudExpc3QgJiYgaXRlbS5zZWxlY3RJdGVtQ29tcG9uZW50TGlzdC5sZW5ndGggPiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBoYXNTZWxlY3RJdGVtcyA9IGl0ZW0uc2VsZWN0SXRlbXM7XG4gICAgfVxuICAgIHJldHVybiBpdGVtLmlzU2VsZWN0ICYmIGhhc1NlbGVjdEl0ZW1zO1xuICB9XG5cbiAgaGFzSXRlbUxhYmVsKGl0ZW06IEl0ZW1JbnB1dEdyb3VwRGF0YSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISgoaXRlbS5sYWJlbERhdGEgJiYgKGl0ZW0ubGFiZWxEYXRhLnRleHQgfHwgaXRlbS5sYWJlbERhdGEuaHRtbCkpIHx8IGl0ZW0ubGFiZWxUZXh0KTtcbiAgfVxuXG4gIGdldEl0ZW1DbGFzc2VzKGl0ZW06IEl0ZW1JbnB1dEdyb3VwRGF0YSk6IHN0cmluZ3tcbiAgICByZXR1cm4gbmV3IE1ha2VIdG1sTGlzdFBpcGUoKS50cmFuc2Zvcm0oWydtYi0wJywgaXRlbS5jbGFzc2VzLCB0aGlzLmhhc0Vycm9yc01lc3NhZ2UoKSA/ICdib3JkZXItYWxlcnQtYmFzZSByaW5nLTIgcmluZy1hbGVydC1iYXNlJyA6IG51bGxdLCBudWxsKTtcbiAgfVxuXG4gIGdldEl0ZW1BcmlhRGVzY3JpYmVkQnkoaXRlbTogSXRlbUlucHV0R3JvdXBEYXRhKTogc3RyaW5ne1xuICAgIHJldHVybiBuZXcgTWFrZUh0bWxMaXN0UGlwZSgpLnRyYW5zZm9ybShbaXRlbS5hcmlhRGVzY3JpYmVkQnksIHRoaXMuZ2V0RXJyb3JJZCgpLCB0aGlzLmdldEhpbnRJZCgpXSwgbnVsbCk7XG4gIH1cblxufVxuIiwiPCEtLSBEaXZpZGVyIG5vIGZvcm1hIHBhcnRlIGRlbCBmb3JtdWxhcmlvLCBwb3IgbG8gcXVlIGVzIHJldXRpbGl6YWJsZSBlbiBjdWFscXVpZXIgY2FzbyAtLT5cbjxuZy10ZW1wbGF0ZSAjaXRlbURpdmlkZXJcbiAgICAgICAgICAgICBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgPGRpdiByb2xlPVwic2VwYXJhdG9yXCJcbiAgICAgICBbbmdDbGFzc109XCJpdGVtLmRpdmlkZXIuY2xhc3Nlc1wiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyB0ZW1wbGF0ZTogZ2V0SXRlbURpdmlkZXJUZW1wbGF0ZShpdGVtKSwgaHRtbDogZ2V0SXRlbURpdmlkZXJIdG1sKGl0ZW0pIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lubmVySHRtbD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1oaW50XCI+PC9uZy1jb250ZW50PlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGludFJlZlwiPjwvbmctY29udGFpbmVyPlxuICA8ZGVzeS1oaW50ICpuZ0lmPVwiIWhpbnRSZWYgJiYgaGludERhdGFcIlxuICAgICAgICAgICAgIFtpZF09XCJnZXRIaW50SWQoKVwiXG4gICAgICAgICAgICAgW3RleHRdPVwiaGludERhdGEudGV4dFwiXG4gICAgICAgICAgICAgW2h0bWxdPVwiaGludERhdGEuaHRtbFwiXG4gICAgICAgICAgICAgW2NsYXNzZXNdPVwiaGludERhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgW3JvbGVdPVwiaGludERhdGEucm9sZVwiXG4gICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJoaW50RGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaGludERhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiaGludERhdGEuYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImhpbnREYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaGludERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cImhpbnREYXRhLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImhpbnREYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaGludERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiaGludERhdGEuYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJoaW50RGF0YS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImhpbnREYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgW3RhYmluZGV4XT1cImhpbnREYXRhLnRhYmluZGV4XCI+PC9kZXN5LWhpbnQ+XG4gIDxkZXN5LWhpbnQgKm5nSWY9XCIhaGludFJlZiAmJiAhaGludERhdGEgJiYgaGludFRleHRcIlxuICAgICAgICAgICAgIFt0ZXh0XT1cImhpbnRUZXh0XCJcbiAgICAgICAgICAgICBbaWRdPVwiZ2V0SGludElkKClcIj48L2Rlc3ktaGludD5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWVycm9yLW1lc3NhZ2VcIj48L25nLWNvbnRlbnQ+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvck1lc3NhZ2VSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgPGRlc3ktZXJyb3ItbWVzc2FnZSAqbmdJZj1cIiFlcnJvck1lc3NhZ2VSZWYgJiYgZXJyb3JNZXNzYWdlRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZXJyb3JNZXNzYWdlRGF0YS50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbaHRtbF09XCJlcnJvck1lc3NhZ2VEYXRhLmh0bWxcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImVycm9yTWVzc2FnZURhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3Zpc3VhbGx5SGlkZGVuVGV4dF09XCJlcnJvck1lc3NhZ2VEYXRhLnZpc3VhbGx5SGlkZGVuVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3JvbGVdPVwiZXJyb3JNZXNzYWdlRGF0YS5yb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImVycm9yTWVzc2FnZURhdGEudGFiaW5kZXhcIj48L2Rlc3ktZXJyb3ItbWVzc2FnZT5cbiAgPGRlc3ktZXJyb3ItbWVzc2FnZSAqbmdJZj1cIiFlcnJvck1lc3NhZ2VSZWYgJiYgIWVycm9yTWVzc2FnZURhdGEgJiYgZXJyb3JNZXNzYWdlVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZXJyb3JNZXNzYWdlVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImdldEVycm9ySWQoKVwiPjwvZGVzeS1lcnJvci1tZXNzYWdlPlxuXG4gIDwhLS0gUmVhY3RpdmUgZm9ybXMgLS0+XG4gIDxkaXYgKm5nSWY9XCJjb250cm9sQ29udGFpbmVyICYmICFuZ01vZGVsR3JvdXBcIlxuICAgICAgIFtmb3JtR3JvdXBdPVwib2dGb3JtR3JvdXBcIlxuICAgICAgIFtuZ0NsYXNzXT1cImNsYXNzZXMgPyBjbGFzc2VzIDogJ2ZsZXgnXCJcbiAgICAgICBbYXR0ci5pZF09XCJpZCA/IGlkIDogbnVsbFwiXG4gICAgICAgW2Rlc3lBcHBBY2Nlc3NpYmlsaXR5XT1cInRoaXNcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0SXRlbXMoKTsgaW5kZXggYXMgaVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlzU2VsZWN0SXRlbShpdGVtKSA/IGl0ZW1TZWxlY3QgOiAoaXRlbS5kaXZpZGVyID8gaXRlbURpdmlkZXIgOiBpdGVtSW5wdXQpOyBjb250ZXh0OiB7aXRlbTogaXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbVNlbGVjdD5cbiAgICAgICAgPGRlc3ktc2VsZWN0IFtpZF09XCJpdGVtLmlkID8gaXRlbS5pZCA6IGlkICsgJy0nICsgaXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFJlZl09XCJnZXRJdGVtTGFiZWxSZWYoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsRGF0YV09XCJnZXRJdGVtTGFiZWxEYXRhKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImdldEl0ZW1DbGFzc2VzKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBDbGFzc2VzXT1cIml0ZW0uZm9ybUdyb3VwQ2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJnZXRJdGVtTmFtZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImdldEl0ZW1OYW1lKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJnZXRJdGVtU2VsZWN0T3B0aW9ucyhpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJpdGVtLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpdGVtLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImdldEl0ZW1BcmlhRGVzY3JpYmVkQnkoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJpdGVtLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cIml0ZW0uYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0uYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpdGVtLnRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhTW9kYWxdPVwiaXRlbS5hcmlhTW9kYWxcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFDaGVja2VkXT1cIml0ZW0uYXJpYUNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFQcmVzc2VkXT1cIml0ZW0uYXJpYVByZXNzZWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFSZWFkb25seV09XCJpdGVtLmFyaWFSZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVJlcXVpcmVkXT1cIml0ZW0uYXJpYVJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhU2VsZWN0ZWRdPVwiaXRlbS5hcmlhU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFWYWx1ZW1pbl09XCJpdGVtLmFyaWFWYWx1ZW1pblwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVlbWF4XT1cIml0ZW0uYXJpYVZhbHVlbWF4XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhVmFsdWVub3ddPVwiaXRlbS5hcmlhVmFsdWVub3dcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFWYWx1ZXRleHRdPVwiaXRlbS5hcmlhVmFsdWV0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhT3JpZW50YXRpb25dPVwiaXRlbS5hcmlhT3JpZW50YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFMZXZlbF09XCJpdGVtLmFyaWFMZXZlbFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYU11bHRpc2VsZWN0YWJsZV09XCJpdGVtLmFyaWFNdWx0aXNlbGVjdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFQbGFjZWhvbGRlcl09XCJpdGVtLmFyaWFQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVBvc2luc2V0XT1cIml0ZW0uYXJpYVBvc2luc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhU2V0c2l6ZV09XCJpdGVtLmFyaWFTZXRzaXplXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhU29ydF09XCJpdGVtLmFyaWFTb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhQnVzeV09XCJpdGVtLmFyaWFCdXN5XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhRHJvcGVmZmVjdF09XCJpdGVtLmFyaWFEcm9wZWZmZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhR3JhYmJlZF09XCJpdGVtLmFyaWFHcmFiYmVkXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhQWN0aXZlZGVzY2VuZGFudF09XCJpdGVtLmFyaWFBY3RpdmVkZXNjZW5kYW50XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhQXRvbWljXT1cIml0ZW0uYXJpYUF0b21pY1wiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUF1dG9jb21wbGV0ZV09XCJpdGVtLmFyaWFBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFCcmFpbGxlbGFiZWxdPVwiaXRlbS5hcmlhQnJhaWxsZWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhQnJhaWxsZXJvbGVkZXNjcmlwdGlvbl09XCJpdGVtLmFyaWFCcmFpbGxlcm9sZWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29sY291bnRdPVwiaXRlbS5hcmlhQ29sY291bnRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb2xpbmRleF09XCJpdGVtLmFyaWFDb2xpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbGluZGV4dGV4dF09XCJpdGVtLmFyaWFDb2xpbmRleHRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb2xzcGFuXT1cIml0ZW0uYXJpYUNvbHNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFEZXNjcmlwdGlvbl09XCJpdGVtLmFyaWFEZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYURldGFpbHNdPVwiaXRlbS5hcmlhRGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUZsb3d0b109XCJpdGVtLmFyaWFGbG93dG9cIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFJbnZhbGlkXT1cIml0ZW0uYXJpYUludmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFLZXlzaG9ydGN1dHNdPVwiaXRlbS5hcmlhS2V5c2hvcnRjdXRzXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhT3duc109XCJpdGVtLmFyaWFPd25zXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhUmVsZXZhbnRdPVwiaXRlbS5hcmlhUmVsZXZhbnRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFSb2xlZGVzY3JpcHRpb25dPVwiaXRlbS5hcmlhUm9sZWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhUm93Y291bnRdPVwiaXRlbS5hcmlhUm93Y291bnRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFSb3dpbmRleF09XCJpdGVtLmFyaWFSb3dpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVJvd2luZGV4dGV4dF09XCJpdGVtLmFyaWFSb3dpbmRleHRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFSb3dzcGFuXT1cIml0ZW0uYXJpYVJvd3NwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW0udGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICBbbGFuZ109XCJpdGVtLmxhbmdcIlxuICAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc2tleV09XCJpdGVtLmFjY2Vzc2tleVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIml0ZW0uYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiaXRlbS5hdXRvZm9jdXNcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRlZGl0YWJsZV09XCJpdGVtLmNvbnRlbnRlZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICBbZGlyXT1cIml0ZW0uZGlyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiaXRlbS5kcmFnZ2FibGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2VudGVya2V5aGludF09XCJpdGVtLmVudGVya2V5aGludFwiXG4gICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgIFtpbnB1dG1vZGVdPVwiaXRlbS5pbnB1dG1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgW3NwZWxsY2hlY2tdPVwiaXRlbS5zcGVsbGNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2xhdGVdPVwiaXRlbS50cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFNdWx0aWxpbmVdPVwiaXRlbS5hcmlhTXVsdGlsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiaXRlbS5mb3JcIlxuICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiaXRlbS5mb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJzXT1cIml0ZW0uaGVhZGVyc1wiXG4gICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaXRlbS5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaXRlbS5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiaXRlbS5yZXF1aXJlZFwiPlxuICAgICAgICA8L2Rlc3ktc2VsZWN0PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbUlucHV0PlxuICAgICAgICA8ZGVzeS1pbnB1dCBbaWRdPVwiaXRlbS5pZCA/IGl0ZW0uaWQgOiBpZCArICctJyArIGl0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbFJlZl09XCJnZXRJdGVtTGFiZWxSZWYoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxEYXRhXT1cImdldEl0ZW1MYWJlbERhdGEoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJnZXRJdGVtQ2xhc3NlcyhpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBDbGFzc2VzXT1cIml0ZW0uZm9ybUdyb3VwQ2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImdldEl0ZW1OYW1lKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJnZXRJdGVtTmFtZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIml0ZW0udHlwZSA/IGl0ZW0udHlwZSA6ICd0ZXh0J1wiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dG1vZGVdPVwiaXRlbS5pbnB1dG1vZGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIml0ZW0uYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiaXRlbS5wYXR0ZXJuXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIml0ZW0ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiaXRlbS5tYXhsZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJpdGVtLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cIml0ZW0uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFEZXNjcmliZWRCeV09XCJnZXRJdGVtQXJpYURlc2NyaWJlZEJ5KGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIml0ZW0uYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cIml0ZW0uYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJpdGVtLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cIml0ZW0uYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpdGVtLnRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFNb2RhbF09XCJpdGVtLmFyaWFNb2RhbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQ2hlY2tlZF09XCJpdGVtLmFyaWFDaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFQcmVzc2VkXT1cIml0ZW0uYXJpYVByZXNzZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVJlYWRvbmx5XT1cIml0ZW0uYXJpYVJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFSZXF1aXJlZF09XCJpdGVtLmFyaWFSZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhU2VsZWN0ZWRdPVwiaXRlbS5hcmlhU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVlbWluXT1cIml0ZW0uYXJpYVZhbHVlbWluXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFWYWx1ZW1heF09XCJpdGVtLmFyaWFWYWx1ZW1heFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhVmFsdWVub3ddPVwiaXRlbS5hcmlhVmFsdWVub3dcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVldGV4dF09XCJpdGVtLmFyaWFWYWx1ZXRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYU9yaWVudGF0aW9uXT1cIml0ZW0uYXJpYU9yaWVudGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMZXZlbF09XCJpdGVtLmFyaWFMZXZlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTXVsdGlzZWxlY3RhYmxlXT1cIml0ZW0uYXJpYU11bHRpc2VsZWN0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhUGxhY2Vob2xkZXJdPVwiaXRlbS5hcmlhUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVBvc2luc2V0XT1cIml0ZW0uYXJpYVBvc2luc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFTZXRzaXplXT1cIml0ZW0uYXJpYVNldHNpemVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVNvcnRdPVwiaXRlbS5hcmlhU29ydFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQnVzeV09XCJpdGVtLmFyaWFCdXN5XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFEcm9wZWZmZWN0XT1cIml0ZW0uYXJpYURyb3BlZmZlY3RcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUdyYWJiZWRdPVwiaXRlbS5hcmlhR3JhYmJlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQWN0aXZlZGVzY2VuZGFudF09XCJpdGVtLmFyaWFBY3RpdmVkZXNjZW5kYW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFBdG9taWNdPVwiaXRlbS5hcmlhQXRvbWljXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFBdXRvY29tcGxldGVdPVwiaXRlbS5hcmlhQXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFCcmFpbGxlbGFiZWxdPVwiaXRlbS5hcmlhQnJhaWxsZWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFCcmFpbGxlcm9sZWRlc2NyaXB0aW9uXT1cIml0ZW0uYXJpYUJyYWlsbGVyb2xlZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbGNvdW50XT1cIml0ZW0uYXJpYUNvbGNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb2xpbmRleF09XCJpdGVtLmFyaWFDb2xpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQ29saW5kZXh0ZXh0XT1cIml0ZW0uYXJpYUNvbGluZGV4dGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQ29sc3Bhbl09XCJpdGVtLmFyaWFDb2xzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFEZXNjcmlwdGlvbl09XCJpdGVtLmFyaWFEZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRGV0YWlsc109XCJpdGVtLmFyaWFEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFGbG93dG9dPVwiaXRlbS5hcmlhRmxvd3RvXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFJbnZhbGlkXT1cIml0ZW0uYXJpYUludmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUtleXNob3J0Y3V0c109XCJpdGVtLmFyaWFLZXlzaG9ydGN1dHNcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYU93bnNdPVwiaXRlbS5hcmlhT3duc1wiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhUmVsZXZhbnRdPVwiaXRlbS5hcmlhUmVsZXZhbnRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVJvbGVkZXNjcmlwdGlvbl09XCJpdGVtLmFyaWFSb2xlZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVJvd2NvdW50XT1cIml0ZW0uYXJpYVJvd2NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFSb3dpbmRleF09XCJpdGVtLmFyaWFSb3dpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhUm93aW5kZXh0ZXh0XT1cIml0ZW0uYXJpYVJvd2luZGV4dGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhUm93c3Bhbl09XCJpdGVtLmFyaWFSb3dzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW0udGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0uYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgW2xhbmddPVwiaXRlbS5sYW5nXCJcbiAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc2tleV09XCJpdGVtLmFjY2Vzc2tleVwiXG4gICAgICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiaXRlbS5hdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cIml0ZW0uYXV0b2ZvY3VzXCJcbiAgICAgICAgICAgICAgICAgICAgW2NvbnRlbnRlZGl0YWJsZV09XCJpdGVtLmNvbnRlbnRlZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXJdPVwiaXRlbS5kaXJcIlxuICAgICAgICAgICAgICAgICAgICBbZHJhZ2dhYmxlXT1cIml0ZW0uZHJhZ2dhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2VudGVya2V5aGludF09XCJpdGVtLmVudGVya2V5aGludFwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiaXRlbS5oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRtb2RlXT1cIml0ZW0uaW5wdXRtb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgW3NwZWxsY2hlY2tdPVwiaXRlbS5zcGVsbGNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0ZV09XCJpdGVtLnRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTXVsdGlsaW5lXT1cIml0ZW0uYXJpYU11bHRpbGluZVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiaXRlbS5mb3JcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJpdGVtLmZvcm1cIlxuICAgICAgICAgICAgICAgICAgICBbaGVhZGVyc109XCJpdGVtLmhlYWRlcnNcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaXRlbS5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJpdGVtLnJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIml0ZW0ucmVxdWlyZWRcIj5cbiAgICAgICAgPC9kZXN5LWlucHV0PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBUZW1wbGF0ZS1kcml2ZW4gZm9ybXMgLS0+XG4gIDxkZXN5LXRlbXBsYXRlLWRyaXZlbi13cmFwcGVyICpuZ0lmPVwiY29udHJvbENvbnRhaW5lciAmJiBuZ01vZGVsR3JvdXBcIj5cbiAgICA8ZGl2IFtuZ01vZGVsR3JvdXBdPVwibmdNb2RlbEdyb3VwXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cImNsYXNzZXMgPyBjbGFzc2VzIDogJ2ZsZXgnXCJcbiAgICAgICAgIFthdHRyLmlkXT1cImlkID8gaWQgOiBudWxsXCJcbiAgICAgICAgIFtkZXN5QXBwQWNjZXNzaWJpbGl0eV09XCJ0aGlzXCI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0SXRlbXMoKTsgaW5kZXggYXMgaVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNTZWxlY3RJdGVtKGl0ZW0pID8gaXRlbVNlbGVjdCA6IChpdGVtLmRpdmlkZXIgPyBpdGVtRGl2aWRlciA6IGl0ZW1JbnB1dCk7IGNvbnRleHQ6IHtpdGVtOiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2l0ZW1TZWxlY3Q+XG4gICAgICAgICAgPGRlc3ktc2VsZWN0IFtpZF09XCJpdGVtLmlkID8gaXRlbS5pZCA6IGlkICsgJy0nICsgaXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsUmVmXT1cImdldEl0ZW1MYWJlbFJlZihpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbERhdGFdPVwiZ2V0SXRlbUxhYmVsRGF0YShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImdldEl0ZW1DbGFzc2VzKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cENsYXNzZXNdPVwiaXRlbS5mb3JtR3JvdXBDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiZ2V0SXRlbU5hbWUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJpdGVtLnZhbHVlID09PSB1bmRlZmluZWQgPyBudWxsIDogaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW50ZXJuYWxDaGFuZ2UoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJnZXRJdGVtU2VsZWN0T3B0aW9ucyhpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JvbGVdPVwiaXRlbS5yb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpdGVtLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiZ2V0SXRlbUFyaWFEZXNjcmliZWRCeShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJpdGVtLmFyaWFEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaXRlbS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJpdGVtLmFyaWFMaXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhSGFzUG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXRlbS50YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhTW9kYWxdPVwiaXRlbS5hcmlhTW9kYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUNoZWNrZWRdPVwiaXRlbS5hcmlhQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhUHJlc3NlZF09XCJpdGVtLmFyaWFQcmVzc2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFSZWFkb25seV09XCJpdGVtLmFyaWFSZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhUmVxdWlyZWRdPVwiaXRlbS5hcmlhUmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYVNlbGVjdGVkXT1cIml0ZW0uYXJpYVNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFWYWx1ZW1pbl09XCJpdGVtLmFyaWFWYWx1ZW1pblwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhVmFsdWVtYXhdPVwiaXRlbS5hcmlhVmFsdWVtYXhcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVlbm93XT1cIml0ZW0uYXJpYVZhbHVlbm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFWYWx1ZXRleHRdPVwiaXRlbS5hcmlhVmFsdWV0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFPcmllbnRhdGlvbl09XCJpdGVtLmFyaWFPcmllbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGV2ZWxdPVwiaXRlbS5hcmlhTGV2ZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYU11bHRpc2VsZWN0YWJsZV09XCJpdGVtLmFyaWFNdWx0aXNlbGVjdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYVBsYWNlaG9sZGVyXT1cIml0ZW0uYXJpYVBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFQb3NpbnNldF09XCJpdGVtLmFyaWFQb3NpbnNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhU2V0c2l6ZV09XCJpdGVtLmFyaWFTZXRzaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFTb3J0XT1cIml0ZW0uYXJpYVNvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUJ1c3ldPVwiaXRlbS5hcmlhQnVzeVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhRHJvcGVmZmVjdF09XCJpdGVtLmFyaWFEcm9wZWZmZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFHcmFiYmVkXT1cIml0ZW0uYXJpYUdyYWJiZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUFjdGl2ZWRlc2NlbmRhbnRdPVwiaXRlbS5hcmlhQWN0aXZlZGVzY2VuZGFudFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhQXRvbWljXT1cIml0ZW0uYXJpYUF0b21pY1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhQXV0b2NvbXBsZXRlXT1cIml0ZW0uYXJpYUF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhQnJhaWxsZWxhYmVsXT1cIml0ZW0uYXJpYUJyYWlsbGVsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhQnJhaWxsZXJvbGVkZXNjcmlwdGlvbl09XCJpdGVtLmFyaWFCcmFpbGxlcm9sZWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb2xjb3VudF09XCJpdGVtLmFyaWFDb2xjb3VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29saW5kZXhdPVwiaXRlbS5hcmlhQ29saW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbGluZGV4dGV4dF09XCJpdGVtLmFyaWFDb2xpbmRleHRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbHNwYW5dPVwiaXRlbS5hcmlhQ29sc3BhblwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpcHRpb25dPVwiaXRlbS5hcmlhRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURldGFpbHNdPVwiaXRlbS5hcmlhRGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhRmxvd3RvXT1cIml0ZW0uYXJpYUZsb3d0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhSW52YWxpZF09XCJpdGVtLmFyaWFJbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFLZXlzaG9ydGN1dHNdPVwiaXRlbS5hcmlhS2V5c2hvcnRjdXRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFPd25zXT1cIml0ZW0uYXJpYU93bnNcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYVJlbGV2YW50XT1cIml0ZW0uYXJpYVJlbGV2YW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFSb2xlZGVzY3JpcHRpb25dPVwiaXRlbS5hcmlhUm9sZWRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFSb3djb3VudF09XCJpdGVtLmFyaWFSb3djb3VudFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFthcmlhUm93aW5kZXhdPVwiaXRlbS5hcmlhUm93aW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYVJvd2luZGV4dGV4dF09XCJpdGVtLmFyaWFSb3dpbmRleHRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYVJvd3NwYW5dPVwiaXRlbS5hcmlhUm93c3BhblwiXG4gICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtsYW5nXT1cIml0ZW0ubGFuZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NrZXldPVwiaXRlbS5hY2Nlc3NrZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIml0ZW0uYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJpdGVtLmF1dG9mb2N1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50ZWRpdGFibGVdPVwiaXRlbS5jb250ZW50ZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbZGlyXT1cIml0ZW0uZGlyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJpdGVtLmRyYWdnYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtlbnRlcmtleWhpbnRdPVwiaXRlbS5lbnRlcmtleWhpbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2lucHV0bW9kZV09XCJpdGVtLmlucHV0bW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtzcGVsbGNoZWNrXT1cIml0ZW0uc3BlbGxjaGVja1wiXG4gICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2xhdGVdPVwiaXRlbS50cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbYXJpYU11bHRpbGluZV09XCJpdGVtLmFyaWFNdWx0aWxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIml0ZW0uZm9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiaXRlbS5mb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlcnNdPVwiaXRlbS5oZWFkZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIml0ZW0ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaXRlbS5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJpdGVtLnJlcXVpcmVkXCI+XG4gICAgICAgICAgPC9kZXN5LXNlbGVjdD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNpdGVtSW5wdXQ+XG4gICAgICAgICAgPGRlc3ktaW5wdXQgW2lkXT1cIml0ZW0uaWQgPyBpdGVtLmlkIDogaWQgKyAnLScgKyBpdGVtLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbFJlZl09XCJnZXRJdGVtTGFiZWxSZWYoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbERhdGFdPVwiZ2V0SXRlbUxhYmVsRGF0YShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiZ2V0SXRlbUNsYXNzZXMoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBDbGFzc2VzXT1cIml0ZW0uZm9ybUdyb3VwQ2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiZ2V0SXRlbU5hbWUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSW50ZXJuYWxDaGFuZ2UoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiaXRlbS50eXBlID8gaXRlbS50eXBlIDogJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRtb2RlXT1cIml0ZW0uaW5wdXRtb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIml0ZW0uYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCJpdGVtLnBhdHRlcm5cIlxuICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJpdGVtLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCJpdGVtLm1heGxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3JvbGVdPVwiaXRlbS5yb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cIml0ZW0uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImdldEl0ZW1BcmlhRGVzY3JpYmVkQnkoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaXRlbS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0uYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXRlbS50YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFNb2RhbF09XCJpdGVtLmFyaWFNb2RhbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFDaGVja2VkXT1cIml0ZW0uYXJpYUNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhUHJlc3NlZF09XCJpdGVtLmFyaWFQcmVzc2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYVJlYWRvbmx5XT1cIml0ZW0uYXJpYVJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYVJlcXVpcmVkXT1cIml0ZW0uYXJpYVJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYVNlbGVjdGVkXT1cIml0ZW0uYXJpYVNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVlbWluXT1cIml0ZW0uYXJpYVZhbHVlbWluXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVlbWF4XT1cIml0ZW0uYXJpYVZhbHVlbWF4XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVlbm93XT1cIml0ZW0uYXJpYVZhbHVlbm93XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVldGV4dF09XCJpdGVtLmFyaWFWYWx1ZXRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhT3JpZW50YXRpb25dPVwiaXRlbS5hcmlhT3JpZW50YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGV2ZWxdPVwiaXRlbS5hcmlhTGV2ZWxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhTXVsdGlzZWxlY3RhYmxlXT1cIml0ZW0uYXJpYU11bHRpc2VsZWN0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFQbGFjZWhvbGRlcl09XCJpdGVtLmFyaWFQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFQb3NpbnNldF09XCJpdGVtLmFyaWFQb3NpbnNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFTZXRzaXplXT1cIml0ZW0uYXJpYVNldHNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhU29ydF09XCJpdGVtLmFyaWFTb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUJ1c3ldPVwiaXRlbS5hcmlhQnVzeVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFEcm9wZWZmZWN0XT1cIml0ZW0uYXJpYURyb3BlZmZlY3RcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhR3JhYmJlZF09XCJpdGVtLmFyaWFHcmFiYmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUFjdGl2ZWRlc2NlbmRhbnRdPVwiaXRlbS5hcmlhQWN0aXZlZGVzY2VuZGFudFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFBdG9taWNdPVwiaXRlbS5hcmlhQXRvbWljXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUF1dG9jb21wbGV0ZV09XCJpdGVtLmFyaWFBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhQnJhaWxsZWxhYmVsXT1cIml0ZW0uYXJpYUJyYWlsbGVsYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFCcmFpbGxlcm9sZWRlc2NyaXB0aW9uXT1cIml0ZW0uYXJpYUJyYWlsbGVyb2xlZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29sY291bnRdPVwiaXRlbS5hcmlhQ29sY291bnRcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29saW5kZXhdPVwiaXRlbS5hcmlhQ29saW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29saW5kZXh0ZXh0XT1cIml0ZW0uYXJpYUNvbGluZGV4dGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb2xzcGFuXT1cIml0ZW0uYXJpYUNvbHNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpcHRpb25dPVwiaXRlbS5hcmlhRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGV0YWlsc109XCJpdGVtLmFyaWFEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUZsb3d0b109XCJpdGVtLmFyaWFGbG93dG9cIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhSW52YWxpZF09XCJpdGVtLmFyaWFJbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYUtleXNob3J0Y3V0c109XCJpdGVtLmFyaWFLZXlzaG9ydGN1dHNcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhT3duc109XCJpdGVtLmFyaWFPd25zXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYVJlbGV2YW50XT1cIml0ZW0uYXJpYVJlbGV2YW50XCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXJpYVJvbGVkZXNjcmlwdGlvbl09XCJpdGVtLmFyaWFSb2xlZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhUm93Y291bnRdPVwiaXRlbS5hcmlhUm93Y291bnRcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhUm93aW5kZXhdPVwiaXRlbS5hcmlhUm93aW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgIFthcmlhUm93aW5kZXh0ZXh0XT1cIml0ZW0uYXJpYVJvd2luZGV4dGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFSb3dzcGFuXT1cIml0ZW0uYXJpYVJvd3NwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0uYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICBbbGFuZ109XCJpdGVtLmxhbmdcIlxuICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NrZXldPVwiaXRlbS5hY2Nlc3NrZXlcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiaXRlbS5hdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdXRvZm9jdXNdPVwiaXRlbS5hdXRvZm9jdXNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb250ZW50ZWRpdGFibGVdPVwiaXRlbS5jb250ZW50ZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXJdPVwiaXRlbS5kaXJcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkcmFnZ2FibGVdPVwiaXRlbS5kcmFnZ2FibGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtlbnRlcmtleWhpbnRdPVwiaXRlbS5lbnRlcmtleWhpbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiaXRlbS5oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dG1vZGVdPVwiaXRlbS5pbnB1dG1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzcGVsbGNoZWNrXT1cIml0ZW0uc3BlbGxjaGVja1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0ZV09XCJpdGVtLnRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FyaWFNdWx0aWxpbmVdPVwiaXRlbS5hcmlhTXVsdGlsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIml0ZW0uZm9yXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJpdGVtLmZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJzXT1cIml0ZW0uaGVhZGVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIml0ZW0ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJpdGVtLnJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiaXRlbS5yZXF1aXJlZFwiPlxuICAgICAgICAgIDwvZGVzeS1pbnB1dD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rlc3ktdGVtcGxhdGUtZHJpdmVuLXdyYXBwZXI+XG5cbiAgPCEtLSBXaXRoIG5nTW9kZWwtLT5cbiAgPGRpdiAqbmdJZj1cIiFjb250cm9sQ29udGFpbmVyXCJcbiAgICAgICBbbmdDbGFzc109XCJjbGFzc2VzID8gY2xhc3NlcyA6ICdmbGV4J1wiXG4gICAgICAgW2F0dHIuaWRdPVwiaWQgPyBpZCA6IG51bGxcIlxuICAgICAgIFtkZXN5QXBwQWNjZXNzaWJpbGl0eV09XCJ0aGlzXCI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdldEl0ZW1zKCk7IGluZGV4IGFzIGlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpc1NlbGVjdEl0ZW0oaXRlbSkgPyBpdGVtU2VsZWN0IDogKGl0ZW0uZGl2aWRlciA/IGl0ZW1EaXZpZGVyIDogaXRlbUlucHV0KTsgY29udGV4dDoge2l0ZW06IGl0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2l0ZW1TZWxlY3Q+XG4gICAgICAgIDxkZXN5LXNlbGVjdCBbaWRdPVwiaXRlbS5pZCA/IGl0ZW0uaWQgOiBpZCArICctJyArIGl0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICBbbGFiZWxSZWZdPVwiZ2V0SXRlbUxhYmVsUmVmKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbERhdGFdPVwiZ2V0SXRlbUxhYmVsRGF0YShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJnZXRJdGVtQ2xhc3NlcyhpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwQ2xhc3Nlc109XCJpdGVtLmZvcm1Hcm91cENsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiZ2V0SXRlbU5hbWUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cImdldEl0ZW1TZWxlY3RPcHRpb25zKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIml0ZW0udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnRlcm5hbENoYW5nZShpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cIml0ZW0ucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cIml0ZW0uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiZ2V0SXRlbUFyaWFEZXNjcmliZWRCeShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiaXRlbS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJpdGVtLmFyaWFEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cIml0ZW0uYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJpdGVtLmFyaWFMaXZlXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiaXRlbS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhSGFzUG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIml0ZW0udGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFNb2RhbF09XCJpdGVtLmFyaWFNb2RhbFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUNoZWNrZWRdPVwiaXRlbS5hcmlhQ2hlY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVByZXNzZWRdPVwiaXRlbS5hcmlhUHJlc3NlZFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVJlYWRvbmx5XT1cIml0ZW0uYXJpYVJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhUmVxdWlyZWRdPVwiaXRlbS5hcmlhUmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFTZWxlY3RlZF09XCJpdGVtLmFyaWFTZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVlbWluXT1cIml0ZW0uYXJpYVZhbHVlbWluXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhVmFsdWVtYXhdPVwiaXRlbS5hcmlhVmFsdWVtYXhcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFWYWx1ZW5vd109XCJpdGVtLmFyaWFWYWx1ZW5vd1wiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVldGV4dF09XCJpdGVtLmFyaWFWYWx1ZXRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFPcmllbnRhdGlvbl09XCJpdGVtLmFyaWFPcmllbnRhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUxldmVsXT1cIml0ZW0uYXJpYUxldmVsXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhTXVsdGlzZWxlY3RhYmxlXT1cIml0ZW0uYXJpYU11bHRpc2VsZWN0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVBsYWNlaG9sZGVyXT1cIml0ZW0uYXJpYVBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhUG9zaW5zZXRdPVwiaXRlbS5hcmlhUG9zaW5zZXRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFTZXRzaXplXT1cIml0ZW0uYXJpYVNldHNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFTb3J0XT1cIml0ZW0uYXJpYVNvcnRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFCdXN5XT1cIml0ZW0uYXJpYUJ1c3lcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFEcm9wZWZmZWN0XT1cIml0ZW0uYXJpYURyb3BlZmZlY3RcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFHcmFiYmVkXT1cIml0ZW0uYXJpYUdyYWJiZWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFBY3RpdmVkZXNjZW5kYW50XT1cIml0ZW0uYXJpYUFjdGl2ZWRlc2NlbmRhbnRcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFBdG9taWNdPVwiaXRlbS5hcmlhQXRvbWljXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhQXV0b2NvbXBsZXRlXT1cIml0ZW0uYXJpYUF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUJyYWlsbGVsYWJlbF09XCJpdGVtLmFyaWFCcmFpbGxlbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFCcmFpbGxlcm9sZWRlc2NyaXB0aW9uXT1cIml0ZW0uYXJpYUJyYWlsbGVyb2xlZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb2xjb3VudF09XCJpdGVtLmFyaWFDb2xjb3VudFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbGluZGV4XT1cIml0ZW0uYXJpYUNvbGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29saW5kZXh0ZXh0XT1cIml0ZW0uYXJpYUNvbGluZGV4dGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbHNwYW5dPVwiaXRlbS5hcmlhQ29sc3BhblwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaXB0aW9uXT1cIml0ZW0uYXJpYURlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhRGV0YWlsc109XCJpdGVtLmFyaWFEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhRmxvd3RvXT1cIml0ZW0uYXJpYUZsb3d0b1wiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUludmFsaWRdPVwiaXRlbS5hcmlhSW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYUtleXNob3J0Y3V0c109XCJpdGVtLmFyaWFLZXlzaG9ydGN1dHNcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFPd25zXT1cIml0ZW0uYXJpYU93bnNcIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFSZWxldmFudF09XCJpdGVtLmFyaWFSZWxldmFudFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVJvbGVkZXNjcmlwdGlvbl09XCJpdGVtLmFyaWFSb2xlZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgW2FyaWFSb3djb3VudF09XCJpdGVtLmFyaWFSb3djb3VudFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVJvd2luZGV4XT1cIml0ZW0uYXJpYVJvd2luZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgIFthcmlhUm93aW5kZXh0ZXh0XT1cIml0ZW0uYXJpYVJvd2luZGV4dGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYVJvd3NwYW5dPVwiaXRlbS5hcmlhUm93c3BhblwiXG4gICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXRlbS50YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbS50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICBbYWx0XT1cIml0ZW0uYWx0XCJcbiAgICAgICAgICAgICAgICAgICAgIFtsYW5nXT1cIml0ZW0ubGFuZ1wiXG4gICAgICAgICAgICAgICAgICAgICBbYWNjZXNza2V5XT1cIml0ZW0uYWNjZXNza2V5XCJcbiAgICAgICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiaXRlbS5hdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJpdGVtLmF1dG9mb2N1c1wiXG4gICAgICAgICAgICAgICAgICAgICBbY29udGVudGVkaXRhYmxlXT1cIml0ZW0uY29udGVudGVkaXRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXJdPVwiaXRlbS5kaXJcIlxuICAgICAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJpdGVtLmRyYWdnYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICBbZW50ZXJrZXloaW50XT1cIml0ZW0uZW50ZXJrZXloaW50XCJcbiAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiaXRlbS5oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgW2lucHV0bW9kZV09XCJpdGVtLmlucHV0bW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICBbc3BlbGxjaGVja109XCJpdGVtLnNwZWxsY2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0ZV09XCJpdGVtLnRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbYXJpYU11bHRpbGluZV09XCJpdGVtLmFyaWFNdWx0aWxpbmVcIlxuICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCJpdGVtLmZvclwiXG4gICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJpdGVtLmZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgW2hlYWRlcnNdPVwiaXRlbS5oZWFkZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJpdGVtLnBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJpdGVtLnJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJpdGVtLnJlcXVpcmVkXCI+XG4gICAgICAgIDwvZGVzeS1zZWxlY3Q+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlICNpdGVtSW5wdXQ+XG4gICAgICAgIDxkZXN5LWlucHV0IFtpZF09XCJpdGVtLmlkID8gaXRlbS5pZCA6IGlkICsgJy0nICsgaXRlbS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsUmVmXT1cImdldEl0ZW1MYWJlbFJlZihpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbERhdGFdPVwiZ2V0SXRlbUxhYmVsRGF0YShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImdldEl0ZW1DbGFzc2VzKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cENsYXNzZXNdPVwiaXRlbS5mb3JtR3JvdXBDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiZ2V0SXRlbU5hbWUoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJpdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25JbnRlcm5hbENoYW5nZShpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiaXRlbS50eXBlID8gaXRlbS50eXBlIDogJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0bW9kZV09XCJpdGVtLmlucHV0bW9kZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiaXRlbS5hdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCJpdGVtLnBhdHRlcm5cIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaXRlbS5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCJpdGVtLm1heGxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cIml0ZW0ucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImdldEl0ZW1BcmlhRGVzY3JpYmVkQnkoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiaXRlbS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cIml0ZW0uYXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cIml0ZW0uYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cIml0ZW0uYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiaXRlbS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0uYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIml0ZW0udGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYU1vZGFsXT1cIml0ZW0uYXJpYU1vZGFsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDaGVja2VkXT1cIml0ZW0uYXJpYUNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVByZXNzZWRdPVwiaXRlbS5hcmlhUHJlc3NlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhUmVhZG9ubHldPVwiaXRlbS5hcmlhUmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVJlcXVpcmVkXT1cIml0ZW0uYXJpYVJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFTZWxlY3RlZF09XCJpdGVtLmFyaWFTZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhVmFsdWVtaW5dPVwiaXRlbS5hcmlhVmFsdWVtaW5cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVZhbHVlbWF4XT1cIml0ZW0uYXJpYVZhbHVlbWF4XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFWYWx1ZW5vd109XCJpdGVtLmFyaWFWYWx1ZW5vd1wiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhVmFsdWV0ZXh0XT1cIml0ZW0uYXJpYVZhbHVldGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhT3JpZW50YXRpb25dPVwiaXRlbS5hcmlhT3JpZW50YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxldmVsXT1cIml0ZW0uYXJpYUxldmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFNdWx0aXNlbGVjdGFibGVdPVwiaXRlbS5hcmlhTXVsdGlzZWxlY3RhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFQbGFjZWhvbGRlcl09XCJpdGVtLmFyaWFQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhUG9zaW5zZXRdPVwiaXRlbS5hcmlhUG9zaW5zZXRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVNldHNpemVdPVwiaXRlbS5hcmlhU2V0c2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhU29ydF09XCJpdGVtLmFyaWFTb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFCdXN5XT1cIml0ZW0uYXJpYUJ1c3lcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURyb3BlZmZlY3RdPVwiaXRlbS5hcmlhRHJvcGVmZmVjdFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhR3JhYmJlZF09XCJpdGVtLmFyaWFHcmFiYmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFBY3RpdmVkZXNjZW5kYW50XT1cIml0ZW0uYXJpYUFjdGl2ZWRlc2NlbmRhbnRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUF0b21pY109XCJpdGVtLmFyaWFBdG9taWNcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUF1dG9jb21wbGV0ZV09XCJpdGVtLmFyaWFBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUJyYWlsbGVsYWJlbF09XCJpdGVtLmFyaWFCcmFpbGxlbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUJyYWlsbGVyb2xlZGVzY3JpcHRpb25dPVwiaXRlbS5hcmlhQnJhaWxsZXJvbGVkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQ29sY291bnRdPVwiaXRlbS5hcmlhQ29sY291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbGluZGV4XT1cIml0ZW0uYXJpYUNvbGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb2xpbmRleHRleHRdPVwiaXRlbS5hcmlhQ29saW5kZXh0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb2xzcGFuXT1cIml0ZW0uYXJpYUNvbHNwYW5cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaXB0aW9uXT1cIml0ZW0uYXJpYURlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFEZXRhaWxzXT1cIml0ZW0uYXJpYURldGFpbHNcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUZsb3d0b109XCJpdGVtLmFyaWFGbG93dG9cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUludmFsaWRdPVwiaXRlbS5hcmlhSW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhS2V5c2hvcnRjdXRzXT1cIml0ZW0uYXJpYUtleXNob3J0Y3V0c1wiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhT3duc109XCJpdGVtLmFyaWFPd25zXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFSZWxldmFudF09XCJpdGVtLmFyaWFSZWxldmFudFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhUm9sZWRlc2NyaXB0aW9uXT1cIml0ZW0uYXJpYVJvbGVkZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhUm93Y291bnRdPVwiaXRlbS5hcmlhUm93Y291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYVJvd2luZGV4XT1cIml0ZW0uYXJpYVJvd2luZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFSb3dpbmRleHRleHRdPVwiaXRlbS5hcmlhUm93aW5kZXh0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFSb3dzcGFuXT1cIml0ZW0uYXJpYVJvd3NwYW5cIlxuICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXRlbS50YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLmFsdFwiXG4gICAgICAgICAgICAgICAgICAgIFtsYW5nXT1cIml0ZW0ubGFuZ1wiXG4gICAgICAgICAgICAgICAgICAgIFthY2Nlc3NrZXldPVwiaXRlbS5hY2Nlc3NrZXlcIlxuICAgICAgICAgICAgICAgICAgICBbYXV0b2NvbXBsZXRlXT1cIml0ZW0uYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJpdGVtLmF1dG9mb2N1c1wiXG4gICAgICAgICAgICAgICAgICAgIFtjb250ZW50ZWRpdGFibGVdPVwiaXRlbS5jb250ZW50ZWRpdGFibGVcIlxuICAgICAgICAgICAgICAgICAgICBbZGlyXT1cIml0ZW0uZGlyXCJcbiAgICAgICAgICAgICAgICAgICAgW2RyYWdnYWJsZV09XCJpdGVtLmRyYWdnYWJsZVwiXG4gICAgICAgICAgICAgICAgICAgIFtlbnRlcmtleWhpbnRdPVwiaXRlbS5lbnRlcmtleWhpbnRcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0bW9kZV09XCJpdGVtLmlucHV0bW9kZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzcGVsbGNoZWNrXT1cIml0ZW0uc3BlbGxjaGVja1wiXG4gICAgICAgICAgICAgICAgICAgIFt0cmFuc2xhdGVdPVwiaXRlbS50cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYU11bHRpbGluZV09XCJpdGVtLmFyaWFNdWx0aWxpbmVcIlxuICAgICAgICAgICAgICAgICAgICBbZm9yXT1cIml0ZW0uZm9yXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiaXRlbS5mb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgW2hlYWRlcnNdPVwiaXRlbS5oZWFkZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIml0ZW0ucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiaXRlbS5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJpdGVtLnJlcXVpcmVkXCI+XG4gICAgICAgIDwvZGVzeS1pbnB1dD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWVsZHNldENvbXBvbmVudCgpXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktZmllbGRzZXRcIj48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzRmllbGRzZXRDb21wb25lbnQoKVwiPlxuICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cImZpZWxkc2V0RGF0YVwiXG4gICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImZpZWxkc2V0RGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgW2lkXT1cImZpZWxkc2V0RGF0YS5pZFwiXG4gICAgICAgICAgICAgICAgIFtsZWdlbmREYXRhXT1cImZpZWxkc2V0RGF0YS5sZWdlbmRcIlxuICAgICAgICAgICAgICAgICBbaGVhZGluZ0xldmVsXT1cImZpZWxkc2V0RGF0YS5oZWFkaW5nTGV2ZWxcIlxuICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbZmllbGRzZXREYXRhLmRlc2NyaWJlZEJ5LCBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCJcbiAgICAgICAgICAgICAgICAgcm9sZT1cImdyb3VwXCJcbiAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJmaWVsZHNldERhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImZpZWxkc2V0RGF0YS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImZpZWxkc2V0RGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJmaWVsZHNldERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJmaWVsZHNldERhdGEuYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImZpZWxkc2V0RGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJmaWVsZHNldERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImZpZWxkc2V0RGF0YS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImZpZWxkc2V0RGF0YS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiZmllbGRzZXREYXRhLnRhYmluZGV4XCI+PC9kZXN5LWZpZWxkc2V0PlxuICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cIiFmaWVsZHNldERhdGEgJiYgaGFzTGVnZW5kQ29tcG9uZW50KClcIlxuICAgICAgICAgICAgICAgICBbbGVnZW5kUmVmXT1cImxlZ2VuZFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiWyBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCI+XG4gICAgPG5nLXRlbXBsYXRlICNsZWdlbmRUZW1wbGF0ZT5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktbGVnZW5kXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGVzeS1maWVsZHNldD5cbiAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCIhZmllbGRzZXREYXRhICYmICFoYXNMZWdlbmRDb21wb25lbnQoKSAmJiBsZWdlbmRSZWZcIlxuICAgICAgICAgICAgICAgICBbbGVnZW5kUmVmXT1cImxlZ2VuZFJlZlwiXG4gICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIlsgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiXG4gICAgICAgICAgICAgICAgIHJvbGU9XCJncm91cFwiPjwvZGVzeS1maWVsZHNldD5cbiAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCIhZmllbGRzZXREYXRhICYmICFoYXNMZWdlbmRDb21wb25lbnQoKSAmJiAhbGVnZW5kUmVmICYmIGxlZ2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICBbbGVnZW5kRGF0YV09XCJ7dGV4dDogbGVnZW5kRGF0YS50ZXh0LCBodG1sOiBsZWdlbmREYXRhLmh0bWwsICBjbGFzc2VzOiBsZWdlbmREYXRhLmNsYXNzZXMsIGlzUGFnZUhlYWRpbmc6IGxlZ2VuZERhdGEuaXNQYWdlSGVhZGluZ31cIlxuICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIlxuICAgICAgICAgICAgICAgICByb2xlPVwiZ3JvdXBcIj48L2Rlc3ktZmllbGRzZXQ+XG4gIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiIWZpZWxkc2V0RGF0YSAmJiAhaGFzTGVnZW5kQ29tcG9uZW50KCkgJiYgIWxlZ2VuZFJlZiAmJiAhbGVnZW5kRGF0YSAmJiBsZWdlbmRUZXh0XCJcbiAgICAgICAgICAgICAgICAgW2xlZ2VuZFRleHRdPVwibGVnZW5kVGV4dFwiXG4gICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIlsgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiXG4gICAgICAgICAgICAgICAgIHJvbGU9XCJncm91cFwiPjwvZGVzeS1maWVsZHNldD5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0ZpZWxkc2V0KClcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJIdG1sXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+Il19
|