@dsivd/prestations-ng 14.5.20 → 15.0.0-beta3
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/CHANGELOG.md +33 -6
- package/CONTRIBUTING.md +1 -1
- package/README.md +2 -0
- package/UPGRADING_V14.md +8 -11
- package/UPGRADING_V15.md +51 -0
- package/dsivd-prestations-ng-v15.0.0-beta3.tgz +0 -0
- package/esm2020/abstract-page-component.mjs +226 -0
- package/{esm2015/directives/currency-formatter.directive.js → esm2020/directives/currency-formatter.directive.mjs} +3 -3
- package/{esm2015/directives/formatter.module.js → esm2020/directives/formatter.module.mjs} +4 -4
- package/{esm2015/directives/iban-formatter.directive.js → esm2020/directives/iban-formatter.directive.mjs} +3 -3
- package/{esm2015/directives/ide-formatter.directive.js → esm2020/directives/ide-formatter.directive.mjs} +3 -3
- package/{esm2015/directives/ndc-formatter.directive.js → esm2020/directives/ndc-formatter.directive.mjs} +3 -3
- package/{esm2015/dsivd-prestations-ng.js → esm2020/dsivd-prestations-ng.mjs} +0 -0
- package/{esm2015/foehn-address/address.type.js → esm2020/foehn-address/address.type.mjs} +0 -0
- package/{esm2015/foehn-address/foehn-address.module.js → esm2020/foehn-address/foehn-address.module.mjs} +4 -4
- package/{esm2015/foehn-address/foehn-display-address.component.js → esm2020/foehn-address/foehn-display-address.component.mjs} +5 -9
- package/esm2020/foehn-address/foehn-input-address.component.mjs +366 -0
- package/esm2020/foehn-address/foehn-input-foreign-locality.component.mjs +66 -0
- package/{esm2015/foehn-address/foehn-input-foreign-street.component.js → esm2020/foehn-address/foehn-input-foreign-street.component.mjs} +6 -11
- package/esm2020/foehn-autocomplete/foehn-autocomplete.component.mjs +548 -0
- package/{esm2015/foehn-autocomplete/foehn-autocomplete.module.js → esm2020/foehn-autocomplete/foehn-autocomplete.module.mjs} +4 -4
- package/esm2020/foehn-boolean/foehn-boolean-checkbox.component.mjs +28 -0
- package/esm2020/foehn-boolean/foehn-boolean-radio.component.mjs +37 -0
- package/{esm2015/foehn-boolean/foehn-boolean.module.js → esm2020/foehn-boolean/foehn-boolean.module.mjs} +4 -4
- package/{esm2015/foehn-breadcrumb/breadcrumb-event.service.js → esm2020/foehn-breadcrumb/breadcrumb-event.service.mjs} +10 -10
- package/{esm2015/foehn-breadcrumb/breadcrumb.js → esm2020/foehn-breadcrumb/breadcrumb.mjs} +0 -0
- package/{esm2015/foehn-breadcrumb/foehn-breadcrumb.component.js → esm2020/foehn-breadcrumb/foehn-breadcrumb.component.mjs} +5 -9
- package/{esm2015/foehn-breadcrumb/foehn-breadcrumb.module.js → esm2020/foehn-breadcrumb/foehn-breadcrumb.module.mjs} +4 -4
- package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +283 -0
- package/{esm2015/foehn-checkables/foehn-checkables.module.js → esm2020/foehn-checkables/foehn-checkables.module.mjs} +4 -4
- package/esm2020/foehn-checkables/foehn-checkbox.component.mjs +36 -0
- package/esm2020/foehn-checkables/foehn-radio.component.mjs +63 -0
- package/esm2020/foehn-checkables/foehn-select.component.mjs +62 -0
- package/{esm2015/foehn-checkables/form-select-option-group.js → esm2020/foehn-checkables/form-select-option-group.mjs} +0 -0
- package/{esm2015/foehn-checkables/form-select-option.js → esm2020/foehn-checkables/form-select-option.mjs} +0 -0
- package/{esm2015/foehn-confirm-modal/foehn-confirm-modal-content.js → esm2020/foehn-confirm-modal/foehn-confirm-modal-content.mjs} +0 -0
- package/esm2020/foehn-confirm-modal/foehn-confirm-modal.component.mjs +39 -0
- package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.module.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.module.mjs} +4 -4
- package/{esm2015/foehn-confirm-modal/foehn-confirm-modal.service.js → esm2020/foehn-confirm-modal/foehn-confirm-modal.service.mjs} +3 -3
- package/{esm2015/foehn-date-picker/date-picker-navigation.helper.js → esm2020/foehn-date-picker/date-picker-navigation.helper.mjs} +7 -7
- package/{esm2015/foehn-date-picker/date-picker.helper.js → esm2020/foehn-date-picker/date-picker.helper.mjs} +4 -4
- package/{esm2015/foehn-date-picker/day-month.type.js → esm2020/foehn-date-picker/day-month.type.mjs} +0 -0
- package/{esm2015/foehn-date-picker/focused-day.type.js → esm2020/foehn-date-picker/focused-day.type.mjs} +0 -0
- package/{esm2015/foehn-date-picker/foehn-date-picker.component.js → esm2020/foehn-date-picker/foehn-date-picker.component.mjs} +22 -25
- package/{esm2015/foehn-date-picker/foehn-date-picker.module.js → esm2020/foehn-date-picker/foehn-date-picker.module.mjs} +4 -4
- package/{esm2015/foehn-date-picker/month-year.type.js → esm2020/foehn-date-picker/month-year.type.mjs} +0 -0
- package/esm2020/foehn-date-picker-button/foehn-date-picker-button.component.mjs +70 -0
- package/{esm2015/foehn-date-picker-button/foehn-date-picker-button.module.js → esm2020/foehn-date-picker-button/foehn-date-picker-button.module.mjs} +4 -4
- package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.mjs} +8 -11
- package/{esm2015/foehn-debug-summary/foehn-debug-summary.component.module.js → esm2020/foehn-debug-summary/foehn-debug-summary.component.module.mjs} +4 -4
- package/esm2020/foehn-decision-electronique/foehn-decision-electronique.component.mjs +36 -0
- package/{esm2015/foehn-decision-electronique/foehn-decision-electronique.module.js → esm2020/foehn-decision-electronique/foehn-decision-electronique.module.mjs} +4 -4
- package/esm2020/foehn-footer/foehn-footer.component.mjs +129 -0
- package/{esm2015/foehn-footer/foehn-footer.module.js → esm2020/foehn-footer/foehn-footer.module.mjs} +4 -4
- package/{esm2015/foehn-footer/footer-link.type.js → esm2020/foehn-footer/footer-link.type.mjs} +0 -0
- package/{esm2015/foehn-form/foehn-form.component.js → esm2020/foehn-form/foehn-form.component.mjs} +5 -8
- package/{esm2015/foehn-form/foehn-form.module.js → esm2020/foehn-form/foehn-form.module.mjs} +4 -4
- package/{esm2015/foehn-growl/foehn-growl.component.js → esm2020/foehn-growl/foehn-growl.component.mjs} +8 -12
- package/{esm2015/foehn-growl/foehn-growl.module.js → esm2020/foehn-growl/foehn-growl.module.mjs} +4 -4
- package/{esm2015/foehn-growl/growl-broker.service.js → esm2020/foehn-growl/growl-broker.service.mjs} +3 -3
- package/{esm2015/foehn-growl/growl-message.js → esm2020/foehn-growl/growl-message.mjs} +0 -0
- package/{esm2015/foehn-growl/growl-types.js → esm2020/foehn-growl/growl-types.mjs} +0 -0
- package/esm2020/foehn-header/foehn-header.component.mjs +69 -0
- package/{esm2015/foehn-header/foehn-header.module.js → esm2020/foehn-header/foehn-header.module.mjs} +4 -4
- package/{esm2015/foehn-header/foehn-skip-link.component.js → esm2020/foehn-header/foehn-skip-link.component.mjs} +5 -8
- package/{esm2015/foehn-help-modal/foehn-help-modal.component.js → esm2020/foehn-help-modal/foehn-help-modal.component.mjs} +5 -9
- package/{esm2015/foehn-help-modal/foehn-help-modal.module.js → esm2020/foehn-help-modal/foehn-help-modal.module.mjs} +4 -4
- package/{esm2015/foehn-help-modal/foehn-help-modal.type.js → esm2020/foehn-help-modal/foehn-help-modal.type.mjs} +0 -0
- package/{esm2015/foehn-icons/abstract-icon-component.js → esm2020/foehn-icons/abstract-icon-component.mjs} +4 -4
- package/{esm2015/foehn-icons/foehn-icon-calendar.component.js → esm2020/foehn-icons/foehn-icon-calendar.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-check-square-o.component.js → esm2020/foehn-icons/foehn-icon-check-square-o.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-check.component.js → esm2020/foehn-icons/foehn-icon-check.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-down.component.js → esm2020/foehn-icons/foehn-icon-chevron-down.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-left.component.js → esm2020/foehn-icons/foehn-icon-chevron-left.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-right.component.js → esm2020/foehn-icons/foehn-icon-chevron-right.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-chevron-up.component.js → esm2020/foehn-icons/foehn-icon-chevron-up.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-clock.component.js → esm2020/foehn-icons/foehn-icon-clock.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-comment-dots.component.js → esm2020/foehn-icons/foehn-icon-comment-dots.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-edit.component.js → esm2020/foehn-icons/foehn-icon-edit.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-external-link-alt.component.js → esm2020/foehn-icons/foehn-icon-external-link-alt.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-file-pdf.component.js → esm2020/foehn-icons/foehn-icon-file-pdf.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-info-circle.component.js → esm2020/foehn-icons/foehn-icon-info-circle.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-lock.component.js → esm2020/foehn-icons/foehn-icon-lock.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-map-marker.component.js → esm2020/foehn-icons/foehn-icon-map-marker.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-minus-circle.component.js → esm2020/foehn-icons/foehn-icon-minus-circle.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-plus-circle.component.js → esm2020/foehn-icons/foehn-icon-plus-circle.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-plus-square.component.js → esm2020/foehn-icons/foehn-icon-plus-square.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-search.component.js → esm2020/foehn-icons/foehn-icon-search.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-times.component.js → esm2020/foehn-icons/foehn-icon-times.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-trash-alt.component.js → esm2020/foehn-icons/foehn-icon-trash-alt.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icon-unlock-alt.component.js → esm2020/foehn-icons/foehn-icon-unlock-alt.component.mjs} +5 -8
- package/{esm2015/foehn-icons/foehn-icons.module.js → esm2020/foehn-icons/foehn-icons.module.mjs} +4 -4
- package/esm2020/foehn-input/foehn-input-email.component.mjs +50 -0
- package/esm2020/foehn-input/foehn-input-hidden.component.mjs +53 -0
- package/{esm2015/foehn-input/foehn-input-number.component.js → esm2020/foehn-input/foehn-input-number.component.mjs} +10 -15
- package/esm2020/foehn-input/foehn-input-password.component.mjs +50 -0
- package/{esm2015/foehn-input/foehn-input-phone.component.js → esm2020/foehn-input/foehn-input-phone.component.mjs} +6 -11
- package/{esm2015/foehn-input/foehn-input-string.component.js → esm2020/foehn-input/foehn-input-string.component.mjs} +3 -3
- package/{esm2015/foehn-input/foehn-input-text.component.js → esm2020/foehn-input/foehn-input-text.component.mjs} +6 -11
- package/{esm2015/foehn-input/foehn-input-textarea.component.js → esm2020/foehn-input/foehn-input-textarea.component.mjs} +6 -11
- package/{esm2015/foehn-input/foehn-input.component.js → esm2020/foehn-input/foehn-input.component.mjs} +14 -14
- package/{esm2015/foehn-input/foehn-input.module.js → esm2020/foehn-input/foehn-input.module.mjs} +4 -4
- package/{esm2015/foehn-input/pattern.const.js → esm2020/foehn-input/pattern.const.mjs} +0 -0
- package/esm2020/foehn-input-date/foehn-input-date.component.mjs +90 -0
- package/esm2020/foehn-input-time/foehn-input-time.component.mjs +75 -0
- package/esm2020/foehn-list/foehn-list.component.mjs +128 -0
- package/{esm2015/foehn-list/foehn-list.module.js → esm2020/foehn-list/foehn-list.module.mjs} +4 -4
- package/{esm2015/foehn-list/page-change-event.js → esm2020/foehn-list/page-change-event.mjs} +0 -0
- package/esm2020/foehn-menu-prestation/abstract-list-item-detail-page.component.mjs +122 -0
- package/{esm2015/foehn-menu-prestation/abstract-menu-page.component.js → esm2020/foehn-menu-prestation/abstract-menu-page.component.mjs} +3 -3
- package/{esm2015/foehn-menu-prestation/abstract-page-from-menu.component.js → esm2020/foehn-menu-prestation/abstract-page-from-menu.component.mjs} +3 -3
- package/{esm2015/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.js → esm2020/foehn-menu-prestation/foehn-error-pill/foehn-error-pill.component.mjs} +5 -8
- package/{esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.js → esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-item-description.mjs} +0 -0
- package/{esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-item.js → esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-item.mjs} +0 -0
- package/esm2020/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.mjs +71 -0
- package/esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.mjs +35 -0
- package/{esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.js → esm2020/foehn-menu-prestation/foehn-menu-items/foehn-menu-item-transmit/foehn-menu-item-transmit.component.mjs} +5 -8
- package/{esm2015/foehn-menu-prestation/foehn-menu-prestation.module.js → esm2020/foehn-menu-prestation/foehn-menu-prestation.module.mjs} +4 -4
- package/{esm2015/foehn-misc/foehn-abbr.component.js → esm2020/foehn-misc/foehn-abbr.component.mjs} +5 -9
- package/{esm2015/foehn-misc/foehn-misc.module.js → esm2020/foehn-misc/foehn-misc.module.mjs} +4 -4
- package/esm2020/foehn-modal/foehn-modal.component.mjs +96 -0
- package/{esm2015/foehn-modal/foehn-modal.module.js → esm2020/foehn-modal/foehn-modal.module.mjs} +4 -4
- package/esm2020/foehn-nav13/foehn-input-nav13.component.mjs +94 -0
- package/{esm2015/foehn-nav13/foehn-input-nav13.module.js → esm2020/foehn-nav13/foehn-input-nav13.module.mjs} +4 -4
- package/esm2020/foehn-navigation/foehn-navigation.component.mjs +94 -0
- package/{esm2015/foehn-navigation/foehn-navigation.module.js → esm2020/foehn-navigation/foehn-navigation.module.mjs} +4 -4
- package/{esm2015/foehn-navigation/foehn-navigation.service.js → esm2020/foehn-navigation/foehn-navigation.service.mjs} +12 -12
- package/{esm2015/foehn-notfound/foehn-notfound.component.js → esm2020/foehn-notfound/foehn-notfound.component.mjs} +5 -8
- package/{esm2015/foehn-notfound/foehn-notfound.module.js → esm2020/foehn-notfound/foehn-notfound.module.mjs} +4 -4
- package/{esm2015/foehn-page/foehn-page-counter.component.js → esm2020/foehn-page/foehn-page-counter.component.mjs} +5 -8
- package/esm2020/foehn-page/foehn-page-modal.component.mjs +52 -0
- package/{esm2015/foehn-page/foehn-page-modal.service.js → esm2020/foehn-page/foehn-page-modal.service.mjs} +3 -3
- package/esm2020/foehn-page/foehn-page.component.mjs +215 -0
- package/{esm2015/foehn-page/foehn-page.module.js → esm2020/foehn-page/foehn-page.module.mjs} +4 -4
- package/{esm2015/foehn-page/foehn-page.service.js → esm2020/foehn-page/foehn-page.service.mjs} +4 -4
- package/{esm2015/foehn-recap-section/foehn-recap-section.component.js → esm2020/foehn-recap-section/foehn-recap-section.component.mjs} +5 -8
- package/{esm2015/foehn-recap-section/foehn-recap-section.module.js → esm2020/foehn-recap-section/foehn-recap-section.module.mjs} +4 -4
- package/{esm2015/foehn-recap-section/foehn-recap-section.type.js → esm2020/foehn-recap-section/foehn-recap-section.type.mjs} +0 -0
- package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.component.mjs} +5 -9
- package/{esm2015/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.js → esm2020/foehn-remaining-alerts-summary/foehn-remaining-alerts-summary.module.mjs} +4 -4
- package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +37 -0
- package/{esm2015/foehn-status-progress-bar/foehn-status-progress-bar.module.js → esm2020/foehn-status-progress-bar/foehn-status-progress-bar.module.mjs} +4 -4
- package/{esm2015/foehn-table/foehn-table-column-configuration.js → esm2020/foehn-table/foehn-table-column-configuration.mjs} +0 -0
- package/{esm2015/foehn-table/foehn-table-page-change-event.js → esm2020/foehn-table/foehn-table-page-change-event.mjs} +0 -0
- package/esm2020/foehn-table/foehn-table.component.mjs +147 -0
- package/{esm2015/foehn-table/foehn-table.module.js → esm2020/foehn-table/foehn-table.module.mjs} +4 -4
- package/{esm2015/foehn-table/tableSort.js → esm2020/foehn-table/tableSort.mjs} +0 -0
- package/{esm2015/foehn-upload/abstract-foehn-uploader.component.js → esm2020/foehn-upload/abstract-foehn-uploader.component.mjs} +17 -17
- package/{esm2015/foehn-upload/document-reference.js → esm2020/foehn-upload/document-reference.mjs} +0 -0
- package/{esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.js → esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.service.mjs} +3 -3
- package/{esm2015/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.js → esm2020/foehn-upload/foehn-bo-multi-upload/bo-multi-upload.type.mjs} +0 -0
- package/esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.mjs +165 -0
- package/{esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.js → esm2020/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.module.mjs} +4 -4
- package/esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.mjs +214 -0
- package/{esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.js → esm2020/foehn-upload/foehn-multi-upload/foehn-multi-upload.module.mjs} +4 -4
- package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.service.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.service.mjs} +3 -3
- package/{esm2015/foehn-upload/foehn-multi-upload/multi-upload.type.js → esm2020/foehn-upload/foehn-multi-upload/multi-upload.type.mjs} +0 -0
- package/{esm2015/foehn-upload/foehn-multi-upload/pending-upload.service.js → esm2020/foehn-upload/foehn-multi-upload/pending-upload.service.mjs} +3 -3
- package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +163 -0
- package/{esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.js → esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.module.mjs} +4 -4
- package/{esm2015/foehn-upload/pending-upload.type.js → esm2020/foehn-upload/pending-upload.type.mjs} +0 -0
- package/esm2020/foehn-upload/uploader.helper.mjs +326 -0
- package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.component.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.component.mjs} +5 -8
- package/{esm2015/foehn-user-connected-as/foehn-user-connected-as.module.js → esm2020/foehn-user-connected-as/foehn-user-connected-as.module.mjs} +4 -4
- package/{esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.component.js → esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.component.mjs} +5 -9
- package/{esm2015/foehn-validation-alert-summary/foehn-validation-alert-summary.module.js → esm2020/foehn-validation-alert-summary/foehn-validation-alert-summary.module.mjs} +4 -4
- package/esm2020/foehn-validation-alerts/foehn-validation-alerts.component.mjs +29 -0
- package/{esm2015/foehn-validation-alerts/foehn-validation-alerts.module.js → esm2020/foehn-validation-alerts/foehn-validation-alerts.module.mjs} +4 -4
- package/esm2020/form-error.mjs +2 -0
- package/esm2020/form-post-response.mjs +10 -0
- package/{esm2015/gesdem/gesdem-error-handler.service.js → esm2020/gesdem/gesdem-error-handler.service.mjs} +3 -3
- package/esm2020/gesdem/gesdem-event.service.mjs +38 -0
- package/esm2020/gesdem/gesdem-handler.service.mjs +151 -0
- package/{esm2015/gesdem/gesdem-loader.guard.js → esm2020/gesdem/gesdem-loader.guard.mjs} +3 -3
- package/{esm2015/gesdem/gesdem-statut-utils.js → esm2020/gesdem/gesdem-statut-utils.mjs} +0 -0
- package/{esm2015/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.js → esm2020/gesdem-action-recovery/gesdem-action-recovery-login/gesdem-action-recovery-login.component.mjs} +5 -10
- package/esm2020/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +128 -0
- package/{esm2015/gesdem-action-recovery/gesdem-action-recovery.module.js → esm2020/gesdem-action-recovery/gesdem-action-recovery.module.mjs} +4 -4
- package/esm2020/gesdem-action-recovery/gesdem-action-recovery.service.mjs +82 -0
- package/{esm2015/gesdem-action-recovery/reprise-info.js → esm2020/gesdem-action-recovery/reprise-info.mjs} +0 -0
- package/esm2020/gesdem-confirmation/gesdem-confirmation.component.mjs +189 -0
- package/{esm2015/gesdem-confirmation/gesdem-confirmation.module.js → esm2020/gesdem-confirmation/gesdem-confirmation.module.mjs} +4 -4
- package/{esm2015/gesdem-error/gesdem-error.component.js → esm2020/gesdem-error/gesdem-error.component.mjs} +5 -9
- package/{esm2015/gesdem-error/gesdem-error.module.js → esm2020/gesdem-error/gesdem-error.module.mjs} +4 -4
- package/{esm2015/helpers/object.helper.js → esm2020/helpers/object.helper.mjs} +2 -2
- package/{esm2015/i18n-form.js → esm2020/i18n-form.mjs} +0 -0
- package/{esm2015/index.js → esm2020/index.mjs} +3 -3
- package/{esm2015/pipes/currency.pipe.js → esm2020/pipes/currency.pipe.mjs} +3 -3
- package/{esm2015/pipes/date.pipe.js → esm2020/pipes/date.pipe.mjs} +3 -3
- package/{esm2015/pipes/formatIde.pipe.js → esm2020/pipes/formatIde.pipe.mjs} +3 -3
- package/{esm2015/pipes/pipes.module.js → esm2020/pipes/pipes.module.mjs} +4 -4
- package/{esm2015/prestations-ng-core.module.js → esm2020/prestations-ng-core.module.mjs} +4 -4
- package/{esm2015/sdk-appinfo/application-info.js → esm2020/sdk-appinfo/application-info.mjs} +0 -0
- package/esm2020/sdk-appinfo/application-info.service.mjs +102 -0
- package/{esm2015/sdk-currency/currency.helper.js → esm2020/sdk-currency/currency.helper.mjs} +3 -3
- package/esm2020/sdk-date/date.helper.mjs +91 -0
- package/{esm2015/sdk-dictionary/default-dictionary.js → esm2020/sdk-dictionary/default-dictionary.mjs} +0 -0
- package/{esm2015/sdk-dictionary/sdk-dictionary.module.js → esm2020/sdk-dictionary/sdk-dictionary.module.mjs} +4 -4
- package/{esm2015/sdk-dictionary/sdk-dictionary.pipe.js → esm2020/sdk-dictionary/sdk-dictionary.pipe.mjs} +5 -5
- package/{esm2015/sdk-dictionary/sdk-dictionary.service.js → esm2020/sdk-dictionary/sdk-dictionary.service.mjs} +3 -3
- package/{esm2015/sdk-epayment/model/EPaymentParameters.js → esm2020/sdk-epayment/model/EPaymentParameters.mjs} +0 -0
- package/esm2020/sdk-epayment/sdk-epayment.component.mjs +79 -0
- package/{esm2015/sdk-epayment/sdk-epayment.module.js → esm2020/sdk-epayment/sdk-epayment.module.mjs} +4 -4
- package/esm2020/sdk-epayment/sdk-epayment.service.mjs +51 -0
- package/{esm2015/sdk-recaptcha/grecaptcha/grecaptcha.component.js → esm2020/sdk-recaptcha/grecaptcha/grecaptcha.component.mjs} +5 -9
- package/esm2020/sdk-recaptcha/recaptcha.service.mjs +162 -0
- package/esm2020/sdk-recaptcha/sdk-recaptcha.component.mjs +68 -0
- package/{esm2015/sdk-recaptcha/sdk-recaptcha.module.js → esm2020/sdk-recaptcha/sdk-recaptcha.module.mjs} +4 -4
- package/{esm2015/sdk-redirect/iam-expired-interceptor.service.js → esm2020/sdk-redirect/iam-expired-interceptor.service.mjs} +3 -3
- package/{esm2015/sdk-redirect/redirect.component.js → esm2020/sdk-redirect/redirect.component.mjs} +5 -9
- package/{esm2015/sdk-redirect/sdk-redirect.module.js → esm2020/sdk-redirect/sdk-redirect.module.mjs} +4 -4
- package/{esm2015/sdk-session-info/session-info-data.js → esm2020/sdk-session-info/session-info-data.mjs} +1 -1
- package/{esm2015/sdk-session-info/session-info-with-application.service.js → esm2020/sdk-session-info/session-info-with-application.service.mjs} +3 -3
- package/esm2020/sdk-session-info/session-info.service.mjs +73 -0
- package/{esm2015/sdk-support-alert/support-alert-container.component.js → esm2020/sdk-support-alert/support-alert-container.component.mjs} +5 -9
- package/esm2020/sdk-support-alert/support-alert.component.mjs +34 -0
- package/{esm2015/sdk-support-alert/support-alert.model.js → esm2020/sdk-support-alert/support-alert.model.mjs} +0 -0
- package/{esm2015/sdk-support-alert/support-alert.module.js → esm2020/sdk-support-alert/support-alert.module.mjs} +4 -4
- package/{esm2015/sdk-support-alert/support-alert.service.js → esm2020/sdk-support-alert/support-alert.service.mjs} +3 -3
- package/{esm2015/service-locator.js → esm2020/service-locator.mjs} +0 -0
- package/esm2020/supported-browser.mjs +2 -0
- package/esm2020/validation/validation-handler.service.mjs +44 -0
- package/fesm2015/{dsivd-prestations-ng.js → dsivd-prestations-ng.mjs} +973 -1300
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -0
- package/fesm2020/dsivd-prestations-ng.mjs +11532 -0
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -0
- package/foehn-breadcrumb/breadcrumb-event.service.d.ts +2 -2
- package/foehn-checkables/foehn-checkable-group.component.d.ts +3 -3
- package/foehn-confirm-modal/foehn-confirm-modal.component.d.ts +1 -1
- package/foehn-date-picker/date-picker-navigation.helper.d.ts +1 -1
- package/foehn-date-picker/date-picker.helper.d.ts +1 -1
- package/foehn-date-picker/foehn-date-picker.component.d.ts +3 -3
- package/foehn-date-picker-button/foehn-date-picker-button.component.d.ts +2 -2
- package/foehn-debug-summary/foehn-debug-summary.component.d.ts +1 -1
- package/foehn-growl/foehn-growl.component.d.ts +1 -1
- package/foehn-header/foehn-header.component.d.ts +2 -2
- package/foehn-input/foehn-input-number.component.d.ts +1 -1
- package/foehn-input/foehn-input.component.d.ts +4 -4
- package/foehn-list/foehn-list.component.d.ts +2 -2
- package/foehn-menu-prestation/abstract-list-item-detail-page.component.d.ts +1 -1
- package/foehn-modal/foehn-modal.component.d.ts +1 -1
- package/foehn-navigation/foehn-navigation.service.d.ts +2 -2
- package/foehn-page/foehn-page.service.d.ts +2 -2
- package/foehn-table/foehn-table.component.d.ts +2 -2
- package/foehn-upload/abstract-foehn-uploader.component.d.ts +2 -2
- package/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.d.ts +1 -1
- package/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.d.ts +2 -2
- package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +1 -1
- package/foehn-upload/uploader.helper.d.ts +12 -12
- package/foehn-validation-alerts/foehn-validation-alerts.component.d.ts +3 -3
- package/{error-template.d.ts → form-error.d.ts} +1 -1
- package/form-post-response.d.ts +17 -0
- package/gesdem/gesdem-event.service.d.ts +6 -6
- package/gesdem/gesdem-handler.service.d.ts +3 -3
- package/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.d.ts +2 -2
- package/gesdem-action-recovery/gesdem-action-recovery.service.d.ts +2 -2
- package/gesdem-confirmation/gesdem-confirmation.component.d.ts +4 -4
- package/index.d.ts +2 -2
- package/package.json +26 -13
- package/schematics/ng-add/index.js +6 -6
- package/schematics/ng-update/migrations/update-13_1_0/index.js +2 -2
- package/schematics/ng-update/migrations/update-13_2_0/index.js +3 -3
- package/schematics/ng-update/migrations/update-13_5_1/index.js +2 -2
- package/schematics/ng-update/migrations/update-14_5_0/index.js +2 -2
- package/schematics/update-karma-config/index.js +2 -2
- package/schematics/utility/migrate-to-karma-coverage.js +3 -3
- package/sdk-appinfo/application-info.service.d.ts +2 -2
- package/sdk-epayment/sdk-epayment.component.d.ts +3 -13
- package/sdk-epayment/sdk-epayment.service.d.ts +2 -5
- package/sdk-recaptcha/recaptcha.service.d.ts +2 -2
- package/sdk-recaptcha/sdk-recaptcha.component.d.ts +2 -2
- package/sdk-session-info/session-info-data.d.ts +0 -1
- package/sdk-session-info/session-info.service.d.ts +9 -2
- package/validation/validation-handler.service.d.ts +4 -4
- package/backend-response.d.ts +0 -18
- package/bundles/dsivd-prestations-ng.umd.js +0 -13472
- package/bundles/dsivd-prestations-ng.umd.js.map +0 -1
- package/dsivd-prestations-ng-v14.5.20.tgz +0 -0
- package/esm2015/abstract-page-component.js +0 -224
- package/esm2015/backend-response.js +0 -10
- package/esm2015/error-template.js +0 -2
- package/esm2015/foehn-address/foehn-input-address.component.js +0 -365
- package/esm2015/foehn-address/foehn-input-foreign-locality.component.js +0 -71
- package/esm2015/foehn-autocomplete/foehn-autocomplete.component.js +0 -556
- package/esm2015/foehn-boolean/foehn-boolean-checkbox.component.js +0 -32
- package/esm2015/foehn-boolean/foehn-boolean-radio.component.js +0 -41
- package/esm2015/foehn-checkables/foehn-checkable-group.component.js +0 -294
- package/esm2015/foehn-checkables/foehn-checkbox.component.js +0 -40
- package/esm2015/foehn-checkables/foehn-radio.component.js +0 -67
- package/esm2015/foehn-checkables/foehn-select.component.js +0 -66
- package/esm2015/foehn-confirm-modal/foehn-confirm-modal.component.js +0 -42
- package/esm2015/foehn-date-picker-button/foehn-date-picker-button.component.js +0 -74
- package/esm2015/foehn-decision-electronique/foehn-decision-electronique.component.js +0 -40
- package/esm2015/foehn-footer/foehn-footer.component.js +0 -132
- package/esm2015/foehn-header/foehn-header.component.js +0 -73
- package/esm2015/foehn-input/foehn-input-email.component.js +0 -55
- package/esm2015/foehn-input/foehn-input-hidden.component.js +0 -57
- package/esm2015/foehn-input/foehn-input-password.component.js +0 -55
- package/esm2015/foehn-input-date/foehn-input-date.component.js +0 -94
- package/esm2015/foehn-input-time/foehn-input-time.component.js +0 -79
- package/esm2015/foehn-list/foehn-list.component.js +0 -134
- package/esm2015/foehn-menu-prestation/abstract-list-item-detail-page.component.js +0 -122
- package/esm2015/foehn-menu-prestation/foehn-list-summary/foehn-list-summary.component.js +0 -75
- package/esm2015/foehn-menu-prestation/foehn-menu-items/foehn-menu-item/foehn-menu-item.component.js +0 -38
- package/esm2015/foehn-modal/foehn-modal.component.js +0 -100
- package/esm2015/foehn-nav13/foehn-input-nav13.component.js +0 -98
- package/esm2015/foehn-navigation/foehn-navigation.component.js +0 -98
- package/esm2015/foehn-page/foehn-page-modal.component.js +0 -55
- package/esm2015/foehn-page/foehn-page.component.js +0 -217
- package/esm2015/foehn-status-progress-bar/foehn-status-progress-bar.component.js +0 -42
- package/esm2015/foehn-table/foehn-table.component.js +0 -151
- package/esm2015/foehn-upload/foehn-bo-multi-upload/foehn-bo-multi-upload.component.js +0 -171
- package/esm2015/foehn-upload/foehn-multi-upload/foehn-multi-upload.component.js +0 -220
- package/esm2015/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.js +0 -167
- package/esm2015/foehn-upload/uploader.helper.js +0 -322
- package/esm2015/foehn-validation-alerts/foehn-validation-alerts.component.js +0 -32
- package/esm2015/gesdem/gesdem-event.service.js +0 -38
- package/esm2015/gesdem/gesdem-handler.service.js +0 -151
- package/esm2015/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.js +0 -133
- package/esm2015/gesdem-action-recovery/gesdem-action-recovery.service.js +0 -82
- package/esm2015/gesdem-confirmation/gesdem-confirmation.component.js +0 -194
- package/esm2015/sdk-appinfo/application-info.service.js +0 -111
- package/esm2015/sdk-date/date.helper.js +0 -90
- package/esm2015/sdk-epayment/model/EPaymentRequest.js +0 -3
- package/esm2015/sdk-epayment/sdk-epayment.component.js +0 -113
- package/esm2015/sdk-epayment/sdk-epayment.service.js +0 -46
- package/esm2015/sdk-recaptcha/recaptcha.service.js +0 -162
- package/esm2015/sdk-recaptcha/sdk-recaptcha.component.js +0 -72
- package/esm2015/sdk-session-info/session-info.service.js +0 -44
- package/esm2015/sdk-support-alert/support-alert.component.js +0 -38
- package/esm2015/supported-browser.js +0 -2
- package/esm2015/validation/validation-handler.service.js +0 -44
- package/fesm2015/dsivd-prestations-ng.js.map +0 -1
- package/sdk-epayment/model/EPaymentRequest.d.ts +0 -5
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./foehn-confirm-modal.service";
|
|
4
|
+
import * as i2 from "../foehn-modal/foehn-modal.component";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
export class FoehnConfirmModalComponent {
|
|
7
|
+
constructor(confirmModalService) {
|
|
8
|
+
this.confirmModalService = confirmModalService;
|
|
9
|
+
this.isVisible = false;
|
|
10
|
+
// This need to be done as we're passing these functions to another component.
|
|
11
|
+
this.cancel = this.cancel.bind(this);
|
|
12
|
+
this.ok = this.ok.bind(this);
|
|
13
|
+
}
|
|
14
|
+
get content() {
|
|
15
|
+
return this.confirmModalService.getContent();
|
|
16
|
+
}
|
|
17
|
+
ngOnInit() {
|
|
18
|
+
this.confirmModalService
|
|
19
|
+
.getIsVisible()
|
|
20
|
+
.subscribe(isVisible => (this.isVisible = isVisible));
|
|
21
|
+
}
|
|
22
|
+
cancel() {
|
|
23
|
+
this.confirmModalService.close();
|
|
24
|
+
}
|
|
25
|
+
ok() {
|
|
26
|
+
this.confirmModalService.ok();
|
|
27
|
+
}
|
|
28
|
+
updateVisibilityStatus(status) {
|
|
29
|
+
// In case the modal is closed by another mean such as the Escape key.
|
|
30
|
+
this.isVisible = status;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
FoehnConfirmModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnConfirmModalComponent, deps: [{ token: i1.FoehnConfirmModalService }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
+
FoehnConfirmModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FoehnConfirmModalComponent, selector: "foehn-confirm-modal", ngImport: i0, template: "<foehn-modal\n [modalHeaderText]=\"modalContent.title || 'Confirmation'\"\n modalSize=\"modal-md\"\n [isModalVisible]=\"isVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"\n modalContent.closeable !== null && modalContent.closeable !== undefined\n ? modalContent.closeable\n : true\n \"\n *ngIf=\"content | async as modalContent\"\n>\n <p [innerHTML]=\"modalContent.htmlContent\"></p>\n\n <div modal-footer>\n <div class=\"d-flex justify-content-end mr-2 mb-2 mt-2\">\n <button\n id=\"confirmButton\"\n class=\"btn btn-secondary\"\n (click)=\"cancel()\"\n >\n {{ modalContent.cancelButtonLabel || 'Annuler' }}\n </button>\n <button\n id=\"cancelButton\"\n class=\"btn btn-primary ml-3\"\n (click)=\"ok()\"\n >\n {{ modalContent.okButtonLabel || 'Confirmer' }}\n </button>\n </div>\n </div>\n</foehn-modal>\n", components: [{ type: i2.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "modalFooterText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe } });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnConfirmModalComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ selector: 'foehn-confirm-modal', template: "<foehn-modal\n [modalHeaderText]=\"modalContent.title || 'Confirmation'\"\n modalSize=\"modal-md\"\n [isModalVisible]=\"isVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n [closeable]=\"\n modalContent.closeable !== null && modalContent.closeable !== undefined\n ? modalContent.closeable\n : true\n \"\n *ngIf=\"content | async as modalContent\"\n>\n <p [innerHTML]=\"modalContent.htmlContent\"></p>\n\n <div modal-footer>\n <div class=\"d-flex justify-content-end mr-2 mb-2 mt-2\">\n <button\n id=\"confirmButton\"\n class=\"btn btn-secondary\"\n (click)=\"cancel()\"\n >\n {{ modalContent.cancelButtonLabel || 'Annuler' }}\n </button>\n <button\n id=\"cancelButton\"\n class=\"btn btn-primary ml-3\"\n (click)=\"ok()\"\n >\n {{ modalContent.okButtonLabel || 'Confirmer' }}\n </button>\n </div>\n </div>\n</foehn-modal>\n" }]
|
|
38
|
+
}], ctorParameters: function () { return [{ type: i1.FoehnConfirmModalService }]; } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tY29uZmlybS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tY29uZmlybS1tb2RhbC9mb2Vobi1jb25maXJtLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1jb25maXJtLW1vZGFsL2ZvZWhuLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFVbEQsTUFBTSxPQUFPLDBCQUEwQjtJQUduQyxZQUFvQixtQkFBNkM7UUFBN0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUEwQjtRQUZqRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2QsOEVBQThFO1FBQzlFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsbUJBQW1CO2FBQ25CLFlBQVksRUFBRTthQUNkLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxFQUFFO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUFlO1FBQ2xDLHNFQUFzRTtRQUN0RSxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUM1QixDQUFDOzt1SEE5QlEsMEJBQTBCOzJHQUExQiwwQkFBMEIsMkRDVnZDLGlsQ0FpQ0E7MkZEdkJhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDSSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbFNlcnZpY2UgfSBmcm9tICcuL2ZvZWhuLWNvbmZpcm0tbW9kYWwuc2VydmljZSc7XG5pbXBvcnQgeyBGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQgfSBmcm9tICcuL2ZvZWhuLWNvbmZpcm0tbW9kYWwtY29udGVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tY29uZmlybS1tb2RhbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWNvbmZpcm0tbW9kYWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuQ29uZmlybU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBpc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlybU1vZGFsU2VydmljZTogRm9laG5Db25maXJtTW9kYWxTZXJ2aWNlKSB7XG4gICAgICAgIC8vIFRoaXMgbmVlZCB0byBiZSBkb25lIGFzIHdlJ3JlIHBhc3NpbmcgdGhlc2UgZnVuY3Rpb25zIHRvIGFub3RoZXIgY29tcG9uZW50LlxuICAgICAgICB0aGlzLmNhbmNlbCA9IHRoaXMuY2FuY2VsLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMub2sgPSB0aGlzLm9rLmJpbmQodGhpcyk7XG4gICAgfVxuXG4gICAgZ2V0IGNvbnRlbnQoKTogT2JzZXJ2YWJsZTxGb2VobkNvbmZpcm1Nb2RhbENvbnRlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlybU1vZGFsU2VydmljZS5nZXRDb250ZW50KCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlybU1vZGFsU2VydmljZVxuICAgICAgICAgICAgLmdldElzVmlzaWJsZSgpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGlzVmlzaWJsZSA9PiAodGhpcy5pc1Zpc2libGUgPSBpc1Zpc2libGUpKTtcbiAgICB9XG5cbiAgICBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29uZmlybU1vZGFsU2VydmljZS5jbG9zZSgpO1xuICAgIH1cblxuICAgIG9rKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbmZpcm1Nb2RhbFNlcnZpY2Uub2soKTtcbiAgICB9XG5cbiAgICB1cGRhdGVWaXNpYmlsaXR5U3RhdHVzKHN0YXR1czogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICAvLyBJbiBjYXNlIHRoZSBtb2RhbCBpcyBjbG9zZWQgYnkgYW5vdGhlciBtZWFuIHN1Y2ggYXMgdGhlIEVzY2FwZSBrZXkuXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gc3RhdHVzO1xuICAgIH1cbn1cbiIsIjxmb2Vobi1tb2RhbFxuICAgIFttb2RhbEhlYWRlclRleHRdPVwibW9kYWxDb250ZW50LnRpdGxlIHx8ICdDb25maXJtYXRpb24nXCJcbiAgICBtb2RhbFNpemU9XCJtb2RhbC1tZFwiXG4gICAgW2lzTW9kYWxWaXNpYmxlXT1cImlzVmlzaWJsZVwiXG4gICAgKGlzTW9kYWxWaXNpYmxlQ2hhbmdlKT1cInVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoJGV2ZW50KVwiXG4gICAgW2Nsb3NlYWJsZV09XCJcbiAgICAgICAgbW9kYWxDb250ZW50LmNsb3NlYWJsZSAhPT0gbnVsbCAmJiBtb2RhbENvbnRlbnQuY2xvc2VhYmxlICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gbW9kYWxDb250ZW50LmNsb3NlYWJsZVxuICAgICAgICAgICAgOiB0cnVlXG4gICAgXCJcbiAgICAqbmdJZj1cImNvbnRlbnQgfCBhc3luYyBhcyBtb2RhbENvbnRlbnRcIlxuPlxuICAgIDxwIFtpbm5lckhUTUxdPVwibW9kYWxDb250ZW50Lmh0bWxDb250ZW50XCI+PC9wPlxuXG4gICAgPGRpdiBtb2RhbC1mb290ZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtci0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiY29uZmlybUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBtb2RhbENvbnRlbnQuY2FuY2VsQnV0dG9uTGFiZWwgfHwgJ0FubnVsZXInIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImNhbmNlbEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbWwtM1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9rKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IG1vZGFsQ29udGVudC5va0J1dHRvbkxhYmVsIHx8ICdDb25maXJtZXInIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2ZvZWhuLW1vZGFsPlxuIl19
|
|
@@ -5,10 +5,10 @@ import { FoehnModalModule } from '../foehn-modal/foehn-modal.module';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class FoehnConfirmModalModule {
|
|
7
7
|
}
|
|
8
|
-
FoehnConfirmModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
FoehnConfirmModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
10
|
-
FoehnConfirmModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8
|
+
FoehnConfirmModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnConfirmModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
FoehnConfirmModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnConfirmModalModule, declarations: [FoehnConfirmModalComponent], imports: [CommonModule, FoehnModalModule], exports: [FoehnConfirmModalComponent] });
|
|
10
|
+
FoehnConfirmModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnConfirmModalModule, imports: [[CommonModule, FoehnModalModule]] });
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnConfirmModalModule, decorators: [{
|
|
12
12
|
type: NgModule,
|
|
13
13
|
args: [{
|
|
14
14
|
imports: [CommonModule, FoehnModalModule],
|
|
@@ -42,9 +42,9 @@ export class FoehnConfirmModalService {
|
|
|
42
42
|
this.rejectCallback = null;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
FoehnConfirmModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
46
|
-
FoehnConfirmModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
45
|
+
FoehnConfirmModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnConfirmModalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
+
FoehnConfirmModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnConfirmModalService, providedIn: 'root' });
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnConfirmModalService, decorators: [{
|
|
48
48
|
type: Injectable,
|
|
49
49
|
args: [{
|
|
50
50
|
providedIn: 'root'
|
|
@@ -11,6 +11,12 @@ export class DatePickerNavigationHelper {
|
|
|
11
11
|
get displayPreviousMonth() {
|
|
12
12
|
return this._displayPreviousMonth.asObservable();
|
|
13
13
|
}
|
|
14
|
+
set currentFocusedElement(elem) {
|
|
15
|
+
this._currentFocusedElement = DatePickerNavigationHelper.convertElementToFocusedDay(elem);
|
|
16
|
+
}
|
|
17
|
+
set daysButtonsElemRef(elems) {
|
|
18
|
+
this._daysButtonsElemRef = elems;
|
|
19
|
+
}
|
|
14
20
|
static convertElementToFocusedDay(elem) {
|
|
15
21
|
if (!elem) {
|
|
16
22
|
return null;
|
|
@@ -22,12 +28,6 @@ export class DatePickerNavigationHelper {
|
|
|
22
28
|
indexColumn: +elem.getAttribute('data-column-index')
|
|
23
29
|
};
|
|
24
30
|
}
|
|
25
|
-
set currentFocusedElement(elem) {
|
|
26
|
-
this._currentFocusedElement = DatePickerNavigationHelper.convertElementToFocusedDay(elem);
|
|
27
|
-
}
|
|
28
|
-
set daysButtonsElemRef(elems) {
|
|
29
|
-
this._daysButtonsElemRef = elems;
|
|
30
|
-
}
|
|
31
31
|
focusDefaultDay(hasSelectedDay) {
|
|
32
32
|
const daysInWeek = this.getEnabledDaysOfWeek();
|
|
33
33
|
if (hasSelectedDay) {
|
|
@@ -114,4 +114,4 @@ export class DatePickerNavigationHelper {
|
|
|
114
114
|
indexColumn);
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsTUFBTSxPQUFPLDBCQUEwQjtJQUF2QztRQUlZLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDeEMsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQTZKeEQsQ0FBQztJQTNKRyxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVPLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxJQUFhO1FBQ25ELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTztZQUNILFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUk7WUFDaEQsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDO1lBQzlDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUM7WUFDOUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztTQUN2RCxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsSUFBYTtRQUNuQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsMEJBQTBCLENBQUMsMEJBQTBCLENBQy9FLElBQUksQ0FDUCxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsS0FBNEI7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsZUFBZSxDQUFDLGNBQXVCO1FBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9DLElBQUksY0FBYyxFQUFFO1lBQ2hCLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQ2pDLEtBQUssQ0FBQyxFQUFFLENBQ0osS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3BELE1BQU0sQ0FDYixDQUFDO1lBQ0YsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO2dCQUNwQixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3hDO1NBQ0o7YUFBTTtZQUNILE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQzlCLEtBQUssQ0FBQyxFQUFFLENBQ0osS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEtBQUssTUFBTSxDQUNuRSxDQUFDO1lBQ0YsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNqQixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3JDO1NBQ0o7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNSLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksU0FBUyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDbEQsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QixPQUFPO1NBQ1Y7UUFDRCxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxnQkFBZ0I7UUFDWixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMvQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUMvRCxJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDbEQsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLE9BQU87U0FDVjtRQUNELFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELGdCQUFnQjtRQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDeEMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FDMUMsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQzlELElBQ0ksWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNO1lBQ25DLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUNqRCxVQUFVLENBQ2IsS0FBSyxJQUFJLEVBQ1o7WUFDRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzFELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDM0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FDMUMsQ0FBQztnQkFDRixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQ0ksZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQ25ELFVBQVUsQ0FDYixLQUFLLElBQUksRUFDWjtvQkFDRSxXQUFXLEVBQUUsQ0FBQztpQkFDakI7Z0JBQ0QsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QixPQUFPO1NBQ1Y7UUFDRCxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUN4QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUMxQyxDQUFDO1FBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsRSxJQUNJLGdCQUFnQixHQUFHLENBQUM7WUFDcEIsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FDckQsVUFBVSxDQUNiLEtBQUssSUFBSSxFQUNaO1lBQ0UsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQzNDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQzFDLENBQUM7Z0JBQ0YsSUFBSSxXQUFXLEdBQUcsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQzdDLElBQ0ksZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQ25ELFVBQVUsQ0FDYixLQUFLLElBQUksRUFDWjtvQkFDRSxXQUFXLEVBQUUsQ0FBQztpQkFDakI7Z0JBQ0QsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxPQUFPO1NBQ1Y7UUFDRCxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ2pELEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUNqRSxDQUFDO0lBQ04sQ0FBQztJQUVPLGtCQUFrQixDQUFDLFdBQW1CO1FBQzFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDakQsS0FBSyxDQUFDLEVBQUUsQ0FDSixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDO1lBQ3RELFdBQVcsQ0FDbEIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNlZERheSB9IGZyb20gJy4vZm9jdXNlZC1kYXkudHlwZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyIHtcbiAgICBwcml2YXRlIF9jdXJyZW50Rm9jdXNlZEVsZW1lbnQ6IEZvY3VzZWREYXk7XG4gICAgcHJpdmF0ZSBfZGF5c0J1dHRvbnNFbGVtUmVmOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgICBwcml2YXRlIF9kaXNwbGF5TmV4dE1vbnRoID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9kaXNwbGF5UHJldmlvdXNNb250aCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgZGlzcGxheU5leHRNb250aCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlOZXh0TW9udGguYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGRpc3BsYXlQcmV2aW91c01vbnRoKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheVByZXZpb3VzTW9udGguYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgY29udmVydEVsZW1lbnRUb0ZvY3VzZWREYXkoZWxlbTogRWxlbWVudCk6IEZvY3VzZWREYXkge1xuICAgICAgICBpZiAoIWVsZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkaXNhYmxlZDogZWxlbS5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgIT09IG51bGwsXG4gICAgICAgICAgICBpbmRleERheTogK2VsZW0uZ2V0QXR0cmlidXRlKCdkYXktbnVtYmVyJykgLSAxLFxuICAgICAgICAgICAgaW5kZXhSb3c6ICtlbGVtLmdldEF0dHJpYnV0ZSgnZGF0YS1yb3ctaW5kZXgnKSxcbiAgICAgICAgICAgIGluZGV4Q29sdW1uOiArZWxlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtY29sdW1uLWluZGV4JylcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZXQgY3VycmVudEZvY3VzZWRFbGVtZW50KGVsZW06IEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50ID0gRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuY29udmVydEVsZW1lbnRUb0ZvY3VzZWREYXkoXG4gICAgICAgICAgICBlbGVtXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0IGRheXNCdXR0b25zRWxlbVJlZihlbGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+KSB7XG4gICAgICAgIHRoaXMuX2RheXNCdXR0b25zRWxlbVJlZiA9IGVsZW1zO1xuICAgIH1cblxuICAgIGZvY3VzRGVmYXVsdERheShoYXNTZWxlY3RlZERheTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXlzSW5XZWVrID0gdGhpcy5nZXRFbmFibGVkRGF5c09mV2VlaygpO1xuICAgICAgICBpZiAoaGFzU2VsZWN0ZWREYXkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRGF5ID0gZGF5c0luV2Vlay5maWx0ZXIoXG4gICAgICAgICAgICAgICAgdmFsdWUgPT5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXMtc2VsZWN0ZWQnKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkRGF5WzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1RvZGF5ID0gZGF5c0luV2Vlay5maWx0ZXIoXG4gICAgICAgICAgICAgICAgdmFsdWUgPT5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXMtdG9kYXknKSA9PT0gJ3RydWUnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGhhc1RvZGF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGhhc1RvZGF5WzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzTmV4dERheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF5c0luV2VlayA9IHRoaXMuZ2V0RW5hYmxlZERheXNPZldlZWsoKTtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4RGF5ICsgMTtcbiAgICAgICAgaWYgKG5leHRJbmRleCA+PSBkYXlzSW5XZWVrLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbldlZWsgPSB0aGlzLmdldEVuYWJsZWREYXlzT2ZXZWVrKCk7XG4gICAgICAgICAgICAgICAgbmV3RGF5c0luV2Vla1swXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlOZXh0TW9udGgubmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRheXNJbldlZWtbbmV4dEluZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXNQcmV2aW91c0RheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF5c0luV2VlayA9IHRoaXMuZ2V0RW5hYmxlZERheXNPZldlZWsoKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNJbmRleCA9IHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleERheSAtIDE7XG4gICAgICAgIGlmIChwcmV2aW91c0luZGV4IDwgMCkge1xuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbldlZWsgPSB0aGlzLmdldEVuYWJsZWREYXlzT2ZXZWVrKCk7XG4gICAgICAgICAgICAgICAgbmV3RGF5c0luV2Vla1tuZXdEYXlzSW5XZWVrLmxlbmd0aCAtIDFdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fZGlzcGxheVByZXZpb3VzTW9udGgubmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRheXNJbldlZWtbcHJldmlvdXNJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIGZvY3VzTmV4dFdlZWtEYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Q29sdW1uXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5leHRSb3dJbmRleCA9IHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleFJvdyArIDE7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG5leHRSb3dJbmRleCA+PSBkYXlzSW5Db2x1bW4ubGVuZ3RoIHx8XG4gICAgICAgICAgICBkYXlzSW5Db2x1bW5bbmV4dFJvd0luZGV4XS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAnZGlzYWJsZWQnXG4gICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhDb2x1bW5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGxldCBuZXdSb3dJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBuZXdEYXlzSW5Db2x1bW5bbmV3Um93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJ1xuICAgICAgICAgICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1Jvd0luZGV4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0RheXNJbkNvbHVtbltuZXdSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5TmV4dE1vbnRoLm5leHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkYXlzSW5Db2x1bW5bbmV4dFJvd0luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXNQcmV2aW91c1dlZWtEYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Q29sdW1uXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUm93SW5kZXggPSB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhSb3cgLSAxO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBwcmV2aW91c1Jvd0luZGV4IDwgMCB8fFxuICAgICAgICAgICAgZGF5c0luQ29sdW1uW3ByZXZpb3VzUm93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICdkaXNhYmxlZCdcbiAgICAgICAgICAgICkgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXlzQnV0dG9uc0VsZW1SZWYuY2hhbmdlcy5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RGF5c0luQ29sdW1uID0gdGhpcy5nZXRBbGxEYXlzSW5Db2x1bW4oXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleENvbHVtblxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1Jvd0luZGV4ID0gbmV3RGF5c0luQ29sdW1uLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBuZXdEYXlzSW5Db2x1bW5bbmV3Um93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJ1xuICAgICAgICAgICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1Jvd0luZGV4LS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0RheXNJbkNvbHVtbltuZXdSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5UHJldmlvdXNNb250aC5uZXh0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGF5c0luQ29sdW1uW3ByZXZpb3VzUm93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVuYWJsZWREYXlzT2ZXZWVrKCk6IEVsZW1lbnRSZWZbXSB7XG4gICAgICAgIHJldHVybiBbLi4udGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLnRvQXJyYXkoKV0uZmlsdGVyKFxuICAgICAgICAgICAgdmFsdWUgPT4gdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgPT09IG51bGxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsbERheXNJbkNvbHVtbihpbmRleENvbHVtbjogbnVtYmVyKTogRWxlbWVudFJlZltdIHtcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLl9kYXlzQnV0dG9uc0VsZW1SZWYudG9BcnJheSgpXS5maWx0ZXIoXG4gICAgICAgICAgICB2YWx1ZSA9PlxuICAgICAgICAgICAgICAgICt2YWx1ZS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1jb2x1bW4taW5kZXgnKSA9PT1cbiAgICAgICAgICAgICAgICBpbmRleENvbHVtblxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsTUFBTSxPQUFPLDBCQUEwQjtJQUF2QztRQUlZLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDeEMsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQTZKeEQsQ0FBQztJQTNKRyxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsSUFBYTtRQUNuQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsMEJBQTBCLENBQUMsMEJBQTBCLENBQy9FLElBQUksQ0FDUCxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsS0FBNEI7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRU8sTUFBTSxDQUFDLDBCQUEwQixDQUFDLElBQWE7UUFDbkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPO1lBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSTtZQUNoRCxRQUFRLEVBQUUsQ0FB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Q0FDSixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDO1lBQ3RELFdBQVcsQ0FDbEIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNlZERheSB9IGZyb20gJy4vZm9jdXNlZC1kYXkudHlwZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyIHtcbiAgICBwcml2YXRlIF9jdXJyZW50Rm9jdXNlZEVsZW1lbnQ6IEZvY3VzZWREYXk7XG4gICAgcHJpdmF0ZSBfZGF5c0J1dHRvbnNFbGVtUmVmOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgICBwcml2YXRlIF9kaXNwbGF5TmV4dE1vbnRoID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9kaXNwbGF5UHJldmlvdXNNb250aCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgZGlzcGxheU5leHRNb250aCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlOZXh0TW9udGguYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGRpc3BsYXlQcmV2aW91c01vbnRoKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheVByZXZpb3VzTW9udGguYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IGN1cnJlbnRGb2N1c2VkRWxlbWVudChlbGVtOiBFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudCA9IERhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmNvbnZlcnRFbGVtZW50VG9Gb2N1c2VkRGF5KFxuICAgICAgICAgICAgZWxlbVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNldCBkYXlzQnV0dG9uc0VsZW1SZWYoZWxlbXM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPikge1xuICAgICAgICB0aGlzLl9kYXlzQnV0dG9uc0VsZW1SZWYgPSBlbGVtcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0RWxlbWVudFRvRm9jdXNlZERheShlbGVtOiBFbGVtZW50KTogRm9jdXNlZERheSB7XG4gICAgICAgIGlmICghZWxlbSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBlbGVtLmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSAhPT0gbnVsbCxcbiAgICAgICAgICAgIGluZGV4RGF5OiArZWxlbS5nZXRBdHRyaWJ1dGUoJ2RheS1udW1iZXInKSAtIDEsXG4gICAgICAgICAgICBpbmRleFJvdzogK2VsZW0uZ2V0QXR0cmlidXRlKCdkYXRhLXJvdy1pbmRleCcpLFxuICAgICAgICAgICAgaW5kZXhDb2x1bW46ICtlbGVtLmdldEF0dHJpYnV0ZSgnZGF0YS1jb2x1bW4taW5kZXgnKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZvY3VzRGVmYXVsdERheShoYXNTZWxlY3RlZERheTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXlzSW5XZWVrID0gdGhpcy5nZXRFbmFibGVkRGF5c09mV2VlaygpO1xuICAgICAgICBpZiAoaGFzU2VsZWN0ZWREYXkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRGF5ID0gZGF5c0luV2Vlay5maWx0ZXIoXG4gICAgICAgICAgICAgICAgdmFsdWUgPT5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXMtc2VsZWN0ZWQnKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkRGF5WzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1RvZGF5ID0gZGF5c0luV2Vlay5maWx0ZXIoXG4gICAgICAgICAgICAgICAgdmFsdWUgPT5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXMtdG9kYXknKSA9PT0gJ3RydWUnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGhhc1RvZGF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGhhc1RvZGF5WzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzTmV4dERheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF5c0luV2VlayA9IHRoaXMuZ2V0RW5hYmxlZERheXNPZldlZWsoKTtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4RGF5ICsgMTtcbiAgICAgICAgaWYgKG5leHRJbmRleCA+PSBkYXlzSW5XZWVrLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbldlZWsgPSB0aGlzLmdldEVuYWJsZWREYXlzT2ZXZWVrKCk7XG4gICAgICAgICAgICAgICAgbmV3RGF5c0luV2Vla1swXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlOZXh0TW9udGgubmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRheXNJbldlZWtbbmV4dEluZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXNQcmV2aW91c0RheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF5c0luV2VlayA9IHRoaXMuZ2V0RW5hYmxlZERheXNPZldlZWsoKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNJbmRleCA9IHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleERheSAtIDE7XG4gICAgICAgIGlmIChwcmV2aW91c0luZGV4IDwgMCkge1xuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbldlZWsgPSB0aGlzLmdldEVuYWJsZWREYXlzT2ZXZWVrKCk7XG4gICAgICAgICAgICAgICAgbmV3RGF5c0luV2Vla1tuZXdEYXlzSW5XZWVrLmxlbmd0aCAtIDFdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fZGlzcGxheVByZXZpb3VzTW9udGgubmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRheXNJbldlZWtbcHJldmlvdXNJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIGZvY3VzTmV4dFdlZWtEYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Q29sdW1uXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5leHRSb3dJbmRleCA9IHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleFJvdyArIDE7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG5leHRSb3dJbmRleCA+PSBkYXlzSW5Db2x1bW4ubGVuZ3RoIHx8XG4gICAgICAgICAgICBkYXlzSW5Db2x1bW5bbmV4dFJvd0luZGV4XS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAnZGlzYWJsZWQnXG4gICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhDb2x1bW5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGxldCBuZXdSb3dJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBuZXdEYXlzSW5Db2x1bW5bbmV3Um93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJ1xuICAgICAgICAgICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1Jvd0luZGV4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0RheXNJbkNvbHVtbltuZXdSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5TmV4dE1vbnRoLm5leHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkYXlzSW5Db2x1bW5bbmV4dFJvd0luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXNQcmV2aW91c1dlZWtEYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Q29sdW1uXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUm93SW5kZXggPSB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhSb3cgLSAxO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBwcmV2aW91c1Jvd0luZGV4IDwgMCB8fFxuICAgICAgICAgICAgZGF5c0luQ29sdW1uW3ByZXZpb3VzUm93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICdkaXNhYmxlZCdcbiAgICAgICAgICAgICkgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXlzQnV0dG9uc0VsZW1SZWYuY2hhbmdlcy5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RGF5c0luQ29sdW1uID0gdGhpcy5nZXRBbGxEYXlzSW5Db2x1bW4oXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleENvbHVtblxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1Jvd0luZGV4ID0gbmV3RGF5c0luQ29sdW1uLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBuZXdEYXlzSW5Db2x1bW5bbmV3Um93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJ1xuICAgICAgICAgICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1Jvd0luZGV4LS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0RheXNJbkNvbHVtbltuZXdSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5UHJldmlvdXNNb250aC5uZXh0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGF5c0luQ29sdW1uW3ByZXZpb3VzUm93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVuYWJsZWREYXlzT2ZXZWVrKCk6IEVsZW1lbnRSZWZbXSB7XG4gICAgICAgIHJldHVybiBbLi4udGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLnRvQXJyYXkoKV0uZmlsdGVyKFxuICAgICAgICAgICAgdmFsdWUgPT4gdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgPT09IG51bGxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsbERheXNJbkNvbHVtbihpbmRleENvbHVtbjogbnVtYmVyKTogRWxlbWVudFJlZltdIHtcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLl9kYXlzQnV0dG9uc0VsZW1SZWYudG9BcnJheSgpXS5maWx0ZXIoXG4gICAgICAgICAgICB2YWx1ZSA9PlxuICAgICAgICAgICAgICAgICt2YWx1ZS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1jb2x1bW4taW5kZXgnKSA9PT1cbiAgICAgICAgICAgICAgICBpbmRleENvbHVtblxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -13,6 +13,9 @@ export class DatePickerHelper {
|
|
|
13
13
|
this._displayedMonthYear = new BehaviorSubject(null);
|
|
14
14
|
this.loadLocale = (language) => import(`dayjs/locale/${language}`).then(() => dayjs.locale(language));
|
|
15
15
|
}
|
|
16
|
+
get displayedMonthYear() {
|
|
17
|
+
return this._displayedMonthYear.asObservable();
|
|
18
|
+
}
|
|
16
19
|
static getWeekday(date) {
|
|
17
20
|
const dayOfWeek = dayjs(date).format('dddd');
|
|
18
21
|
const weekDays = dayjs.weekdays();
|
|
@@ -27,9 +30,6 @@ export class DatePickerHelper {
|
|
|
27
30
|
static getNextMonth(year, month) {
|
|
28
31
|
return dayjs(`${year}-${month}-01`).add(1, 'month');
|
|
29
32
|
}
|
|
30
|
-
get displayedMonthYear() {
|
|
31
|
-
return this._displayedMonthYear.asObservable();
|
|
32
|
-
}
|
|
33
33
|
getWeekDays() {
|
|
34
34
|
const weekDays = [...dayjs.weekdays()];
|
|
35
35
|
// we need Lundi as first day of the week
|
|
@@ -123,4 +123,4 @@ export class DatePickerHelper {
|
|
|
123
123
|
return weeks;
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2RhdGUtcGlja2VyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxVQUFVLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXpCLE1BQU0sT0FBTyxnQkFBZ0I7SUFBN0I7UUFLYSx1QkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDNUIsK0JBQTBCLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLDZCQUF3QixHQUFHLEdBQUcsQ0FBQztRQUV2QixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQix1QkFBa0IsR0FBRyxZQUFZLENBQUM7UUFDbEMseUJBQW9CLEdBQUcsYUFBYSxDQUFDO1FBRTlDLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFZLElBQUksQ0FBQyxDQUFDO1FBcUJuRSxlQUFVLEdBQUcsQ0FBQyxRQUFnQixFQUFvQixFQUFFLENBQ2hELE1BQU0sQ0FBQyxnQkFBZ0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBOEs5RSxDQUFDO0lBbE1XLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBWTtRQUNsQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVsQyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM3RCxPQUFPLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDdkQsT0FBTyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQ25ELE9BQU8sS0FBSyxDQUFDLEdBQUcsSUFBSSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBS0QsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkMseUNBQXlDO1FBQ3pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFaEMsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVELGVBQWUsQ0FDWCxXQUFtQixFQUNuQixZQUFvQixFQUNwQixVQUFtQjtRQUVuQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFFaEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQ25ELFdBQVcsRUFDWCxZQUFZLENBQ2YsQ0FBQztRQUNGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUNyRCxXQUFXLEVBQ1gsWUFBWSxFQUNaLGdCQUFnQixDQUNuQixDQUFDO1FBQ0YsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUM3QyxXQUFXLEVBQ1gsWUFBWSxFQUNaLGdCQUFnQixDQUNuQixDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQUc7WUFDVCxHQUFHLGlCQUFpQjtZQUNwQixHQUFHLGdCQUFnQjtZQUNuQixHQUFHLGFBQWE7U0FDbkIsQ0FBQztRQUVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7WUFDMUIsSUFBSSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7WUFDaEQsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUU7U0FDckQsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FDM0MsSUFBSSxDQUFDLFdBQVcsRUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FDcEIsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FDdkIsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFDekMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FDcEQsQ0FBQztJQUNOLENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQ25ELElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxZQUFZLENBQ3BCLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxlQUFlLENBQ3ZCLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQzdDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQ3hELENBQUM7SUFDTixDQUFDO0lBRU8seUJBQXlCLENBQUMsSUFBWSxFQUFFLEtBQWE7UUFDekQsT0FBTztZQUNILEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNqRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNqQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLElBQUksS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELE9BQU87Z0JBQ0gsSUFBSTtnQkFDSixZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2xELGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztnQkFDdEQsVUFBVSxFQUFFLEtBQUssR0FBRyxDQUFDO2dCQUNyQixjQUFjLEVBQUUsSUFBSTthQUN2QixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sMEJBQTBCLENBQzlCLElBQVksRUFDWixLQUFhLEVBQ2IsZ0JBQTRCO1FBRTVCLE1BQU0seUJBQXlCLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUN6RCxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQ25DLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFckUsNENBQTRDO1FBQzVDLE1BQU0sb0NBQW9DLEdBQUcseUJBQXlCO1lBQ2xFLENBQUMsQ0FBQyx5QkFBeUIsR0FBRyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFUixNQUFNLGlDQUFpQyxHQUFHLEtBQUssQ0FDM0MsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUNuQzthQUNJLFFBQVEsQ0FBQyxvQ0FBb0MsRUFBRSxLQUFLLENBQUM7YUFDckQsSUFBSSxFQUFFLENBQUM7UUFFWixPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FDdkQsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDWCxNQUFNLElBQUksR0FBRyxLQUFLLENBQ2QsR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksYUFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFDaEQsaUNBQWlDLEdBQUcsS0FDeEMsRUFBRSxDQUNMLENBQUM7WUFDRixPQUFPO2dCQUNILElBQUk7Z0JBQ0osWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUNsRCxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3RELFVBQVUsRUFBRSxpQ0FBaUMsR0FBRyxLQUFLO2dCQUNyRCxjQUFjLEVBQUUsS0FBSzthQUN4QixDQUFDO1FBQ04sQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRU8sc0JBQXNCLENBQzFCLElBQVksRUFDWixLQUFhLEVBQ2IsZ0JBQTRCO1FBRTVCLE1BQU0sd0JBQXdCLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUN4RCxHQUFHLElBQUksSUFBSSxLQUFLLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQ2hELENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTdELE1BQU0sZ0NBQWdDLEdBQUcsd0JBQXdCO1lBQzdELENBQUMsQ0FBQyxDQUFDLEdBQUcsd0JBQXdCO1lBQzlCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFUixPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FDbkQsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDWCxNQUFNLElBQUksR0FBRyxLQUFLLENBQ2QsR0FBRyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQzlELENBQUM7WUFDRixPQUFPO2dCQUNILElBQUk7Z0JBQ0osWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUNsRCxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7Z0JBQ3RELFVBQVUsRUFBRSxLQUFLLEdBQUcsQ0FBQztnQkFDckIsY0FBYyxFQUFFLEtBQUs7YUFDeEIsQ0FBQztRQUNOLENBQUMsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQWdCO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNuRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5QixLQUFLLENBQUMsSUFBSSxDQUNOLElBQUksQ0FBQyxLQUFLLENBQ04sQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQ3hCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQ2pDLENBQ0osQ0FBQztTQUNMO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF5TW9udGggfSBmcm9tICcuL2RheS1tb250aC50eXBlJztcbmltcG9ydCB7IE1vbnRoWWVhciB9IGZyb20gJy4vbW9udGgteWVhci50eXBlJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgbG9jYWxlRGF0YSBmcm9tICdkYXlqcy9wbHVnaW4vbG9jYWxlRGF0YSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZGF5anMuZXh0ZW5kKGxvY2FsZURhdGEpO1xuXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckhlbHBlciB7XG4gICAgaW5pdGlhbE1vbnRoOiBzdHJpbmc7XG4gICAgaW5pdGlhbFllYXI6IHN0cmluZztcbiAgICBpbml0aWFsRGF5OiBzdHJpbmc7XG5cbiAgICByZWFkb25seSBZRUFSX1NUUklOR19GT1JNQVQgPSAnWVlZWSc7XG4gICAgcmVhZG9ubHkgTU9OVEhfU1RSSU5HX05VTUJFUl9GT1JNQVQgPSAnTSc7XG4gICAgcmVhZG9ubHkgREFZX1NUUklOR19OVU1CRVJfRk9STUFUID0gJ0QnO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBOQl9EQVlTX0lOX1dFRUsgPSA3O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgREFURV9TVFJJTkdfRk9STUFUID0gJ1lZWVktTU0tREQnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgREFURV9SRUFEQUJMRV9GT1JNQVQgPSAnRCBNTU1NIFlZWVknO1xuXG4gICAgcHJpdmF0ZSBfZGlzcGxheWVkTW9udGhZZWFyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNb250aFllYXI+KG51bGwpO1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0V2Vla2RheShkYXRlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBkYXlPZldlZWsgPSBkYXlqcyhkYXRlKS5mb3JtYXQoJ2RkZGQnKTtcbiAgICAgICAgY29uc3Qgd2Vla0RheXMgPSBkYXlqcy53ZWVrZGF5cygpO1xuXG4gICAgICAgIHJldHVybiB3ZWVrRGF5cy5pbmRleE9mKGRheU9mV2Vlayk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TnVtYmVyT2ZEYXlzSW5Nb250aCh5ZWFyOiBzdHJpbmcsIG1vbnRoOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZGF5anMoYCR7eWVhcn0tJHttb250aH0tMDFgKS5kYXlzSW5Nb250aCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFByZXZpb3VzTW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogZGF5anMuRGF5anMge1xuICAgICAgICByZXR1cm4gZGF5anMoYCR7eWVhcn0tJHttb250aH0tMDFgKS5zdWJ0cmFjdCgxLCAnbW9udGgnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXROZXh0TW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogZGF5anMuRGF5anMge1xuICAgICAgICByZXR1cm4gZGF5anMoYCR7eWVhcn0tJHttb250aH0tMDFgKS5hZGQoMSwgJ21vbnRoJyk7XG4gICAgfVxuXG4gICAgbG9hZExvY2FsZSA9IChsYW5ndWFnZTogc3RyaW5nKTogUHJvbWlzZTx1bmtub3duPiA9PlxuICAgICAgICBpbXBvcnQoYGRheWpzL2xvY2FsZS8ke2xhbmd1YWdlfWApLnRoZW4oKCkgPT4gZGF5anMubG9jYWxlKGxhbmd1YWdlKSk7XG5cbiAgICBnZXQgZGlzcGxheWVkTW9udGhZZWFyKCk6IE9ic2VydmFibGU8TW9udGhZZWFyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5ZWRNb250aFllYXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0V2Vla0RheXMoKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCB3ZWVrRGF5cyA9IFsuLi5kYXlqcy53ZWVrZGF5cygpXTtcbiAgICAgICAgLy8gd2UgbmVlZCBMdW5kaSBhcyBmaXJzdCBkYXkgb2YgdGhlIHdlZWtcbiAgICAgICAgd2Vla0RheXMucHVzaCh3ZWVrRGF5cy5zaGlmdCgpKTtcblxuICAgICAgICByZXR1cm4gd2Vla0RheXM7XG4gICAgfVxuXG4gICAgZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICBpbml0aWFsWWVhcjogc3RyaW5nLFxuICAgICAgICBpbml0aWFsTW9udGg6IHN0cmluZyxcbiAgICAgICAgaW5pdGlhbERheT86IHN0cmluZ1xuICAgICk6IERheU1vbnRoW11bXSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbFllYXIgPSBpbml0aWFsWWVhcjtcbiAgICAgICAgdGhpcy5pbml0aWFsTW9udGggPSBpbml0aWFsTW9udGg7XG4gICAgICAgIHRoaXMuaW5pdGlhbERheSA9IGluaXRpYWxEYXkgPyBpbml0aWFsRGF5IDogJzEnO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb250aERheXMgPSB0aGlzLmNyZWF0ZURheXNGb3JDdXJyZW50TW9udGgoXG4gICAgICAgICAgICBpbml0aWFsWWVhcixcbiAgICAgICAgICAgIGluaXRpYWxNb250aFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBwcmV2aW91c01vbnRoRGF5cyA9IHRoaXMuY3JlYXRlRGF5c0ZvclByZXZpb3VzTW9udGgoXG4gICAgICAgICAgICBpbml0aWFsWWVhcixcbiAgICAgICAgICAgIGluaXRpYWxNb250aCxcbiAgICAgICAgICAgIGN1cnJlbnRNb250aERheXNcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRoRGF5cyA9IHRoaXMuY3JlYXRlRGF5c0Zvck5leHRNb250aChcbiAgICAgICAgICAgIGluaXRpYWxZZWFyLFxuICAgICAgICAgICAgaW5pdGlhbE1vbnRoLFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBkYXlzID0gW1xuICAgICAgICAgICAgLi4ucHJldmlvdXNNb250aERheXMsXG4gICAgICAgICAgICAuLi5jdXJyZW50TW9udGhEYXlzLFxuICAgICAgICAgICAgLi4ubmV4dE1vbnRoRGF5c1xuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuX2Rpc3BsYXllZE1vbnRoWWVhci5uZXh0KHtcbiAgICAgICAgICAgIHllYXI6IGN1cnJlbnRNb250aERheXNbMF0uZGF0ZS55ZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIG1vbnRoOiBjdXJyZW50TW9udGhEYXlzWzBdLmRhdGUubW9udGgoKS50b1N0cmluZygpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkV2Vla3NPZk1vbnRoKGRheXMpO1xuICAgIH1cblxuICAgIGdldE5leHRXZWVrc09mTW9udGgoKTogRGF5TW9udGhbXVtdIHtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRoID0gRGF0ZVBpY2tlckhlbHBlci5nZXROZXh0TW9udGgoXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxZZWFyLFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsTW9udGhcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICBuZXh0TW9udGguZm9ybWF0KHRoaXMuWUVBUl9TVFJJTkdfRk9STUFUKSxcbiAgICAgICAgICAgIG5leHRNb250aC5mb3JtYXQodGhpcy5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRQcmV2aW91c1dlZWtzT2ZNb250aCgpOiBEYXlNb250aFtdW10ge1xuICAgICAgICBjb25zdCBwcmV2aW91c01vbnRoID0gRGF0ZVBpY2tlckhlbHBlci5nZXRQcmV2aW91c01vbnRoKFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsWWVhcixcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbE1vbnRoXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICAgICAgcHJldmlvdXNNb250aC5mb3JtYXQodGhpcy5ZRUFSX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgcHJldmlvdXNNb250aC5mb3JtYXQodGhpcy5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURheXNGb3JDdXJyZW50TW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogRGF5TW9udGhbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5BcnJheShEYXRlUGlja2VySGVscGVyLmdldE51bWJlck9mRGF5c0luTW9udGgoeWVhciwgbW9udGgpKVxuICAgICAgICBdLm1hcCgoZGF5LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGRheWpzKGAke3llYXJ9LSR7bW9udGh9LSR7aW5kZXggKyAxfWApO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgIGRhdGVBc1N0cmluZzogZGF0ZS5mb3JtYXQodGhpcy5EQVRFX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICBkYXlPZk1vbnRoOiBpbmRleCArIDEsXG4gICAgICAgICAgICAgICAgaXNDdXJyZW50TW9udGg6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGF5c0ZvclByZXZpb3VzTW9udGgoXG4gICAgICAgIHllYXI6IHN0cmluZyxcbiAgICAgICAgbW9udGg6IHN0cmluZyxcbiAgICAgICAgY3VycmVudE1vbnRoRGF5czogRGF5TW9udGhbXVxuICAgICk6IERheU1vbnRoW10ge1xuICAgICAgICBjb25zdCBmaXJzdERheU9mVGhlTW9udGhXZWVrZGF5ID0gRGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrZGF5KFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1swXS5kYXRlQXNTdHJpbmdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNNb250aCA9IERhdGVQaWNrZXJIZWxwZXIuZ2V0UHJldmlvdXNNb250aCh5ZWFyLCBtb250aCk7XG5cbiAgICAgICAgLy8gQ292ZXIgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBiZWluZyBzdW5kYXlcbiAgICAgICAgY29uc3QgdmlzaWJsZU51bWJlck9mRGF5c0Zyb21QcmV2aW91c01vbnRoID0gZmlyc3REYXlPZlRoZU1vbnRoV2Vla2RheVxuICAgICAgICAgICAgPyBmaXJzdERheU9mVGhlTW9udGhXZWVrZGF5IC0gMVxuICAgICAgICAgICAgOiA2O1xuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzTW9udGhMYXN0TW9uZGF5RGF5T2ZNb250aCA9IGRheWpzKFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1swXS5kYXRlQXNTdHJpbmdcbiAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnRyYWN0KHZpc2libGVOdW1iZXJPZkRheXNGcm9tUHJldmlvdXNNb250aCwgJ2RheScpXG4gICAgICAgICAgICAuZGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiBbLi4uQXJyYXkodmlzaWJsZU51bWJlck9mRGF5c0Zyb21QcmV2aW91c01vbnRoKV0ubWFwKFxuICAgICAgICAgICAgKGRheSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gZGF5anMoXG4gICAgICAgICAgICAgICAgICAgIGAke3ByZXZpb3VzTW9udGgueWVhcigpfS0ke3ByZXZpb3VzTW9udGgubW9udGgoKSArIDF9LSR7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c01vbnRoTGFzdE1vbmRheURheU9mTW9udGggKyBpbmRleFxuICAgICAgICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUFzU3RyaW5nOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5T2ZNb250aDogcHJldmlvdXNNb250aExhc3RNb25kYXlEYXlPZk1vbnRoICsgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGlzQ3VycmVudE1vbnRoOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEYXlzRm9yTmV4dE1vbnRoKFxuICAgICAgICB5ZWFyOiBzdHJpbmcsXG4gICAgICAgIG1vbnRoOiBzdHJpbmcsXG4gICAgICAgIGN1cnJlbnRNb250aERheXM6IERheU1vbnRoW11cbiAgICApOiBEYXlNb250aFtdIHtcbiAgICAgICAgY29uc3QgbGFzdERheU9mVGhlTW9udGhXZWVrZGF5ID0gRGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrZGF5KFxuICAgICAgICAgICAgYCR7eWVhcn0tJHttb250aH0tJHtjdXJyZW50TW9udGhEYXlzLmxlbmd0aH1gXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5leHRNb250aCA9IERhdGVQaWNrZXJIZWxwZXIuZ2V0TmV4dE1vbnRoKHllYXIsIG1vbnRoKTtcblxuICAgICAgICBjb25zdCB2aXNpYmxlTnVtYmVyT2ZEYXlzRnJvbU5leHRNb250aCA9IGxhc3REYXlPZlRoZU1vbnRoV2Vla2RheVxuICAgICAgICAgICAgPyA3IC0gbGFzdERheU9mVGhlTW9udGhXZWVrZGF5XG4gICAgICAgICAgICA6IDA7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5BcnJheSh2aXNpYmxlTnVtYmVyT2ZEYXlzRnJvbU5leHRNb250aCldLm1hcChcbiAgICAgICAgICAgIChkYXksIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGRheWpzKFxuICAgICAgICAgICAgICAgICAgICBgJHtuZXh0TW9udGgueWVhcigpfS0ke25leHRNb250aC5tb250aCgpICsgMX0tJHtpbmRleCArIDF9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUFzU3RyaW5nOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5T2ZNb250aDogaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBpc0N1cnJlbnRNb250aDogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRXZWVrc09mTW9udGgoZGF5czogRGF5TW9udGhbXSk6IERheU1vbnRoW11bXSB7XG4gICAgICAgIGNvbnN0IG5iV2Vla3MgPSBkYXlzLmxlbmd0aCAvIHRoaXMuTkJfREFZU19JTl9XRUVLO1xuICAgICAgICBjb25zdCB3ZWVrcyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmJXZWVrczsgaSsrKSB7XG4gICAgICAgICAgICB3ZWVrcy5wdXNoKFxuICAgICAgICAgICAgICAgIGRheXMuc2xpY2UoXG4gICAgICAgICAgICAgICAgICAgIGkgKiB0aGlzLk5CX0RBWVNfSU5fV0VFSyxcbiAgICAgICAgICAgICAgICAgICAgKGkgKyAxKSAqIHRoaXMuTkJfREFZU19JTl9XRUVLXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB3ZWVrcztcbiAgICB9XG59XG4iXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2RhdGUtcGlja2VyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxVQUFVLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXpCLE1BQU0sT0FBTyxnQkFBZ0I7SUFBN0I7UUFLYSx1QkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDNUIsK0JBQTBCLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLDZCQUF3QixHQUFHLEdBQUcsQ0FBQztRQUV2QixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQix1QkFBa0IsR0FBRyxZQUFZLENBQUM7UUFDbEMseUJBQW9CLEdBQUcsYUFBYSxDQUFDO1FBRTlDLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFZLElBQUksQ0FBQyxDQUFDO1FBeUJuRSxlQUFVLEdBQUcsQ0FBQyxRQUFnQixFQUFvQixFQUFFLENBQ2hELE1BQU0sQ0FBQyxnQkFBZ0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBMEs5RSxDQUFDO0lBbE1HLElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFTyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQVk7UUFDbEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FB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eS1tb250aC50eXBlJztcbmltcG9ydCB7IE1vbnRoWWVhciB9IGZyb20gJy4vbW9udGgteWVhci50eXBlJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgbG9jYWxlRGF0YSBmcm9tICdkYXlqcy9wbHVnaW4vbG9jYWxlRGF0YSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZGF5anMuZXh0ZW5kKGxvY2FsZURhdGEpO1xuXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckhlbHBlciB7XG4gICAgaW5pdGlhbE1vbnRoOiBzdHJpbmc7XG4gICAgaW5pdGlhbFllYXI6IHN0cmluZztcbiAgICBpbml0aWFsRGF5OiBzdHJpbmc7XG5cbiAgICByZWFkb25seSBZRUFSX1NUUklOR19GT1JNQVQgPSAnWVlZWSc7XG4gICAgcmVhZG9ubHkgTU9OVEhfU1RSSU5HX05VTUJFUl9GT1JNQVQgPSAnTSc7XG4gICAgcmVhZG9ubHkgREFZX1NUUklOR19OVU1CRVJfRk9STUFUID0gJ0QnO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBOQl9EQVlTX0lOX1dFRUsgPSA3O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgREFURV9TVFJJTkdfRk9STUFUID0gJ1lZWVktTU0tREQnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgREFURV9SRUFEQUJMRV9GT1JNQVQgPSAnRCBNTU1NIFlZWVknO1xuXG4gICAgcHJpdmF0ZSBfZGlzcGxheWVkTW9udGhZZWFyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNb250aFllYXI+KG51bGwpO1xuXG4gICAgZ2V0IGRpc3BsYXllZE1vbnRoWWVhcigpOiBPYnNlcnZhYmxlPE1vbnRoWWVhcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheWVkTW9udGhZZWFyLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFdlZWtkYXkoZGF0ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZGF5T2ZXZWVrID0gZGF5anMoZGF0ZSkuZm9ybWF0KCdkZGRkJyk7XG4gICAgICAgIGNvbnN0IHdlZWtEYXlzID0gZGF5anMud2Vla2RheXMoKTtcblxuICAgICAgICByZXR1cm4gd2Vla0RheXMuaW5kZXhPZihkYXlPZldlZWspO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldE51bWJlck9mRGF5c0luTW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3llYXJ9LSR7bW9udGh9LTAxYCkuZGF5c0luTW9udGgoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRQcmV2aW91c01vbnRoKHllYXI6IHN0cmluZywgbW9udGg6IHN0cmluZyk6IGRheWpzLkRheWpzIHtcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3llYXJ9LSR7bW9udGh9LTAxYCkuc3VidHJhY3QoMSwgJ21vbnRoJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TmV4dE1vbnRoKHllYXI6IHN0cmluZywgbW9udGg6IHN0cmluZyk6IGRheWpzLkRheWpzIHtcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3llYXJ9LSR7bW9udGh9LTAxYCkuYWRkKDEsICdtb250aCcpO1xuICAgIH1cblxuICAgIGxvYWRMb2NhbGUgPSAobGFuZ3VhZ2U6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4gPT5cbiAgICAgICAgaW1wb3J0KGBkYXlqcy9sb2NhbGUvJHtsYW5ndWFnZX1gKS50aGVuKCgpID0+IGRheWpzLmxvY2FsZShsYW5ndWFnZSkpO1xuXG4gICAgZ2V0V2Vla0RheXMoKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCB3ZWVrRGF5cyA9IFsuLi5kYXlqcy53ZWVrZGF5cygpXTtcbiAgICAgICAgLy8gd2UgbmVlZCBMdW5kaSBhcyBmaXJzdCBkYXkgb2YgdGhlIHdlZWtcbiAgICAgICAgd2Vla0RheXMucHVzaCh3ZWVrRGF5cy5zaGlmdCgpKTtcblxuICAgICAgICByZXR1cm4gd2Vla0RheXM7XG4gICAgfVxuXG4gICAgZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICBpbml0aWFsWWVhcjogc3RyaW5nLFxuICAgICAgICBpbml0aWFsTW9udGg6IHN0cmluZyxcbiAgICAgICAgaW5pdGlhbERheT86IHN0cmluZ1xuICAgICk6IERheU1vbnRoW11bXSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbFllYXIgPSBpbml0aWFsWWVhcjtcbiAgICAgICAgdGhpcy5pbml0aWFsTW9udGggPSBpbml0aWFsTW9udGg7XG4gICAgICAgIHRoaXMuaW5pdGlhbERheSA9IGluaXRpYWxEYXkgPyBpbml0aWFsRGF5IDogJzEnO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb250aERheXMgPSB0aGlzLmNyZWF0ZURheXNGb3JDdXJyZW50TW9udGgoXG4gICAgICAgICAgICBpbml0aWFsWWVhcixcbiAgICAgICAgICAgIGluaXRpYWxNb250aFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBwcmV2aW91c01vbnRoRGF5cyA9IHRoaXMuY3JlYXRlRGF5c0ZvclByZXZpb3VzTW9udGgoXG4gICAgICAgICAgICBpbml0aWFsWWVhcixcbiAgICAgICAgICAgIGluaXRpYWxNb250aCxcbiAgICAgICAgICAgIGN1cnJlbnRNb250aERheXNcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRoRGF5cyA9IHRoaXMuY3JlYXRlRGF5c0Zvck5leHRNb250aChcbiAgICAgICAgICAgIGluaXRpYWxZZWFyLFxuICAgICAgICAgICAgaW5pdGlhbE1vbnRoLFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBkYXlzID0gW1xuICAgICAgICAgICAgLi4ucHJldmlvdXNNb250aERheXMsXG4gICAgICAgICAgICAuLi5jdXJyZW50TW9udGhEYXlzLFxuICAgICAgICAgICAgLi4ubmV4dE1vbnRoRGF5c1xuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuX2Rpc3BsYXllZE1vbnRoWWVhci5uZXh0KHtcbiAgICAgICAgICAgIHllYXI6IGN1cnJlbnRNb250aERheXNbMF0uZGF0ZS55ZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIG1vbnRoOiBjdXJyZW50TW9udGhEYXlzWzBdLmRhdGUubW9udGgoKS50b1N0cmluZygpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkV2Vla3NPZk1vbnRoKGRheXMpO1xuICAgIH1cblxuICAgIGdldE5leHRXZWVrc09mTW9udGgoKTogRGF5TW9udGhbXVtdIHtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRoID0gRGF0ZVBpY2tlckhlbHBlci5nZXROZXh0TW9udGgoXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxZZWFyLFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsTW9udGhcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICBuZXh0TW9udGguZm9ybWF0KHRoaXMuWUVBUl9TVFJJTkdfRk9STUFUKSxcbiAgICAgICAgICAgIG5leHRNb250aC5mb3JtYXQodGhpcy5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRQcmV2aW91c1dlZWtzT2ZNb250aCgpOiBEYXlNb250aFtdW10ge1xuICAgICAgICBjb25zdCBwcmV2aW91c01vbnRoID0gRGF0ZVBpY2tlckhlbHBlci5nZXRQcmV2aW91c01vbnRoKFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsWWVhcixcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbE1vbnRoXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICAgICAgcHJldmlvdXNNb250aC5mb3JtYXQodGhpcy5ZRUFSX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgcHJldmlvdXNNb250aC5mb3JtYXQodGhpcy5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURheXNGb3JDdXJyZW50TW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogRGF5TW9udGhbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5BcnJheShEYXRlUGlja2VySGVscGVyLmdldE51bWJlck9mRGF5c0luTW9udGgoeWVhciwgbW9udGgpKVxuICAgICAgICBdLm1hcCgoZGF5LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGRheWpzKGAke3llYXJ9LSR7bW9udGh9LSR7aW5kZXggKyAxfWApO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgIGRhdGVBc1N0cmluZzogZGF0ZS5mb3JtYXQodGhpcy5EQVRFX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICBkYXlPZk1vbnRoOiBpbmRleCArIDEsXG4gICAgICAgICAgICAgICAgaXNDdXJyZW50TW9udGg6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGF5c0ZvclByZXZpb3VzTW9udGgoXG4gICAgICAgIHllYXI6IHN0cmluZyxcbiAgICAgICAgbW9udGg6IHN0cmluZyxcbiAgICAgICAgY3VycmVudE1vbnRoRGF5czogRGF5TW9udGhbXVxuICAgICk6IERheU1vbnRoW10ge1xuICAgICAgICBjb25zdCBmaXJzdERheU9mVGhlTW9udGhXZWVrZGF5ID0gRGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrZGF5KFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1swXS5kYXRlQXNTdHJpbmdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNNb250aCA9IERhdGVQaWNrZXJIZWxwZXIuZ2V0UHJldmlvdXNNb250aCh5ZWFyLCBtb250aCk7XG5cbiAgICAgICAgLy8gQ292ZXIgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBiZWluZyBzdW5kYXlcbiAgICAgICAgY29uc3QgdmlzaWJsZU51bWJlck9mRGF5c0Zyb21QcmV2aW91c01vbnRoID0gZmlyc3REYXlPZlRoZU1vbnRoV2Vla2RheVxuICAgICAgICAgICAgPyBmaXJzdERheU9mVGhlTW9udGhXZWVrZGF5IC0gMVxuICAgICAgICAgICAgOiA2O1xuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzTW9udGhMYXN0TW9uZGF5RGF5T2ZNb250aCA9IGRheWpzKFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1swXS5kYXRlQXNTdHJpbmdcbiAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnRyYWN0KHZpc2libGVOdW1iZXJPZkRheXNGcm9tUHJldmlvdXNNb250aCwgJ2RheScpXG4gICAgICAgICAgICAuZGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiBbLi4uQXJyYXkodmlzaWJsZU51bWJlck9mRGF5c0Zyb21QcmV2aW91c01vbnRoKV0ubWFwKFxuICAgICAgICAgICAgKGRheSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gZGF5anMoXG4gICAgICAgICAgICAgICAgICAgIGAke3ByZXZpb3VzTW9udGgueWVhcigpfS0ke3ByZXZpb3VzTW9udGgubW9udGgoKSArIDF9LSR7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c01vbnRoTGFzdE1vbmRheURheU9mTW9udGggKyBpbmRleFxuICAgICAgICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUFzU3RyaW5nOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5T2ZNb250aDogcHJldmlvdXNNb250aExhc3RNb25kYXlEYXlPZk1vbnRoICsgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGlzQ3VycmVudE1vbnRoOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEYXlzRm9yTmV4dE1vbnRoKFxuICAgICAgICB5ZWFyOiBzdHJpbmcsXG4gICAgICAgIG1vbnRoOiBzdHJpbmcsXG4gICAgICAgIGN1cnJlbnRNb250aERheXM6IERheU1vbnRoW11cbiAgICApOiBEYXlNb250aFtdIHtcbiAgICAgICAgY29uc3QgbGFzdERheU9mVGhlTW9udGhXZWVrZGF5ID0gRGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrZGF5KFxuICAgICAgICAgICAgYCR7eWVhcn0tJHttb250aH0tJHtjdXJyZW50TW9udGhEYXlzLmxlbmd0aH1gXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5leHRNb250aCA9IERhdGVQaWNrZXJIZWxwZXIuZ2V0TmV4dE1vbnRoKHllYXIsIG1vbnRoKTtcblxuICAgICAgICBjb25zdCB2aXNpYmxlTnVtYmVyT2ZEYXlzRnJvbU5leHRNb250aCA9IGxhc3REYXlPZlRoZU1vbnRoV2Vla2RheVxuICAgICAgICAgICAgPyA3IC0gbGFzdERheU9mVGhlTW9udGhXZWVrZGF5XG4gICAgICAgICAgICA6IDA7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5BcnJheSh2aXNpYmxlTnVtYmVyT2ZEYXlzRnJvbU5leHRNb250aCldLm1hcChcbiAgICAgICAgICAgIChkYXksIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGRheWpzKFxuICAgICAgICAgICAgICAgICAgICBgJHtuZXh0TW9udGgueWVhcigpfS0ke25leHRNb250aC5tb250aCgpICsgMX0tJHtpbmRleCArIDF9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUFzU3RyaW5nOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5T2ZNb250aDogaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBpc0N1cnJlbnRNb250aDogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRXZWVrc09mTW9udGgoZGF5czogRGF5TW9udGhbXSk6IERheU1vbnRoW11bXSB7XG4gICAgICAgIGNvbnN0IG5iV2Vla3MgPSBkYXlzLmxlbmd0aCAvIHRoaXMuTkJfREFZU19JTl9XRUVLO1xuICAgICAgICBjb25zdCB3ZWVrcyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmJXZWVrczsgaSsrKSB7XG4gICAgICAgICAgICB3ZWVrcy5wdXNoKFxuICAgICAgICAgICAgICAgIGRheXMuc2xpY2UoXG4gICAgICAgICAgICAgICAgICAgIGkgKiB0aGlzLk5CX0RBWVNfSU5fV0VFSyxcbiAgICAgICAgICAgICAgICAgICAgKGkgKyAxKSAqIHRoaXMuTkJfREFZU19JTl9XRUVLXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB3ZWVrcztcbiAgICB9XG59XG4iXX0=
|
package/{esm2015/foehn-date-picker/day-month.type.js → esm2020/foehn-date-picker/day-month.type.mjs}
RENAMED
|
File without changes
|
|
File without changes
|
|
@@ -35,16 +35,6 @@ export class FoehnDatePickerComponent {
|
|
|
35
35
|
this.displayNextMonthSubscription = this.datePickerNavigationHelper.displayNextMonth.subscribe(() => this.nextMonth());
|
|
36
36
|
this.displayPreviousMonthSubscription = this.datePickerNavigationHelper.displayPreviousMonth.subscribe(() => this.previousMonth());
|
|
37
37
|
}
|
|
38
|
-
handleKeyboardUpEvent(event) {
|
|
39
|
-
if (this.closeable && event.key === 'Escape') {
|
|
40
|
-
this.isDatepickerVisible = false;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
handleKeyboardDownEvent(event) {
|
|
44
|
-
if (this.keyboardNavigationAllowed) {
|
|
45
|
-
this.onKeyDownInner(event);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
38
|
get isDatepickerVisible() {
|
|
49
39
|
return this.isVisible;
|
|
50
40
|
}
|
|
@@ -60,11 +50,22 @@ export class FoehnDatePickerComponent {
|
|
|
60
50
|
this.focusDefaultDay();
|
|
61
51
|
this.focusOnDatepickerTrigger(wasOpen, val);
|
|
62
52
|
}
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/member-ordering
|
|
54
|
+
get model() {
|
|
55
|
+
return this.model_;
|
|
56
|
+
}
|
|
63
57
|
set model(value) {
|
|
64
58
|
this.onModelChange(value);
|
|
65
59
|
}
|
|
66
|
-
|
|
67
|
-
|
|
60
|
+
handleKeyboardUpEvent(event) {
|
|
61
|
+
if (this.closeable && event.key === 'Escape') {
|
|
62
|
+
this.isDatepickerVisible = false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
handleKeyboardDownEvent(event) {
|
|
66
|
+
if (this.keyboardNavigationAllowed) {
|
|
67
|
+
this.onKeyDownInner(event);
|
|
68
|
+
}
|
|
68
69
|
}
|
|
69
70
|
ngOnInit() {
|
|
70
71
|
this.currentLanguageCodeSubscription = this.dictionary
|
|
@@ -260,15 +261,11 @@ export class FoehnDatePickerComponent {
|
|
|
260
261
|
return false;
|
|
261
262
|
}
|
|
262
263
|
}
|
|
263
|
-
FoehnDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
264
|
-
FoehnDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
265
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
264
|
+
FoehnDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnDatePickerComponent, deps: [{ token: i1.SdkDictionaryService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
265
|
+
FoehnDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FoehnDatePickerComponent, selector: "foehn-date-picker", inputs: { minYear: "minYear", maxYear: "maxYear", datepickerTriggerHtmlElement: "datepickerTriggerHtmlElement", closeable: "closeable", isDatepickerVisible: "isDatepickerVisible", model: "model" }, outputs: { modelChange: "modelChange", userInput: "userInput", isDatepickerVisibleChange: "isDatepickerVisibleChange" }, host: { listeners: { "keyup": "handleKeyboardUpEvent($event)", "keydown": "handleKeyboardDownEvent($event)" } }, viewQueries: [{ propertyName: "daysButtonsElemRef", predicate: ["dayButtonElemRef"], descendants: true }], ngImport: i0, template: "<div\n id=\"datepicker_wrapper\"\n *ngIf=\"isDatepickerVisible\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n>\n <button\n *ngIf=\"closeable\"\n (click)=\"isDatepickerVisible = false\"\n type=\"button\"\n class=\"btn close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n id=\"closeButton\"\n >\n <span aria-hidden=\"true\">×</span>\n </button>\n <div id=\"datepicker_header\" class=\"d-flex justify-content-between\">\n <button\n id=\"previous-month\"\n class=\"btn btn-link\"\n (click)=\"previousMonth()\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-left>\n </button>\n <ng-container *ngIf=\"currentMonthYear | async as monthYear\">\n <span id=\"month-year-label\" aria-live=\"polite\" class=\"sr-only\">\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }} {{ monthYear.year }}\n </span>\n <foehn-select\n id=\"month-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"false\"\n (userInput)=\"userInputMonth($event)\"\n ></foehn-select>\n <foehn-select\n id=\"year-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem\"\n [model]=\"monthYear.year\"\n [required]=\"false\"\n (userInput)=\"userInputYear($event)\"\n ></foehn-select>\n </ng-container>\n <button id=\"next-month\" class=\"btn btn-link\" (click)=\"nextMonth()\">\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title' | fromDictionary\n \"\n ></foehn-icon-chevron-right>\n </button>\n </div>\n <table\n id=\"datepicker_table\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n <th\n scope=\"col\"\n role=\"columnheader\"\n *ngFor=\"let weekday of weekDays\"\n >\n <foehn-abbr\n [text]=\"weekday.substr(0, 2)\"\n [title]=\"weekday\"\n ></foehn-abbr>\n </th>\n </tr>\n </thead>\n <tbody role=\"presentation\">\n <tr role=\"row\" *ngFor=\"let week of weeks; let indexRow = index\">\n <td\n role=\"gridcell\"\n *ngFor=\"let dayOfWeek of week; let indexColumn = index\"\n >\n <button\n class=\"btn w-100\"\n #dayButtonElemRef\n [id]=\"'day_' + indexRow + '_' + indexColumn\"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"!isToday(dayOfWeek.date)\"\n [class.btn-secondary]=\"isToday(dayOfWeek.date)\"\n [class.btn-danger]=\"isSelected(dayOfWeek.date)\"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"isToday(dayOfWeek.date)\"\n [attr.data-is-selected]=\"isSelected(dayOfWeek.date)\"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [disabled]=\"!dayOfWeek.isCurrentMonth\"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host ::ng-deep .btn-link .svg-inline--fa{color:#000!important}#datepicker_header{margin-bottom:10px}#datepicker_wrapper{max-width:245px;padding:5px;border:1px solid #dfdfdf;background-color:#fff}#datepicker_wrapper .h4{margin-bottom:0}#datepicker_wrapper thead th{text-align:center;width:15%}#datepicker_wrapper .btn{padding:2px 4px}#datepicker_wrapper button.close{position:absolute;right:-14px;top:-18px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:30px;height:30px;opacity:1}#datepicker_wrapper #month-input{width:50%;margin-right:5px}:host ::ng-deep foehn-select select.form-control{padding:0;margin:0;height:30px}:host ::ng-deep foehn-select .form-group{margin:0}\n"], components: [{ type: i2.FoehnIconChevronLeftComponent, selector: "foehn-icon-chevron-left" }, { type: i3.FoehnSelectComponent, selector: "foehn-select", inputs: ["multiple"] }, { type: i4.FoehnIconChevronRightComponent, selector: "foehn-icon-chevron-right" }, { type: i5.FoehnAbbrComponent, selector: "foehn-abbr", inputs: ["title", "text"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fromDictionary": i8.SdkDictionaryPipe, "async": i6.AsyncPipe } });
|
|
266
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FoehnDatePickerComponent, decorators: [{
|
|
266
267
|
type: Component,
|
|
267
|
-
args: [{
|
|
268
|
-
selector: 'foehn-date-picker',
|
|
269
|
-
templateUrl: './foehn-date-picker.component.html',
|
|
270
|
-
styleUrls: ['./foehn-date-picker.component.css']
|
|
271
|
-
}]
|
|
268
|
+
args: [{ selector: 'foehn-date-picker', template: "<div\n id=\"datepicker_wrapper\"\n *ngIf=\"isDatepickerVisible\"\n [cdkTrapFocus]=\"!!datepickerTriggerHtmlElement\"\n tabindex=\"-1\"\n role=\"application\"\n [attr.aria-label]=\"\n 'foehn-date-picker.container.aria-label' | fromDictionary\n \"\n>\n <button\n *ngIf=\"closeable\"\n (click)=\"isDatepickerVisible = false\"\n type=\"button\"\n class=\"btn close\"\n [attr.aria-label]=\"\n 'foehn-date-picker.close-button.aria-label' | fromDictionary\n \"\n id=\"closeButton\"\n >\n <span aria-hidden=\"true\">×</span>\n </button>\n <div id=\"datepicker_header\" class=\"d-flex justify-content-between\">\n <button\n id=\"previous-month\"\n class=\"btn btn-link\"\n (click)=\"previousMonth()\"\n >\n <foehn-icon-chevron-left\n [title]=\"\n 'foehn-date-picker.previous-month-button.title'\n | fromDictionary\n \"\n ></foehn-icon-chevron-left>\n </button>\n <ng-container *ngIf=\"currentMonthYear | async as monthYear\">\n <span id=\"month-year-label\" aria-live=\"polite\" class=\"sr-only\">\n {{\n 'foehn-date-picker.screen-reader.actual-month-displayed'\n | fromDictionary\n }}\n {{ getMonthAsReadable(monthYear.month) }} {{ monthYear.year }}\n </span>\n <foehn-select\n id=\"month-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.month-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"monthListItem\"\n [model]=\"monthYear.month\"\n [required]=\"false\"\n (userInput)=\"userInputMonth($event)\"\n ></foehn-select>\n <foehn-select\n id=\"year-input\"\n class=\"align-self-center\"\n [label]=\"\n 'foehn-date-picker.screen-reader.year-input.label'\n | fromDictionary\n \"\n [isLabelSrOnly]=\"true\"\n [elements]=\"yearListItem\"\n [model]=\"monthYear.year\"\n [required]=\"false\"\n (userInput)=\"userInputYear($event)\"\n ></foehn-select>\n </ng-container>\n <button id=\"next-month\" class=\"btn btn-link\" (click)=\"nextMonth()\">\n <foehn-icon-chevron-right\n [title]=\"\n 'foehn-date-picker.next-month-button.title' | fromDictionary\n \"\n ></foehn-icon-chevron-right>\n </button>\n </div>\n <table\n id=\"datepicker_table\"\n role=\"grid\"\n (focusin)=\"onDaysFocusin()\"\n (focusout)=\"onDaysFocusout()\"\n >\n <thead role=\"presentation\" aria-hidden=\"true\">\n <tr role=\"row\">\n <th\n scope=\"col\"\n role=\"columnheader\"\n *ngFor=\"let weekday of weekDays\"\n >\n <foehn-abbr\n [text]=\"weekday.substr(0, 2)\"\n [title]=\"weekday\"\n ></foehn-abbr>\n </th>\n </tr>\n </thead>\n <tbody role=\"presentation\">\n <tr role=\"row\" *ngFor=\"let week of weeks; let indexRow = index\">\n <td\n role=\"gridcell\"\n *ngFor=\"let dayOfWeek of week; let indexColumn = index\"\n >\n <button\n class=\"btn w-100\"\n #dayButtonElemRef\n [id]=\"'day_' + indexRow + '_' + indexColumn\"\n [tabindex]=\"getDayTabIndex(dayOfWeek)\"\n [class.btn-info]=\"!isToday(dayOfWeek.date)\"\n [class.btn-secondary]=\"isToday(dayOfWeek.date)\"\n [class.btn-danger]=\"isSelected(dayOfWeek.date)\"\n [attr.aria-label]=\"\n weekDays[indexColumn] +\n ' ' +\n dayOfWeek.dateAsReadable\n \"\n [attr.data-is-today]=\"isToday(dayOfWeek.date)\"\n [attr.data-is-selected]=\"isSelected(dayOfWeek.date)\"\n [attr.data-row-index]=\"indexRow\"\n [attr.data-column-index]=\"indexColumn\"\n [attr.day-number]=\"dayOfWeek.dayOfMonth\"\n [disabled]=\"!dayOfWeek.isCurrentMonth\"\n (click)=\"handleUserInput(dayOfWeek.date)\"\n >\n {{ dayOfWeek.dayOfMonth }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [":host ::ng-deep .btn-link .svg-inline--fa{color:#000!important}#datepicker_header{margin-bottom:10px}#datepicker_wrapper{max-width:245px;padding:5px;border:1px solid #dfdfdf;background-color:#fff}#datepicker_wrapper .h4{margin-bottom:0}#datepicker_wrapper thead th{text-align:center;width:15%}#datepicker_wrapper .btn{padding:2px 4px}#datepicker_wrapper button.close{position:absolute;right:-14px;top:-18px;background-color:#fff;border:1px solid #dfdfdf;border-radius:50%;width:30px;height:30px;opacity:1}#datepicker_wrapper #month-input{width:50%;margin-right:5px}:host ::ng-deep foehn-select select.form-control{padding:0;margin:0;height:30px}:host ::ng-deep foehn-select .form-group{margin:0}\n"] }]
|
|
272
269
|
}], ctorParameters: function () { return [{ type: i1.SdkDictionaryService }, { type: i0.NgZone }]; }, propDecorators: { minYear: [{
|
|
273
270
|
type: Input
|
|
274
271
|
}], maxYear: [{
|
|
@@ -286,15 +283,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
|
|
|
286
283
|
}], daysButtonsElemRef: [{
|
|
287
284
|
type: ViewChildren,
|
|
288
285
|
args: ['dayButtonElemRef']
|
|
286
|
+
}], isDatepickerVisible: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], model: [{
|
|
289
|
+
type: Input
|
|
289
290
|
}], handleKeyboardUpEvent: [{
|
|
290
291
|
type: HostListener,
|
|
291
292
|
args: ['keyup', ['$event']]
|
|
292
293
|
}], handleKeyboardDownEvent: [{
|
|
293
294
|
type: HostListener,
|
|
294
295
|
args: ['keydown', ['$event']]
|
|
295
|
-
}], isDatepickerVisible: [{
|
|
296
|
-
type: Input
|
|
297
|
-
}], model: [{
|
|
298
|
-
type: Input
|
|
299
296
|
}] } });
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2ZvZWhuLWRhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1kYXRlLXBpY2tlci9mb2Vobi1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztBQUU3RSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBT3RCLE1BQU0sT0FBTyx3QkFBd0I7SUE2Q2pDLFlBQ1ksVUFBZ0MsRUFDaEMsTUFBYztRQURkLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQVE7UUE1QzFCLFlBQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFHL0IsWUFBTyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztRQU05QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGdCQUFXLEdBQUcsSUFB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QkFEUixNQUFNO2dCQUlQLHlCQUF5QjtzQkFEeEIsTUFBTTtnQkFJUCxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsa0JBQWtCO2dCQW9DaEMscUJBQXFCO3NCQURwQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRakMsdUJBQXVCO3NCQUR0QixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRL0IsbUJBQW1CO3NCQUR0QixLQUFLO2dCQXNCRixLQUFLO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERheU1vbnRoIH0gZnJvbSAnLi9kYXktbW9udGgudHlwZSc7XG5pbXBvcnQgeyBNb250aFllYXIgfSBmcm9tICcuL21vbnRoLXllYXIudHlwZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VySGVscGVyIH0gZnJvbSAnLi9kYXRlLXBpY2tlci5oZWxwZXInO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9ybVNlbGVjdE9wdGlvbiB9IGZyb20gJy4uL2ZvZWhuLWNoZWNrYWJsZXMvZm9ybS1zZWxlY3Qtb3B0aW9uJztcblxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCBpc1RvZGF5IGZyb20gJ2RheWpzL3BsdWdpbi9pc1RvZGF5JztcbmltcG9ydCB7IERhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyIH0gZnJvbSAnLi9kYXRlLXBpY2tlci1uYXZpZ2F0aW9uLmhlbHBlcic7XG5cbmRheWpzLmV4dGVuZChpc1RvZGF5KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1kYXRlLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWRhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb2Vobi1kYXRlLXBpY2tlci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5EYXRlUGlja2VyQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KClcbiAgICBtaW5ZZWFyID0gZGF5anMoKS55ZWFyKCkgLSAxMDA7XG5cbiAgICBASW5wdXQoKVxuICAgIG1heFllYXIgPSBkYXlqcygpLnllYXIoKSArIDEwO1xuXG4gICAgQElucHV0KClcbiAgICBkYXRlcGlja2VyVHJpZ2dlckh0bWxFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VhYmxlID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHVzZXJJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyW10+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBpc0RhdGVwaWNrZXJWaXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZHJlbignZGF5QnV0dG9uRWxlbVJlZicpXG4gICAgZGF5c0J1dHRvbnNFbGVtUmVmOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgICB3ZWVrRGF5czogc3RyaW5nW10gPSBbXTtcbiAgICB3ZWVrczogRGF5TW9udGhbXVtdO1xuXG4gICAgc2VsZWN0ZWREYXRlOiBkYXlqcy5EYXlqcztcbiAgICBjdXJyZW50TW9udGhZZWFyOiBPYnNlcnZhYmxlPE1vbnRoWWVhcj47XG5cbiAgICBtb2RlbF86IG51bWJlcltdO1xuICAgIG1vbnRoTGlzdEl0ZW06IEZvcm1TZWxlY3RPcHRpb25bXSA9IFtdO1xuICAgIHllYXJMaXN0SXRlbTogRm9ybVNlbGVjdE9wdGlvbltdID0gW107XG5cbiAgICBwcml2YXRlIGlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIHByaXZhdGUga2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgY3VycmVudExhbmd1YWdlQ29kZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgZGF0ZVBpY2tlckhlbHBlciA9IG5ldyBEYXRlUGlja2VySGVscGVyKCk7XG4gICAgcHJpdmF0ZSBkYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlciA9IG5ldyBEYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlcigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNwbGF5TmV4dE1vbnRoU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNwbGF5UHJldmlvdXNNb250aFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZGljdGlvbmFyeTogU2RrRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgICApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50TW9udGhZZWFyID0gdGhpcy5kYXRlUGlja2VySGVscGVyLmRpc3BsYXllZE1vbnRoWWVhcjtcbiAgICAgICAgdGhpcy5kaXNwbGF5TmV4dE1vbnRoU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5kaXNwbGF5TmV4dE1vbnRoLnN1YnNjcmliZShcbiAgICAgICAgICAgICgpID0+IHRoaXMubmV4dE1vbnRoKClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNNb250aFN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuZGlzcGxheVByZXZpb3VzTW9udGguc3Vic2NyaWJlKFxuICAgICAgICAgICAgKCkgPT4gdGhpcy5wcmV2aW91c01vbnRoKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gICAgaGFuZGxlS2V5Ym9hcmRVcEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlYWJsZSAmJiBldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICB0aGlzLmlzRGF0ZXBpY2tlclZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUtleWJvYXJkRG93bkV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkFsbG93ZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25LZXlEb3duSW5uZXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgaXNEYXRlcGlja2VyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlO1xuICAgIH1cblxuICAgIHNldCBpc0RhdGVwaWNrZXJWaXNpYmxlKHZhbDogYm9vbGVhbikge1xuICAgICAgICAvLyBTdG9yZSB0aGUgcHJldmlvdXMgdmFsdWUgdG8gaGFuZGxlIHRyYW5zaXRpb25zIGZyb20gb25lIHN0YXRlIHRvIGFub3RoZXIuXG4gICAgICAgIGNvbnN0IHdhc09wZW4gPSB0aGlzLmlzVmlzaWJsZTtcblxuICAgICAgICAvLyBFbnN1cmUgd2UgYWx3YXlzIGluaXRpYWxpemUgZGF0ZSBwaWNrZXIgZGVwZW5kaW5nIG9uIGl0J3MgbW9kZWxcbiAgICAgICAgaWYgKCF3YXNPcGVuICYmIHRoaXMuY2xvc2VhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy5tb2RlbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHZhbDtcbiAgICAgICAgdGhpcy5pc0RhdGVwaWNrZXJWaXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5pc1Zpc2libGUpO1xuXG4gICAgICAgIHRoaXMuZm9jdXNEZWZhdWx0RGF5KCk7XG4gICAgICAgIHRoaXMuZm9jdXNPbkRhdGVwaWNrZXJUcmlnZ2VyKHdhc09wZW4sIHZhbCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbW9kZWwodmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IG1vZGVsKCk6IG51bWJlcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWxfO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZUNvZGVTdWJzY3JpcHRpb24gPSB0aGlzLmRpY3Rpb25hcnlcbiAgICAgICAgICAgIC5nZXRDdXJyZW50TGFuZ3VhZ2VDb2RlKClcbiAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb2RlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJIZWxwZXJcbiAgICAgICAgICAgICAgICAgICAgLmxvYWRMb2NhbGUoY29kZSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbG9jYWxlICcke2NvZGV9JyBkb2VzIG5vdCBleGlzdC4gRmFsbGJhY2sgdG8gJ2VuLidgXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVEYXRlcGlja2VyKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRheXNCdXR0b25zRWxlbVJlZi5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmRheXNCdXR0b25zRWxlbVJlZiA9IHRoaXMuZGF5c0J1dHRvbnNFbGVtUmVmO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhdGhpcy5jdXJyZW50TGFuZ3VhZ2VDb2RlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZUNvZGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoISF0aGlzLmRpc3BsYXlOZXh0TW9udGhTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRNb250aFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghIXRoaXMuZGlzcGxheVByZXZpb3VzTW9udGhTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVByZXZpb3VzTW9udGhTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IG51bWJlcltdKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICEhdmFsdWUgJiZcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCA+IDIgJiZcbiAgICAgICAgICAgICEhdmFsdWVbMF0gJiZcbiAgICAgICAgICAgIHZhbHVlWzBdID49IHRoaXMubWluWWVhciAmJlxuICAgICAgICAgICAgISF2YWx1ZVsxXSAmJlxuICAgICAgICAgICAgISF2YWx1ZVsyXVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVBc1N0cmluZyA9IGAke3ZhbHVlWzBdfS0ke3ZhbHVlWzFdfS0ke3ZhbHVlWzJdfWA7XG4gICAgICAgICAgICBpZiAoZGF5anMoZGF0ZUFzU3RyaW5nKS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERhdGUoZGF5anMoZGF0ZUFzU3RyaW5nKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgIH1cblxuICAgIHVwZGF0ZU5nTW9kZWwodmFsdWU6IG51bWJlcltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZWxfID0gdmFsdWU7XG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaXNUb2RheShkYXRlOiBkYXlqcy5EYXlqcyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZGF0ZS5pc1RvZGF5KCk7XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZChkYXRlOiBkYXlqcy5EYXlqcyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGUuaXNTYW1lKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICB9XG5cbiAgICBoYW5kbGVVc2VySW5wdXQoZGF0ZTogZGF5anMuRGF5anMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0ZUFzQXJyYXkgPSB0aGlzLmdldERhdGVBc0FycmF5KGRhdGUpO1xuXG4gICAgICAgIHRoaXMudXNlcklucHV0Lm5leHQoZGF0ZUFzQXJyYXkpO1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwoZGF0ZUFzQXJyYXkpO1xuICAgIH1cblxuICAgIHByZXZpb3VzTW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0UHJldmlvdXNXZWVrc09mTW9udGgoKTtcbiAgICB9XG5cbiAgICBuZXh0TW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0TmV4dFdlZWtzT2ZNb250aCgpO1xuICAgIH1cblxuICAgIHVzZXJJbnB1dE1vbnRoKG1vbnRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53ZWVrcyA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuaW5pdGlhbFllYXIsXG4gICAgICAgICAgICAoK21vbnRoICsgMSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckhlbHBlci5pbml0aWFsRGF5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdXNlcklucHV0WWVhcih5ZWFyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53ZWVrcyA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VySGVscGVyLmluaXRpYWxNb250aCxcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckhlbHBlci5pbml0aWFsRGF5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0TW9udGhBc1JlYWRhYmxlKG1vbnRoSW5kZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoTGlzdEl0ZW0uZmluZChlbGVtID0+IGVsZW0udmFsdWUgPT09IG1vbnRoSW5kZXgpLmxhYmVsO1xuICAgIH1cblxuICAgIG9uRGF5c0ZvY3VzaW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuY3VycmVudEZvY3VzZWRFbGVtZW50ID1cbiAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgb25EYXlzRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldERheVRhYkluZGV4KGRheTogRGF5TW9udGgpOiBudW1iZXIge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUubW9udGgoKSA9PT0gZGF5LmRhdGUubW9udGgoKSAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUueWVhcigpID09PSBkYXkuZGF0ZS55ZWFyKClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUuZGF0ZSgpID09PSBkYXkuZGF0ZS5kYXRlKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzVG9kYXkoZGF5LmRhdGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGRheS5pc0N1cnJlbnRNb250aCAmJlxuICAgICAgICAgICAgZGF5LmRheU9mTW9udGggPT09IDEgJiZcbiAgICAgICAgICAgIChkYXkuZGF0ZS5tb250aCgpICE9PSBkYXlqcygpLm1vbnRoKCkgfHxcbiAgICAgICAgICAgICAgICBkYXkuZGF0ZS55ZWFyKCkgIT09IGRheWpzKCkueWVhcigpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBmb2N1c0RlZmF1bHREYXkoKTogdm9pZCB7XG4gICAgICAgIC8vIEhhdmUgdG8gd2FpdCBmb3IgYSBtaWNybyB0YXNrIGVtcHR5IGFzIHdlJ3JlIGFmZmVjdGluZyB0aGUgRE9NIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgbGlmZWN5Y2xlLlxuICAgICAgICB0aGlzLm5nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmlzaWJsZSAmJiB0aGlzLmRhdGVwaWNrZXJUcmlnZ2VySHRtbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzRGVmYXVsdERheShcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLnNlbGVjdGVkRGF0ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZURhdGVwaWNrZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9wdWxhdGVNb250aExpc3QoKTtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZVllYXJMaXN0KCk7XG4gICAgICAgIHRoaXMud2Vla0RheXMgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0V2Vla0RheXMoKTtcbiAgICAgICAgdGhpcy53ZWVrcyA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICBkYXlqcygpLmZvcm1hdCh0aGlzLmRhdGVQaWNrZXJIZWxwZXIuWUVBUl9TVFJJTkdfRk9STUFUKSxcbiAgICAgICAgICAgIGRheWpzKCkuZm9ybWF0KHRoaXMuZGF0ZVBpY2tlckhlbHBlci5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERhdGUoZGF0ZTogZGF5anMuRGF5anMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xuXG4gICAgICAgIC8vIEVpdGhlciB3ZSBoYXZlIGEgZGF0ZSB0byBzZXQgb3Igd2UgdGFrZSB0b2RheVxuICAgICAgICBjb25zdCBkYXRlVG9Gb3JtYXQgPSBkYXRlID8gZGF0ZSA6IGRheWpzKCk7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICAgICAgZGF0ZVRvRm9ybWF0LmZvcm1hdCh0aGlzLmRhdGVQaWNrZXJIZWxwZXIuWUVBUl9TVFJJTkdfRk9STUFUKSxcbiAgICAgICAgICAgIGRhdGVUb0Zvcm1hdC5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VySGVscGVyLk1PTlRIX1NUUklOR19OVU1CRVJfRk9STUFUXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGF0ZVRvRm9ybWF0LmZvcm1hdCh0aGlzLmRhdGVQaWNrZXJIZWxwZXIuREFZX1NUUklOR19OVU1CRVJfRk9STUFUKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZUFzQXJyYXkoZGF0ZTogZGF5anMuRGF5anMpOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICArZGF0ZS5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLllFQVJfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICArZGF0ZS5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLk1PTlRIX1NUUklOR19OVU1CRVJfRk9STUFUKSxcbiAgICAgICAgICAgICtkYXRlLmZvcm1hdCh0aGlzLmRhdGVQaWNrZXJIZWxwZXIuREFZX1NUUklOR19OVU1CRVJfRk9STUFUKVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNPbkRhdGVwaWNrZXJUcmlnZ2VyKFxuICAgICAgICB3YXNPcGVuOiBib29sZWFuLFxuICAgICAgICBpc1Zpc2libGU6IGJvb2xlYW5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgLy8gRm9jdXMgYmFjayBvbiB0aGUgdHJpZ2dlci4gTm8gbmVlZCBmb3IgYSBzZXRUaW1lb3V0IGFzIHRoZSB0cmlnZ2VyIHNob3VsZCBzdGlsbCBiZSBpbiB0aGUgRE9NLlxuICAgICAgICAvLyBPbmx5IGRvZXMgaXQgd2hlbiB0aGUgbW9kYWwgaXMgY2xvc2VkIGZyb20gYSBvcGVuIHN0YXRlIHRvIGF2b2lkIHRvIHNldFxuICAgICAgICAvLyB0aGUgZm9jdXMgd2hlbiB0aGUgcGFnZSBsb2Fkcy5cbiAgICAgICAgaWYgKHdhc09wZW4gJiYgIWlzVmlzaWJsZSAmJiB0aGlzLmRhdGVwaWNrZXJUcmlnZ2VySHRtbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclRyaWdnZXJIdG1sRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwb3B1bGF0ZU1vbnRoTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aExpc3RJdGVtID0gZGF5anMoKVxuICAgICAgICAgICAgLmxvY2FsZURhdGEoKVxuICAgICAgICAgICAgLm1vbnRocygpXG4gICAgICAgICAgICAubWFwKChtb250aDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiAoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiBtb250aCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogaW5kZXgudG9TdHJpbmcoKVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVZZWFyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSAoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBudW1iZXJbXSA9PlxuICAgICAgICAgICAgQXJyYXkuZnJvbSh7IGxlbmd0aDogZW5kIC0gc3RhcnQgKyAxIH0sICh2LCBrKSA9PiBrICsgc3RhcnQpO1xuXG4gICAgICAgIHRoaXMueWVhckxpc3RJdGVtID0gcmFuZ2UodGhpcy5taW5ZZWFyLCB0aGlzLm1heFllYXIpLm1hcChcbiAgICAgICAgICAgICh5ZWFyOiBudW1iZXIpID0+ICh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHllYXIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogeWVhci50b1N0cmluZygpXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25LZXlEb3duSW5uZXIoa2V5RXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgLy8gSUUgZG9lc24ndCBzdXBwb3J0IGtleUV2ZW50LmNvZGUsIGFuZCBoYXMgZGlmZmVyZW50IHZhbHVlc1xuICAgICAgICAvLyBpbiBrZXlFdmVudC5rZXkgKERvd24gaW5zdGVhZCBvZiBBcnJvd0Rvd24gZm9yIGluc3RhbmNlKSwgaGVuY2UgdGhlIG11bHRpLXN1cHBvcnQuXG4gICAgICAgIGNvbnN0IGllMTFDb21wYXRpYmxlQ29kZSA9IGtleUV2ZW50LmNvZGUgfHwga2V5RXZlbnQua2V5O1xuICAgICAgICBzd2l0Y2ggKGllMTFDb21wYXRpYmxlQ29kZSkge1xuICAgICAgICAgICAgY2FzZSAnRG93bic6XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuZm9jdXNOZXh0V2Vla0RheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnVXAnOlxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5mb2N1c1ByZXZpb3VzV2Vla0RheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnU3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAnU3BhY2ViYXInOlxuICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NsaWNrJykpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUmlnaHQnOlxuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5mb2N1c05leHREYXkoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0xlZnQnOlxuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzUHJldmlvdXNEYXkoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBrZXlFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBrZXlFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGlkPVwiZGF0ZXBpY2tlcl93cmFwcGVyXCJcbiAgICAqbmdJZj1cImlzRGF0ZXBpY2tlclZpc2libGVcIlxuICAgIFtjZGtUcmFwRm9jdXNdPVwiISFkYXRlcGlja2VyVHJpZ2dlckh0bWxFbGVtZW50XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICByb2xlPVwiYXBwbGljYXRpb25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdmb2Vobi1kYXRlLXBpY2tlci5jb250YWluZXIuYXJpYS1sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgIFwiXG4+XG4gICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImNsb3NlYWJsZVwiXG4gICAgICAgIChjbGljayk9XCJpc0RhdGVwaWNrZXJWaXNpYmxlID0gZmFsc2VcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJidG4gY2xvc2VcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgJ2ZvZWhuLWRhdGUtcGlja2VyLmNsb3NlLWJ1dHRvbi5hcmlhLWxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgIFwiXG4gICAgICAgIGlkPVwiY2xvc2VCdXR0b25cIlxuICAgID5cbiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IGlkPVwiZGF0ZXBpY2tlcl9oZWFkZXJcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBpZD1cInByZXZpb3VzLW1vbnRoXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c01vbnRoKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8Zm9laG4taWNvbi1jaGV2cm9uLWxlZnRcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1kYXRlLXBpY2tlci5wcmV2aW91cy1tb250aC1idXR0b24udGl0bGUnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWljb24tY2hldnJvbi1sZWZ0PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRNb250aFllYXIgfCBhc3luYyBhcyBtb250aFllYXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGlkPVwibW9udGgteWVhci1sYWJlbFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1kYXRlLXBpY2tlci5zY3JlZW4tcmVhZGVyLmFjdHVhbC1tb250aC1kaXNwbGF5ZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB7eyBnZXRNb250aEFzUmVhZGFibGUobW9udGhZZWFyLm1vbnRoKSB9fSB7eyBtb250aFllYXIueWVhciB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGZvZWhuLXNlbGVjdFxuICAgICAgICAgICAgICAgIGlkPVwibW9udGgtaW5wdXRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxpZ24tc2VsZi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIubW9udGgtaW5wdXQubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaXNMYWJlbFNyT25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZWxlbWVudHNdPVwibW9udGhMaXN0SXRlbVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cIm1vbnRoWWVhci5tb250aFwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAodXNlcklucHV0KT1cInVzZXJJbnB1dE1vbnRoKCRldmVudClcIlxuICAgICAgICAgICAgPjwvZm9laG4tc2VsZWN0PlxuICAgICAgICAgICAgPGZvZWhuLXNlbGVjdFxuICAgICAgICAgICAgICAgIGlkPVwieWVhci1pbnB1dFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhbGlnbi1zZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZm9laG4tZGF0ZS1waWNrZXIuc2NyZWVuLXJlYWRlci55ZWFyLWlucHV0LmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2lzTGFiZWxTck9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2VsZW1lbnRzXT1cInllYXJMaXN0SXRlbVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cIm1vbnRoWWVhci55ZWFyXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICh1c2VySW5wdXQpPVwidXNlcklucHV0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2ZvZWhuLXNlbGVjdD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxidXR0b24gaWQ9XCJuZXh0LW1vbnRoXCIgY2xhc3M9XCJidG4gYnRuLWxpbmtcIiAoY2xpY2spPVwibmV4dE1vbnRoKClcIj5cbiAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tcmlnaHRcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1kYXRlLXBpY2tlci5uZXh0LW1vbnRoLWJ1dHRvbi50aXRsZScgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9mb2Vobi1pY29uLWNoZXZyb24tcmlnaHQ+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDx0YWJsZVxuICAgICAgICBpZD1cImRhdGVwaWNrZXJfdGFibGVcIlxuICAgICAgICByb2xlPVwiZ3JpZFwiXG4gICAgICAgIChmb2N1c2luKT1cIm9uRGF5c0ZvY3VzaW4oKVwiXG4gICAgICAgIChmb2N1c291dCk9XCJvbkRheXNGb2N1c291dCgpXCJcbiAgICA+XG4gICAgICAgIDx0aGVhZCByb2xlPVwicHJlc2VudGF0aW9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8dHIgcm9sZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgd2Vla2RheSBvZiB3ZWVrRGF5c1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4tYWJiclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwid2Vla2RheS5zdWJzdHIoMCwgMilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIndlZWtkYXlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mb2Vobi1hYmJyPlxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHkgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgPHRyIHJvbGU9XCJyb3dcIiAqbmdGb3I9XCJsZXQgd2VlayBvZiB3ZWVrczsgbGV0IGluZGV4Um93ID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheU9mV2VlayBvZiB3ZWVrOyBsZXQgaW5kZXhDb2x1bW4gPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjZGF5QnV0dG9uRWxlbVJlZlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidkYXlfJyArIGluZGV4Um93ICsgJ18nICsgaW5kZXhDb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImdldERheVRhYkluZGV4KGRheU9mV2VlaylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1pbmZvXT1cIiFpc1RvZGF5KGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLXNlY29uZGFyeV09XCJpc1RvZGF5KGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpc1NlbGVjdGVkKGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlZWtEYXlzW2luZGV4Q29sdW1uXSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsuZGF0ZUFzUmVhZGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWlzLXRvZGF5XT1cImlzVG9kYXkoZGF5T2ZXZWVrLmRhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtaXMtc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZChkYXlPZldlZWsuZGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1yb3ctaW5kZXhdPVwiaW5kZXhSb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jb2x1bW4taW5kZXhdPVwiaW5kZXhDb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF5LW51bWJlcl09XCJkYXlPZldlZWsuZGF5T2ZNb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWRheU9mV2Vlay5pc0N1cnJlbnRNb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVXNlcklucHV0KGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRheU9mV2Vlay5kYXlPZk1vbnRoIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
|
|
297
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2ZvZWhuLWRhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1kYXRlLXBpY2tlci9mb2Vobi1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFFTixZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLE9BQU8sTUFBTSxzQkFBc0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7OztBQUU3RSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBT3RCLE1BQU0sT0FBTyx3QkFBd0I7SUE2Q2pDLFlBQ1ksVUFBZ0MsRUFDaEMsTUFBYztRQURkLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBQ2hDLFdBQU0sR0FBTixNQUFNLENBQVE7UUE1QzFCLFlBQU8sR0FBRyxLQUFLLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFHL0IsWUFBTyxHQUFHLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQztRQU05QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGdCQUFXLEdBQUcsSUFB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QkFBa0I7Z0JBd0M1QixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBdUJGLEtBQUs7c0JBRFIsS0FBSztnQkFNTixxQkFBcUI7c0JBRHBCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVFqQyx1QkFBdUI7c0JBRHRCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXlNb250aCB9IGZyb20gJy4vZGF5LW1vbnRoLnR5cGUnO1xuaW1wb3J0IHsgTW9udGhZZWFyIH0gZnJvbSAnLi9tb250aC15ZWFyLnR5cGUnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckhlbHBlciB9IGZyb20gJy4vZGF0ZS1waWNrZXIuaGVscGVyJztcbmltcG9ydCB7IFNka0RpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2RrLWRpY3Rpb25hcnkvc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1TZWxlY3RPcHRpb24gfSBmcm9tICcuLi9mb2Vobi1jaGVja2FibGVzL2Zvcm0tc2VsZWN0LW9wdGlvbic7XG5cbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgaXNUb2RheSBmcm9tICdkYXlqcy9wbHVnaW4vaXNUb2RheSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlciB9IGZyb20gJy4vZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXInO1xuXG5kYXlqcy5leHRlbmQoaXNUb2RheSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tZGF0ZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9laG4tZGF0ZS1waWNrZXIuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuRGF0ZVBpY2tlckNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpXG4gICAgbWluWWVhciA9IGRheWpzKCkueWVhcigpIC0gMTAwO1xuXG4gICAgQElucHV0KClcbiAgICBtYXhZZWFyID0gZGF5anMoKS55ZWFyKCkgKyAxMDtcblxuICAgIEBJbnB1dCgpXG4gICAgZGF0ZXBpY2tlclRyaWdnZXJIdG1sRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGNsb3NlYWJsZSA9IHRydWU7XG5cbiAgICBAT3V0cHV0KClcbiAgICBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyW10+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICB1c2VySW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcltdPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgaXNEYXRlcGlja2VyVmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGRyZW4oJ2RheUJ1dHRvbkVsZW1SZWYnKVxuICAgIGRheXNCdXR0b25zRWxlbVJlZjogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gICAgd2Vla0RheXM6IHN0cmluZ1tdID0gW107XG4gICAgd2Vla3M6IERheU1vbnRoW11bXTtcblxuICAgIHNlbGVjdGVkRGF0ZTogZGF5anMuRGF5anM7XG4gICAgY3VycmVudE1vbnRoWWVhcjogT2JzZXJ2YWJsZTxNb250aFllYXI+O1xuXG4gICAgbW9kZWxfOiBudW1iZXJbXTtcbiAgICBtb250aExpc3RJdGVtOiBGb3JtU2VsZWN0T3B0aW9uW10gPSBbXTtcbiAgICB5ZWFyTGlzdEl0ZW06IEZvcm1TZWxlY3RPcHRpb25bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBpc1Zpc2libGUgPSBmYWxzZTtcbiAgICBwcml2YXRlIGtleWJvYXJkTmF2aWdhdGlvbkFsbG93ZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIGN1cnJlbnRMYW5ndWFnZUNvZGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIGRhdGVQaWNrZXJIZWxwZXIgPSBuZXcgRGF0ZVBpY2tlckhlbHBlcigpO1xuICAgIHByaXZhdGUgZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIgPSBuZXcgRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheU5leHRNb250aFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheVByZXZpb3VzTW9udGhTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpY3Rpb25hcnk6IFNka0RpY3Rpb25hcnlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY3VycmVudE1vbnRoWWVhciA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5kaXNwbGF5ZWRNb250aFllYXI7XG4gICAgICAgIHRoaXMuZGlzcGxheU5leHRNb250aFN1YnNjcmlwdGlvbiA9IHRoaXMuZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuZGlzcGxheU5leHRNb250aC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoKSA9PiB0aGlzLm5leHRNb250aCgpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGlzcGxheVByZXZpb3VzTW9udGhTdWJzY3JpcHRpb24gPSB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmRpc3BsYXlQcmV2aW91c01vbnRoLnN1YnNjcmliZShcbiAgICAgICAgICAgICgpID0+IHRoaXMucHJldmlvdXNNb250aCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IGlzRGF0ZXBpY2tlclZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBpc0RhdGVwaWNrZXJWaXNpYmxlKHZhbDogYm9vbGVhbikge1xuICAgICAgICAvLyBTdG9yZSB0aGUgcHJldmlvdXMgdmFsdWUgdG8gaGFuZGxlIHRyYW5zaXRpb25zIGZyb20gb25lIHN0YXRlIHRvIGFub3RoZXIuXG4gICAgICAgIGNvbnN0IHdhc09wZW4gPSB0aGlzLmlzVmlzaWJsZTtcblxuICAgICAgICAvLyBFbnN1cmUgd2UgYWx3YXlzIGluaXRpYWxpemUgZGF0ZSBwaWNrZXIgZGVwZW5kaW5nIG9uIGl0J3MgbW9kZWxcbiAgICAgICAgaWYgKCF3YXNPcGVuICYmIHRoaXMuY2xvc2VhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy5tb2RlbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHZhbDtcbiAgICAgICAgdGhpcy5pc0RhdGVwaWNrZXJWaXNpYmxlQ2hhbmdlLmVtaXQodGhpcy5pc1Zpc2libGUpO1xuXG4gICAgICAgIHRoaXMuZm9jdXNEZWZhdWx0RGF5KCk7XG4gICAgICAgIHRoaXMuZm9jdXNPbkRhdGVwaWNrZXJUcmlnZ2VyKHdhc09wZW4sIHZhbCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgICBnZXQgbW9kZWwoKTogbnVtYmVyW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbF87XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbW9kZWwodmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICAgIGhhbmRsZUtleWJvYXJkVXBFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jbG9zZWFibGUgJiYgZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgdGhpcy5pc0RhdGVwaWNrZXJWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBoYW5kbGVLZXlib2FyZERvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5rZXlib2FyZE5hdmlnYXRpb25BbGxvd2VkKSB7XG4gICAgICAgICAgICB0aGlzLm9uS2V5RG93bklubmVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZUNvZGVTdWJzY3JpcHRpb24gPSB0aGlzLmRpY3Rpb25hcnlcbiAgICAgICAgICAgIC5nZXRDdXJyZW50TGFuZ3VhZ2VDb2RlKClcbiAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb2RlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJIZWxwZXJcbiAgICAgICAgICAgICAgICAgICAgLmxvYWRMb2NhbGUoY29kZSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgbG9jYWxlICcke2NvZGV9JyBkb2VzIG5vdCBleGlzdC4gRmFsbGJhY2sgdG8gJ2VuLidgXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVEYXRlcGlja2VyKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRheXNCdXR0b25zRWxlbVJlZi5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmRheXNCdXR0b25zRWxlbVJlZiA9IHRoaXMuZGF5c0J1dHRvbnNFbGVtUmVmO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhdGhpcy5jdXJyZW50TGFuZ3VhZ2VDb2RlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZUNvZGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoISF0aGlzLmRpc3BsYXlOZXh0TW9udGhTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRNb250aFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghIXRoaXMuZGlzcGxheVByZXZpb3VzTW9udGhTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVByZXZpb3VzTW9udGhTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IG51bWJlcltdKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICEhdmFsdWUgJiZcbiAgICAgICAgICAgIHZhbHVlLmxlbmd0aCA+IDIgJiZcbiAgICAgICAgICAgICEhdmFsdWVbMF0gJiZcbiAgICAgICAgICAgIHZhbHVlWzBdID49IHRoaXMubWluWWVhciAmJlxuICAgICAgICAgICAgISF2YWx1ZVsxXSAmJlxuICAgICAgICAgICAgISF2YWx1ZVsyXVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGVBc1N0cmluZyA9IGAke3ZhbHVlWzBdfS0ke3ZhbHVlWzFdfS0ke3ZhbHVlWzJdfWA7XG4gICAgICAgICAgICBpZiAoZGF5anMoZGF0ZUFzU3RyaW5nKS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERhdGUoZGF5anMoZGF0ZUFzU3RyaW5nKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZERhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgIH1cblxuICAgIHVwZGF0ZU5nTW9kZWwodmFsdWU6IG51bWJlcltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZWxfID0gdmFsdWU7XG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaXNUb2RheShkYXRlOiBkYXlqcy5EYXlqcyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZGF0ZS5pc1RvZGF5KCk7XG4gICAgfVxuXG4gICAgaXNTZWxlY3RlZChkYXRlOiBkYXlqcy5EYXlqcyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWREYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGUuaXNTYW1lKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICB9XG5cbiAgICBoYW5kbGVVc2VySW5wdXQoZGF0ZTogZGF5anMuRGF5anMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0ZUFzQXJyYXkgPSB0aGlzLmdldERhdGVBc0FycmF5KGRhdGUpO1xuXG4gICAgICAgIHRoaXMudXNlcklucHV0Lm5leHQoZGF0ZUFzQXJyYXkpO1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwoZGF0ZUFzQXJyYXkpO1xuICAgIH1cblxuICAgIHByZXZpb3VzTW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0UHJldmlvdXNXZWVrc09mTW9udGgoKTtcbiAgICB9XG5cbiAgICBuZXh0TW9udGgoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0TmV4dFdlZWtzT2ZNb250aCgpO1xuICAgIH1cblxuICAgIHVzZXJJbnB1dE1vbnRoKG1vbnRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53ZWVrcyA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuaW5pdGlhbFllYXIsXG4gICAgICAgICAgICAoK21vbnRoICsgMSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckhlbHBlci5pbml0aWFsRGF5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdXNlcklucHV0WWVhcih5ZWFyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53ZWVrcyA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VySGVscGVyLmluaXRpYWxNb250aCxcbiAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlckhlbHBlci5pbml0aWFsRGF5XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0TW9udGhBc1JlYWRhYmxlKG1vbnRoSW5kZXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vbnRoTGlzdEl0ZW0uZmluZChlbGVtID0+IGVsZW0udmFsdWUgPT09IG1vbnRoSW5kZXgpLmxhYmVsO1xuICAgIH1cblxuICAgIG9uRGF5c0ZvY3VzaW4oKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuY3VycmVudEZvY3VzZWRFbGVtZW50ID1cbiAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgb25EYXlzRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGdldERheVRhYkluZGV4KGRheTogRGF5TW9udGgpOiBudW1iZXIge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUubW9udGgoKSA9PT0gZGF5LmRhdGUubW9udGgoKSAmJlxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUueWVhcigpID09PSBkYXkuZGF0ZS55ZWFyKClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZERhdGUuZGF0ZSgpID09PSBkYXkuZGF0ZS5kYXRlKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzVG9kYXkoZGF5LmRhdGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGRheS5pc0N1cnJlbnRNb250aCAmJlxuICAgICAgICAgICAgZGF5LmRheU9mTW9udGggPT09IDEgJiZcbiAgICAgICAgICAgIChkYXkuZGF0ZS5tb250aCgpICE9PSBkYXlqcygpLm1vbnRoKCkgfHxcbiAgICAgICAgICAgICAgICBkYXkuZGF0ZS55ZWFyKCkgIT09IGRheWpzKCkueWVhcigpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBmb2N1c0RlZmF1bHREYXkoKTogdm9pZCB7XG4gICAgICAgIC8vIEhhdmUgdG8gd2FpdCBmb3IgYSBtaWNybyB0YXNrIGVtcHR5IGFzIHdlJ3JlIGFmZmVjdGluZyB0aGUgRE9NIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgbGlmZWN5Y2xlLlxuICAgICAgICB0aGlzLm5nWm9uZS5vbk1pY3JvdGFza0VtcHR5LnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmlzaWJsZSAmJiB0aGlzLmRhdGVwaWNrZXJUcmlnZ2VySHRtbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzRGVmYXVsdERheShcbiAgICAgICAgICAgICAgICAgICAgISF0aGlzLnNlbGVjdGVkRGF0ZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZURhdGVwaWNrZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucG9wdWxhdGVNb250aExpc3QoKTtcbiAgICAgICAgdGhpcy5wb3B1bGF0ZVllYXJMaXN0KCk7XG4gICAgICAgIHRoaXMud2Vla0RheXMgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0V2Vla0RheXMoKTtcbiAgICAgICAgdGhpcy53ZWVrcyA9IHRoaXMuZGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICBkYXlqcygpLmZvcm1hdCh0aGlzLmRhdGVQaWNrZXJIZWxwZXIuWUVBUl9TVFJJTkdfRk9STUFUKSxcbiAgICAgICAgICAgIGRheWpzKCkuZm9ybWF0KHRoaXMuZGF0ZVBpY2tlckhlbHBlci5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERhdGUoZGF0ZTogZGF5anMuRGF5anMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xuXG4gICAgICAgIC8vIEVpdGhlciB3ZSBoYXZlIGEgZGF0ZSB0byBzZXQgb3Igd2UgdGFrZSB0b2RheVxuICAgICAgICBjb25zdCBkYXRlVG9Gb3JtYXQgPSBkYXRlID8gZGF0ZSA6IGRheWpzKCk7XG4gICAgICAgIHRoaXMud2Vla3MgPSB0aGlzLmRhdGVQaWNrZXJIZWxwZXIuZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICAgICAgZGF0ZVRvRm9ybWF0LmZvcm1hdCh0aGlzLmRhdGVQaWNrZXJIZWxwZXIuWUVBUl9TVFJJTkdfRk9STUFUKSxcbiAgICAgICAgICAgIGRhdGVUb0Zvcm1hdC5mb3JtYXQoXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VySGVscGVyLk1PTlRIX1NUUklOR19OVU1CRVJfRk9STUFUXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGF0ZVRvRm9ybWF0LmZvcm1hdCh0aGlzLmRhdGVQaWNrZXJIZWxwZXIuREFZX1NUUklOR19OVU1CRVJfRk9STUFUKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0ZUFzQXJyYXkoZGF0ZTogZGF5anMuRGF5anMpOiBudW1iZXJbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICArZGF0ZS5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLllFQVJfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICArZGF0ZS5mb3JtYXQodGhpcy5kYXRlUGlja2VySGVscGVyLk1PTlRIX1NUUklOR19OVU1CRVJfRk9STUFUKSxcbiAgICAgICAgICAgICtkYXRlLmZvcm1hdCh0aGlzLmRhdGVQaWNrZXJIZWxwZXIuREFZX1NUUklOR19OVU1CRVJfRk9STUFUKVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9jdXNPbkRhdGVwaWNrZXJUcmlnZ2VyKFxuICAgICAgICB3YXNPcGVuOiBib29sZWFuLFxuICAgICAgICBpc1Zpc2libGU6IGJvb2xlYW5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgLy8gRm9jdXMgYmFjayBvbiB0aGUgdHJpZ2dlci4gTm8gbmVlZCBmb3IgYSBzZXRUaW1lb3V0IGFzIHRoZSB0cmlnZ2VyIHNob3VsZCBzdGlsbCBiZSBpbiB0aGUgRE9NLlxuICAgICAgICAvLyBPbmx5IGRvZXMgaXQgd2hlbiB0aGUgbW9kYWwgaXMgY2xvc2VkIGZyb20gYSBvcGVuIHN0YXRlIHRvIGF2b2lkIHRvIHNldFxuICAgICAgICAvLyB0aGUgZm9jdXMgd2hlbiB0aGUgcGFnZSBsb2Fkcy5cbiAgICAgICAgaWYgKHdhc09wZW4gJiYgIWlzVmlzaWJsZSAmJiB0aGlzLmRhdGVwaWNrZXJUcmlnZ2VySHRtbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlclRyaWdnZXJIdG1sRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwb3B1bGF0ZU1vbnRoTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb250aExpc3RJdGVtID0gZGF5anMoKVxuICAgICAgICAgICAgLmxvY2FsZURhdGEoKVxuICAgICAgICAgICAgLm1vbnRocygpXG4gICAgICAgICAgICAubWFwKChtb250aDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiAoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiBtb250aCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogaW5kZXgudG9TdHJpbmcoKVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcG9wdWxhdGVZZWFyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSAoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpOiBudW1iZXJbXSA9PlxuICAgICAgICAgICAgQXJyYXkuZnJvbSh7IGxlbmd0aDogZW5kIC0gc3RhcnQgKyAxIH0sICh2LCBrKSA9PiBrICsgc3RhcnQpO1xuXG4gICAgICAgIHRoaXMueWVhckxpc3RJdGVtID0gcmFuZ2UodGhpcy5taW5ZZWFyLCB0aGlzLm1heFllYXIpLm1hcChcbiAgICAgICAgICAgICh5ZWFyOiBudW1iZXIpID0+ICh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHllYXIudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogeWVhci50b1N0cmluZygpXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25LZXlEb3duSW5uZXIoa2V5RXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgLy8gSUUgZG9lc24ndCBzdXBwb3J0IGtleUV2ZW50LmNvZGUsIGFuZCBoYXMgZGlmZmVyZW50IHZhbHVlc1xuICAgICAgICAvLyBpbiBrZXlFdmVudC5rZXkgKERvd24gaW5zdGVhZCBvZiBBcnJvd0Rvd24gZm9yIGluc3RhbmNlKSwgaGVuY2UgdGhlIG11bHRpLXN1cHBvcnQuXG4gICAgICAgIGNvbnN0IGllMTFDb21wYXRpYmxlQ29kZSA9IGtleUV2ZW50LmNvZGUgfHwga2V5RXZlbnQua2V5O1xuICAgICAgICBzd2l0Y2ggKGllMTFDb21wYXRpYmxlQ29kZSkge1xuICAgICAgICAgICAgY2FzZSAnRG93bic6XG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuZm9jdXNOZXh0V2Vla0RheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnVXAnOlxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5mb2N1c1ByZXZpb3VzV2Vla0RheSgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnU3BhY2UnOlxuICAgICAgICAgICAgY2FzZSAnU3BhY2ViYXInOlxuICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NsaWNrJykpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnUmlnaHQnOlxuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5mb2N1c05leHREYXkoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0xlZnQnOlxuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmZvY3VzUHJldmlvdXNEYXkoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBrZXlFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBrZXlFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIGlkPVwiZGF0ZXBpY2tlcl93cmFwcGVyXCJcbiAgICAqbmdJZj1cImlzRGF0ZXBpY2tlclZpc2libGVcIlxuICAgIFtjZGtUcmFwRm9jdXNdPVwiISFkYXRlcGlja2VyVHJpZ2dlckh0bWxFbGVtZW50XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICByb2xlPVwiYXBwbGljYXRpb25cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICdmb2Vobi1kYXRlLXBpY2tlci5jb250YWluZXIuYXJpYS1sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgIFwiXG4+XG4gICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImNsb3NlYWJsZVwiXG4gICAgICAgIChjbGljayk9XCJpc0RhdGVwaWNrZXJWaXNpYmxlID0gZmFsc2VcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJidG4gY2xvc2VcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgJ2ZvZWhuLWRhdGUtcGlja2VyLmNsb3NlLWJ1dHRvbi5hcmlhLWxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgIFwiXG4gICAgICAgIGlkPVwiY2xvc2VCdXR0b25cIlxuICAgID5cbiAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IGlkPVwiZGF0ZXBpY2tlcl9oZWFkZXJcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBpZD1cInByZXZpb3VzLW1vbnRoXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c01vbnRoKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8Zm9laG4taWNvbi1jaGV2cm9uLWxlZnRcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1kYXRlLXBpY2tlci5wcmV2aW91cy1tb250aC1idXR0b24udGl0bGUnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWljb24tY2hldnJvbi1sZWZ0PlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRNb250aFllYXIgfCBhc3luYyBhcyBtb250aFllYXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGlkPVwibW9udGgteWVhci1sYWJlbFwiIGFyaWEtbGl2ZT1cInBvbGl0ZVwiIGNsYXNzPVwic3Itb25seVwiPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1kYXRlLXBpY2tlci5zY3JlZW4tcmVhZGVyLmFjdHVhbC1tb250aC1kaXNwbGF5ZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB7eyBnZXRNb250aEFzUmVhZGFibGUobW9udGhZZWFyLm1vbnRoKSB9fSB7eyBtb250aFllYXIueWVhciB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPGZvZWhuLXNlbGVjdFxuICAgICAgICAgICAgICAgIGlkPVwibW9udGgtaW5wdXRcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxpZ24tc2VsZi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIubW9udGgtaW5wdXQubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaXNMYWJlbFNyT25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZWxlbWVudHNdPVwibW9udGhMaXN0SXRlbVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cIm1vbnRoWWVhci5tb250aFwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAodXNlcklucHV0KT1cInVzZXJJbnB1dE1vbnRoKCRldmVudClcIlxuICAgICAgICAgICAgPjwvZm9laG4tc2VsZWN0PlxuICAgICAgICAgICAgPGZvZWhuLXNlbGVjdFxuICAgICAgICAgICAgICAgIGlkPVwieWVhci1pbnB1dFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhbGlnbi1zZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZm9laG4tZGF0ZS1waWNrZXIuc2NyZWVuLXJlYWRlci55ZWFyLWlucHV0LmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2lzTGFiZWxTck9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2VsZW1lbnRzXT1cInllYXJMaXN0SXRlbVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cIm1vbnRoWWVhci55ZWFyXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICh1c2VySW5wdXQpPVwidXNlcklucHV0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2ZvZWhuLXNlbGVjdD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxidXR0b24gaWQ9XCJuZXh0LW1vbnRoXCIgY2xhc3M9XCJidG4gYnRuLWxpbmtcIiAoY2xpY2spPVwibmV4dE1vbnRoKClcIj5cbiAgICAgICAgICAgIDxmb2Vobi1pY29uLWNoZXZyb24tcmlnaHRcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1kYXRlLXBpY2tlci5uZXh0LW1vbnRoLWJ1dHRvbi50aXRsZScgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9mb2Vobi1pY29uLWNoZXZyb24tcmlnaHQ+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDx0YWJsZVxuICAgICAgICBpZD1cImRhdGVwaWNrZXJfdGFibGVcIlxuICAgICAgICByb2xlPVwiZ3JpZFwiXG4gICAgICAgIChmb2N1c2luKT1cIm9uRGF5c0ZvY3VzaW4oKVwiXG4gICAgICAgIChmb2N1c291dCk9XCJvbkRheXNGb2N1c291dCgpXCJcbiAgICA+XG4gICAgICAgIDx0aGVhZCByb2xlPVwicHJlc2VudGF0aW9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICA8dHIgcm9sZT1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDx0aFxuICAgICAgICAgICAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgd2Vla2RheSBvZiB3ZWVrRGF5c1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4tYWJiclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwid2Vla2RheS5zdWJzdHIoMCwgMilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIndlZWtkYXlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mb2Vobi1hYmJyPlxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHkgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgPHRyIHJvbGU9XCJyb3dcIiAqbmdGb3I9XCJsZXQgd2VlayBvZiB3ZWVrczsgbGV0IGluZGV4Um93ID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheU9mV2VlayBvZiB3ZWVrOyBsZXQgaW5kZXhDb2x1bW4gPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAjZGF5QnV0dG9uRWxlbVJlZlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidkYXlfJyArIGluZGV4Um93ICsgJ18nICsgaW5kZXhDb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImdldERheVRhYkluZGV4KGRheU9mV2VlaylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1pbmZvXT1cIiFpc1RvZGF5KGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLXNlY29uZGFyeV09XCJpc1RvZGF5KGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpc1NlbGVjdGVkKGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlZWtEYXlzW2luZGV4Q29sdW1uXSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlPZldlZWsuZGF0ZUFzUmVhZGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWlzLXRvZGF5XT1cImlzVG9kYXkoZGF5T2ZXZWVrLmRhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtaXMtc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZChkYXlPZldlZWsuZGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1yb3ctaW5kZXhdPVwiaW5kZXhSb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jb2x1bW4taW5kZXhdPVwiaW5kZXhDb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF5LW51bWJlcl09XCJkYXlPZldlZWsuZGF5T2ZNb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWRheU9mV2Vlay5pc0N1cnJlbnRNb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVXNlcklucHV0KGRheU9mV2Vlay5kYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGRheU9mV2Vlay5kYXlPZk1vbnRoIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
|