@sbb-esta/lyne-elements 4.0.0-next.3 → 4.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/accordion/accordion.component.d.ts.map +1 -1
- package/accordion/accordion.component.js +29 -27
- package/action-group/action-group.component.js +1 -1
- package/alert/alert/alert.component.js +7 -7
- package/alert/alert-group/alert-group.component.d.ts +1 -1
- package/alert/alert-group/alert-group.component.d.ts.map +1 -1
- package/alert/alert-group/alert-group.component.js +23 -23
- package/autocomplete/autocomplete-base-element.d.ts +1 -0
- package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/autocomplete/autocomplete-base-element.js +58 -56
- package/autocomplete/autocomplete.component.d.ts.map +1 -1
- package/autocomplete/autocomplete.component.js +12 -12
- package/breadcrumb/breadcrumb/breadcrumb.component.js +5 -5
- package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts +2 -3
- package/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
- package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +53 -47
- package/button/common/button-common.d.ts.map +1 -1
- package/button/common/button-common.js +40 -42
- package/button/common.js +1 -1
- package/button.js +1 -1
- package/calendar/calendar.component.d.ts +4 -4
- package/calendar/calendar.component.d.ts.map +1 -1
- package/calendar/calendar.component.js +183 -183
- package/card/card/card.component.d.ts +3 -6
- package/card/card/card.component.d.ts.map +1 -1
- package/card/card/card.component.js +32 -47
- package/card/card-badge/card-badge.component.d.ts +0 -2
- package/card/card-badge/card-badge.component.d.ts.map +1 -1
- package/card/card-badge/card-badge.component.js +29 -36
- package/card/common/card-action-common.d.ts.map +1 -1
- package/card/common/card-action-common.js +36 -24
- package/checkbox/checkbox/checkbox.component.d.ts +1 -1
- package/checkbox/checkbox/checkbox.component.js +1 -1
- package/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -2
- package/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
- package/checkbox/checkbox-group/checkbox-group.component.js +39 -38
- package/checkbox/checkbox-panel/checkbox-panel.component.d.ts +1 -14
- package/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
- package/checkbox/checkbox-panel/checkbox-panel.component.js +35 -55
- package/checkbox/common.js +1 -1
- package/checkbox-common-t04WeA36.js +5 -0
- package/checkbox.js +1 -1
- package/chip/chip-group/chip-group.component.d.ts +1 -0
- package/chip/chip-group/chip-group.component.d.ts.map +1 -1
- package/chip/chip-group/chip-group.component.js +23 -23
- package/clock/clock.component.d.ts +3 -1
- package/clock/clock.component.d.ts.map +1 -1
- package/clock/clock.component.js +40 -39
- package/container/container/container.component.d.ts.map +1 -1
- package/container/container/container.component.js +27 -24
- package/container/sticky-bar/sticky-bar.component.d.ts +3 -1
- package/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
- package/container/sticky-bar/sticky-bar.component.js +41 -41
- package/core/a11y/focus-visible-within-controller.d.ts +2 -1
- package/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
- package/core/a11y/focus-visible-within-controller.js +8 -7
- package/core/base-elements/action-base-element.d.ts +1 -0
- package/core/base-elements/action-base-element.d.ts.map +1 -1
- package/core/base-elements/action-base-element.js +37 -45
- package/core/base-elements/button-base-element.d.ts +1 -1
- package/core/base-elements/button-base-element.d.ts.map +1 -1
- package/core/base-elements/button-base-element.js +55 -56
- package/core/base-elements/link-base-element.d.ts.map +1 -1
- package/core/base-elements/link-base-element.js +62 -64
- package/core/base-elements/open-close-base-element.d.ts +2 -1
- package/core/base-elements/open-close-base-element.d.ts.map +1 -1
- package/core/base-elements/open-close-base-element.js +8 -8
- package/core/controllers/media-matchers-controller.d.ts +4 -1
- package/core/controllers/media-matchers-controller.d.ts.map +1 -1
- package/core/controllers/media-matchers-controller.js +30 -26
- package/core/controllers/overlay-position-controller.d.ts +3 -2
- package/core/controllers/overlay-position-controller.d.ts.map +1 -1
- package/core/controllers/overlay-position-controller.js +35 -35
- package/core/controllers/property-watcher-controller.d.ts +16 -0
- package/core/controllers/property-watcher-controller.d.ts.map +1 -0
- package/core/controllers/property-watcher-controller.js +58 -0
- package/core/controllers.d.ts +1 -1
- package/core/controllers.js +21 -18
- package/core/datetime/date-adapter.d.ts +1 -3
- package/core/datetime/date-adapter.d.ts.map +1 -1
- package/core/dom/animation.d.ts.map +1 -1
- package/core/dom/animation.js +2 -2
- package/core/dom/set-or-remove-attribute.d.ts +0 -14
- package/core/dom/set-or-remove-attribute.d.ts.map +1 -1
- package/core/dom/set-or-remove-attribute.js +3 -11
- package/core/dom.d.ts +0 -2
- package/core/dom.d.ts.map +1 -1
- package/core/dom.js +25 -33
- package/core/i18n/i18n.d.ts +0 -2
- package/core/i18n/i18n.d.ts.map +1 -1
- package/core/i18n/i18n.js +60 -66
- package/core/i18n.js +53 -54
- package/core/interfaces/types.d.ts +0 -14
- package/core/interfaces/types.d.ts.map +1 -1
- package/core/mixins/element-internals-mixin.d.ts +14 -1
- package/core/mixins/element-internals-mixin.d.ts.map +1 -1
- package/core/mixins/element-internals-mixin.js +102 -75
- package/core/mixins/form-associated-mixin.js +1 -1
- package/core/mixins/form-associated-radio-button-mixin.js +16 -16
- package/core/mixins/panel-mixin.d.ts +10 -2
- package/core/mixins/panel-mixin.d.ts.map +1 -1
- package/core/mixins/panel-mixin.js +51 -37
- package/core/mixins/selection-panel-mixin.d.ts +5 -11
- package/core/mixins/selection-panel-mixin.d.ts.map +1 -1
- package/core/mixins/selection-panel-mixin.js +35 -83
- package/core/mixins.js +28 -27
- package/core/overlay/overlay-option-panel.d.ts +2 -1
- package/core/overlay/overlay-option-panel.d.ts.map +1 -1
- package/core/overlay/overlay-option-panel.js +9 -6
- package/core/styles/core.scss +32 -11
- package/core/styles/mixins/card.scss +71 -55
- package/core/testing/wait-for-render.d.ts +1 -1
- package/core.css +151 -26
- package/custom-elements.json +12300 -12051
- package/date-input/date-input.component.d.ts +0 -5
- package/date-input/date-input.component.d.ts.map +1 -1
- package/date-input/date-input.component.js +0 -7
- package/development/accordion/accordion.component.d.ts.map +1 -1
- package/development/accordion/accordion.component.js +5 -4
- package/development/action-group/action-group.component.js +2 -2
- package/development/alert/alert/alert.component.js +5 -5
- package/development/alert/alert-group/alert-group.component.d.ts +1 -1
- package/development/alert/alert-group/alert-group.component.d.ts.map +1 -1
- package/development/alert/alert-group/alert-group.component.js +5 -5
- package/development/autocomplete/autocomplete-base-element.d.ts +1 -0
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete/autocomplete-base-element.js +28 -32
- package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
- package/development/autocomplete/autocomplete.component.js +2 -3
- package/development/breadcrumb/breadcrumb/breadcrumb.component.js +1 -1
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts +2 -3
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +33 -24
- package/development/button/common/button-common.d.ts.map +1 -1
- package/development/button/common/button-common.js +8 -17
- package/development/button/common.js +1 -1
- package/development/button.js +1 -1
- package/development/calendar/calendar.component.d.ts +4 -4
- package/development/calendar/calendar.component.d.ts.map +1 -1
- package/development/calendar/calendar.component.js +11 -11
- package/development/card/card/card.component.d.ts +3 -6
- package/development/card/card/card.component.d.ts.map +1 -1
- package/development/card/card/card.component.js +91 -146
- package/development/card/card-badge/card-badge.component.d.ts +0 -2
- package/development/card/card-badge/card-badge.component.d.ts.map +1 -1
- package/development/card/card-badge/card-badge.component.js +34 -71
- package/development/card/common/card-action-common.d.ts.map +1 -1
- package/development/card/common/card-action-common.js +21 -10
- package/development/checkbox/checkbox/checkbox.component.d.ts +1 -1
- package/development/checkbox/checkbox/checkbox.component.js +2 -2
- package/development/checkbox/checkbox-group/checkbox-group.component.d.ts +1 -2
- package/development/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
- package/development/checkbox/checkbox-group/checkbox-group.component.js +13 -15
- package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts +1 -14
- package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
- package/development/checkbox/checkbox-panel/checkbox-panel.component.js +6 -41
- package/development/checkbox/common.js +1 -1
- package/development/{checkbox-common-CX17vF7q.js → checkbox-common-D2-QcV8n.js} +4 -1
- package/development/checkbox.js +1 -1
- package/development/chip/chip-group/chip-group.component.d.ts +1 -0
- package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
- package/development/chip/chip-group/chip-group.component.js +11 -5
- package/development/clock/clock.component.d.ts +3 -1
- package/development/clock/clock.component.d.ts.map +1 -1
- package/development/clock/clock.component.js +5 -4
- package/development/container/container/container.component.d.ts.map +1 -1
- package/development/container/container/container.component.js +4 -3
- package/development/container/sticky-bar/sticky-bar.component.d.ts +3 -1
- package/development/container/sticky-bar/sticky-bar.component.d.ts.map +1 -1
- package/development/container/sticky-bar/sticky-bar.component.js +40 -34
- package/development/core/a11y/focus-visible-within-controller.d.ts +2 -1
- package/development/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
- package/development/core/a11y/focus-visible-within-controller.js +4 -3
- package/development/core/a11y/interactivity-checker.js +1 -1
- package/development/core/base-elements/action-base-element.d.ts +1 -0
- package/development/core/base-elements/action-base-element.d.ts.map +1 -1
- package/development/core/base-elements/action-base-element.js +41 -56
- package/development/core/base-elements/button-base-element.d.ts +1 -1
- package/development/core/base-elements/button-base-element.d.ts.map +1 -1
- package/development/core/base-elements/button-base-element.js +7 -7
- package/development/core/base-elements/link-base-element.d.ts.map +1 -1
- package/development/core/base-elements/link-base-element.js +6 -15
- package/development/core/base-elements/open-close-base-element.d.ts +2 -1
- package/development/core/base-elements/open-close-base-element.d.ts.map +1 -1
- package/development/core/base-elements/open-close-base-element.js +12 -6
- package/development/core/controllers/media-matchers-controller.d.ts +4 -1
- package/development/core/controllers/media-matchers-controller.d.ts.map +1 -1
- package/development/core/controllers/media-matchers-controller.js +12 -5
- package/development/core/controllers/overlay-position-controller.d.ts +3 -2
- package/development/core/controllers/overlay-position-controller.d.ts.map +1 -1
- package/development/core/controllers/overlay-position-controller.js +3 -3
- package/development/core/controllers/property-watcher-controller.d.ts +16 -0
- package/development/core/controllers/property-watcher-controller.d.ts.map +1 -0
- package/development/core/controllers/property-watcher-controller.js +101 -0
- package/development/core/controllers.d.ts +1 -1
- package/development/core/controllers.js +6 -3
- package/development/core/datetime/date-adapter.d.ts +1 -3
- package/development/core/datetime/date-adapter.d.ts.map +1 -1
- package/development/core/datetime/date-adapter.js +1 -1
- package/development/core/dom/animation.d.ts.map +1 -1
- package/development/core/dom/animation.js +2 -2
- package/development/core/dom/set-or-remove-attribute.d.ts +0 -14
- package/development/core/dom/set-or-remove-attribute.d.ts.map +1 -1
- package/development/core/dom/set-or-remove-attribute.js +1 -9
- package/development/core/dom.d.ts +0 -2
- package/development/core/dom.d.ts.map +1 -1
- package/development/core/dom.js +2 -10
- package/development/core/i18n/i18n.d.ts +0 -2
- package/development/core/i18n/i18n.d.ts.map +1 -1
- package/development/core/i18n/i18n.js +1 -8
- package/development/core/i18n.js +1 -2
- package/development/core/interfaces/types.d.ts +0 -14
- package/development/core/interfaces/types.d.ts.map +1 -1
- package/development/core/mixins/element-internals-mixin.d.ts +14 -1
- package/development/core/mixins/element-internals-mixin.d.ts.map +1 -1
- package/development/core/mixins/element-internals-mixin.js +58 -10
- package/development/core/mixins/form-associated-input-mixin.js +1 -1
- package/development/core/mixins/form-associated-mixin.js +2 -2
- package/development/core/mixins/form-associated-radio-button-mixin.js +2 -2
- package/development/core/mixins/panel-mixin.d.ts +10 -2
- package/development/core/mixins/panel-mixin.d.ts.map +1 -1
- package/development/core/mixins/panel-mixin.js +24 -6
- package/development/core/mixins/selection-panel-mixin.d.ts +5 -11
- package/development/core/mixins/selection-panel-mixin.d.ts.map +1 -1
- package/development/core/mixins/selection-panel-mixin.js +47 -111
- package/development/core/mixins.js +18 -9
- package/development/core/overlay/overlay-option-panel.d.ts +2 -1
- package/development/core/overlay/overlay-option-panel.d.ts.map +1 -1
- package/development/core/overlay/overlay-option-panel.js +10 -2
- package/development/core/overlay/position.js +1 -1
- package/development/core/testing/wait-for-render.d.ts +1 -1
- package/development/core/testing/wait-for-render.js +1 -1
- package/development/date-input/date-input.component.d.ts +0 -5
- package/development/date-input/date-input.component.d.ts.map +1 -1
- package/development/date-input/date-input.component.js +1 -8
- package/development/dialog/dialog/dialog.component.js +7 -7
- package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts +4 -6
- package/development/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel/expansion-panel.component.js +30 -33
- package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +2 -0
- package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +17 -2
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +1 -0
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +17 -6
- package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
- package/development/file-selector/common/file-selector-common.js +5 -5
- package/development/flip-card/flip-card/flip-card.component.d.ts +2 -1
- package/development/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
- package/development/flip-card/flip-card/flip-card.component.js +25 -14
- package/development/flip-card/flip-card-details/flip-card-details.component.d.ts +3 -1
- package/development/flip-card/flip-card-details/flip-card-details.component.d.ts.map +1 -1
- package/development/flip-card/flip-card-details/flip-card-details.component.js +7 -6
- package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts +1 -2
- package/development/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
- package/development/flip-card/flip-card-summary/flip-card-summary.component.js +1 -7
- package/development/form-field/error/error.component.js +2 -2
- package/development/form-field/form-field/form-field.component.d.ts +1 -1
- package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
- package/development/form-field/form-field/form-field.component.js +2 -2
- package/development/form-field/form-field-clear/form-field-clear.component.js +2 -2
- package/development/header/common/header-action-common.js +5 -5
- package/development/header/header/header.component.d.ts +1 -1
- package/development/header/header/header.component.d.ts.map +1 -1
- package/development/header/header/header.component.js +14 -14
- package/development/header/header-environment/header-environment.component.d.ts +1 -0
- package/development/header/header-environment/header-environment.component.d.ts.map +1 -1
- package/development/header/header-environment/header-environment.component.js +8 -5
- package/development/icon/icon-base.d.ts +1 -0
- package/development/icon/icon-base.d.ts.map +1 -1
- package/development/icon/icon-base.js +21 -25
- package/development/icon/icon-validate.js +2 -2
- package/development/{icon-sidebar-button-common-C6QChtaa.js → icon-sidebar-button-common-DR6eQvkq.js} +4 -4
- package/development/image/image.component.d.ts +5 -3
- package/development/image/image.component.d.ts.map +1 -1
- package/development/image/image.component.js +10 -9
- package/development/link/common/block-link-common.js +1 -1
- package/development/link/common/inline-link-common.js +1 -1
- package/development/link/common/link-common.d.ts.map +1 -1
- package/development/link/common/link-common.js +2 -3
- package/development/link/common.js +1 -1
- package/development/{link-common-DYZHRSSJ.js → link-common-CYr3PeRf.js} +9 -16
- package/development/link-list/link-list-anchor/link-list-anchor.component.js +6 -6
- package/development/link.js +1 -1
- package/development/map-container/map-container.component.d.ts +3 -1
- package/development/map-container/map-container.component.d.ts.map +1 -1
- package/development/map-container/map-container.component.js +5 -4
- package/development/menu/common/menu-action-common.js +2 -2
- package/development/menu/menu/menu.component.d.ts +1 -1
- package/development/menu/menu/menu.component.d.ts.map +1 -1
- package/development/menu/menu/menu.component.js +29 -23
- package/development/{mini-button-common-TSDaMUCP.js → mini-button-common-CWTMR_Lu.js} +15 -15
- package/development/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +1 -1
- package/development/mini-calendar/mini-calendar/mini-calendar.component.js +7 -6
- package/development/mini-calendar/mini-calendar-month/mini-calendar-month.component.js +4 -4
- package/development/navigation/common/navigation-action-common.js +7 -7
- package/development/navigation/navigation/navigation.component.d.ts +0 -1
- package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
- package/development/navigation/navigation/navigation.component.js +26 -38
- package/development/navigation/navigation-marker/navigation-marker.component.d.ts +1 -1
- package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
- package/development/navigation/navigation-marker/navigation-marker.component.js +8 -8
- package/development/navigation/navigation-section/navigation-section.component.d.ts +8 -7
- package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
- package/development/navigation/navigation-section/navigation-section.component.js +48 -45
- package/development/notification/notification.component.d.ts +3 -2
- package/development/notification/notification.component.d.ts.map +1 -1
- package/development/notification/notification.component.js +22 -19
- package/development/option/optgroup/optgroup-base-element.d.ts +0 -3
- package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/development/option/optgroup/optgroup-base-element.js +6 -32
- package/development/option/optgroup/optgroup.component.d.ts +2 -2
- package/development/option/optgroup/optgroup.component.d.ts.map +1 -1
- package/development/option/optgroup/optgroup.component.js +21 -13
- package/development/option/option/option-base-element.d.ts +0 -5
- package/development/option/option/option-base-element.d.ts.map +1 -1
- package/development/option/option/option-base-element.js +8 -41
- package/development/option/option/option.component.d.ts +5 -4
- package/development/option/option/option.component.d.ts.map +1 -1
- package/development/option/option/option.component.js +52 -39
- package/development/overlay/overlay-base-element.d.ts +1 -1
- package/development/overlay/overlay-base-element.js +2 -2
- package/development/overlay/overlay.component.js +7 -7
- package/development/paginator/common/paginator-common.d.ts +0 -1
- package/development/paginator/common/paginator-common.d.ts.map +1 -1
- package/development/paginator/common/paginator-common.js +1 -1
- package/development/paginator/paginator/paginator.component.d.ts +1 -1
- package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
- package/development/paginator/paginator/paginator.component.js +8 -14
- package/development/popover/{popover/popover.component.d.ts → popover.component.d.ts} +2 -2
- package/development/popover/popover.component.d.ts.map +1 -0
- package/development/popover/popover.component.js +720 -0
- package/development/popover.d.ts +1 -1
- package/development/popover.d.ts.map +1 -1
- package/development/popover.js +1 -1
- package/development/radio-button/common.js +1 -1
- package/development/radio-button/radio-button/radio-button.component.d.ts +0 -1
- package/development/radio-button/radio-button/radio-button.component.d.ts.map +1 -1
- package/development/radio-button/radio-button/radio-button.component.js +1 -2
- package/development/radio-button/radio-button-group/radio-button-group.component.d.ts +0 -1
- package/development/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.component.js +28 -43
- package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts +0 -12
- package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
- package/development/radio-button/radio-button-panel/radio-button-panel.component.js +5 -37
- package/development/{radio-button-common-BPrInmpg.js → radio-button-common-B3kVD7QV.js} +19 -42
- package/development/radio-button.js +1 -1
- package/development/{sbb-tokens-DZrHvErO.js → sbb-tokens-CZCt5L4q.js} +9 -9
- package/development/select/select.component.d.ts +1 -1
- package/development/select/select.component.d.ts.map +1 -1
- package/development/select/select.component.js +31 -36
- package/development/selection-action-panel/selection-action-panel.component.d.ts +0 -1
- package/development/selection-action-panel/selection-action-panel.component.d.ts.map +1 -1
- package/development/selection-action-panel/selection-action-panel.component.js +22 -9
- package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts +5 -6
- package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
- package/development/selection-expansion-panel/selection-expansion-panel.component.js +35 -30
- package/development/sidebar/common.js +1 -1
- package/development/sidebar/sidebar/sidebar.component.d.ts.map +1 -1
- package/development/sidebar/sidebar/sidebar.component.js +13 -14
- package/development/sidebar/sidebar-container/sidebar-container.component.d.ts.map +1 -1
- package/development/sidebar/sidebar-container/sidebar-container.component.js +10 -8
- package/development/sidebar.js +1 -1
- package/development/skiplink-list/skiplink-list.component.js +1 -1
- package/development/stepper/step/step.component.d.ts +3 -1
- package/development/stepper/step/step.component.d.ts.map +1 -1
- package/development/stepper/step/step.component.js +25 -12
- package/development/stepper/step-label/step-label.component.d.ts +4 -1
- package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
- package/development/stepper/step-label/step-label.component.js +40 -17
- package/development/stepper/stepper/stepper.component.d.ts +2 -2
- package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
- package/development/stepper/stepper/stepper.component.js +21 -22
- package/development/tabs/tab/tab.component.d.ts +0 -5
- package/development/tabs/tab/tab.component.d.ts.map +1 -1
- package/development/tabs/tab/tab.component.js +3 -9
- package/development/tabs/tab-group/tab-group.component.d.ts +1 -25
- package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
- package/development/tabs/tab-group/tab-group.component.js +19 -23
- package/development/tabs/tab-label/tab-label.component.d.ts +1 -0
- package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
- package/development/tabs/tab-label/tab-label.component.js +20 -7
- package/development/tag/tag/tag.component.js +9 -9
- package/development/teaser/teaser.component.js +2 -2
- package/development/teaser-product/common.js +1 -1
- package/development/teaser-product/teaser-product/teaser-product.component.js +2 -2
- package/development/{teaser-product-common-v3BvyFdH.js → teaser-product-common-CJfmvweQ.js} +2 -2
- package/development/teaser-product.js +1 -1
- package/development/time-input/time-input.component.d.ts +0 -5
- package/development/time-input/time-input.component.d.ts.map +1 -1
- package/development/time-input/time-input.component.js +1 -8
- package/development/toast/toast.component.js +5 -5
- package/development/toggle/toggle/toggle.component.js +4 -4
- package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.component.js +2 -3
- package/development/toggle-check/toggle-check.component.js +4 -4
- package/development/tooltip/tooltip.component.d.ts.map +1 -1
- package/development/tooltip/tooltip.component.js +7 -7
- package/development/visual-checkbox/visual-checkbox.component.js +8 -4
- package/dialog/dialog/dialog.component.js +20 -20
- package/expansion-panel/expansion-panel/expansion-panel.component.d.ts +4 -6
- package/expansion-panel/expansion-panel/expansion-panel.component.d.ts.map +1 -1
- package/expansion-panel/expansion-panel/expansion-panel.component.js +51 -56
- package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts +2 -0
- package/expansion-panel/expansion-panel-content/expansion-panel-content.component.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-content/expansion-panel-content.component.js +21 -13
- package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts +1 -0
- package/expansion-panel/expansion-panel-header/expansion-panel-header.component.d.ts.map +1 -1
- package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +24 -20
- package/file-selector/common/file-selector-common.d.ts.map +1 -1
- package/file-selector/common/file-selector-common.js +28 -28
- package/flip-card/flip-card/flip-card.component.d.ts +2 -1
- package/flip-card/flip-card/flip-card.component.d.ts.map +1 -1
- package/flip-card/flip-card/flip-card.component.js +44 -40
- package/flip-card/flip-card-details/flip-card-details.component.d.ts +3 -1
- package/flip-card/flip-card-details/flip-card-details.component.d.ts.map +1 -1
- package/flip-card/flip-card-details/flip-card-details.component.js +15 -14
- package/flip-card/flip-card-summary/flip-card-summary.component.d.ts +1 -2
- package/flip-card/flip-card-summary/flip-card-summary.component.d.ts.map +1 -1
- package/flip-card/flip-card-summary/flip-card-summary.component.js +23 -26
- package/form-field/error/error.component.js +3 -3
- package/form-field/form-field/form-field.component.d.ts +1 -1
- package/form-field/form-field/form-field.component.d.ts.map +1 -1
- package/form-field/form-field/form-field.component.js +1 -1
- package/form-field/form-field-clear/form-field-clear.component.js +7 -7
- package/header/common/header-action-common.js +14 -14
- package/header/header/header.component.d.ts +1 -1
- package/header/header/header.component.d.ts.map +1 -1
- package/header/header/header.component.js +40 -40
- package/header/header-environment/header-environment.component.d.ts +1 -0
- package/header/header-environment/header-environment.component.d.ts.map +1 -1
- package/header/header-environment/header-environment.component.js +8 -9
- package/icon/icon-base.d.ts +1 -0
- package/icon/icon-base.d.ts.map +1 -1
- package/icon/icon-base.js +45 -48
- package/icon/icon-validate.js +3 -3
- package/{icon-sidebar-button-common-W6GYJbVt.js → icon-sidebar-button-common-ffAscVDk.js} +1 -1
- package/image/image.component.d.ts +5 -3
- package/image/image.component.d.ts.map +1 -1
- package/image/image.component.js +31 -30
- package/index.d.ts +1 -1
- package/index.js +1 -1
- package/link/common/block-link-common.js +1 -1
- package/link/common/inline-link-common.js +1 -1
- package/link/common/link-common.d.ts.map +1 -1
- package/link/common/link-common.js +2 -3
- package/link/common.js +1 -1
- package/link-common-D9TmX32v.js +45 -0
- package/link-list/link-list-anchor/link-list-anchor.component.js +9 -9
- package/link.js +1 -1
- package/map-container/map-container.component.d.ts +3 -1
- package/map-container/map-container.component.d.ts.map +1 -1
- package/map-container/map-container.component.js +18 -17
- package/menu/common/menu-action-common.js +5 -5
- package/menu/menu/menu.component.d.ts +1 -1
- package/menu/menu/menu.component.d.ts.map +1 -1
- package/menu/menu/menu.component.js +29 -28
- package/mini-button-common-Bb4ri3Rn.js +10 -0
- package/mini-calendar/mini-calendar/mini-calendar.component.d.ts.map +1 -1
- package/mini-calendar/mini-calendar/mini-calendar.component.js +22 -21
- package/navigation/common/navigation-action-common.js +10 -10
- package/navigation/navigation/navigation.component.d.ts +0 -1
- package/navigation/navigation/navigation.component.d.ts.map +1 -1
- package/navigation/navigation/navigation.component.js +46 -55
- package/navigation/navigation-marker/navigation-marker.component.d.ts +1 -1
- package/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
- package/navigation/navigation-marker/navigation-marker.component.js +20 -20
- package/navigation/navigation-section/navigation-section.component.d.ts +8 -7
- package/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
- package/navigation/navigation-section/navigation-section.component.js +65 -65
- package/notification/notification.component.d.ts +3 -2
- package/notification/notification.component.d.ts.map +1 -1
- package/notification/notification.component.js +22 -25
- package/off-brand-theme.css +151 -26
- package/option/optgroup/optgroup-base-element.d.ts +0 -3
- package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/option/optgroup/optgroup-base-element.js +45 -64
- package/option/optgroup/optgroup.component.d.ts +2 -2
- package/option/optgroup/optgroup.component.d.ts.map +1 -1
- package/option/optgroup/optgroup.component.js +27 -19
- package/option/option/option-base-element.d.ts +0 -5
- package/option/option/option-base-element.d.ts.map +1 -1
- package/option/option/option-base-element.js +58 -74
- package/option/option/option.component.d.ts +5 -4
- package/option/option/option.component.d.ts.map +1 -1
- package/option/option/option.component.js +40 -36
- package/overlay/overlay-base-element.d.ts +1 -1
- package/overlay/overlay-base-element.js +1 -1
- package/overlay/overlay.component.js +28 -28
- package/package.json +1 -6
- package/paginator/common/paginator-common.d.ts +0 -1
- package/paginator/common/paginator-common.d.ts.map +1 -1
- package/paginator/paginator/paginator.component.d.ts +1 -1
- package/paginator/paginator/paginator.component.d.ts.map +1 -1
- package/paginator/paginator/paginator.component.js +17 -20
- package/popover/{popover/popover.component.d.ts → popover.component.d.ts} +2 -2
- package/popover/popover.component.d.ts.map +1 -0
- package/popover/popover.component.js +316 -0
- package/popover.d.ts +1 -1
- package/popover.d.ts.map +1 -1
- package/popover.js +1 -1
- package/radio-button/common.js +1 -1
- package/radio-button/radio-button/radio-button.component.d.ts +0 -1
- package/radio-button/radio-button/radio-button.component.d.ts.map +1 -1
- package/radio-button/radio-button/radio-button.component.js +4 -5
- package/radio-button/radio-button-group/radio-button-group.component.d.ts +0 -1
- package/radio-button/radio-button-group/radio-button-group.component.d.ts.map +1 -1
- package/radio-button/radio-button-group/radio-button-group.component.js +45 -46
- package/radio-button/radio-button-panel/radio-button-panel.component.d.ts +0 -12
- package/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
- package/radio-button/radio-button-panel/radio-button-panel.component.js +36 -54
- package/radio-button-common-1Yg7p8dc.js +5 -0
- package/radio-button.js +1 -1
- package/safety-theme.css +151 -26
- package/{sbb-tokens-BNWpZrLn.js → sbb-tokens-DruExozg.js} +8 -8
- package/select/select.component.d.ts +1 -1
- package/select/select.component.d.ts.map +1 -1
- package/select/select.component.js +52 -52
- package/selection-action-panel/selection-action-panel.component.d.ts +0 -1
- package/selection-action-panel/selection-action-panel.component.d.ts.map +1 -1
- package/selection-action-panel/selection-action-panel.component.js +9 -13
- package/selection-expansion-panel/selection-expansion-panel.component.d.ts +5 -6
- package/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
- package/selection-expansion-panel/selection-expansion-panel.component.js +49 -55
- package/sidebar/common.js +1 -1
- package/sidebar/sidebar/sidebar.component.d.ts.map +1 -1
- package/sidebar/sidebar/sidebar.component.js +26 -32
- package/sidebar/sidebar-container/sidebar-container.component.d.ts.map +1 -1
- package/sidebar/sidebar-container/sidebar-container.component.js +33 -32
- package/sidebar.js +1 -1
- package/skiplink-list/skiplink-list.component.js +1 -1
- package/standard-theme.css +151 -26
- package/stepper/step/step.component.d.ts +3 -1
- package/stepper/step/step.component.d.ts.map +1 -1
- package/stepper/step/step.component.js +28 -20
- package/stepper/step-label/step-label.component.d.ts +4 -1
- package/stepper/step-label/step-label.component.d.ts.map +1 -1
- package/stepper/step-label/step-label.component.js +35 -23
- package/stepper/stepper/stepper.component.d.ts +2 -2
- package/stepper/stepper/stepper.component.d.ts.map +1 -1
- package/stepper/stepper/stepper.component.js +49 -48
- package/tabs/tab/tab.component.d.ts +0 -5
- package/tabs/tab/tab.component.d.ts.map +1 -1
- package/tabs/tab/tab.component.js +12 -18
- package/tabs/tab-group/tab-group.component.d.ts +1 -25
- package/tabs/tab-group/tab-group.component.d.ts.map +1 -1
- package/tabs/tab-group/tab-group.component.js +48 -50
- package/tabs/tab-label/tab-label.component.d.ts +1 -0
- package/tabs/tab-label/tab-label.component.d.ts.map +1 -1
- package/tabs/tab-label/tab-label.component.js +34 -29
- package/tag/tag/tag.component.js +12 -12
- package/teaser/teaser.component.js +1 -1
- package/teaser-product/common.js +1 -1
- package/teaser-product/teaser-product/teaser-product.component.js +1 -1
- package/teaser-product-common-DwaWdQEh.js +5 -0
- package/teaser-product.js +1 -1
- package/time-input/time-input.component.d.ts +0 -5
- package/time-input/time-input.component.d.ts.map +1 -1
- package/time-input/time-input.component.js +3 -10
- package/toast/toast.component.js +23 -23
- package/toggle/toggle/toggle.component.js +13 -13
- package/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
- package/toggle/toggle-option/toggle-option.component.js +20 -21
- package/toggle-check/toggle-check.component.js +8 -8
- package/tooltip/tooltip.component.d.ts.map +1 -1
- package/tooltip/tooltip.component.js +39 -39
- package/visual-checkbox/visual-checkbox.component.js +15 -15
- package/checkbox-common-DK5WsQPi.js +0 -5
- package/core/controllers/ancestor-watcher-controller.d.ts +0 -14
- package/core/controllers/ancestor-watcher-controller.d.ts.map +0 -1
- package/core/controllers/ancestor-watcher-controller.js +0 -51
- package/core/dom/breakpoint.d.ts +0 -16
- package/core/dom/breakpoint.d.ts.map +0 -1
- package/core/dom/breakpoint.js +0 -12
- package/core/dom/host-context.d.ts +0 -11
- package/core/dom/host-context.d.ts.map +0 -1
- package/core/dom/host-context.js +0 -17
- package/development/core/controllers/ancestor-watcher-controller.d.ts +0 -14
- package/development/core/controllers/ancestor-watcher-controller.d.ts.map +0 -1
- package/development/core/controllers/ancestor-watcher-controller.js +0 -87
- package/development/core/dom/breakpoint.d.ts +0 -16
- package/development/core/dom/breakpoint.d.ts.map +0 -1
- package/development/core/dom/breakpoint.js +0 -19
- package/development/core/dom/host-context.d.ts +0 -11
- package/development/core/dom/host-context.d.ts.map +0 -1
- package/development/core/dom/host-context.js +0 -21
- package/development/popover/popover/popover.component.d.ts.map +0 -1
- package/development/popover/popover/popover.component.js +0 -722
- package/development/popover/popover.d.ts +0 -5
- package/development/popover/popover.d.ts.map +0 -1
- package/development/popover/popover.js +0 -6
- package/link-common-CdQBSga7.js +0 -46
- package/mini-button-common-C3-aFB4L.js +0 -10
- package/popover/popover/popover.component.d.ts.map +0 -1
- package/popover/popover/popover.component.js +0 -321
- package/popover/popover.d.ts +0 -5
- package/popover/popover.d.ts.map +0 -1
- package/popover/popover.js +0 -5
- package/radio-button-common-chJrmIBn.js +0 -5
- package/teaser-product-common-a4NenpSA.js +0 -5
|
@@ -652,12 +652,6 @@ const i18nItemsPerPage = {
|
|
|
652
652
|
fr: "Entrées par page",
|
|
653
653
|
it: "Elementi per pagina"
|
|
654
654
|
};
|
|
655
|
-
const i18nSelectedPage = (pageNumber) => ({
|
|
656
|
-
de: `Seite ${pageNumber} ausgewählt.`,
|
|
657
|
-
en: `Page ${pageNumber} selected.`,
|
|
658
|
-
fr: `Page ${pageNumber} sélectionnée.`,
|
|
659
|
-
it: `Pagina ${pageNumber} selezionata.`
|
|
660
|
-
});
|
|
661
655
|
const i18nPaginatorSelected = {
|
|
662
656
|
de: `ausgewählt`,
|
|
663
657
|
en: `selected`,
|
|
@@ -861,7 +855,6 @@ export {
|
|
|
861
855
|
i18nSectorShort,
|
|
862
856
|
i18nSelectNextDay,
|
|
863
857
|
i18nSelectPreviousDay,
|
|
864
|
-
i18nSelectedPage,
|
|
865
858
|
i18nSelectionRequired,
|
|
866
859
|
i18nShowCalendar,
|
|
867
860
|
i18nSleepingWagonLabel,
|
|
@@ -888,4 +881,4 @@ export {
|
|
|
888
881
|
i18nWalkingDistanceDeparture,
|
|
889
882
|
i18nYearMonthSelection
|
|
890
883
|
};
|
|
891
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvaTE4bi9pMThuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2JiTGFuZ3VhZ2UsIFNiYk9jY3VwYW5jeSB9IGZyb20gJy4uL2ludGVyZmFjZXMudHMnO1xuXG5leHBvcnQgY29uc3QgaTE4bkRpcmVjdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSaWNodHVuZycsXG4gIGVuOiAnRGlyZWN0aW9uJyxcbiAgZnI6ICdEaXJlY3Rpb24nLFxuICBpdDogJ0RpcmV6aW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkFycml2YWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQW5rdW5mdCcsXG4gIGVuOiAnQXJyaXZhbCcsXG4gIGZyOiAnQXJyaXbDqWUnLFxuICBpdDogJ0Fycml2bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWt0b3InLFxuICBlbjogJ1NlY3RvcicsXG4gIGZyOiAnU2VjdGV1cicsXG4gIGl0OiAnU2V0dG9yZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvclNob3J0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NrdC4nLFxuICBlbjogJ1NlYy4nLFxuICBmcjogJ1NlY3QuJyxcbiAgaXQ6ICdTZXQuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xhc3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBmaXJzdDoge1xuICAgIGRlOiAnRXJzdGUgS2xhc3NlJyxcbiAgICBlbjogJ0ZpcnN0IENsYXNzJyxcbiAgICBmcjogJ1ByZW1pw6hyZSBjbGFzc2UnLFxuICAgIGl0OiAnUHJpbWEgY2xhc3NlJyxcbiAgfSxcbiAgc2Vjb25kOiB7XG4gICAgZGU6ICdad2VpdGUgS2xhc3NlJyxcbiAgICBlbjogJ1NlY29uZCBDbGFzcycsXG4gICAgZnI6ICdEZXV4acOobWUgY2xhc3NlJyxcbiAgICBpdDogJ1NlY29uZGEgY2xhc3NlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW46IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWnVnJyxcbiAgZW46ICdUcmFpbicsXG4gIGZyOiAnVHJhaW4nLFxuICBpdDogJ1RyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1rDvGdlJyxcbiAgZW46ICdUcmFpbnMnLFxuICBmcjogJ1RyYWlucycsXG4gIGl0OiAnVHJlbmknLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWdvbnNMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdXYWdlbiBkZXMgWnVnZXMnLFxuICBlbjogJ0NvYWNoZXMgb2YgdGhlIHRyYWluJyxcbiAgZnI6ICdXYWdvbnMgZHUgdHJhaW4nLFxuICBpdDogJ0NhcnJvenplIGRlbCB0cmVubycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bldhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnV2FnZW4nLFxuICBlbjogJ1RyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbicsXG4gIGl0OiAnQ2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuV2Fnb25MYWJlbE51bWJlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6IGBOdW1tZXJgLFxuICBlbjogYE51bWJlcmAsXG4gIGZyOiBgTnVtw6lyb2AsXG4gIGl0OiBgTnVtZXJvYCxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdHZXNjaGxvc3NlbmVyIFp1Z3dhZ2dvbicsXG4gIGVuOiAnQ2xvc2VkIHRyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbiBkdSB0cmFpbiBmZXJtw6knLFxuICBpdDogJ0NhcnJvenphIGRlbCB0cmVubyBjaGl1c28nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Mb2NvbW90aXZlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTG9rb21vdGl2ZScsXG4gIGVuOiAnTG9jb21vdGl2ZScsXG4gIGZyOiAnTG9jb21vdGl2ZScsXG4gIGl0OiAnTG9jb21vdGl2YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNsZWVwaW5nV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTY2hsYWZ3YWdlbicsXG4gIGVuOiAnU2xlZXBpbmcgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWxpdHMnLFxuICBpdDogJ0NhcnJvenphIGxldHRpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ291Y2hldHRlV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdMaWVnZXdhZ2VuJyxcbiAgZW46ICdDb3VjaGV0dGUgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWNvdWNoZXR0ZXMnLFxuICBpdDogJ0NhcnJvenphIGN1Y2NldHRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnU3BlaXNld2FnZW4nLFxuICBlbjogJ0RpbmluZyBjYXInLFxuICBmcjogJ1ZvaXR1cmUtcmVzdGF1cmFudCcsXG4gIGl0OiAnQ2Fycm96emEgcmlzdG9yYW50ZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkJsb2NrZWRQYXNzYWdlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgcHJldmlvdXM6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSB2b3JoZXJpZ2VuIFdhZ2VuJyxcbiAgICBlbjogJ05vIHBhc3NhZ2UgdG8gdGhlIHByZXZpb3VzIHRyYWluIGNvYWNoJyxcbiAgICBmcjogJ1BhcyBkZSBwYXNzYWdlIGF1IHdhZ29uIGR1IHRyYWluIHByw6ljw6lkZW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gcHJlY2VkZW50ZScsXG4gIH0sXG4gIG5leHQ6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCB0cmFpbiBjb2FjaCcsXG4gICAgZnI6ICdQYXMgZGUgcGFzc2FnZSBhdSB3YWdvbiBkdSB0cmFpbiBzdWl2YW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gc3VjY2Vzc2l2bycsXG4gIH0sXG4gIGJvdGg6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gdW5kIHZvcmhlcmlnZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgdHJhaW4gY29hY2gnLFxuICAgIGZyOiAnUGFzIGRlIHBhc3NhZ2UgYXUgd2Fnb24gZHUgdHJhaW4gc3VpdmFudCBldCBwcsOpY8OpZGVudCcsXG4gICAgaXQ6ICdOZXNzdW4gcGFzc2FnZ2lvIGFsbGEgY2Fycm96emEgZGVsIHRyZW5vIHN1Y2Nlc3Npdm8gZSBwcmVjZWRlbnRlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQWRkaXRpb25hbFdhZ29uSW5mb3JtYXRpb25IZWFkaW5nOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1c8OkdHpsaWNoZSBXYWdlbmluZm9ybWF0aW9uJyxcbiAgZW46ICdBZGRpdGlvbmFsIHdhZ29uIGluZm9ybWF0aW9uJyxcbiAgZnI6ICdJbmZvcm1hdGlvbnMgc3VwcGzDqW1lbnRhaXJlcyBzdXIgbGVzIHdhZ29ucycsXG4gIGl0OiAnSW5mb3JtYXppb25pIGFnZ2l1bnRpdmUgc3VsbGEgY2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGVwYXJ0dXJlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0FiZmFocnQnLFxuICBlbjogJ0RlcGFydHVyZScsXG4gIGZyOiAnRMOpcGFydCcsXG4gIGl0OiAnUGFydGVuemEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbk1pbnV0ZTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4+ID0ge1xuICBzaW5nbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ01pbnV0ZScsXG4gICAgICBlbjogJ01pbnV0ZScsXG4gICAgICBmcjogJ01pbnV0ZScsXG4gICAgICBpdDogJ01pbnV0bycsXG4gICAgfSxcbiAgICBzaG9ydDoge1xuICAgICAgZGU6ICdtJyxcbiAgICAgIGVuOiAnbScsXG4gICAgICBmcjogJ20nLFxuICAgICAgaXQ6ICdtJyxcbiAgICB9LFxuICB9LFxuICBtdWx0aXBsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnTWludXRlbicsXG4gICAgICBlbjogJ01pbnV0ZXMnLFxuICAgICAgZnI6ICdNaW51dGVzJyxcbiAgICAgIGl0OiAnTWludXRpJyxcbiAgICB9LFxuICAgIHNob3J0OiB7XG4gICAgICBkZTogJ01pbicsXG4gICAgICBlbjogJ21pbicsXG4gICAgICBmcjogJ21pbi4nLFxuICAgICAgaXQ6ICdtaW5zJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbkhvdXI6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+PiA9IHtcbiAgc2luZ2xlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGUnLFxuICAgICAgZW46ICdIb3VyJyxcbiAgICAgIGZyOiAnSGV1cmUnLFxuICAgICAgaXQ6ICdPcmEnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG4gIG11bHRpcGxlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGVuJyxcbiAgICAgIGVuOiAnSG91cnMnLFxuICAgICAgZnI6ICdIZXVyZXMnLFxuICAgICAgaXQ6ICdPcmUnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkR1cmF0aW9uRGF5OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pj4gPSB7XG4gIHNpbmdsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnVGFnJyxcbiAgICAgIGVuOiAnRGF5JyxcbiAgICAgIGZyOiAnSm91cicsXG4gICAgICBpdDogJ0dpb3JubycsXG4gICAgfSxcbiAgfSxcbiAgbXVsdGlwbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ1RhZ2UnLFxuICAgICAgZW46ICdEYXlzJyxcbiAgICAgIGZyOiAnSm91cnMnLFxuICAgICAgaXQ6ICdHaW9ybmknLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBRdWF5Q2hhbmdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0dsZWlzw6RuZGVydW5nIGltIFZlcmxhdWYgZGllc2VyIFZlcmJpbmR1bmcnLFxuICBlbjogJ1RyYWNrIGNoYW5nZSBpbiB0aGUgY291cnNlIG9mIHRoaXMgY29ubmVjdGlvbicsXG4gIGZyOiAnQ2hhbmdlbWVudCBkZSB2b2llIHN1ciBsZSBwYXJjb3VycyBkZSBjZXR0ZSBjb25uZXhpb24nLFxuICBpdDogJ0NhbWJpYW1lbnRvIGRpIGJpbmFyaW8gbmVsIGNvcnNvIGRpIHF1ZXN0YSBjb25uZXNzaW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBEdXJhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSZWlzZWRhdWVyJyxcbiAgZW46ICdUcmF2ZWwgdGltZScsXG4gIGZyOiAnRHVyw6llIGR1IHZveWFnZScsXG4gIGl0OiAnRHVyYXRhIGRlbCB2aWFnZ2lvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhdmVsaGludHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnUmVpc2VoaW53ZWlzZScsXG4gIGVuOiAnVHJhdmVsaGludHMnLFxuICBmcjogJ0luZGljYXRpb25zIHN1ciBsZSB2b3lhZ2UnLFxuICBpdDogJ0luZGljYXppb25pIGRpIHZpYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5SZWFsVGltZUluZm86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWNodHplaXRpbmZvcm1hdGlvbmVuJyxcbiAgZW46ICdSZWFsIHRpbWUgaW5mb3JtYXRpb24nLFxuICBmcjogJ0luZm9ybWF0aW9ucyBlbiB0ZW1wcyByw6llbCcsXG4gIGl0OiAnSW5mb3JtYXppb25pIGluIHRlbXBvIHJlYWxlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhbnNmZXJQcm9jZWR1cmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlJyxcbiAgZnI6ICdjaGFuZ2VtZW50IGRlIHRyYWluJyxcbiAgaXQ6ICdjYW1iaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UcmFuc2ZlclByb2NlZHVyZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlcycsXG4gIGZyOiAnY2hhbmdlbWVudHMgZGUgdHJhaW4nLFxuICBpdDogJ2NhbWJpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV3OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ25ldScsXG4gIGVuOiAnbmV3JyxcbiAgZnI6ICdub3V2ZWF1JyxcbiAgaXQ6ICdudW92bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZyb21QbGF0Zm9ybTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdBdWYnLFxuICBlbjogJ29uJyxcbiAgZnI6ICdzdXInLFxuICBpdDogJ3N1Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU3VwZXJzYXZlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTcGFyYmlsbGV0dGUnLFxuICBlbjogJ1N1cGVyc2F2ZXIgdGlja2V0cycsXG4gIGZyOiAnQmlsbGV0cyBkw6lncmlmZsOpcycsXG4gIGl0OiAnQmlnbGlldHRpIHJpc3Bhcm1pbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk9jY3VwYW5jeTogUmVjb3JkPFNiYk9jY3VwYW5jeSwgUmVjb3JkPFNiYkxhbmd1YWdlLCBzdHJpbmc+PiA9IHtcbiAgbm9uZToge1xuICAgIGRlOiAnS2VpbmUgQmVsZWd1bmdzcHJvZ25vc2UgdmVyZsO8Z2JhcicsXG4gICAgZW46ICdObyBvY2N1cGFuY3kgZm9yZWNhc3QgYXZhaWxhYmxlJyxcbiAgICBmcjogXCJBdWN1bmUgcHLDqXZpc2lvbiBkJ29jY3VwYXRpb24gZGlzcG9uaWJsZVwiLFxuICAgIGl0OiAnTmVzc3VuYSBwcmV2aXNpb25lIGRpIG9jY3VwYXppb25lIGRpc3BvbmliaWxlJyxcbiAgfSxcbiAgbG93OiB7XG4gICAgZGU6ICdUaWVmZSBiaXMgbWl0dGxlcmUgQmVsZWd1bmcgZXJ3YXJ0ZXQnLFxuICAgIGVuOiAnTG93IHRvIGF2ZXJhZ2Ugb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogJ1RhdXggZOKAmW9jY3VwYXRpb24gZmFpYmxlIMOgIG1veWVuIHByw6l2dScsXG4gICAgaXQ6ICfDiCBwcmV2aXN0YSB1buKAmW9jY3VwYXppb25lIG1lZGlvLWJhc3NhJyxcbiAgfSxcbiAgbWVkaXVtOiB7XG4gICAgZGU6ICdIb2hlIEJlbGVndW5nIGVyd2FydGV0JyxcbiAgICBlbjogJ0hpZ2ggb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogJ1RhdXggZOKAmW9jY3VwYXRpb24gw6lsZXbDqSBwcsOpdnUnLFxuICAgIGl0OiAnw4ggcHJldmlzdGEgdW7igJlvY2N1cGF6aW9uZSBlbGV2YXRhJyxcbiAgfSxcbiAgaGlnaDoge1xuICAgIGRlOiAnU2VociBob2hlIEJlbGVndW5nIGVyd2FydGV0JyxcbiAgICBlbjogJ1ZlcnkgaGlnaCBvY2N1cGFuY3kgZXhwZWN0ZWQnLFxuICAgIGZyOiAnVGF1eCBk4oCZb2NjdXBhdGlvbiB0csOocyDDqWxldsOpIHByw6l2dScsXG4gICAgaXQ6ICfDiCBwcmV2aXN0YSB1buKAmW9jY3VwYXppb25lIG1vbHRvIGVsZXZhdGEnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5NZWFuc09mVHJhbnNwb3J0OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgZnVuaWN1bGFyOiB7XG4gICAgZGU6ICdTZWlsYmFobi9aYWhucmFkYmFobicsXG4gICAgZW46ICdGdW5pY3VsYXIvQ29nIHJhaWx3YXknLFxuICAgIGZyOiAnRnVuaWN1bGFpcmUvQ2hlbWluIGRlIGZlciDDoCBjcsOpbWFpbGzDqHJlJyxcbiAgICBpdDogJ0Z1bml2aWEvRmVycm92aWEgYSBjcmVtYWdsaWVyYScsXG4gIH0sXG4gIGVjX2lkOiB7XG4gICAgZGU6ICdFQy9JQycsXG4gICAgZW46ICdFQy9JQycsXG4gICAgZnI6ICdFQy9JQycsXG4gICAgaXQ6ICdFQy9JQycsXG4gIH0sXG4gIGJ1czoge1xuICAgIGRlOiAnQnVzJyxcbiAgICBlbjogJ0J1cycsXG4gICAgZnI6ICdCdXMnLFxuICAgIGl0OiAnQnVzJyxcbiAgfSxcbiAgcmU6IHtcbiAgICBkZTogJ1JFJyxcbiAgICBlbjogJ1JFJyxcbiAgICBmcjogJ1JFJyxcbiAgICBpdDogJ1JFJyxcbiAgfSxcbiAgYXJ6X2V4dDoge1xuICAgIGRlOiAnQVJaL0VYVCcsXG4gICAgZW46ICdBUlovRVhUJyxcbiAgICBmcjogJ0FSWi9FWFQnLFxuICAgIGl0OiAnQVJaL0VYVCcsXG4gIH0sXG4gIGljZV90Z3Zfcmp4OiB7XG4gICAgZGU6ICdJQ0UvVEdWL1JKWCcsXG4gICAgZW46ICdJQ0UvVEdWL1JKWCcsXG4gICAgZnI6ICdJQ0UvVEdWL1JKWCcsXG4gICAgaXQ6ICdJQ0UvVEdWL1JKWCcsXG4gIH0sXG4gIGlyX3BlOiB7XG4gICAgZGU6ICdJUi9QRScsXG4gICAgZW46ICdJUi9QRScsXG4gICAgZnI6ICdJUi9QRScsXG4gICAgaXQ6ICdJUi9QRScsXG4gIH0sXG4gIHNfc25fcjoge1xuICAgIGRlOiAnUy9TTi9SJyxcbiAgICBlbjogJ1MvU04vUicsXG4gICAgZnI6ICdTL1NOL1InLFxuICAgIGl0OiAnUy9TTi9SJyxcbiAgfSxcbiAgdHJhbXdheToge1xuICAgIGRlOiAnVHJhbS9NZXRybycsXG4gICAgZW46ICdUcmFtd2F5L1VuZGVyZ3JvdW5kJyxcbiAgICBmcjogJ1RyYW0vTcOpdHJvJyxcbiAgICBpdDogJ1RyYW0vTWV0cm8nLFxuICB9LFxuICBzaGlwOiB7XG4gICAgZGU6ICdTY2hpZmYnLFxuICAgIGVuOiAnU2hpcCcsXG4gICAgZnI6ICdCYXRlYXUnLFxuICAgIGl0OiAnQmF0dGVsbG8nLFxuICB9LFxuICB0cmFpbjoge1xuICAgIGRlOiAnWnVnJyxcbiAgICBlbjogJ1RyYWluJyxcbiAgICBmcjogJ1RyYWluJyxcbiAgICBpdDogJ1RyZW5vJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuT3B0aW9uYWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnKG9wdGlvbmFsKScsXG4gIGVuOiAnKG9wdGlvbmFsKScsXG4gIGZyOiAnKGZhY3VsdGF0aWYpJyxcbiAgaXQ6ICcoZmFjb2x0YXRpdm8pJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvdzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdMaW5remllbCDDtmZmbmV0IGluIG5ldWVtIEZlbnN0ZXIuJyxcbiAgZW46ICdMaW5rIHRhcmdldCBvcGVucyBpbiBhIG5ldyB3aW5kb3cuJyxcbiAgZnI6IFwiTGUgbGllbiBzJ291dnJlIGRhbnMgdW5lIG5vdXZlbGxlIGZlbsOqdHJlLlwiLFxuICBpdDogJ0lsIGxpbmsgc2kgYXByZSBpbiB1bmEgbnVvdmEgZmluZXN0cmEuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuV2Fsa2luZ0Rpc3RhbmNlQXJyaXZhbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNaW51dGVuIEZ1c3N3ZWcgbmFjaCBBbmt1bmZ0OicsXG4gIGVuOiAnbWludXRlcyBvZiB3YWxraW5nIHRpbWUgYWZ0ZXIgYXJyaXZhbDonLFxuICBmcjogJ21pbnV0ZXMgZGUgdHJhamV0IMOgIHBpZWQgYXByw6hzIGzigJlhcnJpdsOpZTonLFxuICBpdDogJ21pbnV0aSBhIHBpZWRpIGFsbOKAmWFycml2bzonLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWxraW5nRGlzdGFuY2VEZXBhcnR1cmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTWludXRlbiBGdXNzd2VnIHZvciBBYmZhaHJ0OicsXG4gIGVuOiAnbWludXRlcyBvZiB3YWxraW5nIHRpbWUgYmVmb3JlIGRlcGFydHVyZTonLFxuICBmcjogJ21pbnV0ZXMgZGUgdHJhamV0IMOgIHBpZWQgYXZhbnQgbGUgZMOpcGFydDonLFxuICBpdDogJ21pbnV0aSBhIHBpZWRpIHByaW1hIGRlbGxhIHBhcnRlbnphOicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlQWxlcnQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTWVsZHVuZyBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBtZXNzYWdlJyxcbiAgZnI6ICdGZXJtZXIgbGUgbWVzc2FnZScsXG4gIGl0OiAnQ2hpdWRlcmUgaWwgbWVzc2FnZ2lvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VOb3RpZmljYXRpb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTmFjaHJpY2h0IHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG1lc3NhZ2UnLFxuICBmcjogJ0Zlcm1lciBsZSBtZXNzYWdlJyxcbiAgaXQ6ICdDaGl1ZGVyZSBpbCBtZXNzYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EaWFsb2c6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGlhbG9nJyxcbiAgZW46ICdEaWFsb2cnLFxuICBmcjogJ0RpYWxvZ3VlJyxcbiAgaXQ6ICdEaWFsb2dvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VEaWFsb2c6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnw5xiZXJnZWxhZ2VydGVzIEZlbnN0ZXIgc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2Ugc2Vjb25kYXJ5IHdpbmRvdycsXG4gIGZyOiAnRmVybWVyIGxhIGZlbsOqdHJlIHN1cGVycG9zw6llJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBmaW5lc3RyYSBzb3ZyYXBwb3N0YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlTmF2aWdhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdOYXZpZ2F0aW9uIHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG5hdmlnYXRpb24nLFxuICBmcjogJ0Zlcm1lciBsYSBuYXZpZ2F0aW9uJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBuYXZpZ2F6aW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlU2lkZWJhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWl0ZW5sZWlzdGUgc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2Ugc2lkZWJhcicsXG4gIGZyOiAnRmVybWVyIGxhIGJhcnJlIGxhdMOpcmFsZScsXG4gIGl0OiAnQ2hpdWRlcmUgbGEgYmFycmEgbGF0ZXJhbGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DbG9zZVBvcG92ZXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSGlud2VpcyBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBub3RlJyxcbiAgZnI6ICdGZXJtZXIgbGEgbm90ZScsXG4gIGl0OiAnQ2hpdWRlcmUgbGEgbm90YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkdvQmFjazogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdadXLDvGNrJyxcbiAgZW46ICdHbyBiYWNrJyxcbiAgZnI6ICdSZXRvdXJuZXInLFxuICBpdDogJ0luZGlldHJvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVG9kYXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSGV1dGUnLFxuICBlbjogJ1RvZGF5JyxcbiAgZnI6ICdBdWpvdXJk4oCZaHVpJyxcbiAgaXQ6ICdPZ2dpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dE1vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBuw6RjaHN0ZW4gTW9uYXQgd2VjaHNlbG4nLFxuICBlbjogJ0NoYW5nZSB0byB0aGUgbmV4dCBtb250aCcsXG4gIGZyOiAnUGFzc2VyIGF1IG1vaXMgc3VpdmFudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHN1Y2Nlc3Npdm8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c01vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBsZXR6dGVuIE1vbmF0IHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIG1vbnRoJyxcbiAgZnI6ICdQYXNzZXIgYXUgbW9pcyBwcsOpY8OpZGVudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0RGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ07DpGNoc3RlciBUYWcnLFxuICBlbjogJ05leHQgZGF5JyxcbiAgZnI6ICdKb3VyIHN1aXZhbnQnLFxuICBpdDogJ0dpb3JubyBzdWNjZXNzaXZvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNEYXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnVm9yaGVyaWdlciBUYWcnLFxuICBlbjogJ1ByZXZpb3VzIGRheScsXG4gIGZyOiAnSm91ciBwcsOpY8OpZGVudCcsXG4gIGl0OiAnR2lvcm5vIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5ZZWFyTW9udGhTZWxlY3Rpb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSmFociB1bmQgTW9uYXQgYXVzd8OkaGxlbicsXG4gIGVuOiAnQ2hvb3NlIHllYXIgYW5kIG1vbnRoJyxcbiAgZnI6ICdDaG9pc2lyIGzigJlhbm7DqWUgZXQgbGUgbW9pcycsXG4gIGl0OiAnU2VsZXppb25hIGFubm8gZSBtZXNlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2FsZW5kYXJEYXRlU2VsZWN0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0RhdHVtIGF1c3fDpGhsZW4nLFxuICBlbjogJ0Nob29zZSBkYXRlJyxcbiAgZnI6ICdDaG9pc2lyIHVuZSBkYXRlJyxcbiAgaXQ6ICdTZWxlemlvbmEgdW5hIGRhdGEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0WWVhclJhbmdlID0gKHllYXJSYW5nZTogbnVtYmVyKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYFdlY2hzZWwgenUgZGVuIG7DpGNoc3RlbiAke3llYXJSYW5nZX0gSmFocmVuYCxcbiAgZW46IGBDaGFuZ2UgdG8gdGhlIG5leHQgJHt5ZWFyUmFuZ2V9IHllYXJzYCxcbiAgZnI6IGBQYXNzZXIgYXV4ICR7eWVhclJhbmdlfSBwcm9jaGFpbmVzIGFubsOpZXNgLFxuICBpdDogYFBhc3NhcmUgYWkgc3VjY2Vzc2l2aSAke3llYXJSYW5nZX0gYW5uaWAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c1llYXJSYW5nZSA9ICh5ZWFyUmFuZ2U6IG51bWJlcik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBXZWNoc2VsIHp1IGRlbiB2b3JoZXJpZ2VuICR7eWVhclJhbmdlfSBKYWhyZW5gLFxuICBlbjogYENoYW5nZSB0byB0aGUgcHJldmlvdXMgJHt5ZWFyUmFuZ2V9IHllYXJzYCxcbiAgZnI6IGBQYXNzYWdlIGF1eCAke3llYXJSYW5nZX0gcHLDqWPDqWRlbnRlcyBhbm7DqWVzYCxcbiAgaXQ6IGBQYXNzYXJlIGFpIHByZWNlZGVudGkgJHt5ZWFyUmFuZ2V9IGFubmlgLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dFllYXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWnVtIG7DpGNoc3RlbiBKYWhyIHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIG5leHQgeWVhcicsXG4gIGZyOiBcIlBhc3NlciDDoCBsJ2FubsOpZSBzdWl2YW50ZVwiLFxuICBpdDogXCJQYXNzYXJlIGFsbCdhbm5vIHN1Y2Nlc3Npdm9cIixcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNZZWFyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBsZXR6dGVuIEphaHIgd2VjaHNlbG4nLFxuICBlbjogJ0NoYW5nZSB0byB0aGUgcHJldmlvdXMgeWVhcicsXG4gIGZyOiBcIlBhc3NlciDDoCBsJ2FubsOpZSBwcsOpY8OpZGVudFwiLFxuICBpdDogXCJQYXNzYXJlIGFsbCdhbm5vIHByZWNlZGVudGVcIixcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU2VsZWN0TmV4dERheSA9IChjdXJyZW50RGF0ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYFp1bSBuw6RjaHN0ZW4gVGFnIHdlY2hzZWxuLCBkZXJ6ZWl0IGF1c2dld8OkaGx0ICR7Y3VycmVudERhdGV9LmAsXG4gIGVuOiBgQ2hhbmdlIHRvIHRoZSBuZXh0IGRheSwgY3VycmVudGx5IHNlbGVjdGVkICR7Y3VycmVudERhdGV9LmAsXG4gIGZyOiBgUGFzc2VyIGF1IGpvdXIgc3VpdmFudCwgYWN0dWVsbGVtZW50IHPDqWxlY3Rpb25uw6kgJHtjdXJyZW50RGF0ZX0uYCxcbiAgaXQ6IGBQYXNzYXJlIGFsIGdpb3JubyBzdWNjZXNzaXZvLCBhdHR1YWxtZW50ZSBzZWxlemlvbmF0byAke2N1cnJlbnREYXRlfS5gLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuU2VsZWN0UHJldmlvdXNEYXkgPSAoY3VycmVudERhdGU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBadW0gdm9yaGVyaWdlbiBUYWcgd2VjaHNlbG4sIGRlcnplaXQgYXVzZ2V3w6RobHQgJHtjdXJyZW50RGF0ZX0uYCxcbiAgZW46IGBDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIGRheSwgY3VycmVudGx5IHNlbGVjdGVkICR7Y3VycmVudERhdGV9LmAsXG4gIGZyOiBgUGFzc2VyIGF1IGpvdXIgcHLDqWPDqWRlbnQsIGFjdHVlbGxlbWVudCBzw6lsZWN0aW9ubsOpICR7Y3VycmVudERhdGV9LmAsXG4gIGl0OiBgUGFzc2FyZSBhbCBnaW9ybm8gcHJlY2VkZW50ZSwgYXR0dWFsbWVudGUgc2VsZXppb25hdG8gJHtjdXJyZW50RGF0ZX0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4blNob3dDYWxlbmRhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdLYWxlbmRlciBhbnplaWdlbicsXG4gIGVuOiAnU2hvdyBjYWxlbmRhcicsXG4gIGZyOiAnQWZmaWNoZXIgbGUgY2FsZW5kcmllcicsXG4gIGl0OiAnVmlzdWFsaXp6YSBpbCBjYWxlbmRhcmlvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1RULk1NLkpKSkonLFxuICBlbjogJ0RELk1NLllZWVknLFxuICBmcjogJ0pKLk1NLkFBQUEnLFxuICBpdDogJ0dHLk1NLkFBQUEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EYXRlQ2hhbmdlZFRvOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0RhdHVtIGdlw6RuZGVydCBhdWYnLFxuICBlbjogJ0RhdGUgY2hhbmdlZCB0bycsXG4gIGZyOiAnRGF0ZSBtb2RpZmnDqWUgYXUnLFxuICBpdDogJ0RhdGEgbW9kaWZpY2F0YSBpbicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNvbm5lY3Rpb25Gcm9tOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ZlcmJpbmR1bmcgdm9uJyxcbiAgZW46ICdDb25uZWN0aW9uIGZyb20nLFxuICBmcjogJ0xpYWlzb24gZGUnLFxuICBpdDogJ0NvbGxlZ2FtZW50byBkYScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNvbm5lY3Rpb25UbzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICduYWNoJyxcbiAgZW46ICd0bycsXG4gIGZyOiAnw6AnLFxuICBpdDogJ2EnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Db25uZWN0aW9uUm91bmR0cmlwID0gKHJldHVybkNpdHk6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGB1bmQgenVyw7xjayBuYWNoICR7cmV0dXJuQ2l0eX0uYCxcbiAgZW46IGBhbmQgYmFjayB0byAke3JldHVybkNpdHl9LmAsXG4gIGZyOiBgZXQgcmV0b3VyIMOgICR7cmV0dXJuQ2l0eX0uYCxcbiAgaXQ6IGBlIHJpdG9ybm8gYSAke3JldHVybkNpdHl9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5FeHBhbmRlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdlcndlaXRlcnQnLFxuICBlbjogJ2V4cGFuZGVkJyxcbiAgZnI6ICfDqXRlbmR1JyxcbiAgaXQ6ICdlc3BhbnNvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ29sbGFwc2VkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ3JlZHV6aWVydCcsXG4gIGVuOiAnY29sbGFwc2VkJyxcbiAgZnI6ICdjb25kZW5zw6knLFxuICBpdDogJ2NvbXByZXNzbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk1hcENvbnRhaW5lckJ1dHRvbkxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0thcnRlIHplaWdlbicsXG4gIGVuOiAnU2hvdyBtYXAnLFxuICBmcjogJ0FmZmljaGVyIGxhIGNhcnRlJyxcbiAgaXQ6ICdNb3N0cmEgbGEgbWFwcGEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5CcmVhZGNydW1iRWxsaXBzaXNCdXR0b25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNZWhyIEJyZWFkY3J1bWJzIGFuemVpZ2VuJyxcbiAgZW46ICdTaG93IG1vcmUgYnJlYWRjcnVtYnMnLFxuICBmcjogJ0FmZmljaGVyIHBsdXMgZGUgZmlscyBk4oCZQXJpYW5lJyxcbiAgaXQ6ICdNb3N0cmEgcGnDuSBicmVhZGNydW1icycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsZWFySW5wdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRmVsZGluaGFsdCBsw7ZzY2hlbicsXG4gIGVuOiAnQ2xlYXIgaW5wdXQgdmFsdWUnLFxuICBmcjogJ0VmZmFjZXIgbGEgdmFsZXVyIGTigJllbnRyw6llJyxcbiAgaXQ6ICdDYW5jZWxsYSBpbCB2YWxvcmUgZGVsbOKAmWlucHV0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRmxpcENhcmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2xpY2tlbiBTaWUgYXVmIGRpZXNlIEthcnRlIGbDvHIgRGV0YWlscycsXG4gIGVuOiAnQ2xpY2sgb24gdGhpcyBjYXJkIGZvciBkZXRhaWxzJyxcbiAgZnI6ICdDbGlxdWV6IHN1ciBjZXR0ZSBjYXJ0ZSBwb3VyIHBsdXMgZGUgZMOpdGFpbHMnLFxuICBpdDogJ0NsaWNjYSBzdSBxdWVzdGEgc2NoZWRhIHBlciBpIGRldHRhZ2xpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmV2ZXJzZUNhcmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2xpY2tlbiBTaWUgYXVmIGRpZXNlIEthcnRlLCB1bSB6dXLDvGNrIHp1ciBadXNhbW1lbmZhc3N1bmcgenUgZ2VsYW5nZW4nLFxuICBlbjogJ0NsaWNrIG9uIHRoaXMgY2FyZCB0byBnbyBiYWNrIHRvIHRoZSBzdW1tYXJ5JyxcbiAgZnI6ICdDbGlxdWV6IHN1ciBjZXR0ZSBjYXJ0ZSBwb3VyIHJldmVuaXIgYXUgcsOpc3Vtw6knLFxuICBpdDogJ0NsaWNjYSBzdSBxdWVzdGEgc2NoZWRhIHBlciB0b3JuYXJlIGFsIHNvbW1hcmlvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGF0ZWkgYXVzd8OkaGxlbicsXG4gIGVuOiAnQ2hvb3NlIGEgZmlsZScsXG4gIGZyOiAnQ2hvaXNpc3NleiB1biBmaWNoaWVyJyxcbiAgaXQ6ICdTY2VnbGkgdW4gZmlsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsTXVsdGlwbGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGF0ZWllbiBhdXN3w6RobGVuJyxcbiAgZW46ICdDaG9vc2UgZmlsZXMnLFxuICBmcjogJ0Nob2lzaXNzZXogZGVzIGZpY2hpZXJzJyxcbiAgaXQ6ICdTY2VnbGkgZmlsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWmllaGVuIFNpZSBJaHJlIERhdGVpIGhpZXIgaGluIChEcmFnICYgRHJvcCknLFxuICBlbjogJ0RyYWcgJiBEcm9wIHlvdXIgZmlsZSBoZXJlJyxcbiAgZnI6ICdGYWl0ZXMgZ2xpc3NlciBldCBkw6lwb3NleiB2b3RyZSBmaWNoaWVyIGljaScsXG4gIGl0OiAnVHJhc2NpbmEgZSByaWxhc2NpYSBpbCBmaWxlIHF1aScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWxNdWx0aXBsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdaaWVoZW4gU2llIElocmUgRGF0ZWllbiBoaWVyIGhpbiAoRHJhZyAmIERyb3ApJyxcbiAgZW46ICdEcmFnICYgRHJvcCB5b3VyIGZpbGVzIGhlcmUnLFxuICBmcjogJ0ZhaXRlcyBnbGlzc2VyIGV0IGTDqXBvc2V6IHZvcyBmaWNoaWVycyBpY2knLFxuICBpdDogJ1RyYXNjaW5hIGUgcmlsYXNjaWEgaSBmaWxlIHF1aScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvckRlbGV0ZUZpbGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGF0ZWkgZW50ZmVybmVuJyxcbiAgZW46ICdSZW1vdmUgZmlsZScsXG4gIGZyOiAnRWZmYWNlciBsZSBmaWNoaWVyJyxcbiAgaXQ6ICdSaW11b3ZpIGlsIGZpbGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCA9IChmaWxlc05hbWU6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiB7XG4gIGlmIChmaWxlc05hbWUgJiYgZmlsZXNOYW1lLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGU6IGBBa3R1ZWxsIGF1c2dld8OkaGx0ZSBEYXRlaTogJHtmaWxlc05hbWUuam9pbignLCAnKX0uYCxcbiAgICAgIGVuOiBgQ3VycmVudGx5IHNlbGVjdGVkIGZpbGVzOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgICAgZnI6IGBGaWNoaWVyIGFjdHVlbGxlbWVudCBzw6lsZWN0aW9ubsOpOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgICAgaXQ6IGBGaWxlIGF0dHVhbG1lbnRlIHNlbGV6aW9uYXRvOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkZTogJ0tlaW5lIERhdGVpIGF1c2dld8OkaGx0LicsXG4gICAgZW46ICdObyBmaWxlcyBzZWxlY3RlZC4nLFxuICAgIGZyOiAnTmVzc3VuIGZpY2hpZXIgc8OpbGVjdGlvbm7DqS4nLFxuICAgIGl0OiAnTmVzc3VuIGZpbGUgc2VsZXppb25hdG8uJyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dFBhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTsOkY2hzdGUgU2VpdGUnLFxuICBlbjogJ05leHQgcGFnZScsXG4gIGZyOiAnUGFnZSBzdWl2YW50ZScsXG4gIGl0OiAnUGFnaW5hIHN1Y2Nlc3NpdmEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c1BhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnVm9yaGVyaWdlIFNlaXRlJyxcbiAgZW46ICdQcmV2aW91cyBwYWdlJyxcbiAgZnI6ICdQYWdlIHByw6ljw6lkZW50ZScsXG4gIGl0OiAnUGFnaW5hIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QYWdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NlaXRlJyxcbiAgZW46ICdQYWdlJyxcbiAgZnI6ICdQYWdlJyxcbiAgaXQ6ICdQYWdpbmEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5JdGVtc1BlclBhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWludHLDpGdlIHBybyBTZWl0ZScsXG4gIGVuOiAnSXRlbXMgcGVyIHBhZ2UnLFxuICBmcjogJ0VudHLDqWVzIHBhciBwYWdlJyxcbiAgaXQ6ICdFbGVtZW50aSBwZXIgcGFnaW5hJyxcbn07XG5cbi8qKiBAZGVwcmVjYXRlZCAqL1xuZXhwb3J0IGNvbnN0IGkxOG5TZWxlY3RlZFBhZ2UgPSAocGFnZU51bWJlcjogbnVtYmVyKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYFNlaXRlICR7cGFnZU51bWJlcn0gYXVzZ2V3w6RobHQuYCxcbiAgZW46IGBQYWdlICR7cGFnZU51bWJlcn0gc2VsZWN0ZWQuYCxcbiAgZnI6IGBQYWdlICR7cGFnZU51bWJlcn0gc8OpbGVjdGlvbm7DqWUuYCxcbiAgaXQ6IGBQYWdpbmEgJHtwYWdlTnVtYmVyfSBzZWxlemlvbmF0YS5gLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuUGFnaW5hdG9yU2VsZWN0ZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiBgYXVzZ2V3w6RobHRgLFxuICBlbjogYHNlbGVjdGVkYCxcbiAgZnI6IGBzw6lsZWN0aW9ubsOpZWAsXG4gIGl0OiBgc2VsZXppb25hdGFgLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QYWdpbmF0b3JPZjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6IGB2b25gLFxuICBlbjogYG9mYCxcbiAgZnI6IGBzdXJgLFxuICBpdDogYGRpYCxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2hlY2tib3hSZXF1aXJlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNdXNzIGdlc2V0enQgc2Vpbi4nLFxuICBlbjogJ011c3QgYmUgY2hlY2tlZC4nLFxuICBmcjogJ0RvaXQgw6p0cmUgY29jaMOpZS4nLFxuICBpdDogJ0RldmUgZXNzZXJlIGltcG9zdGF0by4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5TZWxlY3Rpb25SZXF1aXJlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdBdXN3YWhsIGVyZm9yZGVybGljaC4nLFxuICBlbjogJ1NlbGVjdGlvbiByZXF1aXJlZC4nLFxuICBmcjogJ1PDqWxlY3Rpb24gcmVxdWlzZS4nLFxuICBpdDogJ1NlbGV6aW9uZSBuZWNlc3NhcmlhLicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bklucHV0UmVxdWlyZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWluZ2FiZSBlcmZvcmRlcmxpY2guJyxcbiAgZW46ICdJbnB1dCByZXF1aXJlZC4nLFxuICBmcjogJ0VudHLDqWUgb2JsaWdhdG9pcmUuJyxcbiAgaXQ6ICdJbnNlcmltZW50byBuZWNlc3NhcmlvLicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkRhdGVJbnZhbGlkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0JpdHRlIGfDvGx0aWdlcyBEYXR1bSBlaW5nZWJlbi4nLFxuICBlbjogJ1BsZWFzZSBwcm92aWRlIGEgdmFsaWQgZGF0ZS4nLFxuICBmcjogJ1ZldWlsbGV6IHNhaXNpciB1bmUgZGF0ZSB2YWxpZGUuJyxcbiAgaXQ6ICdJbnNlcmlyZSB1bmEgZGF0YSB2YWxpZGEuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZU1pbiA9IChtaW46IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBEYXR1bSBkYXJmIG5pY2h0IHZvciAke21pbn0gc2Vpbi5gLFxuICBlbjogYERhdGUgbXVzdCBub3QgYmUgYmVmb3JlICR7bWlufS5gLFxuICBmcjogYExhIGRhdGUgbmUgZG9pdCBwYXMgw6p0cmUgYW50w6lyaWV1cmUgYXUgJHttaW59LmAsXG4gIGl0OiBgTGEgZGF0YSBub24gZGV2ZSBlc3NlcmUgYW50ZXJpb3JlIGFsICR7bWlufS5gLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZU1heCA9IChtYXg6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBEYXR1bSBkYXJmIG5pY2h0IG5hY2ggJHttYXh9IHNlaW4uYCxcbiAgZW46IGBEYXRlIG11c3Qgbm90IGJlIGFmdGVyICR7bWF4fS5gLFxuICBmcjogYExhIGRhdGUgbmUgZG9pdCBwYXMgw6p0cmUgcG9zdMOpcmlldXJlIGF1ICR7bWF4fS5gLFxuICBpdDogYExhIGRhdGEgbm9uIGRldmUgZXNzZXJlIHN1Y2Nlc3NpdmEgYWwgJHttYXh9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UaW1lSW5wdXRDaGFuZ2UgPSAodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBaZWl0IGdlw6RuZGVydCB6dSAke3ZhbHVlfS5gLFxuICBlbjogYFRpbWUgY2hhbmdlZCB0byAke3ZhbHVlfS5gLFxuICBmcjogYEhldXJlIG1vZGlmacOpZTogJHt2YWx1ZX0uYCxcbiAgaXQ6IGBPcmFyaW8gbW9kaWZpY2F0YSBhbGxlICR7dmFsdWV9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UaW1lSW52YWxpZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdCaXR0ZSBnw7xsdGlnZSBaZWl0IGVpbmdlYmVuLicsXG4gIGVuOiAnUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCB0aW1lLicsXG4gIGZyOiAnVmV1aWxsZXogc2Fpc2lyIHVuZSBoZXVyZSB2YWxpZGUuJyxcbiAgaXQ6ICdJbnNlcmlzY2kgdW4gb3JhcmlvIHZhbGlkby4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UaW1lTWF4OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogYFplaXQgZGFyZiBuaWNodCBuYWNoIDIzOjU5IHNlaW4uYCxcbiAgZW46IGBUaW1lIG11c3Qgbm90IGJlIGFmdGVyIDIzOjU5LmAsXG4gIGZyOiBgTOKAmWhldXJlIG5lIGRvaXQgcGFzIMOqdHJlIHBvc3TDqXJpZXVyZSDDoCAyM2g1OS5gLFxuICBpdDogYEzigJlvcmFyaW8gbm9uIHB1w7IgZXNzZXJlIHN1Y2Nlc3Npdm8gYWxsZSAyMy41OS5gLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UaW1lTWF4TGVuZ3RoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogYERpZSBaZWl0ZWluZ2FiZSBkYXJmIG5pY2h0IG1laHIgYWxzIGbDvG5mIFplaWNoZW4gaGFiZW4uYCxcbiAgZW46IGBUaGUgdGltZSBpbnB1dCBtdXN0IG5vdCBleGNlZWQgZml2ZSBjaGFyYWN0ZXJzLmAsXG4gIGZyOiBgTGEgc2Fpc2llIGRlIGzigJloZXVyZSBuZSBkb2l0IHBhcyBjb21wb3J0ZXIgcGx1cyBkZSBjaW5xIGNhcmFjdMOocmVzLmAsXG4gIGl0OiBgTOKAmWluZGljYXppb25lIHRlbXBvcmFsZSBub24gcHXDsiBjb250ZW5lcmUgcGnDuSBkaSBjaW5xdWUgY2FyYXR0ZXJpLmAsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNoaXBEZWxldGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRHLDvGNrZW4gU2llIGRpZSBFbnRmZXJuZW4tVGFzdGUgdW0gZGVuIENoaXAgenUgbMO2c2NoZW4nLFxuICBlbjogJ1ByZXNzIHRoZSBEZWxldGUgYnV0dG9uIHRvIHJlbW92ZSB0aGUgY2hpcCcsXG4gIGZyOiAnQXBwdXlleiBzdXIgbGEgdG91Y2hlIERlbCBwb3VyIHN1cHByaW1lciBjZXR0ZSBwdWNlJyxcbiAgaXQ6ICdQcmVtaSBpbCB0YXN0byBDYW5jIHBlciByaW11b3ZlcmUgcXVlc3RhIGNoaXAnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DaGlwR3JvdXBJbnB1dERlc2NyaXB0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0F1c2dld8OkaGx0ZSBFbGVtZW50ZTonLFxuICBlbjogJ1NlbGVjdGVkIGVsZW1lbnRzOicsXG4gIGZyOiAnw4lsw6ltZW50cyBzw6lsZWN0aW9ubsOpczonLFxuICBpdDogJ0VsZW1lbnRpIHNlbGV6aW9uYXRpOicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNhbGVuZGFyV2Vla051bWJlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdXb2NoZScsXG4gIGVuOiAnV2VlaycsXG4gIGZyOiAnU2VtYWluZScsXG4gIGl0OiAnU2V0dGltYW5hJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVGltZXRhYmxlRm9ybVN3YXBCdXR0b25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdWb24gdW5kIE5hY2ggdGF1c2NoZW4nLFxuICBlbjogJ1N3YXAgZnJvbSBhbmQgdG8nLFxuICBmcjogJ8OJY2hhbmdlciBkZSBldCDDoCcsXG4gIGl0OiAnSW52ZXJ0aSBEYSBlIEEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DYXJvdXNlbEl0ZW1BcmlhTGFiZWwgPSAoXG4gIGluZGV4OiBudW1iZXIsXG4gIHRvdGFsOiBudW1iZXIsXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgJHtpbmRleH0gdm9uICR7dG90YWx9YCxcbiAgZW46IGAke2luZGV4fSBvZiAke3RvdGFsfWAsXG4gIGZyOiBgJHtpbmRleH0gc3VyICR7dG90YWx9YCxcbiAgaXQ6IGAke2luZGV4fSBkaSAke3RvdGFsfWAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DYXJvdXNlbEFycm93c05hdmlnYXRpb25IaW50OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0thcnVzc2VsbCDigJMgQmVudXR6ZW4gU2llIGRpZSBQZmVpbHRhc3RlbiBpbSBJbnRlcmFrdGlvbnNtb2R1cywgdW0gZHVyY2ggZGllIEZvbGllbiB6dSBuYXZpZ2llcmVuJyxcbiAgZW46ICdDYXJvdXNlbCAtIFVzZSB0aGUgYXJyb3cga2V5cyBpbiBpbnRlcmFjdGlvbiBtb2RlIHRvIG5hdmlnYXRlIHRocm91Z2ggdGhlIHNsaWRlcycsXG4gIGZyOiAnQ2Fycm91c2VsIOKAkyBVdGlsaXNleiBsZXMgdG91Y2hlcyBmbMOpY2jDqWVzIGVuIG1vZGUgaW50ZXJhY3Rpb24gcG91ciBuYXZpZ3VlciBkYW5zIGxlcyBkaWFwb3NpdGl2ZXMnLFxuICBpdDogJ0Nhcm9zZWxsbyDigJMgVXRpbGl6emFyZSBpIHRhc3RpIGZyZWNjaWEgaW4gbW9kYWxpdMOgIGludGVyYXppb25lIHBlciBuYXZpZ2FyZSB0cmEgbGUgc2xpZGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0U2xpZGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTsOkY2hzdGUgRm9saWUnLFxuICBlbjogJ05leHQgc2xpZGUnLFxuICBmcjogJ0RpYXBvc2l0aXZlIHN1aXZhbnRlJyxcbiAgaXQ6ICdTbGlkZSBzdWNjZXNzaXZhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNTbGlkZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdWb3JoZXJpZ2UgRm9saWUnLFxuICBlbjogJ1ByZXZpb3VzIHNsaWRlJyxcbiAgZnI6ICdEaWFwb3NpdGl2ZSBwcsOpY8OpZGVudGUnLFxuICBpdDogJ1NsaWRlIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5TbGlkZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdGb2xpZScsXG4gIGVuOiAnU2xpZGUn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Q0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUVOLEtBQUs7QUFBQSxJQUNILElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFFTixRQUFRO0FBQUEsSUFDTixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsRUFBQTtBQUFBLEVBRU4sTUFBTTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7O0FBSUQsTUFBTSx1QkFBK0Q7QUFBQSxFQUMxRSxXQUFXO0FBQUEsSUFDVCxJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsRUFBQTtBQUFBLEVBRU4sT0FBTztBQUFBLElBQ0wsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUVOLEtBQUs7QUFBQSxJQUNILElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFFTixJQUFJO0FBQUEsSUFDRixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsRUFBQTtBQUFBLEVBRU4sU0FBUztBQUFBLElBQ1AsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUVOLGFBQWE7QUFBQSxJQUNYLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFFTixPQUFPO0FBQUEsSUFDTCxJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFD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
|
|
884
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NvcmUvaTE4bi9pMThuLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2JiTGFuZ3VhZ2UsIFNiYk9jY3VwYW5jeSB9IGZyb20gJy4uL2ludGVyZmFjZXMudHMnO1xuXG5leHBvcnQgY29uc3QgaTE4bkRpcmVjdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSaWNodHVuZycsXG4gIGVuOiAnRGlyZWN0aW9uJyxcbiAgZnI6ICdEaXJlY3Rpb24nLFxuICBpdDogJ0RpcmV6aW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkFycml2YWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnQW5rdW5mdCcsXG4gIGVuOiAnQXJyaXZhbCcsXG4gIGZyOiAnQXJyaXbDqWUnLFxuICBpdDogJ0Fycml2bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWt0b3InLFxuICBlbjogJ1NlY3RvcicsXG4gIGZyOiAnU2VjdGV1cicsXG4gIGl0OiAnU2V0dG9yZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNlY3RvclNob3J0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NrdC4nLFxuICBlbjogJ1NlYy4nLFxuICBmcjogJ1NlY3QuJyxcbiAgaXQ6ICdTZXQuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xhc3M6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge1xuICBmaXJzdDoge1xuICAgIGRlOiAnRXJzdGUgS2xhc3NlJyxcbiAgICBlbjogJ0ZpcnN0IENsYXNzJyxcbiAgICBmcjogJ1ByZW1pw6hyZSBjbGFzc2UnLFxuICAgIGl0OiAnUHJpbWEgY2xhc3NlJyxcbiAgfSxcbiAgc2Vjb25kOiB7XG4gICAgZGU6ICdad2VpdGUgS2xhc3NlJyxcbiAgICBlbjogJ1NlY29uZCBDbGFzcycsXG4gICAgZnI6ICdEZXV4acOobWUgY2xhc3NlJyxcbiAgICBpdDogJ1NlY29uZGEgY2xhc3NlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW46IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWnVnJyxcbiAgZW46ICdUcmFpbicsXG4gIGZyOiAnVHJhaW4nLFxuICBpdDogJ1RyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhaW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1rDvGdlJyxcbiAgZW46ICdUcmFpbnMnLFxuICBmcjogJ1RyYWlucycsXG4gIGl0OiAnVHJlbmknLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWdvbnNMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdXYWdlbiBkZXMgWnVnZXMnLFxuICBlbjogJ0NvYWNoZXMgb2YgdGhlIHRyYWluJyxcbiAgZnI6ICdXYWdvbnMgZHUgdHJhaW4nLFxuICBpdDogJ0NhcnJvenplIGRlbCB0cmVubycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bldhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnV2FnZW4nLFxuICBlbjogJ1RyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbicsXG4gIGl0OiAnQ2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuV2Fnb25MYWJlbE51bWJlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6IGBOdW1tZXJgLFxuICBlbjogYE51bWJlcmAsXG4gIGZyOiBgTnVtw6lyb2AsXG4gIGl0OiBgTnVtZXJvYCxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VkQ29tcGFydG1lbnRMYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdHZXNjaGxvc3NlbmVyIFp1Z3dhZ2dvbicsXG4gIGVuOiAnQ2xvc2VkIHRyYWluIGNvYWNoJyxcbiAgZnI6ICdXYWdvbiBkdSB0cmFpbiBmZXJtw6knLFxuICBpdDogJ0NhcnJvenphIGRlbCB0cmVubyBjaGl1c28nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Mb2NvbW90aXZlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTG9rb21vdGl2ZScsXG4gIGVuOiAnTG9jb21vdGl2ZScsXG4gIGZyOiAnTG9jb21vdGl2ZScsXG4gIGl0OiAnTG9jb21vdGl2YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blNsZWVwaW5nV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTY2hsYWZ3YWdlbicsXG4gIGVuOiAnU2xlZXBpbmcgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWxpdHMnLFxuICBpdDogJ0NhcnJvenphIGxldHRpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ291Y2hldHRlV2Fnb25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdMaWVnZXdhZ2VuJyxcbiAgZW46ICdDb3VjaGV0dGUgY2FyJyxcbiAgZnI6ICdWb2l0dXJlLWNvdWNoZXR0ZXMnLFxuICBpdDogJ0NhcnJvenphIGN1Y2NldHRlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmVzdGF1cmFudFdhZ29uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnU3BlaXNld2FnZW4nLFxuICBlbjogJ0RpbmluZyBjYXInLFxuICBmcjogJ1ZvaXR1cmUtcmVzdGF1cmFudCcsXG4gIGl0OiAnQ2Fycm96emEgcmlzdG9yYW50ZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkJsb2NrZWRQYXNzYWdlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgcHJldmlvdXM6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSB2b3JoZXJpZ2VuIFdhZ2VuJyxcbiAgICBlbjogJ05vIHBhc3NhZ2UgdG8gdGhlIHByZXZpb3VzIHRyYWluIGNvYWNoJyxcbiAgICBmcjogJ1BhcyBkZSBwYXNzYWdlIGF1IHdhZ29uIGR1IHRyYWluIHByw6ljw6lkZW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gcHJlY2VkZW50ZScsXG4gIH0sXG4gIG5leHQ6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCB0cmFpbiBjb2FjaCcsXG4gICAgZnI6ICdQYXMgZGUgcGFzc2FnZSBhdSB3YWdvbiBkdSB0cmFpbiBzdWl2YW50JyxcbiAgICBpdDogJ05lc3N1biBwYXNzYWdnaW8gYWxsYSBjYXJyb3p6YSBkZWwgdHJlbm8gc3VjY2Vzc2l2bycsXG4gIH0sXG4gIGJvdGg6IHtcbiAgICBkZTogJ0tlaW4gRHVyY2hnYW5nIHp1bSBuw6RjaHN0ZW4gdW5kIHZvcmhlcmlnZW4gV2FnZW4nLFxuICAgIGVuOiAnTm8gcGFzc2FnZSB0byB0aGUgbmV4dCBhbmQgcHJldmlvdXMgdHJhaW4gY29hY2gnLFxuICAgIGZyOiAnUGFzIGRlIHBhc3NhZ2UgYXUgd2Fnb24gZHUgdHJhaW4gc3VpdmFudCBldCBwcsOpY8OpZGVudCcsXG4gICAgaXQ6ICdOZXNzdW4gcGFzc2FnZ2lvIGFsbGEgY2Fycm96emEgZGVsIHRyZW5vIHN1Y2Nlc3Npdm8gZSBwcmVjZWRlbnRlJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQWRkaXRpb25hbFdhZ29uSW5mb3JtYXRpb25IZWFkaW5nOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1c8OkdHpsaWNoZSBXYWdlbmluZm9ybWF0aW9uJyxcbiAgZW46ICdBZGRpdGlvbmFsIHdhZ29uIGluZm9ybWF0aW9uJyxcbiAgZnI6ICdJbmZvcm1hdGlvbnMgc3VwcGzDqW1lbnRhaXJlcyBzdXIgbGVzIHdhZ29ucycsXG4gIGl0OiAnSW5mb3JtYXppb25pIGFnZ2l1bnRpdmUgc3VsbGEgY2Fycm96emEgZGVsIHRyZW5vJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGVwYXJ0dXJlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0FiZmFocnQnLFxuICBlbjogJ0RlcGFydHVyZScsXG4gIGZyOiAnRMOpcGFydCcsXG4gIGl0OiAnUGFydGVuemEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbk1pbnV0ZTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4+ID0ge1xuICBzaW5nbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ01pbnV0ZScsXG4gICAgICBlbjogJ01pbnV0ZScsXG4gICAgICBmcjogJ01pbnV0ZScsXG4gICAgICBpdDogJ01pbnV0bycsXG4gICAgfSxcbiAgICBzaG9ydDoge1xuICAgICAgZGU6ICdtJyxcbiAgICAgIGVuOiAnbScsXG4gICAgICBmcjogJ20nLFxuICAgICAgaXQ6ICdtJyxcbiAgICB9LFxuICB9LFxuICBtdWx0aXBsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnTWludXRlbicsXG4gICAgICBlbjogJ01pbnV0ZXMnLFxuICAgICAgZnI6ICdNaW51dGVzJyxcbiAgICAgIGl0OiAnTWludXRpJyxcbiAgICB9LFxuICAgIHNob3J0OiB7XG4gICAgICBkZTogJ01pbicsXG4gICAgICBlbjogJ21pbicsXG4gICAgICBmcjogJ21pbi4nLFxuICAgICAgaXQ6ICdtaW5zJyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EdXJhdGlvbkhvdXI6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+PiA9IHtcbiAgc2luZ2xlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGUnLFxuICAgICAgZW46ICdIb3VyJyxcbiAgICAgIGZyOiAnSGV1cmUnLFxuICAgICAgaXQ6ICdPcmEnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG4gIG11bHRpcGxlOiB7XG4gICAgbG9uZzoge1xuICAgICAgZGU6ICdTdHVuZGVuJyxcbiAgICAgIGVuOiAnSG91cnMnLFxuICAgICAgZnI6ICdIZXVyZXMnLFxuICAgICAgaXQ6ICdPcmUnLFxuICAgIH0sXG4gICAgc2hvcnQ6IHtcbiAgICAgIGRlOiAnU3RkLicsXG4gICAgICBlbjogJ2gnLFxuICAgICAgZnI6ICdvcmUnLFxuICAgICAgaXQ6ICdocnMnLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkR1cmF0aW9uRGF5OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pj4gPSB7XG4gIHNpbmdsZToge1xuICAgIGxvbmc6IHtcbiAgICAgIGRlOiAnVGFnJyxcbiAgICAgIGVuOiAnRGF5JyxcbiAgICAgIGZyOiAnSm91cicsXG4gICAgICBpdDogJ0dpb3JubycsXG4gICAgfSxcbiAgfSxcbiAgbXVsdGlwbGU6IHtcbiAgICBsb25nOiB7XG4gICAgICBkZTogJ1RhZ2UnLFxuICAgICAgZW46ICdEYXlzJyxcbiAgICAgIGZyOiAnSm91cnMnLFxuICAgICAgaXQ6ICdHaW9ybmknLFxuICAgIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBRdWF5Q2hhbmdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0dsZWlzw6RuZGVydW5nIGltIFZlcmxhdWYgZGllc2VyIFZlcmJpbmR1bmcnLFxuICBlbjogJ1RyYWNrIGNoYW5nZSBpbiB0aGUgY291cnNlIG9mIHRoaXMgY29ubmVjdGlvbicsXG4gIGZyOiAnQ2hhbmdlbWVudCBkZSB2b2llIHN1ciBsZSBwYXJjb3VycyBkZSBjZXR0ZSBjb25uZXhpb24nLFxuICBpdDogJ0NhbWJpYW1lbnRvIGRpIGJpbmFyaW8gbmVsIGNvcnNvIGRpIHF1ZXN0YSBjb25uZXNzaW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4blRyaXBEdXJhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdSZWlzZWRhdWVyJyxcbiAgZW46ICdUcmF2ZWwgdGltZScsXG4gIGZyOiAnRHVyw6llIGR1IHZveWFnZScsXG4gIGl0OiAnRHVyYXRhIGRlbCB2aWFnZ2lvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhdmVsaGludHM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnUmVpc2VoaW53ZWlzZScsXG4gIGVuOiAnVHJhdmVsaGludHMnLFxuICBmcjogJ0luZGljYXRpb25zIHN1ciBsZSB2b3lhZ2UnLFxuICBpdDogJ0luZGljYXppb25pIGRpIHZpYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5SZWFsVGltZUluZm86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWNodHplaXRpbmZvcm1hdGlvbmVuJyxcbiAgZW46ICdSZWFsIHRpbWUgaW5mb3JtYXRpb24nLFxuICBmcjogJ0luZm9ybWF0aW9ucyBlbiB0ZW1wcyByw6llbCcsXG4gIGl0OiAnSW5mb3JtYXppb25pIGluIHRlbXBvIHJlYWxlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVHJhbnNmZXJQcm9jZWR1cmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlJyxcbiAgZnI6ICdjaGFuZ2VtZW50IGRlIHRyYWluJyxcbiAgaXQ6ICdjYW1iaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UcmFuc2ZlclByb2NlZHVyZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnbWFsIHVtc3RlaWdlbicsXG4gIGVuOiAnY2hhbmdlcycsXG4gIGZyOiAnY2hhbmdlbWVudHMgZGUgdHJhaW4nLFxuICBpdDogJ2NhbWJpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV3OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ25ldScsXG4gIGVuOiAnbmV3JyxcbiAgZnI6ICdub3V2ZWF1JyxcbiAgaXQ6ICdudW92bycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZyb21QbGF0Zm9ybTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdBdWYnLFxuICBlbjogJ29uJyxcbiAgZnI6ICdzdXInLFxuICBpdDogJ3N1Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU3VwZXJzYXZlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTcGFyYmlsbGV0dGUnLFxuICBlbjogJ1N1cGVyc2F2ZXIgdGlja2V0cycsXG4gIGZyOiAnQmlsbGV0cyBkw6lncmlmZsOpcycsXG4gIGl0OiAnQmlnbGlldHRpIHJpc3Bhcm1pbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk9jY3VwYW5jeTogUmVjb3JkPFNiYk9jY3VwYW5jeSwgUmVjb3JkPFNiYkxhbmd1YWdlLCBzdHJpbmc+PiA9IHtcbiAgbm9uZToge1xuICAgIGRlOiAnS2VpbmUgQmVsZWd1bmdzcHJvZ25vc2UgdmVyZsO8Z2JhcicsXG4gICAgZW46ICdObyBvY2N1cGFuY3kgZm9yZWNhc3QgYXZhaWxhYmxlJyxcbiAgICBmcjogXCJBdWN1bmUgcHLDqXZpc2lvbiBkJ29jY3VwYXRpb24gZGlzcG9uaWJsZVwiLFxuICAgIGl0OiAnTmVzc3VuYSBwcmV2aXNpb25lIGRpIG9jY3VwYXppb25lIGRpc3BvbmliaWxlJyxcbiAgfSxcbiAgbG93OiB7XG4gICAgZGU6ICdUaWVmZSBiaXMgbWl0dGxlcmUgQmVsZWd1bmcgZXJ3YXJ0ZXQnLFxuICAgIGVuOiAnTG93IHRvIGF2ZXJhZ2Ugb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogJ1RhdXggZOKAmW9jY3VwYXRpb24gZmFpYmxlIMOgIG1veWVuIHByw6l2dScsXG4gICAgaXQ6ICfDiCBwcmV2aXN0YSB1buKAmW9jY3VwYXppb25lIG1lZGlvLWJhc3NhJyxcbiAgfSxcbiAgbWVkaXVtOiB7XG4gICAgZGU6ICdIb2hlIEJlbGVndW5nIGVyd2FydGV0JyxcbiAgICBlbjogJ0hpZ2ggb2NjdXBhbmN5IGV4cGVjdGVkJyxcbiAgICBmcjogJ1RhdXggZOKAmW9jY3VwYXRpb24gw6lsZXbDqSBwcsOpdnUnLFxuICAgIGl0OiAnw4ggcHJldmlzdGEgdW7igJlvY2N1cGF6aW9uZSBlbGV2YXRhJyxcbiAgfSxcbiAgaGlnaDoge1xuICAgIGRlOiAnU2VociBob2hlIEJlbGVndW5nIGVyd2FydGV0JyxcbiAgICBlbjogJ1ZlcnkgaGlnaCBvY2N1cGFuY3kgZXhwZWN0ZWQnLFxuICAgIGZyOiAnVGF1eCBk4oCZb2NjdXBhdGlvbiB0csOocyDDqWxldsOpIHByw6l2dScsXG4gICAgaXQ6ICfDiCBwcmV2aXN0YSB1buKAmW9jY3VwYXppb25lIG1vbHRvIGVsZXZhdGEnLFxuICB9LFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5NZWFuc09mVHJhbnNwb3J0OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgZnVuaWN1bGFyOiB7XG4gICAgZGU6ICdTZWlsYmFobi9aYWhucmFkYmFobicsXG4gICAgZW46ICdGdW5pY3VsYXIvQ29nIHJhaWx3YXknLFxuICAgIGZyOiAnRnVuaWN1bGFpcmUvQ2hlbWluIGRlIGZlciDDoCBjcsOpbWFpbGzDqHJlJyxcbiAgICBpdDogJ0Z1bml2aWEvRmVycm92aWEgYSBjcmVtYWdsaWVyYScsXG4gIH0sXG4gIGVjX2lkOiB7XG4gICAgZGU6ICdFQy9JQycsXG4gICAgZW46ICdFQy9JQycsXG4gICAgZnI6ICdFQy9JQycsXG4gICAgaXQ6ICdFQy9JQycsXG4gIH0sXG4gIGJ1czoge1xuICAgIGRlOiAnQnVzJyxcbiAgICBlbjogJ0J1cycsXG4gICAgZnI6ICdCdXMnLFxuICAgIGl0OiAnQnVzJyxcbiAgfSxcbiAgcmU6IHtcbiAgICBkZTogJ1JFJyxcbiAgICBlbjogJ1JFJyxcbiAgICBmcjogJ1JFJyxcbiAgICBpdDogJ1JFJyxcbiAgfSxcbiAgYXJ6X2V4dDoge1xuICAgIGRlOiAnQVJaL0VYVCcsXG4gICAgZW46ICdBUlovRVhUJyxcbiAgICBmcjogJ0FSWi9FWFQnLFxuICAgIGl0OiAnQVJaL0VYVCcsXG4gIH0sXG4gIGljZV90Z3Zfcmp4OiB7XG4gICAgZGU6ICdJQ0UvVEdWL1JKWCcsXG4gICAgZW46ICdJQ0UvVEdWL1JKWCcsXG4gICAgZnI6ICdJQ0UvVEdWL1JKWCcsXG4gICAgaXQ6ICdJQ0UvVEdWL1JKWCcsXG4gIH0sXG4gIGlyX3BlOiB7XG4gICAgZGU6ICdJUi9QRScsXG4gICAgZW46ICdJUi9QRScsXG4gICAgZnI6ICdJUi9QRScsXG4gICAgaXQ6ICdJUi9QRScsXG4gIH0sXG4gIHNfc25fcjoge1xuICAgIGRlOiAnUy9TTi9SJyxcbiAgICBlbjogJ1MvU04vUicsXG4gICAgZnI6ICdTL1NOL1InLFxuICAgIGl0OiAnUy9TTi9SJyxcbiAgfSxcbiAgdHJhbXdheToge1xuICAgIGRlOiAnVHJhbS9NZXRybycsXG4gICAgZW46ICdUcmFtd2F5L1VuZGVyZ3JvdW5kJyxcbiAgICBmcjogJ1RyYW0vTcOpdHJvJyxcbiAgICBpdDogJ1RyYW0vTWV0cm8nLFxuICB9LFxuICBzaGlwOiB7XG4gICAgZGU6ICdTY2hpZmYnLFxuICAgIGVuOiAnU2hpcCcsXG4gICAgZnI6ICdCYXRlYXUnLFxuICAgIGl0OiAnQmF0dGVsbG8nLFxuICB9LFxuICB0cmFpbjoge1xuICAgIGRlOiAnWnVnJyxcbiAgICBlbjogJ1RyYWluJyxcbiAgICBmcjogJ1RyYWluJyxcbiAgICBpdDogJ1RyZW5vJyxcbiAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuT3B0aW9uYWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnKG9wdGlvbmFsKScsXG4gIGVuOiAnKG9wdGlvbmFsKScsXG4gIGZyOiAnKGZhY3VsdGF0aWYpJyxcbiAgaXQ6ICcoZmFjb2x0YXRpdm8pJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVGFyZ2V0T3BlbnNJbk5ld1dpbmRvdzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdMaW5remllbCDDtmZmbmV0IGluIG5ldWVtIEZlbnN0ZXIuJyxcbiAgZW46ICdMaW5rIHRhcmdldCBvcGVucyBpbiBhIG5ldyB3aW5kb3cuJyxcbiAgZnI6IFwiTGUgbGllbiBzJ291dnJlIGRhbnMgdW5lIG5vdXZlbGxlIGZlbsOqdHJlLlwiLFxuICBpdDogJ0lsIGxpbmsgc2kgYXByZSBpbiB1bmEgbnVvdmEgZmluZXN0cmEuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuV2Fsa2luZ0Rpc3RhbmNlQXJyaXZhbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNaW51dGVuIEZ1c3N3ZWcgbmFjaCBBbmt1bmZ0OicsXG4gIGVuOiAnbWludXRlcyBvZiB3YWxraW5nIHRpbWUgYWZ0ZXIgYXJyaXZhbDonLFxuICBmcjogJ21pbnV0ZXMgZGUgdHJhamV0IMOgIHBpZWQgYXByw6hzIGzigJlhcnJpdsOpZTonLFxuICBpdDogJ21pbnV0aSBhIHBpZWRpIGFsbOKAmWFycml2bzonLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5XYWxraW5nRGlzdGFuY2VEZXBhcnR1cmU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTWludXRlbiBGdXNzd2VnIHZvciBBYmZhaHJ0OicsXG4gIGVuOiAnbWludXRlcyBvZiB3YWxraW5nIHRpbWUgYmVmb3JlIGRlcGFydHVyZTonLFxuICBmcjogJ21pbnV0ZXMgZGUgdHJhamV0IMOgIHBpZWQgYXZhbnQgbGUgZMOpcGFydDonLFxuICBpdDogJ21pbnV0aSBhIHBpZWRpIHByaW1hIGRlbGxhIHBhcnRlbnphOicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlQWxlcnQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTWVsZHVuZyBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBtZXNzYWdlJyxcbiAgZnI6ICdGZXJtZXIgbGUgbWVzc2FnZScsXG4gIGl0OiAnQ2hpdWRlcmUgaWwgbWVzc2FnZ2lvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VOb3RpZmljYXRpb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTmFjaHJpY2h0IHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG1lc3NhZ2UnLFxuICBmcjogJ0Zlcm1lciBsZSBtZXNzYWdlJyxcbiAgaXQ6ICdDaGl1ZGVyZSBpbCBtZXNzYWdnaW8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EaWFsb2c6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGlhbG9nJyxcbiAgZW46ICdEaWFsb2cnLFxuICBmcjogJ0RpYWxvZ3VlJyxcbiAgaXQ6ICdEaWFsb2dvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2xvc2VEaWFsb2c6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnw5xiZXJnZWxhZ2VydGVzIEZlbnN0ZXIgc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2Ugc2Vjb25kYXJ5IHdpbmRvdycsXG4gIGZyOiAnRmVybWVyIGxhIGZlbsOqdHJlIHN1cGVycG9zw6llJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBmaW5lc3RyYSBzb3ZyYXBwb3N0YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlTmF2aWdhdGlvbjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdOYXZpZ2F0aW9uIHNjaGxpZXNzZW4nLFxuICBlbjogJ0Nsb3NlIG5hdmlnYXRpb24nLFxuICBmcjogJ0Zlcm1lciBsYSBuYXZpZ2F0aW9uJyxcbiAgaXQ6ICdDaGl1ZGVyZSBsYSBuYXZpZ2F6aW9uZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsb3NlU2lkZWJhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdTZWl0ZW5sZWlzdGUgc2NobGllc3NlbicsXG4gIGVuOiAnQ2xvc2Ugc2lkZWJhcicsXG4gIGZyOiAnRmVybWVyIGxhIGJhcnJlIGxhdMOpcmFsZScsXG4gIGl0OiAnQ2hpdWRlcmUgbGEgYmFycmEgbGF0ZXJhbGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DbG9zZVBvcG92ZXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSGlud2VpcyBzY2hsaWVzc2VuJyxcbiAgZW46ICdDbG9zZSBub3RlJyxcbiAgZnI6ICdGZXJtZXIgbGEgbm90ZScsXG4gIGl0OiAnQ2hpdWRlcmUgbGEgbm90YScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkdvQmFjazogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdadXLDvGNrJyxcbiAgZW46ICdHbyBiYWNrJyxcbiAgZnI6ICdSZXRvdXJuZXInLFxuICBpdDogJ0luZGlldHJvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVG9kYXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSGV1dGUnLFxuICBlbjogJ1RvZGF5JyxcbiAgZnI6ICdBdWpvdXJk4oCZaHVpJyxcbiAgaXQ6ICdPZ2dpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dE1vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBuw6RjaHN0ZW4gTW9uYXQgd2VjaHNlbG4nLFxuICBlbjogJ0NoYW5nZSB0byB0aGUgbmV4dCBtb250aCcsXG4gIGZyOiAnUGFzc2VyIGF1IG1vaXMgc3VpdmFudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHN1Y2Nlc3Npdm8nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c01vbnRoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBsZXR6dGVuIE1vbmF0IHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIG1vbnRoJyxcbiAgZnI6ICdQYXNzZXIgYXUgbW9pcyBwcsOpY8OpZGVudCcsXG4gIGl0OiAnUGFzc2FyZSBhbCBtZXNlIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0RGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ07DpGNoc3RlciBUYWcnLFxuICBlbjogJ05leHQgZGF5JyxcbiAgZnI6ICdKb3VyIHN1aXZhbnQnLFxuICBpdDogJ0dpb3JubyBzdWNjZXNzaXZvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNEYXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnVm9yaGVyaWdlciBUYWcnLFxuICBlbjogJ1ByZXZpb3VzIGRheScsXG4gIGZyOiAnSm91ciBwcsOpY8OpZGVudCcsXG4gIGl0OiAnR2lvcm5vIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5ZZWFyTW9udGhTZWxlY3Rpb246IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnSmFociB1bmQgTW9uYXQgYXVzd8OkaGxlbicsXG4gIGVuOiAnQ2hvb3NlIHllYXIgYW5kIG1vbnRoJyxcbiAgZnI6ICdDaG9pc2lyIGzigJlhbm7DqWUgZXQgbGUgbW9pcycsXG4gIGl0OiAnU2VsZXppb25hIGFubm8gZSBtZXNlJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2FsZW5kYXJEYXRlU2VsZWN0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0RhdHVtIGF1c3fDpGhsZW4nLFxuICBlbjogJ0Nob29zZSBkYXRlJyxcbiAgZnI6ICdDaG9pc2lyIHVuZSBkYXRlJyxcbiAgaXQ6ICdTZWxlemlvbmEgdW5hIGRhdGEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0WWVhclJhbmdlID0gKHllYXJSYW5nZTogbnVtYmVyKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYFdlY2hzZWwgenUgZGVuIG7DpGNoc3RlbiAke3llYXJSYW5nZX0gSmFocmVuYCxcbiAgZW46IGBDaGFuZ2UgdG8gdGhlIG5leHQgJHt5ZWFyUmFuZ2V9IHllYXJzYCxcbiAgZnI6IGBQYXNzZXIgYXV4ICR7eWVhclJhbmdlfSBwcm9jaGFpbmVzIGFubsOpZXNgLFxuICBpdDogYFBhc3NhcmUgYWkgc3VjY2Vzc2l2aSAke3llYXJSYW5nZX0gYW5uaWAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c1llYXJSYW5nZSA9ICh5ZWFyUmFuZ2U6IG51bWJlcik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBXZWNoc2VsIHp1IGRlbiB2b3JoZXJpZ2VuICR7eWVhclJhbmdlfSBKYWhyZW5gLFxuICBlbjogYENoYW5nZSB0byB0aGUgcHJldmlvdXMgJHt5ZWFyUmFuZ2V9IHllYXJzYCxcbiAgZnI6IGBQYXNzYWdlIGF1eCAke3llYXJSYW5nZX0gcHLDqWPDqWRlbnRlcyBhbm7DqWVzYCxcbiAgaXQ6IGBQYXNzYXJlIGFpIHByZWNlZGVudGkgJHt5ZWFyUmFuZ2V9IGFubmlgLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dFllYXI6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWnVtIG7DpGNoc3RlbiBKYWhyIHdlY2hzZWxuJyxcbiAgZW46ICdDaGFuZ2UgdG8gdGhlIG5leHQgeWVhcicsXG4gIGZyOiBcIlBhc3NlciDDoCBsJ2FubsOpZSBzdWl2YW50ZVwiLFxuICBpdDogXCJQYXNzYXJlIGFsbCdhbm5vIHN1Y2Nlc3Npdm9cIixcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNZZWFyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1p1bSBsZXR6dGVuIEphaHIgd2VjaHNlbG4nLFxuICBlbjogJ0NoYW5nZSB0byB0aGUgcHJldmlvdXMgeWVhcicsXG4gIGZyOiBcIlBhc3NlciDDoCBsJ2FubsOpZSBwcsOpY8OpZGVudFwiLFxuICBpdDogXCJQYXNzYXJlIGFsbCdhbm5vIHByZWNlZGVudGVcIixcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuU2VsZWN0TmV4dERheSA9IChjdXJyZW50RGF0ZTogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiAoe1xuICBkZTogYFp1bSBuw6RjaHN0ZW4gVGFnIHdlY2hzZWxuLCBkZXJ6ZWl0IGF1c2dld8OkaGx0ICR7Y3VycmVudERhdGV9LmAsXG4gIGVuOiBgQ2hhbmdlIHRvIHRoZSBuZXh0IGRheSwgY3VycmVudGx5IHNlbGVjdGVkICR7Y3VycmVudERhdGV9LmAsXG4gIGZyOiBgUGFzc2VyIGF1IGpvdXIgc3VpdmFudCwgYWN0dWVsbGVtZW50IHPDqWxlY3Rpb25uw6kgJHtjdXJyZW50RGF0ZX0uYCxcbiAgaXQ6IGBQYXNzYXJlIGFsIGdpb3JubyBzdWNjZXNzaXZvLCBhdHR1YWxtZW50ZSBzZWxlemlvbmF0byAke2N1cnJlbnREYXRlfS5gLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuU2VsZWN0UHJldmlvdXNEYXkgPSAoY3VycmVudERhdGU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBadW0gdm9yaGVyaWdlbiBUYWcgd2VjaHNlbG4sIGRlcnplaXQgYXVzZ2V3w6RobHQgJHtjdXJyZW50RGF0ZX0uYCxcbiAgZW46IGBDaGFuZ2UgdG8gdGhlIHByZXZpb3VzIGRheSwgY3VycmVudGx5IHNlbGVjdGVkICR7Y3VycmVudERhdGV9LmAsXG4gIGZyOiBgUGFzc2VyIGF1IGpvdXIgcHLDqWPDqWRlbnQsIGFjdHVlbGxlbWVudCBzw6lsZWN0aW9ubsOpICR7Y3VycmVudERhdGV9LmAsXG4gIGl0OiBgUGFzc2FyZSBhbCBnaW9ybm8gcHJlY2VkZW50ZSwgYXR0dWFsbWVudGUgc2VsZXppb25hdG8gJHtjdXJyZW50RGF0ZX0uYCxcbn0pO1xuXG5leHBvcnQgY29uc3QgaTE4blNob3dDYWxlbmRhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdLYWxlbmRlciBhbnplaWdlbicsXG4gIGVuOiAnU2hvdyBjYWxlbmRhcicsXG4gIGZyOiAnQWZmaWNoZXIgbGUgY2FsZW5kcmllcicsXG4gIGl0OiAnVmlzdWFsaXp6YSBpbCBjYWxlbmRhcmlvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZVBpY2tlclBsYWNlaG9sZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1RULk1NLkpKSkonLFxuICBlbjogJ0RELk1NLllZWVknLFxuICBmcjogJ0pKLk1NLkFBQUEnLFxuICBpdDogJ0dHLk1NLkFBQUEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5EYXRlQ2hhbmdlZFRvOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0RhdHVtIGdlw6RuZGVydCBhdWYnLFxuICBlbjogJ0RhdGUgY2hhbmdlZCB0bycsXG4gIGZyOiAnRGF0ZSBtb2RpZmnDqWUgYXUnLFxuICBpdDogJ0RhdGEgbW9kaWZpY2F0YSBpbicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNvbm5lY3Rpb25Gcm9tOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1ZlcmJpbmR1bmcgdm9uJyxcbiAgZW46ICdDb25uZWN0aW9uIGZyb20nLFxuICBmcjogJ0xpYWlzb24gZGUnLFxuICBpdDogJ0NvbGxlZ2FtZW50byBkYScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNvbm5lY3Rpb25UbzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICduYWNoJyxcbiAgZW46ICd0bycsXG4gIGZyOiAnw6AnLFxuICBpdDogJ2EnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5Db25uZWN0aW9uUm91bmR0cmlwID0gKHJldHVybkNpdHk6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGB1bmQgenVyw7xjayBuYWNoICR7cmV0dXJuQ2l0eX0uYCxcbiAgZW46IGBhbmQgYmFjayB0byAke3JldHVybkNpdHl9LmAsXG4gIGZyOiBgZXQgcmV0b3VyIMOgICR7cmV0dXJuQ2l0eX0uYCxcbiAgaXQ6IGBlIHJpdG9ybm8gYSAke3JldHVybkNpdHl9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5FeHBhbmRlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdlcndlaXRlcnQnLFxuICBlbjogJ2V4cGFuZGVkJyxcbiAgZnI6ICfDqXRlbmR1JyxcbiAgaXQ6ICdlc3BhbnNvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ29sbGFwc2VkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ3JlZHV6aWVydCcsXG4gIGVuOiAnY29sbGFwc2VkJyxcbiAgZnI6ICdjb25kZW5zw6knLFxuICBpdDogJ2NvbXByZXNzbycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bk1hcENvbnRhaW5lckJ1dHRvbkxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0thcnRlIHplaWdlbicsXG4gIGVuOiAnU2hvdyBtYXAnLFxuICBmcjogJ0FmZmljaGVyIGxhIGNhcnRlJyxcbiAgaXQ6ICdNb3N0cmEgbGEgbWFwcGEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5CcmVhZGNydW1iRWxsaXBzaXNCdXR0b25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNZWhyIEJyZWFkY3J1bWJzIGFuemVpZ2VuJyxcbiAgZW46ICdTaG93IG1vcmUgYnJlYWRjcnVtYnMnLFxuICBmcjogJ0FmZmljaGVyIHBsdXMgZGUgZmlscyBk4oCZQXJpYW5lJyxcbiAgaXQ6ICdNb3N0cmEgcGnDuSBicmVhZGNydW1icycsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNsZWFySW5wdXQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRmVsZGluaGFsdCBsw7ZzY2hlbicsXG4gIGVuOiAnQ2xlYXIgaW5wdXQgdmFsdWUnLFxuICBmcjogJ0VmZmFjZXIgbGEgdmFsZXVyIGTigJllbnRyw6llJyxcbiAgaXQ6ICdDYW5jZWxsYSBpbCB2YWxvcmUgZGVsbOKAmWlucHV0Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRmxpcENhcmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2xpY2tlbiBTaWUgYXVmIGRpZXNlIEthcnRlIGbDvHIgRGV0YWlscycsXG4gIGVuOiAnQ2xpY2sgb24gdGhpcyBjYXJkIGZvciBkZXRhaWxzJyxcbiAgZnI6ICdDbGlxdWV6IHN1ciBjZXR0ZSBjYXJ0ZSBwb3VyIHBsdXMgZGUgZMOpdGFpbHMnLFxuICBpdDogJ0NsaWNjYSBzdSBxdWVzdGEgc2NoZWRhIHBlciBpIGRldHRhZ2xpJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUmV2ZXJzZUNhcmQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnS2xpY2tlbiBTaWUgYXVmIGRpZXNlIEthcnRlLCB1bSB6dXLDvGNrIHp1ciBadXNhbW1lbmZhc3N1bmcgenUgZ2VsYW5nZW4nLFxuICBlbjogJ0NsaWNrIG9uIHRoaXMgY2FyZCB0byBnbyBiYWNrIHRvIHRoZSBzdW1tYXJ5JyxcbiAgZnI6ICdDbGlxdWV6IHN1ciBjZXR0ZSBjYXJ0ZSBwb3VyIHJldmVuaXIgYXUgcsOpc3Vtw6knLFxuICBpdDogJ0NsaWNjYSBzdSBxdWVzdGEgc2NoZWRhIHBlciB0b3JuYXJlIGFsIHNvbW1hcmlvJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRmlsZVNlbGVjdG9yQnV0dG9uTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGF0ZWkgYXVzd8OkaGxlbicsXG4gIGVuOiAnQ2hvb3NlIGEgZmlsZScsXG4gIGZyOiAnQ2hvaXNpc3NleiB1biBmaWNoaWVyJyxcbiAgaXQ6ICdTY2VnbGkgdW4gZmlsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvckJ1dHRvbkxhYmVsTXVsdGlwbGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGF0ZWllbiBhdXN3w6RobGVuJyxcbiAgZW46ICdDaG9vc2UgZmlsZXMnLFxuICBmcjogJ0Nob2lzaXNzZXogZGVzIGZpY2hpZXJzJyxcbiAgaXQ6ICdTY2VnbGkgZmlsZScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWw6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnWmllaGVuIFNpZSBJaHJlIERhdGVpIGhpZXIgaGluIChEcmFnICYgRHJvcCknLFxuICBlbjogJ0RyYWcgJiBEcm9wIHlvdXIgZmlsZSBoZXJlJyxcbiAgZnI6ICdGYWl0ZXMgZ2xpc3NlciBldCBkw6lwb3NleiB2b3RyZSBmaWNoaWVyIGljaScsXG4gIGl0OiAnVHJhc2NpbmEgZSByaWxhc2NpYSBpbCBmaWxlIHF1aScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvclN1YnRpdGxlTGFiZWxNdWx0aXBsZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdaaWVoZW4gU2llIElocmUgRGF0ZWllbiBoaWVyIGhpbiAoRHJhZyAmIERyb3ApJyxcbiAgZW46ICdEcmFnICYgRHJvcCB5b3VyIGZpbGVzIGhlcmUnLFxuICBmcjogJ0ZhaXRlcyBnbGlzc2VyIGV0IGTDqXBvc2V6IHZvcyBmaWNoaWVycyBpY2knLFxuICBpdDogJ1RyYXNjaW5hIGUgcmlsYXNjaWEgaSBmaWxlIHF1aScsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkZpbGVTZWxlY3RvckRlbGV0ZUZpbGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRGF0ZWkgZW50ZmVybmVuJyxcbiAgZW46ICdSZW1vdmUgZmlsZScsXG4gIGZyOiAnRWZmYWNlciBsZSBmaWNoaWVyJyxcbiAgaXQ6ICdSaW11b3ZpIGlsIGZpbGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5GaWxlU2VsZWN0b3JDdXJyZW50bHlTZWxlY3RlZCA9IChmaWxlc05hbWU6IHN0cmluZ1tdKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9PiB7XG4gIGlmIChmaWxlc05hbWUgJiYgZmlsZXNOYW1lLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGU6IGBBa3R1ZWxsIGF1c2dld8OkaGx0ZSBEYXRlaTogJHtmaWxlc05hbWUuam9pbignLCAnKX0uYCxcbiAgICAgIGVuOiBgQ3VycmVudGx5IHNlbGVjdGVkIGZpbGVzOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgICAgZnI6IGBGaWNoaWVyIGFjdHVlbGxlbWVudCBzw6lsZWN0aW9ubsOpOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgICAgaXQ6IGBGaWxlIGF0dHVhbG1lbnRlIHNlbGV6aW9uYXRvOiAke2ZpbGVzTmFtZS5qb2luKCcsICcpfS5gLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkZTogJ0tlaW5lIERhdGVpIGF1c2dld8OkaGx0LicsXG4gICAgZW46ICdObyBmaWxlcyBzZWxlY3RlZC4nLFxuICAgIGZyOiAnTmVzc3VuIGZpY2hpZXIgc8OpbGVjdGlvbm7DqS4nLFxuICAgIGl0OiAnTmVzc3VuIGZpbGUgc2VsZXppb25hdG8uJyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuTmV4dFBhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTsOkY2hzdGUgU2VpdGUnLFxuICBlbjogJ05leHQgcGFnZScsXG4gIGZyOiAnUGFnZSBzdWl2YW50ZScsXG4gIGl0OiAnUGFnaW5hIHN1Y2Nlc3NpdmEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QcmV2aW91c1BhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnVm9yaGVyaWdlIFNlaXRlJyxcbiAgZW46ICdQcmV2aW91cyBwYWdlJyxcbiAgZnI6ICdQYWdlIHByw6ljw6lkZW50ZScsXG4gIGl0OiAnUGFnaW5hIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QYWdlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ1NlaXRlJyxcbiAgZW46ICdQYWdlJyxcbiAgZnI6ICdQYWdlJyxcbiAgaXQ6ICdQYWdpbmEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5JdGVtc1BlclBhZ2U6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWludHLDpGdlIHBybyBTZWl0ZScsXG4gIGVuOiAnSXRlbXMgcGVyIHBhZ2UnLFxuICBmcjogJ0VudHLDqWVzIHBhciBwYWdlJyxcbiAgaXQ6ICdFbGVtZW50aSBwZXIgcGFnaW5hJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUGFnaW5hdG9yU2VsZWN0ZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiBgYXVzZ2V3w6RobHRgLFxuICBlbjogYHNlbGVjdGVkYCxcbiAgZnI6IGBzw6lsZWN0aW9ubsOpZWAsXG4gIGl0OiBgc2VsZXppb25hdGFgLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5QYWdpbmF0b3JPZjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6IGB2b25gLFxuICBlbjogYG9mYCxcbiAgZnI6IGBzdXJgLFxuICBpdDogYGRpYCxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuQ2hlY2tib3hSZXF1aXJlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdNdXNzIGdlc2V0enQgc2Vpbi4nLFxuICBlbjogJ011c3QgYmUgY2hlY2tlZC4nLFxuICBmcjogJ0RvaXQgw6p0cmUgY29jaMOpZS4nLFxuICBpdDogJ0RldmUgZXNzZXJlIGltcG9zdGF0by4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5TZWxlY3Rpb25SZXF1aXJlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdBdXN3YWhsIGVyZm9yZGVybGljaC4nLFxuICBlbjogJ1NlbGVjdGlvbiByZXF1aXJlZC4nLFxuICBmcjogJ1PDqWxlY3Rpb24gcmVxdWlzZS4nLFxuICBpdDogJ1NlbGV6aW9uZSBuZWNlc3NhcmlhLicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bklucHV0UmVxdWlyZWQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRWluZ2FiZSBlcmZvcmRlcmxpY2guJyxcbiAgZW46ICdJbnB1dCByZXF1aXJlZC4nLFxuICBmcjogJ0VudHLDqWUgb2JsaWdhdG9pcmUuJyxcbiAgaXQ6ICdJbnNlcmltZW50byBuZWNlc3NhcmlvLicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkRhdGVJbnZhbGlkOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0JpdHRlIGfDvGx0aWdlcyBEYXR1bSBlaW5nZWJlbi4nLFxuICBlbjogJ1BsZWFzZSBwcm92aWRlIGEgdmFsaWQgZGF0ZS4nLFxuICBmcjogJ1ZldWlsbGV6IHNhaXNpciB1bmUgZGF0ZSB2YWxpZGUuJyxcbiAgaXQ6ICdJbnNlcmlyZSB1bmEgZGF0YSB2YWxpZGEuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZU1pbiA9IChtaW46IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBEYXR1bSBkYXJmIG5pY2h0IHZvciAke21pbn0gc2Vpbi5gLFxuICBlbjogYERhdGUgbXVzdCBub3QgYmUgYmVmb3JlICR7bWlufS5gLFxuICBmcjogYExhIGRhdGUgbmUgZG9pdCBwYXMgw6p0cmUgYW50w6lyaWV1cmUgYXUgJHttaW59LmAsXG4gIGl0OiBgTGEgZGF0YSBub24gZGV2ZSBlc3NlcmUgYW50ZXJpb3JlIGFsICR7bWlufS5gLFxufSk7XG5cbmV4cG9ydCBjb25zdCBpMThuRGF0ZU1heCA9IChtYXg6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBEYXR1bSBkYXJmIG5pY2h0IG5hY2ggJHttYXh9IHNlaW4uYCxcbiAgZW46IGBEYXRlIG11c3Qgbm90IGJlIGFmdGVyICR7bWF4fS5gLFxuICBmcjogYExhIGRhdGUgbmUgZG9pdCBwYXMgw6p0cmUgcG9zdMOpcmlldXJlIGF1ICR7bWF4fS5gLFxuICBpdDogYExhIGRhdGEgbm9uIGRldmUgZXNzZXJlIHN1Y2Nlc3NpdmEgYWwgJHttYXh9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UaW1lSW5wdXRDaGFuZ2UgPSAodmFsdWU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPT4gKHtcbiAgZGU6IGBaZWl0IGdlw6RuZGVydCB6dSAke3ZhbHVlfS5gLFxuICBlbjogYFRpbWUgY2hhbmdlZCB0byAke3ZhbHVlfS5gLFxuICBmcjogYEhldXJlIG1vZGlmacOpZTogJHt2YWx1ZX0uYCxcbiAgaXQ6IGBPcmFyaW8gbW9kaWZpY2F0YSBhbGxlICR7dmFsdWV9LmAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UaW1lSW52YWxpZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdCaXR0ZSBnw7xsdGlnZSBaZWl0IGVpbmdlYmVuLicsXG4gIGVuOiAnUGxlYXNlIHByb3ZpZGUgYSB2YWxpZCB0aW1lLicsXG4gIGZyOiAnVmV1aWxsZXogc2Fpc2lyIHVuZSBoZXVyZSB2YWxpZGUuJyxcbiAgaXQ6ICdJbnNlcmlzY2kgdW4gb3JhcmlvIHZhbGlkby4nLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UaW1lTWF4OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogYFplaXQgZGFyZiBuaWNodCBuYWNoIDIzOjU5IHNlaW4uYCxcbiAgZW46IGBUaW1lIG11c3Qgbm90IGJlIGFmdGVyIDIzOjU5LmAsXG4gIGZyOiBgTOKAmWhldXJlIG5lIGRvaXQgcGFzIMOqdHJlIHBvc3TDqXJpZXVyZSDDoCAyM2g1OS5gLFxuICBpdDogYEzigJlvcmFyaW8gbm9uIHB1w7IgZXNzZXJlIHN1Y2Nlc3Npdm8gYWxsZSAyMy41OS5gLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5UaW1lTWF4TGVuZ3RoOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogYERpZSBaZWl0ZWluZ2FiZSBkYXJmIG5pY2h0IG1laHIgYWxzIGbDvG5mIFplaWNoZW4gaGFiZW4uYCxcbiAgZW46IGBUaGUgdGltZSBpbnB1dCBtdXN0IG5vdCBleGNlZWQgZml2ZSBjaGFyYWN0ZXJzLmAsXG4gIGZyOiBgTGEgc2Fpc2llIGRlIGzigJloZXVyZSBuZSBkb2l0IHBhcyBjb21wb3J0ZXIgcGx1cyBkZSBjaW5xIGNhcmFjdMOocmVzLmAsXG4gIGl0OiBgTOKAmWluZGljYXppb25lIHRlbXBvcmFsZSBub24gcHXDsiBjb250ZW5lcmUgcGnDuSBkaSBjaW5xdWUgY2FyYXR0ZXJpLmAsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNoaXBEZWxldGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnRHLDvGNrZW4gU2llIGRpZSBFbnRmZXJuZW4tVGFzdGUgdW0gZGVuIENoaXAgenUgbMO2c2NoZW4nLFxuICBlbjogJ1ByZXNzIHRoZSBEZWxldGUgYnV0dG9uIHRvIHJlbW92ZSB0aGUgY2hpcCcsXG4gIGZyOiAnQXBwdXlleiBzdXIgbGEgdG91Y2hlIERlbCBwb3VyIHN1cHByaW1lciBjZXR0ZSBwdWNlJyxcbiAgaXQ6ICdQcmVtaSBpbCB0YXN0byBDYW5jIHBlciByaW11b3ZlcmUgcXVlc3RhIGNoaXAnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DaGlwR3JvdXBJbnB1dERlc2NyaXB0aW9uOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0F1c2dld8OkaGx0ZSBFbGVtZW50ZTonLFxuICBlbjogJ1NlbGVjdGVkIGVsZW1lbnRzOicsXG4gIGZyOiAnw4lsw6ltZW50cyBzw6lsZWN0aW9ubsOpczonLFxuICBpdDogJ0VsZW1lbnRpIHNlbGV6aW9uYXRpOicsXG59O1xuXG5leHBvcnQgY29uc3QgaTE4bkNhbGVuZGFyV2Vla051bWJlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdXb2NoZScsXG4gIGVuOiAnV2VlaycsXG4gIGZyOiAnU2VtYWluZScsXG4gIGl0OiAnU2V0dGltYW5hJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuVGltZXRhYmxlRm9ybVN3YXBCdXR0b25MYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdWb24gdW5kIE5hY2ggdGF1c2NoZW4nLFxuICBlbjogJ1N3YXAgZnJvbSBhbmQgdG8nLFxuICBmcjogJ8OJY2hhbmdlciBkZSBldCDDoCcsXG4gIGl0OiAnSW52ZXJ0aSBEYSBlIEEnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DYXJvdXNlbEl0ZW1BcmlhTGFiZWwgPSAoXG4gIGluZGV4OiBudW1iZXIsXG4gIHRvdGFsOiBudW1iZXIsXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0+ICh7XG4gIGRlOiBgJHtpbmRleH0gdm9uICR7dG90YWx9YCxcbiAgZW46IGAke2luZGV4fSBvZiAke3RvdGFsfWAsXG4gIGZyOiBgJHtpbmRleH0gc3VyICR7dG90YWx9YCxcbiAgaXQ6IGAke2luZGV4fSBkaSAke3RvdGFsfWAsXG59KTtcblxuZXhwb3J0IGNvbnN0IGkxOG5DYXJvdXNlbEFycm93c05hdmlnYXRpb25IaW50OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBkZTogJ0thcnVzc2VsbCDigJMgQmVudXR6ZW4gU2llIGRpZSBQZmVpbHRhc3RlbiBpbSBJbnRlcmFrdGlvbnNtb2R1cywgdW0gZHVyY2ggZGllIEZvbGllbiB6dSBuYXZpZ2llcmVuJyxcbiAgZW46ICdDYXJvdXNlbCAtIFVzZSB0aGUgYXJyb3cga2V5cyBpbiBpbnRlcmFjdGlvbiBtb2RlIHRvIG5hdmlnYXRlIHRocm91Z2ggdGhlIHNsaWRlcycsXG4gIGZyOiAnQ2Fycm91c2VsIOKAkyBVdGlsaXNleiBsZXMgdG91Y2hlcyBmbMOpY2jDqWVzIGVuIG1vZGUgaW50ZXJhY3Rpb24gcG91ciBuYXZpZ3VlciBkYW5zIGxlcyBkaWFwb3NpdGl2ZXMnLFxuICBpdDogJ0Nhcm9zZWxsbyDigJMgVXRpbGl6emFyZSBpIHRhc3RpIGZyZWNjaWEgaW4gbW9kYWxpdMOgIGludGVyYXppb25lIHBlciBuYXZpZ2FyZSB0cmEgbGUgc2xpZGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5OZXh0U2xpZGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIGRlOiAnTsOkY2hzdGUgRm9saWUnLFxuICBlbjogJ05leHQgc2xpZGUnLFxuICBmcjogJ0RpYXBvc2l0aXZlIHN1aXZhbnRlJyxcbiAgaXQ6ICdTbGlkZSBzdWNjZXNzaXZhJyxcbn07XG5cbmV4cG9ydCBjb25zdCBpMThuUHJldmlvdXNTbGlkZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdWb3JoZXJpZ2UgRm9saWUnLFxuICBlbjogJ1ByZXZpb3VzIHNsaWRlJyxcbiAgZnI6ICdEaWFwb3NpdGl2ZSBwcsOpY8OpZGVudGUnLFxuICBpdDogJ1NsaWRlIHByZWNlZGVudGUnLFxufTtcblxuZXhwb3J0IGNvbnN0IGkxOG5TbGlkZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgZGU6ICdGb2xpZScsXG4gIGVuOiAnU2xpZGUnLFxuICBmcjogJ0RpYXBvc2l0aXZlJyxcbiAgaXQ6ICdTbGlkZScsXG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVPLE1BQU0sZ0JBQXdDO0FBQUEsRUFDbkQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLGNBQXNDO0FBQUEsRUFDakQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLGFBQXFDO0FBQUEsRUFDaEQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLGtCQUEwQztBQUFBLEVBQ3JELElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7O0FBR0MsTUFBTSxZQUFvRDtBQUFBLEVBQy9ELE9BQU87QUFBQSxJQUNMLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFFTixRQUFRO0FBQUEsSUFDTixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsRUFBQTs7QUFJRCxNQUFNLFlBQW9DO0FBQUEsRUFDL0MsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLGFBQXFDO0FBQUEsRUFDaEQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLGtCQUEwQztBQUFBLEVBQ3JELElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7O0FBR0MsTUFBTSxpQkFBeUM7QUFBQSxFQUNwRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sdUJBQStDO0FBQUEsRUFDMUQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLDZCQUFxRDtBQUFBLEVBQ2hFLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7O0FBR0MsTUFBTSxzQkFBOEM7QUFBQSxFQUN6RCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0seUJBQWlEO0FBQUEsRUFDNUQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLDBCQUFrRDtBQUFBLEVBQzdELElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7O0FBR0MsTUFBTSwyQkFBbUQ7QUFBQSxFQUM5RCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0scUJBQTZEO0FBQUEsRUFDeEUsVUFBVTtBQUFBLElBQ1IsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUVOLE1BQU07QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFFTixNQUFNO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsRUFBQTs7QUFJRCxNQUFNLHdDQUFnRTtBQUFBLEVBQzNFLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7O0FBR0MsTUFBTSxnQkFBd0M7QUFBQSxFQUNuRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0scUJBQTZFO0FBQUEsRUFDeEYsUUFBUTtBQUFBLElBQ04sTUFBTTtBQUFBLE1BQ0osSUFBSTtBQUFBLE1BQ0osSUFBSTtBQUFBLE1BQ0osSUFBSTtBQUFBLE1BQ0osSUFBSTtBQUFBLElBQUE7QUFBQSxJQUVOLE9BQU87QUFBQSxNQUNMLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxJQUFBO0FBQUEsRUFDTDtBQUFBLEVBRUgsVUFBVTtBQUFBLElBQ1IsTUFBTTtBQUFBLE1BQ0osSUFBSTtBQUFBLE1BQ0osSUFBSTtBQUFBLE1BQ0osSUFBSTtBQUFBLE1BQ0osSUFBSTtBQUFBLElBQUE7QUFBQSxJQUVOLE9BQU87QUFBQSxNQUNMLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxJQUFBO0FBQUEsRUFDTDs7QUFJRSxNQUFNLG1CQUEyRTtBQUFBLEVBQ3RGLFFBQVE7QUFBQSxJQUNOLE1BQU07QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxJQUFBO0FBQUEsSUFFTixPQUFPO0FBQUEsTUFDTCxJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsSUFBQTtBQUFBLEVBQ0w7QUFBQSxFQUVILFVBQVU7QUFBQSxJQUNSLE1BQU07QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxJQUFBO0FBQUEsSUFFTixPQUFPO0FBQUEsTUFDTCxJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsSUFBQTtBQUFBLEVBQ0w7O0FBSUUsTUFBTSxrQkFBMEU7QUFBQSxFQUNyRixRQUFRO0FBQUEsSUFDTixNQUFNO0FBQUEsTUFDSixJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsSUFBQTtBQUFBLEVBQ0w7QUFBQSxFQUVILFVBQVU7QUFBQSxJQUNSLE1BQU07QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxNQUNKLElBQUk7QUFBQSxJQUFBO0FBQUEsRUFDTDs7QUFJRSxNQUFNLHFCQUE2QztBQUFBLEVBQ3hELElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7O0FBR0MsTUFBTSxtQkFBMkM7QUFBQSxFQUN0RCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sa0JBQTBDO0FBQUEsRUFDckQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLG1CQUEyQztBQUFBLEVBQ3RELElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7O0FBR0MsTUFBTSx3QkFBZ0Q7QUFBQSxFQUMzRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0seUJBQWlEO0FBQUEsRUFDNUQsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLFVBQWtDO0FBQUEsRUFDN0MsSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTtBQUFBLEVBQ0osSUFBSTs7QUFHQyxNQUFNLG1CQUEyQztBQUFBLEVBQ3RELElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7QUFBQSxFQUNKLElBQUk7O0FBR0MsTUFBTSxpQkFBeUM7QUFBQSxFQUNwRCxJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJO0FBQUEsRUFDSixJQUFJOztBQUdDLE1BQU0sZ0JBQW1FO0FBQUEsRUFDOUUsTUFBTTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUVOLEtBQUs7QUFBQSxJQUNILElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFFTixRQUFRO0FBQUEsSUFDTixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsRUFBQTtBQUFBLEVBRU4sTUFBTTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7O0FBSUQsTUFBTSx1QkFBK0Q7QUFBQSxFQUMxRSxXQUFXO0FBQUEsSUFDVCxJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsRUFBQTtBQUFBLEVBRU4sT0FBTztBQUFBLElBQ0wsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUVOLEtBQUs7QUFBQSxJQUNILElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFFTixJQUFJO0FBQUEsSUFDRixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsRUFBQTtBQUFBLEVBRU4sU0FBUztBQUFBLElBQ1AsSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUVOLGFBQWE7QUFBQSxJQUNYLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFFTixPQUFPO0FBQUEsSUFDTCxJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsRUFBQTtBQUFBLEVBRU4sUUFBUTtBQUFBLElBQ04sSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLElBQ0osSUFBSTtBQUFBLEVBQUE7QUFBQSxFQUVOLFNBQVM7QUFBQSxJQUNQLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxJQUNKLElBQUk7QUFBQSxFQUFBO0FBQUEsRUFFTixNQUFNO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEsSUFDSixJQUFJO0FBQUEs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
|
package/development/core/i18n.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i18nAdditionalWagonInformationHeading, i18nArrival, i18nBlockedPassage, i18nBreadcrumbEllipsisButtonLabel, i18nCalendarDateSelection, i18nCalendarWeekNumber, i18nCarouselArrowsNavigationHint, i18nCarouselItemAriaLabel, i18nCheckboxRequired, i18nChipDelete, i18nChipGroupInputDescription, i18nClass, i18nClearInput, i18nCloseAlert, i18nCloseDialog, i18nCloseNavigation, i18nCloseNotification, i18nClosePopover, i18nCloseSidebar, i18nClosedCompartmentLabel, i18nCollapsed, i18nConnectionFrom, i18nConnectionRoundtrip, i18nConnectionTo, i18nCouchetteWagonLabel, i18nDateChangedTo, i18nDateInvalid, i18nDateMax, i18nDateMin, i18nDatePickerPlaceholder, i18nDeparture, i18nDialog, i18nDirection, i18nDurationDay, i18nDurationHour, i18nDurationMinute, i18nExpanded, i18nFileSelectorButtonLabel, i18nFileSelectorButtonLabelMultiple, i18nFileSelectorCurrentlySelected, i18nFileSelectorDeleteFile, i18nFileSelectorSubtitleLabel, i18nFileSelectorSubtitleLabelMultiple, i18nFlipCard, i18nFromPlatform, i18nGoBack, i18nInputRequired, i18nItemsPerPage, i18nLocomotiveLabel, i18nMapContainerButtonLabel, i18nMeansOfTransport, i18nNew, i18nNextDay, i18nNextMonth, i18nNextPage, i18nNextSlide, i18nNextYear, i18nNextYearRange, i18nOccupancy, i18nOptional, i18nPage, i18nPaginatorOf, i18nPaginatorSelected, i18nPreviousDay, i18nPreviousMonth, i18nPreviousPage, i18nPreviousSlide, i18nPreviousYear, i18nPreviousYearRange, i18nRealTimeInfo, i18nRestaurantWagonLabel, i18nReverseCard, i18nSector, i18nSectorShort, i18nSelectNextDay, i18nSelectPreviousDay,
|
|
1
|
+
import { i18nAdditionalWagonInformationHeading, i18nArrival, i18nBlockedPassage, i18nBreadcrumbEllipsisButtonLabel, i18nCalendarDateSelection, i18nCalendarWeekNumber, i18nCarouselArrowsNavigationHint, i18nCarouselItemAriaLabel, i18nCheckboxRequired, i18nChipDelete, i18nChipGroupInputDescription, i18nClass, i18nClearInput, i18nCloseAlert, i18nCloseDialog, i18nCloseNavigation, i18nCloseNotification, i18nClosePopover, i18nCloseSidebar, i18nClosedCompartmentLabel, i18nCollapsed, i18nConnectionFrom, i18nConnectionRoundtrip, i18nConnectionTo, i18nCouchetteWagonLabel, i18nDateChangedTo, i18nDateInvalid, i18nDateMax, i18nDateMin, i18nDatePickerPlaceholder, i18nDeparture, i18nDialog, i18nDirection, i18nDurationDay, i18nDurationHour, i18nDurationMinute, i18nExpanded, i18nFileSelectorButtonLabel, i18nFileSelectorButtonLabelMultiple, i18nFileSelectorCurrentlySelected, i18nFileSelectorDeleteFile, i18nFileSelectorSubtitleLabel, i18nFileSelectorSubtitleLabelMultiple, i18nFlipCard, i18nFromPlatform, i18nGoBack, i18nInputRequired, i18nItemsPerPage, i18nLocomotiveLabel, i18nMapContainerButtonLabel, i18nMeansOfTransport, i18nNew, i18nNextDay, i18nNextMonth, i18nNextPage, i18nNextSlide, i18nNextYear, i18nNextYearRange, i18nOccupancy, i18nOptional, i18nPage, i18nPaginatorOf, i18nPaginatorSelected, i18nPreviousDay, i18nPreviousMonth, i18nPreviousPage, i18nPreviousSlide, i18nPreviousYear, i18nPreviousYearRange, i18nRealTimeInfo, i18nRestaurantWagonLabel, i18nReverseCard, i18nSector, i18nSectorShort, i18nSelectNextDay, i18nSelectPreviousDay, i18nSelectionRequired, i18nShowCalendar, i18nSleepingWagonLabel, i18nSlide, i18nSupersaver, i18nTargetOpensInNewWindow, i18nTimeInputChange, i18nTimeInvalid, i18nTimeMax, i18nTimeMaxLength, i18nTimetableFormSwapButtonLabel, i18nToday, i18nTrain, i18nTrains, i18nTransferProcedure, i18nTransferProcedures, i18nTravelhints, i18nTripDuration, i18nTripQuayChange, i18nWagonLabel, i18nWagonLabelNumber, i18nWagonsLabel, i18nWalkingDistanceArrival, i18nWalkingDistanceDeparture, i18nYearMonthSelection } from "./i18n/i18n.js";
|
|
2
2
|
export {
|
|
3
3
|
i18nAdditionalWagonInformationHeading,
|
|
4
4
|
i18nArrival,
|
|
@@ -76,7 +76,6 @@ export {
|
|
|
76
76
|
i18nSectorShort,
|
|
77
77
|
i18nSelectNextDay,
|
|
78
78
|
i18nSelectPreviousDay,
|
|
79
|
-
i18nSelectedPage,
|
|
80
79
|
i18nSelectionRequired,
|
|
81
80
|
i18nShowCalendar,
|
|
82
81
|
i18nSleepingWagonLabel,
|
|
@@ -5,19 +5,5 @@ export type SbbIconPlacement = 'start' | 'end';
|
|
|
5
5
|
export type SbbOccupancy = 'high' | 'medium' | 'low' | 'none';
|
|
6
6
|
export type SbbOrientation = 'horizontal' | 'vertical';
|
|
7
7
|
export type SbbProtectiveRoom = 'none' | 'minimal' | 'ideal';
|
|
8
|
-
export type SbbStateChange = SbbCheckedStateChange | SbbDisabledStateChange | SbbValueStateChange;
|
|
9
|
-
export type SbbTimetableAppearance = 'first-level' | 'second-level';
|
|
10
8
|
export type SbbOpenedClosedState = 'closed' | 'opening' | 'opened' | 'closing';
|
|
11
|
-
export interface SbbCheckedStateChange {
|
|
12
|
-
type: 'checked';
|
|
13
|
-
checked: boolean;
|
|
14
|
-
}
|
|
15
|
-
export interface SbbDisabledStateChange {
|
|
16
|
-
type: 'disabled';
|
|
17
|
-
disabled: boolean;
|
|
18
|
-
}
|
|
19
|
-
export interface SbbValueStateChange {
|
|
20
|
-
type: 'value';
|
|
21
|
-
value: string | null;
|
|
22
|
-
}
|
|
23
9
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/interfaces/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7D,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/interfaces/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAE7D,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC"}
|
|
@@ -11,12 +11,25 @@ declare global {
|
|
|
11
11
|
ariaOwnsElements: readonly Element[] | null;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
+
export interface SbbStateController {
|
|
15
|
+
add(value: string): this;
|
|
16
|
+
delete(value: string): boolean;
|
|
17
|
+
has(value: string): boolean;
|
|
18
|
+
toggle(value: string, force?: boolean): void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Creates a state controller for the given element.
|
|
22
|
+
* NOT INTENDED TO BE USED BY CONSUMERS!
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export declare function ɵstateController(element: Element): SbbStateController;
|
|
26
|
+
export declare function ɵstateController(element: Element | undefined | null): SbbStateController | null;
|
|
14
27
|
export interface SbbElementInternalsConstructor {
|
|
15
28
|
role?: ElementInternals['role'];
|
|
16
29
|
}
|
|
17
30
|
export declare abstract class SbbElementInternalsMixinType {
|
|
18
31
|
protected readonly internals: ElementInternals;
|
|
19
|
-
protected toggleState(
|
|
32
|
+
protected toggleState(value: string, force?: boolean): void;
|
|
20
33
|
}
|
|
21
34
|
/**
|
|
22
35
|
* Appends the given elements to the given aria value and returns the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-internals-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/element-internals-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAA2B,MAAM,KAAK,CAAC;AAIzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"element-internals-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/element-internals-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAA2B,MAAM,KAAK,CAAC;AAIzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA8D5D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,SAAS;QACjB,2BAA2B,EAAE,OAAO,GAAG,IAAI,CAAC;QAC5C,oBAAoB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAChD,uBAAuB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QACnD,mBAAmB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAC/C,wBAAwB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QACpD,sBAAsB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;QAClD,gBAAgB,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAC;KAC7C;CACF;AA2KD,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAAC;AACvE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,kBAAkB,GAAG,IAAI,CAAC;AAqCjG,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,4BAA4B;IACxD,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAC/C,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;CAC5D;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,OAAO,EAAE,GAAG,IAAI,EACpC,GAAG,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KACjC,OAAO,EAAE,GAAG,IAGd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,SAAS,OAAO,EAAE,GAAG,IAAI,EACpC,GAAG,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,KACvC,OAAO,EAAE,GAAG,IAId,CAAC;AAEF;;;GAGG;AAEH,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,EAChF,YAAY,CAAC,KACZ,mBAAmB,CAAC,4BAA4B,CAAC,GAAG,CAAC,GAAG,8BA6C1D,CAAC"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { isServer } from "lit";
|
|
2
|
-
import { SbbSlotStateController } from "../controllers.js";
|
|
3
|
-
const CustomStateSetPolyfill = isServer || !CSS.supports("selector(:state(loading))") ? class CustomStateSet extends Set {
|
|
2
|
+
import { SbbSlotStateController } from "../controllers/slot-state-controller.js";
|
|
3
|
+
const CustomStateSetPolyfill = isServer || !CSS.supports("selector(:is(:state(loading),[state--loading]))") ? class CustomStateSet extends Set {
|
|
4
4
|
constructor(_host) {
|
|
5
5
|
super();
|
|
6
6
|
this._host = _host;
|
|
7
|
+
this._applied = isServer;
|
|
7
8
|
this._host.addController(this);
|
|
9
|
+
if (!isServer) {
|
|
10
|
+
Promise.resolve().then(() => this._applyStates());
|
|
11
|
+
}
|
|
8
12
|
}
|
|
9
13
|
add(state) {
|
|
10
|
-
if (this.
|
|
14
|
+
if (this._applied) {
|
|
11
15
|
this._toggleState(state, true);
|
|
12
16
|
}
|
|
13
17
|
return super.add(state);
|
|
@@ -20,11 +24,18 @@ const CustomStateSetPolyfill = isServer || !CSS.supports("selector(:state(loadin
|
|
|
20
24
|
this.forEach((state) => this.delete(state));
|
|
21
25
|
}
|
|
22
26
|
hostConnected() {
|
|
23
|
-
this.
|
|
27
|
+
this._applyStates();
|
|
24
28
|
}
|
|
25
29
|
_toggleState(state, enabled) {
|
|
26
30
|
this._host.toggleAttribute(`state--${state}`, enabled);
|
|
27
31
|
}
|
|
32
|
+
_applyStates() {
|
|
33
|
+
if (this._applied) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this._applied = true;
|
|
37
|
+
this.forEach((state) => this._toggleState(state, true));
|
|
38
|
+
}
|
|
28
39
|
} : null;
|
|
29
40
|
if (!isServer) {
|
|
30
41
|
let nextId = 0;
|
|
@@ -136,6 +147,41 @@ if (!isServer) {
|
|
|
136
147
|
}
|
|
137
148
|
}
|
|
138
149
|
}
|
|
150
|
+
const attachedElementInternals = /* @__PURE__ */ new WeakMap();
|
|
151
|
+
function ɵstateController(element) {
|
|
152
|
+
if (!element) {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
const states = attachedElementInternals.get(element)?.states;
|
|
156
|
+
const toggle = function(value, force) {
|
|
157
|
+
if (force || force !== false && !this.has(value)) {
|
|
158
|
+
this.add(value);
|
|
159
|
+
} else {
|
|
160
|
+
this.delete(value);
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
if (states) {
|
|
164
|
+
return {
|
|
165
|
+
add(value) {
|
|
166
|
+
states.add(value);
|
|
167
|
+
return this;
|
|
168
|
+
},
|
|
169
|
+
delete: (value) => states.delete(value),
|
|
170
|
+
has: (value) => states.has(value),
|
|
171
|
+
toggle
|
|
172
|
+
};
|
|
173
|
+
} else {
|
|
174
|
+
return {
|
|
175
|
+
add(value) {
|
|
176
|
+
element.toggleAttribute(`state--${value}`, true);
|
|
177
|
+
return this;
|
|
178
|
+
},
|
|
179
|
+
delete: (value) => element.toggleAttribute(`state--${value}`, false),
|
|
180
|
+
has: (value) => element.hasAttribute(`state--${value}`),
|
|
181
|
+
toggle
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
139
185
|
const appendAriaElements = (ariaValue, ...newElements) => {
|
|
140
186
|
const elements = newElements.filter((v) => !!v);
|
|
141
187
|
return ariaValue?.length ? ariaValue.concat(elements) : newElements.length ? elements : null;
|
|
@@ -150,6 +196,7 @@ const SbbElementInternalsMixin = (superClass) => {
|
|
|
150
196
|
constructor(...args) {
|
|
151
197
|
super(...args);
|
|
152
198
|
this.internals = this.attachInternals();
|
|
199
|
+
attachedElementInternals.set(this, this.internals);
|
|
153
200
|
if (CustomStateSetPolyfill) {
|
|
154
201
|
Object.defineProperty(this.internals, "states", {
|
|
155
202
|
value: new CustomStateSetPolyfill(this),
|
|
@@ -169,11 +216,11 @@ const SbbElementInternalsMixin = (superClass) => {
|
|
|
169
216
|
}
|
|
170
217
|
this.addController(new SbbSlotStateController(this, this.internals));
|
|
171
218
|
}
|
|
172
|
-
toggleState(
|
|
173
|
-
if (force || force !== false && !this.internals.states.has(
|
|
174
|
-
this.internals.states.add(
|
|
219
|
+
toggleState(value, force) {
|
|
220
|
+
if (force || force !== false && !this.internals.states.has(value)) {
|
|
221
|
+
this.internals.states.add(value);
|
|
175
222
|
} else {
|
|
176
|
-
this.internals.states.delete(
|
|
223
|
+
this.internals.states.delete(value);
|
|
177
224
|
}
|
|
178
225
|
}
|
|
179
226
|
}
|
|
@@ -182,6 +229,7 @@ const SbbElementInternalsMixin = (superClass) => {
|
|
|
182
229
|
export {
|
|
183
230
|
SbbElementInternalsMixin,
|
|
184
231
|
appendAriaElements,
|
|
185
|
-
removeAriaElements
|
|
232
|
+
removeAriaElements,
|
|
233
|
+
ɵstateController
|
|
186
234
|
};
|
|
187
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9lbGVtZW50LWludGVybmFscy1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy50cyc7XG5cbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb25zdHJ1Y3RvciB9IGZyb20gJy4vY29uc3RydWN0b3IudHMnO1xuXG4vLyBNb3N0IG9mIG91ciB0YXJnZXQgYnJvd3NlcnMgc3VwcG9ydCB0aGUgOnN0YXRlKCkgcHNldWRvIGNsYXNzLCBidXQgbm90IGFsbCBvZiB0aGVtLlxuLy8gV2UgcGF0Y2ggdGhlIHN0YXRlcyBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBpbnRlcm5hbHMgdG8gdXNlIGF0dHJpYnV0ZXMgaW5zdGVhZCxcbi8vIGlmIDpzdGF0ZSgpIGlzIG5vdCBzdXBwb3J0ZWQuXG4vLyBOb3RlIHRoYXQgZm9yIFNTUiwgdGhlIHN0YXRlcyBwcm9wZXJ0eSBpcyBhIHNpbXBsZSBTZXQsIGltcGxlbWVudGVkIGluIExpdCBTU1IuXG4vLyBUT0RPOiBSZW1vdmUgaW4gMjAyNi5cbnR5cGUgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UgPSBDdXN0b21TdGF0ZVNldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IEN1c3RvbVN0YXRlU2V0UG9seWZpbGw6IChuZXcgKGhvc3Q6IExpdEVsZW1lbnQpID0+IEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlKSB8IG51bGwgPVxuICBpc1NlcnZlciB8fCAhQ1NTLnN1cHBvcnRzKCdzZWxlY3Rvcig6c3RhdGUobG9hZGluZykpJylcbiAgICA/IGNsYXNzIEN1c3RvbVN0YXRlU2V0XG4gICAgICAgIGV4dGVuZHMgU2V0PHN0cmluZz5cbiAgICAgICAgaW1wbGVtZW50cyBDdXN0b21TdGF0ZVNldEludGVyZmFjZSwgUmVhY3RpdmVDb250cm9sbGVyXG4gICAgICB7XG4gICAgICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBMaXRFbGVtZW50KSB7XG4gICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgYWRkKHN0YXRlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgICBpZiAodGhpcy5faG9zdC5pc0Nvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc3VwZXIuYWRkKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBkZWxldGUoc3RhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICAgIHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCBmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgY2xlYXIoKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5mb3JFYWNoKChzdGF0ZSkgPT4gdGhpcy5kZWxldGUoc3RhdGUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBob3N0Q29ubmVjdGVkKCk6IHZvaWQge1xuICAgICAgICAgIHRoaXMuZm9yRWFjaCgoc3RhdGUpID0+IHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCB0cnVlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF90b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5faG9zdC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3N0YXRlfWAsIGVuYWJsZWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiBudWxsO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBBUklBTWl4aW4ge1xuICAgIGFyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudDogRWxlbWVudCB8IG51bGw7XG4gICAgYXJpYUNvbnRyb2xzRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYURlc2NyaWJlZEJ5RWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYURldGFpbHNFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gICAgYXJpYUxhYmVsbGVkQnlFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhT3duc0VsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICB9XG59XG5cbmlmICghaXNTZXJ2ZXIpIHtcbiAgLy8gVGhpcyBpcyBhIHBvbHlmaWxsIGZvciB0aGUgYXJpYSBlbGVtZW50cyBwcm9wZXJ0aWVzIG9uIEVsZW1lbnRJbnRlcm5hbHMgYW5kIEVsZW1lbnQuXG4gIGxldCBuZXh0SWQgPSAwO1xuICBjb25zdCByZXNvbHZlSG9zdCA9IChvcmlnaW46IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50KTogRWxlbWVudCA9PlxuICAgIG9yaWdpbi5zaGFkb3dSb290Py5ob3N0ID8/XG4gICAgKG9yaWdpbiBpbnN0YW5jZW9mIEVsZW1lbnRcbiAgICAgID8gb3JpZ2luXG4gICAgICA6ICgoKSA9PiB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gcmVzb2x2ZSByZWxhdGVkIGVsZW1lbnQhIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4nKTtcbiAgICAgICAgfSkoKSk7XG4gIGNvbnN0IG9ic2VydmVyT3B0aW9uczogTXV0YXRpb25PYnNlcnZlckluaXQgPSB7IGF0dHJpYnV0ZXM6IHRydWUsIGF0dHJpYnV0ZUZpbHRlcjogWydpZCddIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnQgPSAoXG4gICAgaG9zdDogRWxlbWVudCxcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyxcbiAgICBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudD4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB0aGUgZWxlbWVudCByZWZlcmVuY2UgZnJvbSBFbGVtZW50IGhhcyBwcmlvcml0eS5cbiAgICBjb25zdCBhY3RpdmVFbGVtZW50ID0gZWxlbWVudHNbRWxlbWVudC5uYW1lXSA/PyBlbGVtZW50c1tFbGVtZW50SW50ZXJuYWxzLm5hbWVdO1xuICAgIGhvc3Quc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgKGFjdGl2ZUVsZW1lbnQuaWQgfHw9IGBhcmlhLXJlZi0ke25leHRJZCsrfWApKTtcbiAgfTtcbiAgY29uc3QgYXNzaWduRWxlbWVudHMgPSAoXG4gICAgaG9zdDogRWxlbWVudCxcbiAgICBhdHRyaWJ1dGU6IHN0cmluZyxcbiAgICBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPixcbiAgKTogdm9pZCA9PiB7XG4gICAgLy8gSW4gY2FzZSBib3RoIEVsZW1lbnQgYW5kIEVsZW1lbnRJbnRlcm5hbHMgcHJvcGVydGllcyBhcmUgc2V0LFxuICAgIC8vIHdlIGNvbWJpbmUgdGhlIGVsZW1lbnQgcmVmZXJlbmNlcy5cbiAgICBob3N0LnNldEF0dHJpYnV0ZShcbiAgICAgIGF0dHJpYnV0ZSxcbiAgICAgIE9iamVjdC52YWx1ZXMoZWxlbWVudHMpXG4gICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpXG4gICAgICAgIC5tYXAoKGUpID0+IGUuaWQgfHwgKGUuaWQgPSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSlcbiAgICAgICAgLmpvaW4oJyAnKSxcbiAgICApO1xuICB9O1xuXG4gIGZvciAoY29uc3QgdHlwZSBvZiBbRWxlbWVudEludGVybmFscywgRWxlbWVudF0pIHtcbiAgICBjb25zdCBwcm90b3R5cGUgPSB0eXBlLnByb3RvdHlwZTtcbiAgICBpZiAoISgnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50JyBpbiBwcm90b3R5cGUpKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSAnYXJpYS1hY3RpdmVkZXNjZW5kYW50JztcbiAgICAgIGNvbnN0IHN0b3JhZ2UgPSBuZXcgV2Vha01hcDxcbiAgICAgICAgRWxlbWVudCxcbiAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudD47IG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIH1cbiAgICAgID4oKTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90b3R5cGUsICdhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQnLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50KTogRWxlbWVudCB8IG51bGwge1xuICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICBjb25zdCBpZCA9IGhvc3QuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk/LnNwbGl0KC9cXHMrLylbMF0gPz8gbnVsbDtcbiAgICAgICAgICByZXR1cm4gaWRcbiAgICAgICAgICAgID8gKChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSA/PyBudWxsKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9LFxuICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50IHwgbnVsbCkge1xuICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiAhKHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gc2V0IHRoZSAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICBjb25zdCBlbnRyeSA9IHN0b3JhZ2UuZ2V0KGhvc3QpO1xuICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKGVudHJ5KS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBzdG9yYWdlLmRlbGV0ZShob3N0KTtcbiAgICAgICAgICAgICAgICBob3N0LnJlbW92ZUF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cylbMF0sIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgIGFzc2lnbkVsZW1lbnQoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IGFzc2lnbkVsZW1lbnQoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cykpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZSh2YWx1ZSwgb2JzZXJ2ZXJPcHRpb25zKTtcbiAgICAgICAgICAgIHN0b3JhZ2Uuc2V0KGhvc3QsIHsgZWxlbWVudHMsIG9ic2VydmVyIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cykuZm9yRWFjaCgoZSkgPT5cbiAgICAgICAgICAgICAgZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIFtcbiAgICAgICdhcmlhQ29udHJvbHNFbGVtZW50cycsXG4gICAgICAnYXJpYURlc2NyaWJlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXRhaWxzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFFcnJvck1lc3NhZ2VFbGVtZW50cycsXG4gICAgICAnYXJpYUxhYmVsbGVkQnlFbGVtZW50cycsXG4gICAgICAnYXJpYU93bnNFbGVtZW50cycsXG4gICAgXSkge1xuICAgICAgaWYgKCEocHJvcGVydHkgaW4gcHJvdG90eXBlKSkge1xuICAgICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgICAgRWxlbWVudCxcbiAgICAgICAgICB7IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICAgID4oKTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlID0gYGFyaWEtJHtwcm9wZXJ0eS5zbGljZSg0LCAtOCkudG9Mb3dlckNhc2UoKX1gO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCBwcm9wZXJ0eSwge1xuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGwge1xuICAgICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudHMgPSBob3N0XG4gICAgICAgICAgICAgIC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKVxuICAgICAgICAgICAgICA/LnNwbGl0KC9cXHMrLylcbiAgICAgICAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAgICAgICAubWFwKChpZCkgPT4gKGhvc3QuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmdldEVsZW1lbnRCeUlkPy4oaWQpKVxuICAgICAgICAgICAgICAuZmlsdGVyKChlKSA9PiBlIGluc3RhbmNlb2YgRWxlbWVudCk7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudHM/Lmxlbmd0aCA/IE9iamVjdC5mcmVlemUoZWxlbWVudHMpIDogbnVsbDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCwgdmFsdWU6IEVsZW1lbnRbXSkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAoIUFycmF5LmlzQXJyYXkodmFsdWUpIHx8IHZhbHVlLnNvbWUoKGVsZW1lbnQpID0+ICEoZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gc2V0IHRoZSAnJHtwcm9wZXJ0eX0nIHByb3BlcnR5IG9uICcke3R5cGUubmFtZX0nOiBGYWlsZWQgdG8gY29udmVydCB2YWx1ZSB0byAnRWxlbWVudCcuYCxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZT8uZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpID8/IG51bGw7XG4gICAgICAgICAgICBjb25zdCBlbnRyeSA9IHN0b3JhZ2UuZ2V0KGhvc3QpO1xuICAgICAgICAgICAgZW50cnk/Lm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgaWYgKGVudHJ5KSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV07XG4gICAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeS5lbGVtZW50cykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICBzdG9yYWdlLmRlbGV0ZShob3N0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cylcbiAgICAgICAgICAgICAgICAgICAgLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5jb25jYXQobmV4dCkpXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgICAgY29uc3QgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4gPSB7IFt0eXBlLm5hbWVdOiB2YWx1ZSB9O1xuICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PlxuICAgICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChlbGVtZW50KSA9PiBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbnRyeS5lbGVtZW50cyk7XG4gICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5jb25jYXQobmV4dCkpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGUpID0+IGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiRWxlbWVudEludGVybmFsc0NvbnN0cnVjdG9yIHtcbiAgcm9sZT86IEVsZW1lbnRJbnRlcm5hbHNbJ3JvbGUnXTtcbn1cblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRWxlbWVudEludGVybmFsc01peGluVHlwZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbnRlcm5hbHM6IEVsZW1lbnRJbnRlcm5hbHM7XG4gIHByb3RlY3RlZCB0b2dnbGVTdGF0ZShzdGF0ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKipcbiAqIEFwcGVuZHMgdGhlIGdpdmVuIGVsZW1lbnRzIHRvIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zIHRoZVxuICogY29tYmluZWQgdmFsdWUgYXMgYSBuZXcgYXJyYXkgb3IgbnVsbCwgaWYgYm90aCB2YWx1ZXMgd2VyZSBlbXB0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IGFwcGVuZEFyaWFFbGVtZW50cyA9IChcbiAgYXJpYVZhbHVlOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsLFxuICAuLi5uZXdFbGVtZW50czogKEVsZW1lbnQgfCBudWxsKVtdXG4pOiBFbGVtZW50W10gfCBudWxsID0+IHtcbiAgY29uc3QgZWxlbWVudHMgPSBuZXdFbGVtZW50cy5maWx0ZXIoKHYpOiB2IGlzIEVsZW1lbnQgPT4gISF2KTtcbiAgcmV0dXJuIGFyaWFWYWx1ZT8ubGVuZ3RoID8gYXJpYVZhbHVlLmNvbmNhdChlbGVtZW50cykgOiBuZXdFbGVtZW50cy5sZW5ndGggPyBlbGVtZW50cyA6IG51bGw7XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgdGhlIGdpdmVuIGVsZW1lbnRzIGZyb20gdGhlIGdpdmVuIGFyaWEgdmFsdWUgYW5kIHJldHVybnNcbiAqIHRoZSByZW1haW5pbmcgZWxlbWVudHMgYXMgYSBuZXcgYXJyYXkgb3IgbnVsbCwgaWYgdGhlIHJlc3VsdCBpcyBlbXB0eS5cbiAqL1xuZXhwb3J0IGNvbnN0IHJlbW92ZUFyaWFFbGVtZW50cyA9IChcbiAgYXJpYVZhbHVlOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsLFxuICAuLi5yZW1vdmFibGVFbGVtZW50czogKEVsZW1lbnQgfCBudWxsKVtdXG4pOiBFbGVtZW50W10gfCBudWxsID0+IHtcbiAgcmVtb3ZhYmxlRWxlbWVudHMgPSByZW1vdmFibGVFbGVtZW50cy5maWx0ZXIoKHYpID0+ICEhdik7XG4gIGNvbnN0IGVsZW1lbnRzID0gYXJpYVZhbHVlPy5maWx0ZXIoKHYpID0+ICFyZW1vdmFibGVFbGVtZW50cy5pbmNsdWRlcyh2KSkgPz8gbnVsbDtcbiAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBlbGVtZW50cyA6IG51bGw7XG59O1xuXG4vKipcbiAqIFRoZSBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gYXR0YWNoZXMgRWxlbWVudEludGVybmFscyB0byB0aGUgZWxlbWVudCBhbmQgc2V0c1xuICogdGhlIHJvbGUsIGlmIGRlZmluZWQuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW4gPSA8VCBleHRlbmRzIEFic3RyYWN0Q29uc3RydWN0b3I8TGl0RWxlbWVudD4+KFxuICBzdXBlckNsYXNzOiBULFxuKTogQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlPiAmIFQgJiBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IgPT4ge1xuICBhYnN0cmFjdCBjbGFzcyBTYmJFbGVtZW50SW50ZXJuYWxFbGVtZW50XG4gICAgZXh0ZW5kcyBzdXBlckNsYXNzXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+XG4gIHtcbiAgICAvKiogQGludGVybmFsICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgICAgaWYgKEN1c3RvbVN0YXRlU2V0UG9seWZpbGwpIHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuaW50ZXJuYWxzLCAnc3RhdGVzJywge1xuICAgICAgICAgIHZhbHVlOiBuZXcgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbCh0aGlzKSxcbiAgICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSB1c2UgdGhlIEN1c3RvbVN0YXRlU2V0IHBvbHlmaWxsIGluIFNTUiwgd2hpY2ggcmVuZGVycyB0aGUgc3RhdGUgYXMgYXR0cmlidXRlc1xuICAgICAgICAvLyB3aGljaCBjYW4gYmUgdHJhbnNmZXJyZWQgdG8gY2xpZW50IHNpZGUsIHdoZXJlIHdlIGNhbiB0aGVuIGNvbnZlcnQgW3N0YXRlLS0qXVxuICAgICAgICAvLyBhdHRyaWJ1dGVzIHRvIGludGVybmFsIHN0YXRlLlxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5nZXRBdHRyaWJ1dGVOYW1lcygpLmZpbHRlcigobikgPT4gbi5zdGFydHNXaXRoKCdzdGF0ZS0tJykpKSB7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChuYW1lLnNsaWNlKDcpKTtcbiAgICAgICAgICB0aGlzLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgcm9sZSA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcikucm9sZTtcbiAgICAgIGlmIChyb2xlKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnJvbGUgPSByb2xlO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb250cm9sbGVyKG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMsIHRoaXMuaW50ZXJuYWxzKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHRvZ2dsZVN0YXRlKHN0YXRlOiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgaWYgKGZvcmNlIHx8IChmb3JjZSAhPT0gZmFsc2UgJiYgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoc3RhdGUpKSkge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHN0YXRlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoc3RhdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiRWxlbWVudEludGVybmFsRWxlbWVudCBhcyB1bmtub3duIGFzIEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT4gJlxuICAgIFQgJlxuICAgIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3Rvcjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSxNQUFNLHlCQUNKLFlBQVksQ0FBQyxJQUFJLFNB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
|
|
235
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC1pbnRlcm5hbHMtbWl4aW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9lbGVtZW50LWludGVybmFscy1taXhpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NlcnZlciwgdHlwZSBMaXRFbGVtZW50LCB0eXBlIFJlYWN0aXZlQ29udHJvbGxlciB9IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb250cm9sbGVycy9zbG90LXN0YXRlLWNvbnRyb2xsZXIudHMnO1xuXG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0Q29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cnVjdG9yLnRzJztcblxuLy8gTW9zdCBvZiBvdXIgdGFyZ2V0IGJyb3dzZXJzIHN1cHBvcnQgdGhlIDpzdGF0ZSgpIHBzZXVkbyBjbGFzcywgYnV0IG5vdCBhbGwgb2YgdGhlbS5cbi8vIFdlIHBhdGNoIHRoZSBzdGF0ZXMgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgaW50ZXJuYWxzIHRvIHVzZSBhdHRyaWJ1dGVzIGluc3RlYWQsXG4vLyBpZiA6c3RhdGUoKSBpcyBub3Qgc3VwcG9ydGVkLlxuLy8gTm90ZSB0aGF0IGZvciBTU1IsIHRoZSBzdGF0ZXMgcHJvcGVydHkgaXMgYSBzaW1wbGUgU2V0LCBpbXBsZW1lbnRlZCBpbiBMaXQgU1NSLlxuLy8gV2ViS2l0IHNlZW1zIHRvIGhhdmUgc3RhdGUgZGV0ZWN0aW9uIHByb2JsZW1zLCBzbyB3ZSBlbmFibGUgdGhlIHBvbHlmaWxsIGZvciBub3cuXG4vLyBUT0RPOiBSZWNoZWNrIGVuYWJsaW5nIGJ5IHRlc3Rpbmcgc2JiLWF1dG9jb21wbGV0ZSB3aGV0aGVyIGl0IHJlbGlhYmx5IG9wZW5zIGluIFNhZmFyaVxudHlwZSBDdXN0b21TdGF0ZVNldEludGVyZmFjZSA9IEN1c3RvbVN0YXRlU2V0O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuY29uc3QgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbDogKG5ldyAoaG9zdDogTGl0RWxlbWVudCkgPT4gQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UpIHwgbnVsbCA9XG4gIGlzU2VydmVyIHx8ICFDU1Muc3VwcG9ydHMoJ3NlbGVjdG9yKDpzdGF0ZShsb2FkaW5nKSknKVxuICAgID8gY2xhc3MgQ3VzdG9tU3RhdGVTZXRcbiAgICAgICAgZXh0ZW5kcyBTZXQ8c3RyaW5nPlxuICAgICAgICBpbXBsZW1lbnRzIEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlLCBSZWFjdGl2ZUNvbnRyb2xsZXJcbiAgICAgIHtcbiAgICAgICAgcHJpdmF0ZSBfYXBwbGllZCA9IGlzU2VydmVyO1xuXG4gICAgICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiBMaXRFbGVtZW50KSB7XG4gICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICB0aGlzLl9ob3N0LmFkZENvbnRyb2xsZXIodGhpcyk7XG4gICAgICAgICAgaWYgKCFpc1NlcnZlcikge1xuICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBhcHBseSB0aGUgYXR0cmlidXRlcyBhcyBlYXJseSBhcyBwb3NzaWJsZSB3aGljaCBjYW5cbiAgICAgICAgICAgIC8vIGVpdGhlciBiZSB2aWEgdGhpcyBQcm9taXNlLnJlc29sdmUoKSBvciB0aGUgY29ubmVjdGVkQ2FsbGJhY2soKS5cbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5fYXBwbHlTdGF0ZXMoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGFkZChzdGF0ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgICAgaWYgKHRoaXMuX2FwcGxpZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHN1cGVyLmFkZChzdGF0ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgZGVsZXRlKHN0YXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgICB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgZmFsc2UpO1xuICAgICAgICAgIHJldHVybiBzdXBlci5kZWxldGUoc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICAgIHRoaXMuZm9yRWFjaCgoc3RhdGUpID0+IHRoaXMuZGVsZXRlKHN0YXRlKSk7XG4gICAgICAgIH1cblxuICAgICAgICBwdWJsaWMgaG9zdENvbm5lY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLl9hcHBseVN0YXRlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHJpdmF0ZSBfdG9nZ2xlU3RhdGUoc3RhdGU6IHN0cmluZywgZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAgIHRoaXMuX2hvc3QudG9nZ2xlQXR0cmlidXRlKGBzdGF0ZS0tJHtzdGF0ZX1gLCBlbmFibGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaXZhdGUgX2FwcGx5U3RhdGVzKCk6IHZvaWQge1xuICAgICAgICAgIGlmICh0aGlzLl9hcHBsaWVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2FwcGxpZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZm9yRWFjaCgoc3RhdGUpID0+IHRoaXMuX3RvZ2dsZVN0YXRlKHN0YXRlLCB0cnVlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA6IG51bGw7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEFSSUFNaXhpbiB7XG4gICAgYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50OiBFbGVtZW50IHwgbnVsbDtcbiAgICBhcmlhQ29udHJvbHNFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhRGVzY3JpYmVkQnlFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhRGV0YWlsc0VsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFFcnJvck1lc3NhZ2VFbGVtZW50czogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbDtcbiAgICBhcmlhTGFiZWxsZWRCeUVsZW1lbnRzOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsO1xuICAgIGFyaWFPd25zRWxlbWVudHM6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGw7XG4gIH1cbn1cblxuaWYgKCFpc1NlcnZlcikge1xuICAvLyBUaGlzIGlzIGEgcG9seWZpbGwgZm9yIHRoZSBhcmlhIGVsZW1lbnRzIHByb3BlcnRpZXMgb24gRWxlbWVudEludGVybmFscyBhbmQgRWxlbWVudC5cbiAgbGV0IG5leHRJZCA9IDA7XG4gIGNvbnN0IHJlc29sdmVIb3N0ID0gKG9yaWdpbjogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiBFbGVtZW50ID0+XG4gICAgb3JpZ2luLnNoYWRvd1Jvb3Q/Lmhvc3QgPz9cbiAgICAob3JpZ2luIGluc3RhbmNlb2YgRWxlbWVudFxuICAgICAgPyBvcmlnaW5cbiAgICAgIDogKCgpID0+IHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byByZXNvbHZlIHJlbGF0ZWQgZWxlbWVudCEgVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuLicpO1xuICAgICAgICB9KSgpKTtcbiAgY29uc3Qgb2JzZXJ2ZXJPcHRpb25zOiBNdXRhdGlvbk9ic2VydmVySW5pdCA9IHsgYXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBbJ2lkJ10gfTtcbiAgY29uc3QgYXNzaWduRWxlbWVudCA9IChcbiAgICBob3N0OiBFbGVtZW50LFxuICAgIGF0dHJpYnV0ZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50PixcbiAgKTogdm9pZCA9PiB7XG4gICAgLy8gSW4gY2FzZSBib3RoIEVsZW1lbnQgYW5kIEVsZW1lbnRJbnRlcm5hbHMgcHJvcGVydGllcyBhcmUgc2V0LFxuICAgIC8vIHRoZSBlbGVtZW50IHJlZmVyZW5jZSBmcm9tIEVsZW1lbnQgaGFzIHByaW9yaXR5LlxuICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSBlbGVtZW50c1tFbGVtZW50Lm5hbWVdID8/IGVsZW1lbnRzW0VsZW1lbnRJbnRlcm5hbHMubmFtZV07XG4gICAgaG9zdC5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCAoYWN0aXZlRWxlbWVudC5pZCB8fD0gYGFyaWEtcmVmLSR7bmV4dElkKyt9YCkpO1xuICB9O1xuICBjb25zdCBhc3NpZ25FbGVtZW50cyA9IChcbiAgICBob3N0OiBFbGVtZW50LFxuICAgIGF0dHJpYnV0ZTogc3RyaW5nLFxuICAgIGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+LFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBJbiBjYXNlIGJvdGggRWxlbWVudCBhbmQgRWxlbWVudEludGVybmFscyBwcm9wZXJ0aWVzIGFyZSBzZXQsXG4gICAgLy8gd2UgY29tYmluZSB0aGUgZWxlbWVudCByZWZlcmVuY2VzLlxuICAgIGhvc3Quc2V0QXR0cmlidXRlKFxuICAgICAgYXR0cmlidXRlLFxuICAgICAgT2JqZWN0LnZhbHVlcyhlbGVtZW50cylcbiAgICAgICAgLnJlZHVjZSgoY3VycmVudCwgbmV4dCkgPT4gY3VycmVudC5jb25jYXQobmV4dCkpXG4gICAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSlcbiAgICAgICAgLm1hcCgoZSkgPT4gZS5pZCB8fCAoZS5pZCA9IGBhcmlhLXJlZi0ke25leHRJZCsrfWApKVxuICAgICAgICAuam9pbignICcpLFxuICAgICk7XG4gIH07XG5cbiAgZm9yIChjb25zdCB0eXBlIG9mIFtFbGVtZW50SW50ZXJuYWxzLCBFbGVtZW50XSkge1xuICAgIGNvbnN0IHByb3RvdHlwZSA9IHR5cGUucHJvdG90eXBlO1xuICAgIGlmICghKCdhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQnIGluIHByb3RvdHlwZSkpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9ICdhcmlhLWFjdGl2ZWRlc2NlbmRhbnQnO1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICBFbGVtZW50LFxuICAgICAgICB7IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50Pjsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfVxuICAgICAgPigpO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgIGNvbnN0IGlkID0gaG9zdC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKT8uc3BsaXQoL1xccysvKVswXSA/PyBudWxsO1xuICAgICAgICAgIHJldHVybiBpZFxuICAgICAgICAgICAgPyAoKGhvc3QuZ2V0Um9vdE5vZGUoKSBhcyBEb2N1bWVudCB8IFNoYWRvd1Jvb3QpLmdldEVsZW1lbnRCeUlkPy4oaWQpID8/IG51bGwpXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIH0sXG4gICAgICAgIHNldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCwgdmFsdWU6IEVsZW1lbnQgfCBudWxsKSB7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmICEodmFsdWUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgYEZhaWxlZCB0byBzZXQgdGhlICdhcmlhQWN0aXZlRGVzY2VuZGFudEVsZW1lbnQnIHByb3BlcnR5IG9uICcke3R5cGUubmFtZX0nOiBGYWlsZWQgdG8gY29udmVydCB2YWx1ZSB0byAnRWxlbWVudCcuYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaG9zdCA9IHJlc29sdmVIb3N0KHRoaXMpO1xuICAgICAgICAgIGNvbnN0IGVudHJ5ID0gc3RvcmFnZS5nZXQoaG9zdCk7XG4gICAgICAgICAgZW50cnk/Lm9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgZGVsZXRlIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV07XG4gICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHN0b3JhZ2UuZGVsZXRlKGhvc3QpO1xuICAgICAgICAgICAgICAgIGhvc3QucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVswXSwgb2JzZXJ2ZXJPcHRpb25zKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudD4gPSB7IFt0eXBlLm5hbWVdOiB2YWx1ZSB9O1xuICAgICAgICAgICAgYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4gYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKSk7XG4gICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKHZhbHVlLCBvYnNlcnZlck9wdGlvbnMpO1xuICAgICAgICAgICAgc3RvcmFnZS5zZXQoaG9zdCwgeyBlbGVtZW50cywgb2JzZXJ2ZXIgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVudHJ5LmVsZW1lbnRzW3R5cGUubmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIGFzc2lnbkVsZW1lbnQoaG9zdCwgYXR0cmlidXRlLCBlbnRyeS5lbGVtZW50cyk7XG4gICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKS5mb3JFYWNoKChlKSA9PlxuICAgICAgICAgICAgICBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucyksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgW1xuICAgICAgJ2FyaWFDb250cm9sc0VsZW1lbnRzJyxcbiAgICAgICdhcmlhRGVzY3JpYmVkQnlFbGVtZW50cycsXG4gICAgICAnYXJpYURldGFpbHNFbGVtZW50cycsXG4gICAgICAnYXJpYUVycm9yTWVzc2FnZUVsZW1lbnRzJyxcbiAgICAgICdhcmlhTGFiZWxsZWRCeUVsZW1lbnRzJyxcbiAgICAgICdhcmlhT3duc0VsZW1lbnRzJyxcbiAgICBdKSB7XG4gICAgICBpZiAoIShwcm9wZXJ0eSBpbiBwcm90b3R5cGUpKSB7XG4gICAgICAgIGNvbnN0IHN0b3JhZ2UgPSBuZXcgV2Vha01hcDxcbiAgICAgICAgICBFbGVtZW50LFxuICAgICAgICAgIHsgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT47IG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyIH1cbiAgICAgICAgPigpO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGUgPSBgYXJpYS0ke3Byb3BlcnR5LnNsaWNlKDQsIC04KS50b0xvd2VyQ2FzZSgpfWA7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90b3R5cGUsIHByb3BlcnR5LCB7XG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgZ2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50KTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCB7XG4gICAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IGhvc3RcbiAgICAgICAgICAgICAgLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpXG4gICAgICAgICAgICAgID8uc3BsaXQoL1xccysvKVxuICAgICAgICAgICAgICAuZmlsdGVyKCh2LCBpLCBhKSA9PiBhLmluZGV4T2YodikgPT09IGkpXG4gICAgICAgICAgICAgIC5tYXAoKGlkKSA9PiAoaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQ/LihpZCkpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGUpID0+IGUgaW5zdGFuY2VvZiBFbGVtZW50KTtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50cz8ubGVuZ3RoID8gT2JqZWN0LmZyZWV6ZShlbGVtZW50cykgOiBudWxsO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50LCB2YWx1ZTogRWxlbWVudFtdKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHZhbHVlICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICghQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgdmFsdWUuc29tZSgoZWxlbWVudCkgPT4gIShlbGVtZW50IGluc3RhbmNlb2YgRWxlbWVudCkpKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgICAgICAgYEZhaWxlZCB0byBzZXQgdGhlICcke3Byb3BlcnR5fScgcHJvcGVydHkgb24gJyR7dHlwZS5uYW1lfSc6IEZhaWxlZCB0byBjb252ZXJ0IHZhbHVlIHRvICdFbGVtZW50Jy5gLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlPy5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSkgPz8gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gc3RvcmFnZS5nZXQoaG9zdCk7XG4gICAgICAgICAgICBlbnRyeT8ub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICBpZiAoZW50cnkpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXTtcbiAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5rZXlzKGVudHJ5LmVsZW1lbnRzKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgIHN0b3JhZ2UuZGVsZXRlKGhvc3QpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVxuICAgICAgICAgICAgICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goKGUpID0+IGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFlbnRyeSkge1xuICAgICAgICAgICAgICBjb25zdCBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPiA9IHsgW3R5cGUubmFtZV06IHZhbHVlIH07XG4gICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+XG4gICAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKGVsZW1lbnQpID0+IG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCwgb2JzZXJ2ZXJPcHRpb25zKSk7XG4gICAgICAgICAgICAgIHN0b3JhZ2Uuc2V0KGhvc3QsIHsgZWxlbWVudHMsIG9ic2VydmVyIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVudHJ5LmVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgT2JqZWN0LnZhbHVlcyhlbnRyeS5lbGVtZW50cylcbiAgICAgICAgICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuY29uc3QgYXR0YWNoZWRFbGVtZW50SW50ZXJuYWxzID0gbmV3IFdlYWtNYXA8RWxlbWVudCwgRWxlbWVudEludGVybmFscz4oKTtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJTdGF0ZUNvbnRyb2xsZXIge1xuICBhZGQodmFsdWU6IHN0cmluZyk6IHRoaXM7XG4gIGRlbGV0ZSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbjtcbiAgaGFzKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuO1xuICB0b2dnbGUodmFsdWU6IHN0cmluZywgZm9yY2U/OiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGEgc3RhdGUgY29udHJvbGxlciBmb3IgdGhlIGdpdmVuIGVsZW1lbnQuXG4gKiBOT1QgSU5URU5ERUQgVE8gQkUgVVNFRCBCWSBDT05TVU1FUlMhXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIMm1c3RhdGVDb250cm9sbGVyKGVsZW1lbnQ6IEVsZW1lbnQpOiBTYmJTdGF0ZUNvbnRyb2xsZXI7XG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGwpOiBTYmJTdGF0ZUNvbnRyb2xsZXIgfCBudWxsO1xuZXhwb3J0IGZ1bmN0aW9uIMm1c3RhdGVDb250cm9sbGVyKGVsZW1lbnQ6IEVsZW1lbnQgfCB1bmRlZmluZWQgfCBudWxsKTogU2JiU3RhdGVDb250cm9sbGVyIHwgbnVsbCB7XG4gIGlmICghZWxlbWVudCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IHN0YXRlcyA9IGF0dGFjaGVkRWxlbWVudEludGVybmFscy5nZXQoZWxlbWVudCk/LnN0YXRlcztcbiAgY29uc3QgdG9nZ2xlOiBTYmJTdGF0ZUNvbnRyb2xsZXJbJ3RvZ2dsZSddID0gZnVuY3Rpb24gKHRoaXM6IFNiYlN0YXRlQ29udHJvbGxlciwgdmFsdWUsIGZvcmNlKSB7XG4gICAgaWYgKGZvcmNlIHx8IChmb3JjZSAhPT0gZmFsc2UgJiYgIXRoaXMuaGFzKHZhbHVlKSkpIHtcbiAgICAgIHRoaXMuYWRkKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWxldGUodmFsdWUpO1xuICAgIH1cbiAgfTtcbiAgaWYgKHN0YXRlcykge1xuICAgIHJldHVybiB7XG4gICAgICBhZGQodmFsdWUpIHtcbiAgICAgICAgc3RhdGVzLmFkZCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfSxcbiAgICAgIGRlbGV0ZTogKHZhbHVlKSA9PiBzdGF0ZXMuZGVsZXRlKHZhbHVlKSxcbiAgICAgIGhhczogKHZhbHVlKSA9PiBzdGF0ZXMuaGFzKHZhbHVlKSxcbiAgICAgIHRvZ2dsZSxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIC8vIElmIG5vIEVsZW1lbnRJbnRlcm5hbHMgaXMgYXR0YWNoZWQsIHdlIGZhbGwgYmFjayB0byB1c2luZyBhdHRyaWJ1dGVzLiBFLmcuIGZvciB0cmlnZ2Vycy5cbiAgICByZXR1cm4ge1xuICAgICAgYWRkKHZhbHVlKSB7XG4gICAgICAgIGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKGBzdGF0ZS0tJHt2YWx1ZX1gLCB0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgZGVsZXRlOiAodmFsdWUpID0+IGVsZW1lbnQudG9nZ2xlQXR0cmlidXRlKGBzdGF0ZS0tJHt2YWx1ZX1gLCBmYWxzZSksXG4gICAgICBoYXM6ICh2YWx1ZSkgPT4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWApLFxuICAgICAgdG9nZ2xlLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3Ige1xuICByb2xlPzogRWxlbWVudEludGVybmFsc1sncm9sZSddO1xufVxuXG5leHBvcnQgZGVjbGFyZSBhYnN0cmFjdCBjbGFzcyBTYmJFbGVtZW50SW50ZXJuYWxzTWl4aW5UeXBlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscztcbiAgcHJvdGVjdGVkIHRvZ2dsZVN0YXRlKHZhbHVlOiBzdHJpbmcsIGZvcmNlPzogYm9vbGVhbik6IHZvaWQ7XG59XG5cbi8qKlxuICogQXBwZW5kcyB0aGUgZ2l2ZW4gZWxlbWVudHMgdG8gdGhlIGdpdmVuIGFyaWEgdmFsdWUgYW5kIHJldHVybnMgdGhlXG4gKiBjb21iaW5lZCB2YWx1ZSBhcyBhIG5ldyBhcnJheSBvciBudWxsLCBpZiBib3RoIHZhbHVlcyB3ZXJlIGVtcHR5LlxuICovXG5leHBvcnQgY29uc3QgYXBwZW5kQXJpYUVsZW1lbnRzID0gKFxuICBhcmlhVmFsdWU6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGwsXG4gIC4uLm5ld0VsZW1lbnRzOiAoRWxlbWVudCB8IG51bGwpW11cbik6IEVsZW1lbnRbXSB8IG51bGwgPT4ge1xuICBjb25zdCBlbGVtZW50cyA9IG5ld0VsZW1lbnRzLmZpbHRlcigodik6IHYgaXMgRWxlbWVudCA9PiAhIXYpO1xuICByZXR1cm4gYXJpYVZhbHVlPy5sZW5ndGggPyBhcmlhVmFsdWUuY29uY2F0KGVsZW1lbnRzKSA6IG5ld0VsZW1lbnRzLmxlbmd0aCA/IGVsZW1lbnRzIDogbnVsbDtcbn07XG5cbi8qKlxuICogUmVtb3ZlcyB0aGUgZ2l2ZW4gZWxlbWVudHMgZnJvbSB0aGUgZ2l2ZW4gYXJpYSB2YWx1ZSBhbmQgcmV0dXJuc1xuICogdGhlIHJlbWFpbmluZyBlbGVtZW50cyBhcyBhIG5ldyBhcnJheSBvciBudWxsLCBpZiB0aGUgcmVzdWx0IGlzIGVtcHR5LlxuICovXG5leHBvcnQgY29uc3QgcmVtb3ZlQXJpYUVsZW1lbnRzID0gKFxuICBhcmlhVmFsdWU6IHJlYWRvbmx5IEVsZW1lbnRbXSB8IG51bGwsXG4gIC4uLnJlbW92YWJsZUVsZW1lbnRzOiAoRWxlbWVudCB8IG51bGwpW11cbik6IEVsZW1lbnRbXSB8IG51bGwgPT4ge1xuICByZW1vdmFibGVFbGVtZW50cyA9IHJlbW92YWJsZUVsZW1lbnRzLmZpbHRlcigodikgPT4gISF2KTtcbiAgY29uc3QgZWxlbWVudHMgPSBhcmlhVmFsdWU/LmZpbHRlcigodikgPT4gIXJlbW92YWJsZUVsZW1lbnRzLmluY2x1ZGVzKHYpKSA/PyBudWxsO1xuICByZXR1cm4gZWxlbWVudHM/Lmxlbmd0aCA/IGVsZW1lbnRzIDogbnVsbDtcbn07XG5cbi8qKlxuICogVGhlIFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiBhdHRhY2hlcyBFbGVtZW50SW50ZXJuYWxzIHRvIHRoZSBlbGVtZW50IGFuZCBzZXRzXG4gKiB0aGUgcm9sZSwgaWYgZGVmaW5lZC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuZXhwb3J0IGNvbnN0IFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpbiA9IDxUIGV4dGVuZHMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxMaXRFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+ICYgVCAmIFNiYkVsZW1lbnRJbnRlcm5hbHNDb25zdHJ1Y3RvciA9PiB7XG4gIGFic3RyYWN0IGNsYXNzIFNiYkVsZW1lbnRJbnRlcm5hbEVsZW1lbnRcbiAgICBleHRlbmRzIHN1cGVyQ2xhc3NcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRWxlbWVudEludGVybmFsc01peGluVHlwZT5cbiAge1xuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW50ZXJuYWxzOiBFbGVtZW50SW50ZXJuYWxzID0gdGhpcy5hdHRhY2hJbnRlcm5hbHMoKTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICBhdHRhY2hlZEVsZW1lbnRJbnRlcm5hbHMuc2V0KHRoaXMsIHRoaXMuaW50ZXJuYWxzKTtcbiAgICAgIGlmIChDdXN0b21TdGF0ZVNldFBvbHlmaWxsKSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmludGVybmFscywgJ3N0YXRlcycsIHtcbiAgICAgICAgICB2YWx1ZTogbmV3IEN1c3RvbVN0YXRlU2V0UG9seWZpbGwodGhpcyksXG4gICAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UgdXNlIHRoZSBDdXN0b21TdGF0ZVNldCBwb2x5ZmlsbCBpbiBTU1IsIHdoaWNoIHJlbmRlcnMgdGhlIHN0YXRlIGFzIGF0dHJpYnV0ZXNcbiAgICAgICAgLy8gd2hpY2ggY2FuIGJlIHRyYW5zZmVycmVkIHRvIGNsaWVudCBzaWRlLCB3aGVyZSB3ZSBjYW4gdGhlbiBjb252ZXJ0IFtzdGF0ZS0tKl1cbiAgICAgICAgLy8gYXR0cmlidXRlcyB0byBpbnRlcm5hbCBzdGF0ZS5cbiAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIHRoaXMuZ2V0QXR0cmlidXRlTmFtZXMoKS5maWx0ZXIoKG4pID0+IG4uc3RhcnRzV2l0aCgnc3RhdGUtLScpKSkge1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQobmFtZS5zbGljZSg3KSk7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbnN0IHJvbGUgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3IpLnJvbGU7XG4gICAgICBpZiAocm9sZSkge1xuICAgICAgICB0aGlzLmludGVybmFscy5yb2xlID0gcm9sZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWRkQ29udHJvbGxlcihuZXcgU2JiU2xvdFN0YXRlQ29udHJvbGxlcih0aGlzLCB0aGlzLmludGVybmFscykpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b2dnbGVTdGF0ZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgIGlmIChmb3JjZSB8fCAoZm9yY2UgIT09IGZhbHNlICYmICF0aGlzLmludGVybmFscy5zdGF0ZXMuaGFzKHZhbHVlKSkpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIFNiYkVsZW1lbnRJbnRlcm5hbEVsZW1lbnQgYXMgdW5rbm93biBhcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnRJbnRlcm5hbHNNaXhpblR5cGU+ICZcbiAgICBUICZcbiAgICBTYmJFbGVtZW50SW50ZXJuYWxzQ29uc3RydWN0b3I7XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0EsTUFBTSx5QkFDSixZQUFZLENBQUMsSUFBSSxTQUFTLGlEQUEyQixJQUNqRCxNQUFNLHVCQUNJLElBQVc7QUFBQSxFQUtuQixZQUEyQixPQUFpQjtBQUMxQyxVQUFBO0FBRHlCLFNBQUEsUUFBQTtBQUZuQixTQUFBLFdBQVc7QUFJakIsU0FBSyxNQUFNLGNBQWMsSUFBSTtBQUM3QixRQUFJLENBQUMsVUFBVTtBQUdiLGNBQVEsVUFBVSxLQUFLLE1BQU0sS0FBSyxjQUFjO0FBQUEsSUFDbEQ7QUFBQSxFQUNGO0FBQUEsRUFFZ0IsSUFBSSxPQUFhO0FBQy9CLFFBQUksS0FBSyxVQUFVO0FBQ2pCLFdBQUssYUFBYSxPQUFPLElBQUk7QUFBQSxJQUMvQjtBQUNBLFdBQU8sTUFBTSxJQUFJLEtBQUs7QUFBQSxFQUN4QjtBQUFBLEVBRWdCLE9BQU8sT0FBYTtBQUNsQyxTQUFLLGFB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
|