w-component-vue 2.4.13 → 2.4.15
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/.github/workflows/ci-test.yml +1 -1
- package/README.md +1 -5
- package/dist/w-component-vue.umd.js +8 -8
- package/dist/w-component-vue.umd.js.map +1 -1
- package/docs/binarySearch.mjs.html +1 -1
- package/docs/convertColor.mjs.html +1 -1
- package/docs/examples/app.html +1 -1
- package/docs/examples/app.umd.js +8 -8
- package/docs/examples/app.umd.js.map +1 -1
- package/docs/examples/w-aggrid-vue-dyn_defCellEditable.html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_kpCellEditable_kpRowStyle.html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_kpHeadTooltip_kpCellTooltip.html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_large data (1,000,000 items).html +1 -1
- package/docs/examples/w-aggrid-vue-dyn_simple data.html +1 -1
- package/docs/examples/w-alert_backgroundColor.html +1 -1
- package/docs/examples/w-alert_borderColor.html +1 -1
- package/docs/examples/w-alert_borderRadius.html +1 -1
- package/docs/examples/w-alert_borderWidth.html +1 -1
- package/docs/examples/w-alert_default.html +1 -1
- package/docs/examples/w-alert_icon.html +1 -1
- package/docs/examples/w-alert_position.html +1 -1
- package/docs/examples/w-alert_recive closed event by promise.html +1 -1
- package/docs/examples/w-alert_shadowStyle.html +1 -1
- package/docs/examples/w-alert_textColor.html +1 -1
- package/docs/examples/w-alert_time (6s).html +1 -1
- package/docs/examples/w-alert_type error.html +1 -1
- package/docs/examples/w-alert_type infor.html +1 -1
- package/docs/examples/w-alert_type warning.html +1 -1
- package/docs/examples/w-badge_backgroundColor.html +1 -1
- package/docs/examples/w-badge_badgeAlign.html +1 -1
- package/docs/examples/w-badge_borderColor_textColor_backgroundColor.html +1 -1
- package/docs/examples/w-badge_borderRadius.html +1 -1
- package/docs/examples/w-badge_default.html +1 -1
- package/docs/examples/w-badge_textColor_backgroundColor.html +1 -1
- package/docs/examples/w-badge_textFontSize.html +1 -1
- package/docs/examples/w-button-chip_active_backgroundColorActive.html +1 -1
- package/docs/examples/w-button-chip_active_borderColorActive.html +1 -1
- package/docs/examples/w-button-chip_active_iconColorActive.html +1 -1
- package/docs/examples/w-button-chip_active_no shadow_no shadowActive.html +1 -1
- package/docs/examples/w-button-chip_active_shadowActiveStyle.html +1 -1
- package/docs/examples/w-button-chip_active_textColorActive.html +1 -1
- package/docs/examples/w-button-chip_backgroundColor_backgroundColorHover.html +1 -1
- package/docs/examples/w-button-chip_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-button-chip_borderRadius.html +1 -1
- package/docs/examples/w-button-chip_borderRadiusStyle.html +1 -1
- package/docs/examples/w-button-chip_borderRadiusStyle_borderWidth_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-button-chip_borderWidth.html +1 -1
- package/docs/examples/w-button-chip_close.html +1 -1
- package/docs/examples/w-button-chip_close_shiftRight.html +1 -1
- package/docs/examples/w-button-chip_default.html +1 -1
- package/docs/examples/w-button-chip_icon (fontawesome).html +1 -1
- package/docs/examples/w-button-chip_icon (material).html +1 -1
- package/docs/examples/w-button-chip_icon_iconColor_iconColorHover_close.html +1 -1
- package/docs/examples/w-button-chip_icon_no text.html +1 -1
- package/docs/examples/w-button-chip_loading.html +1 -1
- package/docs/examples/w-button-chip_loading_loadingColor.html +1 -1
- package/docs/examples/w-button-chip_loading_textColor_textColorHover.html +1 -1
- package/docs/examples/w-button-chip_modify loading by callback in click.html +1 -1
- package/docs/examples/w-button-chip_modify prog by callback in click.html +1 -1
- package/docs/examples/w-button-chip_no shadow.html +1 -1
- package/docs/examples/w-button-chip_not editable.html +1 -1
- package/docs/examples/w-button-chip_not editable_disabledColor.html +1 -1
- package/docs/examples/w-button-chip_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-button-chip_paddingStyle (thin style).html +1 -1
- package/docs/examples/w-button-chip_paddingStyle_icon_iconSize_textFontSize.html +1 -1
- package/docs/examples/w-button-chip_prog.html +1 -1
- package/docs/examples/w-button-chip_prog_progColor_progBackgroundColor.html +1 -1
- package/docs/examples/w-button-chip_promiseUnlock.html +1 -1
- package/docs/examples/w-button-chip_rippleColor.html +1 -1
- package/docs/examples/w-button-chip_shadowStyle.html +1 -1
- package/docs/examples/w-button-chip_shiftLeft.html +1 -1
- package/docs/examples/w-button-chip_slot_close.html +1 -1
- package/docs/examples/w-button-chip_textColor.html +1 -1
- package/docs/examples/w-button-chip_textColor_textColorHover.html +1 -1
- package/docs/examples/w-button-chip_tooltip.html +1 -1
- package/docs/examples/w-button-chip_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-button-chip_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-button-chip_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-button-chip_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-button-circle_active_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-button-circle_active_borderWidth_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-button-circle_active_iconColor_iconColorHover_iconColorFocus.html +1 -1
- package/docs/examples/w-button-circle_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-button-circle_borderRadius.html +1 -1
- package/docs/examples/w-button-circle_borderRadiusStyle(horizontal btns).html +1 -1
- package/docs/examples/w-button-circle_borderRadiusStyle(vertical btns).html +1 -1
- package/docs/examples/w-button-circle_borderWidth_borderColor_borderColorHover_borderColorFocus.html +1 -1
- package/docs/examples/w-button-circle_icon (fontawesome).html +1 -1
- package/docs/examples/w-button-circle_icon (material).html +1 -1
- package/docs/examples/w-button-circle_iconColor_iconColorHover_iconColorFocus.html +1 -1
- package/docs/examples/w-button-circle_loading.html +1 -1
- package/docs/examples/w-button-circle_loading_loadingColor.html +1 -1
- package/docs/examples/w-button-circle_no shadow.html +1 -1
- package/docs/examples/w-button-circle_not editable.html +1 -1
- package/docs/examples/w-button-circle_not editable_disabledColor.html +1 -1
- package/docs/examples/w-button-circle_paddingStyle.html +1 -1
- package/docs/examples/w-button-circle_paddingStyle_iconSize.html +1 -1
- package/docs/examples/w-button-circle_promiseUnlock.html +1 -1
- package/docs/examples/w-button-circle_rippleColor.html +1 -1
- package/docs/examples/w-button-circle_shadowStyle.html +1 -1
- package/docs/examples/w-button-circle_tooltip.html +1 -1
- package/docs/examples/w-button-circle_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-button-circle_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-button-circle_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-button-circle_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-checkbox_checkedIconColor_checkedIconColorHover_uncheckedIconColor_uncheckedIconColorHover.html +1 -1
- package/docs/examples/w-checkbox_checkedIcon_uncheckedIcon.html +1 -1
- package/docs/examples/w-checkbox_default.html +1 -1
- package/docs/examples/w-checkbox_iconSize_textFontSize.html +1 -1
- package/docs/examples/w-checkbox_not editable.html +1 -1
- package/docs/examples/w-checkbox_not editable_checkedIconColorDisabled_uncheckedIconColorDisabled.html +1 -1
- package/docs/examples/w-checkbox_slot.html +1 -1
- package/docs/examples/w-checkbox_text.html +1 -1
- package/docs/examples/w-checkbox_text_textColor_textColorHover.html +1 -1
- package/docs/examples/w-checkbox_use string (y or n).html +1 -1
- package/docs/examples/w-ckeditor-vue-dyn_default.html +1 -1
- package/docs/examples/w-ckeditor-vue-dyn_height.html +1 -1
- package/docs/examples/w-ckeditor-vue-dyn_not editable.html +1 -1
- package/docs/examples/w-ckeditor-vue-dyn_settings.html +1 -1
- package/docs/examples/w-color-pick-alpha_color.html +1 -1
- package/docs/examples/w-color-pick-alpha_cursorSize.html +1 -1
- package/docs/examples/w-color-pick-alpha_default.html +1 -1
- package/docs/examples/w-color-pick-alpha_width_height.html +1 -1
- package/docs/examples/w-color-pick-hexagon-gray_default.html +1 -1
- package/docs/examples/w-color-pick-hexagon-gray_size.html +1 -1
- package/docs/examples/w-color-pick-hexagon-gray_space.html +1 -1
- package/docs/examples/w-color-pick-hexagon_default.html +1 -1
- package/docs/examples/w-color-pick-hexagon_size.html +1 -1
- package/docs/examples/w-color-pick-hsv_color.html +1 -1
- package/docs/examples/w-color-pick-hsv_cursorSize.html +1 -1
- package/docs/examples/w-color-pick-hsv_default.html +1 -1
- package/docs/examples/w-color-pick-hsv_width_height.html +1 -1
- package/docs/examples/w-color-pick-hue_cursorSize.html +1 -1
- package/docs/examples/w-color-pick-hue_default.html +1 -1
- package/docs/examples/w-color-pick-hue_width_height.html +1 -1
- package/docs/examples/w-color-pick-stripe_colorLeft_colorRight.html +1 -1
- package/docs/examples/w-color-pick-stripe_colorNum.html +1 -1
- package/docs/examples/w-color-pick-stripe_default.html +1 -1
- package/docs/examples/w-color-pick-stripe_width_height.html +1 -1
- package/docs/examples/w-color-select-input_barProgColor_barProgBackgroundColor_barSliderBackgroundColor_barSliderBackgroundColorHover.html +1 -1
- package/docs/examples/w-color-select-input_barProgHeight.html +1 -1
- package/docs/examples/w-color-select-input_barSliderSize.html +1 -1
- package/docs/examples/w-color-select-input_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-color-select-input_default.html +1 -1
- package/docs/examples/w-color-select-input_inputBackgroundColor_inputBackgroundColorHover_inputBackgroundColorActive.html +1 -1
- package/docs/examples/w-color-select-input_inputBorderColor_inputBorderColorHover_inputBorderColorActive.html +1 -1
- package/docs/examples/w-color-select-input_inputBorderRadius.html +1 -1
- package/docs/examples/w-color-select-input_inputLabelColor.html +1 -1
- package/docs/examples/w-color-select-input_inputLabelWidth_inputLabelFontSize.html +1 -1
- package/docs/examples/w-color-select-input_inputTextColor.html +1 -1
- package/docs/examples/w-color-select-input_inputTextFontSize_inputTextWidth_inputTextHeight.html +1 -1
- package/docs/examples/w-color-select-input_menuBackgroundColor_menuBackgroundColorHover_menuBackgroundColorActive.html +1 -1
- package/docs/examples/w-color-select-input_menuBorderRadius.html +1 -1
- package/docs/examples/w-color-select-input_menuBorderRadius_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-color-select-input_menuTextColor_menuTextColorHover_menuTextColorActive.html +1 -1
- package/docs/examples/w-color-select-input_menuTextFontSize.html +1 -1
- package/docs/examples/w-color-select-input_size.html +1 -1
- package/docs/examples/w-color-select-panel-block_default.html +1 -1
- package/docs/examples/w-color-select-panel-block_size.html +1 -1
- package/docs/examples/w-color-select-panel-block_spaceGray_spaceAlpha.html +1 -1
- package/docs/examples/w-color-select-panel-hsva_default.html +1 -1
- package/docs/examples/w-color-select-panel-hsva_size.html +1 -1
- package/docs/examples/w-color-select-panel-hsva_space.html +1 -1
- package/docs/examples/w-color-select-panel_backgroundColor.html +1 -1
- package/docs/examples/w-color-select-panel_default.html +1 -1
- package/docs/examples/w-color-select-panel_size.html +1 -1
- package/docs/examples/w-color-select-panel_space.html +1 -1
- package/docs/examples/w-color-select-panel_type.html +1 -1
- package/docs/examples/w-color-select_barProgColor_barProgBackgroundColor_barSliderBackgroundColor_barSliderBackgroundColorHover.html +1 -1
- package/docs/examples/w-color-select_barProgHeight.html +1 -1
- package/docs/examples/w-color-select_barSliderSize.html +1 -1
- package/docs/examples/w-color-select_btnBackgroundColor_btnBackgroundColorHover_btnBackgroundColorActive.html +1 -1
- package/docs/examples/w-color-select_btnBorderRadius.html +1 -1
- package/docs/examples/w-color-select_btnPaddingStyle.html +1 -1
- package/docs/examples/w-color-select_btnText.html +1 -1
- package/docs/examples/w-color-select_btnTextColor_btnTextColorHover_btnTextColorActive.html +1 -1
- package/docs/examples/w-color-select_btnTextFontSize.html +1 -1
- package/docs/examples/w-color-select_colorBlockBorderColor.html +1 -1
- package/docs/examples/w-color-select_colorBlockBorderColor_colorTextColor_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-color-select_colorBlockBorderWidth.html +1 -1
- package/docs/examples/w-color-select_colorBlockSize.html +1 -1
- package/docs/examples/w-color-select_colorTextColor.html +1 -1
- package/docs/examples/w-color-select_colorTextFontSize.html +1 -1
- package/docs/examples/w-color-select_default.html +1 -1
- package/docs/examples/w-color-select_inputBackgroundColor_inputBackgroundColorHover_inputBackgroundColorActive.html +1 -1
- package/docs/examples/w-color-select_inputBorderColor_inputBorderColorHover_inputBorderColorActive.html +1 -1
- package/docs/examples/w-color-select_inputBorderRadius.html +1 -1
- package/docs/examples/w-color-select_inputLabelColor.html +1 -1
- package/docs/examples/w-color-select_inputLabelWidth_inputLabelFontSize.html +1 -1
- package/docs/examples/w-color-select_inputTextColor.html +1 -1
- package/docs/examples/w-color-select_inputTextFontSize_inputTextWidth_inputTextHeight.html +1 -1
- package/docs/examples/w-color-select_menuBackgroundColor_menuBackgroundColorHover_menuBackgroundColorActive.html +1 -1
- package/docs/examples/w-color-select_menuBorderRadius.html +1 -1
- package/docs/examples/w-color-select_menuIconColor_menuIconColorHover_menuIconColorActive.html +1 -1
- package/docs/examples/w-color-select_menuIconLump_menuIconHsva_menuIconEyeDropper.html +1 -1
- package/docs/examples/w-color-select_menuIconSize.html +1 -1
- package/docs/examples/w-color-select_menuTextColor_menuTextColorHover_menuTextColorActive.html +1 -1
- package/docs/examples/w-color-select_menuTextFontSize.html +1 -1
- package/docs/examples/w-color-select_not editable.html +1 -1
- package/docs/examples/w-color-select_panelBackgroundColor.html +1 -1
- package/docs/examples/w-color-select_showColorText.html +1 -1
- package/docs/examples/w-color-select_size.html +1 -1
- package/docs/examples/w-color-select_toolBackgroundColor.html +1 -1
- package/docs/examples/w-confirm_contentColor_contentIconColor_contentBackgroundColor.html +1 -1
- package/docs/examples/w-confirm_contentIcon (fontawesome).html +1 -1
- package/docs/examples/w-confirm_contentIconColor.html +1 -1
- package/docs/examples/w-confirm_contentIconSize.html +1 -1
- package/docs/examples/w-confirm_hasNoBtn_yesBtnText.html +1 -1
- package/docs/examples/w-confirm_maxWidth.html +1 -1
- package/docs/examples/w-confirm_noBtnTextColor_noBtnTextColorHover_noBtnBackgroundColor_noBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-confirm_noBtnText_yesBtnText.html +1 -1
- package/docs/examples/w-confirm_scrollable (slot content).html +1 -1
- package/docs/examples/w-confirm_scrollable.html +1 -1
- package/docs/examples/w-confirm_slot content.html +1 -1
- package/docs/examples/w-confirm_slot footer.html +1 -1
- package/docs/examples/w-confirm_slot header.html +1 -1
- package/docs/examples/w-confirm_titleColor_headerBackgroundColor_footerBackgroundColor.html +1 -1
- package/docs/examples/w-confirm_title_content.html +1 -1
- package/docs/examples/w-dialog_closeWithInterceptor.html +1 -1
- package/docs/examples/w-dialog_contentTextColor_contentBackgroundColor.html +1 -1
- package/docs/examples/w-dialog_dialogZIndex.html +1 -1
- package/docs/examples/w-dialog_fullscreen.html +1 -1
- package/docs/examples/w-dialog_hasSaveBtn (no save button).html +1 -1
- package/docs/examples/w-dialog_hasSaveBtn_hasCloseBtn_isModal (no save and close button).html +1 -1
- package/docs/examples/w-dialog_headerBackgroundColor.html +1 -1
- package/docs/examples/w-dialog_headerBtns.html +1 -1
- package/docs/examples/w-dialog_headerShadow (no shadow).html +1 -1
- package/docs/examples/w-dialog_headerShadowStyle.html +1 -1
- package/docs/examples/w-dialog_icon (fontawesome).html +1 -1
- package/docs/examples/w-dialog_isModal (not persistent).html +1 -1
- package/docs/examples/w-dialog_long title.html +1 -1
- package/docs/examples/w-dialog_maxWidth (narrow width).html +1 -1
- package/docs/examples/w-dialog_multi dialogs.html +1 -1
- package/docs/examples/w-dialog_panelBorderRadius.html +1 -1
- package/docs/examples/w-dialog_panelShadow (no shadow).html +1 -1
- package/docs/examples/w-dialog_panelShadowStyle.html +1 -1
- package/docs/examples/w-dialog_saveBtnTooltip_closeBtnTooltip.html +1 -1
- package/docs/examples/w-dialog_scrollable.html +1 -1
- package/docs/examples/w-dialog_slot content (separate line).html +1 -1
- package/docs/examples/w-dialog_slot content (table).html +1 -1
- package/docs/examples/w-dialog_slot content.html +1 -1
- package/docs/examples/w-dialog_slot header-left_header-right.html +1 -1
- package/docs/examples/w-dialog_slot panel.html +1 -1
- package/docs/examples/w-dialog_title.html +1 -1
- package/docs/examples/w-dialog_titleColor_headerIconColor_headerBackgroundColor.html +1 -1
- package/docs/examples/w-drawer_afloat.html +1 -1
- package/docs/examples/w-drawer_afloat_afloatByFix.html +1 -1
- package/docs/examples/w-drawer_afloat_afloatByFix_dragDrawerWidth.html +1 -1
- package/docs/examples/w-drawer_afloat_afloatByFix_mode.html +1 -1
- package/docs/examples/w-drawer_afloat_afloatByFix_mode_dragDrawerWidth.html +1 -1
- package/docs/examples/w-drawer_afloat_dragDrawerWidth.html +1 -1
- package/docs/examples/w-drawer_afloat_dragDrawerWidth_drawerWidthMin_drawerWidthMax.html +1 -1
- package/docs/examples/w-drawer_afloat_mode.html +1 -1
- package/docs/examples/w-drawer_afloat_mode_dragDrawerWidth.html +1 -1
- package/docs/examples/w-drawer_afloat_mode_dragDrawerWidth_drawerWidthMin.html +1 -1
- package/docs/examples/w-drawer_afloat_overlayOpacity.html +1 -1
- package/docs/examples/w-drawer_autoSwitchToFloat_switchWidth_afloat.html +1 -1
- package/docs/examples/w-drawer_autoSwitchToHide_switchWidth.html +1 -1
- package/docs/examples/w-drawer_autoSwitchToShow_switchWidth.html +1 -1
- package/docs/examples/w-drawer_default.html +1 -1
- package/docs/examples/w-drawer_dragDrawerWidth_drawerBarBorderColor_drawerBarBorderSize.html +1 -1
- package/docs/examples/w-drawer_dragDrawerWidth_drawerBarColor_drawerBarSize.html +1 -1
- package/docs/examples/w-drawer_dragDrawerWidth_drawerWidth(sync).html +1 -1
- package/docs/examples/w-drawer_dragDrawerWidth_drawerWidthMin_drawerWidthMax.html +1 -1
- package/docs/examples/w-drawer_drawerWidth.html +1 -1
- package/docs/examples/w-drawer_mode.html +1 -1
- package/docs/examples/w-drawer_mode_dragDrawerWidth.html +1 -1
- package/docs/examples/w-drawer_multiple_dragDrawerWidth_drawerWidthMin_drawerWidthMax.html +1 -1
- package/docs/examples/w-dropfiles_backgroundColor_backgroundColorDropIn_backgroundColorHover.html +1 -1
- package/docs/examples/w-dropfiles_borderColor_borderColorDropIn_borderColorHover_backgroundColorDropIn.html +1 -1
- package/docs/examples/w-dropfiles_borderRadius.html +1 -1
- package/docs/examples/w-dropfiles_borderWidth.html +1 -1
- package/docs/examples/w-dropfiles_default.html +1 -1
- package/docs/examples/w-dropfiles_timeTransition.html +1 -1
- package/docs/examples/w-dynamic-list_change rows.html +1 -1
- package/docs/examples/w-dynamic-list_change slot.html +1 -1
- package/docs/examples/w-dynamic-list_default.html +1 -1
- package/docs/examples/w-dynamic-list_filterKeywords_noResultsText.html +1 -1
- package/docs/examples/w-dynamic-list_large data (1,000,000 items).html +1 -1
- package/docs/examples/w-dynamic-list_processItems.html +1 -1
- package/docs/examples/w-dynamic-list_render.html +1 -1
- package/docs/examples/w-dynamic-list_slot item with image.html +1 -1
- package/docs/examples/w-dynamic-list_viewHeightMax.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_area.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_bar3D.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_continuous.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_heatmap.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_line.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_line3D.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_parallel.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_polar heatmap.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_polar.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_radar.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_scatter.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_stack.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_surface.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_tree.html +1 -1
- package/docs/examples/w-echarts-vue-dyn_treemap.html +1 -1
- package/docs/examples/w-explorer_bindRoot.html +1 -1
- package/docs/examples/w-explorer_btnDisplayTreeBackgroundColor_btnDisplayTreeBackgroundColorHover_btnDisplayTreeBackgroundColorFocus.html +1 -1
- package/docs/examples/w-explorer_btnDisplayTreeIconColor_btnDisplayTreeIconColorHover_btnDisplayTreeIconColorFocus.html +1 -1
- package/docs/examples/w-explorer_btnDisplayTreeIconShow_btnDisplayTreeIconHide_btnDisplayTreeIconSize.html +1 -1
- package/docs/examples/w-explorer_dark mode.html +1 -1
- package/docs/examples/w-explorer_default.html +1 -1
- package/docs/examples/w-explorer_defaultShowTreeFirst.html +1 -1
- package/docs/examples/w-explorer_defaultShowTreeFirst_noSelectedText.html +1 -1
- package/docs/examples/w-explorer_draggable.html +1 -1
- package/docs/examples/w-explorer_draggable_dgInsertLineColor_dgInsertBackgroundColor_dgBelongBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_draggable_dgPreviewOpacity_dgPreviewBorderWidth_dgBelongBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_draggable_dgTextDisabled_dgTextDisabledColor_dgTextDisabledPaddingLeft.html +1 -1
- package/docs/examples/w-explorer_events.html +1 -1
- package/docs/examples/w-explorer_funSortTree.html +1 -1
- package/docs/examples/w-explorer_lineBetweenPathAndListWidth_lineBetweenPathAndListColor.html +1 -1
- package/docs/examples/w-explorer_listBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_listFolderIcon_listFileIcon_listIconSize.html +1 -1
- package/docs/examples/w-explorer_listItemBackgroundColor_listItemBackgroundColorHover_listItemBackgroundColorActive.html +1 -1
- package/docs/examples/w-explorer_listItemIconColor_listItemIconColorHover_listItemIconColorActive.html +1 -1
- package/docs/examples/w-explorer_listItemRippleColor.html +1 -1
- package/docs/examples/w-explorer_listItemTextColor_listItemTextColorHover_listItemTextColorActive.html +1 -1
- package/docs/examples/w-explorer_listItemTextFontSize.html +1 -1
- package/docs/examples/w-explorer_listPaddingStyle.html +1 -1
- package/docs/examples/w-explorer_operatable.html +1 -1
- package/docs/examples/w-explorer_operatable_draggable.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameCancelBtnBackgroundColor_editorRenameCancelBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameCancelBtnIcon_editorRenameCancelBtnIconSize_editorRenameCancelBtnIconColor.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameCancelBtnText_editorRenameCancelBtnTextColor_editorRenameCancelBtnTextColorHover.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameContentBackgroundColor_editorRenameFooterBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameInputTextColor_editorRenameInputTextBottomLineBorderColor_editorRenameInputTextBottomLineBorderColorHover.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameSaveBtnBackgroundColor_editorRenameSaveBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameSaveBtnIcon_editorRenameSaveBtnIconSize_editorRenameSaveBtnIconColor.html +1 -1
- package/docs/examples/w-explorer_operatable_editorRenameSaveBtnText_editorRenameSaveBtnTextColor_editorRenameSaveBtnTextColorHover.html +1 -1
- package/docs/examples/w-explorer_operatable_operateBtnBackgroundColor_operateBtnBackgroundColorHover_operateBtnBackgroundColorFocus.html +1 -1
- package/docs/examples/w-explorer_operatable_operateBtnTooltip_operateItemTextForRename_perateItemTextForInsertChild.html +1 -1
- package/docs/examples/w-explorer_operatable_operateItemBackgroundColor_operateItemBackgroundColorHover_operateItemTextColor.html +1 -1
- package/docs/examples/w-explorer_operatable_operateItemHeight_operateItemIconSize_operateItemPaddingStyle.html +1 -1
- package/docs/examples/w-explorer_operatable_operateItemIconForRename_operateItemIconForInsertChild_operateItemIconForDelete.html +1 -1
- package/docs/examples/w-explorer_operatable_operatePanelWidth_operatePanelHeight_operateItemIconSize.html +1 -1
- package/docs/examples/w-explorer_pathBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_pathBtnBackgroundColor_pathBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-explorer_pathBtnTextColor_pathBtnTextColorHover.html +1 -1
- package/docs/examples/w-explorer_pathBtnTextFontSize.html +1 -1
- package/docs/examples/w-explorer_pathSepIcon_pathSepIconColor_pathSepIconSize.html +1 -1
- package/docs/examples/w-explorer_showTree.html +1 -1
- package/docs/examples/w-explorer_slot folder-item.html +1 -1
- package/docs/examples/w-explorer_slot list-item-cover.html +1 -1
- package/docs/examples/w-explorer_slot list-item-sub.html +1 -1
- package/docs/examples/w-explorer_slot list-item-text-left.html +1 -1
- package/docs/examples/w-explorer_slot list-item-text-right.html +1 -1
- package/docs/examples/w-explorer_slot list-item_list-item-cover_list-head_list-foot.html +1 -1
- package/docs/examples/w-explorer_small text.html +1 -1
- package/docs/examples/w-explorer_toggleTreeFoldersAll.html +1 -1
- package/docs/examples/w-explorer_toggleTreeFoldersByFun.html +1 -1
- package/docs/examples/w-explorer_treeAfloat.html +1 -1
- package/docs/examples/w-explorer_treeBackgroundColor.html +1 -1
- package/docs/examples/w-explorer_treeDefItemHeight_listDefItemHeight.html +1 -1
- package/docs/examples/w-explorer_treeDefaultDisplayLevel.html +1 -1
- package/docs/examples/w-explorer_treeDrawerBarSize_treeDrawerBarColor.html +1 -1
- package/docs/examples/w-explorer_treeFolderIconColor_treeFolderIconColorHover_treeFolderIconColorActive.html +1 -1
- package/docs/examples/w-explorer_treeFolderIcon_treeFolderIconSize.html +1 -1
- package/docs/examples/w-explorer_treeIndent.html +1 -1
- package/docs/examples/w-explorer_treeItemBackgroundColor_treeItemBackgroundColorHover_treeItemBackgroundColorActive.html +1 -1
- package/docs/examples/w-explorer_treeItemRippleColor.html +1 -1
- package/docs/examples/w-explorer_treeItemTextColor_treeItemTextColorHover_treeItemTextColorActive.html +1 -1
- package/docs/examples/w-explorer_treeItemTextFontSize.html +1 -1
- package/docs/examples/w-explorer_treePaddingStyle.html +1 -1
- package/docs/examples/w-explorer_treeToggleIconColor_treeToggleIconBackgroundColor_treeToggleIconBackgroundColorHover.html +1 -1
- package/docs/examples/w-explorer_treeToggleIconSize.html +1 -1
- package/docs/examples/w-explorer_treeWidth.html +1 -1
- package/docs/examples/w-explorer_treeWidthMin_treeWidthMax.html +1 -1
- package/docs/examples/w-explorer_triggerClickTreeFolderByFun.html +1 -1
- package/docs/examples/w-explorer_triggerClickTreeFolderById.html +1 -1
- package/docs/examples/w-group-baggage_connLineColor.html +1 -1
- package/docs/examples/w-group-baggage_connLineWidth.html +1 -1
- package/docs/examples/w-group-baggage_connLineZoneWidth.html +1 -1
- package/docs/examples/w-group-baggage_contentBackgroundColor_contentBackgroundColorHover.html +1 -1
- package/docs/examples/w-group-baggage_contentBorderColor_contentBorderColorHover.html +1 -1
- package/docs/examples/w-group-baggage_contentBorderRadius.html +1 -1
- package/docs/examples/w-group-baggage_contentBorderWidth.html +1 -1
- package/docs/examples/w-group-baggage_contentPaddingStyle.html +1 -1
- package/docs/examples/w-group-baggage_contentTextColor_contentTextColorHover.html +1 -1
- package/docs/examples/w-group-baggage_contentTextFontSize.html +1 -1
- package/docs/examples/w-group-baggage_default.html +1 -1
- package/docs/examples/w-group-baggage_keyTag_keyText.html +1 -1
- package/docs/examples/w-group-baggage_slot tag.html +1 -1
- package/docs/examples/w-group-baggage_slot text-sub.html +1 -1
- package/docs/examples/w-group-baggage_slot text_contentPaddingStyle.html +1 -1
- package/docs/examples/w-group-baggage_tagBackgroundColor_tagBackgroundColorHover.html +1 -1
- package/docs/examples/w-group-baggage_tagBorderColor_tagBorderColorHover.html +1 -1
- package/docs/examples/w-group-baggage_tagBorderRadius.html +1 -1
- package/docs/examples/w-group-baggage_tagBorderWidth.html +1 -1
- package/docs/examples/w-group-baggage_tagClickable_contentClickable_events.html +1 -1
- package/docs/examples/w-group-baggage_tagDistBetweenTopAndBaseline.html +1 -1
- package/docs/examples/w-group-baggage_tagPaddingStyle_contentShiftTopFromBaseline.html +1 -1
- package/docs/examples/w-group-baggage_tagTextColor_tagTextColorHover.html +1 -1
- package/docs/examples/w-group-baggage_tagTextFontSize_contentShiftTopFromBaseline.html +1 -1
- package/docs/examples/w-group-chip-check_backgroundColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_backgroundColor_backgroundColorHover.html +1 -1
- package/docs/examples/w-group-chip-check_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_borderRadius.html +1 -1
- package/docs/examples/w-group-chip-check_borderRadius_borderRadiusStyle_paddingStyle.html +1 -1
- package/docs/examples/w-group-chip-check_borderWidth_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_click (console.log).html +1 -1
- package/docs/examples/w-group-chip-check_default.html +1 -1
- package/docs/examples/w-group-chip-check_group (only one).html +1 -1
- package/docs/examples/w-group-chip-check_group_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_group_groupBorderRadiusStyle_groupShift_borderRadius.html +1 -1
- package/docs/examples/w-group-chip-check_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-chip-check_icon (material).html +1 -1
- package/docs/examples/w-group-chip-check_iconColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_iconColor_iconColorHover.html +1 -1
- package/docs/examples/w-group-chip-check_loading.html +1 -1
- package/docs/examples/w-group-chip-check_loading_loadingColor.html +1 -1
- package/docs/examples/w-group-chip-check_marginStyle.html +1 -1
- package/docs/examples/w-group-chip-check_no shadowActive.html +1 -1
- package/docs/examples/w-group-chip-check_not editable.html +1 -1
- package/docs/examples/w-group-chip-check_paddingStyle_borderRadius_textColor_iconColor.html +1 -1
- package/docs/examples/w-group-chip-check_paddingStyle_iconSize_textFontSize.html +1 -1
- package/docs/examples/w-group-chip-check_shadow.html +1 -1
- package/docs/examples/w-group-chip-check_shadowActiveStyle.html +1 -1
- package/docs/examples/w-group-chip-check_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-chip-check_shiftLeft.html +1 -1
- package/docs/examples/w-group-chip-check_shiftLeft_shiftRight.html +1 -1
- package/docs/examples/w-group-chip-check_slot_shadow.html +1 -1
- package/docs/examples/w-group-chip-check_textColor.html +1 -1
- package/docs/examples/w-group-chip-check_textColorActive.html +1 -1
- package/docs/examples/w-group-chip-check_textColor_textColorHover.html +1 -1
- package/docs/examples/w-group-chip-check_tooltip.html +1 -1
- package/docs/examples/w-group-chip-check_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-chip-check_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-chip-check_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-chip-check_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-chip-radio_backgroundColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_backgroundColor_backgroundColorHover.html +1 -1
- package/docs/examples/w-group-chip-radio_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_borderRadius.html +1 -1
- package/docs/examples/w-group-chip-radio_borderRadius_borderRadiusStyle_paddingStyle.html +1 -1
- package/docs/examples/w-group-chip-radio_borderWidth_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_click (console.log).html +1 -1
- package/docs/examples/w-group-chip-radio_default.html +1 -1
- package/docs/examples/w-group-chip-radio_group (only one).html +1 -1
- package/docs/examples/w-group-chip-radio_group_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_group_groupBorderRadiusStyle_groupShift_borderRadius.html +1 -1
- package/docs/examples/w-group-chip-radio_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-chip-radio_icon (material).html +1 -1
- package/docs/examples/w-group-chip-radio_iconColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_iconColor_iconColorHover.html +1 -1
- package/docs/examples/w-group-chip-radio_loading.html +1 -1
- package/docs/examples/w-group-chip-radio_loading_loadingColor.html +1 -1
- package/docs/examples/w-group-chip-radio_marginStyle.html +1 -1
- package/docs/examples/w-group-chip-radio_no shadowActive.html +1 -1
- package/docs/examples/w-group-chip-radio_not editable.html +1 -1
- package/docs/examples/w-group-chip-radio_paddingStyle_borderRadius_textColor_iconColor.html +1 -1
- package/docs/examples/w-group-chip-radio_paddingStyle_iconSize_textFontSize.html +1 -1
- package/docs/examples/w-group-chip-radio_shadow.html +1 -1
- package/docs/examples/w-group-chip-radio_shadowActiveStyle.html +1 -1
- package/docs/examples/w-group-chip-radio_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-chip-radio_shiftLeft.html +1 -1
- package/docs/examples/w-group-chip-radio_shiftLeft_shiftRight.html +1 -1
- package/docs/examples/w-group-chip-radio_slot_shadow.html +1 -1
- package/docs/examples/w-group-chip-radio_textColor.html +1 -1
- package/docs/examples/w-group-chip-radio_textColorActive.html +1 -1
- package/docs/examples/w-group-chip-radio_textColor_textColorHover.html +1 -1
- package/docs/examples/w-group-chip-radio_tooltip.html +1 -1
- package/docs/examples/w-group-chip-radio_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-chip-radio_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-chip-radio_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-chip-radio_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-dragdrop_default.html +1 -1
- package/docs/examples/w-group-dragdrop_event (dragdrop).html +1 -1
- package/docs/examples/w-group-dragdrop_items(string array).html +1 -1
- package/docs/examples/w-group-dragdrop_keyBinder.html +1 -1
- package/docs/examples/w-group-dragdrop_not draggable.html +1 -1
- package/docs/examples/w-group-dragdrop_not itemStyleInline (block).html +1 -1
- package/docs/examples/w-group-icon-check_backgroundColor_backgroundColorHover_backgroundColorFocus_backgroundColorActive.html +1 -1
- package/docs/examples/w-group-icon-check_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-icon-check_borderRadius.html +1 -1
- package/docs/examples/w-group-icon-check_borderWidth_borderColor_borderColorHover_borderColorFocus.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_borderRadius.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_borderWidth_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_icon (material).html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_iconColor_iconColorHover_iconColorFocus.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_not editable.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_one.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_paddingStyle_iconSize.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_rippleColor.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_seplineColor.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_seplineWidth.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_shadow.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_tooltip.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-icon-check_dir(vertical)_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-icon-check_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-icon-check_icon (material).html +1 -1
- package/docs/examples/w-group-icon-check_iconColor_iconColorHover_iconColorFocus_iconColorActive.html +1 -1
- package/docs/examples/w-group-icon-check_not editable.html +1 -1
- package/docs/examples/w-group-icon-check_one.html +1 -1
- package/docs/examples/w-group-icon-check_paddingStyle_iconSize.html +1 -1
- package/docs/examples/w-group-icon-check_rippleColor.html +1 -1
- package/docs/examples/w-group-icon-check_seplineColor.html +1 -1
- package/docs/examples/w-group-icon-check_seplineWidth.html +1 -1
- package/docs/examples/w-group-icon-check_shadow.html +1 -1
- package/docs/examples/w-group-icon-check_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-icon-check_tooltip.html +1 -1
- package/docs/examples/w-group-icon-check_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-icon-check_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-icon-check_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-icon-check_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-icon-radio_backgroundColor_backgroundColorHover_backgroundColorFocus_backgroundColorActive.html +1 -1
- package/docs/examples/w-group-icon-radio_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-icon-radio_borderRadius.html +1 -1
- package/docs/examples/w-group-icon-radio_borderWidth_borderColor_borderColorHover_borderColorFocus.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_borderColor_borderColorHover_borderColorActive.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_borderRadius.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_borderWidth_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_icon (material).html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_iconColor_iconColorHover_iconColorFocus.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_not editable.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_one.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_paddingStyle_iconSize.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_rippleColor.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_seplineColor.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_seplineWidth.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_shadow.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_tooltip.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-icon-radio_dir(vertical)_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-icon-radio_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-icon-radio_icon (material).html +1 -1
- package/docs/examples/w-group-icon-radio_iconColor_iconColorHover_iconColorFocus_iconColorActive.html +1 -1
- package/docs/examples/w-group-icon-radio_not editable.html +1 -1
- package/docs/examples/w-group-icon-radio_one.html +1 -1
- package/docs/examples/w-group-icon-radio_paddingStyle_iconSize.html +1 -1
- package/docs/examples/w-group-icon-radio_rippleColor.html +1 -1
- package/docs/examples/w-group-icon-radio_seplineColor.html +1 -1
- package/docs/examples/w-group-icon-radio_seplineWidth.html +1 -1
- package/docs/examples/w-group-icon-radio_shadow.html +1 -1
- package/docs/examples/w-group-icon-radio_shadow_shadowStyle.html +1 -1
- package/docs/examples/w-group-icon-radio_tooltip.html +1 -1
- package/docs/examples/w-group-icon-radio_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-group-icon-radio_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-group-icon-radio_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-group-icon-radio_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-group-tags_backgroundColor_backgroundColorHover.html +1 -1
- package/docs/examples/w-group-tags_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-group-tags_borderRadius.html +1 -1
- package/docs/examples/w-group-tags_closeWithInterceptor.html +1 -1
- package/docs/examples/w-group-tags_default.html +1 -1
- package/docs/examples/w-group-tags_editableClose(no close button).html +1 -1
- package/docs/examples/w-group-tags_editableClose(no close button)_editableInput(no input text).html +1 -1
- package/docs/examples/w-group-tags_editableInput(no input text).html +1 -1
- package/docs/examples/w-group-tags_enableActive_valueActive.html +1 -1
- package/docs/examples/w-group-tags_enableCloseEventOnly.html +1 -1
- package/docs/examples/w-group-tags_enableNodata.html +1 -1
- package/docs/examples/w-group-tags_enableNodata_nodata_editableClose(no close button)_editableInput(no input text).html +1 -1
- package/docs/examples/w-group-tags_icon (fontawesome).html +1 -1
- package/docs/examples/w-group-tags_icon (material).html +1 -1
- package/docs/examples/w-group-tags_iconColor_iconColorHover_textColor_textColorHover.html +1 -1
- package/docs/examples/w-group-tags_icon_iconColor_iconColorHover.html +1 -1
- package/docs/examples/w-group-tags_inputTextButtonTooltip.html +1 -1
- package/docs/examples/w-group-tags_inputTextFontSize_inputTextColor_inputTextBorderColor_inputTextBorderColorHover.html +1 -1
- package/docs/examples/w-group-tags_inputTextWidth.html +1 -1
- package/docs/examples/w-group-tags_marginStyle.html +1 -1
- package/docs/examples/w-group-tags_modify loading by callback in click.html +1 -1
- package/docs/examples/w-group-tags_modify prog by callback in click.html +1 -1
- package/docs/examples/w-group-tags_no enableNodata.html +1 -1
- package/docs/examples/w-group-tags_no shadow_borderColor_borderColorHover.html +1 -1
- package/docs/examples/w-group-tags_not draggable.html +1 -1
- package/docs/examples/w-group-tags_not editable.html +1 -1
- package/docs/examples/w-group-tags_object items.html +1 -1
- package/docs/examples/w-group-tags_object items_addButtonIcon_addButtonTextColor_addButtonTextColorHover.html +1 -1
- package/docs/examples/w-group-tags_object items_addButtonText_addButtonTooltip.html +1 -1
- package/docs/examples/w-group-tags_object items_keyIcon.html +1 -1
- package/docs/examples/w-group-tags_object items_keyText.html +1 -1
- package/docs/examples/w-group-tags_object items_keyTooltip.html +1 -1
- package/docs/examples/w-group-tags_object items_slot item.html +1 -1
- package/docs/examples/w-group-tags_object items_slot item_editableInput(no input button)_enableActive.html +1 -1
- package/docs/examples/w-group-tags_object items_slot item_enableColorsFromItem_editableInput(no input button).html +1 -1
- package/docs/examples/w-group-tags_paddingStyle_icon_iconSize_textFontSize.html +1 -1
- package/docs/examples/w-group-tags_progColor_progBackgroundColor.html +1 -1
- package/docs/examples/w-group-tags_shadowStyle.html +1 -1
- package/docs/examples/w-group-tags_shiftLeft.html +1 -1
- package/docs/examples/w-group-tags_slot input.html +1 -1
- package/docs/examples/w-group-tags_slot item.html +1 -1
- package/docs/examples/w-group-tags_slot item_enableActive_valueActive_paddingStyle.html +1 -1
- package/docs/examples/w-group-tags_suggests.html +1 -1
- package/docs/examples/w-group-tags_suggests_inputTextColor_inputExpansionIconColor.html +1 -1
- package/docs/examples/w-group-tags_suggests_placeholder_noResultsText.html +1 -1
- package/docs/examples/w-group-tags_suggests_slot suggest_addMode.html +1 -1
- package/docs/examples/w-group-tags_suggests_slot suggest_addMode_addWhenInputByOutside.html +1 -1
- package/docs/examples/w-group-tags_suggests_slot suggest_addMode_inputKeyText.html +1 -1
- package/docs/examples/w-group-tags_suggests_suggectItemFontSize_suggectItemTextColor_suggectItemTextColorHover.html +1 -1
- package/docs/examples/w-group-tags_textColor.html +1 -1
- package/docs/examples/w-group-tags_textColor_textColorHover.html +1 -1
- package/docs/examples/w-highcharts-bitmap-dyn_render (need w-hc2png-server).html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_area.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_bar.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_heatmap.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_large heatmap.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_line.html +1 -1
- package/docs/examples/w-highcharts-vue-dyn_pie.html +1 -1
- package/docs/examples/w-highstock-vue-dyn_area.html +1 -1
- package/docs/examples/w-highstock-vue-dyn_line.html +1 -1
- package/docs/examples/w-icon_icon (fontawesome).html +1 -1
- package/docs/examples/w-icon_icon (fontawesome)_color_colorHover.html +1 -1
- package/docs/examples/w-icon_icon (fontawesome)_size.html +1 -1
- package/docs/examples/w-icon_icon (fontawesome)_timeTransition.html +1 -1
- package/docs/examples/w-icon_icon (material).html +1 -1
- package/docs/examples/w-icon_icon (material)_color_colorHover.html +1 -1
- package/docs/examples/w-icon_icon (material)_size.html +1 -1
- package/docs/examples/w-icon_icon (material)_timeTransition.html +1 -1
- package/docs/examples/w-image-cascading-dyn_arrangeWhenFinish.html +1 -1
- package/docs/examples/w-image-cascading-dyn_colNum.html +1 -1
- package/docs/examples/w-image-cascading-dyn_default(imageWidth=300).html +1 -1
- package/docs/examples/w-image-cascading-dyn_imageWidth.html +1 -1
- package/docs/examples/w-image-cascading-dyn_imageWidthSoft.html +1 -1
- package/docs/examples/w-image-lazy_width_height.html +1 -1
- package/docs/examples/w-image-lazy_width_height_delay.html +1 -1
- package/docs/examples/w-image-viewer-dyn_multiple image with navbar.html +1 -1
- package/docs/examples/w-image-viewer-dyn_one image.html +1 -1
- package/docs/examples/w-input-checkbox_arrange_paddingStyle.html +1 -1
- package/docs/examples/w-input-checkbox_click (console.log).html +1 -1
- package/docs/examples/w-input-checkbox_default.html +1 -1
- package/docs/examples/w-input-checkbox_not editable.html +1 -1
- package/docs/examples/w-input-checkbox_not editable_textColorDisabled.html +1 -1
- package/docs/examples/w-input-checkbox_object items_keyText.html +1 -1
- package/docs/examples/w-input-checkbox_paddingStyle.html +1 -1
- package/docs/examples/w-input-checkbox_slot_paddingStyle_verticalAlign_inputSize.html +1 -1
- package/docs/examples/w-input-checkbox_textColor_textColorHover_textColorActive.html +1 -1
- package/docs/examples/w-input-checkbox_textFontSize_paddingStyle.html +1 -1
- package/docs/examples/w-input-radio_arrange_paddingStyle.html +1 -1
- package/docs/examples/w-input-radio_click (console.log).html +1 -1
- package/docs/examples/w-input-radio_default.html +1 -1
- package/docs/examples/w-input-radio_not editable.html +1 -1
- package/docs/examples/w-input-radio_not editable_textColorDisabled.html +1 -1
- package/docs/examples/w-input-radio_object items_keyText.html +1 -1
- package/docs/examples/w-input-radio_paddingStyle.html +1 -1
- package/docs/examples/w-input-radio_slot_paddingStyle_verticalAlign_inputSize.html +1 -1
- package/docs/examples/w-input-radio_textColor_textColorHover_textColorActive.html +1 -1
- package/docs/examples/w-input-radio_textFontSize_paddingStyle.html +1 -1
- package/docs/examples/w-json-view_default.html +1 -1
- package/docs/examples/w-json-view_events.html +1 -1
- package/docs/examples/w-json-view_filterKeywords_funFilter.html +1 -1
- package/docs/examples/w-json-view_filterKeywords_noResultsText.html +1 -1
- package/docs/examples/w-json-view_iconColor_keyColor_keyNumbersColor_numColor.html +1 -1
- package/docs/examples/w-json-view_iconSize(24)_defItemHeight(32).html +1 -1
- package/docs/examples/w-json-view_large data (15,500 lines).html +1 -1
- package/docs/examples/w-json-view_no viewHeightMax.html +1 -1
- package/docs/examples/w-json-view_rippleColor.html +1 -1
- package/docs/examples/w-json-view_toggleItemsAll.html +1 -1
- package/docs/examples/w-json-view_toggleItemsByFun.html +1 -1
- package/docs/examples/w-json-view_viewHeightMax.html +1 -1
- package/docs/examples/w-leaflet-vue-dyn_contourSet for rain data.html +1 -1
- package/docs/examples/w-leaflet-vue-dyn_contourSets.html +1 -1
- package/docs/examples/w-leaflet-vue-dyn_pointSets.html +1 -1
- package/docs/examples/w-leaflet-vue-dyn_polygonSets.html +1 -1
- package/docs/examples/w-level-grade_arrowColor.html +1 -1
- package/docs/examples/w-level-grade_arrowSize.html +1 -1
- package/docs/examples/w-level-grade_default.html +1 -1
- package/docs/examples/w-level-grade_gradeSize.html +1 -1
- package/docs/examples/w-level-grade_gradeTextFontSize_gradeTextColor.html +1 -1
- package/docs/examples/w-level-grade_keyColor_keyLow_keyUp_keyDelimiter.html +1 -1
- package/docs/examples/w-level-grade_slot low_up_delimiter_text.html +1 -1
- package/docs/examples/w-level-grade_spaceForGrade.html +1 -1
- package/docs/examples/w-level-grade_tickDig.html +1 -1
- package/docs/examples/w-level-grade_tickDig_text.html +1 -1
- package/docs/examples/w-level-grade_tickDig_text_spaceForText.html +1 -1
- package/docs/examples/w-list-check_auto scroll.html +1 -1
- package/docs/examples/w-list-check_default.html +1 -1
- package/docs/examples/w-list-check_enableQuery.html +1 -1
- package/docs/examples/w-list-check_enableQuery_border.html +1 -1
- package/docs/examples/w-list-check_enableQuery_queryKeysPickForObjItem.html +1 -1
- package/docs/examples/w-list-check_enableQuery_querySepLineColor_querySepLineWidth.html +1 -1
- package/docs/examples/w-list-check_enableQuery_queryTextFontSize_queryTextColor_queryPlaceholder.html +1 -1
- package/docs/examples/w-list-check_enableQuery_slot item-content_itemBackgroundColorActive_itemCheckIconCheckedIconColorActive.html +1 -1
- package/docs/examples/w-list-check_item with no editable.html +1 -1
- package/docs/examples/w-list-check_item with no editable__itemCheckIconCheckedIconColorDisabled_itemCheckIconUncheckedIconColorDisabled.html +1 -1
- package/docs/examples/w-list-check_item with no editable_itemDisabledColor.html +1 -1
- package/docs/examples/w-list-check_item with no editable_itemTextColorDisabled_itemIconColorDisabled_itemBackgroundColorDisabled.html +1 -1
- package/docs/examples/w-list-check_itemCheckIconCheckedIconColor_itemCheckIconCheckedIconColorHover_itemCheckIconCheckedIconColorActive_itemCheckIconUncheckedIconColor.html +1 -1
- package/docs/examples/w-list-check_itemCheckIconCheckedIcon_itemCheckIconUncheckedIcon.html +1 -1
- package/docs/examples/w-list-check_itemCheckIconIconSize_itemIconSize_itemTextFontSize.html +1 -1
- package/docs/examples/w-list-check_itemRippleColor.html +1 -1
- package/docs/examples/w-list-check_itemTextColor_itemTextColorHover_itemTextColorActive_itemIconColor.html +1 -1
- package/docs/examples/w-list-check_keyPickForObjItem.html +1 -1
- package/docs/examples/w-list-check_keyText_keyIcon.html +1 -1
- package/docs/examples/w-list-check_paddingStyle_spaceBetweenCheckboxAndContent.html +1 -1
- package/docs/examples/w-list-check_slot footer.html +1 -1
- package/docs/examples/w-list-check_slot header.html +1 -1
- package/docs/examples/w-list-check_string items.html +1 -1
- package/docs/examples/w-list-expand_activeMode(multi).html +1 -1
- package/docs/examples/w-list-expand_auto scroll.html +1 -1
- package/docs/examples/w-list-expand_default.html +1 -1
- package/docs/examples/w-list-expand_itemBackgroundColor_itemBackgroundColorHover_itemBackgroundColorActive.html +1 -1
- package/docs/examples/w-list-expand_keyText_keyIcon_keyDsp.html +1 -1
- package/docs/examples/w-list-expand_paddingStyle.html +1 -1
- package/docs/examples/w-list-expand_slot footer.html +1 -1
- package/docs/examples/w-list-expand_slot header.html +1 -1
- package/docs/examples/w-list-expand_slot item-content_itemTextColor_itemTextColorHover_itemTextColorActive.html +1 -1
- package/docs/examples/w-list-expand_slot item-header_item-content.html +1 -1
- package/docs/examples/w-list-expand_string items_slot item-content.html +1 -1
- package/docs/examples/w-list-horizontal_borderBottomSize.html +1 -1
- package/docs/examples/w-list-horizontal_default.html +1 -1
- package/docs/examples/w-list-horizontal_item with no editable.html +1 -1
- package/docs/examples/w-list-horizontal_item with no editable_itemDisabledColor.html +1 -1
- package/docs/examples/w-list-horizontal_item with no editable_itemTextColorDisabled_itemIconColorDisabled_itemBackgroundColorDisabled.html +1 -1
- package/docs/examples/w-list-horizontal_itemBackgroundColor_itemBackgroundColorHover_itemBackgroundColorActive.html +1 -1
- package/docs/examples/w-list-horizontal_itemBorderRadius.html +1 -1
- package/docs/examples/w-list-horizontal_itemBorderRadius_space.html +1 -1
- package/docs/examples/w-list-horizontal_itemRippleColor.html +1 -1
- package/docs/examples/w-list-horizontal_itemRippleColor_borderBottomColor_itemTextColorActive_itemIconColorActive.html +1 -1
- package/docs/examples/w-list-horizontal_itemTextFontSize_itemIconSize.html +1 -1
- package/docs/examples/w-list-horizontal_keyText_keyIcon.html +1 -1
- package/docs/examples/w-list-horizontal_no borderBottom.html +1 -1
- package/docs/examples/w-list-horizontal_paddingStyle.html +1 -1
- package/docs/examples/w-list-horizontal_paddingStyle_borderBottomColor_itemRippleColor_itemTextColor.html +1 -1
- package/docs/examples/w-list-horizontal_slot item.html +1 -1
- package/docs/examples/w-list-horizontal_space.html +1 -1
- package/docs/examples/w-list-horizontal_string items.html +1 -1
- package/docs/examples/w-list-horizontal_string items_itemActive.html +1 -1
- package/docs/examples/w-list-radio_auto scroll.html +1 -1
- package/docs/examples/w-list-radio_default.html +1 -1
- package/docs/examples/w-list-radio_enableQuery.html +1 -1
- package/docs/examples/w-list-radio_enableQuery_border.html +1 -1
- package/docs/examples/w-list-radio_enableQuery_queryKeysPickForObjItem.html +1 -1
- package/docs/examples/w-list-radio_enableQuery_querySepLineColor_querySepLineWidth.html +1 -1
- package/docs/examples/w-list-radio_enableQuery_queryTextFontSize_queryTextColor_queryPlaceholder.html +1 -1
- package/docs/examples/w-list-radio_enableQuery_slot item-content_itemBackgroundColorActive_itemCheckIconCheckedIconColorActive.html +1 -1
- package/docs/examples/w-list-radio_item with no editable.html +1 -1
- package/docs/examples/w-list-radio_item with no editable__itemCheckIconCheckedIconColorDisabled_itemCheckIconUncheckedIconColorDisabled.html +1 -1
- package/docs/examples/w-list-radio_item with no editable_itemDisabledColor.html +1 -1
- package/docs/examples/w-list-radio_item with no editable_itemTextColorDisabled_itemIconColorDisabled_itemBackgroundColorDisabled.html +1 -1
- package/docs/examples/w-list-radio_itemCheckIconCheckedIconColor_itemCheckIconCheckedIconColorHover_itemCheckIconCheckedIconColorActive_itemCheckIconUncheckedIconColor.html +1 -1
- package/docs/examples/w-list-radio_itemCheckIconCheckedIcon_itemCheckIconUncheckedIcon.html +1 -1
- package/docs/examples/w-list-radio_itemCheckIconIconSize_itemIconSize_itemTextFontSize.html +1 -1
- package/docs/examples/w-list-radio_itemRippleColor.html +1 -1
- package/docs/examples/w-list-radio_itemTextColor_itemTextColorHover_itemTextColorActive_itemIconColor.html +1 -1
- package/docs/examples/w-list-radio_keyPickForObjItem.html +1 -1
- package/docs/examples/w-list-radio_keyText_keyIcon.html +1 -1
- package/docs/examples/w-list-radio_paddingStyle_spaceBetweenCheckboxAndContent.html +1 -1
- package/docs/examples/w-list-radio_slot footer.html +1 -1
- package/docs/examples/w-list-radio_slot header.html +1 -1
- package/docs/examples/w-list-radio_string items.html +1 -1
- package/docs/examples/w-list-vertical_auto scroll.html +1 -1
- package/docs/examples/w-list-vertical_default.html +1 -1
- package/docs/examples/w-list-vertical_enableActive (no active).html +1 -1
- package/docs/examples/w-list-vertical_enableActive (no active)_itemRippleColor.html +1 -1
- package/docs/examples/w-list-vertical_item with no editable.html +1 -1
- package/docs/examples/w-list-vertical_item with no editable_itemDisabledColor.html +1 -1
- package/docs/examples/w-list-vertical_item with no editable_itemTextColorDisabled_itemIconColorDisabled_itemBackgroundColorDisabled.html +1 -1
- package/docs/examples/w-list-vertical_itemActive.html +1 -1
- package/docs/examples/w-list-vertical_itemActive_itemBackgroundColor_itemBackgroundColorHover_itemBackgroundColorActive.html +1 -1
- package/docs/examples/w-list-vertical_itemActive_itemTextColor_itemTextColorHover_itemTextColorActive.html +1 -1
- package/docs/examples/w-list-vertical_itemIconSize_itemTextFontSize.html +1 -1
- package/docs/examples/w-list-vertical_keyText_keyIcon.html +1 -1
- package/docs/examples/w-list-vertical_paddingStyle.html +1 -1
- package/docs/examples/w-list-vertical_slot footer.html +1 -1
- package/docs/examples/w-list-vertical_slot header.html +1 -1
- package/docs/examples/w-list-vertical_slot item_itemBackgroundColorActive.html +1 -1
- package/docs/examples/w-list-vertical_string items.html +1 -1
- package/docs/examples/w-list-vertical_string items_itemActive.html +1 -1
- package/docs/examples/w-panel-avatar_avatarBackgroundColor.html +1 -1
- package/docs/examples/w-panel-avatar_avatarBorderRadius.html +1 -1
- package/docs/examples/w-panel-avatar_avatarBorderWidth_avatarBorderColor_avatarBackgroundColor.html +1 -1
- package/docs/examples/w-panel-avatar_avatarIcon (fontawesome).html +1 -1
- package/docs/examples/w-panel-avatar_avatarIcon (material).html +1 -1
- package/docs/examples/w-panel-avatar_avatarIcon_avatarIconSize_avatarIconColor_avatarBackgroundColor.html +1 -1
- package/docs/examples/w-panel-avatar_avatarOuterPadding_avatarInnerPadding.html +1 -1
- package/docs/examples/w-panel-avatar_contentBackgroundColor.html +1 -1
- package/docs/examples/w-panel-avatar_contentBorderRadius.html +1 -1
- package/docs/examples/w-panel-avatar_contentShadow.html +1 -1
- package/docs/examples/w-panel-avatar_default.html +1 -1
- package/docs/examples/w-panel-avatar_headerPadding_headerTextColor_headerTextSize_subHeaderTextColor.html +1 -1
- package/docs/examples/w-panel-avatar_headerVerticalAlign_spaceVBetweenHeaderAndContent.html +1 -1
- package/docs/examples/w-panel-avatar_no avatarShadow.html +1 -1
- package/docs/examples/w-panel-avatar_sepLineWidth_sepLineColor.html +1 -1
- package/docs/examples/w-panel-avatar_shiftVFromAvaterCenter.html +1 -1
- package/docs/examples/w-panel-avatar_slot avatar_avatarBackgroundColor.html +1 -1
- package/docs/examples/w-panel-avatar_spaceHBetweenAvatarAndHeader_spaceVBetweenHeaderAndContent.html +1 -1
- package/docs/examples/w-panel-bulge_contentBackgroundColor.html +1 -1
- package/docs/examples/w-panel-bulge_contentBorderRadius.html +1 -1
- package/docs/examples/w-panel-bulge_default.html +1 -1
- package/docs/examples/w-panel-bulge_headerBorderRadius.html +1 -1
- package/docs/examples/w-panel-bulge_headerTextColor_headerBackgroundColor.html +1 -1
- package/docs/examples/w-panel-bulge_no headerShadow_no contentShadow, with green outer.html +1 -1
- package/docs/examples/w-panel-bulge_paddingStyle.html +1 -1
- package/docs/examples/w-panel-bulge_slot for header_headerBorderRadius_headerBackgroundColor(linear-gradient).html +1 -1
- package/docs/examples/w-panel-bulge_with grey outer.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_barBorderSize_barBorderColor.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_barColor.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_barSize.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_default.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_leftWidthMin_leftWidthMax.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_ratio.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_ratioMin_ratioMax.html +1 -1
- package/docs/examples/w-panel-divide-horizontal_rightWidthMin_rightWidthMax.html +1 -1
- package/docs/examples/w-panel-divide-vertical_barBorderSize_barBorderColor.html +1 -1
- package/docs/examples/w-panel-divide-vertical_barColor.html +1 -1
- package/docs/examples/w-panel-divide-vertical_barSize.html +1 -1
- package/docs/examples/w-panel-divide-vertical_bottomHeightMin_bottomHeightMax.html +1 -1
- package/docs/examples/w-panel-divide-vertical_default.html +1 -1
- package/docs/examples/w-panel-divide-vertical_ratio.html +1 -1
- package/docs/examples/w-panel-divide-vertical_ratioMin_ratioMax.html +1 -1
- package/docs/examples/w-panel-divide-vertical_topHeightMin_topHeightMax.html +1 -1
- package/docs/examples/w-panel-label-item_labelColor.html +1 -1
- package/docs/examples/w-panel-label-item_labelFontSize.html +1 -1
- package/docs/examples/w-panel-label-item_labelVerticalAlign.html +1 -1
- package/docs/examples/w-panel-label-item_labelWidth.html +1 -1
- package/docs/examples/w-panel-label-item_labelWidth_labelHorizontalAlign.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_labelColor.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_labelFontSize.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_labelWidth.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_labelWidth_labelHorizontalAlign.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_slot item-sub.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_slot item-sub_floatForItemSub.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_slot label.html +1 -1
- package/docs/examples/w-panel-label-item_seplines_space.html +1 -1
- package/docs/examples/w-panel-label-item_slot item-sub.html +1 -1
- package/docs/examples/w-panel-label-item_slot item-sub_floatForItemSub.html +1 -1
- package/docs/examples/w-panel-label-item_slot label.html +1 -1
- package/docs/examples/w-panel-label-item_space.html +1 -1
- package/docs/examples/w-panel-label-item_with group-tags_labelVerticalAlign_labelShiftTop.html +1 -1
- package/docs/examples/w-panel-label-item_with select.html +1 -1
- package/docs/examples/w-panel-label-item_with select_seplines.html +1 -1
- package/docs/examples/w-panel-label-item_with text.html +1 -1
- package/docs/examples/w-panel-label-item_with text_seplines.html +1 -1
- package/docs/examples/w-panel-label-item_with textarea_labelVerticalAlign.html +1 -1
- package/docs/examples/w-panel-label-item_with textarea_seplines.html +1 -1
- package/docs/examples/w-panel-scale_for select.html +1 -1
- package/docs/examples/w-panel-scale_for v-btn.html +1 -1
- package/docs/examples/w-panel-scale_for w-panel-bulge.html +1 -1
- package/docs/examples/w-panel-scale_for w-panel-scrolly.html +1 -1
- package/docs/examples/w-panel-scale_for w-text-suggest.html +1 -1
- package/docs/examples/w-panel-scrolly_barOpacity_barOpacityHover.html +1 -1
- package/docs/examples/w-panel-scrolly_default.html +1 -1
- package/docs/examples/w-panel-scrolly_events.html +1 -1
- package/docs/examples/w-panel-scrolly_scrollTop.html +1 -1
- package/docs/examples/w-panel-stripe_borderRadius.html +1 -1
- package/docs/examples/w-panel-stripe_buttons in slot footer.html +1 -1
- package/docs/examples/w-panel-stripe_headerBackgroundColor_footerBackgroundColor.html +1 -1
- package/docs/examples/w-panel-stripe_no footer.html +1 -1
- package/docs/examples/w-panel-stripe_no header.html +1 -1
- package/docs/examples/w-panel-stripe_no shadow, with crimson outer.html +1 -1
- package/docs/examples/w-panel-stripe_only slot icon and slot title in header.html +1 -1
- package/docs/examples/w-panel-stripe_only slot title in header.html +1 -1
- package/docs/examples/w-panel-stripe_padding.html +1 -1
- package/docs/examples/w-panel-stripe_separate for slot content.html +1 -1
- package/docs/examples/w-panel-stripe_slot icon (fontawesome).html +1 -1
- package/docs/examples/w-panel-stripe_slot icon, slot title, slot description, slot content and slot footer.html +1 -1
- package/docs/examples/w-panel-stripe_table in slot content.html +1 -1
- package/docs/examples/w-panel-stripe_with grey outer.html +1 -1
- package/docs/examples/w-popup-edit-text_default.html +1 -1
- package/docs/examples/w-popup-edit-text_in table.html +1 -1
- package/docs/examples/w-popup-edit-text_minWidthForPopup.html +1 -1
- package/docs/examples/w-popup-edit-text_minWidthForValue.html +1 -1
- package/docs/examples/w-popup-edit-text_no title.html +1 -1
- package/docs/examples/w-popup-edit-text_title_contentIcon_contentIconColor_contentIconSize.html +1 -1
- package/docs/examples/w-popup-edit-text_title_footerBackgroundColor.html +1 -1
- package/docs/examples/w-popup-edit-text_title_inputTextColor_contentIconColor_contentBackgroundColor.html +1 -1
- package/docs/examples/w-popup-edit-text_title_saveBtnText_saveBtnTextColor_saveBtnTextColorHover.html +1 -1
- package/docs/examples/w-popup-edit-text_title_titleColor_titleFontSize_headerBackgroundColor.html +1 -1
- package/docs/examples/w-popup_auto flipping in dialog.html +1 -1
- package/docs/examples/w-popup_auto flipping in scroll panel.html +1 -1
- package/docs/examples/w-popup_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-popup_autoFitMinWidth.html +1 -1
- package/docs/examples/w-popup_backgroundColor.html +1 -1
- package/docs/examples/w-popup_borderRadius.html +1 -1
- package/docs/examples/w-popup_click item by latency hiding.html +1 -1
- package/docs/examples/w-popup_default.html +1 -1
- package/docs/examples/w-popup_in popup.html +1 -1
- package/docs/examples/w-popup_in scroll panel.html +1 -1
- package/docs/examples/w-popup_isolated.html +1 -1
- package/docs/examples/w-popup_maxWidth.html +1 -1
- package/docs/examples/w-popup_minWidth.html +1 -1
- package/docs/examples/w-popup_no shadow_backgroundColor.html +1 -1
- package/docs/examples/w-popup_not editable.html +1 -1
- package/docs/examples/w-popup_paddingStyle.html +1 -1
- package/docs/examples/w-popup_placement.html +1 -1
- package/docs/examples/w-popup_placementDistY.html +1 -1
- package/docs/examples/w-popup_shadowStyle.html +1 -1
- package/docs/examples/w-popup_slot for table_maxWidth.html +1 -1
- package/docs/examples/w-popup_textColor_backgroundColor.html +1 -1
- package/docs/examples/w-popup_textFontSize.html +1 -1
- package/docs/examples/w-popup_transitionTime.html +1 -1
- package/docs/examples/w-progress-bar_decimal.html +1 -1
- package/docs/examples/w-progress-bar_default.html +1 -1
- package/docs/examples/w-progress-bar_enableContinuous.html +1 -1
- package/docs/examples/w-progress-bar_enableContinuous_continuousIncrease_continuousPeriod.html +1 -1
- package/docs/examples/w-progress-bar_enableContinuous_progColor_progBackgroundColor.html +1 -1
- package/docs/examples/w-progress-bar_enableIconFinish (no iconFinish).html +1 -1
- package/docs/examples/w-progress-bar_enableIconWaiting (no iconWaiting).html +1 -1
- package/docs/examples/w-progress-bar_height.html +1 -1
- package/docs/examples/w-progress-bar_height_borderRadius.html +1 -1
- package/docs/examples/w-progress-bar_iconFinish (fontawesome).html +1 -1
- package/docs/examples/w-progress-bar_iconFinishColor.html +1 -1
- package/docs/examples/w-progress-bar_iconSize.html +1 -1
- package/docs/examples/w-progress-bar_iconWaiting (fontawesome).html +1 -1
- package/docs/examples/w-progress-bar_iconWaitingColor.html +1 -1
- package/docs/examples/w-progress-bar_progColor.html +1 -1
- package/docs/examples/w-progress-bar_progColor_progBackgroundColor.html +1 -1
- package/docs/examples/w-progress-bar_title.html +1 -1
- package/docs/examples/w-progress-bar_title_titleTextColor.html +1 -1
- package/docs/examples/w-progress-bar_title_titleTextFontSize.html +1 -1
- package/docs/examples/w-progress-bar_value=0 (waiting).html +1 -1
- package/docs/examples/w-progress-bar_value=100 (finish).html +1 -1
- package/docs/examples/w-progress-bar_valueTextColor.html +1 -1
- package/docs/examples/w-progress-bar_valueTextFontSize.html +1 -1
- package/docs/examples/w-progress-circle_color.html +1 -1
- package/docs/examples/w-progress-circle_color_trackColor.html +1 -1
- package/docs/examples/w-progress-circle_color_trackColor_textColor.html +1 -1
- package/docs/examples/w-progress-circle_default.html +1 -1
- package/docs/examples/w-progress-circle_small size.html +1 -1
- package/docs/examples/w-progress-circle_tooltip.html +1 -1
- package/docs/examples/w-progress-circle_tooltip_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-progress-circle_tooltip_tooltipPaddingStyle.html +1 -1
- package/docs/examples/w-progress-circle_tooltip_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-progress-circle_tooltip_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-progress-circle_very small size.html +1 -1
- package/docs/examples/w-progress-circle_width.html +1 -1
- package/docs/examples/w-progress-circle_/344/270/255/346/226/207text.html +1 -1
- package/docs/examples/w-quill-vue-dyn_default.html +1 -1
- package/docs/examples/w-quill-vue-dyn_height.html +1 -1
- package/docs/examples/w-quill-vue-dyn_not editable.html +1 -1
- package/docs/examples/w-quill-vue-dyn_settings.html +1 -1
- package/docs/examples/w-segments-vertical_alignStart_alignEnd.html +1 -1
- package/docs/examples/w-segments-vertical_axisColor_tickColor_tickSize_tickLabelColor.html +1 -1
- package/docs/examples/w-segments-vertical_default.html +1 -1
- package/docs/examples/w-segments-vertical_events_textCanClick_segmentCanClick.html +1 -1
- package/docs/examples/w-segments-vertical_funFormatTickValue.html +1 -1
- package/docs/examples/w-segments-vertical_funSegmentBackgroundColor_funSegmentBorderColor.html +1 -1
- package/docs/examples/w-segments-vertical_items(continuous)_alignStart_alignEnd_textShift.html +1 -1
- package/docs/examples/w-segments-vertical_keyValueStart_keyValueEnd_keyText.html +1 -1
- package/docs/examples/w-segments-vertical_paddingStyle_textShift_width_height.html +1 -1
- package/docs/examples/w-segments-vertical_segmentBackgroundColor_segmentBorderColor_segmentSize.html +1 -1
- package/docs/examples/w-segments-vertical_slot support-left_width_paddingStyle_segmentBackgroundType.html +1 -1
- package/docs/examples/w-segments-vertical_slot support-right_width_paddingStyle_segmentBackgroundType.html +1 -1
- package/docs/examples/w-segments-vertical_slot text.html +1 -1
- package/docs/examples/w-segments-vertical_textFontSize_textColor_textBackgroundColor.html +1 -1
- package/docs/examples/w-segments-vertical_textTriangularSize_textTriangularRatio.html +1 -1
- package/docs/examples/w-segments-vertical_textWithPopup_slot text-popup.html +1 -1
- package/docs/examples/w-segments-vertical_title_titleColor_titleFontSize_titleShift.html +1 -1
- package/docs/examples/w-segments-vertical_valueMin_valueMax.html +1 -1
- package/docs/examples/w-segments-vertical_width_height.html +1 -1
- package/docs/examples/w-slider_default.html +1 -1
- package/docs/examples/w-slider_not editable.html +1 -1
- package/docs/examples/w-slider_not editable_progColorDisabled_progBackgroundColorDisabled_sliderBackgroundColorDisabled.html +1 -1
- package/docs/examples/w-slider_progBorderRadius.html +1 -1
- package/docs/examples/w-slider_progColor_progBackgroundColor_sliderBackgroundColor_sliderBackgroundColorHover.html +1 -1
- package/docs/examples/w-slider_progHeight.html +1 -1
- package/docs/examples/w-slider_sliderSize.html +1 -1
- package/docs/examples/w-slider_tooltipBorderRadius.html +1 -1
- package/docs/examples/w-slider_tooltipPlacementDist.html +1 -1
- package/docs/examples/w-slider_tooltipTextColor_tooltipBackgroundColor.html +1 -1
- package/docs/examples/w-slider_tooltipTextFontSize.html +1 -1
- package/docs/examples/w-slider_valueDecimal_valueMin_valueMax_valueStep.html +1 -1
- package/docs/examples/w-slider_valueMin_valueMax.html +1 -1
- package/docs/examples/w-slider_valueStep.html +1 -1
- package/docs/examples/w-switch_checkedSwitchCircleColor_checkedSwitchCircleColorHover_checkedSwitchBarColor_checkedSwitchBarColorHover.html +1 -1
- package/docs/examples/w-switch_default.html +1 -1
- package/docs/examples/w-switch_not editable.html +1 -1
- package/docs/examples/w-switch_not editable_checkedSwitchCircleColorDisabled_checkedSwitchBarColorDisabled_uncheckedSwitchCircleColorDisabled.html +1 -1
- package/docs/examples/w-switch_slot.html +1 -1
- package/docs/examples/w-switch_switchSize_textFontSize.html +1 -1
- package/docs/examples/w-switch_text.html +1 -1
- package/docs/examples/w-switch_text_textColor_textColorHover.html +1 -1
- package/docs/examples/w-switch_uncheckedSwitchCircleColor_uncheckedSwitchCircleColorHover_uncheckedSwitchBarColor_uncheckedSwitchBarColorHover.html +1 -1
- package/docs/examples/w-switch_use string (y or n).html +1 -1
- package/docs/examples/w-table-dyn_default.html +1 -1
- package/docs/examples/w-table-dyn_editable.html +1 -1
- package/docs/examples/w-table-dyn_editable_checkId.html +1 -1
- package/docs/examples/w-table-dyn_editable_checkId_opt.modifyDataWhenSave_save(call cmp. method).html +1 -1
- package/docs/examples/w-table-dyn_editable_checkId_successMsgFromAddRow_errorMsgFromAddRow.html +1 -1
- package/docs/examples/w-table-dyn_editable_inforPaddingStyle_menuBackgroundColor.html +1 -1
- package/docs/examples/w-table-dyn_editable_language_checkId_tooltipAddRow.html +1 -1
- package/docs/examples/w-table-dyn_editable_language_textLabelDataName_textPlaceholderDataName.html +1 -1
- package/docs/examples/w-table-dyn_editable_no enableInfor.html +1 -1
- package/docs/examples/w-table-dyn_editable_no enableMenu.html +1 -1
- package/docs/examples/w-table-dyn_editable_opt.beforeAddRow.html +1 -1
- package/docs/examples/w-table-dyn_editable_opt.kpConvertKeysWhenUploadData.html +1 -1
- package/docs/examples/w-table-dyn_editable_opt.optForUploadData.html +1 -1
- package/docs/examples/w-table-dyn_editable_slot btns.html +1 -1
- package/docs/examples/w-table-dyn_fixIds (fix id).html +1 -1
- package/docs/examples/w-table-dyn_hideIds (hide mappingId).html +1 -1
- package/docs/examples/w-table-dyn_name_description.html +1 -1
- package/docs/examples/w-table-dyn_no enableInfor.html +1 -1
- package/docs/examples/w-table-dyn_no enableMenu.html +1 -1
- package/docs/examples/w-table-dyn_opt.kpHead.html +1 -1
- package/docs/examples/w-table-dyn_removeIdsWhenDownload (remove id, mappingId, order, isActive).html +1 -1
- package/docs/examples/w-table-dyn_slot btns.html +1 -1
- package/docs/examples/w-table-dyn_slot infor (name_description).html +1 -1
- package/docs/examples/w-table-dyn_sortColIds (sort by order).html +1 -1
- package/docs/examples/w-text-int_borderRadius.html +1 -1
- package/docs/examples/w-text-int_border_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-text-int_border_borderRadius.html +1 -1
- package/docs/examples/w-text-int_border_buttonColor_buttonColorHover_buttonColorFocus.html +1 -1
- package/docs/examples/w-text-int_border_default.html +1 -1
- package/docs/examples/w-text-int_border_not editable.html +1 -1
- package/docs/examples/w-text-int_border_width.html +1 -1
- package/docs/examples/w-text-int_buttonColor_buttonColorHover_buttonColorFocus.html +1 -1
- package/docs/examples/w-text-int_buttonIconSize.html +1 -1
- package/docs/examples/w-text-int_default.html +1 -1
- package/docs/examples/w-text-int_not editable.html +1 -1
- package/docs/examples/w-text-int_textColor.html +1 -1
- package/docs/examples/w-text-int_textFontSize.html +1 -1
- package/docs/examples/w-text-int_width.html +1 -1
- package/docs/examples/w-text-select_a lot of items.html +1 -1
- package/docs/examples/w-text-select_borderRadius.html +1 -1
- package/docs/examples/w-text-select_border_a lot of items.html +1 -1
- package/docs/examples/w-text-select_border_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-text-select_border_borderRadius.html +1 -1
- package/docs/examples/w-text-select_border_default.html +1 -1
- package/docs/examples/w-text-select_border_events.html +1 -1
- package/docs/examples/w-text-select_border_expansionIconSize.html +1 -1
- package/docs/examples/w-text-select_border_fullwidth.html +1 -1
- package/docs/examples/w-text-select_border_itemPaddingStyle.html +1 -1
- package/docs/examples/w-text-select_border_itemTextColor_itemTextColorHover_itemBackgroundColor.html +1 -1
- package/docs/examples/w-text-select_border_itemTextFontSize_defItemHeight.html +1 -1
- package/docs/examples/w-text-select_border_items(string array).html +1 -1
- package/docs/examples/w-text-select_border_keyText.html +1 -1
- package/docs/examples/w-text-select_border_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text-select_border_leftIcon (material).html +1 -1
- package/docs/examples/w-text-select_border_leftIcon_leftIconColor_leftIconColorHover.html +1 -1
- package/docs/examples/w-text-select_border_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-text-select_border_maxHeight.html +1 -1
- package/docs/examples/w-text-select_border_maxWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-select_border_minWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-select_border_not editable.html +1 -1
- package/docs/examples/w-text-select_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-text-select_border_paddingStyle (thin style).html +1 -1
- package/docs/examples/w-text-select_border_rightIcon_rightIconColor_rightIconColorHover.html +1 -1
- package/docs/examples/w-text-select_border_rightIcon_rightIconSize.html +1 -1
- package/docs/examples/w-text-select_border_showExpansionIcon.html +1 -1
- package/docs/examples/w-text-select_border_slot item.html +1 -1
- package/docs/examples/w-text-select_border_slot select.html +1 -1
- package/docs/examples/w-text-select_border_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-text-select_border_textFontSize.html +1 -1
- package/docs/examples/w-text-select_border_with popup.html +1 -1
- package/docs/examples/w-text-select_default.html +1 -1
- package/docs/examples/w-text-select_events.html +1 -1
- package/docs/examples/w-text-select_expansionIconSize.html +1 -1
- package/docs/examples/w-text-select_fullwidth.html +1 -1
- package/docs/examples/w-text-select_itemPaddingStyle.html +1 -1
- package/docs/examples/w-text-select_itemTextColor_itemTextColorHover_itemBackgroundColor_itemBackgroundColorHover.html +1 -1
- package/docs/examples/w-text-select_itemTextFontSize_defItemHeight.html +1 -1
- package/docs/examples/w-text-select_items(string array).html +1 -1
- package/docs/examples/w-text-select_keyText.html +1 -1
- package/docs/examples/w-text-select_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text-select_leftIcon (material).html +1 -1
- package/docs/examples/w-text-select_leftIcon_leftIconColor_leftIconColorHover_leftIconColorFocus.html +1 -1
- package/docs/examples/w-text-select_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-text-select_maxHeight.html +1 -1
- package/docs/examples/w-text-select_maxWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-select_minWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-select_not editable.html +1 -1
- package/docs/examples/w-text-select_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-text-select_paddingStyle (thin style).html +1 -1
- package/docs/examples/w-text-select_rightIcon_rightIconColor_rightIconColorHover_rightIconColorFocus.html +1 -1
- package/docs/examples/w-text-select_rightIcon_rightIconSize.html +1 -1
- package/docs/examples/w-text-select_showExpansionIcon.html +1 -1
- package/docs/examples/w-text-select_slot item.html +1 -1
- package/docs/examples/w-text-select_slot select.html +1 -1
- package/docs/examples/w-text-select_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-text-select_textFontSize.html +1 -1
- package/docs/examples/w-text-select_with popup.html +1 -1
- package/docs/examples/w-text-suggest_a lot of items.html +1 -1
- package/docs/examples/w-text-suggest_borderRadius.html +1 -1
- package/docs/examples/w-text-suggest_border_a lot of items.html +1 -1
- package/docs/examples/w-text-suggest_border_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-text-suggest_border_borderRadius.html +1 -1
- package/docs/examples/w-text-suggest_border_default.html +1 -1
- package/docs/examples/w-text-suggest_border_events.html +1 -1
- package/docs/examples/w-text-suggest_border_expansionIconSize.html +1 -1
- package/docs/examples/w-text-suggest_border_fullwidth.html +1 -1
- package/docs/examples/w-text-suggest_border_itemPaddingStyle.html +1 -1
- package/docs/examples/w-text-suggest_border_itemTextColor_itemTextColorHover_itemBackgroundColor.html +1 -1
- package/docs/examples/w-text-suggest_border_itemTextFontSize_defItemHeight.html +1 -1
- package/docs/examples/w-text-suggest_border_items(string array).html +1 -1
- package/docs/examples/w-text-suggest_border_keyText.html +1 -1
- package/docs/examples/w-text-suggest_border_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text-suggest_border_leftIcon (material).html +1 -1
- package/docs/examples/w-text-suggest_border_leftIcon_leftIconColor_leftIconColorHover.html +1 -1
- package/docs/examples/w-text-suggest_border_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-text-suggest_border_noResultsText.html +1 -1
- package/docs/examples/w-text-suggest_border_not editable.html +1 -1
- package/docs/examples/w-text-suggest_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-text-suggest_border_paddingStyle (thin style).html +1 -1
- package/docs/examples/w-text-suggest_border_placeholder.html +1 -1
- package/docs/examples/w-text-suggest_border_rightIcon_rightIconColor_rightIconColorHover.html +1 -1
- package/docs/examples/w-text-suggest_border_rightIcon_rightIconSize.html +1 -1
- package/docs/examples/w-text-suggest_border_showExpansionIcon.html +1 -1
- package/docs/examples/w-text-suggest_border_showPanel(press enter to hide panel)_focused.html +1 -1
- package/docs/examples/w-text-suggest_border_slot item.html +1 -1
- package/docs/examples/w-text-suggest_border_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-text-suggest_border_textFontSize.html +1 -1
- package/docs/examples/w-text-suggest_border_with popup.html +1 -1
- package/docs/examples/w-text-suggest_default.html +1 -1
- package/docs/examples/w-text-suggest_events.html +1 -1
- package/docs/examples/w-text-suggest_expansionIconSize.html +1 -1
- package/docs/examples/w-text-suggest_fullwidth.html +1 -1
- package/docs/examples/w-text-suggest_itemPaddingStyle.html +1 -1
- package/docs/examples/w-text-suggest_itemTextColor_itemTextColorHover_itemBackgroundColor_itemBackgroundColorHover.html +1 -1
- package/docs/examples/w-text-suggest_itemTextFontSize_defItemHeight.html +1 -1
- package/docs/examples/w-text-suggest_items(string array).html +1 -1
- package/docs/examples/w-text-suggest_keyText.html +1 -1
- package/docs/examples/w-text-suggest_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text-suggest_leftIcon (material).html +1 -1
- package/docs/examples/w-text-suggest_leftIcon_leftIconColor_leftIconColorHover_leftIconColorFocus.html +1 -1
- package/docs/examples/w-text-suggest_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-text-suggest_maxHeight.html +1 -1
- package/docs/examples/w-text-suggest_maxWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-suggest_minWidth_autoFitMinWidth_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-text-suggest_noResultsText.html +1 -1
- package/docs/examples/w-text-suggest_not editable.html +1 -1
- package/docs/examples/w-text-suggest_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-text-suggest_paddingStyle (thin style).html +1 -1
- package/docs/examples/w-text-suggest_placeholder.html +1 -1
- package/docs/examples/w-text-suggest_rightIcon_rightIconColor_rightIconColorHover_rightIconColorFocus.html +1 -1
- package/docs/examples/w-text-suggest_rightIcon_rightIconSize.html +1 -1
- package/docs/examples/w-text-suggest_showExpansionIcon.html +1 -1
- package/docs/examples/w-text-suggest_showPanel(press enter to hide panel)_focused.html +1 -1
- package/docs/examples/w-text-suggest_slot item.html +1 -1
- package/docs/examples/w-text-suggest_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-text-suggest_textFontSize.html +1 -1
- package/docs/examples/w-text-suggest_with popup.html +1 -1
- package/docs/examples/w-text_border_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-text_border_borderRadius_paddingStyle.html +1 -1
- package/docs/examples/w-text_border_default.html +1 -1
- package/docs/examples/w-text_border_events.html +1 -1
- package/docs/examples/w-text_border_fullwidth.html +1 -1
- package/docs/examples/w-text_border_height_textFontSize_paddingStyle.html +1 -1
- package/docs/examples/w-text_border_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text_border_leftIcon (material).html +1 -1
- package/docs/examples/w-text_border_leftIcon_leftIconColor_leftIconColorHover.html +1 -1
- package/docs/examples/w-text_border_not editable.html +1 -1
- package/docs/examples/w-text_border_password.html +1 -1
- package/docs/examples/w-text_border_placeholder.html +1 -1
- package/docs/examples/w-text_border_rightIcon_rightIconColor_rightIconColorHover.html +1 -1
- package/docs/examples/w-text_border_textAlign.html +1 -1
- package/docs/examples/w-text_border_textColor.html +1 -1
- package/docs/examples/w-text_border_textFontSize.html +1 -1
- package/docs/examples/w-text_bottomLineBorderColor_bottomLineBorderColorHover_bottomLineBorderColorFocus.html +1 -1
- package/docs/examples/w-text_default.html +1 -1
- package/docs/examples/w-text_events.html +1 -1
- package/docs/examples/w-text_fullwidth.html +1 -1
- package/docs/examples/w-text_height_textFontSize.html +1 -1
- package/docs/examples/w-text_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-text_leftIcon (material).html +1 -1
- package/docs/examples/w-text_leftIcon_leftIconColor_leftIconColorHover_leftIconColorFocus.html +1 -1
- package/docs/examples/w-text_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-text_leftIcon_leftIconTooltip.html +1 -1
- package/docs/examples/w-text_not editable.html +1 -1
- package/docs/examples/w-text_password.html +1 -1
- package/docs/examples/w-text_placeholder.html +1 -1
- package/docs/examples/w-text_rightIcon.html +1 -1
- package/docs/examples/w-text_rightIcon_rightIconColor_rightIconColorHover_rightIconColorFocus.html +1 -1
- package/docs/examples/w-text_rightIcon_rightIconSize.html +1 -1
- package/docs/examples/w-text_rightIcon_rightIconTooltip.html +1 -1
- package/docs/examples/w-text_textAlign.html +1 -1
- package/docs/examples/w-text_textColor.html +1 -1
- package/docs/examples/w-text_textFontSize.html +1 -1
- package/docs/examples/w-textarea_border_backgroundColor_backgroundColorHover_backgroundColorFocus.html +1 -1
- package/docs/examples/w-textarea_border_borderRadius_paddingStyle.html +1 -1
- package/docs/examples/w-textarea_border_default.html +1 -1
- package/docs/examples/w-textarea_border_events.html +1 -1
- package/docs/examples/w-textarea_border_fullwidth.html +1 -1
- package/docs/examples/w-textarea_border_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-textarea_border_leftIcon (material).html +1 -1
- package/docs/examples/w-textarea_border_leftIcon_leftIconColor_leftIconColorHover.html +1 -1
- package/docs/examples/w-textarea_border_not editable.html +1 -1
- package/docs/examples/w-textarea_border_placeholder.html +1 -1
- package/docs/examples/w-textarea_border_rightIcon_rightIconColor_rightIconColorHover.html +1 -1
- package/docs/examples/w-textarea_border_textAlign.html +1 -1
- package/docs/examples/w-textarea_border_textColor.html +1 -1
- package/docs/examples/w-textarea_border_textFontSize.html +1 -1
- package/docs/examples/w-textarea_bottomLineBorderColor_bottomLineBorderColorHover_bottomLineBorderColorFocus.html +1 -1
- package/docs/examples/w-textarea_default.html +1 -1
- package/docs/examples/w-textarea_events.html +1 -1
- package/docs/examples/w-textarea_fullwidth.html +1 -1
- package/docs/examples/w-textarea_leftIcon (fontawesome).html +1 -1
- package/docs/examples/w-textarea_leftIcon (material).html +1 -1
- package/docs/examples/w-textarea_leftIcon_leftIconColor_leftIconColorHover_leftIconColorFocus.html +1 -1
- package/docs/examples/w-textarea_leftIcon_leftIconSize.html +1 -1
- package/docs/examples/w-textarea_leftIcon_leftIconTooltip.html +1 -1
- package/docs/examples/w-textarea_not editable.html +1 -1
- package/docs/examples/w-textarea_placeholder.html +1 -1
- package/docs/examples/w-textarea_rightIcon_rightIconColor_rightIconColorHover_rightIconColorFocus.html +1 -1
- package/docs/examples/w-textarea_rightIcon_rightIconSize_verticalAlign.html +1 -1
- package/docs/examples/w-textarea_rightIcon_rightIconTooltip_verticalAlign.html +1 -1
- package/docs/examples/w-textarea_rightIcon_verticalAlign.html +1 -1
- package/docs/examples/w-textarea_textAlign.html +1 -1
- package/docs/examples/w-textarea_textColor.html +1 -1
- package/docs/examples/w-textarea_textFontSize.html +1 -1
- package/docs/examples/w-threejs-vue-dyn_autoRotateDeg.html +1 -1
- package/docs/examples/w-threejs-vue-dyn_basicSize.html +1 -1
- package/docs/examples/w-timeday-range_between.html +1 -1
- package/docs/examples/w-timeday-range_borderRadius.html +1 -1
- package/docs/examples/w-timeday-range_border_between.html +1 -1
- package/docs/examples/w-timeday-range_border_borderRadius.html +1 -1
- package/docs/examples/w-timeday-range_border_default.html +1 -1
- package/docs/examples/w-timeday-range_border_empty.html +1 -1
- package/docs/examples/w-timeday-range_border_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeday-range_border_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeday-range_border_icon (material).html +1 -1
- package/docs/examples/w-timeday-range_border_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeday-range_border_iconTooltip.html +1 -1
- package/docs/examples/w-timeday-range_border_not editable.html +1 -1
- package/docs/examples/w-timeday-range_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeday-range_border_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeday-range_border_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday-range_border_pickColor.html +1 -1
- package/docs/examples/w-timeday-range_border_textColor.html +1 -1
- package/docs/examples/w-timeday-range_default.html +1 -1
- package/docs/examples/w-timeday-range_empty.html +1 -1
- package/docs/examples/w-timeday-range_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeday-range_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeday-range_icon (material).html +1 -1
- package/docs/examples/w-timeday-range_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeday-range_iconTooltip.html +1 -1
- package/docs/examples/w-timeday-range_icon_iconSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday-range_not editable.html +1 -1
- package/docs/examples/w-timeday-range_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeday-range_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeday-range_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday-range_pickColor.html +1 -1
- package/docs/examples/w-timeday-range_textColor.html +1 -1
- package/docs/examples/w-timeday_borderRadius.html +1 -1
- package/docs/examples/w-timeday_border_borderRadius.html +1 -1
- package/docs/examples/w-timeday_border_default.html +1 -1
- package/docs/examples/w-timeday_border_empty.html +1 -1
- package/docs/examples/w-timeday_border_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeday_border_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeday_border_icon (material).html +1 -1
- package/docs/examples/w-timeday_border_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeday_border_iconTooltip.html +1 -1
- package/docs/examples/w-timeday_border_not editable.html +1 -1
- package/docs/examples/w-timeday_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeday_border_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeday_border_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday_border_pickColor.html +1 -1
- package/docs/examples/w-timeday_border_textColor.html +1 -1
- package/docs/examples/w-timeday_default.html +1 -1
- package/docs/examples/w-timeday_empty.html +1 -1
- package/docs/examples/w-timeday_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeday_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeday_icon (material).html +1 -1
- package/docs/examples/w-timeday_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeday_iconTooltip.html +1 -1
- package/docs/examples/w-timeday_icon_iconSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday_not editable.html +1 -1
- package/docs/examples/w-timeday_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeday_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeday_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeday_pickColor.html +1 -1
- package/docs/examples/w-timeday_textColor.html +1 -1
- package/docs/examples/w-timeminute-range_between.html +1 -1
- package/docs/examples/w-timeminute-range_borderRadius.html +1 -1
- package/docs/examples/w-timeminute-range_border_between.html +1 -1
- package/docs/examples/w-timeminute-range_border_borderRadius.html +1 -1
- package/docs/examples/w-timeminute-range_border_default.html +1 -1
- package/docs/examples/w-timeminute-range_border_hourMin_hourMax.html +1 -1
- package/docs/examples/w-timeminute-range_border_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeminute-range_border_icon (material).html +1 -1
- package/docs/examples/w-timeminute-range_border_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeminute-range_border_iconTooltip.html +1 -1
- package/docs/examples/w-timeminute-range_border_minuteInter.html +1 -1
- package/docs/examples/w-timeminute-range_border_minutesCustom.html +1 -1
- package/docs/examples/w-timeminute-range_border_not editable.html +1 -1
- package/docs/examples/w-timeminute-range_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeminute-range_border_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeminute-range_border_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute-range_border_pickColor.html +1 -1
- package/docs/examples/w-timeminute-range_border_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-timeminute-range_default.html +1 -1
- package/docs/examples/w-timeminute-range_empty.html +1 -1
- package/docs/examples/w-timeminute-range_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeminute-range_hourMin_hourMax.html +1 -1
- package/docs/examples/w-timeminute-range_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeminute-range_icon (material).html +1 -1
- package/docs/examples/w-timeminute-range_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeminute-range_iconTooltip.html +1 -1
- package/docs/examples/w-timeminute-range_icon_iconSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute-range_minuteInter.html +1 -1
- package/docs/examples/w-timeminute-range_minutesCustom.html +1 -1
- package/docs/examples/w-timeminute-range_not editable.html +1 -1
- package/docs/examples/w-timeminute-range_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeminute-range_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeminute-range_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute-range_pickColor.html +1 -1
- package/docs/examples/w-timeminute-range_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-timeminute_borderRadius.html +1 -1
- package/docs/examples/w-timeminute_border_borderRadius.html +1 -1
- package/docs/examples/w-timeminute_border_default.html +1 -1
- package/docs/examples/w-timeminute_border_empty.html +1 -1
- package/docs/examples/w-timeminute_border_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeminute_border_hourMin_hourMax.html +1 -1
- package/docs/examples/w-timeminute_border_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeminute_border_icon (material).html +1 -1
- package/docs/examples/w-timeminute_border_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeminute_border_iconTooltip.html +1 -1
- package/docs/examples/w-timeminute_border_minuteInter.html +1 -1
- package/docs/examples/w-timeminute_border_minutesCustom.html +1 -1
- package/docs/examples/w-timeminute_border_not editable.html +1 -1
- package/docs/examples/w-timeminute_border_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeminute_border_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeminute_border_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute_border_pickColor.html +1 -1
- package/docs/examples/w-timeminute_border_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-timeminute_default.html +1 -1
- package/docs/examples/w-timeminute_empty.html +1 -1
- package/docs/examples/w-timeminute_empty_textEmpty.html +1 -1
- package/docs/examples/w-timeminute_hourMin_hourMax.html +1 -1
- package/docs/examples/w-timeminute_icon (fontawesome).html +1 -1
- package/docs/examples/w-timeminute_icon (material).html +1 -1
- package/docs/examples/w-timeminute_iconColor_iconColorHover_iconColorFoucs.html +1 -1
- package/docs/examples/w-timeminute_iconTooltip.html +1 -1
- package/docs/examples/w-timeminute_icon_iconSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute_minuteInter.html +1 -1
- package/docs/examples/w-timeminute_minutesCustom.html +1 -1
- package/docs/examples/w-timeminute_not editable.html +1 -1
- package/docs/examples/w-timeminute_paddingStyle (equal height to using icon).html +1 -1
- package/docs/examples/w-timeminute_paddingStyle (thin style)_placementDistY.html +1 -1
- package/docs/examples/w-timeminute_paddingStyle (thin style)_textFontSize_placementDistY.html +1 -1
- package/docs/examples/w-timeminute_pickColor.html +1 -1
- package/docs/examples/w-timeminute_textColor_expansionIconColor.html +1 -1
- package/docs/examples/w-tinymce-vue-dyn_default.html +1 -1
- package/docs/examples/w-tinymce-vue-dyn_height.html +1 -1
- package/docs/examples/w-tinymce-vue-dyn_not editable.html +1 -1
- package/docs/examples/w-tinymce-vue-dyn_settings.html +1 -1
- package/docs/examples/w-tooltip_auto flipping in dialog.html +1 -1
- package/docs/examples/w-tooltip_auto flipping in popup.html +1 -1
- package/docs/examples/w-tooltip_auto flipping in scroll panel.html +1 -1
- package/docs/examples/w-tooltip_autoFitMaxWidth.html +1 -1
- package/docs/examples/w-tooltip_autoFitMinWidth.html +1 -1
- package/docs/examples/w-tooltip_backgroundColor.html +1 -1
- package/docs/examples/w-tooltip_borderRadius.html +1 -1
- package/docs/examples/w-tooltip_default.html +1 -1
- package/docs/examples/w-tooltip_in scroll panel.html +1 -1
- package/docs/examples/w-tooltip_maxWidth.html +1 -1
- package/docs/examples/w-tooltip_minWidth.html +1 -1
- package/docs/examples/w-tooltip_no shadow_backgroundColor.html +1 -1
- package/docs/examples/w-tooltip_not editable.html +1 -1
- package/docs/examples/w-tooltip_paddingStyle.html +1 -1
- package/docs/examples/w-tooltip_placement.html +1 -1
- package/docs/examples/w-tooltip_placementDistY.html +1 -1
- package/docs/examples/w-tooltip_scroll in large zone.html +1 -1
- package/docs/examples/w-tooltip_shadowStyle.html +1 -1
- package/docs/examples/w-tooltip_slot for table_maxWidth.html +1 -1
- package/docs/examples/w-tooltip_textColor_backgroundColor.html +1 -1
- package/docs/examples/w-tooltip_textFontSize.html +1 -1
- package/docs/examples/w-tooltip_transitionTime.html +1 -1
- package/docs/examples/w-tree_activable_itemActive.html +1 -1
- package/docs/examples/w-tree_activable_itemActive_funActive.html +1 -1
- package/docs/examples/w-tree_activable_itemActive_itemTextColor_itemTextColorHover.html +1 -1
- package/docs/examples/w-tree_default.html +1 -1
- package/docs/examples/w-tree_defaultDisplayLevel.html +1 -1
- package/docs/examples/w-tree_draggable.html +1 -1
- package/docs/examples/w-tree_draggable_dgInsertLineColor_dgInsertBackgroundColor_dgBelongBackgroundColor.html +1 -1
- package/docs/examples/w-tree_draggable_dgPreviewOpacity_dgPreviewBorderWidth_dgBelongBackgroundColor.html +1 -1
- package/docs/examples/w-tree_draggable_dgTextDisabled_dgTextDisabledColor_dgTextDisabledPaddingLeft.html +1 -1
- package/docs/examples/w-tree_events.html +1 -1
- package/docs/examples/w-tree_filterKeywords_funFilter.html +1 -1
- package/docs/examples/w-tree_filterKeywords_noResultsText.html +1 -1
- package/docs/examples/w-tree_filterKeywords_noResultsText_selectable.html +1 -1
- package/docs/examples/w-tree_iconSize(20).html +1 -1
- package/docs/examples/w-tree_iconSize(20)_defItemHeight(24).html +1 -1
- package/docs/examples/w-tree_iconSize(30)_defItemHeight(36).html +1 -1
- package/docs/examples/w-tree_iconToggleColor_iconToggleBackgroundColor_iconToggleBackgroundColorHover.html +1 -1
- package/docs/examples/w-tree_indent.html +1 -1
- package/docs/examples/w-tree_itemRippleColor.html +1 -1
- package/docs/examples/w-tree_itemTextColor_itemTextColorHover_itemBackgroundColor_itemBackgroundColorHover.html +1 -1
- package/docs/examples/w-tree_keyPrimary_keyText_keyChildren.html +1 -1
- package/docs/examples/w-tree_no viewHeightMax.html +1 -1
- package/docs/examples/w-tree_operatable.html +1 -1
- package/docs/examples/w-tree_operatable_draggable.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameCancelBtnBackgroundColor_editorRenameCancelBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameCancelBtnIcon_editorRenameCancelBtnIconSize_editorRenameCancelBtnIconColor.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameCancelBtnText_editorRenameCancelBtnTextColor_editorRenameCancelBtnTextColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameContentBackgroundColor_editorRenameFooterBackgroundColor.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameInputTextColor_editorRenameInputTextBottomLineBorderColor_editorRenameInputTextBottomLineBorderColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameSaveBtnBackgroundColor_editorRenameSaveBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameSaveBtnIcon_editorRenameSaveBtnIconSize_editorRenameSaveBtnIconColor.html +1 -1
- package/docs/examples/w-tree_operatable_editorRenameSaveBtnText_editorRenameSaveBtnTextColor_editorRenameSaveBtnTextColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_funOperateItem.html +1 -1
- package/docs/examples/w-tree_operatable_operateBtnIconSize_operateBtnBackgroundColor_operateBtnBackgroundColorHover.html +1 -1
- package/docs/examples/w-tree_operatable_operateBtnTooltip_operateItemTextForRename_operateItemTextForInsertBefore.html +1 -1
- package/docs/examples/w-tree_operatable_operateItemBackgroundColor_operateItemBackgroundColorHover_operateItemTextColor.html +1 -1
- package/docs/examples/w-tree_operatable_operateItemHeight_operateItemIconSize_operateItemPaddingStyle.html +1 -1
- package/docs/examples/w-tree_operatable_operateItemIconForRename_operateItemIconForInsertBefore_operateItemIconForInsertChild.html +1 -1
- package/docs/examples/w-tree_operatable_operatePanelWidth_operatePanelHeight_operateItemIconSize.html +1 -1
- package/docs/examples/w-tree_paddingStyle.html +1 -1
- package/docs/examples/w-tree_selectable.html +1 -1
- package/docs/examples/w-tree_selectable_draggable.html +1 -1
- package/docs/examples/w-tree_slot.html +1 -1
- package/docs/examples/w-tree_slot_edit-text.html +1 -1
- package/docs/examples/w-tree_slot_iconUncheckedColor_iconUncheckedDisabledColor_iconCheckedColor.html +1 -1
- package/docs/examples/w-tree_slot_locked_selectable.html +1 -1
- package/docs/examples/w-tree_slot_operatable.html +1 -1
- package/docs/examples/w-tree_slot_selectable.html +1 -1
- package/docs/examples/w-tree_slot_selectable_draggable.html +1 -1
- package/docs/examples/w-tree_slot_selectable_iconSize(20)_defItemHeight(24).html +1 -1
- package/docs/examples/w-tree_slot_selectable_large data (100,000 items).html +1 -1
- package/docs/examples/w-tree_toggleItemsAll.html +1 -1
- package/docs/examples/w-tree_toggleItemsByFun.html +1 -1
- package/docs/examples/w-tree_viewHeightMax.html +1 -1
- package/docs/examples/w-vditor-dyn_default.html +1 -1
- package/docs/examples/w-vditor-dyn_fontSize.html +1 -1
- package/docs/examples/w-vditor-dyn_fullwidth.html +1 -1
- package/docs/examples/w-vditor-dyn_height.html +1 -1
- package/docs/examples/w-vditor-dyn_not editable.html +1 -1
- package/docs/examples/w-vditor-dyn_slot_keyHint(array).html +1 -1
- package/docs/examples/w-vditor-dyn_slot_keyHint(string).html +1 -1
- package/docs/examples/w-vditor-dyn_slot_keyHint(string)_hintBackgroundColor.html +1 -1
- package/docs/examples/w-vditor-dyn_slot_keyHint(string)_hintBorderRadius.html +1 -1
- package/docs/global.html +1 -1
- package/docs/index.html +1 -1
- package/docs/module-WAggridVueDyn.html +1 -1
- package/docs/module-WBadge.html +1 -1
- package/docs/module-WButtonChip.html +1 -1
- package/docs/module-WButtonCircle.html +1 -1
- package/docs/module-WCheckbox.html +1 -1
- package/docs/module-WCkeditorVueDyn.html +1 -1
- package/docs/module-WColorPickAlpha.html +1 -1
- package/docs/module-WColorPickHexagon.html +1 -1
- package/docs/module-WColorPickHexagonGray.html +1 -1
- package/docs/module-WColorPickHsv.html +1 -1
- package/docs/module-WColorPickHue.html +1 -1
- package/docs/module-WColorPickStripe.html +1 -1
- package/docs/module-WColorSelect.html +1 -1
- package/docs/module-WColorSelectInput.html +1 -1
- package/docs/module-WColorSelectPanel.html +1 -1
- package/docs/module-WColorSelectPanelBlock.html +1 -1
- package/docs/module-WColorSelectPanelHsva.html +1 -1
- package/docs/module-WConfirm.html +1 -1
- package/docs/module-WDialog.html +1 -1
- package/docs/module-WDrawer.html +1 -1
- package/docs/module-WDropfiles.html +1 -1
- package/docs/module-WDynamicList.html +1 -1
- package/docs/module-WEchartsVueDyn.html +1 -1
- package/docs/module-WExplorer.html +1 -1
- package/docs/module-WGroupBaggage.html +1 -1
- package/docs/module-WGroupChipCheck.html +1 -1
- package/docs/module-WGroupChipRadio.html +1 -1
- package/docs/module-WGroupDragdrop.html +1 -1
- package/docs/module-WGroupIconCheck.html +1 -1
- package/docs/module-WGroupIconRadio.html +1 -1
- package/docs/module-WGroupTags.html +1 -1
- package/docs/module-WHighchartsBitmapDyn.html +1 -1
- package/docs/module-WHighchartsVueDyn.html +1 -1
- package/docs/module-WHighstockVueDyn.html +1 -1
- package/docs/module-WIcon.html +1 -1
- package/docs/module-WIconLoading.html +1 -1
- package/docs/module-WImageCascadingDyn.html +1 -1
- package/docs/module-WImageLazy.html +1 -1
- package/docs/module-WImageViewerDyn.html +1 -1
- package/docs/module-WInputCheckbox.html +1 -1
- package/docs/module-WInputRadio.html +1 -1
- package/docs/module-WJsonView.html +1 -1
- package/docs/module-WLeafletVueDyn.html +1 -1
- package/docs/module-WLevelGrade.html +1 -1
- package/docs/module-WListCheck.html +1 -1
- package/docs/module-WListExpand.html +1 -1
- package/docs/module-WListExpandItem.html +1 -1
- package/docs/module-WListHorizontal.html +1 -1
- package/docs/module-WListItem.html +1 -1
- package/docs/module-WListRadio.html +1 -1
- package/docs/module-WListVertical.html +1 -1
- package/docs/module-WPanelAvatar.html +1 -1
- package/docs/module-WPanelBulge.html +1 -1
- package/docs/module-WPanelDivideHorizontal.html +1 -1
- package/docs/module-WPanelDivideVertical.html +1 -1
- package/docs/module-WPanelLabelItem.html +1 -1
- package/docs/module-WPanelScale.html +1 -1
- package/docs/module-WPanelScrolly.html +1 -1
- package/docs/module-WPanelScrollyCore.html +1 -1
- package/docs/module-WPanelStripe.html +1 -1
- package/docs/module-WPopup.html +1 -1
- package/docs/module-WPopupEditText.html +1 -1
- package/docs/module-WProgressBar.html +1 -1
- package/docs/module-WProgressCircle.html +1 -1
- package/docs/module-WQuillVueDyn.html +1 -1
- package/docs/module-WSegmentsVertical.html +1 -1
- package/docs/module-WShellBottomLine.html +1 -1
- package/docs/module-WShellEllipse.html +1 -1
- package/docs/module-WSlider.html +1 -1
- package/docs/module-WSwitch.html +1 -1
- package/docs/module-WTableDyn.html +1 -1
- package/docs/module-WText.html +1 -1
- package/docs/module-WTextCore.html +1 -1
- package/docs/module-WTextInt.html +1 -1
- package/docs/module-WTextIntCore.html +1 -1
- package/docs/module-WTextSelect.html +1 -1
- package/docs/module-WTextSuggest.html +1 -1
- package/docs/module-WTextSuggestCore.html +1 -1
- package/docs/module-WTextarea.html +1 -1
- package/docs/module-WTextareaCore.html +1 -1
- package/docs/module-WThreejsVueDyn.html +1 -1
- package/docs/module-WTimeday.html +1 -1
- package/docs/module-WTimedayCore.html +1 -1
- package/docs/module-WTimedayCoreRe.html +1 -1
- package/docs/module-WTimedayRange.html +1 -1
- package/docs/module-WTimedayRangeCore.html +1 -1
- package/docs/module-WTimeminute.html +1 -1
- package/docs/module-WTimeminuteCore.html +1 -1
- package/docs/module-WTimeminuteRange.html +1 -1
- package/docs/module-WTimeminuteRangeCore.html +1 -1
- package/docs/module-WTinymceVueDyn.html +1 -1
- package/docs/module-WTooltip.html +1 -1
- package/docs/module-WTree.html +1 -1
- package/docs/module-WTreeIconCheckbox.html +1 -1
- package/docs/module-WTreeIconToggle.html +1 -1
- package/docs/module-WVditorDyn.html +1 -1
- package/package.json +4 -4
- package/script.txt +10 -10
- package/src/components/WLeafletVueDyn.vue +1 -1
- package/src/js/convertToTreeWk.wk.umd.js +1 -1
- package/src/js/flattenTreeWk.wk.umd.js +1 -1
- package/toolg/gDistRollupWorkerFuncs.mjs +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const d="function"==typeof Buffer,l="function"==typeof TextDecoder?new TextDecoder:void 0,b=("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")),I=(d=>{let l={};return b.forEach(((d,b)=>l[d]=b)),l})(),i=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,m=String.fromCharCode.bind(String),Z="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):d=>new Uint8Array(Array.prototype.slice.call(d,0)),X=d=>d.replace(/[^A-Za-z0-9\+\/]/g,""),c=d=>{let l,I,i,m,Z="";const X=d.length%3;for(let X=0;X<d.length;){if((I=d.charCodeAt(X++))>255||(i=d.charCodeAt(X++))>255||(m=d.charCodeAt(X++))>255)throw new TypeError("invalid character found");l=I<<16|i<<8|m,Z+=b[l>>18&63]+b[l>>12&63]+b[l>>6&63]+b[63&l]}return X?Z.slice(0,X-3)+"===".substring(X):Z},y=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,C=d=>{switch(d.length){case 4:var l=((7&d.charCodeAt(0))<<18|(63&d.charCodeAt(1))<<12|(63&d.charCodeAt(2))<<6|63&d.charCodeAt(3))-65536;return m(55296+(l>>>10))+m(56320+(1023&l));case 3:return m((15&d.charCodeAt(0))<<12|(63&d.charCodeAt(1))<<6|63&d.charCodeAt(2));default:return m((31&d.charCodeAt(0))<<6|63&d.charCodeAt(1))}},K=d=>d.replace(y,C),W=d=>{if(d=d.replace(/\s+/g,""),!i.test(d))throw new TypeError("malformed base64.");d+="==".slice(2-(3&d.length));let l,b,Z,X="";for(let i=0;i<d.length;)l=I[d.charAt(i++)]<<18|I[d.charAt(i++)]<<12|(b=I[d.charAt(i++)])<<6|(Z=I[d.charAt(i++)]),X+=64===b?m(l>>16&255):64===Z?m(l>>16&255,l>>8&255):m(l>>16&255,l>>8&255,255&l);return X},G="function"==typeof atob?d=>atob(X(d)):d?d=>Buffer.from(d,"base64").toString("binary"):W,p=d?d=>Z(Buffer.from(d,"base64")):d=>Z(G(d).split("").map((d=>d.charCodeAt(0)))),H=d?d=>Buffer.from(d,"base64").toString("utf8"):l?d=>l.decode(p(d)):d=>K(G(d)),u=d=>X(d.replace(/[-_]/g,(d=>"-"==d?"+":"/"))),h=d=>H(u(d)),V=h;var Y={};!function(d){var l=Object.prototype.hasOwnProperty,b="~";function I(){}function i(d,l,b){this.fn=d,this.context=l,this.once=b||!1}function m(d,l,I,m,Z){if("function"!=typeof I)throw new TypeError("The listener must be a function");var X=new i(I,m||d,Z),c=b?b+l:l;return d._events[c]?d._events[c].fn?d._events[c]=[d._events[c],X]:d._events[c].push(X):(d._events[c]=X,d._eventsCount++),d}function Z(d,l){0==--d._eventsCount?d._events=new I:delete d._events[l]}function X(){this._events=new I,this._eventsCount=0}Object.create&&(I.prototype=Object.create(null),(new I).__proto__||(b=!1)),X.prototype.eventNames=function(){var d,I,i=[];if(0===this._eventsCount)return i;for(I in d=this._events)l.call(d,I)&&i.push(b?I.slice(1):I);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(d)):i},X.prototype.listeners=function(d){var l=b?b+d:d,I=this._events[l];if(!I)return[];if(I.fn)return[I.fn];for(var i=0,m=I.length,Z=new Array(m);i<m;i++)Z[i]=I[i].fn;return Z},X.prototype.listenerCount=function(d){var l=b?b+d:d,I=this._events[l];return I?I.fn?1:I.length:0},X.prototype.emit=function(d,l,I,i,m,Z){var X=b?b+d:d;if(!this._events[X])return!1;var c,y,C=this._events[X],K=arguments.length;if(C.fn){switch(C.once&&this.removeListener(d,C.fn,void 0,!0),K){case 1:return C.fn.call(C.context),!0;case 2:return C.fn.call(C.context,l),!0;case 3:return C.fn.call(C.context,l,I),!0;case 4:return C.fn.call(C.context,l,I,i),!0;case 5:return C.fn.call(C.context,l,I,i,m),!0;case 6:return C.fn.call(C.context,l,I,i,m,Z),!0}for(y=1,c=new Array(K-1);y<K;y++)c[y-1]=arguments[y];C.fn.apply(C.context,c)}else{var W,G=C.length;for(y=0;y<G;y++)switch(C[y].once&&this.removeListener(d,C[y].fn,void 0,!0),K){case 1:C[y].fn.call(C[y].context);break;case 2:C[y].fn.call(C[y].context,l);break;case 3:C[y].fn.call(C[y].context,l,I);break;case 4:C[y].fn.call(C[y].context,l,I,i);break;default:if(!c)for(W=1,c=new Array(K-1);W<K;W++)c[W-1]=arguments[W];C[y].fn.apply(C[y].context,c)}}return!0},X.prototype.on=function(d,l,b){return m(this,d,l,b,!1)},X.prototype.once=function(d,l,b){return m(this,d,l,b,!0)},X.prototype.removeListener=function(d,l,I,i){var m=b?b+d:d;if(!this._events[m])return this;if(!l)return Z(this,m),this;var X=this._events[m];if(X.fn)X.fn!==l||i&&!X.once||I&&X.context!==I||Z(this,m);else{for(var c=0,y=[],C=X.length;c<C;c++)(X[c].fn!==l||i&&!X[c].once||I&&X[c].context!==I)&&y.push(X[c]);y.length?this._events[m]=1===y.length?y[0]:y:Z(this,m)}return this},X.prototype.removeAllListeners=function(d){var l;return d?(l=b?b+d:d,this._events[l]&&Z(this,l)):(this._events=new I,this._eventsCount=0),this},X.prototype.off=X.prototype.removeListener,X.prototype.addListener=X.prototype.on,X.prefixed=b,X.EventEmitter=X,d.exports=X}({get exports(){return Y},set exports(d){Y=d}});var t=Y;let J;!function(){if("browser"!==("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let d=V("CgoKdmFyIHQ9QXJyYXkuaXNBcnJheSxyPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCxlPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsbj1yfHxlfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLG89bi5TeW1ib2wsdT1PYmplY3QucHJvdG90eXBlLGk9dS5oYXNPd25Qcm9wZXJ0eSxjPXUudG9TdHJpbmcsYT1vP28udG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBmPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIGw9IltvYmplY3QgTnVsbF0iLHM9IltvYmplY3QgVW5kZWZpbmVkXSIscD1vP28udG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIGIodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD9zOmw6cCYmcCBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIHI9aS5jYWxsKHQsYSksZT10W2FdO3RyeXt0W2FdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89Yy5jYWxsKHQpO3JldHVybiBuJiYocj90W2FdPWU6ZGVsZXRlIHRbYV0pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBmLmNhbGwodCl9KHQpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH12YXIgeT0iW29iamVjdCBTeW1ib2xdIjtmdW5jdGlvbiBoKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8dih0KSYmYih0KT09eX12YXIgZD0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxqPS9eXHcqJC87ZnVuY3Rpb24gZyhyLGUpe2lmKHQocikpcmV0dXJuITE7dmFyIG49dHlwZW9mIHI7cmV0dXJuISgibnVtYmVyIiE9biYmInN5bWJvbCIhPW4mJiJib29sZWFuIiE9biYmbnVsbCE9ciYmIWgocikpfHwoai50ZXN0KHIpfHwhZC50ZXN0KHIpfHxudWxsIT1lJiZyIGluIE9iamVjdChlKSl9ZnVuY3Rpb24gXyh0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1yfHwiZnVuY3Rpb24iPT1yKX12YXIgTz0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsbT0iW29iamVjdCBGdW5jdGlvbl0iLHc9IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIixBPSJbb2JqZWN0IFByb3h5XSI7ZnVuY3Rpb24gUyh0KXtpZighXyh0KSlyZXR1cm4hMTt2YXIgcj1iKHQpO3JldHVybiByPT1tfHxyPT13fHxyPT1PfHxyPT1BfXZhciB4LFA9blsiX19jb3JlLWpzX3NoYXJlZF9fIl0sej0oeD0vW14uXSskLy5leGVjKFAmJlAua2V5cyYmUC5rZXlzLklFX1BST1RPfHwiIikpPyJTeW1ib2woc3JjKV8xLiIreDoiIjt2YXIgRT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gSSh0KXtpZihudWxsIT10KXt0cnl7cmV0dXJuIEUuY2FsbCh0KX1jYXRjaCh0KXt9dHJ5e3JldHVybiB0KyIifWNhdGNoKHQpe319cmV0dXJuIiJ9dmFyIE49L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sVD1GdW5jdGlvbi5wcm90b3R5cGUsJD1PYmplY3QucHJvdG90eXBlLGs9VC50b1N0cmluZyxDPSQuaGFzT3duUHJvcGVydHksRj1SZWdFeHAoIl4iK2suY2FsbChDKS5yZXBsYWNlKC9bXFxeJC4qKz8oKVtcXXt9fF0vZywiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKTtmdW5jdGlvbiBNKHQpe3JldHVybiEoIV8odCl8fChyPXQseiYmeiBpbiByKSkmJihTKHQpP0Y6TikudGVzdChJKHQpKTt2YXIgcn1mdW5jdGlvbiBVKHQscil7dmFyIGU9ZnVuY3Rpb24odCxyKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtyXX0odCxyKTtyZXR1cm4gTShlKT9lOnZvaWQgMH12YXIgRD1VKE9iamVjdCwiY3JlYXRlIik7dmFyIEI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgUj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIEwodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19ZnVuY3Rpb24gVih0LHIpe3JldHVybiB0PT09cnx8dCE9dCYmciE9cn1mdW5jdGlvbiBLKHQscil7Zm9yKHZhciBlPXQubGVuZ3RoO2UtLTspaWYoVih0W2VdWzBdLHIpKXJldHVybiBlO3JldHVybi0xfUwucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1EP0QobnVsbCk6e30sdGhpcy5zaXplPTB9LEwucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj10aGlzLmhhcyh0KSYmZGVsZXRlIHRoaXMuX19kYXRhX19bdF07cmV0dXJuIHRoaXMuc2l6ZS09cj8xOjAscn0sTC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX187aWYoRCl7dmFyIGU9clt0XTtyZXR1cm4iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI9PT1lP3ZvaWQgMDplfXJldHVybiBCLmNhbGwocix0KT9yW3RdOnZvaWQgMH0sTC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX187cmV0dXJuIEQ/dm9pZCAwIT09clt0XTpSLmNhbGwocix0KX0sTC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsZVt0XT1EJiZ2b2lkIDA9PT1yPyJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjpyLHRoaXN9O3ZhciBXPUFycmF5LnByb3RvdHlwZS5zcGxpY2U7ZnVuY3Rpb24gcSh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1xLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9LHEucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fLGU9SyhyLHQpO3JldHVybiEoZTwwKSYmKGU9PXIubGVuZ3RoLTE/ci5wb3AoKTpXLmNhbGwocixlLDEpLC0tdGhpcy5zaXplLCEwKX0scS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1LKHIsdCk7cmV0dXJuIGU8MD92b2lkIDA6cltlXVsxXX0scS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBLKHRoaXMuX19kYXRhX18sdCk+LTF9LHEucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1LKGUsdCk7cmV0dXJuIG48MD8oKyt0aGlzLnNpemUsZS5wdXNoKFt0LHJdKSk6ZVtuXVsxXT1yLHRoaXN9O3ZhciBHPVUobiwiTWFwIik7ZnVuY3Rpb24gSCh0LHIpe3ZhciBlLG4sbz10Ll9fZGF0YV9fO3JldHVybigic3RyaW5nIj09KG49dHlwZW9mKGU9cikpfHwibnVtYmVyIj09bnx8InN5bWJvbCI9PW58fCJib29sZWFuIj09bj8iX19wcm90b19fIiE9PWU6bnVsbD09PWUpP29bInN0cmluZyI9PXR5cGVvZiByPyJzdHJpbmciOiJoYXNoIl06by5tYXB9ZnVuY3Rpb24gSih0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1KLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IEwsbWFwOm5ldyhHfHxxKSxzdHJpbmc6bmV3IEx9fSxKLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9SCh0aGlzLHQpLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxKLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIEgodGhpcyx0KS5nZXQodCl9LEoucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gSCh0aGlzLHQpLmhhcyh0KX0sSi5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9SCh0aGlzLHQpLG49ZS5zaXplO3JldHVybiBlLnNldCh0LHIpLHRoaXMuc2l6ZSs9ZS5zaXplPT1uPzA6MSx0aGlzfTt2YXIgUT0iRXhwZWN0ZWQgYSBmdW5jdGlvbiI7ZnVuY3Rpb24gWCh0LHIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0fHxudWxsIT1yJiYiZnVuY3Rpb24iIT10eXBlb2Ygcil0aHJvdyBuZXcgVHlwZUVycm9yKFEpO3ZhciBlPWZ1bmN0aW9uKCl7dmFyIG49YXJndW1lbnRzLG89cj9yLmFwcGx5KHRoaXMsbik6blswXSx1PWUuY2FjaGU7aWYodS5oYXMobykpcmV0dXJuIHUuZ2V0KG8pO3ZhciBpPXQuYXBwbHkodGhpcyxuKTtyZXR1cm4gZS5jYWNoZT11LnNldChvLGkpfHx1LGl9O3JldHVybiBlLmNhY2hlPW5ldyhYLkNhY2hlfHxKKSxlfVguQ2FjaGU9Sjt2YXIgWSxaLHR0LHJ0PS9bXi5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCQpKS9nLGV0PS9cXChcXCk/L2csbnQ9KFk9ZnVuY3Rpb24odCl7dmFyIHI9W107cmV0dXJuIDQ2PT09dC5jaGFyQ29kZUF0KDApJiZyLnB1c2goIiIpLHQucmVwbGFjZShydCwoZnVuY3Rpb24odCxlLG4sbyl7ci5wdXNoKG4/by5yZXBsYWNlKGV0LCIkMSIpOmV8fHQpfSkpLHJ9LFo9WChZLChmdW5jdGlvbih0KXtyZXR1cm4gNTAwPT09dHQuc2l6ZSYmdHQuY2xlYXIoKSx0fSkpLHR0PVouY2FjaGUsWiksb3Q9bnQ7ZnVuY3Rpb24gdXQodCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz1BcnJheShuKTsrK2U8bjspb1tlXT1yKHRbZV0sZSx0KTtyZXR1cm4gb312YXIgaXQ9MS8wLGN0PW8/by5wcm90b3R5cGU6dm9pZCAwLGF0PWN0P2N0LnRvU3RyaW5nOnZvaWQgMDtmdW5jdGlvbiBmdChyKXtpZigic3RyaW5nIj09dHlwZW9mIHIpcmV0dXJuIHI7aWYodChyKSlyZXR1cm4gdXQocixmdCkrIiI7aWYoaChyKSlyZXR1cm4gYXQ/YXQuY2FsbChyKToiIjt2YXIgZT1yKyIiO3JldHVybiIwIj09ZSYmMS9yPT0taXQ/Ii0wIjplfWZ1bmN0aW9uIGx0KHIsZSl7cmV0dXJuIHQocik/cjpnKHIsZSk/W3JdOm90KGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10PyIiOmZ0KHQpfShyKSl9dmFyIHN0PTEvMDtmdW5jdGlvbiBwdCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fGgodCkpcmV0dXJuIHQ7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LXN0PyItMCI6cn1mdW5jdGlvbiBidCh0LHIpe2Zvcih2YXIgZT0wLG49KHI9bHQocix0KSkubGVuZ3RoO251bGwhPXQmJmU8bjspdD10W3B0KHJbZSsrXSldO3JldHVybiBlJiZlPT1uP3Q6dm9pZCAwfWZ1bmN0aW9uIHZ0KHQscixlKXt2YXIgbj1udWxsPT10P3ZvaWQgMDpidCh0LHIpO3JldHVybiB2b2lkIDA9PT1uP2U6bn1mdW5jdGlvbiB5dCh0KXtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBodCh0KXtyZXR1cm4hKCF5dCh0KXx8IiI9PT10KX1mdW5jdGlvbiBkdCh0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBqdCh0KXtpZihkdCh0KSl7Zm9yKGxldCByIGluIHQpcmV0dXJuITA7cmV0dXJuITF9cmV0dXJuITF9ZnVuY3Rpb24gZ3QodCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBfdCh0KXtyZXR1cm4gdCE9dH1mdW5jdGlvbiBPdCh0KXtyZXR1cm4hIWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IFVuZGVmaW5lZF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuIltvYmplY3QgTnVsbF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KXx8KCEhZnVuY3Rpb24odCl7aWYoZHQodCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfSh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISgheXQodCl8fCIiIT09dCl9KHQpfHwoISFmdW5jdGlvbih0KXtyZXR1cm4hIWd0KHQpJiYwPT09dC5sZW5ndGh9KHQpfHwhIV90KHQpKSkpKX1mdW5jdGlvbiBtdCh0KXtyZXR1cm4hIWd0KHQpJiYoMCE9PXQubGVuZ3RoJiYoMSE9PXQubGVuZ3RofHwhT3QodFswXSkpKX12YXIgd3Q9IltvYmplY3QgQm9vbGVhbl0iO2Z1bmN0aW9uIEF0KHQpe3JldHVybiEwPT09KHI9dCl8fCExPT09cnx8dihyKSYmYihyKT09d3Q7dmFyIHJ9ZnVuY3Rpb24gU3QodCl7dmFyIHI9dGhpcy5fX2RhdGFfXz1uZXcgcSh0KTt0aGlzLnNpemU9ci5zaXplfVN0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189bmV3IHEsdGhpcy5zaXplPTB9LFN0LnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPXIuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemU9ci5zaXplLGV9LFN0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KHQpfSxTdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX0sU3QucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoZSBpbnN0YW5jZW9mIHEpe3ZhciBuPWUuX19kYXRhX187aWYoIUd8fG4ubGVuZ3RoPDE5OSlyZXR1cm4gbi5wdXNoKFt0LHJdKSx0aGlzLnNpemU9KytlLnNpemUsdGhpcztlPXRoaXMuX19kYXRhX189bmV3IEoobil9cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplPWUuc2l6ZSx0aGlzfTtmdW5jdGlvbiB4dCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5fX2RhdGFfXz1uZXcgSjsrK3I8ZTspdGhpcy5hZGQodFtyXSl9ZnVuY3Rpb24gUHQodCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytlPG47KWlmKHIodFtlXSxlLHQpKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIHp0KHQscil7cmV0dXJuIHQuaGFzKHIpfXh0LnByb3RvdHlwZS5hZGQ9eHQucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uc2V0KHQsIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iKSx0aGlzfSx4dC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX07dmFyIEV0PTEsSXQ9MjtmdW5jdGlvbiBOdCh0LHIsZSxuLG8sdSl7dmFyIGk9ZSZFdCxjPXQubGVuZ3RoLGE9ci5sZW5ndGg7aWYoYyE9YSYmIShpJiZhPmMpKXJldHVybiExO3ZhciBmPXUuZ2V0KHQpLGw9dS5nZXQocik7aWYoZiYmbClyZXR1cm4gZj09ciYmbD09dDt2YXIgcz0tMSxwPSEwLGI9ZSZJdD9uZXcgeHQ6dm9pZCAwO2Zvcih1LnNldCh0LHIpLHUuc2V0KHIsdCk7KytzPGM7KXt2YXIgdj10W3NdLHk9cltzXTtpZihuKXZhciBoPWk/bih5LHYscyxyLHQsdSk6bih2LHkscyx0LHIsdSk7aWYodm9pZCAwIT09aCl7aWYoaCljb250aW51ZTtwPSExO2JyZWFrfWlmKGIpe2lmKCFQdChyLChmdW5jdGlvbih0LHIpe2lmKCF6dChiLHIpJiYodj09PXR8fG8odix0LGUsbix1KSkpcmV0dXJuIGIucHVzaChyKX0pKSl7cD0hMTticmVha319ZWxzZSBpZih2IT09eSYmIW8odix5LGUsbix1KSl7cD0hMTticmVha319cmV0dXJuIHUuZGVsZXRlKHQpLHUuZGVsZXRlKHIpLHB9dmFyIFR0PW4uVWludDhBcnJheTtmdW5jdGlvbiAkdCh0KXt2YXIgcj0tMSxlPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtlWysrcl09W24sdF19KSksZX1mdW5jdGlvbiBrdCh0KXt2YXIgcj0tMSxlPUFycmF5KHQuc2l6ZSk7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVsrK3JdPXR9KSksZX12YXIgQ3Q9MSxGdD0yLE10PSJbb2JqZWN0IEJvb2xlYW5dIixVdD0iW29iamVjdCBEYXRlXSIsRHQ9IltvYmplY3QgRXJyb3JdIixCdD0iW29iamVjdCBNYXBdIixSdD0iW29iamVjdCBOdW1iZXJdIixMdD0iW29iamVjdCBSZWdFeHBdIixWdD0iW29iamVjdCBTZXRdIixLdD0iW29iamVjdCBTdHJpbmddIixXdD0iW29iamVjdCBTeW1ib2xdIixxdD0iW29iamVjdCBBcnJheUJ1ZmZlcl0iLEd0PSJbb2JqZWN0IERhdGFWaWV3XSIsSHQ9bz9vLnByb3RvdHlwZTp2b2lkIDAsSnQ9SHQ/SHQudmFsdWVPZjp2b2lkIDA7ZnVuY3Rpb24gUXQodCxyKXtmb3IodmFyIGU9LTEsbj1yLmxlbmd0aCxvPXQubGVuZ3RoOysrZTxuOyl0W28rZV09cltlXTtyZXR1cm4gdH1mdW5jdGlvbiBYdChyLGUsbil7dmFyIG89ZShyKTtyZXR1cm4gdChyKT9vOlF0KG8sbihyKSl9ZnVuY3Rpb24gWXQoKXtyZXR1cm5bXX12YXIgWnQ9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSx0cj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLHJyPXRyP2Z1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P1tdOih0PU9iamVjdCh0KSxmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aCxvPTAsdT1bXTsrK2U8bjspe3ZhciBpPXRbZV07cihpLGUsdCkmJih1W28rK109aSl9cmV0dXJuIHV9KHRyKHQpLChmdW5jdGlvbihyKXtyZXR1cm4gWnQuY2FsbCh0LHIpfSkpKX06WXQsZXI9cnI7ZnVuY3Rpb24gbnIodCl7cmV0dXJuIHYodCkmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT1iKHQpfXZhciBvcj1PYmplY3QucHJvdG90eXBlLHVyPW9yLmhhc093blByb3BlcnR5LGlyPW9yLnByb3BlcnR5SXNFbnVtZXJhYmxlLGNyPW5yKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/bnI6ZnVuY3Rpb24odCl7cmV0dXJuIHYodCkmJnVyLmNhbGwodCwiY2FsbGVlIikmJiFpci5jYWxsKHQsImNhbGxlZSIpfTt2YXIgYXI9Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxmcj1hciYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLGxyPWZyJiZmci5leHBvcnRzPT09YXI/bi5CdWZmZXI6dm9pZCAwLHNyPShscj9sci5pc0J1ZmZlcjp2b2lkIDApfHxmdW5jdGlvbigpe3JldHVybiExfSxwcj05MDA3MTk5MjU0NzQwOTkxLGJyPS9eKD86MHxbMS05XVxkKikkLztmdW5jdGlvbiB2cih0LHIpe3ZhciBlPXR5cGVvZiB0O3JldHVybiEhKHI9bnVsbD09cj9wcjpyKSYmKCJudW1iZXIiPT1lfHwic3ltYm9sIiE9ZSYmYnIudGVzdCh0KSkmJnQ+LTEmJnQlMT09MCYmdDxyfXZhciB5cj05MDA3MTk5MjU0NzQwOTkxO2Z1bmN0aW9uIGhyKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD4tMSYmdCUxPT0wJiZ0PD15cn12YXIgZHI9e307ZnVuY3Rpb24ganIodCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0KHIpfX1kclsiW29iamVjdCBGbG9hdDMyQXJyYXldIl09ZHJbIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPWRyWyJbb2JqZWN0IEludDhBcnJheV0iXT1kclsiW29iamVjdCBJbnQxNkFycmF5XSJdPWRyWyJbb2JqZWN0IEludDMyQXJyYXldIl09ZHJbIltvYmplY3QgVWludDhBcnJheV0iXT1kclsiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1kclsiW29iamVjdCBVaW50MTZBcnJheV0iXT1kclsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxkclsiW29iamVjdCBBcmd1bWVudHNdIl09ZHJbIltvYmplY3QgQXJyYXldIl09ZHJbIltvYmplY3QgQXJyYXlCdWZmZXJdIl09ZHJbIltvYmplY3QgQm9vbGVhbl0iXT1kclsiW29iamVjdCBEYXRhVmlld10iXT1kclsiW29iamVjdCBEYXRlXSJdPWRyWyJbb2JqZWN0IEVycm9yXSJdPWRyWyJbb2JqZWN0IEZ1bmN0aW9uXSJdPWRyWyJbb2JqZWN0IE1hcF0iXT1kclsiW29iamVjdCBOdW1iZXJdIl09ZHJbIltvYmplY3QgT2JqZWN0XSJdPWRyWyJbb2JqZWN0IFJlZ0V4cF0iXT1kclsiW29iamVjdCBTZXRdIl09ZHJbIltvYmplY3QgU3RyaW5nXSJdPWRyWyJbb2JqZWN0IFdlYWtNYXBdIl09ITE7dmFyIGdyPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsX3I9Z3ImJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSxPcj1fciYmX3IuZXhwb3J0cz09PWdyJiZyLnByb2Nlc3MsbXI9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9X3ImJl9yLnJlcXVpcmUmJl9yLnJlcXVpcmUoInV0aWwiKS50eXBlcztyZXR1cm4gdHx8T3ImJk9yLmJpbmRpbmcmJk9yLmJpbmRpbmcoInV0aWwiKX1jYXRjaCh0KXt9fSgpLHdyPW1yJiZtci5pc1R5cGVkQXJyYXksQXI9d3I/anIod3IpOmZ1bmN0aW9uKHQpe3JldHVybiB2KHQpJiZocih0Lmxlbmd0aCkmJiEhZHJbYih0KV19LFNyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24geHIocixlKXt2YXIgbj10KHIpLG89IW4mJmNyKHIpLHU9IW4mJiFvJiZzcihyKSxpPSFuJiYhbyYmIXUmJkFyKHIpLGM9bnx8b3x8dXx8aSxhPWM/ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1BcnJheSh0KTsrK2U8dDspbltlXT1yKGUpO3JldHVybiBufShyLmxlbmd0aCxTdHJpbmcpOltdLGY9YS5sZW5ndGg7Zm9yKHZhciBsIGluIHIpIWUmJiFTci5jYWxsKHIsbCl8fGMmJigibGVuZ3RoIj09bHx8dSYmKCJvZmZzZXQiPT1sfHwicGFyZW50Ij09bCl8fGkmJigiYnVmZmVyIj09bHx8ImJ5dGVMZW5ndGgiPT1sfHwiYnl0ZU9mZnNldCI9PWwpfHx2cihsLGYpKXx8YS5wdXNoKGwpO3JldHVybiBhfXZhciBQcj1PYmplY3QucHJvdG90eXBlO2Z1bmN0aW9uIHpyKHQpe3ZhciByPXQmJnQuY29uc3RydWN0b3I7cmV0dXJuIHQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIHImJnIucHJvdG90eXBlfHxQcil9ZnVuY3Rpb24gRXIodCxyKXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQocihlKSl9fXZhciBJcj1FcihPYmplY3Qua2V5cyxPYmplY3QpLE5yPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gVHIodCl7aWYoIXpyKHQpKXJldHVybiBJcih0KTt2YXIgcj1bXTtmb3IodmFyIGUgaW4gT2JqZWN0KHQpKU5yLmNhbGwodCxlKSYmImNvbnN0cnVjdG9yIiE9ZSYmci5wdXNoKGUpO3JldHVybiByfWZ1bmN0aW9uICRyKHQpe3JldHVybiBudWxsIT10JiZocih0Lmxlbmd0aCkmJiFTKHQpfWZ1bmN0aW9uIGtyKHQpe3JldHVybiAkcih0KT94cih0KTpUcih0KX1mdW5jdGlvbiBDcih0KXtyZXR1cm4gWHQodCxrcixlcil9dmFyIEZyPTEsTXI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgVXI9VShuLCJEYXRhVmlldyIpLERyPVUobiwiUHJvbWlzZSIpLEJyPVUobiwiU2V0IiksUnI9VShuLCJXZWFrTWFwIiksTHI9IltvYmplY3QgTWFwXSIsVnI9IltvYmplY3QgUHJvbWlzZV0iLEtyPSJbb2JqZWN0IFNldF0iLFdyPSJbb2JqZWN0IFdlYWtNYXBdIixxcj0iW29iamVjdCBEYXRhVmlld10iLEdyPUkoVXIpLEhyPUkoRyksSnI9SShEciksUXI9SShCciksWHI9SShSciksWXI9YjsoVXImJllyKG5ldyBVcihuZXcgQXJyYXlCdWZmZXIoMSkpKSE9cXJ8fEcmJllyKG5ldyBHKSE9THJ8fERyJiZZcihEci5yZXNvbHZlKCkpIT1Wcnx8QnImJllyKG5ldyBCcikhPUtyfHxSciYmWXIobmV3IFJyKSE9V3IpJiYoWXI9ZnVuY3Rpb24odCl7dmFyIHI9Yih0KSxlPSJbb2JqZWN0IE9iamVjdF0iPT1yP3QuY29uc3RydWN0b3I6dm9pZCAwLG49ZT9JKGUpOiIiO2lmKG4pc3dpdGNoKG4pe2Nhc2UgR3I6cmV0dXJuIHFyO2Nhc2UgSHI6cmV0dXJuIExyO2Nhc2UgSnI6cmV0dXJuIFZyO2Nhc2UgUXI6cmV0dXJuIEtyO2Nhc2UgWHI6cmV0dXJuIFdyfXJldHVybiByfSk7dmFyIFpyPVlyLHRlPTEscmU9IltvYmplY3QgQXJndW1lbnRzXSIsZWU9IltvYmplY3QgQXJyYXldIixuZT0iW29iamVjdCBPYmplY3RdIixvZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHVlKHIsZSxuLG8sdSxpKXt2YXIgYz10KHIpLGE9dChlKSxmPWM/ZWU6WnIociksbD1hP2VlOlpyKGUpLHM9KGY9Zj09cmU/bmU6Zik9PW5lLHA9KGw9bD09cmU/bmU6bCk9PW5lLGI9Zj09bDtpZihiJiZzcihyKSl7aWYoIXNyKGUpKXJldHVybiExO2M9ITAscz0hMX1pZihiJiYhcylyZXR1cm4gaXx8KGk9bmV3IFN0KSxjfHxBcihyKT9OdChyLGUsbixvLHUsaSk6ZnVuY3Rpb24odCxyLGUsbixvLHUsaSl7c3dpdGNoKGUpe2Nhc2UgR3Q6aWYodC5ieXRlTGVuZ3RoIT1yLmJ5dGVMZW5ndGh8fHQuYnl0ZU9mZnNldCE9ci5ieXRlT2Zmc2V0KXJldHVybiExO3Q9dC5idWZmZXIscj1yLmJ1ZmZlcjtjYXNlIHF0OnJldHVybiEodC5ieXRlTGVuZ3RoIT1yLmJ5dGVMZW5ndGh8fCF1KG5ldyBUdCh0KSxuZXcgVHQocikpKTtjYXNlIE10OmNhc2UgVXQ6Y2FzZSBSdDpyZXR1cm4gVigrdCwrcik7Y2FzZSBEdDpyZXR1cm4gdC5uYW1lPT1yLm5hbWUmJnQubWVzc2FnZT09ci5tZXNzYWdlO2Nhc2UgTHQ6Y2FzZSBLdDpyZXR1cm4gdD09cisiIjtjYXNlIEJ0OnZhciBjPSR0O2Nhc2UgVnQ6dmFyIGE9biZDdDtpZihjfHwoYz1rdCksdC5zaXplIT1yLnNpemUmJiFhKXJldHVybiExO3ZhciBmPWkuZ2V0KHQpO2lmKGYpcmV0dXJuIGY9PXI7bnw9RnQsaS5zZXQodCxyKTt2YXIgbD1OdChjKHQpLGMociksbixvLHUsaSk7cmV0dXJuIGkuZGVsZXRlKHQpLGw7Y2FzZSBXdDppZihKdClyZXR1cm4gSnQuY2FsbCh0KT09SnQuY2FsbChyKX1yZXR1cm4hMX0ocixlLGYsbixvLHUsaSk7aWYoIShuJnRlKSl7dmFyIHY9cyYmb2UuY2FsbChyLCJfX3dyYXBwZWRfXyIpLHk9cCYmb2UuY2FsbChlLCJfX3dyYXBwZWRfXyIpO2lmKHZ8fHkpe3ZhciBoPXY/ci52YWx1ZSgpOnIsZD15P2UudmFsdWUoKTplO3JldHVybiBpfHwoaT1uZXcgU3QpLHUoaCxkLG4sbyxpKX19cmV0dXJuISFiJiYoaXx8KGk9bmV3IFN0KSxmdW5jdGlvbih0LHIsZSxuLG8sdSl7dmFyIGk9ZSZGcixjPUNyKHQpLGE9Yy5sZW5ndGg7aWYoYSE9Q3IocikubGVuZ3RoJiYhaSlyZXR1cm4hMTtmb3IodmFyIGY9YTtmLS07KXt2YXIgbD1jW2ZdO2lmKCEoaT9sIGluIHI6TXIuY2FsbChyLGwpKSlyZXR1cm4hMX12YXIgcz11LmdldCh0KSxwPXUuZ2V0KHIpO2lmKHMmJnApcmV0dXJuIHM9PXImJnA9PXQ7dmFyIGI9ITA7dS5zZXQodCxyKSx1LnNldChyLHQpO2Zvcih2YXIgdj1pOysrZjxhOyl7dmFyIHk9dFtsPWNbZl1dLGg9cltsXTtpZihuKXZhciBkPWk/bihoLHksbCxyLHQsdSk6bih5LGgsbCx0LHIsdSk7aWYoISh2b2lkIDA9PT1kP3k9PT1ofHxvKHksaCxlLG4sdSk6ZCkpe2I9ITE7YnJlYWt9dnx8KHY9ImNvbnN0cnVjdG9yIj09bCl9aWYoYiYmIXYpe3ZhciBqPXQuY29uc3RydWN0b3IsZz1yLmNvbnN0cnVjdG9yO2o9PWd8fCEoImNvbnN0cnVjdG9yImluIHQpfHwhKCJjb25zdHJ1Y3RvciJpbiByKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGomJmogaW5zdGFuY2VvZiBqJiYiZnVuY3Rpb24iPT10eXBlb2YgZyYmZyBpbnN0YW5jZW9mIGd8fChiPSExKX1yZXR1cm4gdS5kZWxldGUodCksdS5kZWxldGUociksYn0ocixlLG4sbyx1LGkpKX1mdW5jdGlvbiBpZSh0LHIsZSxuLG8pe3JldHVybiB0PT09cnx8KG51bGw9PXR8fG51bGw9PXJ8fCF2KHQpJiYhdihyKT90IT10JiZyIT1yOnVlKHQscixlLG4saWUsbykpfXZhciBjZT0xLGFlPTI7ZnVuY3Rpb24gZmUodCl7cmV0dXJuIHQ9PXQmJiFfKHQpfWZ1bmN0aW9uIGxlKHQscil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiYoZVt0XT09PXImJih2b2lkIDAhPT1yfHx0IGluIE9iamVjdChlKSkpfX1mdW5jdGlvbiBzZSh0KXt2YXIgcj1mdW5jdGlvbih0KXtmb3IodmFyIHI9a3IodCksZT1yLmxlbmd0aDtlLS07KXt2YXIgbj1yW2VdLG89dFtuXTtyW2VdPVtuLG8sZmUobyldfXJldHVybiByfSh0KTtyZXR1cm4gMT09ci5sZW5ndGgmJnJbMF1bMl0/bGUoclswXVswXSxyWzBdWzFdKTpmdW5jdGlvbihlKXtyZXR1cm4gZT09PXR8fGZ1bmN0aW9uKHQscixlLG4pe3ZhciBvPWUubGVuZ3RoLHU9byxpPSFuO2lmKG51bGw9PXQpcmV0dXJuIXU7Zm9yKHQ9T2JqZWN0KHQpO28tLTspe3ZhciBjPWVbb107aWYoaSYmY1syXT9jWzFdIT09dFtjWzBdXTohKGNbMF1pbiB0KSlyZXR1cm4hMX1mb3IoOysrbzx1Oyl7dmFyIGE9KGM9ZVtvXSlbMF0sZj10W2FdLGw9Y1sxXTtpZihpJiZjWzJdKXtpZih2b2lkIDA9PT1mJiYhKGEgaW4gdCkpcmV0dXJuITF9ZWxzZXt2YXIgcz1uZXcgU3Q7aWYobil2YXIgcD1uKGYsbCxhLHQscixzKTtpZighKHZvaWQgMD09PXA/aWUobCxmLGNlfGFlLG4scyk6cCkpcmV0dXJuITF9fXJldHVybiEwfShlLHQscil9fWZ1bmN0aW9uIHBlKHQscil7cmV0dXJuIG51bGwhPXQmJnIgaW4gT2JqZWN0KHQpfWZ1bmN0aW9uIGJlKHIsZSl7cmV0dXJuIG51bGwhPXImJmZ1bmN0aW9uKHIsZSxuKXtmb3IodmFyIG89LTEsdT0oZT1sdChlLHIpKS5sZW5ndGgsaT0hMTsrK288dTspe3ZhciBjPXB0KGVbb10pO2lmKCEoaT1udWxsIT1yJiZuKHIsYykpKWJyZWFrO3I9cltjXX1yZXR1cm4gaXx8KytvIT11P2k6ISEodT1udWxsPT1yPzA6ci5sZW5ndGgpJiZocih1KSYmdnIoYyx1KSYmKHQocil8fGNyKHIpKX0ocixlLHBlKX12YXIgdmU9MSx5ZT0yO2Z1bmN0aW9uIGhlKHQpe3JldHVybiB0fWZ1bmN0aW9uIGRlKHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gbnVsbD09cj92b2lkIDA6clt0XX19ZnVuY3Rpb24gamUodCl7cmV0dXJuIGcodCk/ZGUocHQodCkpOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gYnQocix0KX19KHQpfWZ1bmN0aW9uIGdlKHIpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByP3I6bnVsbD09cj9oZToib2JqZWN0Ij09dHlwZW9mIHI/dChyKT8oZT1yWzBdLG49clsxXSxnKGUpJiZmZShuKT9sZShwdChlKSxuKTpmdW5jdGlvbih0KXt2YXIgcj12dCh0LGUpO3JldHVybiB2b2lkIDA9PT1yJiZyPT09bj9iZSh0LGUpOmllKG4scix2ZXx5ZSl9KTpzZShyKTpqZShyKTt2YXIgZSxufXZhciBfZSxPZT1mdW5jdGlvbih0LHIsZSl7Zm9yKHZhciBuPS0xLG89T2JqZWN0KHQpLHU9ZSh0KSxpPXUubGVuZ3RoO2ktLTspe3ZhciBjPXVbX2U/aTorK25dO2lmKCExPT09cihvW2NdLGMsbykpYnJlYWt9cmV0dXJuIHR9O3ZhciBtZT1mdW5jdGlvbih0LHIpe3JldHVybiBmdW5jdGlvbihlLG4pe2lmKG51bGw9PWUpcmV0dXJuIGU7aWYoISRyKGUpKXJldHVybiB0KGUsbik7Zm9yKHZhciBvPWUubGVuZ3RoLHU9cj9vOi0xLGk9T2JqZWN0KGUpOyhyP3UtLTorK3U8bykmJiExIT09bihpW3VdLHUsaSk7KTtyZXR1cm4gZX19KChmdW5jdGlvbih0LHIpe3JldHVybiB0JiZPZSh0LHIsa3IpfSkpLHdlPW1lO2Z1bmN0aW9uIEFlKHQscil7dmFyIGU9LTEsbj0kcih0KT9BcnJheSh0Lmxlbmd0aCk6W107cmV0dXJuIHdlKHQsKGZ1bmN0aW9uKHQsbyx1KXtuWysrZV09cih0LG8sdSl9KSksbn12YXIgU2U9QXJyYXkucHJvdG90eXBlLmpvaW47dmFyIHhlPSJbb2JqZWN0IFN0cmluZ10iO3ZhciBQZT1kZSgibGVuZ3RoIiksemU9UmVnRXhwKCJbXFx1MjAwZFxcdWQ4MDAtXFx1ZGZmZlxcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZlxcdWZlMGVcXHVmZTBmXSIpO3ZhciBFZT0iXFx1ZDgwMC1cXHVkZmZmIixJZT0iWyIrRWUrIl0iLE5lPSJbXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXSIsVGU9IlxcdWQ4M2NbXFx1ZGZmYi1cXHVkZmZmXSIsJGU9IlteIitFZSsiXSIsa2U9Iig/OlxcdWQ4M2NbXFx1ZGRlNi1cXHVkZGZmXSl7Mn0iLENlPSJbXFx1ZDgwMC1cXHVkYmZmXVtcXHVkYzAwLVxcdWRmZmZdIixGZT0iKD86IitOZSsifCIrVGUrIikiKyI/IixNZT0iW1xcdWZlMGVcXHVmZTBmXT8iLFVlPU1lK0ZlKygiKD86XFx1MjAwZCg/OiIrWyRlLGtlLENlXS5qb2luKCJ8IikrIikiK01lK0ZlKyIpKiIpLERlPSIoPzoiK1skZStOZSsiPyIsTmUsa2UsQ2UsSWVdLmpvaW4oInwiKSsiKSIsQmU9UmVnRXhwKFRlKyIoPz0iK1RlKyIpfCIrRGUrVWUsImciKTtmdW5jdGlvbiBSZSh0KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHplLnRlc3QodCl9KHQpP2Z1bmN0aW9uKHQpe2Zvcih2YXIgcj1CZS5sYXN0SW5kZXg9MDtCZS50ZXN0KHQpOykrK3I7cmV0dXJuIHJ9KHQpOlBlKHQpfXZhciBMZT0iW29iamVjdCBNYXBdIixWZT0iW29iamVjdCBTZXRdIjtmdW5jdGlvbiBLZShyKXtpZihudWxsPT1yKXJldHVybiAwO2lmKCRyKHIpKXJldHVybiJzdHJpbmciPT10eXBlb2YoZT1yKXx8IXQoZSkmJnYoZSkmJmIoZSk9PXhlP1JlKHIpOnIubGVuZ3RoO3ZhciBlLG49WnIocik7cmV0dXJuIG49PUxlfHxuPT1WZT9yLnNpemU6VHIocikubGVuZ3RofXZhciBXZT0iW29iamVjdCBOdW1iZXJdIjtmdW5jdGlvbiBxZSh0LHIpe2Zvcih2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK2U8biYmITEhPT1yKHRbZV0sZSx0KTspO3JldHVybiB0fXZhciBHZT1mdW5jdGlvbigpe3RyeXt2YXIgdD1VKE9iamVjdCwiZGVmaW5lUHJvcGVydHkiKTtyZXR1cm4gdCh7fSwiIix7fSksdH1jYXRjaCh0KXt9fSgpLEhlPUdlO2Z1bmN0aW9uIEplKHQscixlKXsiX19wcm90b19fIj09ciYmSGU/SGUodCxyLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTplLHdyaXRhYmxlOiEwfSk6dFtyXT1lfXZhciBRZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIFhlKHQscixlKXt2YXIgbj10W3JdO1FlLmNhbGwodCxyKSYmVihuLGUpJiYodm9pZCAwIT09ZXx8ciBpbiB0KXx8SmUodCxyLGUpfWZ1bmN0aW9uIFllKHQscixlLG4pe3ZhciBvPSFlO2V8fChlPXt9KTtmb3IodmFyIHU9LTEsaT1yLmxlbmd0aDsrK3U8aTspe3ZhciBjPXJbdV0sYT1uP24oZVtjXSx0W2NdLGMsZSx0KTp2b2lkIDA7dm9pZCAwPT09YSYmKGE9dFtjXSksbz9KZShlLGMsYSk6WGUoZSxjLGEpfXJldHVybiBlfXZhciBaZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHRuKHQpe2lmKCFfKHQpKXJldHVybiBmdW5jdGlvbih0KXt2YXIgcj1bXTtpZihudWxsIT10KWZvcih2YXIgZSBpbiBPYmplY3QodCkpci5wdXNoKGUpO3JldHVybiByfSh0KTt2YXIgcj16cih0KSxlPVtdO2Zvcih2YXIgbiBpbiB0KSgiY29uc3RydWN0b3IiIT1ufHwhciYmWmUuY2FsbCh0LG4pKSYmZS5wdXNoKG4pO3JldHVybiBlfWZ1bmN0aW9uIHJuKHQpe3JldHVybiAkcih0KT94cih0LCEwKTp0bih0KX12YXIgZW49Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxubj1lbiYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLG9uPW5uJiZubi5leHBvcnRzPT09ZW4/bi5CdWZmZXI6dm9pZCAwLHVuPW9uP29uLmFsbG9jVW5zYWZlOnZvaWQgMDt2YXIgY249RXIoT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCksYW49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9mdW5jdGlvbih0KXtmb3IodmFyIHI9W107dDspUXQocixlcih0KSksdD1jbih0KTtyZXR1cm4gcn06WXQsZm49YW47ZnVuY3Rpb24gbG4odCl7cmV0dXJuIFh0KHQscm4sZm4pfXZhciBzbj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHBuKHQpe3ZhciByPW5ldyB0LmNvbnN0cnVjdG9yKHQuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBUdChyKS5zZXQobmV3IFR0KHQpKSxyfXZhciBibj0vXHcqJC87dmFyIHZuPW8/by5wcm90b3R5cGU6dm9pZCAwLHluPXZuP3ZuLnZhbHVlT2Y6dm9pZCAwO3ZhciBobj0iW29iamVjdCBCb29sZWFuXSIsZG49IltvYmplY3QgRGF0ZV0iLGpuPSJbb2JqZWN0IE1hcF0iLGduPSJbb2JqZWN0IE51bWJlcl0iLF9uPSJbb2JqZWN0IFJlZ0V4cF0iLE9uPSJbb2JqZWN0IFNldF0iLG1uPSJbb2JqZWN0IFN0cmluZ10iLHduPSJbb2JqZWN0IFN5bWJvbF0iLEFuPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsU249IltvYmplY3QgRGF0YVZpZXddIix4bj0iW29iamVjdCBGbG9hdDMyQXJyYXldIixQbj0iW29iamVjdCBGbG9hdDY0QXJyYXldIix6bj0iW29iamVjdCBJbnQ4QXJyYXldIixFbj0iW29iamVjdCBJbnQxNkFycmF5XSIsSW49IltvYmplY3QgSW50MzJBcnJheV0iLE5uPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixUbj0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLCRuPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsa249IltvYmplY3QgVWludDMyQXJyYXldIjtmdW5jdGlvbiBDbih0LHIsZSl7dmFyIG4sbz10LmNvbnN0cnVjdG9yO3N3aXRjaChyKXtjYXNlIEFuOnJldHVybiBwbih0KTtjYXNlIGhuOmNhc2UgZG46cmV0dXJuIG5ldyBvKCt0KTtjYXNlIFNuOnJldHVybiBmdW5jdGlvbih0LHIpe3ZhciBlPXI/cG4odC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihlLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfSh0LGUpO2Nhc2UgeG46Y2FzZSBQbjpjYXNlIHpuOmNhc2UgRW46Y2FzZSBJbjpjYXNlIE5uOmNhc2UgVG46Y2FzZSAkbjpjYXNlIGtuOnJldHVybiBmdW5jdGlvbih0LHIpe3ZhciBlPXI/cG4odC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihlLHQuYnl0ZU9mZnNldCx0Lmxlbmd0aCl9KHQsZSk7Y2FzZSBqbjpyZXR1cm4gbmV3IG87Y2FzZSBnbjpjYXNlIG1uOnJldHVybiBuZXcgbyh0KTtjYXNlIF9uOnJldHVybiBmdW5jdGlvbih0KXt2YXIgcj1uZXcgdC5jb25zdHJ1Y3Rvcih0LnNvdXJjZSxibi5leGVjKHQpKTtyZXR1cm4gci5sYXN0SW5kZXg9dC5sYXN0SW5kZXgscn0odCk7Y2FzZSBPbjpyZXR1cm4gbmV3IG87Y2FzZSB3bjpyZXR1cm4gbj10LHluP09iamVjdCh5bi5jYWxsKG4pKTp7fX19dmFyIEZuPU9iamVjdC5jcmVhdGUsTW49ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiBmdW5jdGlvbihyKXtpZighXyhyKSlyZXR1cm57fTtpZihGbilyZXR1cm4gRm4ocik7dC5wcm90b3R5cGU9cjt2YXIgZT1uZXcgdDtyZXR1cm4gdC5wcm90b3R5cGU9dm9pZCAwLGV9fSgpLFVuPU1uO3ZhciBEbj1tciYmbXIuaXNNYXAsQm49RG4/anIoRG4pOmZ1bmN0aW9uKHQpe3JldHVybiB2KHQpJiYiW29iamVjdCBNYXBdIj09WnIodCl9O3ZhciBSbj1tciYmbXIuaXNTZXQsTG49Um4/anIoUm4pOmZ1bmN0aW9uKHQpe3JldHVybiB2KHQpJiYiW29iamVjdCBTZXRdIj09WnIodCl9LFZuPTEsS249MixXbj00LHFuPSJbb2JqZWN0IEFyZ3VtZW50c10iLEduPSJbb2JqZWN0IEZ1bmN0aW9uXSIsSG49IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIixKbj0iW29iamVjdCBPYmplY3RdIixRbj17fTtmdW5jdGlvbiBYbihyLGUsbixvLHUsaSl7dmFyIGMsYT1lJlZuLGY9ZSZLbixsPWUmV247aWYobiYmKGM9dT9uKHIsbyx1LGkpOm4ocikpLHZvaWQgMCE9PWMpcmV0dXJuIGM7aWYoIV8ocikpcmV0dXJuIHI7dmFyIHM9dChyKTtpZihzKXtpZihjPWZ1bmN0aW9uKHQpe3ZhciByPXQubGVuZ3RoLGU9bmV3IHQuY29uc3RydWN0b3Iocik7cmV0dXJuIHImJiJzdHJpbmciPT10eXBlb2YgdFswXSYmc24uY2FsbCh0LCJpbmRleCIpJiYoZS5pbmRleD10LmluZGV4LGUuaW5wdXQ9dC5pbnB1dCksZX0ociksIWEpcmV0dXJuIGZ1bmN0aW9uKHQscil7dmFyIGU9LTEsbj10Lmxlbmd0aDtmb3Iocnx8KHI9QXJyYXkobikpOysrZTxuOylyW2VdPXRbZV07cmV0dXJuIHJ9KHIsYyl9ZWxzZXt2YXIgcD1acihyKSxiPXA9PUdufHxwPT1IbjtpZihzcihyKSlyZXR1cm4gZnVuY3Rpb24odCxyKXtpZihyKXJldHVybiB0LnNsaWNlKCk7dmFyIGU9dC5sZW5ndGgsbj11bj91bihlKTpuZXcgdC5jb25zdHJ1Y3RvcihlKTtyZXR1cm4gdC5jb3B5KG4pLG59KHIsYSk7aWYocD09Sm58fHA9PXFufHxiJiYhdSl7aWYoYz1mfHxiP3t9OmZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0LmNvbnN0cnVjdG9yfHx6cih0KT97fTpVbihjbih0KSl9KHIpLCFhKXJldHVybiBmP2Z1bmN0aW9uKHQscil7cmV0dXJuIFllKHQsZm4odCkscil9KHIsZnVuY3Rpb24odCxyKXtyZXR1cm4gdCYmWWUocixybihyKSx0KX0oYyxyKSk6ZnVuY3Rpb24odCxyKXtyZXR1cm4gWWUodCxlcih0KSxyKX0ocixmdW5jdGlvbih0LHIpe3JldHVybiB0JiZZZShyLGtyKHIpLHQpfShjLHIpKX1lbHNle2lmKCFRbltwXSlyZXR1cm4gdT9yOnt9O2M9Q24ocixwLGEpfX1pfHwoaT1uZXcgU3QpO3ZhciB2PWkuZ2V0KHIpO2lmKHYpcmV0dXJuIHY7aS5zZXQocixjKSxMbihyKT9yLmZvckVhY2goKGZ1bmN0aW9uKHQpe2MuYWRkKFhuKHQsZSxuLHQscixpKSl9KSk6Qm4ocikmJnIuZm9yRWFjaCgoZnVuY3Rpb24odCxvKXtjLnNldChvLFhuKHQsZSxuLG8scixpKSl9KSk7dmFyIHk9cz92b2lkIDA6KGw/Zj9sbjpDcjpmP3JuOmtyKShyKTtyZXR1cm4gcWUoeXx8ciwoZnVuY3Rpb24odCxvKXt5JiYodD1yW289dF0pLFhlKGMsbyxYbih0LGUsbixvLHIsaSkpfSkpLGN9UW5bcW5dPVFuWyJbb2JqZWN0IEFycmF5XSJdPVFuWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPVFuWyJbb2JqZWN0IERhdGFWaWV3XSJdPVFuWyJbb2JqZWN0IEJvb2xlYW5dIl09UW5bIltvYmplY3QgRGF0ZV0iXT1RblsiW29iamVjdCBGbG9hdDMyQXJyYXldIl09UW5bIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPVFuWyJbb2JqZWN0IEludDhBcnJheV0iXT1RblsiW29iamVjdCBJbnQxNkFycmF5XSJdPVFuWyJbb2JqZWN0IEludDMyQXJyYXldIl09UW5bIltvYmplY3QgTWFwXSJdPVFuWyJbb2JqZWN0IE51bWJlcl0iXT1RbltKbl09UW5bIltvYmplY3QgUmVnRXhwXSJdPVFuWyJbb2JqZWN0IFNldF0iXT1RblsiW29iamVjdCBTdHJpbmddIl09UW5bIltvYmplY3QgU3ltYm9sXSJdPVFuWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09UW5bIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09UW5bIltvYmplY3QgVWludDE2QXJyYXldIl09UW5bIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsUW5bIltvYmplY3QgRXJyb3JdIl09UW5bR25dPVFuWyJbb2JqZWN0IFdlYWtNYXBdIl09ITE7dmFyIFluPTEsWm49NDtmdW5jdGlvbiB0byh0KXtyZXR1cm4gWG4odCxZbnxabil9ZnVuY3Rpb24gcm8odCl7bGV0IHI9ITE7aWYoaHQodCkpcj0haXNOYU4oTnVtYmVyKHQpKTtlbHNlIGlmKGZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KSl7aWYoX3QodCkpcmV0dXJuITE7cj0hMH1yZXR1cm4gcn1mdW5jdGlvbiBlbyh0KXtpZighaHQodCkmJiFybyh0KSYmIWgodCkpcmV0dXJuIiI7bGV0IHI9IiI7dHJ5e3I9U3RyaW5nKHQpfWNhdGNoKHQpe310cnl7cj10LnRvU3RyaW5nKCl9Y2F0Y2godCl7fXJldHVybiByfXZhciBubz1NYXRoLmNlaWwsb289TWF0aC5tYXg7dmFyIHVvPS9ccy87dmFyIGlvPS9eXHMrLztmdW5jdGlvbiBjbyh0KXtyZXR1cm4gdD90LnNsaWNlKDAsZnVuY3Rpb24odCl7Zm9yKHZhciByPXQubGVuZ3RoO3ItLSYmdW8udGVzdCh0LmNoYXJBdChyKSk7KTtyZXR1cm4gcn0odCkrMSkucmVwbGFjZShpbywiIik6dH12YXIgYW89TmFOLGZvPS9eWy0rXTB4WzAtOWEtZl0rJC9pLGxvPS9eMGJbMDFdKyQvaSxzbz0vXjBvWzAtN10rJC9pLHBvPXBhcnNlSW50O3ZhciBibz0xLzAsdm89MTc5NzY5MzEzNDg2MjMxNTdlMjkyO2Z1bmN0aW9uIHlvKHQpe3JldHVybiB0Pyh0PWZ1bmN0aW9uKHQpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdDtpZihoKHQpKXJldHVybiBhbztpZihfKHQpKXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgdC52YWx1ZU9mP3QudmFsdWVPZigpOnQ7dD1fKHIpP3IrIiI6cn1pZigic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIDA9PT10P3Q6K3Q7dD1jbyh0KTt2YXIgZT1sby50ZXN0KHQpO3JldHVybiBlfHxzby50ZXN0KHQpP3BvKHQuc2xpY2UoMiksZT8yOjgpOmZvLnRlc3QodCk/YW86K3R9KHQpKT09PWJvfHx0PT09LWJvPyh0PDA/LTE6MSkqdm86dD09dD90OjA6MD09PXQ/dDowfXZhciBobz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocixlLG4pe3JldHVybiBuJiYibnVtYmVyIiE9dHlwZW9mIG4mJmZ1bmN0aW9uKHQscixlKXtpZighXyhlKSlyZXR1cm4hMTt2YXIgbj10eXBlb2YgcjtyZXR1cm4hISgibnVtYmVyIj09bj8kcihlKSYmdnIocixlLmxlbmd0aCk6InN0cmluZyI9PW4mJnIgaW4gZSkmJlYoZVtyXSx0KX0ocixlLG4pJiYoZT1uPXZvaWQgMCkscj15byhyKSx2b2lkIDA9PT1lPyhlPXIscj0wKTplPXlvKGUpLGZ1bmN0aW9uKHQscixlLG4pe2Zvcih2YXIgbz0tMSx1PW9vKG5vKChyLXQpLyhlfHwxKSksMCksaT1BcnJheSh1KTt1LS07KWlbbj91Oisrb109dCx0Kz1lO3JldHVybiBpfShyLGUsbj12b2lkIDA9PT1uP3I8ZT8xOi0xOnlvKG4pLHQpfX0oKSxqbz1obztmdW5jdGlvbiBnbyh0LHI9bnVsbCxlPXt9KXtTKHIpfHwocj10PT50KTtsZXQgbj12dChlLCJmb3JjZSIsITEpO3JldHVybiBBdChuKXx8KG49ITEpLGZ1bmN0aW9uKHQscixlPSExKXtsZXQgbj1bXTtpZighZ3QodCkmJiFkdCh0KSlyZXR1cm4gcih0LG51bGwsW10pO2Z1bmN0aW9uIG8odCl7aWYoZ3QodCkpcmV0dXJuIGpvKEtlKHQpKTtpZihkdCh0KSl7bGV0IHI9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCksbj1udWxsO3JldHVybiBlJiYobj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpKSxndChyKXx8KHI9W10pLGd0KG4pfHwobj1bXSksWy4uLnIsLi4ubl19cmV0dXJuIHR9cmV0dXJuIGZ1bmN0aW9uIHQoZSx1KXtpZihndChlKSlyZXR1cm4gbyhlKS5tYXAoKG89PntsZXQgdT1lW29dLGk9dG8obik7cmV0dXJuIG4ucHVzaChvKSx1PXIodSxvLGkpLHU9dCh1KSxuLnBvcCgpLHV9KSk7aWYoZHQoZSkpe2xldCB1PW8oZSksaT17fTtyZXR1cm4gdS5tYXAoKG89PntsZXQgdT1lW29dLGM9dG8obik7bi5wdXNoKG8pLHU9cih1LG8sYyksdT10KHUpLG4ucG9wKCksaVtvXT11fSkpLGl9cmV0dXJuIGV9KHQpfSh0LHIsbil9ZnVuY3Rpb24gX28ocixlPXt9KXtpZighanQocikmJiFtdChyKSlyZXR1cm5bXTtsZXQgbj12dChlLCJiaW5kS2V5IixudWxsKTtodChuKXx8KG49ImlkIik7bGV0IG89dnQoZSwiYmluZFBhcmVudCIsbnVsbCk7aHQobyl8fChvPSJwYXJlbnRJZCIpO2xldCB1PXZ0KGUsImJpbmRCZWxvbmciLG51bGwpO2h0KHUpfHwodT0ia2V5Iik7bGV0IGk9dnQoZSwiYmluZFRleHQiLG51bGwpO2h0KGkpfHwoaT0idGV4dCIpO2xldCBjPXZ0KGUsImJpbmRUeXBlIixudWxsKTtodChjKXx8KGM9InR5cGUiKTtsZXQgYT12dChlLCJiaW5kTnVtT2ZDaGlscmVuIixudWxsKTtmdW5jdGlvbiBmKHIsZSl7dmFyIG4sbzt2YXIgdSxpO3JldHVybiByPXRvKHIpLG89dD0+aCh0KT9lbyh0KTp0LHI9KHQobj1yKT91dDpBZSkobixnZShvKSksaChlKSYmKGU9ZW8oZSkpLChodChlKXx8cm8oZSkpJiZyLnB1c2goZSksaT0iLSIsbnVsbD09KHU9cik/IiI6U2UuY2FsbCh1LGkpfWh0KGEpfHwoYT0ibnVtT2ZDaGlscmVuIik7bGV0IGw9W107cmV0dXJuIGdvKHIsKCh0LHIsZSk9PntsZXQgcz1mKGUscikscD1mKGUsbnVsbCkseT0ibm9kZSI7ZHQodCk/eT0ib2JqZWN0IjpndCh0KSYmKHk9ImFycmF5Iik7bGV0IGg9e1tuXTpzLFtvXTpwLFtjXTp5fTtpZigoaHQocil8fGZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdHx8dih0KSYmYih0KT09V2V9KHIpKSYmKGhbdV09ciksZHQodCl8fGd0KHQpfHwoaFtpXT10KSxkdCh0KXx8Z3QodCkpe2xldCByPW51bGw7ZHQodCk/cj1LZShrcih0KSk6Z3QodCkmJihyPUtlKHQpKSxoW2FdPXJ9cmV0dXJuIGwucHVzaChoKSx0fSkse2ZvcmNlOiEwfSksbH1mdW5jdGlvbiBPbyh0KXtyZXR1cm4gT289ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LE9vKHQpfWZ1bmN0aW9uIG1vKHQpe3ZhciByPWZ1bmN0aW9uKHQscil7aWYoIm9iamVjdCIhPT1Pbyh0KXx8bnVsbD09PXQpcmV0dXJuIHQ7dmFyIGU9dFtTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PWUpe3ZhciBuPWUuY2FsbCh0LHJ8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPT1PbyhuKSlyZXR1cm4gbjt0aHJvdyBuZXcgVHlwZUVycm9yKCJAQHRvUHJpbWl0aXZlIG11c3QgcmV0dXJuIGEgcHJpbWl0aXZlIHZhbHVlLiIpfXJldHVybigic3RyaW5nIj09PXI/U3RyaW5nOk51bWJlcikodCl9KHQsInN0cmluZyIpO3JldHVybiJzeW1ib2wiPT09T28ocik/cjpTdHJpbmcocil9ZnVuY3Rpb24gd28odCxyLGUpe3JldHVybihyPW1vKHIpKWluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQscix7dmFsdWU6ZSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbcl09ZSx0fWZ1bmN0aW9uIEFvKHIsZSl7dmFyIG47cmV0dXJuKHQocik/cWU6d2UpKHIsImZ1bmN0aW9uIj09dHlwZW9mKG49ZSk/bjpoZSl9ZnVuY3Rpb24gU28odCxyLGUpe3JldHVybiBudWxsPT10P3Q6ZnVuY3Rpb24odCxyLGUsbil7aWYoIV8odCkpcmV0dXJuIHQ7Zm9yKHZhciBvPS0xLHU9KHI9bHQocix0KSkubGVuZ3RoLGk9dS0xLGM9dDtudWxsIT1jJiYrK288dTspe3ZhciBhPXB0KHJbb10pLGY9ZTtpZigiX19wcm90b19fIj09PWF8fCJjb25zdHJ1Y3RvciI9PT1hfHwicHJvdG90eXBlIj09PWEpcmV0dXJuIHQ7aWYobyE9aSl7dmFyIGw9Y1thXTt2b2lkIDA9PT0oZj1uP24obCxhLGMpOnZvaWQgMCkmJihmPV8obCk/bDp2cihyW28rMV0pP1tdOnt9KX1YZShjLGEsZiksYz1jW2FdfXJldHVybiB0fSh0LHIsZSl9ZnVuY3Rpb24geG8odCxyKXtyZXR1cm4gci5sZW5ndGg8Mj90OmJ0KHQsZnVuY3Rpb24odCxyLGUpe3ZhciBuPS0xLG89dC5sZW5ndGg7cjwwJiYocj0tcj5vPzA6bytyKSwoZT1lPm8/bzplKTwwJiYoZSs9byksbz1yPmU/MDplLXI+Pj4wLHI+Pj49MDtmb3IodmFyIHU9QXJyYXkobyk7KytuPG87KXVbbl09dFtuK3JdO3JldHVybiB1fShyLDAsLTEpKX1mdW5jdGlvbiBQbyh0LHIpe3JldHVybiBudWxsPT0odD14byh0LHI9bHQocix0KSkpfHxkZWxldGUgdFtwdCgoZT1yLG49bnVsbD09ZT8wOmUubGVuZ3RoLG4/ZVtuLTFdOnZvaWQgMCkpXTt2YXIgZSxufXZhciB6bz0iW29iamVjdCBPYmplY3RdIixFbz1GdW5jdGlvbi5wcm90b3R5cGUsSW89T2JqZWN0LnByb3RvdHlwZSxObz1Fby50b1N0cmluZyxUbz1Jby5oYXNPd25Qcm9wZXJ0eSwkbz1Oby5jYWxsKE9iamVjdCk7ZnVuY3Rpb24ga28odCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKCF2KHQpfHxiKHQpIT16bylyZXR1cm4hMTt2YXIgcj1jbih0KTtpZihudWxsPT09cilyZXR1cm4hMDt2YXIgZT1Uby5jYWxsKHIsImNvbnN0cnVjdG9yIikmJnIuY29uc3RydWN0b3I7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUgaW5zdGFuY2VvZiBlJiZOby5jYWxsKGUpPT0kb30odCk/dm9pZCAwOnR9dmFyIENvPW8/by5pc0NvbmNhdFNwcmVhZGFibGU6dm9pZCAwO2Z1bmN0aW9uIEZvKHIpe3JldHVybiB0KHIpfHxjcihyKXx8ISEoQ28mJnImJnJbQ29dKX1mdW5jdGlvbiBNbyh0LHIsZSxuLG8pe3ZhciB1PS0xLGk9dC5sZW5ndGg7Zm9yKGV8fChlPUZvKSxvfHwobz1bXSk7Kyt1PGk7KXt2YXIgYz10W3VdO3I+MCYmZShjKT9yPjE/TW8oYyxyLTEsZSxuLG8pOlF0KG8sYyk6bnx8KG9bby5sZW5ndGhdPWMpfXJldHVybiBvfWZ1bmN0aW9uIFVvKHQpe3JldHVybihudWxsPT10PzA6dC5sZW5ndGgpP01vKHQsMSk6W119dmFyIERvPU1hdGgubWF4O3ZhciBCbz1IZT9mdW5jdGlvbih0LHIpe3JldHVybiBIZSh0LCJ0b1N0cmluZyIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOihlPXIsZnVuY3Rpb24oKXtyZXR1cm4gZX0pLHdyaXRhYmxlOiEwfSk7dmFyIGV9OmhlLFJvPUJvLExvPURhdGUubm93O3ZhciBWbz1mdW5jdGlvbih0KXt2YXIgcj0wLGU9MDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj1MbygpLG89MTYtKG4tZSk7aWYoZT1uLG8+MCl7aWYoKytyPj04MDApcmV0dXJuIGFyZ3VtZW50c1swXX1lbHNlIHI9MDtyZXR1cm4gdC5hcHBseSh2b2lkIDAsYXJndW1lbnRzKX19KFJvKSxLbz1Wbzt2YXIgV289ZnVuY3Rpb24odCl7cmV0dXJuIEtvKGZ1bmN0aW9uKHQscixlKXtyZXR1cm4gcj1Ebyh2b2lkIDA9PT1yP3QubGVuZ3RoLTE6ciwwKSxmdW5jdGlvbigpe2Zvcih2YXIgbj1hcmd1bWVudHMsbz0tMSx1PURvKG4ubGVuZ3RoLXIsMCksaT1BcnJheSh1KTsrK288dTspaVtvXT1uW3Irb107bz0tMTtmb3IodmFyIGM9QXJyYXkocisxKTsrK288cjspY1tvXT1uW29dO3JldHVybiBjW3JdPWUoaSksZnVuY3Rpb24odCxyLGUpe3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAwOnJldHVybiB0LmNhbGwocik7Y2FzZSAxOnJldHVybiB0LmNhbGwocixlWzBdKTtjYXNlIDI6cmV0dXJuIHQuY2FsbChyLGVbMF0sZVsxXSk7Y2FzZSAzOnJldHVybiB0LmNhbGwocixlWzBdLGVbMV0sZVsyXSl9cmV0dXJuIHQuYXBwbHkocixlKX0odCx0aGlzLGMpfX0odCx2b2lkIDAsVW8pLHQrIiIpfSgoZnVuY3Rpb24odCxyKXt2YXIgZT17fTtpZihudWxsPT10KXJldHVybiBlO3ZhciBuPSExO3I9dXQociwoZnVuY3Rpb24ocil7cmV0dXJuIHI9bHQocix0KSxufHwobj1yLmxlbmd0aD4xKSxyfSkpLFllKHQsbG4odCksZSksbiYmKGU9WG4oZSw3LGtvKSk7Zm9yKHZhciBvPXIubGVuZ3RoO28tLTspUG8oZSxyW29dKTtyZXR1cm4gZX0pKSxxbz1XbztmdW5jdGlvbiBHbyh0LHIpe3ZhciBlPU9iamVjdC5rZXlzKHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7ciYmKG49bi5maWx0ZXIoKGZ1bmN0aW9uKHIpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscikuZW51bWVyYWJsZX0pKSksZS5wdXNoLmFwcGx5KGUsbil9cmV0dXJuIGV9ZnVuY3Rpb24gSG8odCl7Zm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7dmFyIGU9bnVsbCE9YXJndW1lbnRzW3JdP2FyZ3VtZW50c1tyXTp7fTtyJTI/R28oT2JqZWN0KGUpLCEwKS5mb3JFYWNoKChmdW5jdGlvbihyKXt3byh0LHIsZVtyXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhlKSk6R28oT2JqZWN0KGUpKS5mb3JFYWNoKChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxyKSl9KSl9cmV0dXJuIHR9ZnVuY3Rpb24gSm8odCxyPXt9KXtsZXQgZT0iJGxldmVsIixuPSIkcGFyZW50cyI7aWYoIW10KHQpKXJldHVybltdO2xldCBvPXZ0KHIsImJpbmRLZXkiLG51bGwpO2h0KG8pfHwobz0iaWQiKTtsZXQgdT12dChyLCJiaW5kUGFyZW50IixudWxsKTtodCh1KXx8KHU9InBhcmVudElkIik7bGV0IGk9dnQociwiYmluZENoaWxkcmVuIixudWxsKTtodChpKXx8KGk9ImNoaWxkcmVuIik7bGV0IGM9dnQociwic2F2ZUV4dFByb3BzIixudWxsKTtBdChjKXx8KGM9ITEpLHQ9ZnVuY3Rpb24odCl7bGV0IHI9W107ZnVuY3Rpb24gaShpKXtsZXQgYz1bXTtBbyh0LCgodCxhKT0+e2xldCBmPXZ0KHQsdSksbD12dChpLG8pO2lmKGYmJmwmJmY9PT1sKXtsZXQgdT12dChpLG4sW10pO3U9dG8odSksdS5wdXNoKGlbb10pLHIucHVzaChIbyh7W2VdOmlbZV0rMSxbbl06dX0sdCkpfWVsc2UgYy5wdXNoKHQpfSkpLHQ9Y31pZih0PXRvKHQpLGZ1bmN0aW9uKCl7bGV0IG89W107QW8odCwoKHQsaSk9PntPdCh0W3VdKT9yLnB1c2goSG8oe1tlXTowLFtuXTpbXX0sdCkpOm8ucHVzaCh0KX0pKSx0PW99KCksMD09PXIubGVuZ3RoKXJldHVybiByO2xldCBjPS0xO2Zvcig7Yys9MSwhKGM+ci5sZW5ndGgtMSk7KXtpZihpKHJbY10pLDA9PT10Lmxlbmd0aClicmVha31yZXR1cm4gcn0odCk7bGV0IGE9ZnVuY3Rpb24odCl7bGV0IHI9W107ZnVuY3Rpb24gYSh0KXtyZXR1cm4gYz90OnFvKHQsW2Usbl0pfWxldCBmPXt9O3JldHVybiBBbyh0LCgobixjKT0+e2lmKDA9PT1uW2VdKXtsZXQgdD1hKG4pO3IucHVzaCh0KSxmW25bb11dPVtjXX1lbHNle2xldCBlPWZ1bmN0aW9uKHIpe2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbj10W2VdO2lmKHJbdV09PT1uW29dKXJldHVybiBufXJldHVybiBudWxsfShuKTtpZihudWxsIT09ZSl7bGV0IHQ9ZltlW29dXTt0PVsuLi50LGldO2xldCB1PXZ0KHIsdCxbXSksYz1hKG4pO3UucHVzaChjKSxmW25bb11dPVsuLi50LHUubGVuZ3RoLTFdLFNvKHIsdCx1KX1lbHNlIGNvbnNvbGUubG9nKGBjYW4gbm90IGZpbmQgcGFyZW50IGZvciAke3Z0KG4sdSl9YCl9fSkpLHJ9KHQpO3JldHVybiBhfWFzeW5jIGZ1bmN0aW9uIGNvbnZlcnRUb1RyZWVXayh0LHI9e30pe3JldHVybiBmdW5jdGlvbih0LHI9e30pe2lmKCFqdCh0KSYmIW10KHQpKXJldHVybltdO2xldCBlPXZ0KHIsImJpbmRLZXkiLG51bGwpO2h0KGUpfHwoZT0iaWQiKTtsZXQgbj12dChyLCJiaW5kUGFyZW50IixudWxsKTtodChuKXx8KG49InBhcmVudElkIik7bGV0IG89dnQociwiYmluZFRleHQiLG51bGwpO2h0KG8pfHwobz0idGV4dCIpO2xldCB1PXZ0KHIsImJpbmRDaGlsZHJlbiIsbnVsbCk7aHQodSl8fCh1PSJjaGlsZHJlbiIpO2xldCBpPXZ0KHIsImJpbmRUeXBlIixudWxsKTtodChpKXx8KGk9InR5cGUiKTtsZXQgYz12dChyLCJiaW5kTnVtT2ZDaGlscmVuIixudWxsKTtodChjKXx8KGM9Im51bU9mQ2hpbHJlbiIpO2xldCBhPXZ0KHIsImJpbmRSb290IixudWxsKTtodChhKXx8KGE9InJvb3QiKTtsZXQgZj12dChyLCJzYXZlRXh0UHJvcHMiLG51bGwpO3JldHVybiBBdChmKXx8KGY9ITEpLGh0KGEpJiYodD17W2FdOnR9KSxKbyhfbyh0LHtiaW5kS2V5OmUsYmluZFBhcmVudDpuLGJpbmRUZXh0Om8sYmluZFR5cGU6aSxiaW5kTnVtT2ZDaGlscmVuOmN9KSx7YmluZEtleTplLGJpbmRQYXJlbnQ6bixiaW5kQ2hpbGRyZW46dSxzYXZlRXh0UHJvcHM6Zn0pfSh0LHIpfQoKbGV0IGluc3RhbmNlID0gbnVsbApmdW5jdGlvbiBpbml0KGlucHV0KXsKCiAgICAvL2luaXQKICAgIGxldCByCiAgICAKICAgICAgICByID0gewogICAgICAgICAgICBtYWluOiBjb252ZXJ0VG9UcmVlV2sKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gY29udmVydFRvVHJlZVdrCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgCiAgICAgICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgICAgIG1vZGU6ICdlbWl0JywKICAgICAgICAgICAgICAgIGV2TmFtZTogJ2Vycm9yJywKICAgICAgICAgICAgICAgIG1zZzogZXJyLAogICAgICAgICAgICB9CiAgICAgICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICAgICAgfQogICAgICAgICAgICAKICAgIH0KCiAgICAvL2NoZWNrCiAgICBpZihtb2RlID09PSAnY2FsbCcpewogICAgICAgIGxldCBzdGF0ZSA9ICcnCiAgICAgICAgbGV0IG1zZyA9IG51bGwKCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy9mdW4KICAgICAgICAgICAgbGV0IGZ1biA9IGluc3RhbmNlW2RhdGEuZnVuXQoKICAgICAgICAgICAgLy9pbnB1dAogICAgICAgICAgICBsZXQgaW5wdXQgPSBkYXRhLmlucHV0CgogICAgICAgICAgICAvL2V4ZWMKICAgICAgICAgICAgYXdhaXQgZnVuKC4uLmlucHV0KQogICAgICAgICAgICAgICAgLnRoZW4oKHN1YykgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdzdWNjZXNzJwogICAgICAgICAgICAgICAgICAgIG1zZz1zdWMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdlcnJvcicKICAgICAgICAgICAgICAgICAgICBtc2c9ZXJyCiAgICAgICAgICAgICAgICB9KQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAgICAgc3RhdGUgPSAnZXJyb3InCiAgICAgICAgICAgIG1zZyA9IGVycgogICAgICAgIH0KICAgICAgICAKICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgbW9kZTogJ3JldHVybicsCiAgICAgICAgICAgIGlkOiBkYXRhLmlkLAogICAgICAgICAgICBmdW46IGRhdGEuZnVuLAogICAgICAgICAgICBzdGF0ZSwKICAgICAgICAgICAgbXNnLAogICAgICAgIH0KICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgfQoKfQoKZnVuY3Rpb24gcmVjdk1lc3NhZ2UoZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciByZWN2OicsIGRhdGEpCgogICAgLy9kYXRhUmVjdgogICAgbGV0IGRhdGFSZWN2ID0gZGF0YQoKICAgIC8vcnVuCiAgICBydW4oZGF0YVJlY3YpCgp9CgoKICAgICAgICBzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJlY3ZNZXNzYWdlKGUuZGF0YSkKICAgICAgICB9CiAgICAgICAgCgp0cnl7CiAgICBwcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuaGFuZGxlZFJlamVjdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCBlcnIpCiAgICB9KQp9CmNhdGNoKGVycil7fQoK");function l(){let l=new t;let b=function(d){try{let l=new Blob([d]),b=window.URL||window.webkitURL;return new Worker(b.createObjectURL(l))}catch(d){i(d)}}(d);if(!b)return i("invalid worker"),null;function I(){let d=function(){let d,l,b=new Promise((function(){d=arguments[0],l=arguments[1]}));return b.resolve=d,b.reject=l,b}(),I=function(){let d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,l=[],b="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),I=b.length;for(let i=0;i<d;i++)l[i]=b[0|Math.random()*I];return l.join("")}(),i={mode:"call",id:I,fun:"main",input:[...arguments]};return b.postMessage(i),l.once(I,(l=>{"success"===l.state?d.resolve(l.msg):d.reject(l.msg)})),d}function i(d){l.emit("error",d)}return b.onmessage=function(d){!function(d){let b=d,I=b.mode;"emit"!==I&&"return"!==I||("emit"===I&&l.emit(b.evName,b.msg),"return"===I&&l.emit(b.id,b))}(d.data)},b.onerror=i,b.onmessageerror=function(d){i(d.data)},function(){let d={mode:"init",type:"function",input:[...arguments]};b.postMessage(d)}([...arguments]),l.main=I,l.main=I,l.terminate=function(){b?(b.terminate(),b=void 0):i("worker has been terminated")},l}J=async function(){let d=[...arguments],b=l();return await b.main(...d).finally((()=>{b.terminate()}))}}();try{process.on("unhandledRejection",(d=>{console.log("outer:unhandledRejection",d)})),process.on("uncaughtException",(d=>{console.log("outer:uncaughtException",d)})),process.on("uncaughtExceptionMonitor",(d=>{console.log("outer:uncaughtExceptionMonitor",d)}))}catch(d){}var o=J;export{o as default};
|
|
1
|
+
const d="function"==typeof Buffer,l="function"==typeof TextDecoder?new TextDecoder:void 0,m=("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")),Z=(d=>{let l={};return m.forEach(((d,m)=>l[d]=m)),l})(),I=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,b=String.fromCharCode.bind(String),c="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):d=>new Uint8Array(Array.prototype.slice.call(d,0)),i=d=>d.replace(/[^A-Za-z0-9\+\/]/g,""),X=d=>{let l,Z,I,b,c="";const i=d.length%3;for(let i=0;i<d.length;){if((Z=d.charCodeAt(i++))>255||(I=d.charCodeAt(i++))>255||(b=d.charCodeAt(i++))>255)throw new TypeError("invalid character found");l=Z<<16|I<<8|b,c+=m[l>>18&63]+m[l>>12&63]+m[l>>6&63]+m[63&l]}return i?c.slice(0,i-3)+"===".substring(i):c},y=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,C=d=>{switch(d.length){case 4:var l=((7&d.charCodeAt(0))<<18|(63&d.charCodeAt(1))<<12|(63&d.charCodeAt(2))<<6|63&d.charCodeAt(3))-65536;return b(55296+(l>>>10))+b(56320+(1023&l));case 3:return b((15&d.charCodeAt(0))<<12|(63&d.charCodeAt(1))<<6|63&d.charCodeAt(2));default:return b((31&d.charCodeAt(0))<<6|63&d.charCodeAt(1))}},W=d=>d.replace(y,C),p=d=>{if(d=d.replace(/\s+/g,""),!I.test(d))throw new TypeError("malformed base64.");d+="==".slice(2-(3&d.length));let l,m,c,i="";for(let I=0;I<d.length;)l=Z[d.charAt(I++)]<<18|Z[d.charAt(I++)]<<12|(m=Z[d.charAt(I++)])<<6|(c=Z[d.charAt(I++)]),i+=64===m?b(l>>16&255):64===c?b(l>>16&255,l>>8&255):b(l>>16&255,l>>8&255,255&l);return i},G="function"==typeof atob?d=>atob(i(d)):d?d=>Buffer.from(d,"base64").toString("binary"):p,K=d?d=>c(Buffer.from(d,"base64")):d=>c(G(d).split("").map((d=>d.charCodeAt(0)))),V=d?d=>Buffer.from(d,"base64").toString("utf8"):l?d=>l.decode(K(d)):d=>W(G(d)),h=d=>i(d.replace(/[-_]/g,(d=>"-"==d?"+":"/"))),o=d=>V(h(d)),u=o;var Y={};!function(d){var l=Object.prototype.hasOwnProperty,m="~";function Z(){}function I(d,l,m){this.fn=d,this.context=l,this.once=m||!1}function b(d,l,Z,b,c){if("function"!=typeof Z)throw new TypeError("The listener must be a function");var i=new I(Z,b||d,c),X=m?m+l:l;return d._events[X]?d._events[X].fn?d._events[X]=[d._events[X],i]:d._events[X].push(i):(d._events[X]=i,d._eventsCount++),d}function c(d,l){0==--d._eventsCount?d._events=new Z:delete d._events[l]}function i(){this._events=new Z,this._eventsCount=0}Object.create&&(Z.prototype=Object.create(null),(new Z).__proto__||(m=!1)),i.prototype.eventNames=function(){var d,Z,I=[];if(0===this._eventsCount)return I;for(Z in d=this._events)l.call(d,Z)&&I.push(m?Z.slice(1):Z);return Object.getOwnPropertySymbols?I.concat(Object.getOwnPropertySymbols(d)):I},i.prototype.listeners=function(d){var l=m?m+d:d,Z=this._events[l];if(!Z)return[];if(Z.fn)return[Z.fn];for(var I=0,b=Z.length,c=new Array(b);I<b;I++)c[I]=Z[I].fn;return c},i.prototype.listenerCount=function(d){var l=m?m+d:d,Z=this._events[l];return Z?Z.fn?1:Z.length:0},i.prototype.emit=function(d,l,Z,I,b,c){var i=m?m+d:d;if(!this._events[i])return!1;var X,y,C=this._events[i],W=arguments.length;if(C.fn){switch(C.once&&this.removeListener(d,C.fn,void 0,!0),W){case 1:return C.fn.call(C.context),!0;case 2:return C.fn.call(C.context,l),!0;case 3:return C.fn.call(C.context,l,Z),!0;case 4:return C.fn.call(C.context,l,Z,I),!0;case 5:return C.fn.call(C.context,l,Z,I,b),!0;case 6:return C.fn.call(C.context,l,Z,I,b,c),!0}for(y=1,X=new Array(W-1);y<W;y++)X[y-1]=arguments[y];C.fn.apply(C.context,X)}else{var p,G=C.length;for(y=0;y<G;y++)switch(C[y].once&&this.removeListener(d,C[y].fn,void 0,!0),W){case 1:C[y].fn.call(C[y].context);break;case 2:C[y].fn.call(C[y].context,l);break;case 3:C[y].fn.call(C[y].context,l,Z);break;case 4:C[y].fn.call(C[y].context,l,Z,I);break;default:if(!X)for(p=1,X=new Array(W-1);p<W;p++)X[p-1]=arguments[p];C[y].fn.apply(C[y].context,X)}}return!0},i.prototype.on=function(d,l,m){return b(this,d,l,m,!1)},i.prototype.once=function(d,l,m){return b(this,d,l,m,!0)},i.prototype.removeListener=function(d,l,Z,I){var b=m?m+d:d;if(!this._events[b])return this;if(!l)return c(this,b),this;var i=this._events[b];if(i.fn)i.fn!==l||I&&!i.once||Z&&i.context!==Z||c(this,b);else{for(var X=0,y=[],C=i.length;X<C;X++)(i[X].fn!==l||I&&!i[X].once||Z&&i[X].context!==Z)&&y.push(i[X]);y.length?this._events[b]=1===y.length?y[0]:y:c(this,b)}return this},i.prototype.removeAllListeners=function(d){var l;return d?(l=m?m+d:d,this._events[l]&&c(this,l)):(this._events=new Z,this._eventsCount=0),this},i.prototype.off=i.prototype.removeListener,i.prototype.addListener=i.prototype.on,i.prefixed=m,i.EventEmitter=i,d.exports=i}({get exports(){return Y},set exports(d){Y=d}});var H=Y;let n;!function(){if("browser"!==("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let d=u("CgoKInVzZSBzdHJpY3QiO3ZhciB0PUFycmF5LmlzQXJyYXkscj0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiZnbG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWwsZT0ib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYmJnNlbGYuT2JqZWN0PT09T2JqZWN0JiZzZWxmLG49cnx8ZXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxvPW4uU3ltYm9sLHU9T2JqZWN0LnByb3RvdHlwZSxpPXUuaGFzT3duUHJvcGVydHksYz11LnRvU3RyaW5nLGE9bz9vLnRvU3RyaW5nVGFnOnZvaWQgMDt2YXIgZj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO3ZhciBsPSJbb2JqZWN0IE51bGxdIixzPSJbb2JqZWN0IFVuZGVmaW5lZF0iLHA9bz9vLnRvU3RyaW5nVGFnOnZvaWQgMDtmdW5jdGlvbiBiKHQpe3JldHVybiBudWxsPT10P3ZvaWQgMD09PXQ/czpsOnAmJnAgaW4gT2JqZWN0KHQpP2Z1bmN0aW9uKHQpe3ZhciByPWkuY2FsbCh0LGEpLGU9dFthXTt0cnl7dFthXT12b2lkIDA7dmFyIG49ITB9Y2F0Y2godCl7fXZhciBvPWMuY2FsbCh0KTtyZXR1cm4gbiYmKHI/dFthXT1lOmRlbGV0ZSB0W2FdKSxvfSh0KTpmdW5jdGlvbih0KXtyZXR1cm4gZi5jYWxsKHQpfSh0KX1mdW5jdGlvbiB2KHQpe3JldHVybiBudWxsIT10JiYib2JqZWN0Ij09dHlwZW9mIHR9dmFyIHk9IltvYmplY3QgU3ltYm9sXSI7ZnVuY3Rpb24gaCh0KXtyZXR1cm4ic3ltYm9sIj09dHlwZW9mIHR8fHYodCkmJmIodCk9PXl9dmFyIGQ9L1wufFxbKD86W15bXF1dKnwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKj9cMSlcXS8saj0vXlx3KiQvO2Z1bmN0aW9uIGcocixlKXtpZih0KHIpKXJldHVybiExO3ZhciBuPXR5cGVvZiByO3JldHVybiEoIm51bWJlciIhPW4mJiJzeW1ib2wiIT1uJiYiYm9vbGVhbiIhPW4mJm51bGwhPXImJiFoKHIpKXx8KGoudGVzdChyKXx8IWQudGVzdChyKXx8bnVsbCE9ZSYmciBpbiBPYmplY3QoZSkpfWZ1bmN0aW9uIF8odCl7dmFyIHI9dHlwZW9mIHQ7cmV0dXJuIG51bGwhPXQmJigib2JqZWN0Ij09cnx8ImZ1bmN0aW9uIj09cil9dmFyIE89IltvYmplY3QgQXN5bmNGdW5jdGlvbl0iLG09IltvYmplY3QgRnVuY3Rpb25dIix3PSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsQT0iW29iamVjdCBQcm94eV0iO2Z1bmN0aW9uIFModCl7aWYoIV8odCkpcmV0dXJuITE7dmFyIHI9Yih0KTtyZXR1cm4gcj09bXx8cj09d3x8cj09T3x8cj09QX12YXIgeCxQPW5bIl9fY29yZS1qc19zaGFyZWRfXyJdLHo9KHg9L1teLl0rJC8uZXhlYyhQJiZQLmtleXMmJlAua2V5cy5JRV9QUk9UT3x8IiIpKT8iU3ltYm9sKHNyYylfMS4iK3g6IiI7dmFyIEU9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIEkodCl7aWYobnVsbCE9dCl7dHJ5e3JldHVybiBFLmNhbGwodCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gdCsiIn1jYXRjaCh0KXt9fXJldHVybiIifXZhciBOPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLFQ9RnVuY3Rpb24ucHJvdG90eXBlLCQ9T2JqZWN0LnByb3RvdHlwZSxrPVQudG9TdHJpbmcsQz0kLmhhc093blByb3BlcnR5LEY9UmVnRXhwKCJeIitrLmNhbGwoQykucmVwbGFjZSgvW1xcXiQuKis/KClbXF17fXxdL2csIlxcJCYiKS5yZXBsYWNlKC9oYXNPd25Qcm9wZXJ0eXwoZnVuY3Rpb24pLio/KD89XFxcKCl8IGZvciAuKz8oPz1cXFxdKS9nLCIkMS4qPyIpKyIkIik7ZnVuY3Rpb24gTSh0KXtyZXR1cm4hKCFfKHQpfHwocj10LHomJnogaW4gcikpJiYoUyh0KT9GOk4pLnRlc3QoSSh0KSk7dmFyIHJ9ZnVuY3Rpb24gVSh0LHIpe3ZhciBlPWZ1bmN0aW9uKHQscil7cmV0dXJuIG51bGw9PXQ/dm9pZCAwOnRbcl19KHQscik7cmV0dXJuIE0oZSk/ZTp2b2lkIDB9dmFyIEQ9VShPYmplY3QsImNyZWF0ZSIpO3ZhciBCPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIFI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBMKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fWZ1bmN0aW9uIFYodCxyKXtyZXR1cm4gdD09PXJ8fHQhPXQmJnIhPXJ9ZnVuY3Rpb24gSyh0LHIpe2Zvcih2YXIgZT10Lmxlbmd0aDtlLS07KWlmKFYodFtlXVswXSxyKSlyZXR1cm4gZTtyZXR1cm4tMX1MLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189RD9EKG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxMLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5oYXModCkmJmRlbGV0ZSB0aGlzLl9fZGF0YV9fW3RdO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LEwucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO2lmKEQpe3ZhciBlPXJbdF07cmV0dXJuIl9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iPT09ZT92b2lkIDA6ZX1yZXR1cm4gQi5jYWxsKHIsdCk/clt0XTp2b2lkIDB9LEwucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fO3JldHVybiBEP3ZvaWQgMCE9PXJbdF06Ui5jYWxsKHIsdCl9LEwucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX187cmV0dXJuIHRoaXMuc2l6ZSs9dGhpcy5oYXModCk/MDoxLGVbdF09RCYmdm9pZCAwPT09cj8iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI6cix0aGlzfTt2YXIgVz1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIHEodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19cS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSxxLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPUsocix0KTtyZXR1cm4hKGU8MCkmJihlPT1yLmxlbmd0aC0xP3IucG9wKCk6Vy5jYWxsKHIsZSwxKSwtLXRoaXMuc2l6ZSwhMCl9LHEucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fLGU9SyhyLHQpO3JldHVybiBlPDA/dm9pZCAwOnJbZV1bMV19LHEucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gSyh0aGlzLl9fZGF0YV9fLHQpPi0xfSxxLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fLG49SyhlLHQpO3JldHVybiBuPDA/KCsrdGhpcy5zaXplLGUucHVzaChbdCxyXSkpOmVbbl1bMV09cix0aGlzfTt2YXIgRz1VKG4sIk1hcCIpO2Z1bmN0aW9uIEgodCxyKXt2YXIgZSxuLG89dC5fX2RhdGFfXztyZXR1cm4oInN0cmluZyI9PShuPXR5cGVvZihlPXIpKXx8Im51bWJlciI9PW58fCJzeW1ib2wiPT1ufHwiYm9vbGVhbiI9PW4/Il9fcHJvdG9fXyIhPT1lOm51bGw9PT1lKT9vWyJzdHJpbmciPT10eXBlb2Ygcj8ic3RyaW5nIjoiaGFzaCJdOm8ubWFwfWZ1bmN0aW9uIEoodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19Si5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLnNpemU9MCx0aGlzLl9fZGF0YV9fPXtoYXNoOm5ldyBMLG1hcDpuZXcoR3x8cSksc3RyaW5nOm5ldyBMfX0sSi5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPUgodGhpcyx0KS5kZWxldGUodCk7cmV0dXJuIHRoaXMuc2l6ZS09cj8xOjAscn0sSi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBIKHRoaXMsdCkuZ2V0KHQpfSxKLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEgodGhpcyx0KS5oYXModCl9LEoucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPUgodGhpcyx0KSxuPWUuc2l6ZTtyZXR1cm4gZS5zZXQodCxyKSx0aGlzLnNpemUrPWUuc2l6ZT09bj8wOjEsdGhpc307dmFyIFE9IkV4cGVjdGVkIGEgZnVuY3Rpb24iO2Z1bmN0aW9uIFgodCxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdHx8bnVsbCE9ciYmImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgbmV3IFR5cGVFcnJvcihRKTt2YXIgZT1mdW5jdGlvbigpe3ZhciBuPWFyZ3VtZW50cyxvPXI/ci5hcHBseSh0aGlzLG4pOm5bMF0sdT1lLmNhY2hlO2lmKHUuaGFzKG8pKXJldHVybiB1LmdldChvKTt2YXIgaT10LmFwcGx5KHRoaXMsbik7cmV0dXJuIGUuY2FjaGU9dS5zZXQobyxpKXx8dSxpfTtyZXR1cm4gZS5jYWNoZT1uZXcoWC5DYWNoZXx8SiksZX1YLkNhY2hlPUo7dmFyIFksWix0dCxydD0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxldD0vXFwoXFwpPy9nLG50PShZPWZ1bmN0aW9uKHQpe3ZhciByPVtdO3JldHVybiA0Nj09PXQuY2hhckNvZGVBdCgwKSYmci5wdXNoKCIiKSx0LnJlcGxhY2UocnQsKGZ1bmN0aW9uKHQsZSxuLG8pe3IucHVzaChuP28ucmVwbGFjZShldCwiJDEiKTplfHx0KX0pKSxyfSxaPVgoWSwoZnVuY3Rpb24odCl7cmV0dXJuIDUwMD09PXR0LnNpemUmJnR0LmNsZWFyKCksdH0pKSx0dD1aLmNhY2hlLFopLG90PW50O2Z1bmN0aW9uIHV0KHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99dmFyIGl0PTEvMCxjdD1vP28ucHJvdG90eXBlOnZvaWQgMCxhdD1jdD9jdC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gZnQocil7aWYoInN0cmluZyI9PXR5cGVvZiByKXJldHVybiByO2lmKHQocikpcmV0dXJuIHV0KHIsZnQpKyIiO2lmKGgocikpcmV0dXJuIGF0P2F0LmNhbGwocik6IiI7dmFyIGU9cisiIjtyZXR1cm4iMCI9PWUmJjEvcj09LWl0PyItMCI6ZX1mdW5jdGlvbiBsdChyLGUpe3JldHVybiB0KHIpP3I6ZyhyLGUpP1tyXTpvdChmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD8iIjpmdCh0KX0ocikpfXZhciBzdD0xLzA7ZnVuY3Rpb24gcHQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0fHxoKHQpKXJldHVybiB0O3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1zdD8iLTAiOnJ9ZnVuY3Rpb24gYnQodCxyKXtmb3IodmFyIGU9MCxuPShyPWx0KHIsdCkpLmxlbmd0aDtudWxsIT10JiZlPG47KXQ9dFtwdChyW2UrK10pXTtyZXR1cm4gZSYmZT09bj90OnZvaWQgMH1mdW5jdGlvbiB2dCh0LHIsZSl7dmFyIG49bnVsbD09dD92b2lkIDA6YnQodCxyKTtyZXR1cm4gdm9pZCAwPT09bj9lOm59ZnVuY3Rpb24geXQodCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gaHQodCl7cmV0dXJuISgheXQodCl8fCIiPT09dCl9ZnVuY3Rpb24gZHQodCl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24ganQodCl7aWYoZHQodCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiEwO3JldHVybiExfXJldHVybiExfWZ1bmN0aW9uIGd0KHQpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gX3QodCl7cmV0dXJuIHQhPXR9ZnVuY3Rpb24gT3QodCl7cmV0dXJuISFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBVbmRlZmluZWRdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IE51bGxdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCghIWZ1bmN0aW9uKHQpe2lmKGR0KHQpKXtmb3IobGV0IHIgaW4gdClyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hMX0odCl8fCghIWZ1bmN0aW9uKHQpe3JldHVybiEoIXl0KHQpfHwiIiE9PXQpfSh0KXx8KCEhZnVuY3Rpb24odCl7cmV0dXJuISFndCh0KSYmMD09PXQubGVuZ3RofSh0KXx8ISFfdCh0KSkpKSl9ZnVuY3Rpb24gbXQodCl7cmV0dXJuISFndCh0KSYmKDAhPT10Lmxlbmd0aCYmKDEhPT10Lmxlbmd0aHx8IU90KHRbMF0pKSl9dmFyIHd0PSJbb2JqZWN0IEJvb2xlYW5dIjtmdW5jdGlvbiBBdCh0KXtyZXR1cm4hMD09PShyPXQpfHwhMT09PXJ8fHYocikmJmIocik9PXd0O3ZhciByfWZ1bmN0aW9uIFN0KHQpe3ZhciByPXRoaXMuX19kYXRhX189bmV3IHEodCk7dGhpcy5zaXplPXIuc2l6ZX1TdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW5ldyBxLHRoaXMuc2l6ZT0wfSxTdC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1yLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPXIuc2l6ZSxlfSxTdC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX0sU3QucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9LFN0LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKGUgaW5zdGFuY2VvZiBxKXt2YXIgbj1lLl9fZGF0YV9fO2lmKCFHfHxuLmxlbmd0aDwxOTkpcmV0dXJuIG4ucHVzaChbdCxyXSksdGhpcy5zaXplPSsrZS5zaXplLHRoaXM7ZT10aGlzLl9fZGF0YV9fPW5ldyBKKG4pfXJldHVybiBlLnNldCh0LHIpLHRoaXMuc2l6ZT1lLnNpemUsdGhpc307ZnVuY3Rpb24geHQodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuX19kYXRhX189bmV3IEo7KytyPGU7KXRoaXMuYWRkKHRbcl0pfWZ1bmN0aW9uIFB0KHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoOysrZTxuOylpZihyKHRbZV0sZSx0KSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB6dCh0LHIpe3JldHVybiB0LmhhcyhyKX14dC5wcm90b3R5cGUuYWRkPXh0LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLnNldCh0LCJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIiksdGhpc30seHQucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9O3ZhciBFdD0xLEl0PTI7ZnVuY3Rpb24gTnQodCxyLGUsbixvLHUpe3ZhciBpPWUmRXQsYz10Lmxlbmd0aCxhPXIubGVuZ3RoO2lmKGMhPWEmJiEoaSYmYT5jKSlyZXR1cm4hMTt2YXIgZj11LmdldCh0KSxsPXUuZ2V0KHIpO2lmKGYmJmwpcmV0dXJuIGY9PXImJmw9PXQ7dmFyIHM9LTEscD0hMCxiPWUmSXQ/bmV3IHh0OnZvaWQgMDtmb3IodS5zZXQodCxyKSx1LnNldChyLHQpOysrczxjOyl7dmFyIHY9dFtzXSx5PXJbc107aWYobil2YXIgaD1pP24oeSx2LHMscix0LHUpOm4odix5LHMsdCxyLHUpO2lmKHZvaWQgMCE9PWgpe2lmKGgpY29udGludWU7cD0hMTticmVha31pZihiKXtpZighUHQociwoZnVuY3Rpb24odCxyKXtpZighenQoYixyKSYmKHY9PT10fHxvKHYsdCxlLG4sdSkpKXJldHVybiBiLnB1c2gocil9KSkpe3A9ITE7YnJlYWt9fWVsc2UgaWYodiE9PXkmJiFvKHYseSxlLG4sdSkpe3A9ITE7YnJlYWt9fXJldHVybiB1LmRlbGV0ZSh0KSx1LmRlbGV0ZShyKSxwfXZhciBUdD1uLlVpbnQ4QXJyYXk7ZnVuY3Rpb24gJHQodCl7dmFyIHI9LTEsZT1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQsbil7ZVsrK3JdPVtuLHRdfSkpLGV9ZnVuY3Rpb24ga3QodCl7dmFyIHI9LTEsZT1BcnJheSh0LnNpemUpO3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2VbKytyXT10fSkpLGV9dmFyIEN0PTEsRnQ9MixNdD0iW29iamVjdCBCb29sZWFuXSIsVXQ9IltvYmplY3QgRGF0ZV0iLER0PSJbb2JqZWN0IEVycm9yXSIsQnQ9IltvYmplY3QgTWFwXSIsUnQ9IltvYmplY3QgTnVtYmVyXSIsTHQ9IltvYmplY3QgUmVnRXhwXSIsVnQ9IltvYmplY3QgU2V0XSIsS3Q9IltvYmplY3QgU3RyaW5nXSIsV3Q9IltvYmplY3QgU3ltYm9sXSIscXQ9IltvYmplY3QgQXJyYXlCdWZmZXJdIixHdD0iW29iamVjdCBEYXRhVmlld10iLEh0PW8/by5wcm90b3R5cGU6dm9pZCAwLEp0PUh0P0h0LnZhbHVlT2Y6dm9pZCAwO2Z1bmN0aW9uIFF0KHQscil7Zm9yKHZhciBlPS0xLG49ci5sZW5ndGgsbz10Lmxlbmd0aDsrK2U8bjspdFtvK2VdPXJbZV07cmV0dXJuIHR9ZnVuY3Rpb24gWHQocixlLG4pe3ZhciBvPWUocik7cmV0dXJuIHQocik/bzpRdChvLG4ocikpfWZ1bmN0aW9uIFl0KCl7cmV0dXJuW119dmFyIFp0PU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsdHI9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxycj10cj9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz0wLHU9W107KytlPG47KXt2YXIgaT10W2VdO3IoaSxlLHQpJiYodVtvKytdPWkpfXJldHVybiB1fSh0cih0KSwoZnVuY3Rpb24ocil7cmV0dXJuIFp0LmNhbGwodCxyKX0pKSl9Oll0LGVyPXJyO2Z1bmN0aW9uIG5yKHQpe3JldHVybiB2KHQpJiYiW29iamVjdCBBcmd1bWVudHNdIj09Yih0KX12YXIgb3I9T2JqZWN0LnByb3RvdHlwZSx1cj1vci5oYXNPd25Qcm9wZXJ0eSxpcj1vci5wcm9wZXJ0eUlzRW51bWVyYWJsZSxjcj1ucihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpP25yOmZ1bmN0aW9uKHQpe3JldHVybiB2KHQpJiZ1ci5jYWxsKHQsImNhbGxlZSIpJiYhaXIuY2FsbCh0LCJjYWxsZWUiKX07dmFyIGFyPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsZnI9YXImJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSxscj1mciYmZnIuZXhwb3J0cz09PWFyP24uQnVmZmVyOnZvaWQgMCxzcj0obHI/bHIuaXNCdWZmZXI6dm9pZCAwKXx8ZnVuY3Rpb24oKXtyZXR1cm4hMX0scHI9OTAwNzE5OTI1NDc0MDk5MSxicj0vXig/OjB8WzEtOV1cZCopJC87ZnVuY3Rpb24gdnIodCxyKXt2YXIgZT10eXBlb2YgdDtyZXR1cm4hIShyPW51bGw9PXI/cHI6cikmJigibnVtYmVyIj09ZXx8InN5bWJvbCIhPWUmJmJyLnRlc3QodCkpJiZ0Pi0xJiZ0JTE9PTAmJnQ8cn12YXIgeXI9OTAwNzE5OTI1NDc0MDk5MTtmdW5jdGlvbiBocih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+LTEmJnQlMT09MCYmdDw9eXJ9dmFyIGRyPXt9O2Z1bmN0aW9uIGpyKHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gdChyKX19ZHJbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPWRyWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1kclsiW29iamVjdCBJbnQ4QXJyYXldIl09ZHJbIltvYmplY3QgSW50MTZBcnJheV0iXT1kclsiW29iamVjdCBJbnQzMkFycmF5XSJdPWRyWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09ZHJbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09ZHJbIltvYmplY3QgVWludDE2QXJyYXldIl09ZHJbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsZHJbIltvYmplY3QgQXJndW1lbnRzXSJdPWRyWyJbb2JqZWN0IEFycmF5XSJdPWRyWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPWRyWyJbb2JqZWN0IEJvb2xlYW5dIl09ZHJbIltvYmplY3QgRGF0YVZpZXddIl09ZHJbIltvYmplY3QgRGF0ZV0iXT1kclsiW29iamVjdCBFcnJvcl0iXT1kclsiW29iamVjdCBGdW5jdGlvbl0iXT1kclsiW29iamVjdCBNYXBdIl09ZHJbIltvYmplY3QgTnVtYmVyXSJdPWRyWyJbb2JqZWN0IE9iamVjdF0iXT1kclsiW29iamVjdCBSZWdFeHBdIl09ZHJbIltvYmplY3QgU2V0XSJdPWRyWyJbb2JqZWN0IFN0cmluZ10iXT1kclsiW29iamVjdCBXZWFrTWFwXSJdPSExO3ZhciBncj0ib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRzLF9yPWdyJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsT3I9X3ImJl9yLmV4cG9ydHM9PT1nciYmci5wcm9jZXNzLG1yPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PV9yJiZfci5yZXF1aXJlJiZfci5yZXF1aXJlKCJ1dGlsIikudHlwZXM7cmV0dXJuIHR8fE9yJiZPci5iaW5kaW5nJiZPci5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2godCl7fX0oKSx3cj1tciYmbXIuaXNUeXBlZEFycmF5LEFyPXdyP2pyKHdyKTpmdW5jdGlvbih0KXtyZXR1cm4gdih0KSYmaHIodC5sZW5ndGgpJiYhIWRyW2IodCldfSxTcj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHhyKHIsZSl7dmFyIG49dChyKSxvPSFuJiZjcihyKSx1PSFuJiYhbyYmc3IociksaT0hbiYmIW8mJiF1JiZBcihyKSxjPW58fG98fHV8fGksYT1jP2Z1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49QXJyYXkodCk7KytlPHQ7KW5bZV09cihlKTtyZXR1cm4gbn0oci5sZW5ndGgsU3RyaW5nKTpbXSxmPWEubGVuZ3RoO2Zvcih2YXIgbCBpbiByKSFlJiYhU3IuY2FsbChyLGwpfHxjJiYoImxlbmd0aCI9PWx8fHUmJigib2Zmc2V0Ij09bHx8InBhcmVudCI9PWwpfHxpJiYoImJ1ZmZlciI9PWx8fCJieXRlTGVuZ3RoIj09bHx8ImJ5dGVPZmZzZXQiPT1sKXx8dnIobCxmKSl8fGEucHVzaChsKTtyZXR1cm4gYX12YXIgUHI9T2JqZWN0LnByb3RvdHlwZTtmdW5jdGlvbiB6cih0KXt2YXIgcj10JiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0PT09KCJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLnByb3RvdHlwZXx8UHIpfWZ1bmN0aW9uIEVyKHQscil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KHIoZSkpfX12YXIgSXI9RXIoT2JqZWN0LmtleXMsT2JqZWN0KSxOcj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIFRyKHQpe2lmKCF6cih0KSlyZXR1cm4gSXIodCk7dmFyIHI9W107Zm9yKHZhciBlIGluIE9iamVjdCh0KSlOci5jYWxsKHQsZSkmJiJjb25zdHJ1Y3RvciIhPWUmJnIucHVzaChlKTtyZXR1cm4gcn1mdW5jdGlvbiAkcih0KXtyZXR1cm4gbnVsbCE9dCYmaHIodC5sZW5ndGgpJiYhUyh0KX1mdW5jdGlvbiBrcih0KXtyZXR1cm4gJHIodCk/eHIodCk6VHIodCl9ZnVuY3Rpb24gQ3IodCl7cmV0dXJuIFh0KHQsa3IsZXIpfXZhciBGcj0xLE1yPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIFVyPVUobiwiRGF0YVZpZXciKSxEcj1VKG4sIlByb21pc2UiKSxCcj1VKG4sIlNldCIpLFJyPVUobiwiV2Vha01hcCIpLExyPSJbb2JqZWN0IE1hcF0iLFZyPSJbb2JqZWN0IFByb21pc2VdIixLcj0iW29iamVjdCBTZXRdIixXcj0iW29iamVjdCBXZWFrTWFwXSIscXI9IltvYmplY3QgRGF0YVZpZXddIixHcj1JKFVyKSxIcj1JKEcpLEpyPUkoRHIpLFFyPUkoQnIpLFhyPUkoUnIpLFlyPWI7KFVyJiZZcihuZXcgVXIobmV3IEFycmF5QnVmZmVyKDEpKSkhPXFyfHxHJiZZcihuZXcgRykhPUxyfHxEciYmWXIoRHIucmVzb2x2ZSgpKSE9VnJ8fEJyJiZZcihuZXcgQnIpIT1Lcnx8UnImJllyKG5ldyBScikhPVdyKSYmKFlyPWZ1bmN0aW9uKHQpe3ZhciByPWIodCksZT0iW29iamVjdCBPYmplY3RdIj09cj90LmNvbnN0cnVjdG9yOnZvaWQgMCxuPWU/SShlKToiIjtpZihuKXN3aXRjaChuKXtjYXNlIEdyOnJldHVybiBxcjtjYXNlIEhyOnJldHVybiBMcjtjYXNlIEpyOnJldHVybiBWcjtjYXNlIFFyOnJldHVybiBLcjtjYXNlIFhyOnJldHVybiBXcn1yZXR1cm4gcn0pO3ZhciBacj1Zcix0ZT0xLHJlPSJbb2JqZWN0IEFyZ3VtZW50c10iLGVlPSJbb2JqZWN0IEFycmF5XSIsbmU9IltvYmplY3QgT2JqZWN0XSIsb2U9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB1ZShyLGUsbixvLHUsaSl7dmFyIGM9dChyKSxhPXQoZSksZj1jP2VlOlpyKHIpLGw9YT9lZTpacihlKSxzPShmPWY9PXJlP25lOmYpPT1uZSxwPShsPWw9PXJlP25lOmwpPT1uZSxiPWY9PWw7aWYoYiYmc3Iocikpe2lmKCFzcihlKSlyZXR1cm4hMTtjPSEwLHM9ITF9aWYoYiYmIXMpcmV0dXJuIGl8fChpPW5ldyBTdCksY3x8QXIocik/TnQocixlLG4sbyx1LGkpOmZ1bmN0aW9uKHQscixlLG4sbyx1LGkpe3N3aXRjaChlKXtjYXNlIEd0OmlmKHQuYnl0ZUxlbmd0aCE9ci5ieXRlTGVuZ3RofHx0LmJ5dGVPZmZzZXQhPXIuYnl0ZU9mZnNldClyZXR1cm4hMTt0PXQuYnVmZmVyLHI9ci5idWZmZXI7Y2FzZSBxdDpyZXR1cm4hKHQuYnl0ZUxlbmd0aCE9ci5ieXRlTGVuZ3RofHwhdShuZXcgVHQodCksbmV3IFR0KHIpKSk7Y2FzZSBNdDpjYXNlIFV0OmNhc2UgUnQ6cmV0dXJuIFYoK3QsK3IpO2Nhc2UgRHQ6cmV0dXJuIHQubmFtZT09ci5uYW1lJiZ0Lm1lc3NhZ2U9PXIubWVzc2FnZTtjYXNlIEx0OmNhc2UgS3Q6cmV0dXJuIHQ9PXIrIiI7Y2FzZSBCdDp2YXIgYz0kdDtjYXNlIFZ0OnZhciBhPW4mQ3Q7aWYoY3x8KGM9a3QpLHQuc2l6ZSE9ci5zaXplJiYhYSlyZXR1cm4hMTt2YXIgZj1pLmdldCh0KTtpZihmKXJldHVybiBmPT1yO258PUZ0LGkuc2V0KHQscik7dmFyIGw9TnQoYyh0KSxjKHIpLG4sbyx1LGkpO3JldHVybiBpLmRlbGV0ZSh0KSxsO2Nhc2UgV3Q6aWYoSnQpcmV0dXJuIEp0LmNhbGwodCk9PUp0LmNhbGwocil9cmV0dXJuITF9KHIsZSxmLG4sbyx1LGkpO2lmKCEobiZ0ZSkpe3ZhciB2PXMmJm9lLmNhbGwociwiX193cmFwcGVkX18iKSx5PXAmJm9lLmNhbGwoZSwiX193cmFwcGVkX18iKTtpZih2fHx5KXt2YXIgaD12P3IudmFsdWUoKTpyLGQ9eT9lLnZhbHVlKCk6ZTtyZXR1cm4gaXx8KGk9bmV3IFN0KSx1KGgsZCxuLG8saSl9fXJldHVybiEhYiYmKGl8fChpPW5ldyBTdCksZnVuY3Rpb24odCxyLGUsbixvLHUpe3ZhciBpPWUmRnIsYz1Dcih0KSxhPWMubGVuZ3RoO2lmKGEhPUNyKHIpLmxlbmd0aCYmIWkpcmV0dXJuITE7Zm9yKHZhciBmPWE7Zi0tOyl7dmFyIGw9Y1tmXTtpZighKGk/bCBpbiByOk1yLmNhbGwocixsKSkpcmV0dXJuITF9dmFyIHM9dS5nZXQodCkscD11LmdldChyKTtpZihzJiZwKXJldHVybiBzPT1yJiZwPT10O3ZhciBiPSEwO3Uuc2V0KHQsciksdS5zZXQocix0KTtmb3IodmFyIHY9aTsrK2Y8YTspe3ZhciB5PXRbbD1jW2ZdXSxoPXJbbF07aWYobil2YXIgZD1pP24oaCx5LGwscix0LHUpOm4oeSxoLGwsdCxyLHUpO2lmKCEodm9pZCAwPT09ZD95PT09aHx8byh5LGgsZSxuLHUpOmQpKXtiPSExO2JyZWFrfXZ8fCh2PSJjb25zdHJ1Y3RvciI9PWwpfWlmKGImJiF2KXt2YXIgaj10LmNvbnN0cnVjdG9yLGc9ci5jb25zdHJ1Y3RvcjtqPT1nfHwhKCJjb25zdHJ1Y3RvciJpbiB0KXx8ISgiY29uc3RydWN0b3IiaW4gcil8fCJmdW5jdGlvbiI9PXR5cGVvZiBqJiZqIGluc3RhbmNlb2YgaiYmImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcgaW5zdGFuY2VvZiBnfHwoYj0hMSl9cmV0dXJuIHUuZGVsZXRlKHQpLHUuZGVsZXRlKHIpLGJ9KHIsZSxuLG8sdSxpKSl9ZnVuY3Rpb24gaWUodCxyLGUsbixvKXtyZXR1cm4gdD09PXJ8fChudWxsPT10fHxudWxsPT1yfHwhdih0KSYmIXYocik/dCE9dCYmciE9cjp1ZSh0LHIsZSxuLGllLG8pKX12YXIgY2U9MSxhZT0yO2Z1bmN0aW9uIGZlKHQpe3JldHVybiB0PT10JiYhXyh0KX1mdW5jdGlvbiBsZSh0LHIpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmKGVbdF09PT1yJiYodm9pZCAwIT09cnx8dCBpbiBPYmplY3QoZSkpKX19ZnVuY3Rpb24gc2UodCl7dmFyIHI9ZnVuY3Rpb24odCl7Zm9yKHZhciByPWtyKHQpLGU9ci5sZW5ndGg7ZS0tOyl7dmFyIG49cltlXSxvPXRbbl07cltlXT1bbixvLGZlKG8pXX1yZXR1cm4gcn0odCk7cmV0dXJuIDE9PXIubGVuZ3RoJiZyWzBdWzJdP2xlKHJbMF1bMF0sclswXVsxXSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT10fHxmdW5jdGlvbih0LHIsZSxuKXt2YXIgbz1lLmxlbmd0aCx1PW8saT0hbjtpZihudWxsPT10KXJldHVybiF1O2Zvcih0PU9iamVjdCh0KTtvLS07KXt2YXIgYz1lW29dO2lmKGkmJmNbMl0/Y1sxXSE9PXRbY1swXV06IShjWzBdaW4gdCkpcmV0dXJuITF9Zm9yKDsrK288dTspe3ZhciBhPShjPWVbb10pWzBdLGY9dFthXSxsPWNbMV07aWYoaSYmY1syXSl7aWYodm9pZCAwPT09ZiYmIShhIGluIHQpKXJldHVybiExfWVsc2V7dmFyIHM9bmV3IFN0O2lmKG4pdmFyIHA9bihmLGwsYSx0LHIscyk7aWYoISh2b2lkIDA9PT1wP2llKGwsZixjZXxhZSxuLHMpOnApKXJldHVybiExfX1yZXR1cm4hMH0oZSx0LHIpfX1mdW5jdGlvbiBwZSh0LHIpe3JldHVybiBudWxsIT10JiZyIGluIE9iamVjdCh0KX1mdW5jdGlvbiBiZShyLGUpe3JldHVybiBudWxsIT1yJiZmdW5jdGlvbihyLGUsbil7Zm9yKHZhciBvPS0xLHU9KGU9bHQoZSxyKSkubGVuZ3RoLGk9ITE7KytvPHU7KXt2YXIgYz1wdChlW29dKTtpZighKGk9bnVsbCE9ciYmbihyLGMpKSlicmVhaztyPXJbY119cmV0dXJuIGl8fCsrbyE9dT9pOiEhKHU9bnVsbD09cj8wOnIubGVuZ3RoKSYmaHIodSkmJnZyKGMsdSkmJih0KHIpfHxjcihyKSl9KHIsZSxwZSl9dmFyIHZlPTEseWU9MjtmdW5jdGlvbiBoZSh0KXtyZXR1cm4gdH1mdW5jdGlvbiBkZSh0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIG51bGw9PXI/dm9pZCAwOnJbdF19fWZ1bmN0aW9uIGplKHQpe3JldHVybiBnKHQpP2RlKHB0KHQpKTpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIGJ0KHIsdCl9fSh0KX1mdW5jdGlvbiBnZShyKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcj9yOm51bGw9PXI/aGU6Im9iamVjdCI9PXR5cGVvZiByP3Qocik/KGU9clswXSxuPXJbMV0sZyhlKSYmZmUobik/bGUocHQoZSksbik6ZnVuY3Rpb24odCl7dmFyIHI9dnQodCxlKTtyZXR1cm4gdm9pZCAwPT09ciYmcj09PW4/YmUodCxlKTppZShuLHIsdmV8eWUpfSk6c2Uocik6amUocik7dmFyIGUsbn12YXIgX2UsT2U9ZnVuY3Rpb24odCxyLGUpe2Zvcih2YXIgbj0tMSxvPU9iamVjdCh0KSx1PWUodCksaT11Lmxlbmd0aDtpLS07KXt2YXIgYz11W19lP2k6KytuXTtpZighMT09PXIob1tjXSxjLG8pKWJyZWFrfXJldHVybiB0fTt2YXIgbWU9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZnVuY3Rpb24oZSxuKXtpZihudWxsPT1lKXJldHVybiBlO2lmKCEkcihlKSlyZXR1cm4gdChlLG4pO2Zvcih2YXIgbz1lLmxlbmd0aCx1PXI/bzotMSxpPU9iamVjdChlKTsocj91LS06Kyt1PG8pJiYhMSE9PW4oaVt1XSx1LGkpOyk7cmV0dXJuIGV9fSgoZnVuY3Rpb24odCxyKXtyZXR1cm4gdCYmT2UodCxyLGtyKX0pKSx3ZT1tZTtmdW5jdGlvbiBBZSh0LHIpe3ZhciBlPS0xLG49JHIodCk/QXJyYXkodC5sZW5ndGgpOltdO3JldHVybiB3ZSh0LChmdW5jdGlvbih0LG8sdSl7blsrK2VdPXIodCxvLHUpfSkpLG59dmFyIFNlPUFycmF5LnByb3RvdHlwZS5qb2luO3ZhciB4ZT0iW29iamVjdCBTdHJpbmddIjt2YXIgUGU9ZGUoImxlbmd0aCIpLHplPVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTt2YXIgRWU9IlxcdWQ4MDAtXFx1ZGZmZiIsSWU9IlsiK0VlKyJdIixOZT0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLFRlPSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLCRlPSJbXiIrRWUrIl0iLGtlPSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixDZT0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsRmU9Iig/OiIrTmUrInwiK1RlKyIpIisiPyIsTWU9IltcXHVmZTBlXFx1ZmUwZl0/IixVZT1NZStGZSsoIig/OlxcdTIwMGQoPzoiK1skZSxrZSxDZV0uam9pbigifCIpKyIpIitNZStGZSsiKSoiKSxEZT0iKD86IitbJGUrTmUrIj8iLE5lLGtlLENlLEllXS5qb2luKCJ8IikrIikiLEJlPVJlZ0V4cChUZSsiKD89IitUZSsiKXwiK0RlK1VlLCJnIik7ZnVuY3Rpb24gUmUodCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB6ZS50ZXN0KHQpfSh0KT9mdW5jdGlvbih0KXtmb3IodmFyIHI9QmUubGFzdEluZGV4PTA7QmUudGVzdCh0KTspKytyO3JldHVybiByfSh0KTpQZSh0KX12YXIgTGU9IltvYmplY3QgTWFwXSIsVmU9IltvYmplY3QgU2V0XSI7ZnVuY3Rpb24gS2Uocil7aWYobnVsbD09cilyZXR1cm4gMDtpZigkcihyKSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mKGU9cil8fCF0KGUpJiZ2KGUpJiZiKGUpPT14ZT9SZShyKTpyLmxlbmd0aDt2YXIgZSxuPVpyKHIpO3JldHVybiBuPT1MZXx8bj09VmU/ci5zaXplOlRyKHIpLmxlbmd0aH12YXIgV2U9IltvYmplY3QgTnVtYmVyXSI7ZnVuY3Rpb24gcWUodCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytlPG4mJiExIT09cih0W2VdLGUsdCk7KTtyZXR1cm4gdH12YXIgR2U9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9VShPYmplY3QsImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIHQoe30sIiIse30pLHR9Y2F0Y2godCl7fX0oKSxIZT1HZTtmdW5jdGlvbiBKZSh0LHIsZSl7Il9fcHJvdG9fXyI9PXImJkhlP0hlKHQscix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZSx3cml0YWJsZTohMH0pOnRbcl09ZX12YXIgUWU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBYZSh0LHIsZSl7dmFyIG49dFtyXTtRZS5jYWxsKHQscikmJlYobixlKSYmKHZvaWQgMCE9PWV8fHIgaW4gdCl8fEplKHQscixlKX1mdW5jdGlvbiBZZSh0LHIsZSxuKXt2YXIgbz0hZTtlfHwoZT17fSk7Zm9yKHZhciB1PS0xLGk9ci5sZW5ndGg7Kyt1PGk7KXt2YXIgYz1yW3VdLGE9bj9uKGVbY10sdFtjXSxjLGUsdCk6dm9pZCAwO3ZvaWQgMD09PWEmJihhPXRbY10pLG8/SmUoZSxjLGEpOlhlKGUsYyxhKX1yZXR1cm4gZX12YXIgWmU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiB0bih0KXtpZighXyh0KSlyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9W107aWYobnVsbCE9dClmb3IodmFyIGUgaW4gT2JqZWN0KHQpKXIucHVzaChlKTtyZXR1cm4gcn0odCk7dmFyIHI9enIodCksZT1bXTtmb3IodmFyIG4gaW4gdCkoImNvbnN0cnVjdG9yIiE9bnx8IXImJlplLmNhbGwodCxuKSkmJmUucHVzaChuKTtyZXR1cm4gZX1mdW5jdGlvbiBybih0KXtyZXR1cm4gJHIodCk/eHIodCwhMCk6dG4odCl9dmFyIGVuPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsbm49ZW4mJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSxvbj1ubiYmbm4uZXhwb3J0cz09PWVuP24uQnVmZmVyOnZvaWQgMCx1bj1vbj9vbi5hbGxvY1Vuc2FmZTp2b2lkIDA7dmFyIGNuPUVyKE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpLGFuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/ZnVuY3Rpb24odCl7Zm9yKHZhciByPVtdO3Q7KVF0KHIsZXIodCkpLHQ9Y24odCk7cmV0dXJuIHJ9Oll0LGZuPWFuO2Z1bmN0aW9uIGxuKHQpe3JldHVybiBYdCh0LHJuLGZuKX12YXIgc249T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBwbih0KXt2YXIgcj1uZXcgdC5jb25zdHJ1Y3Rvcih0LmJ5dGVMZW5ndGgpO3JldHVybiBuZXcgVHQocikuc2V0KG5ldyBUdCh0KSkscn12YXIgYm49L1x3KiQvO3ZhciB2bj1vP28ucHJvdG90eXBlOnZvaWQgMCx5bj12bj92bi52YWx1ZU9mOnZvaWQgMDt2YXIgaG49IltvYmplY3QgQm9vbGVhbl0iLGRuPSJbb2JqZWN0IERhdGVdIixqbj0iW29iamVjdCBNYXBdIixnbj0iW29iamVjdCBOdW1iZXJdIixfbj0iW29iamVjdCBSZWdFeHBdIixPbj0iW29iamVjdCBTZXRdIixtbj0iW29iamVjdCBTdHJpbmddIix3bj0iW29iamVjdCBTeW1ib2xdIixBbj0iW29iamVjdCBBcnJheUJ1ZmZlcl0iLFNuPSJbb2JqZWN0IERhdGFWaWV3XSIseG49IltvYmplY3QgRmxvYXQzMkFycmF5XSIsUG49IltvYmplY3QgRmxvYXQ2NEFycmF5XSIsem49IltvYmplY3QgSW50OEFycmF5XSIsRW49IltvYmplY3QgSW50MTZBcnJheV0iLEluPSJbb2JqZWN0IEludDMyQXJyYXldIixObj0iW29iamVjdCBVaW50OEFycmF5XSIsVG49IltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIiwkbj0iW29iamVjdCBVaW50MTZBcnJheV0iLGtuPSJbb2JqZWN0IFVpbnQzMkFycmF5XSI7ZnVuY3Rpb24gQ24odCxyLGUpe3ZhciBuLG89dC5jb25zdHJ1Y3Rvcjtzd2l0Y2gocil7Y2FzZSBBbjpyZXR1cm4gcG4odCk7Y2FzZSBobjpjYXNlIGRuOnJldHVybiBuZXcgbygrdCk7Y2FzZSBTbjpyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgZT1yP3BuKHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3IoZSx0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKX0odCxlKTtjYXNlIHhuOmNhc2UgUG46Y2FzZSB6bjpjYXNlIEVuOmNhc2UgSW46Y2FzZSBObjpjYXNlIFRuOmNhc2UgJG46Y2FzZSBrbjpyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgZT1yP3BuKHQuYnVmZmVyKTp0LmJ1ZmZlcjtyZXR1cm4gbmV3IHQuY29uc3RydWN0b3IoZSx0LmJ5dGVPZmZzZXQsdC5sZW5ndGgpfSh0LGUpO2Nhc2Ugam46cmV0dXJuIG5ldyBvO2Nhc2UgZ246Y2FzZSBtbjpyZXR1cm4gbmV3IG8odCk7Y2FzZSBfbjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9bmV3IHQuY29uc3RydWN0b3IodC5zb3VyY2UsYm4uZXhlYyh0KSk7cmV0dXJuIHIubGFzdEluZGV4PXQubGFzdEluZGV4LHJ9KHQpO2Nhc2UgT246cmV0dXJuIG5ldyBvO2Nhc2Ugd246cmV0dXJuIG49dCx5bj9PYmplY3QoeW4uY2FsbChuKSk6e319fXZhciBGbj1PYmplY3QuY3JlYXRlLE1uPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24ocil7aWYoIV8ocikpcmV0dXJue307aWYoRm4pcmV0dXJuIEZuKHIpO3QucHJvdG90eXBlPXI7dmFyIGU9bmV3IHQ7cmV0dXJuIHQucHJvdG90eXBlPXZvaWQgMCxlfX0oKSxVbj1Nbjt2YXIgRG49bXImJm1yLmlzTWFwLEJuPURuP2pyKERuKTpmdW5jdGlvbih0KXtyZXR1cm4gdih0KSYmIltvYmplY3QgTWFwXSI9PVpyKHQpfTt2YXIgUm49bXImJm1yLmlzU2V0LExuPVJuP2pyKFJuKTpmdW5jdGlvbih0KXtyZXR1cm4gdih0KSYmIltvYmplY3QgU2V0XSI9PVpyKHQpfSxWbj0xLEtuPTIsV249NCxxbj0iW29iamVjdCBBcmd1bWVudHNdIixHbj0iW29iamVjdCBGdW5jdGlvbl0iLEhuPSJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXSIsSm49IltvYmplY3QgT2JqZWN0XSIsUW49e307ZnVuY3Rpb24gWG4ocixlLG4sbyx1LGkpe3ZhciBjLGE9ZSZWbixmPWUmS24sbD1lJlduO2lmKG4mJihjPXU/bihyLG8sdSxpKTpuKHIpKSx2b2lkIDAhPT1jKXJldHVybiBjO2lmKCFfKHIpKXJldHVybiByO3ZhciBzPXQocik7aWYocyl7aWYoYz1mdW5jdGlvbih0KXt2YXIgcj10Lmxlbmd0aCxlPW5ldyB0LmNvbnN0cnVjdG9yKHIpO3JldHVybiByJiYic3RyaW5nIj09dHlwZW9mIHRbMF0mJnNuLmNhbGwodCwiaW5kZXgiKSYmKGUuaW5kZXg9dC5pbmRleCxlLmlucHV0PXQuaW5wdXQpLGV9KHIpLCFhKXJldHVybiBmdW5jdGlvbih0LHIpe3ZhciBlPS0xLG49dC5sZW5ndGg7Zm9yKHJ8fChyPUFycmF5KG4pKTsrK2U8bjspcltlXT10W2VdO3JldHVybiByfShyLGMpfWVsc2V7dmFyIHA9WnIociksYj1wPT1Hbnx8cD09SG47aWYoc3IocikpcmV0dXJuIGZ1bmN0aW9uKHQscil7aWYocilyZXR1cm4gdC5zbGljZSgpO3ZhciBlPXQubGVuZ3RoLG49dW4/dW4oZSk6bmV3IHQuY29uc3RydWN0b3IoZSk7cmV0dXJuIHQuY29weShuKSxufShyLGEpO2lmKHA9PUpufHxwPT1xbnx8YiYmIXUpe2lmKGM9Znx8Yj97fTpmdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdC5jb25zdHJ1Y3Rvcnx8enIodCk/e306VW4oY24odCkpfShyKSwhYSlyZXR1cm4gZj9mdW5jdGlvbih0LHIpe3JldHVybiBZZSh0LGZuKHQpLHIpfShyLGZ1bmN0aW9uKHQscil7cmV0dXJuIHQmJlllKHIscm4ociksdCl9KGMscikpOmZ1bmN0aW9uKHQscil7cmV0dXJuIFllKHQsZXIodCkscil9KHIsZnVuY3Rpb24odCxyKXtyZXR1cm4gdCYmWWUocixrcihyKSx0KX0oYyxyKSl9ZWxzZXtpZighUW5bcF0pcmV0dXJuIHU/cjp7fTtjPUNuKHIscCxhKX19aXx8KGk9bmV3IFN0KTt2YXIgdj1pLmdldChyKTtpZih2KXJldHVybiB2O2kuc2V0KHIsYyksTG4ocik/ci5mb3JFYWNoKChmdW5jdGlvbih0KXtjLmFkZChYbih0LGUsbix0LHIsaSkpfSkpOkJuKHIpJiZyLmZvckVhY2goKGZ1bmN0aW9uKHQsbyl7Yy5zZXQobyxYbih0LGUsbixvLHIsaSkpfSkpO3ZhciB5PXM/dm9pZCAwOihsP2Y/bG46Q3I6Zj9ybjprcikocik7cmV0dXJuIHFlKHl8fHIsKGZ1bmN0aW9uKHQsbyl7eSYmKHQ9cltvPXRdKSxYZShjLG8sWG4odCxlLG4sbyxyLGkpKX0pKSxjfVFuW3FuXT1RblsiW29iamVjdCBBcnJheV0iXT1RblsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1RblsiW29iamVjdCBEYXRhVmlld10iXT1RblsiW29iamVjdCBCb29sZWFuXSJdPVFuWyJbb2JqZWN0IERhdGVdIl09UW5bIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPVFuWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1RblsiW29iamVjdCBJbnQ4QXJyYXldIl09UW5bIltvYmplY3QgSW50MTZBcnJheV0iXT1RblsiW29iamVjdCBJbnQzMkFycmF5XSJdPVFuWyJbb2JqZWN0IE1hcF0iXT1RblsiW29iamVjdCBOdW1iZXJdIl09UW5bSm5dPVFuWyJbb2JqZWN0IFJlZ0V4cF0iXT1RblsiW29iamVjdCBTZXRdIl09UW5bIltvYmplY3QgU3RyaW5nXSJdPVFuWyJbb2JqZWN0IFN5bWJvbF0iXT1RblsiW29iamVjdCBVaW50OEFycmF5XSJdPVFuWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPVFuWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPVFuWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLFFuWyJbb2JqZWN0IEVycm9yXSJdPVFuW0duXT1RblsiW29iamVjdCBXZWFrTWFwXSJdPSExO3ZhciBZbj0xLFpuPTQ7ZnVuY3Rpb24gdG8odCl7cmV0dXJuIFhuKHQsWW58Wm4pfWZ1bmN0aW9uIHJvKHQpe2xldCByPSExO2lmKGh0KHQpKXI9IWlzTmFOKE51bWJlcih0KSk7ZWxzZSBpZihmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBOdW1iZXJdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCkpe2lmKF90KHQpKXJldHVybiExO3I9ITB9cmV0dXJuIHJ9ZnVuY3Rpb24gZW8odCl7aWYoIWh0KHQpJiYhcm8odCkmJiFoKHQpKXJldHVybiIiO2xldCByPSIiO3RyeXtyPVN0cmluZyh0KX1jYXRjaCh0KXt9dHJ5e3I9dC50b1N0cmluZygpfWNhdGNoKHQpe31yZXR1cm4gcn12YXIgbm89TWF0aC5jZWlsLG9vPU1hdGgubWF4O3ZhciB1bz0vXHMvO3ZhciBpbz0vXlxzKy87ZnVuY3Rpb24gY28odCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aDtyLS0mJnVvLnRlc3QodC5jaGFyQXQocikpOyk7cmV0dXJuIHJ9KHQpKzEpLnJlcGxhY2UoaW8sIiIpOnR9dmFyIGFvPU5hTixmbz0vXlstK10weFswLTlhLWZdKyQvaSxsbz0vXjBiWzAxXSskL2ksc289L14wb1swLTddKyQvaSxwbz1wYXJzZUludDt2YXIgYm89MS8wLHZvPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiB5byh0KXtyZXR1cm4gdD8odD1mdW5jdGlvbih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoaCh0KSlyZXR1cm4gYW87aWYoXyh0KSl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQudmFsdWVPZj90LnZhbHVlT2YoKTp0O3Q9XyhyKT9yKyIiOnJ9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9Y28odCk7dmFyIGU9bG8udGVzdCh0KTtyZXR1cm4gZXx8c28udGVzdCh0KT9wbyh0LnNsaWNlKDIpLGU/Mjo4KTpmby50ZXN0KHQpP2FvOit0fSh0KSk9PT1ib3x8dD09PS1ibz8odDwwPy0xOjEpKnZvOnQ9PXQ/dDowOjA9PT10P3Q6MH12YXIgaG89ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIsZSxuKXtyZXR1cm4gbiYmIm51bWJlciIhPXR5cGVvZiBuJiZmdW5jdGlvbih0LHIsZSl7aWYoIV8oZSkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHI7cmV0dXJuISEoIm51bWJlciI9PW4/JHIoZSkmJnZyKHIsZS5sZW5ndGgpOiJzdHJpbmciPT1uJiZyIGluIGUpJiZWKGVbcl0sdCl9KHIsZSxuKSYmKGU9bj12b2lkIDApLHI9eW8ociksdm9pZCAwPT09ZT8oZT1yLHI9MCk6ZT15byhlKSxmdW5jdGlvbih0LHIsZSxuKXtmb3IodmFyIG89LTEsdT1vbyhubygoci10KS8oZXx8MSkpLDApLGk9QXJyYXkodSk7dS0tOylpW24/dTorK29dPXQsdCs9ZTtyZXR1cm4gaX0ocixlLG49dm9pZCAwPT09bj9yPGU/MTotMTp5byhuKSx0KX19KCksam89aG87ZnVuY3Rpb24gZ28odCxyPW51bGwsZT17fSl7UyhyKXx8KHI9dD0+dCk7bGV0IG49dnQoZSwiZm9yY2UiLCExKTtyZXR1cm4gQXQobil8fChuPSExKSxmdW5jdGlvbih0LHIsZT0hMSl7bGV0IG49W107aWYoIWd0KHQpJiYhZHQodCkpcmV0dXJuIHIodCxudWxsLFtdKTtmdW5jdGlvbiBvKHQpe2lmKGd0KHQpKXJldHVybiBqbyhLZSh0KSk7aWYoZHQodCkpe2xldCByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLG49bnVsbDtyZXR1cm4gZSYmKG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KSksZ3Qocil8fChyPVtdKSxndChuKXx8KG49W10pLFsuLi5yLC4uLm5dfXJldHVybiB0fXJldHVybiBmdW5jdGlvbiB0KGUsdSl7aWYoZ3QoZSkpcmV0dXJuIG8oZSkubWFwKChvPT57bGV0IHU9ZVtvXSxpPXRvKG4pO3JldHVybiBuLnB1c2gobyksdT1yKHUsbyxpKSx1PXQodSksbi5wb3AoKSx1fSkpO2lmKGR0KGUpKXtsZXQgdT1vKGUpLGk9e307cmV0dXJuIHUubWFwKChvPT57bGV0IHU9ZVtvXSxjPXRvKG4pO24ucHVzaChvKSx1PXIodSxvLGMpLHU9dCh1KSxuLnBvcCgpLGlbb109dX0pKSxpfXJldHVybiBlfSh0KX0odCxyLG4pfWZ1bmN0aW9uIF9vKHIsZT17fSl7aWYoIWp0KHIpJiYhbXQocikpcmV0dXJuW107bGV0IG49dnQoZSwiYmluZEtleSIsbnVsbCk7aHQobil8fChuPSJpZCIpO2xldCBvPXZ0KGUsImJpbmRQYXJlbnQiLG51bGwpO2h0KG8pfHwobz0icGFyZW50SWQiKTtsZXQgdT12dChlLCJiaW5kQmVsb25nIixudWxsKTtodCh1KXx8KHU9ImtleSIpO2xldCBpPXZ0KGUsImJpbmRUZXh0IixudWxsKTtodChpKXx8KGk9InRleHQiKTtsZXQgYz12dChlLCJiaW5kVHlwZSIsbnVsbCk7aHQoYyl8fChjPSJ0eXBlIik7bGV0IGE9dnQoZSwiYmluZE51bU9mQ2hpbHJlbiIsbnVsbCk7ZnVuY3Rpb24gZihyLGUpe3ZhciBuLG87dmFyIHUsaTtyZXR1cm4gcj10byhyKSxvPXQ9PmgodCk/ZW8odCk6dCxyPSh0KG49cik/dXQ6QWUpKG4sZ2UobykpLGgoZSkmJihlPWVvKGUpKSwoaHQoZSl8fHJvKGUpKSYmci5wdXNoKGUpLGk9Ii0iLG51bGw9PSh1PXIpPyIiOlNlLmNhbGwodSxpKX1odChhKXx8KGE9Im51bU9mQ2hpbHJlbiIpO2xldCBsPVtdO3JldHVybiBnbyhyLCgodCxyLGUpPT57bGV0IHM9ZihlLHIpLHA9ZihlLG51bGwpLHk9Im5vZGUiO2R0KHQpP3k9Im9iamVjdCI6Z3QodCkmJih5PSJhcnJheSIpO2xldCBoPXtbbl06cyxbb106cCxbY106eX07aWYoKGh0KHIpfHxmdW5jdGlvbih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHR8fHYodCkmJmIodCk9PVdlfShyKSkmJihoW3VdPXIpLGR0KHQpfHxndCh0KXx8KGhbaV09dCksZHQodCl8fGd0KHQpKXtsZXQgcj1udWxsO2R0KHQpP3I9S2Uoa3IodCkpOmd0KHQpJiYocj1LZSh0KSksaFthXT1yfXJldHVybiBsLnB1c2goaCksdH0pLHtmb3JjZTohMH0pLGx9ZnVuY3Rpb24gT28odCl7cmV0dXJuIE9vPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxPbyh0KX1mdW5jdGlvbiBtbyh0KXt2YXIgcj1mdW5jdGlvbih0LHIpe2lmKCJvYmplY3QiIT09T28odCl8fG51bGw9PT10KXJldHVybiB0O3ZhciBlPXRbU3ltYm9sLnRvUHJpbWl0aXZlXTtpZih2b2lkIDAhPT1lKXt2YXIgbj1lLmNhbGwodCxyfHwiZGVmYXVsdCIpO2lmKCJvYmplY3QiIT09T28obikpcmV0dXJuIG47dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1yP1N0cmluZzpOdW1iZXIpKHQpfSh0LCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PU9vKHIpP3I6U3RyaW5nKHIpfWZ1bmN0aW9uIHdvKHQscixlKXtyZXR1cm4ocj1tbyhyKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIse3ZhbHVlOmUsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W3JdPWUsdH1mdW5jdGlvbiBBbyhyLGUpe3ZhciBuO3JldHVybih0KHIpP3FlOndlKShyLCJmdW5jdGlvbiI9PXR5cGVvZihuPWUpP246aGUpfWZ1bmN0aW9uIFNvKHQscixlKXtyZXR1cm4gbnVsbD09dD90OmZ1bmN0aW9uKHQscixlLG4pe2lmKCFfKHQpKXJldHVybiB0O2Zvcih2YXIgbz0tMSx1PShyPWx0KHIsdCkpLmxlbmd0aCxpPXUtMSxjPXQ7bnVsbCE9YyYmKytvPHU7KXt2YXIgYT1wdChyW29dKSxmPWU7aWYoIl9fcHJvdG9fXyI9PT1hfHwiY29uc3RydWN0b3IiPT09YXx8InByb3RvdHlwZSI9PT1hKXJldHVybiB0O2lmKG8hPWkpe3ZhciBsPWNbYV07dm9pZCAwPT09KGY9bj9uKGwsYSxjKTp2b2lkIDApJiYoZj1fKGwpP2w6dnIocltvKzFdKT9bXTp7fSl9WGUoYyxhLGYpLGM9Y1thXX1yZXR1cm4gdH0odCxyLGUpfWZ1bmN0aW9uIHhvKHQscil7cmV0dXJuIHIubGVuZ3RoPDI/dDpidCh0LGZ1bmN0aW9uKHQscixlKXt2YXIgbj0tMSxvPXQubGVuZ3RoO3I8MCYmKHI9LXI+bz8wOm8rciksKGU9ZT5vP286ZSk8MCYmKGUrPW8pLG89cj5lPzA6ZS1yPj4+MCxyPj4+PTA7Zm9yKHZhciB1PUFycmF5KG8pOysrbjxvOyl1W25dPXRbbityXTtyZXR1cm4gdX0ociwwLC0xKSl9ZnVuY3Rpb24gUG8odCxyKXtyZXR1cm4gbnVsbD09KHQ9eG8odCxyPWx0KHIsdCkpKXx8ZGVsZXRlIHRbcHQoKGU9cixuPW51bGw9PWU/MDplLmxlbmd0aCxuP2Vbbi0xXTp2b2lkIDApKV07dmFyIGUsbn12YXIgem89IltvYmplY3QgT2JqZWN0XSIsRW89RnVuY3Rpb24ucHJvdG90eXBlLElvPU9iamVjdC5wcm90b3R5cGUsTm89RW8udG9TdHJpbmcsVG89SW8uaGFzT3duUHJvcGVydHksJG89Tm8uY2FsbChPYmplY3QpO2Z1bmN0aW9uIGtvKHQpe3JldHVybiBmdW5jdGlvbih0KXtpZighdih0KXx8Yih0KSE9em8pcmV0dXJuITE7dmFyIHI9Y24odCk7aWYobnVsbD09PXIpcmV0dXJuITA7dmFyIGU9VG8uY2FsbChyLCJjb25zdHJ1Y3RvciIpJiZyLmNvbnN0cnVjdG9yO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlIGluc3RhbmNlb2YgZSYmTm8uY2FsbChlKT09JG99KHQpP3ZvaWQgMDp0fXZhciBDbz1vP28uaXNDb25jYXRTcHJlYWRhYmxlOnZvaWQgMDtmdW5jdGlvbiBGbyhyKXtyZXR1cm4gdChyKXx8Y3Iocil8fCEhKENvJiZyJiZyW0NvXSl9ZnVuY3Rpb24gTW8odCxyLGUsbixvKXt2YXIgdT0tMSxpPXQubGVuZ3RoO2ZvcihlfHwoZT1Gbyksb3x8KG89W10pOysrdTxpOyl7dmFyIGM9dFt1XTtyPjAmJmUoYyk/cj4xP01vKGMsci0xLGUsbixvKTpRdChvLGMpOm58fChvW28ubGVuZ3RoXT1jKX1yZXR1cm4gb31mdW5jdGlvbiBVbyh0KXtyZXR1cm4obnVsbD09dD8wOnQubGVuZ3RoKT9Nbyh0LDEpOltdfXZhciBEbz1NYXRoLm1heDt2YXIgQm89SGU/ZnVuY3Rpb24odCxyKXtyZXR1cm4gSGUodCwidG9TdHJpbmciLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMSx2YWx1ZTooZT1yLGZ1bmN0aW9uKCl7cmV0dXJuIGV9KSx3cml0YWJsZTohMH0pO3ZhciBlfTpoZSxSbz1CbyxMbz1EYXRlLm5vdzt2YXIgVm89ZnVuY3Rpb24odCl7dmFyIHI9MCxlPTA7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49TG8oKSxvPTE2LShuLWUpO2lmKGU9bixvPjApe2lmKCsrcj49ODAwKXJldHVybiBhcmd1bWVudHNbMF19ZWxzZSByPTA7cmV0dXJuIHQuYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fShSbyksS289Vm87dmFyIFdvPWZ1bmN0aW9uKHQpe3JldHVybiBLbyhmdW5jdGlvbih0LHIsZSl7cmV0dXJuIHI9RG8odm9pZCAwPT09cj90Lmxlbmd0aC0xOnIsMCksZnVuY3Rpb24oKXtmb3IodmFyIG49YXJndW1lbnRzLG89LTEsdT1EbyhuLmxlbmd0aC1yLDApLGk9QXJyYXkodSk7KytvPHU7KWlbb109bltyK29dO289LTE7Zm9yKHZhciBjPUFycmF5KHIrMSk7KytvPHI7KWNbb109bltvXTtyZXR1cm4gY1tyXT1lKGkpLGZ1bmN0aW9uKHQscixlKXtzd2l0Y2goZS5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gdC5jYWxsKHIpO2Nhc2UgMTpyZXR1cm4gdC5jYWxsKHIsZVswXSk7Y2FzZSAyOnJldHVybiB0LmNhbGwocixlWzBdLGVbMV0pO2Nhc2UgMzpyZXR1cm4gdC5jYWxsKHIsZVswXSxlWzFdLGVbMl0pfXJldHVybiB0LmFwcGx5KHIsZSl9KHQsdGhpcyxjKX19KHQsdm9pZCAwLFVvKSx0KyIiKX0oKGZ1bmN0aW9uKHQscil7dmFyIGU9e307aWYobnVsbD09dClyZXR1cm4gZTt2YXIgbj0hMTtyPXV0KHIsKGZ1bmN0aW9uKHIpe3JldHVybiByPWx0KHIsdCksbnx8KG49ci5sZW5ndGg+MSkscn0pKSxZZSh0LGxuKHQpLGUpLG4mJihlPVhuKGUsNyxrbykpO2Zvcih2YXIgbz1yLmxlbmd0aDtvLS07KVBvKGUscltvXSk7cmV0dXJuIGV9KSkscW89V287ZnVuY3Rpb24gR28odCxyKXt2YXIgZT1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO3ImJihuPW4uZmlsdGVyKChmdW5jdGlvbihyKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpLmVudW1lcmFibGV9KSkpLGUucHVzaC5hcHBseShlLG4pfXJldHVybiBlfWZ1bmN0aW9uIEhvKHQpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciBlPW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP0dvKE9iamVjdChlKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24ocil7d28odCxyLGVbcl0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoZSkpOkdvKE9iamVjdChlKSkuZm9yRWFjaCgoZnVuY3Rpb24ocil7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQscixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscikpfSkpfXJldHVybiB0fWZ1bmN0aW9uIEpvKHQscj17fSl7bGV0IGU9IiRsZXZlbCIsbj0iJHBhcmVudHMiO2lmKCFtdCh0KSlyZXR1cm5bXTtsZXQgbz12dChyLCJiaW5kS2V5IixudWxsKTtodChvKXx8KG89ImlkIik7bGV0IHU9dnQociwiYmluZFBhcmVudCIsbnVsbCk7aHQodSl8fCh1PSJwYXJlbnRJZCIpO2xldCBpPXZ0KHIsImJpbmRDaGlsZHJlbiIsbnVsbCk7aHQoaSl8fChpPSJjaGlsZHJlbiIpO2xldCBjPXZ0KHIsInNhdmVFeHRQcm9wcyIsbnVsbCk7QXQoYyl8fChjPSExKSx0PWZ1bmN0aW9uKHQpe2xldCByPVtdO2Z1bmN0aW9uIGkoaSl7bGV0IGM9W107QW8odCwoKHQsYSk9PntsZXQgZj12dCh0LHUpLGw9dnQoaSxvKTtpZihmJiZsJiZmPT09bCl7bGV0IHU9dnQoaSxuLFtdKTt1PXRvKHUpLHUucHVzaChpW29dKSxyLnB1c2goSG8oe1tlXTppW2VdKzEsW25dOnV9LHQpKX1lbHNlIGMucHVzaCh0KX0pKSx0PWN9aWYodD10byh0KSxmdW5jdGlvbigpe2xldCBvPVtdO0FvKHQsKCh0LGkpPT57T3QodFt1XSk/ci5wdXNoKEhvKHtbZV06MCxbbl06W119LHQpKTpvLnB1c2godCl9KSksdD1vfSgpLDA9PT1yLmxlbmd0aClyZXR1cm4gcjtsZXQgYz0tMTtmb3IoO2MrPTEsIShjPnIubGVuZ3RoLTEpOyl7aWYoaShyW2NdKSwwPT09dC5sZW5ndGgpYnJlYWt9cmV0dXJuIHJ9KHQpO2xldCBhPWZ1bmN0aW9uKHQpe2xldCByPVtdO2Z1bmN0aW9uIGEodCl7cmV0dXJuIGM/dDpxbyh0LFtlLG5dKX1sZXQgZj17fTtyZXR1cm4gQW8odCwoKG4sYyk9PntpZigwPT09bltlXSl7bGV0IHQ9YShuKTtyLnB1c2godCksZltuW29dXT1bY119ZWxzZXtsZXQgZT1mdW5jdGlvbihyKXtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKyl7bGV0IG49dFtlXTtpZihyW3VdPT09bltvXSlyZXR1cm4gbn1yZXR1cm4gbnVsbH0obik7aWYobnVsbCE9PWUpe2xldCB0PWZbZVtvXV07dD1bLi4udCxpXTtsZXQgdT12dChyLHQsW10pLGM9YShuKTt1LnB1c2goYyksZltuW29dXT1bLi4udCx1Lmxlbmd0aC0xXSxTbyhyLHQsdSl9ZWxzZSBjb25zb2xlLmxvZyhgY2FuIG5vdCBmaW5kIHBhcmVudCBmb3IgJHt2dChuLHUpfWApfX0pKSxyfSh0KTtyZXR1cm4gYX1sZXQgY29udmVydFRvVHJlZVdrPWFzeW5jIGZ1bmN0aW9uKHQscj17fSl7cmV0dXJuIGZ1bmN0aW9uKHQscj17fSl7aWYoIWp0KHQpJiYhbXQodCkpcmV0dXJuW107bGV0IGU9dnQociwiYmluZEtleSIsbnVsbCk7aHQoZSl8fChlPSJpZCIpO2xldCBuPXZ0KHIsImJpbmRQYXJlbnQiLG51bGwpO2h0KG4pfHwobj0icGFyZW50SWQiKTtsZXQgbz12dChyLCJiaW5kVGV4dCIsbnVsbCk7aHQobyl8fChvPSJ0ZXh0Iik7bGV0IHU9dnQociwiYmluZENoaWxkcmVuIixudWxsKTtodCh1KXx8KHU9ImNoaWxkcmVuIik7bGV0IGk9dnQociwiYmluZFR5cGUiLG51bGwpO2h0KGkpfHwoaT0idHlwZSIpO2xldCBjPXZ0KHIsImJpbmROdW1PZkNoaWxyZW4iLG51bGwpO2h0KGMpfHwoYz0ibnVtT2ZDaGlscmVuIik7bGV0IGE9dnQociwiYmluZFJvb3QiLG51bGwpO2h0KGEpfHwoYT0icm9vdCIpO2xldCBmPXZ0KHIsInNhdmVFeHRQcm9wcyIsbnVsbCk7cmV0dXJuIEF0KGYpfHwoZj0hMSksaHQoYSkmJih0PXtbYV06dH0pLEpvKF9vKHQse2JpbmRLZXk6ZSxiaW5kUGFyZW50Om4sYmluZFRleHQ6byxiaW5kVHlwZTppLGJpbmROdW1PZkNoaWxyZW46Y30pLHtiaW5kS2V5OmUsYmluZFBhcmVudDpuLGJpbmRDaGlsZHJlbjp1LHNhdmVFeHRQcm9wczpmfSl9KHQscil9OwoKCmxldCBpbnN0YW5jZSA9IG51bGwKZnVuY3Rpb24gaW5pdChpbnB1dCl7CgogICAgLy9pbml0CiAgICBsZXQgcgogICAgCiAgICAgICAgciA9IHsKICAgICAgICAgICAgbWFpbjogY29udmVydFRvVHJlZVdrCiAgICAgICAgfQogICAgICAgIAoKICAgIC8vb24KICAgIAoKICAgIC8vc2F2ZQogICAgaW5zdGFuY2UgPSByCgp9CgpmdW5jdGlvbiBzZW5kTWVzc2FnZShkYXRhKSB7CiAgICAKICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKGRhdGEpCiAgICAgICAgCn0KCmFzeW5jIGZ1bmN0aW9uIHJ1bihkYXRhKSB7CiAgICAvLyBjb25zb2xlLmxvZygnaW5uZXIgd29ya2VyIHJ1bicsZGF0YSkKCiAgICAvL21vZGUKICAgIGxldCBtb2RlID0gZGF0YS5tb2RlCgogICAgLy9jaGVjawogICAgaWYobW9kZSAhPT0gJ2luaXQnICYmIG1vZGUgIT09ICdjYWxsJyl7CiAgICAgICAgcmV0dXJuCiAgICB9CgogICAgLy9pbml0CiAgICBpZihtb2RlID09PSAnaW5pdCcpewogICAgICAgIAogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vdHlwZQogICAgICAgICAgICBsZXQgdHlwZSA9IGRhdGEudHlwZQoKICAgICAgICAgICAgLy9pbnB1dAogICAgICAgICAgICBsZXQgaW5wdXQgPSBkYXRhLmlucHV0CiAgICAKICAgICAgICAgICAgLy9pbnN0YW5jZQogICAgICAgICAgICBpZih0eXBlID09PSAnZnVuY3Rpb24nKXsKICAgICAgICAgICAgICAgIGluaXQoLi4uaW5wdXQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZih0eXBlID09PSAnb2JqZWN0Jyl7CiAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IGNvbnZlcnRUb1RyZWVXawogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZWN2TWVzc2FnZShlLmRhdGEpCiAgICAgICAgfQogICAgICAgIAoKdHJ5ewogICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmhhbmRsZWRSZWplY3Rpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgZXJyKQogICAgfSkKfQpjYXRjaChlcnIpe30KCg==");function l(){let l=new H;let m=function(d){try{let l=new Blob([d]),m=window.URL||window.webkitURL;return new Worker(m.createObjectURL(l))}catch(d){I(d)}}(d);if(!m)return I("invalid worker"),null;function Z(){let d=function(){let d,l,m=new Promise((function(){d=arguments[0],l=arguments[1]}));return m.resolve=d,m.reject=l,m}(),Z=function(){let d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,l=[],m="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),Z=m.length;for(let I=0;I<d;I++)l[I]=m[0|Math.random()*Z];return l.join("")}(),I={mode:"call",id:Z,fun:"main",input:[...arguments]};return m.postMessage(I),l.once(Z,(l=>{"success"===l.state?d.resolve(l.msg):d.reject(l.msg)})),d}function I(d){l.emit("error",d)}return m.onmessage=function(d){!function(d){let m=d,Z=m.mode;"emit"!==Z&&"return"!==Z||("emit"===Z&&l.emit(m.evName,m.msg),"return"===Z&&l.emit(m.id,m))}(d.data)},m.onerror=I,m.onmessageerror=function(d){I(d.data)},function(){let d={mode:"init",type:"function",input:[...arguments]};m.postMessage(d)}([...arguments]),l.main=Z,l.main=Z,l.terminate=function(){m?(m.terminate(),m=void 0):I("worker has been terminated")},l}n=async function(){let d=[...arguments],m=l();return await m.main(...d).finally((()=>{m.terminate()}))}}();try{process.on("unhandledRejection",(d=>{console.log("outer:unhandledRejection",d)})),process.on("uncaughtException",(d=>{console.log("outer:uncaughtException",d)})),process.on("uncaughtExceptionMonitor",(d=>{console.log("outer:uncaughtExceptionMonitor",d)}))}catch(d){}var g=n;export{g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const d="function"==typeof Buffer,l="function"==typeof TextDecoder?new TextDecoder:void 0,I=("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")),m=(d=>{let l={};return I.forEach(((d,I)=>l[d]=I)),l})(),c=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,Z=String.fromCharCode.bind(String),i="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):d=>new Uint8Array(Array.prototype.slice.call(d,0)),b=d=>d.replace(/[^A-Za-z0-9\+\/]/g,""),X=d=>{let l,m,c,Z,i="";const b=d.length%3;for(let b=0;b<d.length;){if((m=d.charCodeAt(b++))>255||(c=d.charCodeAt(b++))>255||(Z=d.charCodeAt(b++))>255)throw new TypeError("invalid character found");l=m<<16|c<<8|Z,i+=I[l>>18&63]+I[l>>12&63]+I[l>>6&63]+I[63&l]}return b?i.slice(0,b-3)+"===".substring(b):i},C=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,y=d=>{switch(d.length){case 4:var l=((7&d.charCodeAt(0))<<18|(63&d.charCodeAt(1))<<12|(63&d.charCodeAt(2))<<6|63&d.charCodeAt(3))-65536;return Z(55296+(l>>>10))+Z(56320+(1023&l));case 3:return Z((15&d.charCodeAt(0))<<12|(63&d.charCodeAt(1))<<6|63&d.charCodeAt(2));default:return Z((31&d.charCodeAt(0))<<6|63&d.charCodeAt(1))}},g=d=>d.replace(C,y),n=d=>{if(d=d.replace(/\s+/g,""),!c.test(d))throw new TypeError("malformed base64.");d+="==".slice(2-(3&d.length));let l,I,i,b="";for(let c=0;c<d.length;)l=m[d.charAt(c++)]<<18|m[d.charAt(c++)]<<12|(I=m[d.charAt(c++)])<<6|(i=m[d.charAt(c++)]),b+=64===I?Z(l>>16&255):64===i?Z(l>>16&255,l>>8&255):Z(l>>16&255,l>>8&255,255&l);return b},W="function"==typeof atob?d=>atob(b(d)):d?d=>Buffer.from(d,"base64").toString("binary"):n,t=d?d=>i(Buffer.from(d,"base64")):d=>i(W(d).split("").map((d=>d.charCodeAt(0)))),p=d?d=>Buffer.from(d,"base64").toString("utf8"):l?d=>l.decode(t(d)):d=>g(W(d)),G=d=>b(d.replace(/[-_]/g,(d=>"-"==d?"+":"/"))),V=d=>p(G(d)),K=V;var o={};!function(d){var l=Object.prototype.hasOwnProperty,I="~";function m(){}function c(d,l,I){this.fn=d,this.context=l,this.once=I||!1}function Z(d,l,m,Z,i){if("function"!=typeof m)throw new TypeError("The listener must be a function");var b=new c(m,Z||d,i),X=I?I+l:l;return d._events[X]?d._events[X].fn?d._events[X]=[d._events[X],b]:d._events[X].push(b):(d._events[X]=b,d._eventsCount++),d}function i(d,l){0==--d._eventsCount?d._events=new m:delete d._events[l]}function b(){this._events=new m,this._eventsCount=0}Object.create&&(m.prototype=Object.create(null),(new m).__proto__||(I=!1)),b.prototype.eventNames=function(){var d,m,c=[];if(0===this._eventsCount)return c;for(m in d=this._events)l.call(d,m)&&c.push(I?m.slice(1):m);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(d)):c},b.prototype.listeners=function(d){var l=I?I+d:d,m=this._events[l];if(!m)return[];if(m.fn)return[m.fn];for(var c=0,Z=m.length,i=new Array(Z);c<Z;c++)i[c]=m[c].fn;return i},b.prototype.listenerCount=function(d){var l=I?I+d:d,m=this._events[l];return m?m.fn?1:m.length:0},b.prototype.emit=function(d,l,m,c,Z,i){var b=I?I+d:d;if(!this._events[b])return!1;var X,C,y=this._events[b],g=arguments.length;if(y.fn){switch(y.once&&this.removeListener(d,y.fn,void 0,!0),g){case 1:return y.fn.call(y.context),!0;case 2:return y.fn.call(y.context,l),!0;case 3:return y.fn.call(y.context,l,m),!0;case 4:return y.fn.call(y.context,l,m,c),!0;case 5:return y.fn.call(y.context,l,m,c,Z),!0;case 6:return y.fn.call(y.context,l,m,c,Z,i),!0}for(C=1,X=new Array(g-1);C<g;C++)X[C-1]=arguments[C];y.fn.apply(y.context,X)}else{var n,W=y.length;for(C=0;C<W;C++)switch(y[C].once&&this.removeListener(d,y[C].fn,void 0,!0),g){case 1:y[C].fn.call(y[C].context);break;case 2:y[C].fn.call(y[C].context,l);break;case 3:y[C].fn.call(y[C].context,l,m);break;case 4:y[C].fn.call(y[C].context,l,m,c);break;default:if(!X)for(n=1,X=new Array(g-1);n<g;n++)X[n-1]=arguments[n];y[C].fn.apply(y[C].context,X)}}return!0},b.prototype.on=function(d,l,I){return Z(this,d,l,I,!1)},b.prototype.once=function(d,l,I){return Z(this,d,l,I,!0)},b.prototype.removeListener=function(d,l,m,c){var Z=I?I+d:d;if(!this._events[Z])return this;if(!l)return i(this,Z),this;var b=this._events[Z];if(b.fn)b.fn!==l||c&&!b.once||m&&b.context!==m||i(this,Z);else{for(var X=0,C=[],y=b.length;X<y;X++)(b[X].fn!==l||c&&!b[X].once||m&&b[X].context!==m)&&C.push(b[X]);C.length?this._events[Z]=1===C.length?C[0]:C:i(this,Z)}return this},b.prototype.removeAllListeners=function(d){var l;return d?(l=I?I+d:d,this._events[l]&&i(this,l)):(this._events=new m,this._eventsCount=0),this},b.prototype.off=b.prototype.removeListener,b.prototype.addListener=b.prototype.on,b.prefixed=I,b.EventEmitter=b,d.exports=b}({get exports(){return o},set exports(d){o=d}});var J=o;let u;!function(){if("browser"!==("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let d=K("CgoKZnVuY3Rpb24gdChyKXtyZXR1cm4gdD0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbih0KXtyZXR1cm4gdHlwZW9mIHR9OmZ1bmN0aW9uKHQpe3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZ0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZ0IT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgdH0sdChyKX1mdW5jdGlvbiByKHIpe3ZhciBlPWZ1bmN0aW9uKHIsZSl7aWYoIm9iamVjdCIhPT10KHIpfHxudWxsPT09cilyZXR1cm4gcjt2YXIgbj1yW1N5bWJvbC50b1ByaW1pdGl2ZV07aWYodm9pZCAwIT09bil7dmFyIG89bi5jYWxsKHIsZXx8ImRlZmF1bHQiKTtpZigib2JqZWN0IiE9PXQobykpcmV0dXJuIG87dGhyb3cgbmV3IFR5cGVFcnJvcigiQEB0b1ByaW1pdGl2ZSBtdXN0IHJldHVybiBhIHByaW1pdGl2ZSB2YWx1ZS4iKX1yZXR1cm4oInN0cmluZyI9PT1lP1N0cmluZzpOdW1iZXIpKHIpfShyLCJzdHJpbmciKTtyZXR1cm4ic3ltYm9sIj09PXQoZSk/ZTpTdHJpbmcoZSl9ZnVuY3Rpb24gZSh0LGUsbil7cmV0dXJuKGU9cihlKSlpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW4sdH12YXIgbj1BcnJheS5pc0FycmF5LG89Im9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbCYmZ2xvYmFsLk9iamVjdD09PU9iamVjdCYmZ2xvYmFsLHU9Im9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmJiZzZWxmLk9iamVjdD09PU9iamVjdCYmc2VsZixjPW98fHV8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCksaT1jLlN5bWJvbCxhPU9iamVjdC5wcm90b3R5cGUsZj1hLmhhc093blByb3BlcnR5LGw9YS50b1N0cmluZyxzPWk/aS50b1N0cmluZ1RhZzp2b2lkIDA7dmFyIHA9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgYj0iW29iamVjdCBOdWxsXSIseT0iW29iamVjdCBVbmRlZmluZWRdIix2PWk/aS50b1N0cmluZ1RhZzp2b2lkIDA7ZnVuY3Rpb24gaih0KXtyZXR1cm4gbnVsbD09dD92b2lkIDA9PT10P3k6Yjp2JiZ2IGluIE9iamVjdCh0KT9mdW5jdGlvbih0KXt2YXIgcj1mLmNhbGwodCxzKSxlPXRbc107dHJ5e3Rbc109dm9pZCAwO3ZhciBuPSEwfWNhdGNoKHQpe312YXIgbz1sLmNhbGwodCk7cmV0dXJuIG4mJihyP3Rbc109ZTpkZWxldGUgdFtzXSksb30odCk6ZnVuY3Rpb24odCl7cmV0dXJuIHAuY2FsbCh0KX0odCl9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gbnVsbCE9dCYmIm9iamVjdCI9PXR5cGVvZiB0fXZhciBkPSJbb2JqZWN0IFN5bWJvbF0iO2Z1bmN0aW9uIF8odCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fHxoKHQpJiZqKHQpPT1kfXZhciBnPS9cLnxcWyg/OlteW1xdXSp8KFsiJ10pKD86KD8hXDEpW15cXF18XFwuKSo/XDEpXF0vLE89L15cdyokLztmdW5jdGlvbiBtKHQpe3ZhciByPXR5cGVvZiB0O3JldHVybiBudWxsIT10JiYoIm9iamVjdCI9PXJ8fCJmdW5jdGlvbiI9PXIpfXZhciB3PSJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dIixBPSJbb2JqZWN0IEZ1bmN0aW9uXSIsUz0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLHg9IltvYmplY3QgUHJveHldIjtmdW5jdGlvbiBQKHQpe2lmKCFtKHQpKXJldHVybiExO3ZhciByPWoodCk7cmV0dXJuIHI9PUF8fHI9PVN8fHI9PXd8fHI9PXh9dmFyIHosRT1jWyJfX2NvcmUtanNfc2hhcmVkX18iXSxJPSh6PS9bXi5dKyQvLmV4ZWMoRSYmRS5rZXlzJiZFLmtleXMuSUVfUFJPVE98fCIiKSk/IlN5bWJvbChzcmMpXzEuIit6OiIiO3ZhciBGPUZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBVKHQpe2lmKG51bGwhPXQpe3RyeXtyZXR1cm4gRi5jYWxsKHQpfWNhdGNoKHQpe310cnl7cmV0dXJuIHQrIiJ9Y2F0Y2godCl7fX1yZXR1cm4iIn12YXIgTT0vXlxbb2JqZWN0IC4rP0NvbnN0cnVjdG9yXF0kLywkPUZ1bmN0aW9uLnByb3RvdHlwZSxEPU9iamVjdC5wcm90b3R5cGUsVD0kLnRvU3RyaW5nLEI9RC5oYXNPd25Qcm9wZXJ0eSxrPVJlZ0V4cCgiXiIrVC5jYWxsKEIpLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxcXSkvZywiJDEuKj8iKSsiJCIpO2Z1bmN0aW9uIEModCl7cmV0dXJuISghbSh0KXx8KHI9dCxJJiZJIGluIHIpKSYmKFAodCk/azpNKS50ZXN0KFUodCkpO3ZhciByfWZ1bmN0aW9uIE4odCxyKXt2YXIgZT1mdW5jdGlvbih0LHIpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W3JdfSh0LHIpO3JldHVybiBDKGUpP2U6dm9pZCAwfXZhciBSPU4oT2JqZWN0LCJjcmVhdGUiKTt2YXIgVj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBXPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gTCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1mdW5jdGlvbiBxKHQscil7cmV0dXJuIHQ9PT1yfHx0IT10JiZyIT1yfWZ1bmN0aW9uIEcodCxyKXtmb3IodmFyIGU9dC5sZW5ndGg7ZS0tOylpZihxKHRbZV1bMF0scikpcmV0dXJuIGU7cmV0dXJuLTF9TC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPVI/UihudWxsKTp7fSx0aGlzLnNpemU9MH0sTC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuaGFzKHQpJiZkZWxldGUgdGhpcy5fX2RhdGFfX1t0XTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxMLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztpZihSKXt2YXIgZT1yW3RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWU/dm9pZCAwOmV9cmV0dXJuIFYuY2FsbChyLHQpP3JbdF06dm9pZCAwfSxMLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXztyZXR1cm4gUj92b2lkIDAhPT1yW3RdOlcuY2FsbChyLHQpfSxMLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKHQpPzA6MSxlW3RdPVImJnZvaWQgMD09PXI/Il9fbG9kYXNoX2hhc2hfdW5kZWZpbmVkX18iOnIsdGhpc307dmFyIEs9QXJyYXkucHJvdG90eXBlLnNwbGljZTtmdW5jdGlvbiBIKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fUgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1bXSx0aGlzLnNpemU9MH0sSC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1HKHIsdCk7cmV0dXJuIShlPDApJiYoZT09ci5sZW5ndGgtMT9yLnBvcCgpOksuY2FsbChyLGUsMSksLS10aGlzLnNpemUsITApfSxILnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPUcocix0KTtyZXR1cm4gZTwwP3ZvaWQgMDpyW2VdWzFdfSxILnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIEcodGhpcy5fX2RhdGFfXyx0KT4tMX0sSC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXyxuPUcoZSx0KTtyZXR1cm4gbjwwPygrK3RoaXMuc2l6ZSxlLnB1c2goW3Qscl0pKTplW25dWzFdPXIsdGhpc307dmFyIEo9TihjLCJNYXAiKTtmdW5jdGlvbiBRKHQscil7dmFyIGUsbixvPXQuX19kYXRhX187cmV0dXJuKCJzdHJpbmciPT0obj10eXBlb2YoZT1yKSl8fCJudW1iZXIiPT1ufHwic3ltYm9sIj09bnx8ImJvb2xlYW4iPT1uPyJfX3Byb3RvX18iIT09ZTpudWxsPT09ZSk/b1sic3RyaW5nIj09dHlwZW9mIHI/InN0cmluZyI6Imhhc2giXTpvLm1hcH1mdW5jdGlvbiBYKHQpe3ZhciByPS0xLGU9bnVsbD09dD8wOnQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytyPGU7KXt2YXIgbj10W3JdO3RoaXMuc2V0KG5bMF0sblsxXSl9fVgucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zaXplPTAsdGhpcy5fX2RhdGFfXz17aGFzaDpuZXcgTCxtYXA6bmV3KEp8fEgpLHN0cmluZzpuZXcgTH19LFgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj1RKHRoaXMsdCkuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemUtPXI/MTowLHJ9LFgucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gUSh0aGlzLHQpLmdldCh0KX0sWC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBRKHRoaXMsdCkuaGFzKHQpfSxYLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT1RKHRoaXMsdCksbj1lLnNpemU7cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplKz1lLnNpemU9PW4/MDoxLHRoaXN9O3ZhciBZPSJFeHBlY3RlZCBhIGZ1bmN0aW9uIjtmdW5jdGlvbiBaKHQscil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHR8fG51bGwhPXImJiJmdW5jdGlvbiIhPXR5cGVvZiByKXRocm93IG5ldyBUeXBlRXJyb3IoWSk7dmFyIGU9ZnVuY3Rpb24oKXt2YXIgbj1hcmd1bWVudHMsbz1yP3IuYXBwbHkodGhpcyxuKTpuWzBdLHU9ZS5jYWNoZTtpZih1LmhhcyhvKSlyZXR1cm4gdS5nZXQobyk7dmFyIGM9dC5hcHBseSh0aGlzLG4pO3JldHVybiBlLmNhY2hlPXUuc2V0KG8sYyl8fHUsY307cmV0dXJuIGUuY2FjaGU9bmV3KFouQ2FjaGV8fFgpLGV9Wi5DYWNoZT1YO3ZhciB0dCxydCxldCxudD0vW14uW1xdXSt8XFsoPzooLT9cZCsoPzpcLlxkKyk/KXwoWyInXSkoKD86KD8hXDIpW15cXF18XFwuKSo/KVwyKVxdfCg/PSg/OlwufFxbXF0pKD86XC58XFtcXXwkKSkvZyxvdD0vXFwoXFwpPy9nLHV0PSh0dD1mdW5jdGlvbih0KXt2YXIgcj1bXTtyZXR1cm4gNDY9PT10LmNoYXJDb2RlQXQoMCkmJnIucHVzaCgiIiksdC5yZXBsYWNlKG50LChmdW5jdGlvbih0LGUsbixvKXtyLnB1c2gobj9vLnJlcGxhY2Uob3QsIiQxIik6ZXx8dCl9KSkscn0scnQ9Wih0dCwoZnVuY3Rpb24odCl7cmV0dXJuIDUwMD09PWV0LnNpemUmJmV0LmNsZWFyKCksdH0pKSxldD1ydC5jYWNoZSxydCksY3Q9dXQ7dmFyIGl0PTEvMCxhdD1pP2kucHJvdG90eXBlOnZvaWQgMCxmdD1hdD9hdC50b1N0cmluZzp2b2lkIDA7ZnVuY3Rpb24gbHQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB0O2lmKG4odCkpcmV0dXJuIGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89QXJyYXkobik7KytlPG47KW9bZV09cih0W2VdLGUsdCk7cmV0dXJuIG99KHQsbHQpKyIiO2lmKF8odCkpcmV0dXJuIGZ0P2Z0LmNhbGwodCk6IiI7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LWl0PyItMCI6cn1mdW5jdGlvbiBzdCh0LHIpe3JldHVybiBuKHQpP3Q6ZnVuY3Rpb24odCxyKXtpZihuKHQpKXJldHVybiExO3ZhciBlPXR5cGVvZiB0O3JldHVybiEoIm51bWJlciIhPWUmJiJzeW1ib2wiIT1lJiYiYm9vbGVhbiIhPWUmJm51bGwhPXQmJiFfKHQpKXx8Ty50ZXN0KHQpfHwhZy50ZXN0KHQpfHxudWxsIT1yJiZ0IGluIE9iamVjdChyKX0odCxyKT9bdF06Y3QoZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/IiI6bHQodCl9KHQpKX12YXIgcHQ9MS8wO2Z1bmN0aW9uIGJ0KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdHx8Xyh0KSlyZXR1cm4gdDt2YXIgcj10KyIiO3JldHVybiIwIj09ciYmMS90PT0tcHQ/Ii0wIjpyfWZ1bmN0aW9uIHl0KHQscixlKXt2YXIgbj1udWxsPT10P3ZvaWQgMDpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0wLG49KHI9c3Qocix0KSkubGVuZ3RoO251bGwhPXQmJmU8bjspdD10W2J0KHJbZSsrXSldO3JldHVybiBlJiZlPT1uP3Q6dm9pZCAwfSh0LHIpO3JldHVybiB2b2lkIDA9PT1uP2U6bn12YXIgdnQ9T2JqZWN0LnByb3RvdHlwZTtmdW5jdGlvbiBqdCh0KXt2YXIgcj10JiZ0LmNvbnN0cnVjdG9yO3JldHVybiB0PT09KCJmdW5jdGlvbiI9PXR5cGVvZiByJiZyLnByb3RvdHlwZXx8dnQpfWZ1bmN0aW9uIGh0KHQscil7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KHIoZSkpfX12YXIgZHQ9aHQoT2JqZWN0LmtleXMsT2JqZWN0KSxfdD1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIGd0KHQpe2lmKCFqdCh0KSlyZXR1cm4gZHQodCk7dmFyIHI9W107Zm9yKHZhciBlIGluIE9iamVjdCh0KSlfdC5jYWxsKHQsZSkmJiJjb25zdHJ1Y3RvciIhPWUmJnIucHVzaChlKTtyZXR1cm4gcn12YXIgT3Q9TihjLCJEYXRhVmlldyIpLG10PU4oYywiUHJvbWlzZSIpLHd0PU4oYywiU2V0IiksQXQ9TihjLCJXZWFrTWFwIiksU3Q9IltvYmplY3QgTWFwXSIseHQ9IltvYmplY3QgUHJvbWlzZV0iLFB0PSJbb2JqZWN0IFNldF0iLHp0PSJbb2JqZWN0IFdlYWtNYXBdIixFdD0iW29iamVjdCBEYXRhVmlld10iLEl0PVUoT3QpLEZ0PVUoSiksVXQ9VShtdCksTXQ9VSh3dCksJHQ9VShBdCksRHQ9ajsoT3QmJkR0KG5ldyBPdChuZXcgQXJyYXlCdWZmZXIoMSkpKSE9RXR8fEomJkR0KG5ldyBKKSE9U3R8fG10JiZEdChtdC5yZXNvbHZlKCkpIT14dHx8d3QmJkR0KG5ldyB3dCkhPVB0fHxBdCYmRHQobmV3IEF0KSE9enQpJiYoRHQ9ZnVuY3Rpb24odCl7dmFyIHI9aih0KSxlPSJbb2JqZWN0IE9iamVjdF0iPT1yP3QuY29uc3RydWN0b3I6dm9pZCAwLG49ZT9VKGUpOiIiO2lmKG4pc3dpdGNoKG4pe2Nhc2UgSXQ6cmV0dXJuIEV0O2Nhc2UgRnQ6cmV0dXJuIFN0O2Nhc2UgVXQ6cmV0dXJuIHh0O2Nhc2UgTXQ6cmV0dXJuIFB0O2Nhc2UgJHQ6cmV0dXJuIHp0fXJldHVybiByfSk7dmFyIFR0PUR0LEJ0PTkwMDcxOTkyNTQ3NDA5OTE7ZnVuY3Rpb24ga3QodCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pi0xJiZ0JTE9PTAmJnQ8PUJ0fWZ1bmN0aW9uIEN0KHQpe3JldHVybiBudWxsIT10JiZrdCh0Lmxlbmd0aCkmJiFQKHQpfXZhciBOdD0iW29iamVjdCBTdHJpbmddIjt2YXIgUnQsVnQ9KFJ0PSJsZW5ndGgiLGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10P3ZvaWQgMDp0W1J0XX0pLFd0PVJlZ0V4cCgiW1xcdTIwMGRcXHVkODAwLVxcdWRmZmZcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZcXHVmZTBlXFx1ZmUwZl0iKTt2YXIgTHQ9IlxcdWQ4MDAtXFx1ZGZmZiIscXQ9IlsiK0x0KyJdIixHdD0iW1xcdTAzMDAtXFx1MDM2ZlxcdWZlMjAtXFx1ZmUyZlxcdTIwZDAtXFx1MjBmZl0iLEt0PSJcXHVkODNjW1xcdWRmZmItXFx1ZGZmZl0iLEh0PSJbXiIrTHQrIl0iLEp0PSIoPzpcXHVkODNjW1xcdWRkZTYtXFx1ZGRmZl0pezJ9IixRdD0iW1xcdWQ4MDAtXFx1ZGJmZl1bXFx1ZGMwMC1cXHVkZmZmXSIsWHQ9Iig/OiIrR3QrInwiK0t0KyIpIisiPyIsWXQ9IltcXHVmZTBlXFx1ZmUwZl0/IixadD1ZdCtYdCsoIig/OlxcdTIwMGQoPzoiK1tIdCxKdCxRdF0uam9pbigifCIpKyIpIitZdCtYdCsiKSoiKSx0cj0iKD86IitbSHQrR3QrIj8iLEd0LEp0LFF0LHF0XS5qb2luKCJ8IikrIikiLHJyPVJlZ0V4cChLdCsiKD89IitLdCsiKXwiK3RyK1p0LCJnIik7ZnVuY3Rpb24gZXIodCl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBXdC50ZXN0KHQpfSh0KT9mdW5jdGlvbih0KXtmb3IodmFyIHI9cnIubGFzdEluZGV4PTA7cnIudGVzdCh0KTspKytyO3JldHVybiByfSh0KTpWdCh0KX12YXIgbnI9IltvYmplY3QgTWFwXSIsb3I9IltvYmplY3QgU2V0XSI7ZnVuY3Rpb24gdXIodCl7aWYobnVsbD09dClyZXR1cm4gMDtpZihDdCh0KSlyZXR1cm4ic3RyaW5nIj09dHlwZW9mKHI9dCl8fCFuKHIpJiZoKHIpJiZqKHIpPT1OdD9lcih0KTp0Lmxlbmd0aDt2YXIgcixlPVR0KHQpO3JldHVybiBlPT1ucnx8ZT09b3I/dC5zaXplOmd0KHQpLmxlbmd0aH12YXIgY3I9TWF0aC5jZWlsLGlyPU1hdGgubWF4O3ZhciBhcj05MDA3MTk5MjU0NzQwOTkxLGZyPS9eKD86MHxbMS05XVxkKikkLztmdW5jdGlvbiBscih0LHIpe3ZhciBlPXR5cGVvZiB0O3JldHVybiEhKHI9bnVsbD09cj9hcjpyKSYmKCJudW1iZXIiPT1lfHwic3ltYm9sIiE9ZSYmZnIudGVzdCh0KSkmJnQ+LTEmJnQlMT09MCYmdDxyfXZhciBzcj0vXHMvO3ZhciBwcj0vXlxzKy87ZnVuY3Rpb24gYnIodCl7cmV0dXJuIHQ/dC5zbGljZSgwLGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aDtyLS0mJnNyLnRlc3QodC5jaGFyQXQocikpOyk7cmV0dXJuIHJ9KHQpKzEpLnJlcGxhY2UocHIsIiIpOnR9dmFyIHlyPU5hTix2cj0vXlstK10weFswLTlhLWZdKyQvaSxqcj0vXjBiWzAxXSskL2ksaHI9L14wb1swLTddKyQvaSxkcj1wYXJzZUludDt2YXIgX3I9MS8wLGdyPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MjtmdW5jdGlvbiBPcih0KXtyZXR1cm4gdD8odD1mdW5jdGlvbih0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpcmV0dXJuIHQ7aWYoXyh0KSlyZXR1cm4geXI7aWYobSh0KSl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQudmFsdWVPZj90LnZhbHVlT2YoKTp0O3Q9bShyKT9yKyIiOnJ9aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVybiAwPT09dD90Oit0O3Q9YnIodCk7dmFyIGU9anIudGVzdCh0KTtyZXR1cm4gZXx8aHIudGVzdCh0KT9kcih0LnNsaWNlKDIpLGU/Mjo4KTp2ci50ZXN0KHQpP3lyOit0fSh0KSk9PT1fcnx8dD09PS1fcj8odDwwPy0xOjEpKmdyOnQ9PXQ/dDowOjA9PT10P3Q6MH12YXIgbXIsd3I9ZnVuY3Rpb24odCxyLGUpe3JldHVybiBlJiYibnVtYmVyIiE9dHlwZW9mIGUmJmZ1bmN0aW9uKHQscixlKXtpZighbShlKSlyZXR1cm4hMTt2YXIgbj10eXBlb2YgcjtyZXR1cm4hISgibnVtYmVyIj09bj9DdChlKSYmbHIocixlLmxlbmd0aCk6InN0cmluZyI9PW4mJnIgaW4gZSkmJnEoZVtyXSx0KX0odCxyLGUpJiYocj1lPXZvaWQgMCksdD1Pcih0KSx2b2lkIDA9PT1yPyhyPXQsdD0wKTpyPU9yKHIpLGZ1bmN0aW9uKHQscixlLG4pe2Zvcih2YXIgbz0tMSx1PWlyKGNyKChyLXQpLyhlfHwxKSksMCksYz1BcnJheSh1KTt1LS07KWNbbj91Oisrb109dCx0Kz1lO3JldHVybiBjfSh0LHIsZT12b2lkIDA9PT1lP3Q8cj8xOi0xOk9yKGUpLG1yKX0sQXI9d3I7ZnVuY3Rpb24gU3IodCl7dmFyIHI9dGhpcy5fX2RhdGFfXz1uZXcgSCh0KTt0aGlzLnNpemU9ci5zaXplfVNyLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189bmV3IEgsdGhpcy5zaXplPTB9LFNyLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9dGhpcy5fX2RhdGFfXyxlPXIuZGVsZXRlKHQpO3JldHVybiB0aGlzLnNpemU9ci5zaXplLGV9LFNyLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KHQpfSxTci5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyh0KX0sU3IucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX187aWYoZSBpbnN0YW5jZW9mIEgpe3ZhciBuPWUuX19kYXRhX187aWYoIUp8fG4ubGVuZ3RoPDE5OSlyZXR1cm4gbi5wdXNoKFt0LHJdKSx0aGlzLnNpemU9KytlLnNpemUsdGhpcztlPXRoaXMuX19kYXRhX189bmV3IFgobil9cmV0dXJuIGUuc2V0KHQsciksdGhpcy5zaXplPWUuc2l6ZSx0aGlzfTt2YXIgeHI9ZnVuY3Rpb24oKXt0cnl7dmFyIHQ9TihPYmplY3QsImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIHQoe30sIiIse30pLHR9Y2F0Y2godCl7fX0oKSxQcj14cjtmdW5jdGlvbiB6cih0LHIsZSl7Il9fcHJvdG9fXyI9PXImJlByP1ByKHQscix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6ZSx3cml0YWJsZTohMH0pOnRbcl09ZX12YXIgRXI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBJcih0LHIsZSl7dmFyIG49dFtyXTtFci5jYWxsKHQscikmJnEobixlKSYmKHZvaWQgMCE9PWV8fHIgaW4gdCl8fHpyKHQscixlKX1mdW5jdGlvbiBGcih0LHIsZSxuKXt2YXIgbz0hZTtlfHwoZT17fSk7Zm9yKHZhciB1PS0xLGM9ci5sZW5ndGg7Kyt1PGM7KXt2YXIgaT1yW3VdLGE9bj9uKGVbaV0sdFtpXSxpLGUsdCk6dm9pZCAwO3ZvaWQgMD09PWEmJihhPXRbaV0pLG8/enIoZSxpLGEpOklyKGUsaSxhKX1yZXR1cm4gZX1mdW5jdGlvbiBVcih0KXtyZXR1cm4gaCh0KSYmIltvYmplY3QgQXJndW1lbnRzXSI9PWoodCl9dmFyIE1yPU9iamVjdC5wcm90b3R5cGUsJHI9TXIuaGFzT3duUHJvcGVydHksRHI9TXIucHJvcGVydHlJc0VudW1lcmFibGUsVHI9VXIoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKT9VcjpmdW5jdGlvbih0KXtyZXR1cm4gaCh0KSYmJHIuY2FsbCh0LCJjYWxsZWUiKSYmIURyLmNhbGwodCwiY2FsbGVlIil9O3ZhciBCcj0ib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRzLGtyPUJyJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsQ3I9a3ImJmtyLmV4cG9ydHM9PT1Ccj9jLkJ1ZmZlcjp2b2lkIDAsTnI9KENyP0NyLmlzQnVmZmVyOnZvaWQgMCl8fGZ1bmN0aW9uKCl7cmV0dXJuITF9LFJyPXt9O2Z1bmN0aW9uIFZyKHQpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gdChyKX19UnJbIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPVJyWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1SclsiW29iamVjdCBJbnQ4QXJyYXldIl09UnJbIltvYmplY3QgSW50MTZBcnJheV0iXT1SclsiW29iamVjdCBJbnQzMkFycmF5XSJdPVJyWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09UnJbIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09UnJbIltvYmplY3QgVWludDE2QXJyYXldIl09UnJbIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsUnJbIltvYmplY3QgQXJndW1lbnRzXSJdPVJyWyJbb2JqZWN0IEFycmF5XSJdPVJyWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPVJyWyJbb2JqZWN0IEJvb2xlYW5dIl09UnJbIltvYmplY3QgRGF0YVZpZXddIl09UnJbIltvYmplY3QgRGF0ZV0iXT1SclsiW29iamVjdCBFcnJvcl0iXT1SclsiW29iamVjdCBGdW5jdGlvbl0iXT1SclsiW29iamVjdCBNYXBdIl09UnJbIltvYmplY3QgTnVtYmVyXSJdPVJyWyJbb2JqZWN0IE9iamVjdF0iXT1SclsiW29iamVjdCBSZWdFeHBdIl09UnJbIltvYmplY3QgU2V0XSJdPVJyWyJbb2JqZWN0IFN0cmluZ10iXT1SclsiW29iamVjdCBXZWFrTWFwXSJdPSExO3ZhciBXcj0ib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRzLExyPVdyJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUscXI9THImJkxyLmV4cG9ydHM9PT1XciYmby5wcm9jZXNzLEdyPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PUxyJiZMci5yZXF1aXJlJiZMci5yZXF1aXJlKCJ1dGlsIikudHlwZXM7cmV0dXJuIHR8fHFyJiZxci5iaW5kaW5nJiZxci5iaW5kaW5nKCJ1dGlsIil9Y2F0Y2godCl7fX0oKSxLcj1HciYmR3IuaXNUeXBlZEFycmF5LEhyPUtyP1ZyKEtyKTpmdW5jdGlvbih0KXtyZXR1cm4gaCh0KSYma3QodC5sZW5ndGgpJiYhIVJyW2oodCldfSxKcj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIFFyKHQscil7dmFyIGU9bih0KSxvPSFlJiZUcih0KSx1PSFlJiYhbyYmTnIodCksYz0hZSYmIW8mJiF1JiZIcih0KSxpPWV8fG98fHV8fGMsYT1pP2Z1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49QXJyYXkodCk7KytlPHQ7KW5bZV09cihlKTtyZXR1cm4gbn0odC5sZW5ndGgsU3RyaW5nKTpbXSxmPWEubGVuZ3RoO2Zvcih2YXIgbCBpbiB0KSFyJiYhSnIuY2FsbCh0LGwpfHxpJiYoImxlbmd0aCI9PWx8fHUmJigib2Zmc2V0Ij09bHx8InBhcmVudCI9PWwpfHxjJiYoImJ1ZmZlciI9PWx8fCJieXRlTGVuZ3RoIj09bHx8ImJ5dGVPZmZzZXQiPT1sKXx8bHIobCxmKSl8fGEucHVzaChsKTtyZXR1cm4gYX1mdW5jdGlvbiBYcih0KXtyZXR1cm4gQ3QodCk/UXIodCk6Z3QodCl9dmFyIFlyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gWnIodCl7aWYoIW0odCkpcmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPVtdO2lmKG51bGwhPXQpZm9yKHZhciBlIGluIE9iamVjdCh0KSlyLnB1c2goZSk7cmV0dXJuIHJ9KHQpO3ZhciByPWp0KHQpLGU9W107Zm9yKHZhciBuIGluIHQpKCJjb25zdHJ1Y3RvciIhPW58fCFyJiZZci5jYWxsKHQsbikpJiZlLnB1c2gobik7cmV0dXJuIGV9ZnVuY3Rpb24gdGUodCl7cmV0dXJuIEN0KHQpP1FyKHQsITApOlpyKHQpfXZhciByZT0ib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRzLGVlPXJlJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsbmU9ZWUmJmVlLmV4cG9ydHM9PT1yZT9jLkJ1ZmZlcjp2b2lkIDAsb2U9bmU/bmUuYWxsb2NVbnNhZmU6dm9pZCAwO2Z1bmN0aW9uIHVlKCl7cmV0dXJuW119dmFyIGNlPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsaWU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxhZT1pZT9mdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD9bXToodD1PYmplY3QodCksZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGgsbz0wLHU9W107KytlPG47KXt2YXIgYz10W2VdO3IoYyxlLHQpJiYodVtvKytdPWMpfXJldHVybiB1fShpZSh0KSwoZnVuY3Rpb24ocil7cmV0dXJuIGNlLmNhbGwodCxyKX0pKSl9OnVlLGZlPWFlO2Z1bmN0aW9uIGxlKHQscil7Zm9yKHZhciBlPS0xLG49ci5sZW5ndGgsbz10Lmxlbmd0aDsrK2U8bjspdFtvK2VdPXJbZV07cmV0dXJuIHR9dmFyIHNlPWh0KE9iamVjdC5nZXRQcm90b3R5cGVPZixPYmplY3QpLHBlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/ZnVuY3Rpb24odCl7Zm9yKHZhciByPVtdO3Q7KWxlKHIsZmUodCkpLHQ9c2UodCk7cmV0dXJuIHJ9OnVlLGJlPXBlO2Z1bmN0aW9uIHllKHQscixlKXt2YXIgbz1yKHQpO3JldHVybiBuKHQpP286bGUobyxlKHQpKX1mdW5jdGlvbiB2ZSh0KXtyZXR1cm4geWUodCxYcixmZSl9ZnVuY3Rpb24gamUodCl7cmV0dXJuIHllKHQsdGUsYmUpfXZhciBoZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBkZT1jLlVpbnQ4QXJyYXk7ZnVuY3Rpb24gX2UodCl7dmFyIHI9bmV3IHQuY29uc3RydWN0b3IodC5ieXRlTGVuZ3RoKTtyZXR1cm4gbmV3IGRlKHIpLnNldChuZXcgZGUodCkpLHJ9dmFyIGdlPS9cdyokLzt2YXIgT2U9aT9pLnByb3RvdHlwZTp2b2lkIDAsbWU9T2U/T2UudmFsdWVPZjp2b2lkIDA7dmFyIHdlPSJbb2JqZWN0IEJvb2xlYW5dIixBZT0iW29iamVjdCBEYXRlXSIsU2U9IltvYmplY3QgTWFwXSIseGU9IltvYmplY3QgTnVtYmVyXSIsUGU9IltvYmplY3QgUmVnRXhwXSIsemU9IltvYmplY3QgU2V0XSIsRWU9IltvYmplY3QgU3RyaW5nXSIsSWU9IltvYmplY3QgU3ltYm9sXSIsRmU9IltvYmplY3QgQXJyYXlCdWZmZXJdIixVZT0iW29iamVjdCBEYXRhVmlld10iLE1lPSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iLCRlPSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iLERlPSJbb2JqZWN0IEludDhBcnJheV0iLFRlPSJbb2JqZWN0IEludDE2QXJyYXldIixCZT0iW29iamVjdCBJbnQzMkFycmF5XSIsa2U9IltvYmplY3QgVWludDhBcnJheV0iLENlPSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSIsTmU9IltvYmplY3QgVWludDE2QXJyYXldIixSZT0iW29iamVjdCBVaW50MzJBcnJheV0iO2Z1bmN0aW9uIFZlKHQscixlKXt2YXIgbixvPXQuY29uc3RydWN0b3I7c3dpdGNoKHIpe2Nhc2UgRmU6cmV0dXJuIF9lKHQpO2Nhc2Ugd2U6Y2FzZSBBZTpyZXR1cm4gbmV3IG8oK3QpO2Nhc2UgVWU6cmV0dXJuIGZ1bmN0aW9uKHQscil7dmFyIGU9cj9fZSh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKGUsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCl9KHQsZSk7Y2FzZSBNZTpjYXNlICRlOmNhc2UgRGU6Y2FzZSBUZTpjYXNlIEJlOmNhc2Uga2U6Y2FzZSBDZTpjYXNlIE5lOmNhc2UgUmU6cmV0dXJuIGZ1bmN0aW9uKHQscil7dmFyIGU9cj9fZSh0LmJ1ZmZlcik6dC5idWZmZXI7cmV0dXJuIG5ldyB0LmNvbnN0cnVjdG9yKGUsdC5ieXRlT2Zmc2V0LHQubGVuZ3RoKX0odCxlKTtjYXNlIFNlOnJldHVybiBuZXcgbztjYXNlIHhlOmNhc2UgRWU6cmV0dXJuIG5ldyBvKHQpO2Nhc2UgUGU6cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciByPW5ldyB0LmNvbnN0cnVjdG9yKHQuc291cmNlLGdlLmV4ZWModCkpO3JldHVybiByLmxhc3RJbmRleD10Lmxhc3RJbmRleCxyfSh0KTtjYXNlIHplOnJldHVybiBuZXcgbztjYXNlIEllOnJldHVybiBuPXQsbWU/T2JqZWN0KG1lLmNhbGwobikpOnt9fX12YXIgV2U9T2JqZWN0LmNyZWF0ZSxMZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9cmV0dXJuIGZ1bmN0aW9uKHIpe2lmKCFtKHIpKXJldHVybnt9O2lmKFdlKXJldHVybiBXZShyKTt0LnByb3RvdHlwZT1yO3ZhciBlPW5ldyB0O3JldHVybiB0LnByb3RvdHlwZT12b2lkIDAsZX19KCkscWU9TGU7dmFyIEdlPUdyJiZHci5pc01hcCxLZT1HZT9WcihHZSk6ZnVuY3Rpb24odCl7cmV0dXJuIGgodCkmJiJbb2JqZWN0IE1hcF0iPT1UdCh0KX07dmFyIEhlPUdyJiZHci5pc1NldCxKZT1IZT9WcihIZSk6ZnVuY3Rpb24odCl7cmV0dXJuIGgodCkmJiJbb2JqZWN0IFNldF0iPT1UdCh0KX0sUWU9MSxYZT0yLFllPTQsWmU9IltvYmplY3QgQXJndW1lbnRzXSIsdG49IltvYmplY3QgRnVuY3Rpb25dIixybj0iW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iLGVuPSJbb2JqZWN0IE9iamVjdF0iLG5uPXt9O2Z1bmN0aW9uIG9uKHQscixlLG8sdSxjKXt2YXIgaSxhPXImUWUsZj1yJlhlLGw9ciZZZTtpZihlJiYoaT11P2UodCxvLHUsYyk6ZSh0KSksdm9pZCAwIT09aSlyZXR1cm4gaTtpZighbSh0KSlyZXR1cm4gdDt2YXIgcz1uKHQpO2lmKHMpe2lmKGk9ZnVuY3Rpb24odCl7dmFyIHI9dC5sZW5ndGgsZT1uZXcgdC5jb25zdHJ1Y3RvcihyKTtyZXR1cm4gciYmInN0cmluZyI9PXR5cGVvZiB0WzBdJiZoZS5jYWxsKHQsImluZGV4IikmJihlLmluZGV4PXQuaW5kZXgsZS5pbnB1dD10LmlucHV0KSxlfSh0KSwhYSlyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgZT0tMSxuPXQubGVuZ3RoO2ZvcihyfHwocj1BcnJheShuKSk7KytlPG47KXJbZV09dFtlXTtyZXR1cm4gcn0odCxpKX1lbHNle3ZhciBwPVR0KHQpLGI9cD09dG58fHA9PXJuO2lmKE5yKHQpKXJldHVybiBmdW5jdGlvbih0LHIpe2lmKHIpcmV0dXJuIHQuc2xpY2UoKTt2YXIgZT10Lmxlbmd0aCxuPW9lP29lKGUpOm5ldyB0LmNvbnN0cnVjdG9yKGUpO3JldHVybiB0LmNvcHkobiksbn0odCxhKTtpZihwPT1lbnx8cD09WmV8fGImJiF1KXtpZihpPWZ8fGI/e306ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHQuY29uc3RydWN0b3J8fGp0KHQpP3t9OnFlKHNlKHQpKX0odCksIWEpcmV0dXJuIGY/ZnVuY3Rpb24odCxyKXtyZXR1cm4gRnIodCxiZSh0KSxyKX0odCxmdW5jdGlvbih0LHIpe3JldHVybiB0JiZGcihyLHRlKHIpLHQpfShpLHQpKTpmdW5jdGlvbih0LHIpe3JldHVybiBGcih0LGZlKHQpLHIpfSh0LGZ1bmN0aW9uKHQscil7cmV0dXJuIHQmJkZyKHIsWHIociksdCl9KGksdCkpfWVsc2V7aWYoIW5uW3BdKXJldHVybiB1P3Q6e307aT1WZSh0LHAsYSl9fWN8fChjPW5ldyBTcik7dmFyIHk9Yy5nZXQodCk7aWYoeSlyZXR1cm4geTtjLnNldCh0LGkpLEplKHQpP3QuZm9yRWFjaCgoZnVuY3Rpb24obil7aS5hZGQob24obixyLGUsbix0LGMpKX0pKTpLZSh0KSYmdC5mb3JFYWNoKChmdW5jdGlvbihuLG8pe2kuc2V0KG8sb24obixyLGUsbyx0LGMpKX0pKTt2YXIgdj1zP3ZvaWQgMDoobD9mP2plOnZlOmY/dGU6WHIpKHQpO3JldHVybiBmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aDsrK2U8biYmITEhPT1yKHRbZV0sZSx0KTspO30odnx8dCwoZnVuY3Rpb24obixvKXt2JiYobj10W289bl0pLElyKGksbyxvbihuLHIsZSxvLHQsYykpfSkpLGl9bm5bWmVdPW5uWyJbb2JqZWN0IEFycmF5XSJdPW5uWyJbb2JqZWN0IEFycmF5QnVmZmVyXSJdPW5uWyJbb2JqZWN0IERhdGFWaWV3XSJdPW5uWyJbb2JqZWN0IEJvb2xlYW5dIl09bm5bIltvYmplY3QgRGF0ZV0iXT1ublsiW29iamVjdCBGbG9hdDMyQXJyYXldIl09bm5bIltvYmplY3QgRmxvYXQ2NEFycmF5XSJdPW5uWyJbb2JqZWN0IEludDhBcnJheV0iXT1ublsiW29iamVjdCBJbnQxNkFycmF5XSJdPW5uWyJbb2JqZWN0IEludDMyQXJyYXldIl09bm5bIltvYmplY3QgTWFwXSJdPW5uWyJbb2JqZWN0IE51bWJlcl0iXT1ubltlbl09bm5bIltvYmplY3QgUmVnRXhwXSJdPW5uWyJbb2JqZWN0IFNldF0iXT1ublsiW29iamVjdCBTdHJpbmddIl09bm5bIltvYmplY3QgU3ltYm9sXSJdPW5uWyJbb2JqZWN0IFVpbnQ4QXJyYXldIl09bm5bIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIl09bm5bIltvYmplY3QgVWludDE2QXJyYXldIl09bm5bIltvYmplY3QgVWludDMyQXJyYXldIl09ITAsbm5bIltvYmplY3QgRXJyb3JdIl09bm5bdG5dPW5uWyJbb2JqZWN0IFdlYWtNYXBdIl09ITE7dmFyIHVuPTEsY249NDtmdW5jdGlvbiBhbih0KXtyZXR1cm4gb24odCx1bnxjbil9ZnVuY3Rpb24gZm4odCl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBsbih0KXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX12YXIgc249IltvYmplY3QgQm9vbGVhbl0iO2Z1bmN0aW9uIHBuKHQpe3JldHVybiEwPT09KHI9dCl8fCExPT09cnx8aChyKSYmaihyKT09c247dmFyIHJ9ZnVuY3Rpb24gYm4odCxyPW51bGwsZT17fSl7UChyKXx8KHI9dD0+dCk7bGV0IG49eXQoZSwiZm9yY2UiLCExKTtyZXR1cm4gcG4obil8fChuPSExKSxmdW5jdGlvbih0LHIsZT0hMSl7bGV0IG49W107aWYoIWZuKHQpJiYhbG4odCkpcmV0dXJuIHIodCxudWxsLFtdKTtmdW5jdGlvbiBvKHQpe2lmKGZuKHQpKXJldHVybiBBcih1cih0KSk7aWYobG4odCkpe2xldCByPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHQpLG49bnVsbDtyZXR1cm4gZSYmKG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KSksZm4ocil8fChyPVtdKSxmbihuKXx8KG49W10pLFsuLi5yLC4uLm5dfXJldHVybiB0fXJldHVybiBmdW5jdGlvbiB0KGUsdSl7aWYoZm4oZSkpcmV0dXJuIG8oZSkubWFwKChvPT57bGV0IHU9ZVtvXSxjPWFuKG4pO3JldHVybiBuLnB1c2gobyksdT1yKHUsbyxjKSx1PXQodSksbi5wb3AoKSx1fSkpO2lmKGxuKGUpKXtsZXQgdT1vKGUpLGM9e307cmV0dXJuIHUubWFwKChvPT57bGV0IHU9ZVtvXSxpPWFuKG4pO24ucHVzaChvKSx1PXIodSxvLGkpLHU9dCh1KSxuLnBvcCgpLGNbb109dX0pKSxjfXJldHVybiBlfSh0KX0odCxyLG4pfWZ1bmN0aW9uIHluKHQpe3JldHVybiEoIWZ1bmN0aW9uKHQpe3JldHVybiJbb2JqZWN0IFN0cmluZ10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfSh0KXx8IiI9PT10KX1mdW5jdGlvbiB2bih0LHIpe3ZhciBlPU9iamVjdC5rZXlzKHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7ciYmKG49bi5maWx0ZXIoKGZ1bmN0aW9uKHIpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQscikuZW51bWVyYWJsZX0pKSksZS5wdXNoLmFwcGx5KGUsbil9cmV0dXJuIGV9ZnVuY3Rpb24gam4odCl7Zm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7dmFyIG49bnVsbCE9YXJndW1lbnRzW3JdP2FyZ3VtZW50c1tyXTp7fTtyJTI/dm4oT2JqZWN0KG4pLCEwKS5mb3JFYWNoKChmdW5jdGlvbihyKXtlKHQscixuW3JdKX0pKTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG4pKTp2bihPYmplY3QobikpLmZvckVhY2goKGZ1bmN0aW9uKHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LHIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihuLHIpKX0pKX1yZXR1cm4gdH1mdW5jdGlvbiBobih0LHI9e30pe2lmKGZuKHQpKXtpZigwPT09dC5sZW5ndGgpcmV0dXJuW119ZWxzZXtpZighbG4odCkpcmV0dXJuW107aWYoZnVuY3Rpb24odCl7aWYobG4odCkpe2ZvcihsZXQgciBpbiB0KXJldHVybiExO3JldHVybiEwfXJldHVybiExfSh0KSlyZXR1cm5bXX1sZXQgZT15dChyLCJiaW5kS2V5IixudWxsKTt5bihlKXx8KGU9ImlkIik7bGV0IG49eXQociwiYmluZENoaWxkcmVuIixudWxsKTt5bihuKXx8KG49ImNoaWxkcmVuIik7bGV0IG89ITE7bG4odCkmJihvPSEwLHQ9W3RdKTtsZXQgdT1bXTtyZXR1cm4gYm4odCwoKHQscixvKT0+e2xldCBjPXl0KHQsZSxudWxsKSxpPXl0KHQsbixudWxsKTtpZihjKXtsZXQgZT1mdW5jdGlvbih0KXtsZXQgcj1bdFswXV07Zm9yKGxldCBlPTE7ZTx0Lmxlbmd0aDtlKyspe2xldCBvPXRbZV07ci5wdXNoKG4pLHIucHVzaChvKX1yZXR1cm4gcn0oWy4uLm8scl0pO2lmKHUucHVzaChqbihqbih7fSx0KSx7fSx7bGV2ZWw6KHVyKGUpLTEpLzIsbms6ZX0pKSxpKXJldHVybiBpfX0pKSxvJiYodT11WzBdKSx1fWFzeW5jIGZ1bmN0aW9uIGZsYXR0ZW5UcmVlV2sodCxyPXt9KXtyZXR1cm4gaG4odCxyKX0KCmxldCBpbnN0YW5jZSA9IG51bGwKZnVuY3Rpb24gaW5pdChpbnB1dCl7CgogICAgLy9pbml0CiAgICBsZXQgcgogICAgCiAgICAgICAgciA9IHsKICAgICAgICAgICAgbWFpbjogZmxhdHRlblRyZWVXawogICAgICAgIH0KICAgICAgICAKCiAgICAvL29uCiAgICAKCiAgICAvL3NhdmUKICAgIGluc3RhbmNlID0gcgoKfQoKZnVuY3Rpb24gc2VuZE1lc3NhZ2UoZGF0YSkgewogICAgCiAgICAgICAgc2VsZi5wb3N0TWVzc2FnZShkYXRhKQogICAgICAgIAp9Cgphc3luYyBmdW5jdGlvbiBydW4oZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciBydW4nLGRhdGEpCgogICAgLy9tb2RlCiAgICBsZXQgbW9kZSA9IGRhdGEubW9kZQoKICAgIC8vY2hlY2sKICAgIGlmKG1vZGUgIT09ICdpbml0JyAmJiBtb2RlICE9PSAnY2FsbCcpewogICAgICAgIHJldHVybgogICAgfQoKICAgIC8vaW5pdAogICAgaWYobW9kZSA9PT0gJ2luaXQnKXsKICAgICAgICAKICAgICAgICB0cnl7CgogICAgICAgICAgICAvL3R5cGUKICAgICAgICAgICAgbGV0IHR5cGUgPSBkYXRhLnR5cGUKCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAogICAgCiAgICAgICAgICAgIC8vaW5zdGFuY2UKICAgICAgICAgICAgaWYodHlwZSA9PT0gJ2Z1bmN0aW9uJyl7CiAgICAgICAgICAgICAgICBpbml0KC4uLmlucHV0KQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PT0gJ29iamVjdCcpewogICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBmbGF0dGVuVHJlZVdrCiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgCiAgICAgICAgICAgIC8vc2VuZE1lc3NhZ2UKICAgICAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgICAgIG1vZGU6ICdlbWl0JywKICAgICAgICAgICAgICAgIGV2TmFtZTogJ2Vycm9yJywKICAgICAgICAgICAgICAgIG1zZzogZXJyLAogICAgICAgICAgICB9CiAgICAgICAgICAgIHNlbmRNZXNzYWdlKHJlcykKCiAgICAgICAgfQogICAgICAgICAgICAKICAgIH0KCiAgICAvL2NoZWNrCiAgICBpZihtb2RlID09PSAnY2FsbCcpewogICAgICAgIGxldCBzdGF0ZSA9ICcnCiAgICAgICAgbGV0IG1zZyA9IG51bGwKCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy9mdW4KICAgICAgICAgICAgbGV0IGZ1biA9IGluc3RhbmNlW2RhdGEuZnVuXQoKICAgICAgICAgICAgLy9pbnB1dAogICAgICAgICAgICBsZXQgaW5wdXQgPSBkYXRhLmlucHV0CgogICAgICAgICAgICAvL2V4ZWMKICAgICAgICAgICAgYXdhaXQgZnVuKC4uLmlucHV0KQogICAgICAgICAgICAgICAgLnRoZW4oKHN1YykgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdzdWNjZXNzJwogICAgICAgICAgICAgICAgICAgIG1zZz1zdWMKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4gewogICAgICAgICAgICAgICAgICAgIHN0YXRlPSdlcnJvcicKICAgICAgICAgICAgICAgICAgICBtc2c9ZXJyCiAgICAgICAgICAgICAgICB9KQoKICAgICAgICB9CiAgICAgICAgY2F0Y2goZXJyKXsKICAgICAgICAgICAgc3RhdGUgPSAnZXJyb3InCiAgICAgICAgICAgIG1zZyA9IGVycgogICAgICAgIH0KICAgICAgICAKICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgbGV0IHJlcyA9IHsKICAgICAgICAgICAgbW9kZTogJ3JldHVybicsCiAgICAgICAgICAgIGlkOiBkYXRhLmlkLAogICAgICAgICAgICBmdW46IGRhdGEuZnVuLAogICAgICAgICAgICBzdGF0ZSwKICAgICAgICAgICAgbXNnLAogICAgICAgIH0KICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgfQoKfQoKZnVuY3Rpb24gcmVjdk1lc3NhZ2UoZGF0YSkgewogICAgLy8gY29uc29sZS5sb2coJ2lubmVyIHdvcmtlciByZWN2OicsIGRhdGEpCgogICAgLy9kYXRhUmVjdgogICAgbGV0IGRhdGFSZWN2ID0gZGF0YQoKICAgIC8vcnVuCiAgICBydW4oZGF0YVJlY3YpCgp9CgoKICAgICAgICBzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIHJlY3ZNZXNzYWdlKGUuZGF0YSkKICAgICAgICB9CiAgICAgICAgCgp0cnl7CiAgICBwcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuaGFuZGxlZFJlamVjdGlvbicsIGVycikKICAgIH0pCiAgICBwcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmNhdWdodEV4Y2VwdGlvbk1vbml0b3InLCBlcnIpCiAgICB9KQp9CmNhdGNoKGVycil7fQoK");function l(){let l=new J;let I=function(d){try{let l=new Blob([d]),I=window.URL||window.webkitURL;return new Worker(I.createObjectURL(l))}catch(d){c(d)}}(d);if(!I)return c("invalid worker"),null;function m(){let d=function(){let d,l,I=new Promise((function(){d=arguments[0],l=arguments[1]}));return I.resolve=d,I.reject=l,I}(),m=function(){let d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,l=[],I="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),m=I.length;for(let c=0;c<d;c++)l[c]=I[0|Math.random()*m];return l.join("")}(),c={mode:"call",id:m,fun:"main",input:[...arguments]};return I.postMessage(c),l.once(m,(l=>{"success"===l.state?d.resolve(l.msg):d.reject(l.msg)})),d}function c(d){l.emit("error",d)}return I.onmessage=function(d){!function(d){let I=d,m=I.mode;"emit"!==m&&"return"!==m||("emit"===m&&l.emit(I.evName,I.msg),"return"===m&&l.emit(I.id,I))}(d.data)},I.onerror=c,I.onmessageerror=function(d){c(d.data)},function(){let d={mode:"init",type:"function",input:[...arguments]};I.postMessage(d)}([...arguments]),l.main=m,l.main=m,l.terminate=function(){I?(I.terminate(),I=void 0):c("worker has been terminated")},l}u=async function(){let d=[...arguments],I=l();return await I.main(...d).finally((()=>{I.terminate()}))}}();try{process.on("unhandledRejection",(d=>{console.log("outer:unhandledRejection",d)})),process.on("uncaughtException",(d=>{console.log("outer:uncaughtException",d)})),process.on("uncaughtExceptionMonitor",(d=>{console.log("outer:uncaughtExceptionMonitor",d)}))}catch(d){}var H=u;export{H as default};
|
|
1
|
+
const d="function"==typeof Buffer,l="function"==typeof TextDecoder?new TextDecoder:void 0,I=("function"==typeof TextEncoder&&new TextEncoder,Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")),c=(d=>{let l={};return I.forEach(((d,I)=>l[d]=I)),l})(),i=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,m=String.fromCharCode.bind(String),Z="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):d=>new Uint8Array(Array.prototype.slice.call(d,0)),b=d=>d.replace(/[^A-Za-z0-9\+\/]/g,""),X=d=>{let l,c,i,m,Z="";const b=d.length%3;for(let b=0;b<d.length;){if((c=d.charCodeAt(b++))>255||(i=d.charCodeAt(b++))>255||(m=d.charCodeAt(b++))>255)throw new TypeError("invalid character found");l=c<<16|i<<8|m,Z+=I[l>>18&63]+I[l>>12&63]+I[l>>6&63]+I[63&l]}return b?Z.slice(0,b-3)+"===".substring(b):Z},C=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,y=d=>{switch(d.length){case 4:var l=((7&d.charCodeAt(0))<<18|(63&d.charCodeAt(1))<<12|(63&d.charCodeAt(2))<<6|63&d.charCodeAt(3))-65536;return m(55296+(l>>>10))+m(56320+(1023&l));case 3:return m((15&d.charCodeAt(0))<<12|(63&d.charCodeAt(1))<<6|63&d.charCodeAt(2));default:return m((31&d.charCodeAt(0))<<6|63&d.charCodeAt(1))}},g=d=>d.replace(C,y),n=d=>{if(d=d.replace(/\s+/g,""),!i.test(d))throw new TypeError("malformed base64.");d+="==".slice(2-(3&d.length));let l,I,Z,b="";for(let i=0;i<d.length;)l=c[d.charAt(i++)]<<18|c[d.charAt(i++)]<<12|(I=c[d.charAt(i++)])<<6|(Z=c[d.charAt(i++)]),b+=64===I?m(l>>16&255):64===Z?m(l>>16&255,l>>8&255):m(l>>16&255,l>>8&255,255&l);return b},p="function"==typeof atob?d=>atob(b(d)):d?d=>Buffer.from(d,"base64").toString("binary"):n,t=d?d=>Z(Buffer.from(d,"base64")):d=>Z(p(d).split("").map((d=>d.charCodeAt(0)))),W=d?d=>Buffer.from(d,"base64").toString("utf8"):l?d=>l.decode(t(d)):d=>g(p(d)),V=d=>b(d.replace(/[-_]/g,(d=>"-"==d?"+":"/"))),u=d=>W(V(d)),G=u;var o={};!function(d){var l=Object.prototype.hasOwnProperty,I="~";function c(){}function i(d,l,I){this.fn=d,this.context=l,this.once=I||!1}function m(d,l,c,m,Z){if("function"!=typeof c)throw new TypeError("The listener must be a function");var b=new i(c,m||d,Z),X=I?I+l:l;return d._events[X]?d._events[X].fn?d._events[X]=[d._events[X],b]:d._events[X].push(b):(d._events[X]=b,d._eventsCount++),d}function Z(d,l){0==--d._eventsCount?d._events=new c:delete d._events[l]}function b(){this._events=new c,this._eventsCount=0}Object.create&&(c.prototype=Object.create(null),(new c).__proto__||(I=!1)),b.prototype.eventNames=function(){var d,c,i=[];if(0===this._eventsCount)return i;for(c in d=this._events)l.call(d,c)&&i.push(I?c.slice(1):c);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(d)):i},b.prototype.listeners=function(d){var l=I?I+d:d,c=this._events[l];if(!c)return[];if(c.fn)return[c.fn];for(var i=0,m=c.length,Z=new Array(m);i<m;i++)Z[i]=c[i].fn;return Z},b.prototype.listenerCount=function(d){var l=I?I+d:d,c=this._events[l];return c?c.fn?1:c.length:0},b.prototype.emit=function(d,l,c,i,m,Z){var b=I?I+d:d;if(!this._events[b])return!1;var X,C,y=this._events[b],g=arguments.length;if(y.fn){switch(y.once&&this.removeListener(d,y.fn,void 0,!0),g){case 1:return y.fn.call(y.context),!0;case 2:return y.fn.call(y.context,l),!0;case 3:return y.fn.call(y.context,l,c),!0;case 4:return y.fn.call(y.context,l,c,i),!0;case 5:return y.fn.call(y.context,l,c,i,m),!0;case 6:return y.fn.call(y.context,l,c,i,m,Z),!0}for(C=1,X=new Array(g-1);C<g;C++)X[C-1]=arguments[C];y.fn.apply(y.context,X)}else{var n,p=y.length;for(C=0;C<p;C++)switch(y[C].once&&this.removeListener(d,y[C].fn,void 0,!0),g){case 1:y[C].fn.call(y[C].context);break;case 2:y[C].fn.call(y[C].context,l);break;case 3:y[C].fn.call(y[C].context,l,c);break;case 4:y[C].fn.call(y[C].context,l,c,i);break;default:if(!X)for(n=1,X=new Array(g-1);n<g;n++)X[n-1]=arguments[n];y[C].fn.apply(y[C].context,X)}}return!0},b.prototype.on=function(d,l,I){return m(this,d,l,I,!1)},b.prototype.once=function(d,l,I){return m(this,d,l,I,!0)},b.prototype.removeListener=function(d,l,c,i){var m=I?I+d:d;if(!this._events[m])return this;if(!l)return Z(this,m),this;var b=this._events[m];if(b.fn)b.fn!==l||i&&!b.once||c&&b.context!==c||Z(this,m);else{for(var X=0,C=[],y=b.length;X<y;X++)(b[X].fn!==l||i&&!b[X].once||c&&b[X].context!==c)&&C.push(b[X]);C.length?this._events[m]=1===C.length?C[0]:C:Z(this,m)}return this},b.prototype.removeAllListeners=function(d){var l;return d?(l=I?I+d:d,this._events[l]&&Z(this,l)):(this._events=new c,this._eventsCount=0),this},b.prototype.off=b.prototype.removeListener,b.prototype.addListener=b.prototype.on,b.prefixed=I,b.EventEmitter=b,d.exports=b}({get exports(){return o},set exports(d){o=d}});var h=o;let e;!function(){if("browser"!==("undefined"!=typeof window&&void 0!==window.document?"browser":"nodejs"))return null;let d=G("CgoKInVzZSBzdHJpY3QiO2Z1bmN0aW9uIHQocil7cmV0dXJuIHQ9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIHR9LHQocil9ZnVuY3Rpb24gcihyKXt2YXIgZT1mdW5jdGlvbihyLGUpe2lmKCJvYmplY3QiIT09dChyKXx8bnVsbD09PXIpcmV0dXJuIHI7dmFyIG49cltTeW1ib2wudG9QcmltaXRpdmVdO2lmKHZvaWQgMCE9PW4pe3ZhciBvPW4uY2FsbChyLGV8fCJkZWZhdWx0Iik7aWYoIm9iamVjdCIhPT10KG8pKXJldHVybiBvO3Rocm93IG5ldyBUeXBlRXJyb3IoIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuIil9cmV0dXJuKCJzdHJpbmciPT09ZT9TdHJpbmc6TnVtYmVyKShyKX0ociwic3RyaW5nIik7cmV0dXJuInN5bWJvbCI9PT10KGUpP2U6U3RyaW5nKGUpfWZ1bmN0aW9uIGUodCxlLG4pe3JldHVybihlPXIoZSkpaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1uLHR9dmFyIG49QXJyYXkuaXNBcnJheSxvPSJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWwmJmdsb2JhbC5PYmplY3Q9PT1PYmplY3QmJmdsb2JhbCx1PSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGYsYz1vfHx1fHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLGk9Yy5TeW1ib2wsYT1PYmplY3QucHJvdG90eXBlLGY9YS5oYXNPd25Qcm9wZXJ0eSxsPWEudG9TdHJpbmcscz1pP2kudG9TdHJpbmdUYWc6dm9pZCAwO3ZhciBwPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIGI9IltvYmplY3QgTnVsbF0iLHk9IltvYmplY3QgVW5kZWZpbmVkXSIsdj1pP2kudG9TdHJpbmdUYWc6dm9pZCAwO2Z1bmN0aW9uIGoodCl7cmV0dXJuIG51bGw9PXQ/dm9pZCAwPT09dD95OmI6diYmdiBpbiBPYmplY3QodCk/ZnVuY3Rpb24odCl7dmFyIHI9Zi5jYWxsKHQscyksZT10W3NdO3RyeXt0W3NdPXZvaWQgMDt2YXIgbj0hMH1jYXRjaCh0KXt9dmFyIG89bC5jYWxsKHQpO3JldHVybiBuJiYocj90W3NdPWU6ZGVsZXRlIHRbc10pLG99KHQpOmZ1bmN0aW9uKHQpe3JldHVybiBwLmNhbGwodCl9KHQpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIG51bGwhPXQmJiJvYmplY3QiPT10eXBlb2YgdH12YXIgZD0iW29iamVjdCBTeW1ib2xdIjtmdW5jdGlvbiBfKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdHx8aCh0KSYmaih0KT09ZH12YXIgZz0vXC58XFsoPzpbXltcXV0qfChbIiddKSg/Oig/IVwxKVteXFxdfFxcLikqP1wxKVxdLyxPPS9eXHcqJC87ZnVuY3Rpb24gbSh0KXt2YXIgcj10eXBlb2YgdDtyZXR1cm4gbnVsbCE9dCYmKCJvYmplY3QiPT1yfHwiZnVuY3Rpb24iPT1yKX12YXIgdz0iW29iamVjdCBBc3luY0Z1bmN0aW9uXSIsQT0iW29iamVjdCBGdW5jdGlvbl0iLFM9IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIix4PSJbb2JqZWN0IFByb3h5XSI7ZnVuY3Rpb24gUCh0KXtpZighbSh0KSlyZXR1cm4hMTt2YXIgcj1qKHQpO3JldHVybiByPT1BfHxyPT1TfHxyPT13fHxyPT14fXZhciB6LEU9Y1siX19jb3JlLWpzX3NoYXJlZF9fIl0sST0oej0vW14uXSskLy5leGVjKEUmJkUua2V5cyYmRS5rZXlzLklFX1BST1RPfHwiIikpPyJTeW1ib2woc3JjKV8xLiIrejoiIjt2YXIgRj1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gVSh0KXtpZihudWxsIT10KXt0cnl7cmV0dXJuIEYuY2FsbCh0KX1jYXRjaCh0KXt9dHJ5e3JldHVybiB0KyIifWNhdGNoKHQpe319cmV0dXJuIiJ9dmFyIE09L15cW29iamVjdCAuKz9Db25zdHJ1Y3RvclxdJC8sJD1GdW5jdGlvbi5wcm90b3R5cGUsRD1PYmplY3QucHJvdG90eXBlLFQ9JC50b1N0cmluZyxCPUQuaGFzT3duUHJvcGVydHksaz1SZWdFeHAoIl4iK1QuY2FsbChCKS5yZXBsYWNlKC9bXFxeJC4qKz8oKVtcXXt9fF0vZywiXFwkJiIpLnJlcGxhY2UoL2hhc093blByb3BlcnR5fChmdW5jdGlvbikuKj8oPz1cXFwoKXwgZm9yIC4rPyg/PVxcXF0pL2csIiQxLio/IikrIiQiKTtmdW5jdGlvbiBDKHQpe3JldHVybiEoIW0odCl8fChyPXQsSSYmSSBpbiByKSkmJihQKHQpP2s6TSkudGVzdChVKHQpKTt2YXIgcn1mdW5jdGlvbiBOKHQscil7dmFyIGU9ZnVuY3Rpb24odCxyKXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtyXX0odCxyKTtyZXR1cm4gQyhlKT9lOnZvaWQgMH12YXIgUj1OKE9iamVjdCwiY3JlYXRlIik7dmFyIFY9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgVz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIEwodCl7dmFyIHI9LTEsZT1udWxsPT10PzA6dC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK3I8ZTspe3ZhciBuPXRbcl07dGhpcy5zZXQoblswXSxuWzFdKX19ZnVuY3Rpb24gcSh0LHIpe3JldHVybiB0PT09cnx8dCE9dCYmciE9cn1mdW5jdGlvbiBHKHQscil7Zm9yKHZhciBlPXQubGVuZ3RoO2UtLTspaWYocSh0W2VdWzBdLHIpKXJldHVybiBlO3JldHVybi0xfUwucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5fX2RhdGFfXz1SP1IobnVsbCk6e30sdGhpcy5zaXplPTB9LEwucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj10aGlzLmhhcyh0KSYmZGVsZXRlIHRoaXMuX19kYXRhX19bdF07cmV0dXJuIHRoaXMuc2l6ZS09cj8xOjAscn0sTC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX187aWYoUil7dmFyIGU9clt0XTtyZXR1cm4iX19sb2Rhc2hfaGFzaF91bmRlZmluZWRfXyI9PT1lP3ZvaWQgMDplfXJldHVybiBWLmNhbGwocix0KT9yW3RdOnZvaWQgMH0sTC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX187cmV0dXJuIFI/dm9pZCAwIT09clt0XTpXLmNhbGwocix0KX0sTC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fX2RhdGFfXztyZXR1cm4gdGhpcy5zaXplKz10aGlzLmhhcyh0KT8wOjEsZVt0XT1SJiZ2b2lkIDA9PT1yPyJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIjpyLHRoaXN9O3ZhciBLPUFycmF5LnByb3RvdHlwZS5zcGxpY2U7ZnVuY3Rpb24gSCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1ILnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuX19kYXRhX189W10sdGhpcy5zaXplPTB9LEgucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbih0KXt2YXIgcj10aGlzLl9fZGF0YV9fLGU9RyhyLHQpO3JldHVybiEoZTwwKSYmKGU9PXIubGVuZ3RoLTE/ci5wb3AoKTpLLmNhbGwocixlLDEpLC0tdGhpcy5zaXplLCEwKX0sSC5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1HKHIsdCk7cmV0dXJuIGU8MD92b2lkIDA6cltlXVsxXX0sSC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiBHKHRoaXMuX19kYXRhX18sdCk+LTF9LEgucHJvdG90eXBlLnNldD1mdW5jdGlvbih0LHIpe3ZhciBlPXRoaXMuX19kYXRhX18sbj1HKGUsdCk7cmV0dXJuIG48MD8oKyt0aGlzLnNpemUsZS5wdXNoKFt0LHJdKSk6ZVtuXVsxXT1yLHRoaXN9O3ZhciBKPU4oYywiTWFwIik7ZnVuY3Rpb24gUSh0LHIpe3ZhciBlLG4sbz10Ll9fZGF0YV9fO3JldHVybigic3RyaW5nIj09KG49dHlwZW9mKGU9cikpfHwibnVtYmVyIj09bnx8InN5bWJvbCI9PW58fCJib29sZWFuIj09bj8iX19wcm90b19fIiE9PWU6bnVsbD09PWUpP29bInN0cmluZyI9PXR5cGVvZiByPyJzdHJpbmciOiJoYXNoIl06by5tYXB9ZnVuY3Rpb24gWCh0KXt2YXIgcj0tMSxlPW51bGw9PXQ/MDp0Lmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrcjxlOyl7dmFyIG49dFtyXTt0aGlzLnNldChuWzBdLG5bMV0pfX1YLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IEwsbWFwOm5ldyhKfHxIKSxzdHJpbmc6bmV3IEx9fSxYLnByb3RvdHlwZS5kZWxldGU9ZnVuY3Rpb24odCl7dmFyIHI9USh0aGlzLHQpLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplLT1yPzE6MCxyfSxYLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIFEodGhpcyx0KS5nZXQodCl9LFgucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gUSh0aGlzLHQpLmhhcyh0KX0sWC5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQscil7dmFyIGU9USh0aGlzLHQpLG49ZS5zaXplO3JldHVybiBlLnNldCh0LHIpLHRoaXMuc2l6ZSs9ZS5zaXplPT1uPzA6MSx0aGlzfTt2YXIgWT0iRXhwZWN0ZWQgYSBmdW5jdGlvbiI7ZnVuY3Rpb24gWih0LHIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0fHxudWxsIT1yJiYiZnVuY3Rpb24iIT10eXBlb2Ygcil0aHJvdyBuZXcgVHlwZUVycm9yKFkpO3ZhciBlPWZ1bmN0aW9uKCl7dmFyIG49YXJndW1lbnRzLG89cj9yLmFwcGx5KHRoaXMsbik6blswXSx1PWUuY2FjaGU7aWYodS5oYXMobykpcmV0dXJuIHUuZ2V0KG8pO3ZhciBjPXQuYXBwbHkodGhpcyxuKTtyZXR1cm4gZS5jYWNoZT11LnNldChvLGMpfHx1LGN9O3JldHVybiBlLmNhY2hlPW5ldyhaLkNhY2hlfHxYKSxlfVouQ2FjaGU9WDt2YXIgdHQscnQsZXQsbnQ9L1teLltcXV0rfFxbKD86KC0/XGQrKD86XC5cZCspPyl8KFsiJ10pKCg/Oig/IVwyKVteXFxdfFxcLikqPylcMilcXXwoPz0oPzpcLnxcW1xdKSg/OlwufFxbXF18JCkpL2csb3Q9L1xcKFxcKT8vZyx1dD0odHQ9ZnVuY3Rpb24odCl7dmFyIHI9W107cmV0dXJuIDQ2PT09dC5jaGFyQ29kZUF0KDApJiZyLnB1c2goIiIpLHQucmVwbGFjZShudCwoZnVuY3Rpb24odCxlLG4sbyl7ci5wdXNoKG4/by5yZXBsYWNlKG90LCIkMSIpOmV8fHQpfSkpLHJ9LHJ0PVoodHQsKGZ1bmN0aW9uKHQpe3JldHVybiA1MDA9PT1ldC5zaXplJiZldC5jbGVhcigpLHR9KSksZXQ9cnQuY2FjaGUscnQpLGN0PXV0O3ZhciBpdD0xLzAsYXQ9aT9pLnByb3RvdHlwZTp2b2lkIDAsZnQ9YXQ/YXQudG9TdHJpbmc6dm9pZCAwO2Z1bmN0aW9uIGx0KHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdDtpZihuKHQpKXJldHVybiBmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPW51bGw9PXQ/MDp0Lmxlbmd0aCxvPUFycmF5KG4pOysrZTxuOylvW2VdPXIodFtlXSxlLHQpO3JldHVybiBvfSh0LGx0KSsiIjtpZihfKHQpKXJldHVybiBmdD9mdC5jYWxsKHQpOiIiO3ZhciByPXQrIiI7cmV0dXJuIjAiPT1yJiYxL3Q9PS1pdD8iLTAiOnJ9ZnVuY3Rpb24gc3QodCxyKXtyZXR1cm4gbih0KT90OmZ1bmN0aW9uKHQscil7aWYobih0KSlyZXR1cm4hMTt2YXIgZT10eXBlb2YgdDtyZXR1cm4hKCJudW1iZXIiIT1lJiYic3ltYm9sIiE9ZSYmImJvb2xlYW4iIT1lJiZudWxsIT10JiYhXyh0KSl8fE8udGVzdCh0KXx8IWcudGVzdCh0KXx8bnVsbCE9ciYmdCBpbiBPYmplY3Qocil9KHQscik/W3RdOmN0KGZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10PyIiOmx0KHQpfSh0KSl9dmFyIHB0PTEvMDtmdW5jdGlvbiBidCh0KXtpZigic3RyaW5nIj09dHlwZW9mIHR8fF8odCkpcmV0dXJuIHQ7dmFyIHI9dCsiIjtyZXR1cm4iMCI9PXImJjEvdD09LXB0PyItMCI6cn1mdW5jdGlvbiB5dCh0LHIsZSl7dmFyIG49bnVsbD09dD92b2lkIDA6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9MCxuPShyPXN0KHIsdCkpLmxlbmd0aDtudWxsIT10JiZlPG47KXQ9dFtidChyW2UrK10pXTtyZXR1cm4gZSYmZT09bj90OnZvaWQgMH0odCxyKTtyZXR1cm4gdm9pZCAwPT09bj9lOm59dmFyIHZ0PU9iamVjdC5wcm90b3R5cGU7ZnVuY3Rpb24ganQodCl7dmFyIHI9dCYmdC5jb25zdHJ1Y3RvcjtyZXR1cm4gdD09PSgiZnVuY3Rpb24iPT10eXBlb2YgciYmci5wcm90b3R5cGV8fHZ0KX1mdW5jdGlvbiBodCh0LHIpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gdChyKGUpKX19dmFyIGR0PWh0KE9iamVjdC5rZXlzLE9iamVjdCksX3Q9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBndCh0KXtpZighanQodCkpcmV0dXJuIGR0KHQpO3ZhciByPVtdO2Zvcih2YXIgZSBpbiBPYmplY3QodCkpX3QuY2FsbCh0LGUpJiYiY29uc3RydWN0b3IiIT1lJiZyLnB1c2goZSk7cmV0dXJuIHJ9dmFyIE90PU4oYywiRGF0YVZpZXciKSxtdD1OKGMsIlByb21pc2UiKSx3dD1OKGMsIlNldCIpLEF0PU4oYywiV2Vha01hcCIpLFN0PSJbb2JqZWN0IE1hcF0iLHh0PSJbb2JqZWN0IFByb21pc2VdIixQdD0iW29iamVjdCBTZXRdIix6dD0iW29iamVjdCBXZWFrTWFwXSIsRXQ9IltvYmplY3QgRGF0YVZpZXddIixJdD1VKE90KSxGdD1VKEopLFV0PVUobXQpLE10PVUod3QpLCR0PVUoQXQpLER0PWo7KE90JiZEdChuZXcgT3QobmV3IEFycmF5QnVmZmVyKDEpKSkhPUV0fHxKJiZEdChuZXcgSikhPVN0fHxtdCYmRHQobXQucmVzb2x2ZSgpKSE9eHR8fHd0JiZEdChuZXcgd3QpIT1QdHx8QXQmJkR0KG5ldyBBdCkhPXp0KSYmKER0PWZ1bmN0aW9uKHQpe3ZhciByPWoodCksZT0iW29iamVjdCBPYmplY3RdIj09cj90LmNvbnN0cnVjdG9yOnZvaWQgMCxuPWU/VShlKToiIjtpZihuKXN3aXRjaChuKXtjYXNlIEl0OnJldHVybiBFdDtjYXNlIEZ0OnJldHVybiBTdDtjYXNlIFV0OnJldHVybiB4dDtjYXNlIE10OnJldHVybiBQdDtjYXNlICR0OnJldHVybiB6dH1yZXR1cm4gcn0pO3ZhciBUdD1EdCxCdD05MDA3MTk5MjU0NzQwOTkxO2Z1bmN0aW9uIGt0KHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD4tMSYmdCUxPT0wJiZ0PD1CdH1mdW5jdGlvbiBDdCh0KXtyZXR1cm4gbnVsbCE9dCYma3QodC5sZW5ndGgpJiYhUCh0KX12YXIgTnQ9IltvYmplY3QgU3RyaW5nXSI7dmFyIFJ0LFZ0PShSdD0ibGVuZ3RoIixmdW5jdGlvbih0KXtyZXR1cm4gbnVsbD09dD92b2lkIDA6dFtSdF19KSxXdD1SZWdFeHAoIltcXHUyMDBkXFx1ZDgwMC1cXHVkZmZmXFx1MDMwMC1cXHUwMzZmXFx1ZmUyMC1cXHVmZTJmXFx1MjBkMC1cXHUyMGZmXFx1ZmUwZVxcdWZlMGZdIik7dmFyIEx0PSJcXHVkODAwLVxcdWRmZmYiLHF0PSJbIitMdCsiXSIsR3Q9IltcXHUwMzAwLVxcdTAzNmZcXHVmZTIwLVxcdWZlMmZcXHUyMGQwLVxcdTIwZmZdIixLdD0iXFx1ZDgzY1tcXHVkZmZiLVxcdWRmZmZdIixIdD0iW14iK0x0KyJdIixKdD0iKD86XFx1ZDgzY1tcXHVkZGU2LVxcdWRkZmZdKXsyfSIsUXQ9IltcXHVkODAwLVxcdWRiZmZdW1xcdWRjMDAtXFx1ZGZmZl0iLFh0PSIoPzoiK0d0KyJ8IitLdCsiKSIrIj8iLFl0PSJbXFx1ZmUwZVxcdWZlMGZdPyIsWnQ9WXQrWHQrKCIoPzpcXHUyMDBkKD86IitbSHQsSnQsUXRdLmpvaW4oInwiKSsiKSIrWXQrWHQrIikqIiksdHI9Iig/OiIrW0h0K0d0KyI/IixHdCxKdCxRdCxxdF0uam9pbigifCIpKyIpIixycj1SZWdFeHAoS3QrIig/PSIrS3QrIil8Iit0citadCwiZyIpO2Z1bmN0aW9uIGVyKHQpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gV3QudGVzdCh0KX0odCk/ZnVuY3Rpb24odCl7Zm9yKHZhciByPXJyLmxhc3RJbmRleD0wO3JyLnRlc3QodCk7KSsrcjtyZXR1cm4gcn0odCk6VnQodCl9dmFyIG5yPSJbb2JqZWN0IE1hcF0iLG9yPSJbb2JqZWN0IFNldF0iO2Z1bmN0aW9uIHVyKHQpe2lmKG51bGw9PXQpcmV0dXJuIDA7aWYoQ3QodCkpcmV0dXJuInN0cmluZyI9PXR5cGVvZihyPXQpfHwhbihyKSYmaChyKSYmaihyKT09TnQ/ZXIodCk6dC5sZW5ndGg7dmFyIHIsZT1UdCh0KTtyZXR1cm4gZT09bnJ8fGU9PW9yP3Quc2l6ZTpndCh0KS5sZW5ndGh9dmFyIGNyPU1hdGguY2VpbCxpcj1NYXRoLm1heDt2YXIgYXI9OTAwNzE5OTI1NDc0MDk5MSxmcj0vXig/OjB8WzEtOV1cZCopJC87ZnVuY3Rpb24gbHIodCxyKXt2YXIgZT10eXBlb2YgdDtyZXR1cm4hIShyPW51bGw9PXI/YXI6cikmJigibnVtYmVyIj09ZXx8InN5bWJvbCIhPWUmJmZyLnRlc3QodCkpJiZ0Pi0xJiZ0JTE9PTAmJnQ8cn12YXIgc3I9L1xzLzt2YXIgcHI9L15ccysvO2Z1bmN0aW9uIGJyKHQpe3JldHVybiB0P3Quc2xpY2UoMCxmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGg7ci0tJiZzci50ZXN0KHQuY2hhckF0KHIpKTspO3JldHVybiByfSh0KSsxKS5yZXBsYWNlKHByLCIiKTp0fXZhciB5cj1OYU4sdnI9L15bLStdMHhbMC05YS1mXSskL2ksanI9L14wYlswMV0rJC9pLGhyPS9eMG9bMC03XSskL2ksZHI9cGFyc2VJbnQ7dmFyIF9yPTEvMCxncj0xNzk3NjkzMTM0ODYyMzE1N2UyOTI7ZnVuY3Rpb24gT3IodCl7cmV0dXJuIHQ/KHQ9ZnVuY3Rpb24odCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0O2lmKF8odCkpcmV0dXJuIHlyO2lmKG0odCkpe3ZhciByPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnZhbHVlT2Y/dC52YWx1ZU9mKCk6dDt0PW0ocik/cisiIjpyfWlmKCJzdHJpbmciIT10eXBlb2YgdClyZXR1cm4gMD09PXQ/dDordDt0PWJyKHQpO3ZhciBlPWpyLnRlc3QodCk7cmV0dXJuIGV8fGhyLnRlc3QodCk/ZHIodC5zbGljZSgyKSxlPzI6OCk6dnIudGVzdCh0KT95cjordH0odCkpPT09X3J8fHQ9PT0tX3I/KHQ8MD8tMToxKSpncjp0PT10P3Q6MDowPT09dD90OjB9dmFyIG1yLHdyPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gZSYmIm51bWJlciIhPXR5cGVvZiBlJiZmdW5jdGlvbih0LHIsZSl7aWYoIW0oZSkpcmV0dXJuITE7dmFyIG49dHlwZW9mIHI7cmV0dXJuISEoIm51bWJlciI9PW4/Q3QoZSkmJmxyKHIsZS5sZW5ndGgpOiJzdHJpbmciPT1uJiZyIGluIGUpJiZxKGVbcl0sdCl9KHQscixlKSYmKHI9ZT12b2lkIDApLHQ9T3IodCksdm9pZCAwPT09cj8ocj10LHQ9MCk6cj1PcihyKSxmdW5jdGlvbih0LHIsZSxuKXtmb3IodmFyIG89LTEsdT1pcihjcigoci10KS8oZXx8MSkpLDApLGM9QXJyYXkodSk7dS0tOyljW24/dTorK29dPXQsdCs9ZTtyZXR1cm4gY30odCxyLGU9dm9pZCAwPT09ZT90PHI/MTotMTpPcihlKSxtcil9LEFyPXdyO2Z1bmN0aW9uIFNyKHQpe3ZhciByPXRoaXMuX19kYXRhX189bmV3IEgodCk7dGhpcy5zaXplPXIuc2l6ZX1Tci5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9fZGF0YV9fPW5ldyBILHRoaXMuc2l6ZT0wfSxTci5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX19kYXRhX18sZT1yLmRlbGV0ZSh0KTtyZXR1cm4gdGhpcy5zaXplPXIuc2l6ZSxlfSxTci5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmdldCh0KX0sU3IucHJvdG90eXBlLmhhcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2RhdGFfXy5oYXModCl9LFNyLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCxyKXt2YXIgZT10aGlzLl9fZGF0YV9fO2lmKGUgaW5zdGFuY2VvZiBIKXt2YXIgbj1lLl9fZGF0YV9fO2lmKCFKfHxuLmxlbmd0aDwxOTkpcmV0dXJuIG4ucHVzaChbdCxyXSksdGhpcy5zaXplPSsrZS5zaXplLHRoaXM7ZT10aGlzLl9fZGF0YV9fPW5ldyBYKG4pfXJldHVybiBlLnNldCh0LHIpLHRoaXMuc2l6ZT1lLnNpemUsdGhpc307dmFyIHhyPWZ1bmN0aW9uKCl7dHJ5e3ZhciB0PU4oT2JqZWN0LCJkZWZpbmVQcm9wZXJ0eSIpO3JldHVybiB0KHt9LCIiLHt9KSx0fWNhdGNoKHQpe319KCksUHI9eHI7ZnVuY3Rpb24genIodCxyLGUpeyJfX3Byb3RvX18iPT1yJiZQcj9Qcih0LHIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHZhbHVlOmUsd3JpdGFibGU6ITB9KTp0W3JdPWV9dmFyIEVyPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24gSXIodCxyLGUpe3ZhciBuPXRbcl07RXIuY2FsbCh0LHIpJiZxKG4sZSkmJih2b2lkIDAhPT1lfHxyIGluIHQpfHx6cih0LHIsZSl9ZnVuY3Rpb24gRnIodCxyLGUsbil7dmFyIG89IWU7ZXx8KGU9e30pO2Zvcih2YXIgdT0tMSxjPXIubGVuZ3RoOysrdTxjOyl7dmFyIGk9clt1XSxhPW4/bihlW2ldLHRbaV0saSxlLHQpOnZvaWQgMDt2b2lkIDA9PT1hJiYoYT10W2ldKSxvP3pyKGUsaSxhKTpJcihlLGksYSl9cmV0dXJuIGV9ZnVuY3Rpb24gVXIodCl7cmV0dXJuIGgodCkmJiJbb2JqZWN0IEFyZ3VtZW50c10iPT1qKHQpfXZhciBNcj1PYmplY3QucHJvdG90eXBlLCRyPU1yLmhhc093blByb3BlcnR5LERyPU1yLnByb3BlcnR5SXNFbnVtZXJhYmxlLFRyPVVyKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/VXI6ZnVuY3Rpb24odCl7cmV0dXJuIGgodCkmJiRyLmNhbGwodCwiY2FsbGVlIikmJiFEci5jYWxsKHQsImNhbGxlZSIpfTt2YXIgQnI9Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxrcj1CciYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLENyPWtyJiZrci5leHBvcnRzPT09QnI/Yy5CdWZmZXI6dm9pZCAwLE5yPShDcj9Dci5pc0J1ZmZlcjp2b2lkIDApfHxmdW5jdGlvbigpe3JldHVybiExfSxScj17fTtmdW5jdGlvbiBWcih0KXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQocil9fVJyWyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT1SclsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09UnJbIltvYmplY3QgSW50OEFycmF5XSJdPVJyWyJbb2JqZWN0IEludDE2QXJyYXldIl09UnJbIltvYmplY3QgSW50MzJBcnJheV0iXT1SclsiW29iamVjdCBVaW50OEFycmF5XSJdPVJyWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPVJyWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPVJyWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLFJyWyJbb2JqZWN0IEFyZ3VtZW50c10iXT1SclsiW29iamVjdCBBcnJheV0iXT1SclsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1SclsiW29iamVjdCBCb29sZWFuXSJdPVJyWyJbb2JqZWN0IERhdGFWaWV3XSJdPVJyWyJbb2JqZWN0IERhdGVdIl09UnJbIltvYmplY3QgRXJyb3JdIl09UnJbIltvYmplY3QgRnVuY3Rpb25dIl09UnJbIltvYmplY3QgTWFwXSJdPVJyWyJbb2JqZWN0IE51bWJlcl0iXT1SclsiW29iamVjdCBPYmplY3RdIl09UnJbIltvYmplY3QgUmVnRXhwXSJdPVJyWyJbb2JqZWN0IFNldF0iXT1SclsiW29iamVjdCBTdHJpbmddIl09UnJbIltvYmplY3QgV2Vha01hcF0iXT0hMTt2YXIgV3I9Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxMcj1XciYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLHFyPUxyJiZMci5leHBvcnRzPT09V3ImJm8ucHJvY2VzcyxHcj1mdW5jdGlvbigpe3RyeXt2YXIgdD1MciYmTHIucmVxdWlyZSYmTHIucmVxdWlyZSgidXRpbCIpLnR5cGVzO3JldHVybiB0fHxxciYmcXIuYmluZGluZyYmcXIuYmluZGluZygidXRpbCIpfWNhdGNoKHQpe319KCksS3I9R3ImJkdyLmlzVHlwZWRBcnJheSxIcj1Lcj9WcihLcik6ZnVuY3Rpb24odCl7cmV0dXJuIGgodCkmJmt0KHQubGVuZ3RoKSYmISFScltqKHQpXX0sSnI9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBRcih0LHIpe3ZhciBlPW4odCksbz0hZSYmVHIodCksdT0hZSYmIW8mJk5yKHQpLGM9IWUmJiFvJiYhdSYmSHIodCksaT1lfHxvfHx1fHxjLGE9aT9mdW5jdGlvbih0LHIpe2Zvcih2YXIgZT0tMSxuPUFycmF5KHQpOysrZTx0OyluW2VdPXIoZSk7cmV0dXJuIG59KHQubGVuZ3RoLFN0cmluZyk6W10sZj1hLmxlbmd0aDtmb3IodmFyIGwgaW4gdCkhciYmIUpyLmNhbGwodCxsKXx8aSYmKCJsZW5ndGgiPT1sfHx1JiYoIm9mZnNldCI9PWx8fCJwYXJlbnQiPT1sKXx8YyYmKCJidWZmZXIiPT1sfHwiYnl0ZUxlbmd0aCI9PWx8fCJieXRlT2Zmc2V0Ij09bCl8fGxyKGwsZikpfHxhLnB1c2gobCk7cmV0dXJuIGF9ZnVuY3Rpb24gWHIodCl7cmV0dXJuIEN0KHQpP1FyKHQpOmd0KHQpfXZhciBZcj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIFpyKHQpe2lmKCFtKHQpKXJldHVybiBmdW5jdGlvbih0KXt2YXIgcj1bXTtpZihudWxsIT10KWZvcih2YXIgZSBpbiBPYmplY3QodCkpci5wdXNoKGUpO3JldHVybiByfSh0KTt2YXIgcj1qdCh0KSxlPVtdO2Zvcih2YXIgbiBpbiB0KSgiY29uc3RydWN0b3IiIT1ufHwhciYmWXIuY2FsbCh0LG4pKSYmZS5wdXNoKG4pO3JldHVybiBlfWZ1bmN0aW9uIHRlKHQpe3JldHVybiBDdCh0KT9Rcih0LCEwKTpacih0KX12YXIgcmU9Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxlZT1yZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYmIW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLG5lPWVlJiZlZS5leHBvcnRzPT09cmU/Yy5CdWZmZXI6dm9pZCAwLG9lPW5lP25lLmFsbG9jVW5zYWZlOnZvaWQgMDtmdW5jdGlvbiB1ZSgpe3JldHVybltdfXZhciBjZT1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLGllPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMsYWU9aWU/ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/W106KHQ9T2JqZWN0KHQpLGZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPS0xLG49bnVsbD09dD8wOnQubGVuZ3RoLG89MCx1PVtdOysrZTxuOyl7dmFyIGM9dFtlXTtyKGMsZSx0KSYmKHVbbysrXT1jKX1yZXR1cm4gdX0oaWUodCksKGZ1bmN0aW9uKHIpe3JldHVybiBjZS5jYWxsKHQscil9KSkpfTp1ZSxmZT1hZTtmdW5jdGlvbiBsZSh0LHIpe2Zvcih2YXIgZT0tMSxuPXIubGVuZ3RoLG89dC5sZW5ndGg7KytlPG47KXRbbytlXT1yW2VdO3JldHVybiB0fXZhciBzZT1odChPYmplY3QuZ2V0UHJvdG90eXBlT2YsT2JqZWN0KSxwZT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKHQpe2Zvcih2YXIgcj1bXTt0OylsZShyLGZlKHQpKSx0PXNlKHQpO3JldHVybiByfTp1ZSxiZT1wZTtmdW5jdGlvbiB5ZSh0LHIsZSl7dmFyIG89cih0KTtyZXR1cm4gbih0KT9vOmxlKG8sZSh0KSl9ZnVuY3Rpb24gdmUodCl7cmV0dXJuIHllKHQsWHIsZmUpfWZ1bmN0aW9uIGplKHQpe3JldHVybiB5ZSh0LHRlLGJlKX12YXIgaGU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgZGU9Yy5VaW50OEFycmF5O2Z1bmN0aW9uIF9lKHQpe3ZhciByPW5ldyB0LmNvbnN0cnVjdG9yKHQuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBkZShyKS5zZXQobmV3IGRlKHQpKSxyfXZhciBnZT0vXHcqJC87dmFyIE9lPWk/aS5wcm90b3R5cGU6dm9pZCAwLG1lPU9lP09lLnZhbHVlT2Y6dm9pZCAwO3ZhciB3ZT0iW29iamVjdCBCb29sZWFuXSIsQWU9IltvYmplY3QgRGF0ZV0iLFNlPSJbb2JqZWN0IE1hcF0iLHhlPSJbb2JqZWN0IE51bWJlcl0iLFBlPSJbb2JqZWN0IFJlZ0V4cF0iLHplPSJbb2JqZWN0IFNldF0iLEVlPSJbb2JqZWN0IFN0cmluZ10iLEllPSJbb2JqZWN0IFN5bWJvbF0iLEZlPSJbb2JqZWN0IEFycmF5QnVmZmVyXSIsVWU9IltvYmplY3QgRGF0YVZpZXddIixNZT0iW29iamVjdCBGbG9hdDMyQXJyYXldIiwkZT0iW29iamVjdCBGbG9hdDY0QXJyYXldIixEZT0iW29iamVjdCBJbnQ4QXJyYXldIixUZT0iW29iamVjdCBJbnQxNkFycmF5XSIsQmU9IltvYmplY3QgSW50MzJBcnJheV0iLGtlPSJbb2JqZWN0IFVpbnQ4QXJyYXldIixDZT0iW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iLE5lPSJbb2JqZWN0IFVpbnQxNkFycmF5XSIsUmU9IltvYmplY3QgVWludDMyQXJyYXldIjtmdW5jdGlvbiBWZSh0LHIsZSl7dmFyIG4sbz10LmNvbnN0cnVjdG9yO3N3aXRjaChyKXtjYXNlIEZlOnJldHVybiBfZSh0KTtjYXNlIHdlOmNhc2UgQWU6cmV0dXJuIG5ldyBvKCt0KTtjYXNlIFVlOnJldHVybiBmdW5jdGlvbih0LHIpe3ZhciBlPXI/X2UodC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihlLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpfSh0LGUpO2Nhc2UgTWU6Y2FzZSAkZTpjYXNlIERlOmNhc2UgVGU6Y2FzZSBCZTpjYXNlIGtlOmNhc2UgQ2U6Y2FzZSBOZTpjYXNlIFJlOnJldHVybiBmdW5jdGlvbih0LHIpe3ZhciBlPXI/X2UodC5idWZmZXIpOnQuYnVmZmVyO3JldHVybiBuZXcgdC5jb25zdHJ1Y3RvcihlLHQuYnl0ZU9mZnNldCx0Lmxlbmd0aCl9KHQsZSk7Y2FzZSBTZTpyZXR1cm4gbmV3IG87Y2FzZSB4ZTpjYXNlIEVlOnJldHVybiBuZXcgbyh0KTtjYXNlIFBlOnJldHVybiBmdW5jdGlvbih0KXt2YXIgcj1uZXcgdC5jb25zdHJ1Y3Rvcih0LnNvdXJjZSxnZS5leGVjKHQpKTtyZXR1cm4gci5sYXN0SW5kZXg9dC5sYXN0SW5kZXgscn0odCk7Y2FzZSB6ZTpyZXR1cm4gbmV3IG87Y2FzZSBJZTpyZXR1cm4gbj10LG1lP09iamVjdChtZS5jYWxsKG4pKTp7fX19dmFyIFdlPU9iamVjdC5jcmVhdGUsTGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXJldHVybiBmdW5jdGlvbihyKXtpZighbShyKSlyZXR1cm57fTtpZihXZSlyZXR1cm4gV2Uocik7dC5wcm90b3R5cGU9cjt2YXIgZT1uZXcgdDtyZXR1cm4gdC5wcm90b3R5cGU9dm9pZCAwLGV9fSgpLHFlPUxlO3ZhciBHZT1HciYmR3IuaXNNYXAsS2U9R2U/VnIoR2UpOmZ1bmN0aW9uKHQpe3JldHVybiBoKHQpJiYiW29iamVjdCBNYXBdIj09VHQodCl9O3ZhciBIZT1HciYmR3IuaXNTZXQsSmU9SGU/VnIoSGUpOmZ1bmN0aW9uKHQpe3JldHVybiBoKHQpJiYiW29iamVjdCBTZXRdIj09VHQodCl9LFFlPTEsWGU9MixZZT00LFplPSJbb2JqZWN0IEFyZ3VtZW50c10iLHRuPSJbb2JqZWN0IEZ1bmN0aW9uXSIscm49IltvYmplY3QgR2VuZXJhdG9yRnVuY3Rpb25dIixlbj0iW29iamVjdCBPYmplY3RdIixubj17fTtmdW5jdGlvbiBvbih0LHIsZSxvLHUsYyl7dmFyIGksYT1yJlFlLGY9ciZYZSxsPXImWWU7aWYoZSYmKGk9dT9lKHQsbyx1LGMpOmUodCkpLHZvaWQgMCE9PWkpcmV0dXJuIGk7aWYoIW0odCkpcmV0dXJuIHQ7dmFyIHM9bih0KTtpZihzKXtpZihpPWZ1bmN0aW9uKHQpe3ZhciByPXQubGVuZ3RoLGU9bmV3IHQuY29uc3RydWN0b3Iocik7cmV0dXJuIHImJiJzdHJpbmciPT10eXBlb2YgdFswXSYmaGUuY2FsbCh0LCJpbmRleCIpJiYoZS5pbmRleD10LmluZGV4LGUuaW5wdXQ9dC5pbnB1dCksZX0odCksIWEpcmV0dXJuIGZ1bmN0aW9uKHQscil7dmFyIGU9LTEsbj10Lmxlbmd0aDtmb3Iocnx8KHI9QXJyYXkobikpOysrZTxuOylyW2VdPXRbZV07cmV0dXJuIHJ9KHQsaSl9ZWxzZXt2YXIgcD1UdCh0KSxiPXA9PXRufHxwPT1ybjtpZihOcih0KSlyZXR1cm4gZnVuY3Rpb24odCxyKXtpZihyKXJldHVybiB0LnNsaWNlKCk7dmFyIGU9dC5sZW5ndGgsbj1vZT9vZShlKTpuZXcgdC5jb25zdHJ1Y3RvcihlKTtyZXR1cm4gdC5jb3B5KG4pLG59KHQsYSk7aWYocD09ZW58fHA9PVplfHxiJiYhdSl7aWYoaT1mfHxiP3t9OmZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0LmNvbnN0cnVjdG9yfHxqdCh0KT97fTpxZShzZSh0KSl9KHQpLCFhKXJldHVybiBmP2Z1bmN0aW9uKHQscil7cmV0dXJuIEZyKHQsYmUodCkscil9KHQsZnVuY3Rpb24odCxyKXtyZXR1cm4gdCYmRnIocix0ZShyKSx0KX0oaSx0KSk6ZnVuY3Rpb24odCxyKXtyZXR1cm4gRnIodCxmZSh0KSxyKX0odCxmdW5jdGlvbih0LHIpe3JldHVybiB0JiZGcihyLFhyKHIpLHQpfShpLHQpKX1lbHNle2lmKCFubltwXSlyZXR1cm4gdT90Ont9O2k9VmUodCxwLGEpfX1jfHwoYz1uZXcgU3IpO3ZhciB5PWMuZ2V0KHQpO2lmKHkpcmV0dXJuIHk7Yy5zZXQodCxpKSxKZSh0KT90LmZvckVhY2goKGZ1bmN0aW9uKG4pe2kuYWRkKG9uKG4scixlLG4sdCxjKSl9KSk6S2UodCkmJnQuZm9yRWFjaCgoZnVuY3Rpb24obixvKXtpLnNldChvLG9uKG4scixlLG8sdCxjKSl9KSk7dmFyIHY9cz92b2lkIDA6KGw/Zj9qZTp2ZTpmP3RlOlhyKSh0KTtyZXR1cm4gZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9LTEsbj1udWxsPT10PzA6dC5sZW5ndGg7KytlPG4mJiExIT09cih0W2VdLGUsdCk7KTt9KHZ8fHQsKGZ1bmN0aW9uKG4sbyl7diYmKG49dFtvPW5dKSxJcihpLG8sb24obixyLGUsbyx0LGMpKX0pKSxpfW5uW1plXT1ublsiW29iamVjdCBBcnJheV0iXT1ublsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1ublsiW29iamVjdCBEYXRhVmlld10iXT1ublsiW29iamVjdCBCb29sZWFuXSJdPW5uWyJbb2JqZWN0IERhdGVdIl09bm5bIltvYmplY3QgRmxvYXQzMkFycmF5XSJdPW5uWyJbb2JqZWN0IEZsb2F0NjRBcnJheV0iXT1ublsiW29iamVjdCBJbnQ4QXJyYXldIl09bm5bIltvYmplY3QgSW50MTZBcnJheV0iXT1ublsiW29iamVjdCBJbnQzMkFycmF5XSJdPW5uWyJbb2JqZWN0IE1hcF0iXT1ublsiW29iamVjdCBOdW1iZXJdIl09bm5bZW5dPW5uWyJbb2JqZWN0IFJlZ0V4cF0iXT1ublsiW29iamVjdCBTZXRdIl09bm5bIltvYmplY3QgU3RyaW5nXSJdPW5uWyJbb2JqZWN0IFN5bWJvbF0iXT1ublsiW29iamVjdCBVaW50OEFycmF5XSJdPW5uWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPW5uWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPW5uWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLG5uWyJbb2JqZWN0IEVycm9yXSJdPW5uW3RuXT1ublsiW29iamVjdCBXZWFrTWFwXSJdPSExO3ZhciB1bj0xLGNuPTQ7ZnVuY3Rpb24gYW4odCl7cmV0dXJuIG9uKHQsdW58Y24pfWZ1bmN0aW9uIGZuKHQpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9ZnVuY3Rpb24gbG4odCl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCl9dmFyIHNuPSJbb2JqZWN0IEJvb2xlYW5dIjtmdW5jdGlvbiBwbih0KXtyZXR1cm4hMD09PShyPXQpfHwhMT09PXJ8fGgocikmJmoocik9PXNuO3ZhciByfWZ1bmN0aW9uIGJuKHQscj1udWxsLGU9e30pe1Aocil8fChyPXQ9PnQpO2xldCBuPXl0KGUsImZvcmNlIiwhMSk7cmV0dXJuIHBuKG4pfHwobj0hMSksZnVuY3Rpb24odCxyLGU9ITEpe2xldCBuPVtdO2lmKCFmbih0KSYmIWxuKHQpKXJldHVybiByKHQsbnVsbCxbXSk7ZnVuY3Rpb24gbyh0KXtpZihmbih0KSlyZXR1cm4gQXIodXIodCkpO2lmKGxuKHQpKXtsZXQgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KSxuPW51bGw7cmV0dXJuIGUmJihuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCkpLGZuKHIpfHwocj1bXSksZm4obil8fChuPVtdKSxbLi4uciwuLi5uXX1yZXR1cm4gdH1yZXR1cm4gZnVuY3Rpb24gdChlLHUpe2lmKGZuKGUpKXJldHVybiBvKGUpLm1hcCgobz0+e2xldCB1PWVbb10sYz1hbihuKTtyZXR1cm4gbi5wdXNoKG8pLHU9cih1LG8sYyksdT10KHUpLG4ucG9wKCksdX0pKTtpZihsbihlKSl7bGV0IHU9byhlKSxjPXt9O3JldHVybiB1Lm1hcCgobz0+e2xldCB1PWVbb10saT1hbihuKTtuLnB1c2gobyksdT1yKHUsbyxpKSx1PXQodSksbi5wb3AoKSxjW29dPXV9KSksY31yZXR1cm4gZX0odCl9KHQscixuKX1mdW5jdGlvbiB5bih0KXtyZXR1cm4hKCFmdW5jdGlvbih0KXtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX0odCl8fCIiPT09dCl9ZnVuY3Rpb24gdm4odCxyKXt2YXIgZT1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO3ImJihuPW4uZmlsdGVyKChmdW5jdGlvbihyKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHIpLmVudW1lcmFibGV9KSkpLGUucHVzaC5hcHBseShlLG4pfXJldHVybiBlfWZ1bmN0aW9uIGpuKHQpe2Zvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspe3ZhciBuPW51bGwhPWFyZ3VtZW50c1tyXT9hcmd1bWVudHNbcl06e307ciUyP3ZuKE9iamVjdChuKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24ocil7ZSh0LHIsbltyXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhuKSk6dm4oT2JqZWN0KG4pKS5mb3JFYWNoKChmdW5jdGlvbihyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxyLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobixyKSl9KSl9cmV0dXJuIHR9ZnVuY3Rpb24gaG4odCxyPXt9KXtpZihmbih0KSl7aWYoMD09PXQubGVuZ3RoKXJldHVybltdfWVsc2V7aWYoIWxuKHQpKXJldHVybltdO2lmKGZ1bmN0aW9uKHQpe2lmKGxuKHQpKXtmb3IobGV0IHIgaW4gdClyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4hMX0odCkpcmV0dXJuW119bGV0IGU9eXQociwiYmluZEtleSIsbnVsbCk7eW4oZSl8fChlPSJpZCIpO2xldCBuPXl0KHIsImJpbmRDaGlsZHJlbiIsbnVsbCk7eW4obil8fChuPSJjaGlsZHJlbiIpO2xldCBvPSExO2xuKHQpJiYobz0hMCx0PVt0XSk7bGV0IHU9W107cmV0dXJuIGJuKHQsKCh0LHIsbyk9PntsZXQgYz15dCh0LGUsbnVsbCksaT15dCh0LG4sbnVsbCk7aWYoYyl7bGV0IGU9ZnVuY3Rpb24odCl7bGV0IHI9W3RbMF1dO2ZvcihsZXQgZT0xO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbz10W2VdO3IucHVzaChuKSxyLnB1c2gobyl9cmV0dXJuIHJ9KFsuLi5vLHJdKTtpZih1LnB1c2goam4oam4oe30sdCkse30se2xldmVsOih1cihlKS0xKS8yLG5rOmV9KSksaSlyZXR1cm4gaX19KSksbyYmKHU9dVswXSksdX1sZXQgZmxhdHRlblRyZWVXaz1hc3luYyBmdW5jdGlvbih0LHI9e30pe3JldHVybiBobih0LHIpfTsKCgpsZXQgaW5zdGFuY2UgPSBudWxsCmZ1bmN0aW9uIGluaXQoaW5wdXQpewoKICAgIC8vaW5pdAogICAgbGV0IHIKICAgIAogICAgICAgIHIgPSB7CiAgICAgICAgICAgIG1haW46IGZsYXR0ZW5UcmVlV2sKICAgICAgICB9CiAgICAgICAgCgogICAgLy9vbgogICAgCgogICAgLy9zYXZlCiAgICBpbnN0YW5jZSA9IHIKCn0KCmZ1bmN0aW9uIHNlbmRNZXNzYWdlKGRhdGEpIHsKICAgIAogICAgICAgIHNlbGYucG9zdE1lc3NhZ2UoZGF0YSkKICAgICAgICAKfQoKYXN5bmMgZnVuY3Rpb24gcnVuKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcnVuJyxkYXRhKQoKICAgIC8vbW9kZQogICAgbGV0IG1vZGUgPSBkYXRhLm1vZGUKCiAgICAvL2NoZWNrCiAgICBpZihtb2RlICE9PSAnaW5pdCcgJiYgbW9kZSAhPT0gJ2NhbGwnKXsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICAvL2luaXQKICAgIGlmKG1vZGUgPT09ICdpbml0Jyl7CiAgICAgICAgCiAgICAgICAgdHJ5ewoKICAgICAgICAgICAgLy90eXBlCiAgICAgICAgICAgIGxldCB0eXBlID0gZGF0YS50eXBlCgogICAgICAgICAgICAvL2lucHV0CiAgICAgICAgICAgIGxldCBpbnB1dCA9IGRhdGEuaW5wdXQKICAgIAogICAgICAgICAgICAvL2luc3RhbmNlCiAgICAgICAgICAgIGlmKHR5cGUgPT09ICdmdW5jdGlvbicpewogICAgICAgICAgICAgICAgaW5pdCguLi5pbnB1dCkKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT09ICdvYmplY3QnKXsKICAgICAgICAgICAgICAgIGluc3RhbmNlID0gZmxhdHRlblRyZWVXawogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjYXRjaChlcnIpewogICAgICAgIAogICAgICAgICAgICAvL3NlbmRNZXNzYWdlCiAgICAgICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgICAgICBtb2RlOiAnZW1pdCcsCiAgICAgICAgICAgICAgICBldk5hbWU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICBtc2c6IGVyciwKICAgICAgICAgICAgfQogICAgICAgICAgICBzZW5kTWVzc2FnZShyZXMpCgogICAgICAgIH0KICAgICAgICAgICAgCiAgICB9CgogICAgLy9jaGVjawogICAgaWYobW9kZSA9PT0gJ2NhbGwnKXsKICAgICAgICBsZXQgc3RhdGUgPSAnJwogICAgICAgIGxldCBtc2cgPSBudWxsCgogICAgICAgIHRyeXsKCiAgICAgICAgICAgIC8vZnVuCiAgICAgICAgICAgIGxldCBmdW4gPSBpbnN0YW5jZVtkYXRhLmZ1bl0KCiAgICAgICAgICAgIC8vaW5wdXQKICAgICAgICAgICAgbGV0IGlucHV0ID0gZGF0YS5pbnB1dAoKICAgICAgICAgICAgLy9leGVjCiAgICAgICAgICAgIGF3YWl0IGZ1biguLi5pbnB1dCkKICAgICAgICAgICAgICAgIC50aGVuKChzdWMpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nc3VjY2VzcycKICAgICAgICAgICAgICAgICAgICBtc2c9c3VjCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICBzdGF0ZT0nZXJyb3InCiAgICAgICAgICAgICAgICAgICAgbXNnPWVycgogICAgICAgICAgICAgICAgfSkKCiAgICAgICAgfQogICAgICAgIGNhdGNoKGVycil7CiAgICAgICAgICAgIHN0YXRlID0gJ2Vycm9yJwogICAgICAgICAgICBtc2cgPSBlcnIKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy9zZW5kTWVzc2FnZQogICAgICAgIGxldCByZXMgPSB7CiAgICAgICAgICAgIG1vZGU6ICdyZXR1cm4nLAogICAgICAgICAgICBpZDogZGF0YS5pZCwKICAgICAgICAgICAgZnVuOiBkYXRhLmZ1biwKICAgICAgICAgICAgc3RhdGUsCiAgICAgICAgICAgIG1zZywKICAgICAgICB9CiAgICAgICAgc2VuZE1lc3NhZ2UocmVzKQoKICAgIH0KCn0KCmZ1bmN0aW9uIHJlY3ZNZXNzYWdlKGRhdGEpIHsKICAgIC8vIGNvbnNvbGUubG9nKCdpbm5lciB3b3JrZXIgcmVjdjonLCBkYXRhKQoKICAgIC8vZGF0YVJlY3YKICAgIGxldCBkYXRhUmVjdiA9IGRhdGEKCiAgICAvL3J1bgogICAgcnVuKGRhdGFSZWN2KQoKfQoKCiAgICAgICAgc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAoZSkgewogICAgICAgICAgICByZWN2TWVzc2FnZShlLmRhdGEpCiAgICAgICAgfQogICAgICAgIAoKdHJ5ewogICAgcHJvY2Vzcy5vbigndW5oYW5kbGVkUmVqZWN0aW9uJywgKGVycikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKCdpbm5lcjp1bmhhbmRsZWRSZWplY3Rpb24nLCBlcnIpCiAgICB9KQogICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCAoZXJyKSA9PiB7CiAgICAgICAgY29uc29sZS5sb2coJ2lubmVyOnVuY2F1Z2h0RXhjZXB0aW9uJywgZXJyKQogICAgfSkKICAgIHByb2Nlc3Mub24oJ3VuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvcicsIChlcnIpID0+IHsKICAgICAgICBjb25zb2xlLmxvZygnaW5uZXI6dW5jYXVnaHRFeGNlcHRpb25Nb25pdG9yJywgZXJyKQogICAgfSkKfQpjYXRjaChlcnIpe30KCg==");function l(){let l=new h;let I=function(d){try{let l=new Blob([d]),I=window.URL||window.webkitURL;return new Worker(I.createObjectURL(l))}catch(d){i(d)}}(d);if(!I)return i("invalid worker"),null;function c(){let d=function(){let d,l,I=new Promise((function(){d=arguments[0],l=arguments[1]}));return I.resolve=d,I.reject=l,I}(),c=function(){let d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:10,l=[],I="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),c=I.length;for(let i=0;i<d;i++)l[i]=I[0|Math.random()*c];return l.join("")}(),i={mode:"call",id:c,fun:"main",input:[...arguments]};return I.postMessage(i),l.once(c,(l=>{"success"===l.state?d.resolve(l.msg):d.reject(l.msg)})),d}function i(d){l.emit("error",d)}return I.onmessage=function(d){!function(d){let I=d,c=I.mode;"emit"!==c&&"return"!==c||("emit"===c&&l.emit(I.evName,I.msg),"return"===c&&l.emit(I.id,I))}(d.data)},I.onerror=i,I.onmessageerror=function(d){i(d.data)},function(){let d={mode:"init",type:"function",input:[...arguments]};I.postMessage(d)}([...arguments]),l.main=c,l.main=c,l.terminate=function(){I?(I.terminate(),I=void 0):i("worker has been terminated")},l}e=async function(){let d=[...arguments],I=l();return await I.main(...d).finally((()=>{I.terminate()}))}}();try{process.on("unhandledRejection",(d=>{console.log("outer:unhandledRejection",d)})),process.on("uncaughtException",(d=>{console.log("outer:uncaughtException",d)})),process.on("uncaughtExceptionMonitor",(d=>{console.log("outer:uncaughtExceptionMonitor",d)}))}catch(d){}var J=e;export{J as default};
|