@sbb-esta/lyne-elements-dev 5.0.0-next.1-dev.1777528728 → 5.0.0-next.1-dev.1777534945
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/{block-link-common-ykaxTKZw.js → block-link-common-e4bk3Jpf.js} +2 -2
- package/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
- package/{breadcrumb-group.component-DtW1ZFNq.js → breadcrumb-group.component-De3Lu3lx.js} +1 -5
- package/breadcrumb.js +1 -1
- package/breadcrumb.pure.js +1 -1
- package/button/accent-button/accent-button.component.js +1 -1
- package/button/accent-button-link/accent-button-link.component.js +1 -1
- package/button/accent-button-static/accent-button-static.component.js +1 -1
- package/button/button/button.component.js +1 -1
- package/button/button-link/button-link.component.js +1 -1
- package/button/button-static/button-static.component.js +1 -1
- package/button/common/button-common.js +1 -1
- package/button/mini-button-group/mini-button-group.component.js +1 -1
- package/button/secondary-button/secondary-button.component.js +1 -1
- package/button/secondary-button-link/secondary-button-link.component.js +1 -1
- package/button/secondary-button-static/secondary-button-static.component.js +1 -1
- package/button/transparent-button/transparent-button.component.js +1 -1
- package/button/transparent-button-link/transparent-button-link.component.js +1 -1
- package/button/transparent-button-static/transparent-button-static.component.js +1 -1
- package/{button-common-DID0gi9b.js → button-common-h8m8WPzJ.js} +73 -80
- package/button.js +2 -2
- package/button.pure.js +2 -2
- package/calendar/calendar-day/calendar-day.component.js +1 -1
- package/{calendar-day.component-C6Xth1In.js → calendar-day.component-CcZymuSD.js} +1 -1
- package/calendar.js +1 -1
- package/calendar.pure.js +1 -1
- package/card/common/card-action-common.js +1 -1
- package/{card-action-common-DcyolMVU.js → card-action-common-DQDVfsGW.js} +0 -1
- package/card.js +1 -1
- package/card.pure.js +1 -1
- package/checkbox/checkbox.component.js +1 -1
- package/checkbox/common/checkbox-common.js +1 -1
- package/{checkbox-common-CbMkoAks.js → checkbox-common-CGJMgGgK.js} +62 -69
- package/checkbox-panel/checkbox-panel.component.js +1 -1
- package/{checkbox.component-DLkmHbNb.js → checkbox.component-AHeymsm8.js} +2 -2
- package/checkbox.js +2 -2
- package/checkbox.pure.js +2 -2
- package/{compact-paginator.component-CoAxdqWU.js → compact-paginator.component-DwBfi6Ec.js} +1 -1
- package/container/sticky-bar/sticky-bar.component.js +1 -1
- package/container.js +1 -1
- package/container.pure.js +1 -1
- package/core/base-elements/element.js +5 -0
- package/core/mixins/form-associated-input-mixin.js +1 -1
- package/core/mixins/named-slot-list-mixin.js +1 -1
- package/core/mixins/panel-mixin.js +1 -1
- package/core.js +1 -1
- package/custom-elements.json +5537 -284
- package/datepicker/datepicker/datepicker.component.js +1 -1
- package/development/{block-link-common-0Savn_ta.js → block-link-common-B2zlM5si.js} +3 -3
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.d.ts.map +1 -1
- package/development/breadcrumb/breadcrumb-group/breadcrumb-group.component.js +1 -1
- package/development/{breadcrumb-group.component-Djhr0rmt.js → breadcrumb-group.component-BC1mWiQE.js} +2 -6
- package/development/breadcrumb.js +1 -1
- package/development/breadcrumb.pure.js +1 -1
- package/development/button/accent-button/accent-button.component.d.ts.map +1 -1
- package/development/button/accent-button/accent-button.component.js +2 -2
- package/development/button/accent-button-link/accent-button-link.component.d.ts.map +1 -1
- package/development/button/accent-button-link/accent-button-link.component.js +2 -2
- package/development/button/accent-button-static/accent-button-static.component.d.ts.map +1 -1
- package/development/button/accent-button-static/accent-button-static.component.js +2 -2
- package/development/button/button/button.component.d.ts.map +1 -1
- package/development/button/button/button.component.js +2 -2
- package/development/button/button-link/button-link.component.d.ts.map +1 -1
- package/development/button/button-link/button-link.component.js +2 -2
- package/development/button/button-static/button-static.component.d.ts.map +1 -1
- package/development/button/button-static/button-static.component.js +2 -2
- package/development/button/common/button-common.d.ts.map +1 -1
- package/development/button/common/button-common.js +1 -1
- package/development/button/mini-button-group/mini-button-group.component.d.ts.map +1 -1
- package/development/button/mini-button-group/mini-button-group.component.js +1 -1
- package/development/button/secondary-button/secondary-button.component.d.ts.map +1 -1
- package/development/button/secondary-button/secondary-button.component.js +2 -2
- package/development/button/secondary-button-link/secondary-button-link.component.d.ts.map +1 -1
- package/development/button/secondary-button-link/secondary-button-link.component.js +2 -2
- package/development/button/secondary-button-static/secondary-button-static.component.d.ts.map +1 -1
- package/development/button/secondary-button-static/secondary-button-static.component.js +2 -2
- package/development/button/transparent-button/transparent-button.component.d.ts.map +1 -1
- package/development/button/transparent-button/transparent-button.component.js +2 -2
- package/development/button/transparent-button-link/transparent-button-link.component.d.ts.map +1 -1
- package/development/button/transparent-button-link/transparent-button-link.component.js +2 -2
- package/development/button/transparent-button-static/transparent-button-static.component.d.ts.map +1 -1
- package/development/button/transparent-button-static/transparent-button-static.component.js +2 -2
- package/development/{button-common-B96jQwgA.js → button-common-CXgSX4qz.js} +3 -8
- package/development/button.js +2 -2
- package/development/button.pure.js +2 -2
- package/development/calendar/calendar-day/calendar-day.component.d.ts.map +1 -1
- package/development/calendar/calendar-day/calendar-day.component.js +1 -1
- package/development/{calendar-day.component-BpqN28Nh.js → calendar-day.component-BHvdRxll.js} +2 -2
- package/development/calendar.js +1 -1
- package/development/calendar.pure.js +1 -1
- package/development/card/common/card-action-common.d.ts.map +1 -1
- package/development/card/common/card-action-common.js +1 -1
- package/development/{card-action-common-BRH3JFlC.js → card-action-common-DSg5TqIA.js} +1 -2
- package/development/card.js +1 -1
- package/development/card.pure.js +1 -1
- package/development/checkbox/checkbox.component.d.ts.map +1 -1
- package/development/checkbox/checkbox.component.js +1 -1
- package/development/checkbox/common/checkbox-common.d.ts.map +1 -1
- package/development/checkbox/common/checkbox-common.js +1 -1
- package/development/{checkbox-common-Bg3267ZQ.js → checkbox-common-zrAq1gCy.js} +3 -8
- package/development/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
- package/development/checkbox-panel/checkbox-panel.component.js +2 -2
- package/development/{checkbox.component-CShWuJ8S.js → checkbox.component-Jhp7gZKb.js} +3 -3
- package/development/checkbox.js +2 -2
- package/development/checkbox.pure.js +2 -2
- package/development/{compact-paginator.component-D4K03FGq.js → compact-paginator.component-DkOmmbnb.js} +2 -2
- package/development/container/sticky-bar/sticky-bar.component.js +1 -1
- package/development/container.js +1 -1
- package/development/container.pure.js +1 -1
- package/development/core/base-elements/element.d.ts +10 -1
- package/development/core/base-elements/element.d.ts.map +1 -1
- package/development/core/base-elements/element.js +18 -1
- package/development/core/mixins/form-associated-input-mixin.js +2 -2
- package/development/core/mixins/named-slot-list-mixin.d.ts.map +1 -1
- package/development/core/mixins/named-slot-list-mixin.js +2 -2
- package/development/core/mixins/panel-mixin.d.ts.map +1 -1
- package/development/core/mixins/panel-mixin.js +1 -1
- package/development/core.js +1 -1
- package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
- package/development/datepicker/datepicker/datepicker.component.js +2 -2
- package/development/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
- package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
- package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -1
- package/development/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
- package/development/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
- package/development/dialog/dialog-title/dialog-title.component.js +1 -1
- package/development/{dialog-actions.component-BlSlGrPX.js → dialog-actions.component-JnuXNR99.js} +2 -2
- package/development/{dialog-close-button.component-BbTNGFLs.js → dialog-close-button.component-Cucp_HVP.js} +2 -2
- package/development/{dialog-title.component-6tKpHsR0.js → dialog-title.component-CfGpsHCz.js} +2 -2
- package/development/dialog.js +3 -3
- package/development/dialog.pure.js +3 -3
- package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
- package/development/{expansion-panel-header.component-QbxqMGKG.js → expansion-panel-header.component-DFTa_og5.js} +2 -2
- package/development/expansion-panel.js +1 -1
- package/development/expansion-panel.pure.js +1 -1
- package/development/form-field/form-field-text-counter/form-field-text-counter.component.d.ts +1 -2
- package/development/form-field/form-field-text-counter/form-field-text-counter.component.d.ts.map +1 -1
- package/development/form-field/form-field-text-counter/form-field-text-counter.component.js +1 -4
- package/development/header/common/header-action-common.d.ts.map +1 -1
- package/development/header/common/header-action-common.js +1 -1
- package/development/{header-action-common-OnaZsRvd.js → header-action-common-gt9IY50k.js} +3 -8
- package/development/header.js +1 -1
- package/development/header.pure.js +1 -1
- package/development/{inline-link-common-BPSsiV2l.js → inline-link-common-D0ucqLI0.js} +3 -3
- package/development/journey-header/journey-header.component.d.ts.map +1 -1
- package/development/journey-header/journey-header.component.js +1 -1
- package/development/{journey-header.component-vQ7AYDSM.js → journey-header.component-CbtLbBj8.js} +2 -6
- package/development/journey-header.js +1 -1
- package/development/journey-header.pure.js +1 -1
- package/development/link/common/block-link-common.js +1 -1
- package/development/link/common/inline-link-common.js +1 -1
- package/development/link/common/link-common.d.ts.map +1 -1
- package/development/link/common/link-common.js +1 -1
- package/development/{link-common-u_29CvHh.js → link-common-CVPiVpe3.js} +3 -8
- package/development/link-list/common/link-list-base.d.ts.map +1 -1
- package/development/link-list/common/link-list-base.js +1 -1
- package/development/link-list/link-list.component.d.ts.map +1 -1
- package/development/link-list/link-list.component.js +1 -1
- package/development/link-list-anchor/link-list-anchor.component.d.ts.map +1 -1
- package/development/link-list-anchor/link-list-anchor.component.js +1 -1
- package/development/{link-list-anchor.component-USmY8EgB.js → link-list-anchor.component-CfpDrucM.js} +2 -2
- package/development/link-list-anchor.js +1 -1
- package/development/link-list-anchor.pure.js +1 -1
- package/development/{link-list-base-B7lhyRQX.js → link-list-base-DHx1uyIJ.js} +2 -6
- package/development/{link-list.component-BELz_qbY.js → link-list.component-BnwPCXG4.js} +3 -3
- package/development/link-list.js +2 -2
- package/development/link-list.pure.js +2 -2
- package/development/link.js +3 -3
- package/development/link.pure.js +3 -3
- package/development/menu/common/menu-action-common.d.ts.map +1 -1
- package/development/menu/common/menu-action-common.js +1 -1
- package/development/{menu-action-common-B_8L-wRC.js → menu-action-common-zev1oItt.js} +3 -8
- package/development/menu.js +1 -1
- package/development/menu.pure.js +1 -1
- package/development/{mini-button-group.component-DAbgiDdb.js → mini-button-group.component-DNFyLMg_.js} +2 -6
- package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
- package/development/navigation/common/navigation-action-common.js +1 -1
- package/development/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
- package/development/navigation/navigation-list/navigation-list.component.js +1 -1
- package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
- package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
- package/development/{navigation-action-common-CEFNy2YF.js → navigation-action-common-BrO3JPmN.js} +2 -6
- package/development/{navigation-list.component-Djgm6YPH.js → navigation-list.component-DDjMz5TE.js} +2 -6
- package/development/{navigation-marker.component-B2yzOStm.js → navigation-marker.component-Cd6apD2P.js} +2 -6
- package/development/navigation.js +3 -3
- package/development/navigation.pure.js +3 -3
- package/development/option/option/option.component.d.ts.map +1 -1
- package/development/option/option/option.component.js +1 -1
- package/development/{option.component-B18Ra5d9.js → option.component-BPHnz8y-.js} +3 -3
- package/development/option.js +1 -1
- package/development/option.pure.js +1 -1
- package/development/overlay/overlay.component.d.ts.map +1 -1
- package/development/overlay/overlay.component.js +1 -1
- package/development/{overlay.component-h3sOVMuU.js → overlay.component-CC_quHYI.js} +2 -2
- package/development/overlay.js +1 -1
- package/development/overlay.pure.js +1 -1
- package/development/paginator/common/paginator-common.d.ts.map +1 -1
- package/development/paginator/common/paginator-common.js +3 -8
- package/development/paginator/compact-paginator/compact-paginator.component.d.ts.map +1 -1
- package/development/paginator/compact-paginator/compact-paginator.component.js +1 -1
- package/development/paginator/paginator/paginator.component.d.ts.map +1 -1
- package/development/paginator/paginator/paginator.component.js +1 -1
- package/development/{paginator.component-Cn5a9c-2.js → paginator.component-D90qfI3Z.js} +2 -2
- package/development/paginator.js +2 -2
- package/development/paginator.pure.js +2 -2
- package/development/{panel-mixin-X1lzGg3S.js → panel-mixin-Doy4ko_C.js} +2 -6
- package/development/radio-button/common/radio-button-common.d.ts.map +1 -1
- package/development/radio-button/common/radio-button-common.js +1 -1
- package/development/radio-button/radio-button.component.d.ts.map +1 -1
- package/development/radio-button/radio-button.component.js +1 -1
- package/development/{radio-button-common-DUBFbGXY.js → radio-button-common-DvTx7Pb7.js} +3 -8
- package/development/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
- package/development/radio-button-panel/radio-button-panel.component.js +2 -2
- package/development/{radio-button.component-Cdbpqlt3.js → radio-button.component-DDz0a27A.js} +3 -3
- package/development/radio-button.js +2 -2
- package/development/radio-button.pure.js +2 -2
- package/development/sidebar/sidebar-close-button/sidebar-close-button.component.d.ts.map +1 -1
- package/development/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
- package/development/sidebar/sidebar-title/sidebar-title.component.d.ts.map +1 -1
- package/development/sidebar/sidebar-title/sidebar-title.component.js +1 -1
- package/development/{sidebar-close-button.component-CC0QzPhd.js → sidebar-close-button.component-Dz6l27_H.js} +2 -2
- package/development/{sidebar-title.component-CS3CJ0To.js → sidebar-title.component-BGlNsXi6.js} +2 -2
- package/development/sidebar.js +2 -2
- package/development/sidebar.pure.js +2 -2
- package/development/skiplink-list/skiplink-list.component.d.ts.map +1 -1
- package/development/skiplink-list/skiplink-list.component.js +1 -1
- package/development/{skiplink-list.component-wKB19gkw.js → skiplink-list.component-uY9Pkn0A.js} +2 -6
- package/development/skiplink-list.js +1 -1
- package/development/skiplink-list.pure.js +1 -1
- package/development/{sticky-bar.component-MMBSPa2B.js → sticky-bar.component-CVKi_65S.js} +3 -3
- package/development/{tab-group.component-CxuecHpZ.js → tab-group.component-B56RhxCr.js} +2 -2
- package/development/{tab-nav-bar.component-meiT_l0B.js → tab-nav-bar.component-DA2ZuWak.js} +1 -2
- package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
- package/development/tabs/tab-group/tab-group.component.js +1 -1
- package/development/tabs/tab-nav-bar/tab-nav-bar.component.d.ts.map +1 -1
- package/development/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
- package/development/tabs.js +2 -2
- package/development/tabs.pure.js +2 -2
- package/development/tag/tag-group/tag-group.component.d.ts.map +1 -1
- package/development/tag/tag-group/tag-group.component.js +1 -1
- package/development/tag-group.component-BToOrf6_.js +196 -0
- package/development/tag.js +1 -1
- package/development/tag.pure.js +1 -1
- package/development/teaser-product/common/teaser-product-common.d.ts.map +1 -1
- package/development/teaser-product/common/teaser-product-common.js +1 -1
- package/development/teaser-product/teaser-product/teaser-product.component.d.ts.map +1 -1
- package/development/teaser-product/teaser-product/teaser-product.component.js +1 -1
- package/development/teaser-product/teaser-product-static/teaser-product-static.component.d.ts +0 -2
- package/development/teaser-product/teaser-product-static/teaser-product-static.component.d.ts.map +1 -1
- package/development/teaser-product/teaser-product-static/teaser-product-static.component.js +1 -4
- package/development/{teaser-product-common-BzWTIGcp.js → teaser-product-common-ChG0_NH6.js} +3 -8
- package/development/{teaser-product.component-C0WLn7xi.js → teaser-product.component-EpVRs6g3.js} +2 -2
- package/development/teaser-product.js +2 -2
- package/development/teaser-product.pure.js +2 -2
- package/development/timetable-form/timetable-form-field/timetable-form-field.component.d.ts.map +1 -1
- package/development/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
- package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +1 -1
- package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
- package/development/{timetable-form-field.component-BrlJuDx4.js → timetable-form-field.component-CoV4V8Lv.js} +2 -2
- package/development/{timetable-form-swap-button.component-Cz3FAIVE.js → timetable-form-swap-button.component-B68AZbbq.js} +2 -2
- package/development/timetable-form.js +2 -2
- package/development/timetable-form.pure.js +2 -2
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.d.ts.map +1 -1
- package/development/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
- package/development/{timetable-occupancy-icon.component-Bi8hQJfy.js → timetable-occupancy-icon.component-CVdSBTO9.js} +2 -2
- package/development/timetable-occupancy-icon.js +1 -1
- package/development/timetable-occupancy-icon.pure.js +1 -1
- package/development/title/title.component.d.ts.map +1 -1
- package/development/title/title.component.js +1 -1
- package/development/{title.component-CbbTO4LU.js → title.component-A-ng32xE.js} +2 -2
- package/development/title.js +1 -1
- package/development/title.pure.js +1 -1
- package/development/train/train/train.component.d.ts.map +1 -1
- package/development/train/train/train.component.js +1 -1
- package/development/train/train-formation/train-formation.component.d.ts.map +1 -1
- package/development/train/train-formation/train-formation.component.js +1 -1
- package/development/train/train-wagon-common.d.ts.map +1 -1
- package/development/train/train-wagon-common.js +1 -1
- package/development/{train-formation.component-CT9XEGMW.js → train-formation.component-BCI6okR1.js} +1 -2
- package/development/{train-wagon-common-F03qDEN2.js → train-wagon-common-rq0Ptt97.js} +3 -8
- package/development/{train.component-BYo4x9no.js → train.component-Dc4unzp3.js} +2 -6
- package/development/train.js +3 -3
- package/development/train.pure.js +3 -3
- package/dialog/dialog-actions/dialog-actions.component.js +1 -1
- package/dialog/dialog-close-button/dialog-close-button.component.js +1 -1
- package/dialog/dialog-title/dialog-title.component.js +1 -1
- package/{dialog-actions.component-CqeDlr0B.js → dialog-actions.component-DGqZm5YQ.js} +1 -1
- package/{dialog-close-button.component-DuiEzbQJ.js → dialog-close-button.component-DB8SqzCb.js} +1 -1
- package/{dialog-title.component-DLD2RVTt.js → dialog-title.component-CxGEDHF8.js} +1 -1
- package/dialog.js +3 -3
- package/dialog.pure.js +3 -3
- package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +1 -1
- package/{expansion-panel-header.component-BEpspobZ.js → expansion-panel-header.component-BecyqC-C.js} +1 -1
- package/expansion-panel.js +1 -1
- package/expansion-panel.pure.js +1 -1
- package/form-field/form-field-text-counter/form-field-text-counter.component.js +0 -3
- package/header/common/header-action-common.js +1 -1
- package/{header-action-common-yOZmEFZa.js → header-action-common-LmhQeks_.js} +46 -53
- package/header.js +1 -1
- package/header.pure.js +1 -1
- package/{inline-link-common-saTIMWz0.js → inline-link-common-afDDbZ-k.js} +2 -2
- package/journey-header/journey-header.component.js +1 -1
- package/{journey-header.component-5JGTTMs7.js → journey-header.component-B7R7bNJZ.js} +1 -5
- package/journey-header.js +1 -1
- package/journey-header.pure.js +1 -1
- package/link/common/block-link-common.js +1 -1
- package/link/common/inline-link-common.js +1 -1
- package/link/common/link-common.js +1 -1
- package/{link-common-DPzMQFnE.js → link-common-D836V2nr.js} +3 -8
- package/link-list/common/link-list-base.js +1 -1
- package/link-list/link-list.component.js +1 -1
- package/link-list-anchor/link-list-anchor.component.js +1 -1
- package/{link-list-anchor.component-C3z8Q5V2.js → link-list-anchor.component-DfNod1F3.js} +1 -1
- package/link-list-anchor.js +1 -1
- package/link-list-anchor.pure.js +1 -1
- package/{link-list-base-DQL62JCi.js → link-list-base-DfOgyR8E.js} +1 -5
- package/{link-list.component-D69GdXfA.js → link-list.component-C_mSHB4h.js} +2 -2
- package/link-list.js +2 -2
- package/link-list.pure.js +2 -2
- package/link.js +3 -3
- package/link.pure.js +3 -3
- package/menu/common/menu-action-common.js +1 -1
- package/{menu-action-common-C0pXDwH9.js → menu-action-common-qkxdgw3d.js} +3 -8
- package/menu.js +1 -1
- package/menu.pure.js +1 -1
- package/{mini-button-group.component-t9YZBv-8.js → mini-button-group.component-BHbNqePj.js} +1 -5
- package/navigation/common/navigation-action-common.js +1 -1
- package/navigation/navigation-list/navigation-list.component.js +1 -1
- package/navigation/navigation-marker/navigation-marker.component.js +1 -1
- package/{navigation-action-common-BoxkAi8d.js → navigation-action-common-DdyVJJjU.js} +1 -5
- package/{navigation-list.component-DbaRXKc8.js → navigation-list.component-DhR9V87U.js} +1 -5
- package/{navigation-marker.component-KLFGeUft.js → navigation-marker.component-B6bGeKeo.js} +1 -5
- package/navigation.js +3 -3
- package/navigation.pure.js +3 -3
- package/option/option/option.component.js +1 -1
- package/{option.component-DCBEIrw4.js → option.component-QwHFIP3m.js} +2 -2
- package/option.js +1 -1
- package/option.pure.js +1 -1
- package/overlay/overlay.component.js +1 -1
- package/{overlay.component-DNFt8QLV.js → overlay.component-B00EoAd5.js} +1 -1
- package/overlay.js +1 -1
- package/overlay.pure.js +1 -1
- package/package.json +2 -2
- package/paginator/common/paginator-common.js +263 -270
- package/paginator/compact-paginator/compact-paginator.component.js +1 -1
- package/paginator/paginator/paginator.component.js +1 -1
- package/{paginator.component-BtBmabiW.js → paginator.component-BHKLJn4y.js} +1 -1
- package/paginator.js +2 -2
- package/paginator.pure.js +2 -2
- package/{panel-mixin-DcdteEmP.js → panel-mixin-755CTCLW.js} +1 -5
- package/radio-button/common/radio-button-common.js +1 -1
- package/radio-button/radio-button.component.js +1 -1
- package/{radio-button-common-CowDWcBS.js → radio-button-common-nP0appXU.js} +75 -82
- package/radio-button-panel/radio-button-panel.component.js +1 -1
- package/{radio-button.component-B80224NM.js → radio-button.component-0DmkhN7g.js} +2 -2
- package/radio-button.js +2 -2
- package/radio-button.pure.js +2 -2
- package/sidebar/sidebar-close-button/sidebar-close-button.component.js +1 -1
- package/sidebar/sidebar-title/sidebar-title.component.js +1 -1
- package/{sidebar-close-button.component-DZNZH9Zo.js → sidebar-close-button.component-L5ydAilf.js} +1 -1
- package/{sidebar-title.component-CBlyUcJi.js → sidebar-title.component-D6btDsb8.js} +1 -1
- package/sidebar.js +2 -2
- package/sidebar.pure.js +2 -2
- package/skiplink-list/skiplink-list.component.js +1 -1
- package/{skiplink-list.component-D9xJZ_t5.js → skiplink-list.component-BeBbIsNv.js} +1 -5
- package/skiplink-list.js +1 -1
- package/skiplink-list.pure.js +1 -1
- package/{sticky-bar.component-B_cdkr-V.js → sticky-bar.component-C3ey8Qj8.js} +2 -2
- package/{tab-group.component-CYbbE0J6.js → tab-group.component-C02ZTjXT.js} +1 -1
- package/{tab-nav-bar.component-3bbum8b-.js → tab-nav-bar.component-CPaV9kxe.js} +0 -1
- package/tabs/tab-group/tab-group.component.js +1 -1
- package/tabs/tab-nav-bar/tab-nav-bar.component.js +1 -1
- package/tabs.js +2 -2
- package/tabs.pure.js +2 -2
- package/tag/tag-group/tag-group.component.js +1 -1
- package/{tag-group.component-CBYyds-0.js → tag-group.component-BIhED38z.js} +1 -5
- package/tag.js +1 -1
- package/tag.pure.js +1 -1
- package/teaser-product/common/teaser-product-common.js +1 -1
- package/teaser-product/teaser-product/teaser-product.component.js +1 -1
- package/teaser-product/teaser-product-static/teaser-product-static.component.js +0 -3
- package/{teaser-product-common-CtbFDRqf.js → teaser-product-common-BCb5GBo9.js} +46 -53
- package/{teaser-product.component-BO58I4Hg.js → teaser-product.component-kf1XTKTq.js} +1 -1
- package/teaser-product.js +2 -2
- package/teaser-product.pure.js +2 -2
- package/timetable-form/timetable-form-field/timetable-form-field.component.js +1 -1
- package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
- package/{timetable-form-field.component-D1-gyKZB.js → timetable-form-field.component-Bb2bhSEk.js} +1 -1
- package/{timetable-form-swap-button.component-DsuJq-fr.js → timetable-form-swap-button.component-WNC4q9ml.js} +1 -1
- package/timetable-form.js +2 -2
- package/timetable-form.pure.js +2 -2
- package/timetable-occupancy-icon/timetable-occupancy-icon.component.js +1 -1
- package/{timetable-occupancy-icon.component-DKhtb4y_.js → timetable-occupancy-icon.component-DVdAxNOy.js} +1 -1
- package/timetable-occupancy-icon.js +1 -1
- package/timetable-occupancy-icon.pure.js +1 -1
- package/title/title.component.js +1 -1
- package/{title.component-D52MY-b3.js → title.component-DSKezSdR.js} +1 -1
- package/title.js +1 -1
- package/title.pure.js +1 -1
- package/train/train/train.component.js +1 -1
- package/train/train-formation/train-formation.component.js +1 -1
- package/train/train-wagon-common.js +1 -1
- package/{train-formation.component-mZej4Z1v.js → train-formation.component-DLbC60V8.js} +0 -1
- package/{train-wagon-common-Chw0-9Xv.js → train-wagon-common-qxnkLA4J.js} +274 -281
- package/{train.component-iMqXsF19.js → train.component-CMLK46ds.js} +1 -5
- package/train.js +3 -3
- package/train.pure.js +3 -3
- package/development/tag-group.component-L1wyub-I.js +0 -200
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as SbbCheckboxCommonElementMixin } from "./checkbox-common-
|
|
1
|
+
import { t as SbbCheckboxCommonElementMixin } from "./checkbox-common-zrAq1gCy.js";
|
|
2
2
|
import { __esDecorate, __runInitializers } from "tslib";
|
|
3
3
|
import { html, unsafeCSS } from "lit";
|
|
4
4
|
import { property } from "lit/decorators.js";
|
|
@@ -94,7 +94,7 @@ var SbbCheckboxElement = (() => {
|
|
|
94
94
|
this.elementDependencies = [SbbVisualCheckboxElement];
|
|
95
95
|
}
|
|
96
96
|
static {
|
|
97
|
-
this.styles = [
|
|
97
|
+
this.styles = [unsafeCSS(checkbox_default)];
|
|
98
98
|
}
|
|
99
99
|
#value_accessor_storage = __runInitializers(this, _value_initializers, null);
|
|
100
100
|
/** Value of the form element. */
|
|
@@ -154,4 +154,4 @@ var SbbCheckboxElement = (() => {
|
|
|
154
154
|
//#endregion
|
|
155
155
|
export { SbbCheckboxElement as t };
|
|
156
156
|
|
|
157
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
157
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LUpocDdnWktiLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jaGVja2JveC9jaGVja2JveC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuOmhvc3QoW2ljb24tcGxhY2VtZW50PSdzdGFydCddKSB7XG4gIC0tc2JiLWNoZWNrYm94LWxhYmVsLWljb24tZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAtLXNiYi1jaGVja2JveC1sYWJlbC1pY29uLWp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIC0tc2JiLWNoZWNrYm94LWxhYmVsLWljb24tZmxleC1ncm93OiAwO1xufVxuXG4uc2JiLWNoZWNrYm94LXdyYXBwZXIge1xuICA6aG9zdCg6Zm9jdXMtdmlzaWJsZSkgJiB7XG4gICAgQGluY2x1ZGUgc2JiLmZvY3VzLW91dGxpbmU7XG5cbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLXNiYi1ib3JkZXItcmFkaXVzLTR4KSAtIHZhcigtLXNiYi1mb2N1cy1vdXRsaW5lLW9mZnNldCkpO1xuICB9XG59XG5cbi5zYmItY2hlY2tib3hfX2xhYmVsIHtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLXNiYi1jaGVja2JveC1sYWJlbC1pY29uLWZsZXgtZGlyZWN0aW9uKTtcbiAganVzdGlmeS1jb250ZW50OiB2YXIoLS1zYmItY2hlY2tib3gtbGFiZWwtaWNvbi1qdXN0aWZ5LWNvbnRlbnQpO1xuICBmbGV4LWdyb3c6IHZhcigtLXNiYi1jaGVja2JveC1sYWJlbC1pY29uLWZsZXgtZ3Jvdyk7XG4gIGdhcDogdmFyKC0tc2JiLWNoZWNrYm94LWxhYmVsLWdhcCk7XG5cbiAgOmhvc3QoOm5vdCg6c3RhdGUoc2xvdHRlZCksIDpzdGF0ZShzbG90dGVkLWljb24pLCA6c3RhdGUoaGFzLWljb24tbmFtZSkpKSAmIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbnNiYi1pY29uLFxuc2xvdFtuYW1lPSdpY29uJ10gOjpzbG90dGVkKHNiYi1pY29uKSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgLy8gQWxpZ24gaGVpZ2h0IHRvIHRleHQgaGVpZ2h0XG4gIGhlaWdodDogY2FsYygxZW0gKiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KSk7XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCB0eXBlIFRlbXBsYXRlUmVzdWx0LCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGdldE92ZXJyaWRlLFxuICBpc0xlYW4sXG4gIFNiYkVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIHR5cGUgU2JiSWNvblBsYWNlbWVudCxcbn0gZnJvbSAnLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB7IFNiYlZpc3VhbENoZWNrYm94RWxlbWVudCB9IGZyb20gJy4uL3Zpc3VhbC1jaGVja2JveC5wdXJlLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vY2hlY2tib3guc2Nzcz9pbmxpbmUnO1xuaW1wb3J0IHsgU2JiQ2hlY2tib3hDb21tb25FbGVtZW50TWl4aW4sIHR5cGUgU2JiQ2hlY2tib3hTaXplIH0gZnJvbSAnLi9jb21tb24vY2hlY2tib3gtY29tbW9uLnRzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhIGNoZWNrYm94IGVuaGFuY2VkIHdpdGggdGhlIFNCQiBEZXNpZ24uXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgYHNiYi1jaGVja2JveGAuXG4gKiBAc2xvdCBpY29uIC0gU2xvdCB1c2VkIHRvIHJlbmRlciB0aGUgY2hlY2tib3ggaWNvbiAoZGlzYWJsZWQgaW5zaWRlIGEgc2VsZWN0aW9uIHBhbmVsKS5cbiAqIEBldmVudCB7RXZlbnR9IGNoYW5nZSAtIFRoZSBjaGFuZ2UgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb2RpZmllcyB0aGUgZWxlbWVudCdzIHZhbHVlLiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZCBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS5cbiAqIEBldmVudCB7SW5wdXRFdmVudH0gaW5wdXQgLSBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi5cbiAqIEBvdmVycmlkZVR5cGUgdmFsdWUgLSAoVCA9IHN0cmluZykgfCBudWxsXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJDaGVja2JveEVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJJY29uTmFtZU1peGluKFxuICBTYmJDaGVja2JveENvbW1vbkVsZW1lbnRNaXhpbihTYmJFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWNoZWNrYm94JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBlbGVtZW50RGVwZW5kZW5jaWVzOiBTYmJFbGVtZW50VHlwZVtdID0gW1NiYlZpc3VhbENoZWNrYm94RWxlbWVudF07XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFt1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKiogVmFsdWUgb2YgdGhlIGZvcm0gZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIHZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIHhzLCBzIG9yIG0uXG4gICAqIEBkZWZhdWx0ICdtJyAvICd4cycgKGxlYW4pXG4gICAqL1xuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlIH0pXG4gIEBnZXRPdmVycmlkZSgoaSwgdikgPT4gaS5ncm91cD8uc2l6ZSA/PyB2KVxuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQ2hlY2tib3hTaXplID0gaXNMZWFuKCkgPyAneHMnIDogJ20nO1xuXG4gIC8qKiBUaGUgbGFiZWwgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIGxhYmVsSWNvbi4gRGVmYXVsdHMgdG8gZW5kICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2ljb24tcGxhY2VtZW50JywgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgaWNvblBsYWNlbWVudDogU2JiSWNvblBsYWNlbWVudCA9ICdlbmQnO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3gtd3JhcHBlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1jaGVja2JveFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLWNoZWNrYm94X19pbm5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2FsaWduZXJcIj5cbiAgICAgICAgICAgICAgPHNiYi12aXN1YWwtY2hlY2tib3hcbiAgICAgICAgICAgICAgICA/Y2hlY2tlZD0ke3RoaXMuY2hlY2tlZH1cbiAgICAgICAgICAgICAgICA/aW5kZXRlcm1pbmF0ZT0ke3RoaXMuaW5kZXRlcm1pbmF0ZX1cbiAgICAgICAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkfVxuICAgICAgICAgICAgICAgIC5zaXplPSR7dGhpcy5zaXplfVxuICAgICAgICAgICAgICA+PC9zYmItdmlzdWFsLWNoZWNrYm94PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzYmItY2hlY2tib3hfX2xhYmVsXCI+XG4gICAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgICAgJHt0aGlzLnJlbmRlckljb25TbG90KCl9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWNoZWNrYm94JzogU2JiQ2hlY2tib3hFbGVtZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDeUJhLDRCQUFrQjttQkFBcUIsaUJBQ2xELDhCQUE4QixXQUFXLENBQzFDOzs7Ozs7Ozs7O2NBRlksMkJBQXVDLFlBRW5EOzs7d0JBTUUsVUFBVSxDQUFBO3VCQU9WLFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxFQUMzQixhQUFhLEdBQUcsTUFBTSxFQUFFLE9BQU8sUUFBUSxFQUFFLENBQUE7Z0NBSXpDLFNBQVM7SUFBRSxXQUFXO0lBQWtCLFNBQVM7SUFBTSxDQUFDLENBQUE7QUFYekQsZ0JBQUEsTUFBQSxNQUFBLG1CQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsV0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFLLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBTCxRQUFLOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEscUJBQUEseUJBQUE7QUFRckIsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7QUFJcEIsZ0JBQUEsTUFBQSxNQUFBLDJCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsbUJBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBYSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQWIsZ0JBQWE7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSw2QkFBQSxpQ0FBQTs7Ozs7Ozs7O0FBbEJHLFFBQUEsY0FBc0I7OztBQUMvQixRQUFBLHNCQUF3QyxDQUFDLHlCQUF5Qjs7O0FBQ2xFLFFBQUEsU0FBeUIsQ0FBQyxVQUFVLGlCQUFNLENBQUM7O0VBSWxFLDBCQUFBLGtCQUFBLE1BQUEscUJBQWtDLEtBQUk7O0VBQXRDLElBQWdCLFFBQUs7QUFBQSxVQUFBLE1BQUE7O0VBQXJCLElBQWdCLE1BQUssT0FBQTtBQUFBLFNBQUEseUJBQUE7O0VBUXJCLDBCQUFBLGtCQUFBLE1BQUEseUJBQUEsRUFBQSxrQkFBQSxNQUFBLG9CQUF3QyxRQUFRLEdBQUcsT0FBTyxJQUFHOzs7OztFQUE3RCxJQUFnQixPQUFJO0FBQUEsVUFBQSxNQUFBOztFQUFwQixJQUFnQixLQUFJLE9BQUE7QUFBQSxTQUFBLHdCQUFBOztFQUlwQixtQ0FBQSxrQkFBQSxNQUFBLHdCQUFBLEVBQUEsa0JBQUEsTUFBQSw2QkFBa0QsTUFBSzs7RUFBdkQsSUFBZ0IsZ0JBQWE7QUFBQSxVQUFBLE1BQUE7O0VBQTdCLElBQWdCLGNBQWEsT0FBQTtBQUFBLFNBQUEsaUNBQUE7O0VBRVYsU0FBTTtBQUN2QixVQUFPLElBQUk7Ozs7OzsyQkFNWSxLQUFLLFFBQUE7aUNBQ0MsS0FBSyxjQUFBOzRCQUNWLEtBQUssWUFBWSxLQUFLLGFBQUE7d0JBQzFCLEtBQUssS0FBQTs7Ozs7Z0JBS2IsS0FBSyxnQkFBZ0IsQ0FBQSJ9
|
package/development/checkbox.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as SbbCheckboxElement } from "./checkbox.component-
|
|
2
|
-
import { t as SbbCheckboxCommonElementMixin } from "./checkbox-common-
|
|
1
|
+
import { t as SbbCheckboxElement } from "./checkbox.component-Jhp7gZKb.js";
|
|
2
|
+
import { t as SbbCheckboxCommonElementMixin } from "./checkbox-common-zrAq1gCy.js";
|
|
3
3
|
import "./checkbox.pure.js";
|
|
4
4
|
//#region src/elements/checkbox.ts
|
|
5
5
|
/** @entrypoint */
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as SbbCheckboxElement } from "./checkbox.component-
|
|
2
|
-
import { t as SbbCheckboxCommonElementMixin } from "./checkbox-common-
|
|
1
|
+
import { t as SbbCheckboxElement } from "./checkbox.component-Jhp7gZKb.js";
|
|
2
|
+
import { t as SbbCheckboxCommonElementMixin } from "./checkbox-common-zrAq1gCy.js";
|
|
3
3
|
export { SbbCheckboxCommonElementMixin, SbbCheckboxElement };
|
|
@@ -18,7 +18,7 @@ var SbbCompactPaginatorElement = class extends SbbPaginatorCommonElementMixin(Sb
|
|
|
18
18
|
this.elementDependencies = [SbbDividerElement];
|
|
19
19
|
}
|
|
20
20
|
static {
|
|
21
|
-
this.styles = [
|
|
21
|
+
this.styles = [unsafeCSS(compact_paginator_default)];
|
|
22
22
|
}
|
|
23
23
|
static {
|
|
24
24
|
this.events = { page: "page" };
|
|
@@ -48,4 +48,4 @@ var SbbCompactPaginatorElement = class extends SbbPaginatorCommonElementMixin(Sb
|
|
|
48
48
|
//#endregion
|
|
49
49
|
export { SbbCompactPaginatorElement as t };
|
|
50
50
|
|
|
51
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFjdC1wYWdpbmF0b3IuY29tcG9uZW50LURrT21tYm5iLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9wYWdpbmF0b3IvY29tcGFjdC1wYWdpbmF0b3IvY29tcGFjdC1wYWdpbmF0b3Iuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvcGFnaW5hdG9yL2NvbXBhY3QtcGFnaW5hdG9yL2NvbXBhY3QtcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogdmFyKC0tc2JiLWNvbXBhY3QtcGFnaW5hdG9yLWdhcCk7XG4gIGp1c3RpZnktY29udGVudDogdmFyKC0tc2JiLXBhZ2luYXRvci1jb21wYWN0LWp1c3RpZnktY29udGVudCwgc3RhcnQpO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItY29tcGFjdC1wYWdpbmF0b3ItaGVpZ2h0KTtcbn1cblxuOmhvc3QoW3NpemU9J3MnXSkge1xuICAtLXNiYi1jb21wYWN0LXBhZ2luYXRvci1oZWlnaHQ6IHZhcigtLXNiYi1zaXplLWVsZW1lbnQteHMpO1xufVxuXG46aG9zdChbc2l6ZT0nbSddKSB7XG4gIC0tc2JiLWNvbXBhY3QtcGFnaW5hdG9yLWhlaWdodDogdmFyKC0tc2JiLXNpemUtZWxlbWVudC1tKTtcbn1cblxuOmhvc3QoW25lZ2F0aXZlXSkge1xuICAtLXNiYi1jb21wYWN0LXBhZ2luYXRvci1jb2xvcjogdmFyKC0tc2JiLWNvbG9yLTUpO1xufVxuXG46aG9zdChbcGFnZXItcG9zaXRpb249J2VuZCddKSB7XG4gIC0tc2JiLXBhZ2luYXRvci1jb21wYWN0LWp1c3RpZnktY29udGVudDogZW5kO1xufVxuXG4uc2JiLXBhZ2luYXRvcl9fcGFnZXMge1xuICBmb250LXNpemU6IHZhcigtLXNiYi1jb21wYWN0LXBhZ2luYXRvci1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGdhcDogdmFyKC0tc2JiLWNvbXBhY3QtcGFnaW5hdG9yLXBhZ2VzLWdhcCk7XG4gIGNvbG9yOiB2YXIoLS1zYmItY29tcGFjdC1wYWdpbmF0b3ItY29sb3IpO1xufVxuXG4uc2JiLWNvbXBhY3QtcGFnaW5hdG9yX19kaXZpZGVyIHtcbiAgaGVpZ2h0OiAje3NiYi5weC10by1yZW0tYnVpbGQoMTYpfTtcbn1cbiIsImltcG9ydCB7IHR5cGUgQ1NTUmVzdWx0R3JvdXAsIGh0bWwsIHR5cGUgVGVtcGxhdGVSZXN1bHQsIHVuc2FmZUNTUyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBzdHlsZU1hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3N0eWxlLW1hcC5qcyc7XG5cbmltcG9ydCB7IGkxOG5QYWdlLCBpMThuUGFnaW5hdG9yT2YsIFNiYkVsZW1lbnQsIHR5cGUgU2JiRWxlbWVudFR5cGUgfSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB7IFNiYkRpdmlkZXJFbGVtZW50IH0gZnJvbSAnLi4vLi4vZGl2aWRlci5wdXJlLnRzJztcbmltcG9ydCB7IFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpbiB9IGZyb20gJy4uL2NvbW1vbi9wYWdpbmF0b3ItY29tbW9uLnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vY29tcGFjdC1wYWdpbmF0b3Iuc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgcGFnaW5hdG9yIGNvbXBvbmVudCBpbiBjb21wYWN0IG1vZGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJDb21wYWN0UGFnaW5hdG9yRWxlbWVudCBleHRlbmRzIFNiYlBhZ2luYXRvckNvbW1vbkVsZW1lbnRNaXhpbihTYmJFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItY29tcGFjdC1wYWdpbmF0b3InO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbU2JiRGl2aWRlckVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIHBhZ2U6ICdwYWdlJyxcbiAgfSBhcyBjb25zdDtcblxuICBwcml2YXRlIF9yZW5kZXJQYWdlTnVtYmVycygpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8c3BhbiBjbGFzcz1cInNiYi1wYWdpbmF0b3JfX3BhZ2VzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgPiR7dGhpcy5wYWdlSW5kZXggKyAxfTxzYmItZGl2aWRlclxuICAgICAgICAgIG9yaWVudGF0aW9uPVwidmVydGljYWxcIlxuICAgICAgICAgIGNsYXNzPVwic2JiLWNvbXBhY3QtcGFnaW5hdG9yX19kaXZpZGVyXCJcbiAgICAgICAgICBzdHlsZT0ke3N0eWxlTWFwKHsgJy0tc2JiLWRpdmlkZXItY29sb3InOiAnY3VycmVudGNvbG9yJyB9KX1cbiAgICAgICAgICA/bmVnYXRpdmU9JHt0aGlzLm5lZ2F0aXZlfVxuICAgICAgICA+PC9zYmItZGl2aWRlclxuICAgICAgICA+JHt0aGlzLm51bWJlck9mUGFnZXMoKX08L3NwYW5cbiAgICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiPlxuICAgICAgICAke2Ake3RoaXMuYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbCA/IHRoaXMuYWNjZXNzaWJpbGl0eVBhZ2VMYWJlbCA6IGkxOG5QYWdlW3RoaXMubGFuZ3VhZ2UuY3VycmVudF19ICR7dGhpcy5wYWdlSW5kZXggKyAxfSAke2kxOG5QYWdpbmF0b3JPZlt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdfSAke3RoaXMubnVtYmVyT2ZQYWdlcygpfWB9XG4gICAgICA8L3NwYW4+XG4gICAgYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJQYWdpbmF0b3IoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgJHt0aGlzLnBhZ2VyUG9zaXRpb24gPT09ICdzdGFydCdcbiAgICAgICAgPyBodG1sYCR7dGhpcy5yZW5kZXJQcmV2TmV4dEJ1dHRvbnMoKX0gJHt0aGlzLl9yZW5kZXJQYWdlTnVtYmVycygpfWBcbiAgICAgICAgOiBodG1sYCR7dGhpcy5fcmVuZGVyUGFnZU51bWJlcnMoKX0gJHt0aGlzLnJlbmRlclByZXZOZXh0QnV0dG9ucygpfWB9XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLWNvbXBhY3QtcGFnaW5hdG9yJzogU2JiQ29tcGFjdFBhZ2luYXRvckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FDWUEsSUFBYSw2QkFBYixjQUFnRCwrQkFBK0IsV0FBVyxDQUFBOztBQUN4RCxPQUFBLGNBQXNCOzs7QUFDL0IsT0FBQSxzQkFBd0MsQ0FBQyxrQkFBa0I7OztBQUMzRCxPQUFBLFNBQXlCLENBQUMsVUFBVSwwQkFBTSxDQUFDOzs7QUFDM0MsT0FBQSxTQUFpQyxFQUN0RCxNQUFNLFFBQ0U7O0NBRUYscUJBQWtCO0FBQ3hCLFNBQU8sSUFBSTs7V0FFSixLQUFLLFlBQVksRUFBQzs7O2tCQUdYLFNBQVMsRUFBRSx1QkFBdUIsZ0JBQWdCLENBQUMsQ0FBQTtzQkFDL0MsS0FBSyxTQUFBOztXQUVoQixLQUFLLGVBQWUsQ0FBQTs7O1VBR3JCLEdBQUcsS0FBSyx5QkFBeUIsS0FBSyx5QkFBeUIsU0FBUyxLQUFLLFNBQVMsU0FBUSxHQUFJLEtBQUssWUFBWSxFQUFDLEdBQUksZ0JBQWdCLEtBQUssU0FBUyxTQUFRLEdBQUksS0FBSyxlQUFlLEdBQUE7Ozs7Q0FLM0ssa0JBQWU7QUFDaEMsU0FBTyxJQUFJO1FBQ1AsS0FBSyxrQkFBa0IsVUFDckIsSUFBSSxHQUFHLEtBQUssdUJBQXVCLENBQUEsR0FBSSxLQUFLLG9CQUFvQixLQUNoRSxJQUFJLEdBQUcsS0FBSyxvQkFBb0IsQ0FBQSxHQUFJLEtBQUssdUJBQXVCLEdBQUEifQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SbbStickyBarElement } from "../../sticky-bar.component-
|
|
1
|
+
import { t as SbbStickyBarElement } from "../../sticky-bar.component-CVKi_65S.js";
|
|
2
2
|
export { SbbStickyBarElement };
|
package/development/container.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as SbbContainerElement } from "./container.component-CM10qyHy.js";
|
|
2
|
-
import { t as SbbStickyBarElement } from "./sticky-bar.component-
|
|
2
|
+
import { t as SbbStickyBarElement } from "./sticky-bar.component-CVKi_65S.js";
|
|
3
3
|
import "./container.pure.js";
|
|
4
4
|
//#region src/elements/container.ts
|
|
5
5
|
/** @entrypoint */
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { t as SbbContainerElement } from "./container.component-CM10qyHy.js";
|
|
2
|
-
import { t as SbbStickyBarElement } from "./sticky-bar.component-
|
|
2
|
+
import { t as SbbStickyBarElement } from "./sticky-bar.component-CVKi_65S.js";
|
|
3
3
|
export { SbbContainerElement, SbbStickyBarElement };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement, PropertyDeclaration, PropertyValues, ReactiveController } from 'lit';
|
|
1
|
+
import { CSSResultGroup, CSSResultOrNative, LitElement, PropertyDeclaration, PropertyValues, ReactiveController } from 'lit';
|
|
2
2
|
export interface SbbStateController {
|
|
3
3
|
add(value: string): this;
|
|
4
4
|
delete(value: string): boolean;
|
|
@@ -68,6 +68,15 @@ export declare class SbbElement extends LitElement {
|
|
|
68
68
|
constructor();
|
|
69
69
|
/** Register the custom element in the global CustomElementRegistry. */
|
|
70
70
|
static define(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Collects `styles` from every class in the prototype chain (using `Object.hasOwn`)
|
|
73
|
+
* and merges them in top-down order. This means each class/mixin only needs to declare
|
|
74
|
+
* its **own** styles — there is no need to reference `super.styles`.
|
|
75
|
+
*
|
|
76
|
+
* Lit's default behaviour already walks the chain, but fails for mixins where
|
|
77
|
+
* `super.styles` resolves to the wrong class. This override fixes that.
|
|
78
|
+
*/
|
|
79
|
+
protected static finalizeStyles(_styles: CSSResultGroup): CSSResultOrNative[];
|
|
71
80
|
protected createRenderRoot(): HTMLElement | DocumentFragment;
|
|
72
81
|
/**
|
|
73
82
|
* Registers a `ReactiveController` to participate in the element's reactive
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/element.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/base-elements/element.ts"],"names":[],"mappings":"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"}
|
|
@@ -263,6 +263,23 @@ var SbbElement = class extends LitElement {
|
|
|
263
263
|
new Set(elementDependencies).forEach((dependency) => dependency.define());
|
|
264
264
|
}
|
|
265
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* Collects `styles` from every class in the prototype chain (using `Object.hasOwn`)
|
|
268
|
+
* and merges them in top-down order. This means each class/mixin only needs to declare
|
|
269
|
+
* its **own** styles — there is no need to reference `super.styles`.
|
|
270
|
+
*
|
|
271
|
+
* Lit's default behaviour already walks the chain, but fails for mixins where
|
|
272
|
+
* `super.styles` resolves to the wrong class. This override fixes that.
|
|
273
|
+
*/
|
|
274
|
+
static finalizeStyles(_styles) {
|
|
275
|
+
const collected = [];
|
|
276
|
+
let ctor = this;
|
|
277
|
+
while (ctor && ctor !== LitElement) {
|
|
278
|
+
if (Object.hasOwn(ctor, "styles") && ctor.styles) collected.unshift(ctor.styles);
|
|
279
|
+
ctor = Object.getPrototypeOf(ctor);
|
|
280
|
+
}
|
|
281
|
+
return super.finalizeStyles(collected);
|
|
282
|
+
}
|
|
266
283
|
createRenderRoot() {
|
|
267
284
|
const root = super.createRenderRoot();
|
|
268
285
|
this.shadowRoot?.addEventListener("slotchange", (e) => this._slotchangeHandler(e, e.target));
|
|
@@ -368,4 +385,4 @@ var SbbElement = class extends LitElement {
|
|
|
368
385
|
//#endregion
|
|
369
386
|
export { SbbElement, SbbSlottedChangeEvent, appendAriaElements, removeAriaElements, ɵstateController };
|
|
370
387
|
|
|
371
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzL2VsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsXG59IGZyb20gJ2xpdCc7XG5cbi8vIE1vc3Qgb2Ygb3VyIHRhcmdldCBicm93c2VycyBzdXBwb3J0IHRoZSA6c3RhdGUoKSBwc2V1ZG8gY2xhc3MsIGJ1dCBub3QgYWxsIG9mIHRoZW0uXG4vLyBXZSBwYXRjaCB0aGUgc3RhdGVzIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IGludGVybmFscyB0byB1c2UgYXR0cmlidXRlcyBpbnN0ZWFkLFxuLy8gaWYgOnN0YXRlKCkgaXMgbm90IHN1cHBvcnRlZC5cbi8vIE5vdGUgdGhhdCBmb3IgU1NSLCB0aGUgc3RhdGVzIHByb3BlcnR5IGlzIGEgc2ltcGxlIFNldCwgaW1wbGVtZW50ZWQgaW4gTGl0IFNTUi5cbnR5cGUgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UgPSBDdXN0b21TdGF0ZVNldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IEN1c3RvbVN0YXRlU2V0UG9seWZpbGw6IChuZXcgKGhvc3Q6IExpdEVsZW1lbnQpID0+IEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlKSB8IG51bGwgPVxuICBpc1NlcnZlciB8fCAhQ1NTLnN1cHBvcnRzKCdzZWxlY3Rvcig6c3RhdGUobG9hZGluZykpJylcbiAgICA/IGNsYXNzIEN1c3RvbVN0YXRlU2V0XG4gICAgICAgIGV4dGVuZHMgU2V0PHN0cmluZz5cbiAgICAgICAgaW1wbGVtZW50cyBDdXN0b21TdGF0ZVNldEludGVyZmFjZSwgUmVhY3RpdmVDb250cm9sbGVyXG4gICAgICB7XG4gICAgICAgIHByaXZhdGUgX2FwcGxpZWQgPSBpc1NlcnZlcjtcblxuICAgICAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogTGl0RWxlbWVudCkge1xuICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gYXBwbHkgdGhlIGF0dHJpYnV0ZXMgYXMgZWFybHkgYXMgcG9zc2libGUgd2hpY2ggY2FuXG4gICAgICAgICAgICAvLyBlaXRoZXIgYmUgdmlhIHRoaXMgUHJvbWlzZS5yZXNvbHZlKCkgb3IgdGhlIGNvbm5lY3RlZENhbGxiYWNrKCkuXG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX2FwcGx5U3RhdGVzKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBhZGQoc3RhdGU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICAgIGlmICh0aGlzLl9hcHBsaWVkKSB7XG4gICAgICAgICAgICB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdXBlci5hZGQoc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGRlbGV0ZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgICAgdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIGZhbHNlKTtcbiAgICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLmZvckVhY2goKHN0YXRlKSA9PiB0aGlzLmRlbGV0ZShzdGF0ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5fYXBwbHlTdGF0ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaXZhdGUgX3RvZ2dsZVN0YXRlKHN0YXRlOiBzdHJpbmcsIGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLl9ob3N0LnRvZ2dsZUF0dHJpYnV0ZShgc3RhdGUtLSR7c3RhdGV9YCwgZW5hYmxlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF9hcHBseVN0YXRlcygpOiB2b2lkIHtcbiAgICAgICAgICBpZiAodGhpcy5fYXBwbGllZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9hcHBsaWVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmZvckVhY2goKHN0YXRlKSA9PiB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiBudWxsO1xuXG5pZiAoIWlzU2VydmVyKSB7XG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgdGhlIGFyaWEgZWxlbWVudHMgcHJvcGVydGllcyBvbiBFbGVtZW50SW50ZXJuYWxzIGFuZCBFbGVtZW50LlxuICBsZXQgbmV4dElkID0gMDtcbiAgY29uc3QgcmVzb2x2ZUhvc3QgPSAob3JpZ2luOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgPT5cbiAgICBvcmlnaW4uc2hhZG93Um9vdD8uaG9zdCA/P1xuICAgIChvcmlnaW4gaW5zdGFuY2VvZiBFbGVtZW50XG4gICAgICA/IG9yaWdpblxuICAgICAgOiAoKCkgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJlc29sdmUgcmVsYXRlZCBlbGVtZW50ISBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uJyk7XG4gICAgICAgIH0pKCkpO1xuICBjb25zdCBvYnNlcnZlck9wdGlvbnM6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0geyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSB9O1xuICBjb25zdCBhc3NpZ25FbGVtZW50ID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+LFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBJbiBjYXNlIGJvdGggRWxlbWVudCBhbmQgRWxlbWVudEludGVybmFscyBwcm9wZXJ0aWVzIGFyZSBzZXQsXG4gICAgLy8gdGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZyb20gRWxlbWVudCBoYXMgcHJpb3JpdHkuXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGVsZW1lbnRzW0VsZW1lbnQubmFtZV0gPz8gZWxlbWVudHNbRWxlbWVudEludGVybmFscy5uYW1lXTtcbiAgICBob3N0LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIChhY3RpdmVFbGVtZW50LmlkIHx8PSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSk7XG4gIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnRzID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB3ZSBjb21iaW5lIHRoZSBlbGVtZW50IHJlZmVyZW5jZXMuXG4gICAgaG9zdC5zZXRBdHRyaWJ1dGUoXG4gICAgICBhdHRyaWJ1dGUsXG4gICAgICBPYmplY3QudmFsdWVzKGVsZW1lbnRzKVxuICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAubWFwKChlKSA9PiBlLmlkIHx8IChlLmlkID0gYGFyaWEtcmVmLSR7bmV4dElkKyt9YCkpXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IHR5cGUgb2YgW0VsZW1lbnRJbnRlcm5hbHMsIEVsZW1lbnRdKSB7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdHlwZS5wcm90b3R5cGU7XG4gICAgaWYgKCEoJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgaW4gcHJvdG90eXBlKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc7XG4gICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgIEVsZW1lbnQsXG4gICAgICAgIHsgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICA+KCk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50Jywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgaWQgPSBob3N0LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpPy5zcGxpdCgvXFxzKy8pWzBdID8/IG51bGw7XG4gICAgICAgICAgcmV0dXJuIGlkXG4gICAgICAgICAgICA/ICgoaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQ/LihpZCkgPz8gbnVsbClcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50LCB2YWx1ZTogRWxlbWVudCB8IG51bGwpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgcHJvcGVydHkgb24gJyR7dHlwZS5uYW1lfSc6IEZhaWxlZCB0byBjb252ZXJ0IHZhbHVlIHRvICdFbGVtZW50Jy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICBlbnRyeT8ub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICBkZWxldGUgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXTtcbiAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgaG9zdC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpWzBdLCBvYnNlcnZlck9wdGlvbnMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50PiA9IHsgW3R5cGUubmFtZV06IHZhbHVlIH07XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpKTtcbiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUodmFsdWUsIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVudHJ5LmVsZW1lbnRzKTtcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpLmZvckVhY2goKGUpID0+XG4gICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbXG4gICAgICAnYXJpYUNvbnRyb2xzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXNjcmliZWRCeUVsZW1lbnRzJyxcbiAgICAgICdhcmlhRGV0YWlsc0VsZW1lbnRzJyxcbiAgICAgICdhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHMnLFxuICAgICAgJ2FyaWFMYWJlbGxlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFPd25zRWxlbWVudHMnLFxuICAgIF0pIHtcbiAgICAgIGlmICghKHByb3BlcnR5IGluIHByb3RvdHlwZSkpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICAgIEVsZW1lbnQsXG4gICAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPjsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfVxuICAgICAgICA+KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGBhcmlhLSR7cHJvcGVydHkuc2xpY2UoNCwgLTgpLnRvTG93ZXJDYXNlKCl9YDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgcHJvcGVydHksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBnZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdFxuICAgICAgICAgICAgICAuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgPy5zcGxpdCgvXFxzKy8pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSlcbiAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIEVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBPYmplY3QuZnJlZXplKGVsZW1lbnRzKSA6IG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50W10pIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5zb21lKChlbGVtZW50KSA9PiAhKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50KSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJyR7cHJvcGVydHl9JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWU/LmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKSA/PyBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkuZWxlbWVudHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWxlbWVudCkgPT4gb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgc3RvcmFnZS5zZXQoaG9zdCwgeyBlbGVtZW50cywgb2JzZXJ2ZXIgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBhdHRhY2hlZEVsZW1lbnRJbnRlcm5hbHMgPSBuZXcgV2Vha01hcDxFbGVtZW50LCBFbGVtZW50SW50ZXJuYWxzPigpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlN0YXRlQ29udHJvbGxlciB7XG4gIGFkZCh2YWx1ZTogc3RyaW5nKTogdGhpcztcbiAgZGVsZXRlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuO1xuICBoYXModmFsdWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIHRvZ2dsZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGF0ZSBjb250cm9sbGVyIGZvciB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqIE5PVCBJTlRFTkRFRCBUTyBCRSBVU0VEIEJZIENPTlNVTUVSUyFcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCk6IFNiYlN0YXRlQ29udHJvbGxlcjtcbmV4cG9ydCBmdW5jdGlvbiDJtXN0YXRlQ29udHJvbGxlcihlbGVtZW50OiBFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbCk6IFNiYlN0YXRlQ29udHJvbGxlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGwpOiBTYmJTdGF0ZUNvbnRyb2xsZXIgfCBudWxsIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3Qgc3RhdGVzID0gYXR0YWNoZWRFbGVtZW50SW50ZXJuYWxzLmdldChlbGVtZW50KT8uc3RhdGVzO1xuICBjb25zdCB0b2dnbGU6IFNiYlN0YXRlQ29udHJvbGxlclsndG9nZ2xlJ10gPSBmdW5jdGlvbiAodGhpczogU2JiU3RhdGVDb250cm9sbGVyLCB2YWx1ZSwgZm9yY2UpIHtcbiAgICBpZiAoZm9yY2UgfHwgKGZvcmNlICE9PSBmYWxzZSAmJiAhdGhpcy5oYXModmFsdWUpKSkge1xuICAgICAgdGhpcy5hZGQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfVxuICB9O1xuICBpZiAoc3RhdGVzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZCh2YWx1ZSkge1xuICAgICAgICBzdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgZGVsZXRlOiAodmFsdWUpID0+IHN0YXRlcy5kZWxldGUodmFsdWUpLFxuICAgICAgaGFzOiAodmFsdWUpID0+IHN0YXRlcy5oYXModmFsdWUpLFxuICAgICAgdG9nZ2xlLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgbm8gRWxlbWVudEludGVybmFscyBpcyBhdHRhY2hlZCwgd2UgZmFsbCBiYWNrIHRvIHVzaW5nIGF0dHJpYnV0ZXMuIEUuZy4gZm9yIHRyaWdnZXJzLlxuICAgIHJldHVybiB7XG4gICAgICBhZGQodmFsdWUpIHtcbiAgICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICBkZWxldGU6ICh2YWx1ZSkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIGZhbHNlKSxcbiAgICAgIGhhczogKHZhbHVlKSA9PiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShgc3RhdGUtLSR7dmFsdWV9YCksXG4gICAgICB0b2dnbGUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2JiU2xvdHRlZENoYW5nZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHNsb3Q6IEhUTUxTbG90RWxlbWVudCkge1xuICAgIHN1cGVyKCdzbG90dGVkY2hhbmdlJywgeyBjb21wb3NlZDogdHJ1ZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlByb3BlcnR5VmFsdWVzIHtcbiAgb2xkVmFsdWU/OiB1bmtub3duO1xuICB2YWx1ZT86IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiUmVhY3RpdmVDb250cm9sbGVyIGV4dGVuZHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgaG9zdFByb3BlcnR5VXBkYXRlPyhcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSxcbiAgICB2YWx1ZXM/OiBTYmJQcm9wZXJ0eVZhbHVlcyxcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBcHBlbmRzIHRoZSBnaXZlbiBlbGVtZW50cyB0byB0aGUgZ2l2ZW4gYXJpYSB2YWx1ZSBhbmQgcmV0dXJucyB0aGVcbiAqIGNvbWJpbmVkIHZhbHVlIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIGJvdGggdmFsdWVzIHdlcmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBlbmRBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ubmV3RWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGVsZW1lbnRzID0gbmV3RWxlbWVudHMuZmlsdGVyKCh2KTogdiBpcyBFbGVtZW50ID0+ICEhdik7XG4gIHJldHVybiBhcmlhVmFsdWU/Lmxlbmd0aCA/IGFyaWFWYWx1ZS5jb25jYXQoZWxlbWVudHMpIDogbmV3RWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBnaXZlbiBlbGVtZW50cyBmcm9tIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zXG4gKiB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIHRoZSByZXN1bHQgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ucmVtb3ZhYmxlRWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIHJlbW92YWJsZUVsZW1lbnRzID0gcmVtb3ZhYmxlRWxlbWVudHMuZmlsdGVyKCh2KSA9PiAhIXYpO1xuICBjb25zdCBlbGVtZW50cyA9IGFyaWFWYWx1ZT8uZmlsdGVyKCh2KSA9PiAhcmVtb3ZhYmxlRWxlbWVudHMuaW5jbHVkZXModikpID8/IG51bGw7XG4gIHJldHVybiBlbGVtZW50cz8ubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgU2JiRWxlbWVudFR5cGUgPSB0eXBlb2YgU2JiRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJFbGVtZW50Q29uc3RydWN0b3Ige1xuICBlbGVtZW50RGVwZW5kZW5jaWVzPzogU2JiRWxlbWVudFR5cGVbXTtcbiAgcm9sZT86IEVsZW1lbnRJbnRlcm5hbHNbJ3JvbGUnXTtcbn1cblxuLyoqXG4gKiBBIGJhc2UgY2xhc3MgZm9yIGFsbCBTQkIgZWxlbWVudHMuXG4gKiBJbmNsdWRlcyBhdHRhY2hpbmcgRWxlbWVudEludGVybmFscywgaGFuZGxpbmcgaHlkcmF0aW9uLCBhbmQgbWFuYWdpbmcgc3RhdGUuXG4gKi9cbi8vIFRPRE8oYnJlYWtpbmctY2hhbmdlKTogSW5saW5lIGFuZCByZW1vdmUgU2JiRWxlbWVudEludGVybmFsc01peGluIGFuZCBTYmJIeWRyYXRpb25NaXhpbiBhcyBhIGJyZWFraW5nIGNoYW5nZVxuZXhwb3J0IGNsYXNzIFNiYkVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBbJ18kc2JiRWxlbWVudCQnXSA9IHRydWU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZztcbiAgcHVibGljIHN0YXRpYyBlbGVtZW50RGVwZW5kZW5jaWVzPzogU2JiRWxlbWVudFR5cGVbXTtcbiAgcHVibGljIHN0YXRpYyByb2xlPzogRWxlbWVudEludGVybmFsc1sncm9sZSddO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7XG5cbiAgcHJpdmF0ZSBfY29udHJvbGxlcnM/OiBTZXQ8U2JiUmVhY3RpdmVDb250cm9sbGVyPjtcbiAgcHJpdmF0ZSBfaHlkcmF0aW9uUmVxdWlyZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2h5ZHJhdGlvbkNvbXBsZXRlID0gbmV3IFByb21pc2U8Ym9vbGVhbj4oXG4gICAgKHJlc29sdmUpID0+ICh0aGlzLl9yZXNvbHZlSHlkcmF0aW9uID0gcmVzb2x2ZSksXG4gICk7XG4gIHByaXZhdGUgX3Jlc29sdmVIeWRyYXRpb24hOiAoaHlkcmF0aW9uUmVxdWlyZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHByaXZhdGUgX3RleHRPYnNlcnZlcj86IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZWxlbWVudCBoYXMgY29tcGxldGVkIGh5ZHJhdGlvbi5cbiAgICogVGhlIFByb21pc2UgdmFsdWUgaXMgYSBib29sZWFuIHRoYXQgaXMgYHRydWVgIGlmIHRoZSBlbGVtZW50IHJlcXVpcmVkIGh5ZHJhdGlvblxuICAgKiBhbmQgYGZhbHNlYCBpZiBub3QuXG4gICAqXG4gICAqIEByZXR1cm4gQSBwcm9taXNlIG9mIGEgYm9vbGVhbiB0aGF0IHJlc29sdmVzIHRvIHRydWUgb25jZSB0aGUgaHlkcmF0aW9uIGNvbXBsZXRlZC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGh5ZHJhdGlvbkNvbXBsZXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9oeWRyYXRpb25Db21wbGV0ZTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHdoZXRoZXIgaHlkcmF0aW9uIGlzIHJlcXVpcmVkIGFuZCBub3QgY29tcGxldGVkLiAqL1xuICBwcm90ZWN0ZWQgZ2V0IGh5ZHJhdGlvblJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oeWRyYXRpb25SZXF1aXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGF0dGFjaGVkRWxlbWVudEludGVybmFscy5zZXQodGhpcywgdGhpcy5pbnRlcm5hbHMpO1xuICAgIGlmIChDdXN0b21TdGF0ZVNldFBvbHlmaWxsKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5pbnRlcm5hbHMsICdzdGF0ZXMnLCB7XG4gICAgICAgIHZhbHVlOiBuZXcgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbCh0aGlzKSxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSB1c2UgdGhlIEN1c3RvbVN0YXRlU2V0IHBvbHlmaWxsIGluIFNTUiwgd2hpY2ggcmVuZGVycyB0aGUgc3RhdGUgYXMgYXR0cmlidXRlc1xuICAgICAgLy8gd2hpY2ggY2FuIGJlIHRyYW5zZmVycmVkIHRvIGNsaWVudCBzaWRlLCB3aGVyZSB3ZSBjYW4gdGhlbiBjb252ZXJ0IFtzdGF0ZS0tKl1cbiAgICAgIC8vIGF0dHJpYnV0ZXMgdG8gaW50ZXJuYWwgc3RhdGUuXG4gICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5nZXRBdHRyaWJ1dGVOYW1lcygpLmZpbHRlcigobikgPT4gbi5zdGFydHNXaXRoKCdzdGF0ZS0tJykpKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQobmFtZS5zbGljZSg3KSk7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByb2xlID0gKHRoaXMuY29uc3RydWN0b3IgYXMgU2JiRWxlbWVudENvbnN0cnVjdG9yKS5yb2xlO1xuICAgIGlmIChyb2xlKSB7XG4gICAgICB0aGlzLmludGVybmFscy5yb2xlID0gcm9sZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayB3aGV0aGVyIGh5ZHJhdGlvbiBpcyBuZWVkZWQgYnkgY2hlY2tpbmcgd2hldGhlciB0aGUgc2hhZG93IHJvb3RcbiAgICAvLyBpcyBhdmFpbGFibGUgZHVyaW5nIGNvbnN0cnVjdGlvbi91cGdyYWRlIHBoYXNlLlxuICAgIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkID0gISF0aGlzLnNoYWRvd1Jvb3Q7XG4gICAgaWYgKCF0aGlzLl9oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5fcmVzb2x2ZUh5ZHJhdGlvbihmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIER1cmluZyBoeWRyYXRpb24gcGhhc2UsIHdlIHdhbnQgdG8gc3VwcHJlc3Mgc2xvdGNoYW5nZSBldmVudHMgYXMgdGhleVxuICAgICAgLy8gY2FuIGNhdXNlIHJlbmRlciBkaWZmZXJlbmNlcywgd2hpY2ggd291bGQgYnJlYWsgaHlkcmF0aW9uLiBBZnRlclxuICAgICAgLy8gaHlkcmF0aW9uIGlzIGNvbXBsZXRlLCB3ZSBkaXNwYXRjaCBhIG1hbnVhbCBzbG90Y2hhbmdlIGV2ZW50LCBpZiB0aGVyZVxuICAgICAgLy8gYXJlIGVsZW1lbnRzIGFzc2lnbmVkIHRvIGEgc2xvdC5cbiAgICAgIGNvbnN0IHN1cHByZXNzU2xvdGNoYW5nZUV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5faHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGV2ZW50T3B0aW9uczogRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSB7IGNhcHR1cmU6IHRydWUgfTtcbiAgICAgIGNvbnN0IHNsb3RzID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCdzbG90Jyk7XG4gICAgICBpZiAoc2xvdHM/Lmxlbmd0aCkge1xuICAgICAgICBzbG90cy5mb3JFYWNoKChzbG90KSA9PlxuICAgICAgICAgIHNsb3QuYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHN1cHByZXNzU2xvdGNoYW5nZUV2ZW50LCBldmVudE9wdGlvbnMpLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT5cbiAgICAgICAgICBzbG90cy5mb3JFYWNoKChzbG90KSA9PiB7XG4gICAgICAgICAgICBzbG90LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBzdXBwcmVzc1Nsb3RjaGFuZ2VFdmVudCwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgICAgIGlmIChzbG90LmFzc2lnbmVkTm9kZXMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICAgICAgICBzbG90LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzbG90Y2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogUmVnaXN0ZXIgdGhlIGN1c3RvbSBlbGVtZW50IGluIHRoZSBnbG9iYWwgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LiAqL1xuICBwdWJsaWMgc3RhdGljIGRlZmluZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSBzdGF0aWMgcHJvcGVydHkgXCJlbGVtZW50TmFtZVwiIGlzIG5vdCBkZWZpbmVkIG9uICR7dGhpcy5uYW1lfS4gUGxlYXNlIGRlZmluZSBpdCB0byByZWdpc3RlciB0aGUgY3VzdG9tIGVsZW1lbnQuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudENsYXNzID0gY3VzdG9tRWxlbWVudHMuZ2V0KHRoaXMuZWxlbWVudE5hbWUpO1xuICAgIGlmICghZWxlbWVudENsYXNzKSB7XG4gICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGhpcy5lbGVtZW50TmFtZSwgdGhpcyBhcyB1bmtub3duIGFzIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvcik7XG5cbiAgICAgIGNvbnN0IGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgICAgbGV0IGN0b3I6IFNiYkVsZW1lbnRUeXBlID0gdGhpcztcbiAgICAgIHdoaWxlIChjdG9yWydfJHNiYkVsZW1lbnQkJ10pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3Rvci5lbGVtZW50RGVwZW5kZW5jaWVzKSkge1xuICAgICAgICAgIGVsZW1lbnREZXBlbmRlbmNpZXMucHVzaCguLi5jdG9yLmVsZW1lbnREZXBlbmRlbmNpZXMpO1xuICAgICAgICB9XG4gICAgICAgIGN0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3Rvcik7XG4gICAgICB9XG4gICAgICBuZXcgU2V0KGVsZW1lbnREZXBlbmRlbmNpZXMpLmZvckVhY2goKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kuZGVmaW5lKCkpO1xuICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBlbGVtZW50Q2xhc3MgIT09IHRoaXMpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFRoZSBjdXN0b20gZWxlbWVudCB3aXRoIG5hbWUgXCIke3RoaXMuZWxlbWVudE5hbWV9XCIgaXMgYWxyZWFkeSBkZWZpbmVkLiBTa2lwcGluZy5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlUmVuZGVyUm9vdCgpOiBIVE1MRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQge1xuICAgIGNvbnN0IHJvb3QgPSBzdXBlci5jcmVhdGVSZW5kZXJSb290KCk7XG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgKGUpID0+XG4gICAgICB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcihlLCBlLnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpLFxuICAgICk7XG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90dGVkY2hhbmdlJywgKGUpID0+IHRoaXMuX3Nsb3RjaGFuZ2VIYW5kbGVyKGUsIGUuc2xvdCksIHtcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5zaGFkb3dSb290XG4gICAgICA/LnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2xvdCcpXG4gICAgICAuZm9yRWFjaCgoc2xvdCkgPT4gdGhpcy5faGFuZGxlU2xvdENoYW5nZUZvclNsb3R0ZWRTdGF0ZShzbG90KSk7XG5cbiAgICByZXR1cm4gcm9vdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBgUmVhY3RpdmVDb250cm9sbGVyYCB0byBwYXJ0aWNpcGF0ZSBpbiB0aGUgZWxlbWVudCdzIHJlYWN0aXZlXG4gICAqIHVwZGF0ZSBjeWNsZS4gVGhlIGVsZW1lbnQgYXV0b21hdGljYWxseSBjYWxscyBpbnRvIGFueSByZWdpc3RlcmVkXG4gICAqIGNvbnRyb2xsZXJzIGR1cmluZyBpdHMgbGlmZWN5Y2xlIGNhbGxiYWNrcy5cbiAgICpcbiAgICogSWYgdGhlIGVsZW1lbnQgaXMgY29ubmVjdGVkIHdoZW4gYGFkZENvbnRyb2xsZXIoKWAgaXMgY2FsbGVkLCB0aGVcbiAgICogY29udHJvbGxlcidzIGBob3N0Q29ubmVjdGVkKClgIGNhbGxiYWNrIHdpbGwgYmUgaW1tZWRpYXRlbHkgY2FsbGVkLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFkZENvbnRyb2xsZXIoY29udHJvbGxlcjogU2JiUmVhY3RpdmVDb250cm9sbGVyKTogdm9pZCB7XG4gICAgc3VwZXIuYWRkQ29udHJvbGxlcihjb250cm9sbGVyKTtcbiAgICAodGhpcy5fY29udHJvbGxlcnMgPz89IG5ldyBTZXQoKSkuYWRkKGNvbnRyb2xsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBgUmVhY3RpdmVDb250cm9sbGVyYCBmcm9tIHRoZSBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlbW92ZUNvbnRyb2xsZXIoY29udHJvbGxlcjogU2JiUmVhY3RpdmVDb250cm9sbGVyKTogdm9pZCB7XG4gICAgc3VwZXIucmVtb3ZlQ29udHJvbGxlcihjb250cm9sbGVyKTtcbiAgICB0aGlzLl9jb250cm9sbGVycz8uZGVsZXRlKGNvbnRyb2xsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIGFuIHVwZGF0ZSB3aGljaCBpcyBwcm9jZXNzZWQgYXN5bmNocm9ub3VzbHkuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZFxuICAgKiB3aGVuIGFuIGVsZW1lbnQgc2hvdWxkIHVwZGF0ZSBiYXNlZCBvbiBzb21lIHN0YXRlIG5vdCB0cmlnZ2VyZWQgYnkgc2V0dGluZ1xuICAgKiBhIHJlYWN0aXZlIHByb3BlcnR5LiBJbiB0aGlzIGNhc2UsIHBhc3Mgbm8gYXJndW1lbnRzLiBJdCBzaG91bGQgYWxzbyBiZVxuICAgKiBjYWxsZWQgd2hlbiBtYW51YWxseSBpbXBsZW1lbnRpbmcgYSBwcm9wZXJ0eSBzZXR0ZXIuIEluIHRoaXMgY2FzZSwgcGFzcyB0aGVcbiAgICogcHJvcGVydHkgYG5hbWVgIGFuZCBgb2xkVmFsdWVgIHRvIGVuc3VyZSB0aGF0IGFueSBjb25maWd1cmVkIHByb3BlcnR5XG4gICAqIG9wdGlvbnMgYXJlIGhvbm9yZWQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIG5hbWUgb2YgcmVxdWVzdGluZyBwcm9wZXJ0eVxuICAgKiBAcGFyYW0gb2xkVmFsdWUgb2xkIHZhbHVlIG9mIHJlcXVlc3RpbmcgcHJvcGVydHlcbiAgICogQHBhcmFtIG9wdGlvbnMgcHJvcGVydHkgb3B0aW9ucyB0byB1c2UgaW5zdGVhZCBvZiB0aGUgcHJldmlvdXNseVxuICAgKiAgICAgY29uZmlndXJlZCBvcHRpb25zXG4gICAqIEBwYXJhbSB1c2VOZXdWYWx1ZSBpZiB0cnVlLCB0aGUgbmV3VmFsdWUgYXJndW1lbnQgaXMgdXNlZCBpbnN0ZWFkIG9mXG4gICAqICAgICByZWFkaW5nIHRoZSBwcm9wZXJ0eSB2YWx1ZS4gVGhpcyBpcyBpbXBvcnRhbnQgdG8gdXNlIGlmIHRoZSByZWFjdGl2ZVxuICAgKiAgICAgcHJvcGVydHkgaXMgYSBzdGFuZGFyZCBwcml2YXRlIGFjY2Vzc29yLCBhcyBvcHBvc2VkIHRvIGEgcGxhaW5cbiAgICogICAgIHByb3BlcnR5LCBzaW5jZSBwcml2YXRlIG1lbWJlcnMgY2FuJ3QgYmUgZHluYW1pY2FsbHkgcmVhZCBieSBuYW1lLlxuICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuIFRoaXMgaXMgb25seSB1c2VkIGlmXG4gICAqICAgICBgdXNlTmV3VmFsdWVgIGlzIHRydWUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgIHVzZU5ld1ZhbHVlPzogYm9vbGVhbixcbiAgICBuZXdWYWx1ZT86IHVua25vd24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMsIHVzZU5ld1ZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNvbnN0IHZhbHVlczogU2JiUHJvcGVydHlWYWx1ZXMgPSB7XG4gICAgICAgIG9sZFZhbHVlLFxuICAgICAgICB2YWx1ZTogdXNlTmV3VmFsdWUgPyBuZXdWYWx1ZSA6IHRoaXNbbmFtZSBhcyBrZXlvZiB0aGlzXSxcbiAgICAgIH07XG4gICAgICB0aGlzLl9jb250cm9sbGVycz8uZm9yRWFjaCgoY29udHJvbGxlcikgPT5cbiAgICAgICAgY29udHJvbGxlci5ob3N0UHJvcGVydHlVcGRhdGU/LihuYW1lLCB2YWx1ZXMsIG9wdGlvbnMpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIC8vIFdoZW4gaHlkcmF0aW9uIGlzIG5lZWRlZCwgd2Ugd2FpdCB0aGUgaHlkcmF0aW9uIHByb2Nlc3MgdG8gZmluaXNoLCB3aGljaCBpcyBwYXRjaGVkXG4gICAgLy8gaW50byB0aGUgdXBkYXRlIG1ldGhvZCBvZiB0aGUgTGl0RWxlbWVudCBiYXNlIGNsYXNzLlxuICAgIHN1cGVyLnVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAodGhpcy5faHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9yZXNvbHZlSHlkcmF0aW9uKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVTdGF0ZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoZm9yY2UgfHwgKGZvcmNlICE9PSBmYWxzZSAmJiAhdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcyh2YWx1ZSkpKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIoZXZlbnQ6IEV2ZW50LCBzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZXNvbHZlZFNsb3QgPSB0aGlzLnNoYWRvd1Jvb3QhLmNvbnRhaW5zKHNsb3QpXG4gICAgICA/IHNsb3RcbiAgICAgIDogZXZlbnRcbiAgICAgICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgIChlbCk6IGVsIGlzIEhUTUxTbG90RWxlbWVudCA9PlxuICAgICAgICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCAmJiB0aGlzLnNoYWRvd1Jvb3QhLmNvbnRhaW5zKGVsKSxcbiAgICAgICAgICApO1xuICAgIGlmIChyZXNvbHZlZFNsb3QpIHtcbiAgICAgIHRoaXMuX2hhbmRsZVNsb3RDaGFuZ2VGb3JTbG90dGVkU3RhdGUocmVzb2x2ZWRTbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Q2hhbmdlRm9yU2xvdHRlZFN0YXRlKHNsb3Q6IEhUTUxTbG90RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZVNsb3R0ZWRTdGF0ZShzbG90KTtcbiAgICBpZiAoIXNsb3QubmFtZSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZVRleHROb2Rlc0luU2xvdChzbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTbG90dGVkU3RhdGUoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGVOYW1lID0gc2xvdC5uYW1lID8gYHNsb3R0ZWQtJHtzbG90Lm5hbWV9YCA6ICdzbG90dGVkJztcbiAgICBjb25zdCBoYXNTbG90dGVkQ29udGVudCA9IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KHNsb3QpO1xuICAgIGlmIChoYXNTbG90dGVkQ29udGVudCAmJiAhdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcyhzdGF0ZU5hbWUpKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHN0YXRlTmFtZSk7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudChzbG90KSk7XG4gICAgfSBlbHNlIGlmICghaGFzU2xvdHRlZENvbnRlbnQgJiYgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcyhzdGF0ZU5hbWUpKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKHN0YXRlTmFtZSk7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudChzbG90KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZVRleHROb2Rlc0luU2xvdChzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLl90ZXh0T2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAvLyBPbmx5IGNyZWF0ZSB0aGUgTXV0YXRpb25PYnNlcnZlciB3aGVuIGl0IGlzIGFjdHVhbGx5IG5lZWRlZCB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS5cbiAgICB0aGlzLl90ZXh0T2JzZXJ2ZXIgPz89IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHNsb3QgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTFNsb3RFbGVtZW50Pignc2xvdDpub3QoW25hbWVdKScpO1xuICAgICAgaWYgKHNsb3QpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xvdHRlZFN0YXRlKHNsb3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdGV4dE9ic2VydmVyIS5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gVGV4dCBub2RlcyBjYW4gYmUgZW1wdHkgYW5kIGZpbGxlZCBsYXRlciAob3IgdmljZSB2ZXJzYSkuXG4gICAgLy8gRmlsbGluZyBhbiBleGlzdGluZyBub2RlIGxhdGVyIHdvdWxkIG5vdCB0cmlnZ2VyIGFub3RoZXIgc2xvdGNoYW5nZSBldmVudC5cbiAgICAvLyBUaGVyZWZvcmUsIHdlIG5lZWQgdG8gb2JzZXJ2ZSB0ZXh0IG5vZGVzIGFuZCBjaGVjayBpZiB0aGV5IGJlY29tZSBmaWxsZWQgb3IgZW1wdHkuXG4gICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCBmb3IgdGhlIHVubmFtZWQgc2xvdCBhcyBmb3IgZXZlcnkgb3RoZXIgdGhlcmUgd291bGRcbiAgICAvLyBiZSBhIHRhZyB3aGljaCB0cmlnZ2VycyB0aGUgc2xvdCBjaGFuZ2UgZXZlbnQuXG4gICAgLy8gVGhlIG1haW4gcmVhc29uIGlzIHRoYXQgQW5ndWxhciBjcmVhdGVzIGVtcHR5IHRleHQgbm9kZXMgYW5kIGZpbGxzIHRoZW0gbGF0ZXIuXG4gICAgc2xvdFxuICAgICAgLmFzc2lnbmVkTm9kZXMoKVxuICAgICAgLmZpbHRlcigobikgPT4gbi5ub2RlVHlwZSA9PT0gbi5URVhUX05PREUpXG4gICAgICAuZm9yRWFjaCgobm9kZSkgPT4gdGhpcy5fdGV4dE9ic2VydmVyIS5vYnNlcnZlKG5vZGUsIHsgY2hhcmFjdGVyRGF0YTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF9oYXNTbG90dGVkQ29udGVudChzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2xvdC5uYW1lXG4gICAgICA/IHNsb3RcbiAgICAgICAgICAuYXNzaWduZWRFbGVtZW50cygpXG4gICAgICAgICAgLnNvbWUoKG5vZGUpID0+ICEobm9kZSBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCkgfHwgdGhpcy5faGFzU2xvdHRlZENvbnRlbnQobm9kZSkpXG4gICAgICA6IHNsb3QuYXNzaWduZWROb2RlcygpLnNvbWUoKG5vZGUpID0+IHtcbiAgICAgICAgICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudFxuICAgICAgICAgICAgPyB0aGlzLl9oYXNTbG90dGVkQ29udGVudChub2RlKVxuICAgICAgICAgICAgOiBub2RlLm5vZGVUeXBlICE9PSBub2RlLlRFWFRfTk9ERSB8fCAhIW5vZGUudGV4dENvbnRlbnQ/LnRyaW0oKTtcbiAgICAgICAgfSk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRFdmVudE1hcCB7XG4gICAgc2xvdHRlZGNoYW5nZTogU2JiU2xvdHRlZENoYW5nZUV2ZW50O1xuICB9XG4gIGludGVyZmFjZSBTaGFkb3dSb290RXZlbnRNYXAge1xuICAgIHNsb3R0ZWRjaGFuZ2U6IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQWNBLElBQU0seUJBQ0osWUFBWSxDQUFDLElBQUksU0FBUyxrREFBNEIsR0FDbEQsTUFBTSx1QkFDSSxJQUFXO0NBS25CLFlBQTJCLE9BQWlCO0FBQzFDLFNBQU87QUFEa0IsT0FBQSxRQUFBO0FBRm5CLE9BQUEsV0FBVztBQUlqQixPQUFLLE1BQU0sY0FBYyxLQUFLO0FBQzlCLE1BQUksQ0FBQyxTQUdILFNBQVEsU0FBUyxDQUFDLFdBQVcsS0FBSyxjQUFjLENBQUM7O0NBSXJDLElBQUksT0FBYTtBQUMvQixNQUFJLEtBQUssU0FDUCxN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
|
|
388
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvY29yZS9iYXNlLWVsZW1lbnRzL2VsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgdHlwZSBDU1NSZXN1bHRPck5hdGl2ZSxcbiAgaXNTZXJ2ZXIsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBSZWFjdGl2ZUNvbnRyb2xsZXIsXG59IGZyb20gJ2xpdCc7XG5cbi8vIE1vc3Qgb2Ygb3VyIHRhcmdldCBicm93c2VycyBzdXBwb3J0IHRoZSA6c3RhdGUoKSBwc2V1ZG8gY2xhc3MsIGJ1dCBub3QgYWxsIG9mIHRoZW0uXG4vLyBXZSBwYXRjaCB0aGUgc3RhdGVzIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IGludGVybmFscyB0byB1c2UgYXR0cmlidXRlcyBpbnN0ZWFkLFxuLy8gaWYgOnN0YXRlKCkgaXMgbm90IHN1cHBvcnRlZC5cbi8vIE5vdGUgdGhhdCBmb3IgU1NSLCB0aGUgc3RhdGVzIHByb3BlcnR5IGlzIGEgc2ltcGxlIFNldCwgaW1wbGVtZW50ZWQgaW4gTGl0IFNTUi5cbnR5cGUgQ3VzdG9tU3RhdGVTZXRJbnRlcmZhY2UgPSBDdXN0b21TdGF0ZVNldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmNvbnN0IEN1c3RvbVN0YXRlU2V0UG9seWZpbGw6IChuZXcgKGhvc3Q6IExpdEVsZW1lbnQpID0+IEN1c3RvbVN0YXRlU2V0SW50ZXJmYWNlKSB8IG51bGwgPVxuICBpc1NlcnZlciB8fCAhQ1NTLnN1cHBvcnRzKCdzZWxlY3Rvcig6c3RhdGUobG9hZGluZykpJylcbiAgICA/IGNsYXNzIEN1c3RvbVN0YXRlU2V0XG4gICAgICAgIGV4dGVuZHMgU2V0PHN0cmluZz5cbiAgICAgICAgaW1wbGVtZW50cyBDdXN0b21TdGF0ZVNldEludGVyZmFjZSwgUmVhY3RpdmVDb250cm9sbGVyXG4gICAgICB7XG4gICAgICAgIHByaXZhdGUgX2FwcGxpZWQgPSBpc1NlcnZlcjtcblxuICAgICAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaG9zdDogTGl0RWxlbWVudCkge1xuICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgdGhpcy5faG9zdC5hZGRDb250cm9sbGVyKHRoaXMpO1xuICAgICAgICAgIGlmICghaXNTZXJ2ZXIpIHtcbiAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gYXBwbHkgdGhlIGF0dHJpYnV0ZXMgYXMgZWFybHkgYXMgcG9zc2libGUgd2hpY2ggY2FuXG4gICAgICAgICAgICAvLyBlaXRoZXIgYmUgdmlhIHRoaXMgUHJvbWlzZS5yZXNvbHZlKCkgb3IgdGhlIGNvbm5lY3RlZENhbGxiYWNrKCkuXG4gICAgICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX2FwcGx5U3RhdGVzKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBhZGQoc3RhdGU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICAgIGlmICh0aGlzLl9hcHBsaWVkKSB7XG4gICAgICAgICAgICB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzdXBlci5hZGQoc3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIG92ZXJyaWRlIGRlbGV0ZShzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgICAgdGhpcy5fdG9nZ2xlU3RhdGUoc3RhdGUsIGZhbHNlKTtcbiAgICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHN0YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHB1YmxpYyBvdmVycmlkZSBjbGVhcigpOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLmZvckVhY2goKHN0YXRlKSA9PiB0aGlzLmRlbGV0ZShzdGF0ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcHVibGljIGhvc3RDb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5fYXBwbHlTdGF0ZXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByaXZhdGUgX3RvZ2dsZVN0YXRlKHN0YXRlOiBzdHJpbmcsIGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgICB0aGlzLl9ob3N0LnRvZ2dsZUF0dHJpYnV0ZShgc3RhdGUtLSR7c3RhdGV9YCwgZW5hYmxlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBwcml2YXRlIF9hcHBseVN0YXRlcygpOiB2b2lkIHtcbiAgICAgICAgICBpZiAodGhpcy5fYXBwbGllZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9hcHBsaWVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmZvckVhY2goKHN0YXRlKSA9PiB0aGlzLl90b2dnbGVTdGF0ZShzdGF0ZSwgdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgOiBudWxsO1xuXG5pZiAoIWlzU2VydmVyKSB7XG4gIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgdGhlIGFyaWEgZWxlbWVudHMgcHJvcGVydGllcyBvbiBFbGVtZW50SW50ZXJuYWxzIGFuZCBFbGVtZW50LlxuICBsZXQgbmV4dElkID0gMDtcbiAgY29uc3QgcmVzb2x2ZUhvc3QgPSAob3JpZ2luOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgPT5cbiAgICBvcmlnaW4uc2hhZG93Um9vdD8uaG9zdCA/P1xuICAgIChvcmlnaW4gaW5zdGFuY2VvZiBFbGVtZW50XG4gICAgICA/IG9yaWdpblxuICAgICAgOiAoKCkgPT4ge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIHJlc29sdmUgcmVsYXRlZCBlbGVtZW50ISBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uJyk7XG4gICAgICAgIH0pKCkpO1xuICBjb25zdCBvYnNlcnZlck9wdGlvbnM6IE11dGF0aW9uT2JzZXJ2ZXJJbml0ID0geyBhdHRyaWJ1dGVzOiB0cnVlLCBhdHRyaWJ1dGVGaWx0ZXI6IFsnaWQnXSB9O1xuICBjb25zdCBhc3NpZ25FbGVtZW50ID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+LFxuICApOiB2b2lkID0+IHtcbiAgICAvLyBJbiBjYXNlIGJvdGggRWxlbWVudCBhbmQgRWxlbWVudEludGVybmFscyBwcm9wZXJ0aWVzIGFyZSBzZXQsXG4gICAgLy8gdGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZyb20gRWxlbWVudCBoYXMgcHJpb3JpdHkuXG4gICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGVsZW1lbnRzW0VsZW1lbnQubmFtZV0gPz8gZWxlbWVudHNbRWxlbWVudEludGVybmFscy5uYW1lXTtcbiAgICBob3N0LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIChhY3RpdmVFbGVtZW50LmlkIHx8PSBgYXJpYS1yZWYtJHtuZXh0SWQrK31gKSk7XG4gIH07XG4gIGNvbnN0IGFzc2lnbkVsZW1lbnRzID0gKFxuICAgIGhvc3Q6IEVsZW1lbnQsXG4gICAgYXR0cmlidXRlOiBzdHJpbmcsXG4gICAgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnRbXT4sXG4gICk6IHZvaWQgPT4ge1xuICAgIC8vIEluIGNhc2UgYm90aCBFbGVtZW50IGFuZCBFbGVtZW50SW50ZXJuYWxzIHByb3BlcnRpZXMgYXJlIHNldCxcbiAgICAvLyB3ZSBjb21iaW5lIHRoZSBlbGVtZW50IHJlZmVyZW5jZXMuXG4gICAgaG9zdC5zZXRBdHRyaWJ1dGUoXG4gICAgICBhdHRyaWJ1dGUsXG4gICAgICBPYmplY3QudmFsdWVzKGVsZW1lbnRzKVxuICAgICAgICAucmVkdWNlKChjdXJyZW50LCBuZXh0KSA9PiBjdXJyZW50LmNvbmNhdChuZXh0KSlcbiAgICAgICAgLmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKVxuICAgICAgICAubWFwKChlKSA9PiBlLmlkIHx8IChlLmlkID0gYGFyaWEtcmVmLSR7bmV4dElkKyt9YCkpXG4gICAgICAgIC5qb2luKCcgJyksXG4gICAgKTtcbiAgfTtcblxuICBmb3IgKGNvbnN0IHR5cGUgb2YgW0VsZW1lbnRJbnRlcm5hbHMsIEVsZW1lbnRdKSB7XG4gICAgY29uc3QgcHJvdG90eXBlID0gdHlwZS5wcm90b3R5cGU7XG4gICAgaWYgKCEoJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgaW4gcHJvdG90eXBlKSkge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCc7XG4gICAgICBjb25zdCBzdG9yYWdlID0gbmV3IFdlYWtNYXA8XG4gICAgICAgIEVsZW1lbnQsXG4gICAgICAgIHsgZWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEVsZW1lbnQ+OyBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB9XG4gICAgICA+KCk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCAnYXJpYUFjdGl2ZURlc2NlbmRhbnRFbGVtZW50Jywge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldCh0aGlzOiBFbGVtZW50SW50ZXJuYWxzIHwgRWxlbWVudCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgaWQgPSBob3N0LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpPy5zcGxpdCgvXFxzKy8pWzBdID8/IG51bGw7XG4gICAgICAgICAgcmV0dXJuIGlkXG4gICAgICAgICAgICA/ICgoaG9zdC5nZXRSb290Tm9kZSgpIGFzIERvY3VtZW50IHwgU2hhZG93Um9vdCkuZ2V0RWxlbWVudEJ5SWQ/LihpZCkgPz8gbnVsbClcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0KHRoaXM6IEVsZW1lbnRJbnRlcm5hbHMgfCBFbGVtZW50LCB2YWx1ZTogRWxlbWVudCB8IG51bGwpIHtcbiAgICAgICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJ2FyaWFBY3RpdmVEZXNjZW5kYW50RWxlbWVudCcgcHJvcGVydHkgb24gJyR7dHlwZS5uYW1lfSc6IEZhaWxlZCB0byBjb252ZXJ0IHZhbHVlIHRvICdFbGVtZW50Jy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBob3N0ID0gcmVzb2x2ZUhvc3QodGhpcyk7XG4gICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICBlbnRyeT8ub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICBkZWxldGUgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXTtcbiAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhlbnRyeSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgaG9zdC5yZW1vdmVBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpWzBdLCBvYnNlcnZlck9wdGlvbnMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghZW50cnkpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50PiA9IHsgW3R5cGUubmFtZV06IHZhbHVlIH07XG4gICAgICAgICAgICBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpO1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiBhc3NpZ25FbGVtZW50KGhvc3QsIGF0dHJpYnV0ZSwgZWxlbWVudHMpKTtcbiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUodmFsdWUsIG9ic2VydmVyT3B0aW9ucyk7XG4gICAgICAgICAgICBzdG9yYWdlLnNldChob3N0LCB7IGVsZW1lbnRzLCBvYnNlcnZlciB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZW50cnkuZWxlbWVudHNbdHlwZS5uYW1lXSA9IHZhbHVlO1xuICAgICAgICAgICAgYXNzaWduRWxlbWVudChob3N0LCBhdHRyaWJ1dGUsIGVudHJ5LmVsZW1lbnRzKTtcbiAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpLmZvckVhY2goKGUpID0+XG4gICAgICAgICAgICAgIGVudHJ5Lm9ic2VydmVyLm9ic2VydmUoZSwgb2JzZXJ2ZXJPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBbXG4gICAgICAnYXJpYUNvbnRyb2xzRWxlbWVudHMnLFxuICAgICAgJ2FyaWFEZXNjcmliZWRCeUVsZW1lbnRzJyxcbiAgICAgICdhcmlhRGV0YWlsc0VsZW1lbnRzJyxcbiAgICAgICdhcmlhRXJyb3JNZXNzYWdlRWxlbWVudHMnLFxuICAgICAgJ2FyaWFMYWJlbGxlZEJ5RWxlbWVudHMnLFxuICAgICAgJ2FyaWFPd25zRWxlbWVudHMnLFxuICAgIF0pIHtcbiAgICAgIGlmICghKHByb3BlcnR5IGluIHByb3RvdHlwZSkpIHtcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBXZWFrTWFwPFxuICAgICAgICAgIEVsZW1lbnQsXG4gICAgICAgICAgeyBlbGVtZW50czogUmVjb3JkPHN0cmluZywgRWxlbWVudFtdPjsgb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXIgfVxuICAgICAgICA+KCk7XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGBhcmlhLSR7cHJvcGVydHkuc2xpY2UoNCwgLTgpLnRvTG93ZXJDYXNlKCl9YDtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwgcHJvcGVydHksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBnZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQpOiByZWFkb25seSBFbGVtZW50W10gfCBudWxsIHtcbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gaG9zdFxuICAgICAgICAgICAgICAuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSlcbiAgICAgICAgICAgICAgPy5zcGxpdCgvXFxzKy8pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHYsIGksIGEpID0+IGEuaW5kZXhPZih2KSA9PT0gaSlcbiAgICAgICAgICAgICAgLm1hcCgoaWQpID0+IChob3N0LmdldFJvb3ROb2RlKCkgYXMgRG9jdW1lbnQgfCBTaGFkb3dSb290KS5nZXRFbGVtZW50QnlJZD8uKGlkKSlcbiAgICAgICAgICAgICAgLmZpbHRlcigoZSkgPT4gZSBpbnN0YW5jZW9mIEVsZW1lbnQpO1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRzPy5sZW5ndGggPyBPYmplY3QuZnJlZXplKGVsZW1lbnRzKSA6IG51bGw7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQodGhpczogRWxlbWVudEludGVybmFscyB8IEVsZW1lbnQsIHZhbHVlOiBFbGVtZW50W10pIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgKCFBcnJheS5pc0FycmF5KHZhbHVlKSB8fCB2YWx1ZS5zb21lKChlbGVtZW50KSA9PiAhKGVsZW1lbnQgaW5zdGFuY2VvZiBFbGVtZW50KSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcbiAgICAgICAgICAgICAgICBgRmFpbGVkIHRvIHNldCB0aGUgJyR7cHJvcGVydHl9JyBwcm9wZXJ0eSBvbiAnJHt0eXBlLm5hbWV9JzogRmFpbGVkIHRvIGNvbnZlcnQgdmFsdWUgdG8gJ0VsZW1lbnQnLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGhvc3QgPSByZXNvbHZlSG9zdCh0aGlzKTtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWU/LmZpbHRlcigodiwgaSwgYSkgPT4gYS5pbmRleE9mKHYpID09PSBpKSA/PyBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBzdG9yYWdlLmdldChob3N0KTtcbiAgICAgICAgICAgIGVudHJ5Py5vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIGlmIChlbnRyeSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdO1xuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZW50cnkuZWxlbWVudHMpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgc3RvcmFnZS5kZWxldGUoaG9zdCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoZW50cnkuZWxlbWVudHMpXG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gZW50cnkub2JzZXJ2ZXIub2JzZXJ2ZShlLCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWVudHJ5KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBFbGVtZW50W10+ID0geyBbdHlwZS5uYW1lXTogdmFsdWUgfTtcbiAgICAgICAgICAgICAgYXNzaWduRWxlbWVudHMoaG9zdCwgYXR0cmlidXRlLCBlbGVtZW50cyk7XG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT5cbiAgICAgICAgICAgICAgICBhc3NpZ25FbGVtZW50cyhob3N0LCBhdHRyaWJ1dGUsIGVsZW1lbnRzKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWxlbWVudCkgPT4gb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCBvYnNlcnZlck9wdGlvbnMpKTtcbiAgICAgICAgICAgICAgc3RvcmFnZS5zZXQoaG9zdCwgeyBlbGVtZW50cywgb2JzZXJ2ZXIgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbnRyeS5lbGVtZW50c1t0eXBlLm5hbWVdID0gdmFsdWU7XG4gICAgICAgICAgICAgIGFzc2lnbkVsZW1lbnRzKGhvc3QsIGF0dHJpYnV0ZSwgZW50cnkuZWxlbWVudHMpO1xuICAgICAgICAgICAgICBPYmplY3QudmFsdWVzKGVudHJ5LmVsZW1lbnRzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnQsIG5leHQpID0+IGN1cnJlbnQuY29uY2F0KG5leHQpKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChlKSA9PiBlbnRyeS5vYnNlcnZlci5vYnNlcnZlKGUsIG9ic2VydmVyT3B0aW9ucykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBhdHRhY2hlZEVsZW1lbnRJbnRlcm5hbHMgPSBuZXcgV2Vha01hcDxFbGVtZW50LCBFbGVtZW50SW50ZXJuYWxzPigpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlN0YXRlQ29udHJvbGxlciB7XG4gIGFkZCh2YWx1ZTogc3RyaW5nKTogdGhpcztcbiAgZGVsZXRlKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuO1xuICBoYXModmFsdWU6IHN0cmluZyk6IGJvb2xlYW47XG4gIHRvZ2dsZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBzdGF0ZSBjb250cm9sbGVyIGZvciB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAqIE5PVCBJTlRFTkRFRCBUTyBCRSBVU0VEIEJZIENPTlNVTUVSUyFcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCk6IFNiYlN0YXRlQ29udHJvbGxlcjtcbmV4cG9ydCBmdW5jdGlvbiDJtXN0YXRlQ29udHJvbGxlcihlbGVtZW50OiBFbGVtZW50IHwgdW5kZWZpbmVkIHwgbnVsbCk6IFNiYlN0YXRlQ29udHJvbGxlciB8IG51bGw7XG5leHBvcnQgZnVuY3Rpb24gybVzdGF0ZUNvbnRyb2xsZXIoZWxlbWVudDogRWxlbWVudCB8IHVuZGVmaW5lZCB8IG51bGwpOiBTYmJTdGF0ZUNvbnRyb2xsZXIgfCBudWxsIHtcbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3Qgc3RhdGVzID0gYXR0YWNoZWRFbGVtZW50SW50ZXJuYWxzLmdldChlbGVtZW50KT8uc3RhdGVzO1xuICBjb25zdCB0b2dnbGU6IFNiYlN0YXRlQ29udHJvbGxlclsndG9nZ2xlJ10gPSBmdW5jdGlvbiAodGhpczogU2JiU3RhdGVDb250cm9sbGVyLCB2YWx1ZSwgZm9yY2UpIHtcbiAgICBpZiAoZm9yY2UgfHwgKGZvcmNlICE9PSBmYWxzZSAmJiAhdGhpcy5oYXModmFsdWUpKSkge1xuICAgICAgdGhpcy5hZGQodmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfVxuICB9O1xuICBpZiAoc3RhdGVzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZCh2YWx1ZSkge1xuICAgICAgICBzdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9LFxuICAgICAgZGVsZXRlOiAodmFsdWUpID0+IHN0YXRlcy5kZWxldGUodmFsdWUpLFxuICAgICAgaGFzOiAodmFsdWUpID0+IHN0YXRlcy5oYXModmFsdWUpLFxuICAgICAgdG9nZ2xlLFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgbm8gRWxlbWVudEludGVybmFscyBpcyBhdHRhY2hlZCwgd2UgZmFsbCBiYWNrIHRvIHVzaW5nIGF0dHJpYnV0ZXMuIEUuZy4gZm9yIHRyaWdnZXJzLlxuICAgIHJldHVybiB7XG4gICAgICBhZGQodmFsdWUpIHtcbiAgICAgICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH0sXG4gICAgICBkZWxldGU6ICh2YWx1ZSkgPT4gZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYHN0YXRlLS0ke3ZhbHVlfWAsIGZhbHNlKSxcbiAgICAgIGhhczogKHZhbHVlKSA9PiBlbGVtZW50Lmhhc0F0dHJpYnV0ZShgc3RhdGUtLSR7dmFsdWV9YCksXG4gICAgICB0b2dnbGUsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2JiU2xvdHRlZENoYW5nZUV2ZW50IGV4dGVuZHMgRXZlbnQge1xuICBwdWJsaWMgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHNsb3Q6IEhUTUxTbG90RWxlbWVudCkge1xuICAgIHN1cGVyKCdzbG90dGVkY2hhbmdlJywgeyBjb21wb3NlZDogdHJ1ZSB9KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlByb3BlcnR5VmFsdWVzIHtcbiAgb2xkVmFsdWU/OiB1bmtub3duO1xuICB2YWx1ZT86IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2JiUmVhY3RpdmVDb250cm9sbGVyIGV4dGVuZHMgUmVhY3RpdmVDb250cm9sbGVyIHtcbiAgaG9zdFByb3BlcnR5VXBkYXRlPyhcbiAgICBuYW1lOiBQcm9wZXJ0eUtleSxcbiAgICB2YWx1ZXM/OiBTYmJQcm9wZXJ0eVZhbHVlcyxcbiAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgKTogdm9pZDtcbn1cblxuLyoqXG4gKiBBcHBlbmRzIHRoZSBnaXZlbiBlbGVtZW50cyB0byB0aGUgZ2l2ZW4gYXJpYSB2YWx1ZSBhbmQgcmV0dXJucyB0aGVcbiAqIGNvbWJpbmVkIHZhbHVlIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIGJvdGggdmFsdWVzIHdlcmUgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBlbmRBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ubmV3RWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGVsZW1lbnRzID0gbmV3RWxlbWVudHMuZmlsdGVyKCh2KTogdiBpcyBFbGVtZW50ID0+ICEhdik7XG4gIHJldHVybiBhcmlhVmFsdWU/Lmxlbmd0aCA/IGFyaWFWYWx1ZS5jb25jYXQoZWxlbWVudHMpIDogbmV3RWxlbWVudHMubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuLyoqXG4gKiBSZW1vdmVzIHRoZSBnaXZlbiBlbGVtZW50cyBmcm9tIHRoZSBnaXZlbiBhcmlhIHZhbHVlIGFuZCByZXR1cm5zXG4gKiB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGFzIGEgbmV3IGFycmF5IG9yIG51bGwsIGlmIHRoZSByZXN1bHQgaXMgZW1wdHkuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVBcmlhRWxlbWVudHMgPSAoXG4gIGFyaWFWYWx1ZTogcmVhZG9ubHkgRWxlbWVudFtdIHwgbnVsbCxcbiAgLi4ucmVtb3ZhYmxlRWxlbWVudHM6IChFbGVtZW50IHwgbnVsbClbXVxuKTogRWxlbWVudFtdIHwgbnVsbCA9PiB7XG4gIHJlbW92YWJsZUVsZW1lbnRzID0gcmVtb3ZhYmxlRWxlbWVudHMuZmlsdGVyKCh2KSA9PiAhIXYpO1xuICBjb25zdCBlbGVtZW50cyA9IGFyaWFWYWx1ZT8uZmlsdGVyKCh2KSA9PiAhcmVtb3ZhYmxlRWxlbWVudHMuaW5jbHVkZXModikpID8/IG51bGw7XG4gIHJldHVybiBlbGVtZW50cz8ubGVuZ3RoID8gZWxlbWVudHMgOiBudWxsO1xufTtcblxuZXhwb3J0IHR5cGUgU2JiRWxlbWVudFR5cGUgPSB0eXBlb2YgU2JiRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJFbGVtZW50Q29uc3RydWN0b3Ige1xuICBlbGVtZW50RGVwZW5kZW5jaWVzPzogU2JiRWxlbWVudFR5cGVbXTtcbiAgcm9sZT86IEVsZW1lbnRJbnRlcm5hbHNbJ3JvbGUnXTtcbn1cblxuLyoqXG4gKiBBIGJhc2UgY2xhc3MgZm9yIGFsbCBTQkIgZWxlbWVudHMuXG4gKiBJbmNsdWRlcyBhdHRhY2hpbmcgRWxlbWVudEludGVybmFscywgaGFuZGxpbmcgaHlkcmF0aW9uLCBhbmQgbWFuYWdpbmcgc3RhdGUuXG4gKi9cbi8vIFRPRE8oYnJlYWtpbmctY2hhbmdlKTogSW5saW5lIGFuZCByZW1vdmUgU2JiRWxlbWVudEludGVybmFsc01peGluIGFuZCBTYmJIeWRyYXRpb25NaXhpbiBhcyBhIGJyZWFraW5nIGNoYW5nZVxuZXhwb3J0IGNsYXNzIFNiYkVsZW1lbnQgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBbJ18kc2JiRWxlbWVudCQnXSA9IHRydWU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZztcbiAgcHVibGljIHN0YXRpYyBlbGVtZW50RGVwZW5kZW5jaWVzPzogU2JiRWxlbWVudFR5cGVbXTtcbiAgcHVibGljIHN0YXRpYyByb2xlPzogRWxlbWVudEludGVybmFsc1sncm9sZSddO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGludGVybmFsczogRWxlbWVudEludGVybmFscyA9IHRoaXMuYXR0YWNoSW50ZXJuYWxzKCk7XG5cbiAgcHJpdmF0ZSBfY29udHJvbGxlcnM/OiBTZXQ8U2JiUmVhY3RpdmVDb250cm9sbGVyPjtcbiAgcHJpdmF0ZSBfaHlkcmF0aW9uUmVxdWlyZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2h5ZHJhdGlvbkNvbXBsZXRlID0gbmV3IFByb21pc2U8Ym9vbGVhbj4oXG4gICAgKHJlc29sdmUpID0+ICh0aGlzLl9yZXNvbHZlSHlkcmF0aW9uID0gcmVzb2x2ZSksXG4gICk7XG4gIHByaXZhdGUgX3Jlc29sdmVIeWRyYXRpb24hOiAoaHlkcmF0aW9uUmVxdWlyZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHByaXZhdGUgX3RleHRPYnNlcnZlcj86IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgZWxlbWVudCBoYXMgY29tcGxldGVkIGh5ZHJhdGlvbi5cbiAgICogVGhlIFByb21pc2UgdmFsdWUgaXMgYSBib29sZWFuIHRoYXQgaXMgYHRydWVgIGlmIHRoZSBlbGVtZW50IHJlcXVpcmVkIGh5ZHJhdGlvblxuICAgKiBhbmQgYGZhbHNlYCBpZiBub3QuXG4gICAqXG4gICAqIEByZXR1cm4gQSBwcm9taXNlIG9mIGEgYm9vbGVhbiB0aGF0IHJlc29sdmVzIHRvIHRydWUgb25jZSB0aGUgaHlkcmF0aW9uIGNvbXBsZXRlZC5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZ2V0IGh5ZHJhdGlvbkNvbXBsZXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9oeWRyYXRpb25Db21wbGV0ZTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHdoZXRoZXIgaHlkcmF0aW9uIGlzIHJlcXVpcmVkIGFuZCBub3QgY29tcGxldGVkLiAqL1xuICBwcm90ZWN0ZWQgZ2V0IGh5ZHJhdGlvblJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oeWRyYXRpb25SZXF1aXJlZDtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGF0dGFjaGVkRWxlbWVudEludGVybmFscy5zZXQodGhpcywgdGhpcy5pbnRlcm5hbHMpO1xuICAgIGlmIChDdXN0b21TdGF0ZVNldFBvbHlmaWxsKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5pbnRlcm5hbHMsICdzdGF0ZXMnLCB7XG4gICAgICAgIHZhbHVlOiBuZXcgQ3VzdG9tU3RhdGVTZXRQb2x5ZmlsbCh0aGlzKSxcbiAgICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBXZSB1c2UgdGhlIEN1c3RvbVN0YXRlU2V0IHBvbHlmaWxsIGluIFNTUiwgd2hpY2ggcmVuZGVycyB0aGUgc3RhdGUgYXMgYXR0cmlidXRlc1xuICAgICAgLy8gd2hpY2ggY2FuIGJlIHRyYW5zZmVycmVkIHRvIGNsaWVudCBzaWRlLCB3aGVyZSB3ZSBjYW4gdGhlbiBjb252ZXJ0IFtzdGF0ZS0tKl1cbiAgICAgIC8vIGF0dHJpYnV0ZXMgdG8gaW50ZXJuYWwgc3RhdGUuXG4gICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5nZXRBdHRyaWJ1dGVOYW1lcygpLmZpbHRlcigobikgPT4gbi5zdGFydHNXaXRoKCdzdGF0ZS0tJykpKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQobmFtZS5zbGljZSg3KSk7XG4gICAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByb2xlID0gKHRoaXMuY29uc3RydWN0b3IgYXMgU2JiRWxlbWVudENvbnN0cnVjdG9yKS5yb2xlO1xuICAgIGlmIChyb2xlKSB7XG4gICAgICB0aGlzLmludGVybmFscy5yb2xlID0gcm9sZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayB3aGV0aGVyIGh5ZHJhdGlvbiBpcyBuZWVkZWQgYnkgY2hlY2tpbmcgd2hldGhlciB0aGUgc2hhZG93IHJvb3RcbiAgICAvLyBpcyBhdmFpbGFibGUgZHVyaW5nIGNvbnN0cnVjdGlvbi91cGdyYWRlIHBoYXNlLlxuICAgIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkID0gISF0aGlzLnNoYWRvd1Jvb3Q7XG4gICAgaWYgKCF0aGlzLl9oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5fcmVzb2x2ZUh5ZHJhdGlvbihmYWxzZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIER1cmluZyBoeWRyYXRpb24gcGhhc2UsIHdlIHdhbnQgdG8gc3VwcHJlc3Mgc2xvdGNoYW5nZSBldmVudHMgYXMgdGhleVxuICAgICAgLy8gY2FuIGNhdXNlIHJlbmRlciBkaWZmZXJlbmNlcywgd2hpY2ggd291bGQgYnJlYWsgaHlkcmF0aW9uLiBBZnRlclxuICAgICAgLy8gaHlkcmF0aW9uIGlzIGNvbXBsZXRlLCB3ZSBkaXNwYXRjaCBhIG1hbnVhbCBzbG90Y2hhbmdlIGV2ZW50LCBpZiB0aGVyZVxuICAgICAgLy8gYXJlIGVsZW1lbnRzIGFzc2lnbmVkIHRvIGEgc2xvdC5cbiAgICAgIGNvbnN0IHN1cHByZXNzU2xvdGNoYW5nZUV2ZW50ID0gKGV2ZW50OiBFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAodGhpcy5faHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIGNvbnN0IGV2ZW50T3B0aW9uczogRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSB7IGNhcHR1cmU6IHRydWUgfTtcbiAgICAgIGNvbnN0IHNsb3RzID0gdGhpcy5zaGFkb3dSb290Py5xdWVyeVNlbGVjdG9yQWxsKCdzbG90Jyk7XG4gICAgICBpZiAoc2xvdHM/Lmxlbmd0aCkge1xuICAgICAgICBzbG90cy5mb3JFYWNoKChzbG90KSA9PlxuICAgICAgICAgIHNsb3QuYWRkRXZlbnRMaXN0ZW5lcignc2xvdGNoYW5nZScsIHN1cHByZXNzU2xvdGNoYW5nZUV2ZW50LCBldmVudE9wdGlvbnMpLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmh5ZHJhdGlvbkNvbXBsZXRlLnRoZW4oKCkgPT5cbiAgICAgICAgICBzbG90cy5mb3JFYWNoKChzbG90KSA9PiB7XG4gICAgICAgICAgICBzbG90LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nsb3RjaGFuZ2UnLCBzdXBwcmVzc1Nsb3RjaGFuZ2VFdmVudCwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgICAgIGlmIChzbG90LmFzc2lnbmVkTm9kZXMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgICAgICAgICAgICBzbG90LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzbG90Y2hhbmdlJywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogUmVnaXN0ZXIgdGhlIGN1c3RvbSBlbGVtZW50IGluIHRoZSBnbG9iYWwgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LiAqL1xuICBwdWJsaWMgc3RhdGljIGRlZmluZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSBzdGF0aWMgcHJvcGVydHkgXCJlbGVtZW50TmFtZVwiIGlzIG5vdCBkZWZpbmVkIG9uICR7dGhpcy5uYW1lfS4gUGxlYXNlIGRlZmluZSBpdCB0byByZWdpc3RlciB0aGUgY3VzdG9tIGVsZW1lbnQuYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudENsYXNzID0gY3VzdG9tRWxlbWVudHMuZ2V0KHRoaXMuZWxlbWVudE5hbWUpO1xuICAgIGlmICghZWxlbWVudENsYXNzKSB7XG4gICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUodGhpcy5lbGVtZW50TmFtZSwgdGhpcyBhcyB1bmtub3duIGFzIEN1c3RvbUVsZW1lbnRDb25zdHJ1Y3Rvcik7XG5cbiAgICAgIGNvbnN0IGVsZW1lbnREZXBlbmRlbmNpZXM6IFNiYkVsZW1lbnRUeXBlW10gPSBbXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgICAgbGV0IGN0b3I6IFNiYkVsZW1lbnRUeXBlID0gdGhpcztcbiAgICAgIHdoaWxlIChjdG9yWydfJHNiYkVsZW1lbnQkJ10pIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3Rvci5lbGVtZW50RGVwZW5kZW5jaWVzKSkge1xuICAgICAgICAgIGVsZW1lbnREZXBlbmRlbmNpZXMucHVzaCguLi5jdG9yLmVsZW1lbnREZXBlbmRlbmNpZXMpO1xuICAgICAgICB9XG4gICAgICAgIGN0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3Rvcik7XG4gICAgICB9XG4gICAgICBuZXcgU2V0KGVsZW1lbnREZXBlbmRlbmNpZXMpLmZvckVhY2goKGRlcGVuZGVuY3kpID0+IGRlcGVuZGVuY3kuZGVmaW5lKCkpO1xuICAgIH0gZWxzZSBpZiAoaW1wb3J0Lm1ldGEuZW52LkRFViAmJiBlbGVtZW50Q2xhc3MgIT09IHRoaXMpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFRoZSBjdXN0b20gZWxlbWVudCB3aXRoIG5hbWUgXCIke3RoaXMuZWxlbWVudE5hbWV9XCIgaXMgYWxyZWFkeSBkZWZpbmVkLiBTa2lwcGluZy5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdHMgYHN0eWxlc2AgZnJvbSBldmVyeSBjbGFzcyBpbiB0aGUgcHJvdG90eXBlIGNoYWluICh1c2luZyBgT2JqZWN0Lmhhc093bmApXG4gICAqIGFuZCBtZXJnZXMgdGhlbSBpbiB0b3AtZG93biBvcmRlci4gVGhpcyBtZWFucyBlYWNoIGNsYXNzL21peGluIG9ubHkgbmVlZHMgdG8gZGVjbGFyZVxuICAgKiBpdHMgKipvd24qKiBzdHlsZXMg4oCUIHRoZXJlIGlzIG5vIG5lZWQgdG8gcmVmZXJlbmNlIGBzdXBlci5zdHlsZXNgLlxuICAgKlxuICAgKiBMaXQncyBkZWZhdWx0IGJlaGF2aW91ciBhbHJlYWR5IHdhbGtzIHRoZSBjaGFpbiwgYnV0IGZhaWxzIGZvciBtaXhpbnMgd2hlcmVcbiAgICogYHN1cGVyLnN0eWxlc2AgcmVzb2x2ZXMgdG8gdGhlIHdyb25nIGNsYXNzLiBUaGlzIG92ZXJyaWRlIGZpeGVzIHRoYXQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIG92ZXJyaWRlIGZpbmFsaXplU3R5bGVzKF9zdHlsZXM6IENTU1Jlc3VsdEdyb3VwKTogQ1NTUmVzdWx0T3JOYXRpdmVbXSB7XG4gICAgY29uc3QgY29sbGVjdGVkOiBDU1NSZXN1bHRHcm91cFtdID0gW107XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgbGV0IGN0b3I6IHR5cGVvZiBTYmJFbGVtZW50IHwgbnVsbCA9IHRoaXM7XG4gICAgd2hpbGUgKGN0b3IgJiYgY3RvciAhPT0gTGl0RWxlbWVudCkge1xuICAgICAgaWYgKE9iamVjdC5oYXNPd24oY3RvciwgJ3N0eWxlcycpICYmIGN0b3Iuc3R5bGVzKSB7XG4gICAgICAgIGNvbGxlY3RlZC51bnNoaWZ0KGN0b3Iuc3R5bGVzKTtcbiAgICAgIH1cbiAgICAgIGN0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY3RvcikgYXMgdHlwZW9mIFNiYkVsZW1lbnQgfCBudWxsO1xuICAgIH1cbiAgICAvLyBDYWxsIExpdEVsZW1lbnQuZmluYWxpemVTdHlsZXMgd2hpY2ggaGFuZGxlcyBkZWR1cCAmIGFkb3B0aW9uXG4gICAgcmV0dXJuIHN1cGVyLmZpbmFsaXplU3R5bGVzKGNvbGxlY3RlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY3JlYXRlUmVuZGVyUm9vdCgpOiBIVE1MRWxlbWVudCB8IERvY3VtZW50RnJhZ21lbnQge1xuICAgIGNvbnN0IHJvb3QgPSBzdXBlci5jcmVhdGVSZW5kZXJSb290KCk7XG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90Y2hhbmdlJywgKGUpID0+XG4gICAgICB0aGlzLl9zbG90Y2hhbmdlSGFuZGxlcihlLCBlLnRhcmdldCBhcyBIVE1MU2xvdEVsZW1lbnQpLFxuICAgICk7XG4gICAgdGhpcy5zaGFkb3dSb290Py5hZGRFdmVudExpc3RlbmVyKCdzbG90dGVkY2hhbmdlJywgKGUpID0+IHRoaXMuX3Nsb3RjaGFuZ2VIYW5kbGVyKGUsIGUuc2xvdCksIHtcbiAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5zaGFkb3dSb290XG4gICAgICA/LnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2xvdCcpXG4gICAgICAuZm9yRWFjaCgoc2xvdCkgPT4gdGhpcy5faGFuZGxlU2xvdENoYW5nZUZvclNsb3R0ZWRTdGF0ZShzbG90KSk7XG5cbiAgICByZXR1cm4gcm9vdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSBgUmVhY3RpdmVDb250cm9sbGVyYCB0byBwYXJ0aWNpcGF0ZSBpbiB0aGUgZWxlbWVudCdzIHJlYWN0aXZlXG4gICAqIHVwZGF0ZSBjeWNsZS4gVGhlIGVsZW1lbnQgYXV0b21hdGljYWxseSBjYWxscyBpbnRvIGFueSByZWdpc3RlcmVkXG4gICAqIGNvbnRyb2xsZXJzIGR1cmluZyBpdHMgbGlmZWN5Y2xlIGNhbGxiYWNrcy5cbiAgICpcbiAgICogSWYgdGhlIGVsZW1lbnQgaXMgY29ubmVjdGVkIHdoZW4gYGFkZENvbnRyb2xsZXIoKWAgaXMgY2FsbGVkLCB0aGVcbiAgICogY29udHJvbGxlcidzIGBob3N0Q29ubmVjdGVkKClgIGNhbGxiYWNrIHdpbGwgYmUgaW1tZWRpYXRlbHkgY2FsbGVkLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGFkZENvbnRyb2xsZXIoY29udHJvbGxlcjogU2JiUmVhY3RpdmVDb250cm9sbGVyKTogdm9pZCB7XG4gICAgc3VwZXIuYWRkQ29udHJvbGxlcihjb250cm9sbGVyKTtcbiAgICAodGhpcy5fY29udHJvbGxlcnMgPz89IG5ldyBTZXQoKSkuYWRkKGNvbnRyb2xsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBgUmVhY3RpdmVDb250cm9sbGVyYCBmcm9tIHRoZSBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlbW92ZUNvbnRyb2xsZXIoY29udHJvbGxlcjogU2JiUmVhY3RpdmVDb250cm9sbGVyKTogdm9pZCB7XG4gICAgc3VwZXIucmVtb3ZlQ29udHJvbGxlcihjb250cm9sbGVyKTtcbiAgICB0aGlzLl9jb250cm9sbGVycz8uZGVsZXRlKGNvbnRyb2xsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcXVlc3RzIGFuIHVwZGF0ZSB3aGljaCBpcyBwcm9jZXNzZWQgYXN5bmNocm9ub3VzbHkuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZFxuICAgKiB3aGVuIGFuIGVsZW1lbnQgc2hvdWxkIHVwZGF0ZSBiYXNlZCBvbiBzb21lIHN0YXRlIG5vdCB0cmlnZ2VyZWQgYnkgc2V0dGluZ1xuICAgKiBhIHJlYWN0aXZlIHByb3BlcnR5LiBJbiB0aGlzIGNhc2UsIHBhc3Mgbm8gYXJndW1lbnRzLiBJdCBzaG91bGQgYWxzbyBiZVxuICAgKiBjYWxsZWQgd2hlbiBtYW51YWxseSBpbXBsZW1lbnRpbmcgYSBwcm9wZXJ0eSBzZXR0ZXIuIEluIHRoaXMgY2FzZSwgcGFzcyB0aGVcbiAgICogcHJvcGVydHkgYG5hbWVgIGFuZCBgb2xkVmFsdWVgIHRvIGVuc3VyZSB0aGF0IGFueSBjb25maWd1cmVkIHByb3BlcnR5XG4gICAqIG9wdGlvbnMgYXJlIGhvbm9yZWQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIG5hbWUgb2YgcmVxdWVzdGluZyBwcm9wZXJ0eVxuICAgKiBAcGFyYW0gb2xkVmFsdWUgb2xkIHZhbHVlIG9mIHJlcXVlc3RpbmcgcHJvcGVydHlcbiAgICogQHBhcmFtIG9wdGlvbnMgcHJvcGVydHkgb3B0aW9ucyB0byB1c2UgaW5zdGVhZCBvZiB0aGUgcHJldmlvdXNseVxuICAgKiAgICAgY29uZmlndXJlZCBvcHRpb25zXG4gICAqIEBwYXJhbSB1c2VOZXdWYWx1ZSBpZiB0cnVlLCB0aGUgbmV3VmFsdWUgYXJndW1lbnQgaXMgdXNlZCBpbnN0ZWFkIG9mXG4gICAqICAgICByZWFkaW5nIHRoZSBwcm9wZXJ0eSB2YWx1ZS4gVGhpcyBpcyBpbXBvcnRhbnQgdG8gdXNlIGlmIHRoZSByZWFjdGl2ZVxuICAgKiAgICAgcHJvcGVydHkgaXMgYSBzdGFuZGFyZCBwcml2YXRlIGFjY2Vzc29yLCBhcyBvcHBvc2VkIHRvIGEgcGxhaW5cbiAgICogICAgIHByb3BlcnR5LCBzaW5jZSBwcml2YXRlIG1lbWJlcnMgY2FuJ3QgYmUgZHluYW1pY2FsbHkgcmVhZCBieSBuYW1lLlxuICAgKiBAcGFyYW0gbmV3VmFsdWUgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkuIFRoaXMgaXMgb25seSB1c2VkIGlmXG4gICAqICAgICBgdXNlTmV3VmFsdWVgIGlzIHRydWUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICAgIHVzZU5ld1ZhbHVlPzogYm9vbGVhbixcbiAgICBuZXdWYWx1ZT86IHVua25vd24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMsIHVzZU5ld1ZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIGNvbnN0IHZhbHVlczogU2JiUHJvcGVydHlWYWx1ZXMgPSB7XG4gICAgICAgIG9sZFZhbHVlLFxuICAgICAgICB2YWx1ZTogdXNlTmV3VmFsdWUgPyBuZXdWYWx1ZSA6IHRoaXNbbmFtZSBhcyBrZXlvZiB0aGlzXSxcbiAgICAgIH07XG4gICAgICB0aGlzLl9jb250cm9sbGVycz8uZm9yRWFjaCgoY29udHJvbGxlcikgPT5cbiAgICAgICAgY29udHJvbGxlci5ob3N0UHJvcGVydHlVcGRhdGU/LihuYW1lLCB2YWx1ZXMsIG9wdGlvbnMpLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIC8vIFdoZW4gaHlkcmF0aW9uIGlzIG5lZWRlZCwgd2Ugd2FpdCB0aGUgaHlkcmF0aW9uIHByb2Nlc3MgdG8gZmluaXNoLCB3aGljaCBpcyBwYXRjaGVkXG4gICAgLy8gaW50byB0aGUgdXBkYXRlIG1ldGhvZCBvZiB0aGUgTGl0RWxlbWVudCBiYXNlIGNsYXNzLlxuICAgIHN1cGVyLnVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAodGhpcy5faHlkcmF0aW9uUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuX2h5ZHJhdGlvblJlcXVpcmVkID0gZmFsc2U7XG4gICAgICB0aGlzLl9yZXNvbHZlSHlkcmF0aW9uKHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGVTdGF0ZSh2YWx1ZTogc3RyaW5nLCBmb3JjZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoZm9yY2UgfHwgKGZvcmNlICE9PSBmYWxzZSAmJiAhdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcyh2YWx1ZSkpKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2xvdGNoYW5nZUhhbmRsZXIoZXZlbnQ6IEV2ZW50LCBzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCByZXNvbHZlZFNsb3QgPSB0aGlzLnNoYWRvd1Jvb3QhLmNvbnRhaW5zKHNsb3QpXG4gICAgICA/IHNsb3RcbiAgICAgIDogZXZlbnRcbiAgICAgICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgICAgICAuZmluZChcbiAgICAgICAgICAgIChlbCk6IGVsIGlzIEhUTUxTbG90RWxlbWVudCA9PlxuICAgICAgICAgICAgICBlbCBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCAmJiB0aGlzLnNoYWRvd1Jvb3QhLmNvbnRhaW5zKGVsKSxcbiAgICAgICAgICApO1xuICAgIGlmIChyZXNvbHZlZFNsb3QpIHtcbiAgICAgIHRoaXMuX2hhbmRsZVNsb3RDaGFuZ2VGb3JTbG90dGVkU3RhdGUocmVzb2x2ZWRTbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVTbG90Q2hhbmdlRm9yU2xvdHRlZFN0YXRlKHNsb3Q6IEhUTUxTbG90RWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZVNsb3R0ZWRTdGF0ZShzbG90KTtcbiAgICBpZiAoIXNsb3QubmFtZSkge1xuICAgICAgdGhpcy5fb2JzZXJ2ZVRleHROb2Rlc0luU2xvdChzbG90KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVTbG90dGVkU3RhdGUoc2xvdDogSFRNTFNsb3RFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGVOYW1lID0gc2xvdC5uYW1lID8gYHNsb3R0ZWQtJHtzbG90Lm5hbWV9YCA6ICdzbG90dGVkJztcbiAgICBjb25zdCBoYXNTbG90dGVkQ29udGVudCA9IHRoaXMuX2hhc1Nsb3R0ZWRDb250ZW50KHNsb3QpO1xuICAgIGlmIChoYXNTbG90dGVkQ29udGVudCAmJiAhdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcyhzdGF0ZU5hbWUpKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKHN0YXRlTmFtZSk7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudChzbG90KSk7XG4gICAgfSBlbHNlIGlmICghaGFzU2xvdHRlZENvbnRlbnQgJiYgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmhhcyhzdGF0ZU5hbWUpKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKHN0YXRlTmFtZSk7XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudChzbG90KSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZVRleHROb2Rlc0luU2xvdChzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLl90ZXh0T2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAvLyBPbmx5IGNyZWF0ZSB0aGUgTXV0YXRpb25PYnNlcnZlciB3aGVuIGl0IGlzIGFjdHVhbGx5IG5lZWRlZCB0byBvcHRpbWl6ZSBwZXJmb3JtYW5jZS5cbiAgICB0aGlzLl90ZXh0T2JzZXJ2ZXIgPz89IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHNsb3QgPSB0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3I8SFRNTFNsb3RFbGVtZW50Pignc2xvdDpub3QoW25hbWVdKScpO1xuICAgICAgaWYgKHNsb3QpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU2xvdHRlZFN0YXRlKHNsb3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fdGV4dE9ic2VydmVyIS5kaXNjb25uZWN0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gVGV4dCBub2RlcyBjYW4gYmUgZW1wdHkgYW5kIGZpbGxlZCBsYXRlciAob3IgdmljZSB2ZXJzYSkuXG4gICAgLy8gRmlsbGluZyBhbiBleGlzdGluZyBub2RlIGxhdGVyIHdvdWxkIG5vdCB0cmlnZ2VyIGFub3RoZXIgc2xvdGNoYW5nZSBldmVudC5cbiAgICAvLyBUaGVyZWZvcmUsIHdlIG5lZWQgdG8gb2JzZXJ2ZSB0ZXh0IG5vZGVzIGFuZCBjaGVjayBpZiB0aGV5IGJlY29tZSBmaWxsZWQgb3IgZW1wdHkuXG4gICAgLy8gVGhpcyBpcyBvbmx5IG5lZWRlZCBmb3IgdGhlIHVubmFtZWQgc2xvdCBhcyBmb3IgZXZlcnkgb3RoZXIgdGhlcmUgd291bGRcbiAgICAvLyBiZSBhIHRhZyB3aGljaCB0cmlnZ2VycyB0aGUgc2xvdCBjaGFuZ2UgZXZlbnQuXG4gICAgLy8gVGhlIG1haW4gcmVhc29uIGlzIHRoYXQgQW5ndWxhciBjcmVhdGVzIGVtcHR5IHRleHQgbm9kZXMgYW5kIGZpbGxzIHRoZW0gbGF0ZXIuXG4gICAgc2xvdFxuICAgICAgLmFzc2lnbmVkTm9kZXMoKVxuICAgICAgLmZpbHRlcigobikgPT4gbi5ub2RlVHlwZSA9PT0gbi5URVhUX05PREUpXG4gICAgICAuZm9yRWFjaCgobm9kZSkgPT4gdGhpcy5fdGV4dE9ic2VydmVyIS5vYnNlcnZlKG5vZGUsIHsgY2hhcmFjdGVyRGF0YTogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF9oYXNTbG90dGVkQ29udGVudChzbG90OiBIVE1MU2xvdEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc2xvdC5uYW1lXG4gICAgICA/IHNsb3RcbiAgICAgICAgICAuYXNzaWduZWRFbGVtZW50cygpXG4gICAgICAgICAgLnNvbWUoKG5vZGUpID0+ICEobm9kZSBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudCkgfHwgdGhpcy5faGFzU2xvdHRlZENvbnRlbnQobm9kZSkpXG4gICAgICA6IHNsb3QuYXNzaWduZWROb2RlcygpLnNvbWUoKG5vZGUpID0+IHtcbiAgICAgICAgICByZXR1cm4gbm9kZSBpbnN0YW5jZW9mIEhUTUxTbG90RWxlbWVudFxuICAgICAgICAgICAgPyB0aGlzLl9oYXNTbG90dGVkQ29udGVudChub2RlKVxuICAgICAgICAgICAgOiBub2RlLm5vZGVUeXBlICE9PSBub2RlLlRFWFRfTk9ERSB8fCAhIW5vZGUudGV4dENvbnRlbnQ/LnRyaW0oKTtcbiAgICAgICAgfSk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRFdmVudE1hcCB7XG4gICAgc2xvdHRlZGNoYW5nZTogU2JiU2xvdHRlZENoYW5nZUV2ZW50O1xuICB9XG4gIGludGVyZmFjZSBTaGFkb3dSb290RXZlbnRNYXAge1xuICAgIHNsb3R0ZWRjaGFuZ2U6IFNiYlNsb3R0ZWRDaGFuZ2VFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQWdCQSxJQUFNLHlCQUNKLFlBQVksQ0FBQyxJQUFJLFNBQVMsa0RBQTRCLEdBQ2xELE1BQU0sdUJBQ0ks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
|
|
@@ -229,7 +229,7 @@ var SbbFormAssociatedInputMixin = (superClass) => {
|
|
|
229
229
|
* changed under the condition that no input event has occurred since creation
|
|
230
230
|
* or the last form reset.
|
|
231
231
|
*/
|
|
232
|
-
if (name !== "value" || !this.
|
|
232
|
+
if (name !== "value" || !this.matches?.(":is(:state(interacted),[state--interacted])")) super.attributeChangedCallback(name, old, value);
|
|
233
233
|
}
|
|
234
234
|
/**
|
|
235
235
|
* Is called whenever the form is being reset.
|
|
@@ -336,4 +336,4 @@ var SbbFormAssociatedInputMixin = (superClass) => {
|
|
|
336
336
|
//#endregion
|
|
337
337
|
export { SbbFormAssociatedInputMixin };
|
|
338
338
|
|
|
339
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBldmVudE9wdGlvbnMsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9hMTF5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCwgU2JiRWxlbWVudENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHsgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgfSBmcm9tICcuLi9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oU2JiRGlzYWJsZWRNaXhpbihTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oc3VwZXJDbGFzcykpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0ZXh0Ym94JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZSB3aWxsIG5vdCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBUbyBhY2hpZXZlIHBhcml0eVxuICAgICAqIHdpdGggYSBuYXRpdmUgdGV4dCBpbnB1dCwgd2UgbmVlZCB0byB0cmFjayB3aGV0aGVyIGEgY2hhbmdlIGV2ZW50IHNob3VsZCBiZVxuICAgICAqIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEEgbmF0aXZlIHRleHQgaW5wdXQgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtIHdoZW4gcHJlc3NpbmcgRW50ZXIuXG4gICAgICogVGhpcyBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQgb24gdGhlIGtleWRvd24gZXZlbnQuXG4gICAgICogV2UgdHJhY2sgd2hldGhlciB0byByZXF1ZXN0IHN1Ym1pdCwgd2hpY2ggc2hvdWxkIG9jY3VyIGJlZm9yZSB0aGUga2V5dXBcbiAgICAgKiBldmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3RleHQnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWUgb2YgdGhpcyBpbnB1dC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaXNwbGF5dmFsdWVjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/ICcnO1xuICAgIH1cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhUGxhY2Vob2xkZXIgPSB2YWx1ZSA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpID8/ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvLyBXZSBwcmltYXJpbHkgdXNlIGNhcHR1cmUgZXZlbnQgbGlzdGVuZXJzLCBhcyB3ZSB3YW50XG4gICAgICAvLyBvdXIgbGlzdGVuZXJzIHRvIG9jY3VyIGJlZm9yZSBjb25zdW1lciBldmVudCBsaXN0ZW5lcnMuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2lucHV0JyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodGhpcy50ZXh0Q29udGVudCA/PyAnJyk7XG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCd2YWx1ZScsIG9sZFZhbHVlKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdpbnRlcmFjdGVkJyk7XG4gICAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigndG91Y2hlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcmbmJzcDsnKTtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSAmJiBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljIHRoYXQgYnkgcmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uXG4gICAgICAvLyBXZSBhbHNvIHVuc2V0IGFueSBzZWxlY3Rpb24gdG8gYWxpZ24gd2l0aCB0aGUgbmF0aXZlIHRleHQgaW5wdXQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICBzdXBlci5mb2N1cyhvcHRpb25zKTtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gY2FsbGluZyBmb2N1cyBvbiBhbiBpbnB1dCBlbGVtZW50LCB0aGUgY3Vyc29yIGlzIHBsYWNlZFxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gSG93ZXZlciwgd2l0aCBjb250ZW50ZWRpdGFibGUsIHRoZSBjdXJzb3JcbiAgICAgIC8vIGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nLCBzbyB3ZSBtb3ZlIGl0IHRvIHRoZSBlbmQsIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgICBpZiAodGhpcy5fY2FuU2VsZWN0KCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCA/IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApIDogbnVsbDtcbiAgICAgICAgaWYgKHJhbmdlICYmIHJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQodGhpcy50ZXh0Q29udGVudCEubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCBjaGFuZ2VzIHRoZSB2YWx1ZSBwcm9wZXJ0eSB3aGVuIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXNcbiAgICAgICAqIGNoYW5nZWQgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IG5vIGlucHV0IGV2ZW50IGhhcyBvY2N1cnJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMuaW50ZXJuYWxzLnN0YXRlcy5oYXMoJ2ludGVyYWN0ZWQnKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkICYmXG4gICAgICAgIChuYW1lID09PSAnZGlzYWJsZWQnIHx8IG5hbWUgPT09ICdmb3JtRGlzYWJsZWQnIHx8IG5hbWUgPT09ICdyZWFkT25seScpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHwgbmFtZSA9PT0gJ3ZhbHVlJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJywgaTE4bklucHV0UmVxdWlyZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlc0VtcHR5UGF0Y2goKTogYm9vbGVhbiB7XG4gICAgICAvLyBJbiBCbGluaywgYSBjb250ZW50ZWRpdGFibGUgZWxlbWVudCB3aXRoIGVtcHR5IGNvbnRlbnQgd2lsbCBjcmFzaFxuICAgICAgLy8gdXBvbiByZWNlaXZpbmcgZm9jdXMsIHdoZW4gaW4gTW9iaWxlIG1vZGUuXG4gICAgICAvLyBUbyBwcmV2ZW50IHRoaXMsIHdlIHBhdGNoIHRoZSBlbXB0eSBzdGF0ZSBieSBpbnNlcnRpbmcgYSBub24tYnJlYWtpbmcgc3BhY2UuXG4gICAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IGlzQmxpbmsgJiYgdGhpcy52YWx1ZSA9PT0gJycgJiYgd2luZG93Lm1hdGNoTWVkaWEoU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UpLm1hdGNoZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzaWduVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5pbm5lckhUTUwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDdXJzb3JBdChwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHBvc2l0aW9uKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbGVhblRleHQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAvLyBUaGUgbmF0aXZlIHRleHQgaW5wdXQgcmVtb3ZlcyBhbGwgbmV3bGluZSBjaGFyYWN0ZXJzIGlmIHBhc3NlZCB0byB0aGUgdmFsdWUgcHJvcGVydHlcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCA/ICcnIDogYCR7dmFsdWV9YC5yZXBsYWNlKC9bXFxuXFxyXSsvZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc3BhdGNoSW5wdXRFdmVudCgpOiB2b2lkIHtcbiAgICAgIC8qKiBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBAZXZlbnRPcHRpb25zKHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgIHByaXZhdGUgX2NsZWFuQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGlsZEVsZW1lbnRDb3VudCkge1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVDb250ZW50ZWRpdGFibGUoKTogdm9pZCB7XG4gICAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gdGhpcy5yZWFkT25seSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICAvLyBUT0RPKDIwMjYpOiBGaXJlZm94IHN1cHBvcnRzIHBsYWludGV4dC1vbmx5IHNpbmNlIHZlcnNpb24gMTM2IChNYXJjaCAyMDI1KS5cbiAgICAgICAgLy8gVW50aWwgdGhpcyBpcyBwYXJ0IG9mIG91ciBiYXNlbGluZSwgd2Ugc2hvdWxkIGZlYXR1cmUgY2hlY2sgdG8gZW5hYmxlIGl0LlxuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/ICdmYWxzZSdcbiAgICAgICAgICAgIDogcGxhaW50ZXh0T25seVN1cHBvcnRlZFxuICAgICAgICAgICAgICA/ICdwbGFpbnRleHQtb25seSdcbiAgICAgICAgICAgICAgOiAndHJ1ZSc7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCB2YWx1ZSk7XG4gICAgICAgIC8vIEluIHRoZSByZWFkb25seSBjYXNlLCB3ZSBkaXNhYmxlIGNvbnRlbnRlZGl0YWJsZSwgYnV0IGl0IHN0aWxsXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIGZvY3VzYWJsZS4gV2UgYWNoaWV2ZSB0aGlzIGJ5IHNldHRpbmcgdGFiaW5kZXggaW4gdGhhdCBjYXNlLlxuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIC8qKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS4gVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2FuU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFpc1NlcnZlciAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiB1bmtub3duIHtcbiAgICAgIHJldHVybiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fY2xlYW5DaGlsZHJlbn0+PC9zbG90PmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFtREEsSUFBTSxrQ0FBMEM7QUFDOUMsS0FBSSxTQUNGLFFBQU87Q0FHVCxNQUFNLE1BQU0sU0FBUyxjQUFjLE1BQU07QUFDekMsS0FBSSxhQUFhLG1CQUFtQixpQkFBaUI7QUFJckQsUUFBTyxJQUFJLG9CQUFvQjs7QUFFakMsSUFBTSx5QkFBeUIsMkJBQTJCOzs7O0FBTTFELElBQWEsK0JBR1gsZUFDNEQ7QUErWjVELGVBOVo0QztvQkFDbEMsaUJBQWlCLGlCQUFpQixpQkFBaUIsdUJBQXVCLFdBQVcsQ0FBQyxDQUFDLENBQUM7Ozs7O2VBRG5GLHNDQUNMLFlBQXdGOzs7NkJBaUMvRixVQUFVLENBQUE7bUNBY1YsU0FBUyxFQUFFLFdBQVcsT0FBTyxDQUFDLENBQUE7a0NBNlQ5QixhQUFhLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtBQTFVaEMsaUJBQUEsTUFBQSxNQUFBLHVCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsV0FBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxRQUFLOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQWNoQixpQkFBQSxNQUFBLE1BQUEsNkJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxpQkFBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxjQUFXOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQTZUdEIsaUJBQUEsTUFBQSxNQUFBLDRCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsb0JBQUE7TUFBQSxNQUFBLFFBQUEsSUFBUTtNQUFjO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTs7Ozs7Ozs7O0FBMVdVLFNBQUEsT0FBTzs7O0FBQ2hCLFNBQUEsc0JBQXNCOzs7Ozs7R0FzQjdDLElBQW9CLE9BQUk7QUFDdEIsV0FBTzs7Ozs7R0FPVCxJQUFXLE1BQU0sT0FBYTtBQUM1QixTQUFLLFNBQVMsS0FBSyxXQUFXLE1BQU07QUFDcEMsUUFBSSxLQUFLLFdBQ1AsTUFBSyxhQUFhLEtBQUssT0FBTzs7QUFHaEMsU0FBSyxjQUFjLElBQUksTUFBTSxzQkFBc0I7S0FBRSxTQUFTO0tBQU0sVUFBVTtLQUFNLENBQUMsQ0FBQzs7R0FFeEYsSUFBVyxRQUFLO0FBQ2QsV0FBTyxLQUFLLFVBQVU7O0dBS3hCLElBQVcsWUFBWSxPQUFhO0FBQ2xDLFFBQUksTUFDRixNQUFLLGFBQWEsZUFBZSxNQUFNO1FBRXZDLE1BQUssZ0JBQWdCLGNBQWM7QUFFckMsU0FBSyxVQUFVLGtCQUFrQixRQUFRLFFBQVE7O0dBRW5ELElBQVcsY0FBVztBQUNwQixXQUFPLEtBQUssYUFBYSxjQUFjLElBQUk7O0dBRzdDLGNBQUE7QUFDRSxXQUFPOzs7Ozs7QUFsREQsU0FBQSxxQkFaSyxrQkFBQSxNQUFBLDJCQUE2QixFQVlkOzs7Ozs7O0FBT3BCLFNBQUEsdUJBQXVCO0FBRXJCLFNBQUEsV0FBVyxJQUFJLHNCQUFzQixLQUFLO0FBeUI1QyxTQUFBLFNBQWlCO0FBbUJ2QixTQUFLLG1CQUNILGVBQ0s7S0FDSCxNQUFNLFdBQVcsS0FBSztBQUN0QixVQUFLLFNBQVMsS0FBSyxXQUFXLEtBQUssZUFBZSxHQUFHO0FBQ3JELFVBQUssY0FBYyxTQUFTLFNBQVM7QUFDckMsVUFBSyxVQUFVLE9BQU8sSUFBSSxhQUFhO0FBQ3ZDLFVBQUssb0JBQW9CO09BRTNCLEVBQUUsU0FBUyxNQUFNLENBQ2xCO0FBQ0QsU0FBSyxtQkFBbUIsZ0JBQWlCLEtBQUssb0JBQW9CLE9BQVEsRUFBRSxTQUFTLE1BQU0sQ0FBQztBQUM1RixTQUFLLG1CQUNILFlBQ0MsVUFBUztBQUNSLFNBQUksS0FBSyxxQkFBcUIsQ0FDNUIsTUFBSyxhQUFhLEdBQUc7QUFJdkIsVUFBSyxNQUFNLFFBQVEsV0FBVyxNQUFNLFFBQVEsU0FBUyxNQUFNLFdBQVc7QUFDcEUsWUFBTSxnQkFBZ0I7QUFDdEIsWUFBTSwwQkFBMEI7QUFDaEMsV0FBSyx1QkFBdUIsS0FBSyxjQUFjLElBQUksY0FBYyxXQUFXLE1BQU0sQ0FBQztnQkFFbkYsWUFDQSxLQUFLLFVBQ0osTUFBTSxRQUFRLGVBQWUsTUFBTSxRQUFRLGFBQzVDLE1BQU0sV0FDTjtBQUlBLFlBQU0sZ0JBQWdCO0FBQ3RCLFlBQU0sMEJBQTBCO0FBRWhDLFVBQUksQ0FBQyxLQUFLLGNBQWMsSUFBSSxjQUFjLFdBQVcsTUFBTSxDQUFDLENBQzFEO01BR0YsTUFBTSxnQkFBZ0IsT0FBTyxjQUFjLEVBQUUsV0FBVyxFQUFFO0FBQzFELFVBQUksQ0FBQyxjQUNIO0FBR0YsVUFBSSxjQUFjLGdCQUFnQixjQUFjLFdBQVc7QUFFekQscUJBQWMsZ0JBQWdCO0FBQzlCLFlBQUsscUJBQXFCO2lCQUNqQixNQUFNLFFBQVEsZUFBZSxjQUFjLGNBQWMsR0FBRztBQUdyRSxxQkFBYyxTQUFTLGNBQWMsZ0JBQWdCLGNBQWMsY0FBYyxFQUFFO0FBQ25GLHFCQUFjLGdCQUFnQjtBQUM5QixZQUFLLHFCQUFxQjtpQkFDakIsTUFBTSxRQUFRLFlBQVksY0FBYyxZQUFZLEtBQUssTUFBTSxRQUFRO0FBR2hGLHFCQUFjLE9BQU8sY0FBYyxjQUFjLGNBQWMsWUFBWSxFQUFFO0FBQzdFLHFCQUFjLGdCQUFnQjtBQUM5QixZQUFLLHFCQUFxQjs7O09BSWhDLEVBQUUsU0FBUyxNQUFNLENBQ2xCO0FBQ0QsU0FBSyxtQkFDSCxVQUNDLFVBQVM7QUFDUixTQUFJLE1BQU0sUUFBUSxXQUFXLE1BQU0sUUFBUSxNQUFNO0FBQy9DLFdBQUssd0JBQXdCO0FBQzdCLFVBQUksS0FBSyxzQkFBc0I7QUFDN0IsWUFBSyx1QkFBdUI7QUFDNUIsWUFBSyxNQUFNLGVBQWU7O2dCQUVuQixLQUFLLHFCQUFxQixDQUNuQyxNQUFLLGFBQWEsRUFBRTtPQUd4QixFQUFFLFNBQVMsTUFBTSxDQUNsQjtBQU1ELFNBQUssbUJBQW1CLFVBQVUsTUFBSztBQUNyQyxPQUFFLGdCQUFnQjtBQUNsQixTQUFJLEtBQUsscUJBQXFCLENBQzVCLE1BQUssYUFBYSxHQUFHO0tBR3ZCLE1BQU0sT0FBTyxLQUFLLFdBQVcsRUFBRSxlQUFlLFFBQVEsYUFBYSxJQUFJLEdBQUc7S0FDMUUsTUFBTSxnQkFBZ0IsT0FBTyxjQUFjLEVBQUUsV0FBVyxFQUFFO0FBQzFELFNBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUNyQjtBQUdGLG1CQUFjLGdCQUFnQjtBQUM5QixtQkFBYyxXQUFXLFNBQVMsZUFBZSxLQUFLLGtCQUFrQixLQUFLLENBQUMsQ0FBQztBQUMvRSxtQkFBYyxTQUFTLGNBQWMsY0FBYyxjQUFjLFVBQVU7QUFDM0UsVUFBSyxxQkFBcUI7TUFDMUI7QUFFRixTQUFLLG1CQUFtQixlQUFjO0FBQ3BDLFNBQUkseUJBQXlCLHVCQUF1QixXQUVsRCxRQUFPLGNBQWMsRUFBRSxrQkFBa0IsS0FBSztNQUVoRDtBQUNGLFNBQUssbUJBQW1CLGtCQUFpQjtBQUN2QyxTQUFJLEtBQUsscUJBQXFCLEVBQUU7QUFDOUIsV0FBSyxhQUFhLFNBQVM7QUFDM0IsV0FBSyxhQUFhLEVBQUU7O01BRXRCO0FBQ0YsU0FBSyxtQkFBbUIsZUFBYztBQUNwQyxTQUFJLEtBQUsscUJBQXFCLElBQUkseUJBQXlCLHVCQUF1QixRQUNoRixNQUFLLGFBQWEsRUFBRTtNQUV0QjtBQUtGLFNBQUssbUJBQ0gsY0FDSztBQUNILFlBQU8sY0FBYyxFQUFFLGlCQUFpQjtBQUN4QyxTQUFJLEtBQUssVUFBVSxHQUNqQixNQUFLLGFBQWEsR0FBRztBQUV2QixVQUFLLHdCQUF3QjtBQUM3QixVQUFLLGFBQWE7T0FFcEIsRUFBRSxTQUFTLE1BQU0sQ0FDbEI7O0dBR2dCLHVCQUFvQjtBQUNyQyxXQUFPLEtBQUs7O0dBR0Usb0JBQWlCO0FBQy9CLFVBQU0sbUJBQW1CO0FBQ3pCLFNBQUssVUFBVSxnQkFBZ0I7QUFDL0IsU0FBSyx3QkFBd0I7QUFHN0IsU0FBSyxhQUFhLEtBQUssTUFBTTs7R0FHZixNQUFNLFNBQXNCO0FBQzFDLFVBQU0sTUFBTSxRQUFRO0FBSXBCLFFBQUksS0FBSyxZQUFZLEVBQUU7S0FDckIsTUFBTSxZQUFZLE9BQU8sY0FBYztBQUN2QyxTQUFJLENBQUMsVUFDSDtLQUVGLE1BQU0sUUFBUSxVQUFVLGFBQWEsSUFBSSxVQUFVLFdBQVcsRUFBRSxHQUFHO0FBQ25FLFNBQUksU0FBUyxNQUFNLGdCQUFnQixFQUNqQztBQUdGLFVBQUssYUFBYSxLQUFLLFlBQWEsT0FBTzs7O0dBSS9CLHlCQUNkLE1BQ0EsS0FDQSxPQUFvQjs7Ozs7O0FBT3BCLFFBQUksU0FBUyxXQUFXLENBQUMsS0FBSyxVQUFVLE9BQU8sSUFBSSxhQUFhLENBQzlELE9BQU0seUJBQXlCLE1BQU0sS0FBSyxNQUFNOzs7Ozs7O0dBU3BDLG9CQUFpQjtBQUMvQixTQUFLLFVBQVUsT0FBTyxPQUFPLGFBQWE7QUFDMUMsU0FBSyxRQUFRLEtBQUssYUFBYSxRQUFRLElBQUk7Ozs7Ozs7Ozs7O0dBWTdCLHlCQUNkLE9BQ0EsU0FBMEI7QUFFMUIsUUFBSSxTQUFTLE9BQU8sVUFBVSxTQUM1QixNQUFLLFFBQVE7Ozs7Ozs7R0FTVixTQUFNO0FBQ1gsV0FBTyxjQUFjLEVBQUUsa0JBQWtCLEtBQUs7O0dBRzdCLGFBQWEsbUJBQXVDO0FBQ3JFLFVBQU0sYUFBYSxrQkFBa0I7QUFJckMsUUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLFVBQVUsT0FDaEMsTUFBSyxhQUFhLEtBQUssTUFBTTs7R0FJakIsY0FDZCxNQUNBLFVBQ0EsU0FBNkI7QUFFN0IsVUFBTSxjQUFjLE1BQU0sVUFBVSxRQUFRO0FBQzVDLFFBQ0UsS0FBSyxnQkFDSixTQUFTLGNBQWMsU0FBUyxrQkFBa0IsU0FBUyxZQUU1RCxNQUFLLHdCQUF3Qjs7R0FJZCxlQUFlLE1BQTZCO0FBQzdELFdBQU8sTUFBTSxlQUFlLEtBQUssSUFBSSxTQUFTLFdBQVcsU0FBUzs7R0FHakQsV0FBUTtBQUN6QixVQUFNLFVBQVU7QUFDaEIsUUFBSSxLQUFLLFlBQVksQ0FBQyxLQUFLLE1BQ3pCLE1BQUssZ0JBQWdCLGdCQUFnQixrQkFBa0IsS0FBSyxTQUFTLFNBQVM7UUFFOUUsTUFBSyxtQkFBbUIsZUFBZTs7R0FJakMsa0JBQWtCLE1BQVk7QUFDdEMsV0FBTzs7R0FHRCxzQkFBbUI7QUFJekIsV0FBTyxXQUNILFFBQ0EsV0FBVyxLQUFLLFVBQVUsTUFBTSxPQUFPLFdBQVcsMkJBQTJCLENBQUM7O0dBRzVFLGFBQWEsT0FBYTtBQUNoQyxTQUFLLFlBQVk7O0dBR1gsYUFBYSxVQUFnQjtJQUNuQyxNQUFNLFlBQVksT0FBTyxjQUFjO0FBQ3ZDLFFBQUksQ0FBQyxVQUNIO0lBR0YsTUFBTSxRQUFRLFNBQVMsYUFBYTtBQUNwQyxVQUFNLFNBQVMsS0FBSyxZQUFhLFNBQVM7QUFDMUMsVUFBTSxTQUFTLEtBQUs7QUFDcEIsY0FBVSxpQkFBaUI7QUFDM0IsY0FBVSxTQUFTLE1BQU07O0dBR25CLFdBQVcsT0FBYTtBQUU5QixXQUFPLFVBQVUsT0FBTyxLQUFLLEdBQUcsUUFBUSxRQUFRLFlBQVksR0FBRzs7R0FHekQsc0JBQW1COztBQUV6QixTQUFLLGNBQWMsSUFBSSxXQUFXLFNBQVM7S0FBRSxTQUFTO0tBQU0sVUFBVTtLQUFNLENBQUMsQ0FBQzs7R0FJeEUsaUJBQWM7QUFDcEIsUUFBSSxLQUFLLGtCQUNQLE1BQUssTUFBTSxXQUFXLEtBQUssU0FDekIsU0FBUSxRQUFROztHQUtkLHlCQUFzQjtBQUM1QixRQUFJLENBQUMsWUFBWSxLQUFLLGFBQWE7QUFDakMsVUFBSyxVQUFVLGVBQWUsS0FBSyxXQUFXLFNBQVM7QUFDdkQsVUFBSyxVQUFVLGVBQWUsS0FBSyxXQUFXLFNBQVM7S0FHdkQsTUFBTSxRQUNKLEtBQUssWUFBWSxLQUFLLFdBQ2xCLFVBQ0EseUJBQ0UsbUJBQ0E7QUFDUixVQUFLLGFBQWEsbUJBQW1CLE1BQU07QUFHM0MsU0FBSSxLQUFLLFNBQ1AsTUFBSyxhQUFhLFlBQVksSUFBSTtTQUVsQyxNQUFLLGdCQUFnQixXQUFXOzs7R0FLOUIseUJBQXNCO0FBQzVCLFFBQUksS0FBSyxtQkFBbUI7QUFDMUIsVUFBSyxvQkFBb0I7O0FBRXpCLFVBQUssY0FBYyxJQUFJLE1BQU0sVUFBVSxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUM7OztHQUl0RCxhQUFVO0FBQ2hCLFdBQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxZQUFZLENBQUMsQ0FBQyxLQUFLOztHQUc5QyxTQUFNO0FBQ3ZCLFdBQU8sSUFBSSxxQkFBcUIsS0FBSyxlQUFjOzs7S0FJaEQifQ==
|
|
339
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1hc3NvY2lhdGVkLWlucHV0LW1peGluLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jb3JlL21peGlucy9mb3JtLWFzc29jaWF0ZWQtaW5wdXQtbWl4aW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBQcm9wZXJ0eVZhbHVlcyB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBldmVudE9wdGlvbnMsIHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IgfSBmcm9tICcuLi9hMTF5L2lucHV0LW1vZGFsaXR5LWRldGVjdG9yLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRWxlbWVudCwgU2JiRWxlbWVudENvbnN0cnVjdG9yIH0gZnJvbSAnLi4vYmFzZS1lbGVtZW50cy9lbGVtZW50LnRzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvbnRyb2xsZXJzL2xhbmd1YWdlLWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHsgU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UgfSBmcm9tICcuLi9jb250cm9sbGVycy9tZWRpYS1tYXRjaGVycy1jb250cm9sbGVyLnRzJztcbmltcG9ydCB7IGlzQmxpbmssIGlzV2Via2l0IH0gZnJvbSAnLi4vZG9tL3BsYXRmb3JtLnRzJztcbmltcG9ydCB7IGkxOG5JbnB1dFJlcXVpcmVkIH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJ1Y3Rvci50cyc7XG5pbXBvcnQgeyBTYmJEaXNhYmxlZE1peGluIH0gZnJvbSAnLi9kaXNhYmxlZC1taXhpbi50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4vZm9ybS1hc3NvY2lhdGVkLW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlYWRvbmx5TWl4aW4gfSBmcm9tICcuL3JlYWRvbmx5LW1peGluLnRzJztcbmltcG9ydCB7IFNiYlJlcXVpcmVkTWl4aW4gfSBmcm9tICcuL3JlcXVpcmVkLW1peGluLnRzJztcblxuZXhwb3J0IGRlY2xhcmUgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZSBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCksXG4pIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBmb3JtRmllbGRBc3NvY2lhdGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpO1xuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZztcblxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKTtcbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pO1xuICBwdWJsaWMgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW47XG5cbiAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKTtcbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1ha2VzIHRoZSBzZWxlY3Rpb24gZXF1YWwgdG8gdGhlIGN1cnJlbnQgb2JqZWN0LlxuICAgKlxuICAgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hUTUxJbnB1dEVsZW1lbnQvc2VsZWN0KVxuICAgKi9cbiAgcHVibGljIHNlbGVjdCgpOiB2b2lkO1xuXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkO1xuICBwdWJsaWMgZm9ybVN0YXRlUmVzdG9yZUNhbGxiYWNrKHN0YXRlOiBGb3JtUmVzdG9yZVN0YXRlIHwgbnVsbCwgcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbik6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZztcbiAgcHJvdGVjdGVkIGxhbmd1YWdlOiBTYmJMYW5ndWFnZUNvbnRyb2xsZXI7XG59XG5cbmNvbnN0IGNoZWNrUGxhaW50ZXh0T25seVN1cHBvcnQgPSAoKTogYm9vbGVhbiA9PiB7XG4gIGlmIChpc1NlcnZlcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICBkaXYuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCAnUExBSU5URVhULU9OTFknKTtcblxuICAvLyBJZiBwbGFpbnRleHQtb25seSBpcyBzdXBwb3J0ZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWUgaXNcbiAgLy8gcmV0dXJuZWQgYXMgbG93ZXItY2FzZSBmcm9tIHRoZSBwcm9wZXJ0eSBhY2Nlc3MuXG4gIHJldHVybiBkaXYuY29udGVudEVkaXRhYmxlID09PSAncGxhaW50ZXh0LW9ubHknO1xufTtcbmNvbnN0IHBsYWludGV4dE9ubHlTdXBwb3J0ZWQgPSBjaGVja1BsYWludGV4dE9ubHlTdXBwb3J0KCk7XG5cbi8qKlxuICogVGhlIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRNaXhpbiBlbmFibGVzIG5hdGl2ZSBmb3JtIHN1cHBvcnQgZm9yIHRleHQgaW5wdXQgY29udHJvbHMuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBjb25zdCBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gPSA8XG4gIFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkVsZW1lbnQ+ICYgU2JiRWxlbWVudENvbnN0cnVjdG9yLFxuPihcbiAgc3VwZXJDbGFzczogVCxcbik6IEFic3RyYWN0Q29uc3RydWN0b3I8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT4gJiBUID0+IHtcbiAgYWJzdHJhY3QgY2xhc3MgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dEVsZW1lbnRcbiAgICBleHRlbmRzIFNiYlJlYWRvbmx5TWl4aW4oU2JiRGlzYWJsZWRNaXhpbihTYmJSZXF1aXJlZE1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oc3VwZXJDbGFzcykpKSlcbiAgICBpbXBsZW1lbnRzIFBhcnRpYWw8U2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluVHlwZT5cbiAge1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0ZXh0Ym94JztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZvcm1GaWVsZEFzc29jaWF0ZWQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogQW4gZWxlbWVudCB3aXRoIGNvbnRlbnRlZGl0YWJsZSB3aWxsIG5vdCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBUbyBhY2hpZXZlIHBhcml0eVxuICAgICAqIHdpdGggYSBuYXRpdmUgdGV4dCBpbnB1dCwgd2UgbmVlZCB0byB0cmFjayB3aGV0aGVyIGEgY2hhbmdlIGV2ZW50IHNob3VsZCBiZVxuICAgICAqIGVtaXR0ZWQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIEEgbmF0aXZlIHRleHQgaW5wdXQgYXR0ZW1wdHMgdG8gc3VibWl0IHRoZSBmb3JtIHdoZW4gcHJlc3NpbmcgRW50ZXIuXG4gICAgICogVGhpcyBjYW4gYmUgcHJldmVudGVkIGJ5IGNhbGxpbmcgcHJldmVudERlZmF1bHQgb24gdGhlIGtleWRvd24gZXZlbnQuXG4gICAgICogV2UgdHJhY2sgd2hldGhlciB0byByZXF1ZXN0IHN1Ym1pdCwgd2hpY2ggc2hvdWxkIG9jY3VyIGJlZm9yZSB0aGUga2V5dXBcbiAgICAgKiBldmVudC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zaG91bGRUcmlnZ2VyU3VibWl0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuXG4gICAgLyoqXG4gICAgICogRm9ybSB0eXBlIG9mIGVsZW1lbnQuXG4gICAgICogQGRlZmF1bHQgJ3RleHQnXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ3RleHQnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB2YWx1ZSBvZiB0aGUgaW5wdXQuIFJlZmxlY3RzIHRoZSBjdXJyZW50IHRleHQgdmFsdWUgb2YgdGhpcyBpbnB1dC5cbiAgICAgKi9cbiAgICBAcHJvcGVydHkoKVxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodmFsdWUpO1xuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSh0aGlzLl92YWx1ZSk7XG4gICAgICB9XG4gICAgICAvKiogQGludGVybmFsICovXG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdkaXNwbGF5dmFsdWVjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlID8/ICcnO1xuICAgIH1cbiAgICBwcml2YXRlIF92YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhUGxhY2Vob2xkZXIgPSB2YWx1ZSA/IHZhbHVlIDogbnVsbDtcbiAgICB9XG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicpID8/ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHN1cGVyKCk7XG4gICAgICAvLyBXZSBwcmltYXJpbHkgdXNlIGNhcHR1cmUgZXZlbnQgbGlzdGVuZXJzLCBhcyB3ZSB3YW50XG4gICAgICAvLyBvdXIgbGlzdGVuZXJzIHRvIG9jY3VyIGJlZm9yZSBjb25zdW1lciBldmVudCBsaXN0ZW5lcnMuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2lucHV0JyxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5fdmFsdWU7XG4gICAgICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9jbGVhblRleHQodGhpcy50ZXh0Q29udGVudCA/PyAnJyk7XG4gICAgICAgICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCd2YWx1ZScsIG9sZFZhbHVlKTtcbiAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKCdpbnRlcmFjdGVkJyk7XG4gICAgICAgICAgdGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2FwdHVyZTogdHJ1ZSB9LFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjaGFuZ2UnLCAoKSA9PiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSA9IGZhbHNlKSwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oXG4gICAgICAgICdrZXlkb3duJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9hc3NpZ25WYWx1ZSgnJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFdlIHByZXZlbnQgcmVjdXJzaXZlIGV2ZW50cyBieSBjaGVja2luZyB0aGUgb3JpZ2luYWwgZXZlbnQgZm9yIGlzVHJ1c3RlZFxuICAgICAgICAgIC8vIHdoaWNoIGlzIGZhbHNlIGZvciBtYW51YWxseSBkaXNwYXRjaGVkIGV2ZW50cyAod2hpY2ggd2UgZGlzcGF0Y2ggYmVsb3cpLlxuICAgICAgICAgIGlmICgoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1xcbicpICYmIGV2ZW50LmlzVHJ1c3RlZCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkVHJpZ2dlclN1Ym1pdCA9IHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgS2V5Ym9hcmRFdmVudCgna2V5ZG93bicsIGV2ZW50KSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGlzV2Via2l0ICYmXG4gICAgICAgICAgICB0aGlzLnZhbHVlICYmXG4gICAgICAgICAgICAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJyB8fCBldmVudC5rZXkgPT09ICdEZWxldGUnKSAmJlxuICAgICAgICAgICAgZXZlbnQuaXNUcnVzdGVkXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJbiBXZWJraXQgcHJlc3NpbmcgQmFja3NwYWNlIG9yIERlbGV0ZSBjb21wbGV0ZWx5IHJlbW92ZXMgYWxsIHRoZSBjb250ZW50XG4gICAgICAgICAgICAvLyBpZiBjb250ZW50ZWRpdGFibGUgaXMgc2V0IG9uIGEgd2ViIGNvbXBvbmVudCBob3N0LlxuICAgICAgICAgICAgLy8gV2UgaGF2ZSB0byByZXBsaWNhdGUgdGhlIG5vcm1hbCBkZWxldGUgYmVoYXZpb3IuXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgZXZlbnQpKSkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgICAgICBpZiAoIXNlbGVjdGVkUmFuZ2UpIHtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAhPT0gc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpIHtcbiAgICAgICAgICAgICAgLy8gSWYgYSB0ZXh0IHJhbmdlIGlzIHNlbGVjdGVkLCB0aGVuIGRlbGV0ZSB0aGlzIHJhbmdlXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCA+IDApIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBCYWNrc3BhY2UsIHdlIHNlbGVjdCB0aGUgcHJldmlvdXMgY2hhcmFjdGVyIGZyb21cbiAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGFuZCBkZWxldGUgaXQuXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2Uuc2V0U3RhcnQoc2VsZWN0ZWRSYW5nZS5zdGFydENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5zdGFydE9mZnNldCAtIDEpO1xuICAgICAgICAgICAgICBzZWxlY3RlZFJhbmdlLmRlbGV0ZUNvbnRlbnRzKCk7XG4gICAgICAgICAgICAgIHRoaXMuX2Rpc3BhdGNoSW5wdXRFdmVudCgpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0IDwgdGhpcy52YWx1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgLy8gV2hlbiBwcmVzc2luZyBEZWxldGUsIHdlIHNlbGVjdCB0aGUgbmV4dCBjaGFyYWN0ZXIgZnJvbVxuICAgICAgICAgICAgICAvLyB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gYW5kIGRlbGV0ZSBpdC5cbiAgICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRFbmQoc2VsZWN0ZWRSYW5nZS5lbmRDb250YWluZXIsIHNlbGVjdGVkUmFuZ2UuZW5kT2Zmc2V0ICsgMSk7XG4gICAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgdGhpcy5fZGlzcGF0Y2hJbnB1dEV2ZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2tleXVwJyxcbiAgICAgICAgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdcXG4nKSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9zaG91bGRUcmlnZ2VyU3VibWl0KSB7XG4gICAgICAgICAgICAgIHRoaXMuX3Nob3VsZFRyaWdnZXJTdWJtaXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtPy5yZXF1ZXN0U3VibWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGNhcHR1cmU6IHRydWUgfSxcbiAgICAgICk7XG4gICAgICAvLyBjb250ZW50ZWRpdGFibGUgYWxsb3dzIHBhc3RpbmcgcmljaCBjb250ZW50IGludG8gaXRzIGhvc3QuXG4gICAgICAvLyBXZSBwcmV2ZW50IHRoaXMgYnkgbGlzdGVuaW5nIHRvIHRoZSBwYXN0ZSBldmVudCBhbmRcbiAgICAgIC8vIGV4dHJhY3RpbmcgdGhlIHBsYWluIHRleHQgZnJvbSB0aGUgcGFzdGVkIGNvbnRlbnRcbiAgICAgIC8vIGFuZCBpbnNlcnRpbmcgaXQgaW50byB0aGUgc2VsZWN0ZWQgcmFuZ2UgKGN1cnNvciBwb3NpdGlvblxuICAgICAgLy8gb3Igc2VsZWN0aW9uKS5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdwYXN0ZScsIChlKSA9PiB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuX3JlcXVpcmVzRW1wdHlQYXRjaCgpKSB7XG4gICAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUoJycpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX2NsZWFuVGV4dChlLmNsaXBib2FyZERhdGE/LmdldERhdGEoJ3RleHQvcGxhaW4nKSA/PyAnJyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmFuZ2UgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LmdldFJhbmdlQXQoMCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8fCAhdGV4dCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdGVkUmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5pbnNlcnROb2RlKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRoaXMucHJlcGFyZVBhc3RlZFRleHQodGV4dCkpKTtcbiAgICAgICAgc2VsZWN0ZWRSYW5nZS5zZXRTdGFydChzZWxlY3RlZFJhbmdlLmVuZENvbnRhaW5lciwgc2VsZWN0ZWRSYW5nZS5lbmRPZmZzZXQpO1xuICAgICAgICB0aGlzLl9kaXNwYXRjaElucHV0RXZlbnQoKTtcbiAgICAgIH0pO1xuICAgICAgLy8gV2hlbiBmb2N1c2luZyBhIHRleHQgaW5wdXQgdmlhIGtleWJvYXJkLCB0aGUgdGV4dCBjb250ZW50IHNob3VsZCBiZSBzZWxlY3RlZC5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdmb2N1cycsICgpID0+IHtcbiAgICAgICAgaWYgKHNiYklucHV0TW9kYWxpdHlEZXRlY3Rvci5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXMgbm90IHNlZW0gdG8gd29yayBpbiBGaXJlZm94IHdpdGggcmVhZG9ubHkuXG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5zZWxlY3RBbGxDaGlsZHJlbih0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigndG91Y2hlbmQnLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSkge1xuICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcmbmJzcDsnKTtcbiAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JBdCgwKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9yZXF1aXJlc0VtcHR5UGF0Y2goKSAmJiBzYmJJbnB1dE1vZGFsaXR5RGV0ZWN0b3IubW9zdFJlY2VudE1vZGFsaXR5ID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQoMCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyBPbiBibHVyIHRoZSBuYXRpdmUgdGV4dCBpbnB1dCBzY3JvbGxzIHRoZSB0ZXh0IHRvIHRoZSBzdGFydCBvZiB0aGUgdGV4dC5cbiAgICAgIC8vIFdlIG1pbWljIHRoYXQgYnkgcmVzZXR0aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uXG4gICAgICAvLyBXZSBhbHNvIHVuc2V0IGFueSBzZWxlY3Rpb24gdG8gYWxpZ24gd2l0aCB0aGUgbmF0aXZlIHRleHQgaW5wdXQuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LihcbiAgICAgICAgJ2JsdXInLFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKCcnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fZW1pdENoYW5nZUlmTmVjZXNzYXJ5KCk7XG4gICAgICAgICAgdGhpcy5zY3JvbGxMZWZ0ID0gMDtcbiAgICAgICAgfSxcbiAgICAgICAgeyBjYXB0dXJlOiB0cnVlIH0sXG4gICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBpc0Rpc2FibGVkRXh0ZXJuYWxseSgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYU11bHRpTGluZSA9ICdmYWxzZSc7XG4gICAgICB0aGlzLl91cGRhdGVDb250ZW50ZWRpdGFibGUoKTtcblxuICAgICAgLy8gV2Ugd2FudCB0byByZXBsYWNlIGFueSBjb250ZW50IGJ5IGp1c3QgdGhlIHRleHQgY29udGVudC5cbiAgICAgIHRoaXMuX2Fzc2lnblZhbHVlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgICBzdXBlci5mb2N1cyhvcHRpb25zKTtcbiAgICAgIC8vIEJ5IGRlZmF1bHQsIHdoZW4gY2FsbGluZyBmb2N1cyBvbiBhbiBpbnB1dCBlbGVtZW50LCB0aGUgY3Vyc29yIGlzIHBsYWNlZFxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgdGV4dC4gSG93ZXZlciwgd2l0aCBjb250ZW50ZWRpdGFibGUsIHRoZSBjdXJzb3JcbiAgICAgIC8vIGlzIHBsYWNlZCBhdCB0aGUgYmVnaW5uaW5nLCBzbyB3ZSBtb3ZlIGl0IHRvIHRoZSBlbmQsIGlmIHRoYXQgaXMgdGhlIGNhc2UuXG4gICAgICBpZiAodGhpcy5fY2FuU2VsZWN0KCkpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByYW5nZSA9IHNlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCA/IHNlbGVjdGlvbi5nZXRSYW5nZUF0KDApIDogbnVsbDtcbiAgICAgICAgaWYgKHJhbmdlICYmIHJhbmdlLnN0YXJ0T2Zmc2V0ICE9PSAwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0Q3Vyc29yQXQodGhpcy50ZXh0Q29udGVudCEubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgb2xkOiBzdHJpbmcgfCBudWxsLFxuICAgICAgdmFsdWU6IHN0cmluZyB8IG51bGwsXG4gICAgKTogdm9pZCB7XG4gICAgICAvKipcbiAgICAgICAqIFRoZSBuYXRpdmUgdGV4dCBpbnB1dCBjaGFuZ2VzIHRoZSB2YWx1ZSBwcm9wZXJ0eSB3aGVuIHRoZSB2YWx1ZSBhdHRyaWJ1dGUgaXNcbiAgICAgICAqIGNoYW5nZWQgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IG5vIGlucHV0IGV2ZW50IGhhcyBvY2N1cnJlZCBzaW5jZSBjcmVhdGlvblxuICAgICAgICogb3IgdGhlIGxhc3QgZm9ybSByZXNldC5cbiAgICAgICAqL1xuICAgICAgaWYgKG5hbWUgIT09ICd2YWx1ZScgfHwgIXRoaXMubWF0Y2hlcz8uKCc6c3RhdGUoaW50ZXJhY3RlZCknKSkge1xuICAgICAgICBzdXBlci5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sobmFtZSwgb2xkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBmb3JtIGlzIGJlaW5nIHJlc2V0LlxuICAgICAqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGZvcm1SZXNldENhbGxiYWNrKCk6IHZvaWQge1xuICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnaW50ZXJhY3RlZCcpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpID8/ICcnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBDYWxsZWQgd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gcmVzdG9yZSBlbGVtZW504oCZcyBzdGF0ZSB0byBzdGF0ZSBpbiB3aGljaCBjYXNlXG4gICAgICogIHJlYXNvbiBpcyBcInJlc3RvcmVcIiwgb3Igd2hlbiB0aGUgYnJvd3NlciBpcyB0cnlpbmcgdG8gZnVsZmlsbCBhdXRvZmlsbCBvbiBiZWhhbGYgb2ZcbiAgICAgKiAgdXNlciBpbiB3aGljaCBjYXNlIHJlYXNvbiBpcyBcImF1dG9jb21wbGV0ZVwiLlxuICAgICAqICBJbiB0aGUgY2FzZSBvZiBcInJlc3RvcmVcIiwgc3RhdGUgaXMgYSBzdHJpbmcsIEZpbGUsIG9yIEZvcm1EYXRhIG9iamVjdFxuICAgICAqICBwcmV2aW91c2x5IHNldCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50IHRvIHNldEZvcm1WYWx1ZS5cbiAgICAgKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvdmVycmlkZSBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgICBfcmVhc29uOiBGb3JtUmVzdG9yZVJlYXNvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIGlmIChzdGF0ZSAmJiB0eXBlb2Ygc3RhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBzdGF0ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYWtlcyB0aGUgc2VsZWN0aW9uIGVxdWFsIHRvIHRoZSBjdXJyZW50IG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MSW5wdXRFbGVtZW50L3NlbGVjdFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk/LnNlbGVjdEFsbENoaWxkcmVuKHRoaXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgICAvLyBJZiB0aGUgdmFsdWUgd2FzIGFzc2lnbmVkIGJlZm9yZSBmaXJzdFVwZGF0ZSwgd2UgaGF2ZSB0b1xuICAgICAgLy8gd3JpdGUgaXQgdGhlIGRvY3VtZW50IHRvIGJlIHZpc3VhbGx5IHNlZW5cbiAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLmlubmVySFRNTC5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fYXNzaWduVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHJlcXVlc3RVcGRhdGUoXG4gICAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgICBvcHRpb25zPzogUHJvcGVydHlEZWNsYXJhdGlvbixcbiAgICApOiB2b2lkIHtcbiAgICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkICYmXG4gICAgICAgIChuYW1lID09PSAnZGlzYWJsZWQnIHx8IG5hbWUgPT09ICdmb3JtRGlzYWJsZWQnIHx8IG5hbWUgPT09ICdyZWFkT25seScpXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udGVudGVkaXRhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHNob3VsZFZhbGlkYXRlKG5hbWU6IFByb3BlcnR5S2V5IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHwgbmFtZSA9PT0gJ3ZhbHVlJyB8fCBuYW1lID09PSAncmVxdWlyZWQnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJywgaTE4bklucHV0UmVxdWlyZWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHByZXBhcmVQYXN0ZWRUZXh0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGV4dDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlc0VtcHR5UGF0Y2goKTogYm9vbGVhbiB7XG4gICAgICAvLyBJbiBCbGluaywgYSBjb250ZW50ZWRpdGFibGUgZWxlbWVudCB3aXRoIGVtcHR5IGNvbnRlbnQgd2lsbCBjcmFzaFxuICAgICAgLy8gdXBvbiByZWNlaXZpbmcgZm9jdXMsIHdoZW4gaW4gTW9iaWxlIG1vZGUuXG4gICAgICAvLyBUbyBwcmV2ZW50IHRoaXMsIHdlIHBhdGNoIHRoZSBlbXB0eSBzdGF0ZSBieSBpbnNlcnRpbmcgYSBub24tYnJlYWtpbmcgc3BhY2UuXG4gICAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IGlzQmxpbmsgJiYgdGhpcy52YWx1ZSA9PT0gJycgJiYgd2luZG93Lm1hdGNoTWVkaWEoU2JiTWVkaWFRdWVyeVBvaW50ZXJDb2Fyc2UpLm1hdGNoZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXNzaWduVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgdGhpcy5pbm5lckhUTUwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDdXJzb3JBdChwb3NpdGlvbjogbnVtYmVyKTogdm9pZCB7XG4gICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHJhbmdlLnNldFN0YXJ0KHRoaXMuZmlyc3RDaGlsZCEsIHBvc2l0aW9uKTtcbiAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbGVhblRleHQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAvLyBUaGUgbmF0aXZlIHRleHQgaW5wdXQgcmVtb3ZlcyBhbGwgbmV3bGluZSBjaGFyYWN0ZXJzIGlmIHBhc3NlZCB0byB0aGUgdmFsdWUgcHJvcGVydHlcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCA/ICcnIDogYCR7dmFsdWV9YC5yZXBsYWNlKC9bXFxuXFxyXSsvZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc3BhdGNoSW5wdXRFdmVudCgpOiB2b2lkIHtcbiAgICAgIC8qKiBUaGUgaW5wdXQgZXZlbnQgZmlyZXMgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBhcyBhIGRpcmVjdCByZXN1bHQgb2YgYSB1c2VyIGFjdGlvbi4gKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICB9XG5cbiAgICBAZXZlbnRPcHRpb25zKHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgIHByaXZhdGUgX2NsZWFuQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5jaGlsZEVsZW1lbnRDb3VudCkge1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5jaGlsZHJlbikge1xuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVDb250ZW50ZWRpdGFibGUoKTogdm9pZCB7XG4gICAgICBpZiAoIWlzU2VydmVyICYmIHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYVJlYWRPbmx5ID0gdGhpcy5yZWFkT25seSA/ICd0cnVlJyA6IG51bGw7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsO1xuICAgICAgICAvLyBUT0RPKDIwMjYpOiBGaXJlZm94IHN1cHBvcnRzIHBsYWludGV4dC1vbmx5IHNpbmNlIHZlcnNpb24gMTM2IChNYXJjaCAyMDI1KS5cbiAgICAgICAgLy8gVW50aWwgdGhpcyBpcyBwYXJ0IG9mIG91ciBiYXNlbGluZSwgd2Ugc2hvdWxkIGZlYXR1cmUgY2hlY2sgdG8gZW5hYmxlIGl0LlxuICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRPbmx5XG4gICAgICAgICAgICA/ICdmYWxzZSdcbiAgICAgICAgICAgIDogcGxhaW50ZXh0T25seVN1cHBvcnRlZFxuICAgICAgICAgICAgICA/ICdwbGFpbnRleHQtb25seSdcbiAgICAgICAgICAgICAgOiAndHJ1ZSc7XG4gICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCB2YWx1ZSk7XG4gICAgICAgIC8vIEluIHRoZSByZWFkb25seSBjYXNlLCB3ZSBkaXNhYmxlIGNvbnRlbnRlZGl0YWJsZSwgYnV0IGl0IHN0aWxsXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIGZvY3VzYWJsZS4gV2UgYWNoaWV2ZSB0aGlzIGJ5IHNldHRpbmcgdGFiaW5kZXggaW4gdGhhdCBjYXNlLlxuICAgICAgICBpZiAodGhpcy5yZWFkT25seSkge1xuICAgICAgICAgIHRoaXMuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICcwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9lbWl0Q2hhbmdlSWZOZWNlc3NhcnkoKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5fc2hvdWxkRW1pdENoYW5nZSkge1xuICAgICAgICB0aGlzLl9zaG91bGRFbWl0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIC8qKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS4gVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWQgZm9yIGVhY2ggYWx0ZXJhdGlvbiB0byBhbiBlbGVtZW50J3MgdmFsdWUuICovXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2FuU2VsZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuICFpc1NlcnZlciAmJiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSAmJiAhIXRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiB1bmtub3duIHtcbiAgICAgIHJldHVybiBodG1sYDxzbG90IEBzbG90Y2hhbmdlPSR7dGhpcy5fY2xlYW5DaGlsZHJlbn0+PC9zbG90PmA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNiYkZvcm1Bc3NvY2lhdGVkSW5wdXRFbGVtZW50IGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFtREEsSUFBTSxrQ0FBMEM7QUFDOUMsS0FBSSxTQUNGLFFBQU87Q0FHVCxNQUFNLE1BQU0sU0FBUyxjQUFjLE1BQU07QUFDekMsS0FBSSxhQUFhLG1CQUFtQixpQkFBaUI7QUFJckQsUUFBTyxJQUFJLG9CQUFvQjs7QUFFakMsSUFBTSx5QkFBeUIsMkJBQTJCOzs7O0FBTTFELElBQWEsK0JBR1gsZUFDNEQ7QUErWjVELGVBOVo0QztvQkFDbEMsaUJBQWlCLGlCQUFpQixpQkFBaUIsdUJBQXVCLFdBQVcsQ0FBQyxDQUFDLENBQUM7Ozs7O2VBRG5GLHNDQUNMLFlBQXdGOzs7NkJBaUMvRixVQUFVLENBQUE7bUNBY1YsU0FBUyxFQUFFLFdBQVcsT0FBTyxDQUFDLENBQUE7a0NBNlQ5QixhQUFhLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTtBQTFVaEMsaUJBQUEsTUFBQSxNQUFBLHVCQUFBO0tBQUEsTUFBQTtLQUFBLE1BQUE7S0FBQSxRQUFBO0tBQUEsU0FBQTtLQUFBLFFBQUE7TUFBQSxNQUFBLFFBQUEsV0FBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxRQUFLOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQWNoQixpQkFBQSxNQUFBLE1BQUEsNkJBQUE7S0FBQSxNQUFBO0tBQUEsTUFBQTtLQUFBLFFBQUE7S0FBQSxTQUFBO0tBQUEsUUFBQTtNQUFBLE1BQUEsUUFBQSxpQkFBQTtNQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsV0FBVyxjQUFXOztNQUFBO0tBQUEsVUFBQTtLQUFBLEVBQUEsTUFBQSwyQkFBQTtBQTZUdEIsaUJBQUEsTUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"named-slot-list-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/named-slot-list-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGnG,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EAEtB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK5D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,EACtC,CAAC,SAAS,WAAW,GAAG,WAAW,IACjC,CAAC,GAAG;IAAE,YAAY,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC;AAE9B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,yBAAyB,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,UAAU;IAC/F,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC,UAAU,CAClB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,EACD,kBAAkB,CAAC,EAAE;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;KAChC,GACA,cAAc;IACjB,SAAS,CAAC,eAAe,IAAI,sBAAsB,EAAE;IACrD,SAAS,CAAC,gBAAgB,IAAI,cAAc;CAC7C;AAGD,eAAO,MAAM,qBAAqB,GAChC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,GAAG,qBAAqB,EAEjE,YAAY,CAAC,KACZ,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"named-slot-list-mixin.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/mixins/named-slot-list-mixin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGnG,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EAEtB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK5D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,CAC1B,CAAC,SAAS,yBAAyB,CAAC,CAAC,CAAC,EACtC,CAAC,SAAS,WAAW,GAAG,WAAW,IACjC,CAAC,GAAG;IAAE,YAAY,EAAE,CAAC,EAAE,CAAA;CAAE,CAAC;AAE9B,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,yBAAyB,CAAC,CAAC,SAAS,WAAW,CAAE,SAAQ,UAAU;IAC/F,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC1D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,CAAC;IACrC,SAAS,CAAC,UAAU,CAClB,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,EACD,kBAAkB,CAAC,EAAE;QACnB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;KAChC,GACA,cAAc;IACjB,SAAS,CAAC,eAAe,IAAI,sBAAsB,EAAE;IACrD,SAAS,CAAC,gBAAgB,IAAI,cAAc;CAC7C;AAGD,eAAO,MAAM,qBAAqB,GAChC,CAAC,SAAS,WAAW,EACrB,CAAC,SAAS,mBAAmB,CAAC,UAAU,CAAC,GAAG,qBAAqB,EAEjE,YAAY,CAAC,KACZ,mBAAmB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,GAAG,CAmJtD,CAAC"}
|